diff options
author | Sebastian Koslowski <koslowski@kit.edu> | 2016-01-31 21:53:34 +0100 |
---|---|---|
committer | Sebastian Koslowski <koslowski@kit.edu> | 2016-02-05 09:41:41 +0100 |
commit | e7d695d727d19104d2668be75cc5d59bdb182b63 (patch) | |
tree | 90015b682701a19e9c32181a11a690a0b317064e /grc/gui | |
parent | 3f6af5682ce712ad481926016798cfec697e6f05 (diff) |
grc: optional transparent bg in screen shots
Diffstat (limited to 'grc/gui')
-rw-r--r-- | grc/gui/ActionHandler.py | 4 | ||||
-rw-r--r-- | grc/gui/Constants.py | 1 | ||||
-rw-r--r-- | grc/gui/DrawingArea.py | 5 |
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 |