summaryrefslogtreecommitdiff
path: root/grc/gui
diff options
context:
space:
mode:
authorSebastian Koslowski <koslowski@kit.edu>2016-01-31 21:53:34 +0100
committerSebastian Koslowski <koslowski@kit.edu>2016-02-05 09:41:41 +0100
commite7d695d727d19104d2668be75cc5d59bdb182b63 (patch)
tree90015b682701a19e9c32181a11a690a0b317064e /grc/gui
parent3f6af5682ce712ad481926016798cfec697e6f05 (diff)
grc: optional transparent bg in screen shots
Diffstat (limited to 'grc/gui')
-rw-r--r--grc/gui/ActionHandler.py4
-rw-r--r--grc/gui/Constants.py1
-rw-r--r--grc/gui/DrawingArea.py5
3 files changed, 7 insertions, 3 deletions
diff --git a/grc/gui/ActionHandler.py b/grc/gui/ActionHandler.py
index 3b2786869b..df142ff1c8 100644
--- a/grc/gui/ActionHandler.py
+++ b/grc/gui/ActionHandler.py
@@ -36,7 +36,7 @@ from .PropsDialog import PropsDialog
from .FileDialogs import (OpenFlowGraphFileDialog, SaveFlowGraphFileDialog,
SaveReportsFileDialog, SaveImageFileDialog,
OpenQSSFileDialog)
-from .Constants import DEFAULT_CANVAS_SIZE, IMAGE_FILE_EXTENSION, GR_PREFIX
+from .Constants import DEFAULT_CANVAS_SIZE, IMAGE_FILE_EXTENSION, GR_PREFIX, SCREENSHOTS_TRANSPARENT_BG
gobject.threads_init()
@@ -523,7 +523,7 @@ class ActionHandler:
elif action == Actions.FLOW_GRAPH_SCREEN_CAPTURE:
file_path = SaveImageFileDialog(self.get_page().get_file_path()).run()
if file_path is not None:
- pixbuf = self.get_flow_graph().get_drawing_area().get_screenshot()
+ pixbuf = self.get_flow_graph().get_drawing_area().get_screenshot(SCREENSHOTS_TRANSPARENT_BG)
pixbuf.save(file_path, IMAGE_FILE_EXTENSION[1:])
##################################################
# Gen/Exec/Stop
diff --git a/grc/gui/Constants.py b/grc/gui/Constants.py
index 741c6fda95..830bc96681 100644
--- a/grc/gui/Constants.py
+++ b/grc/gui/Constants.py
@@ -29,6 +29,7 @@ from gnuradio import gr
prefs = gr.prefs()
GR_PREFIX = gr.prefix()
EDITOR = prefs.get_string('grc', 'editor', '')
+SCREENSHOTS_TRANSPARENT_BG = prefs.get_bool('grc', 'screenshots_transparent_bg', False)
# default path for the open/save dialogs
DEFAULT_FILE_PATH = os.getcwd()
diff --git a/grc/gui/DrawingArea.py b/grc/gui/DrawingArea.py
index e7a5063b6d..6a1df27a8c 100644
--- a/grc/gui/DrawingArea.py
+++ b/grc/gui/DrawingArea.py
@@ -74,12 +74,15 @@ class DrawingArea(gtk.DrawingArea):
def new_pixmap(self, width, height):
return gtk.gdk.Pixmap(self.window, width, height, -1)
- def get_screenshot(self):
+ def get_screenshot(self, transparent_bg=False):
pixmap = self._pixmap
W, H = pixmap.get_size()
pixbuf = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, 0, 8, W, H)
pixbuf.fill(0xFF + Colors.FLOWGRAPH_BACKGROUND_COLOR.pixel << 8)
pixbuf.get_from_drawable(pixmap, pixmap.get_colormap(), 0, 0, 0, 0, W-1, H-1)
+ if transparent_bg:
+ bgc = Colors.FLOWGRAPH_BACKGROUND_COLOR
+ pixbuf = pixbuf.add_alpha(True, bgc.red, bgc.green, bgc.blue)
return pixbuf