diff options
author | Sebastian Koslowski <koslowski@kit.edu> | 2016-02-04 16:26:05 +0100 |
---|---|---|
committer | Sebastian Koslowski <koslowski@kit.edu> | 2016-02-05 09:41:41 +0100 |
commit | 3745fa37053590282be6896a164cf4c126c4b6d7 (patch) | |
tree | 4d6b2d0ef3573500079b39cc76715f2d3f156fbc | |
parent | e7d695d727d19104d2668be75cc5d59bdb182b63 (diff) |
grc: user-selectable transparent bg screen shots
-rw-r--r-- | grc/grc.conf.in | 1 | ||||
-rw-r--r-- | grc/gui/ActionHandler.py | 8 | ||||
-rw-r--r-- | grc/gui/Constants.py | 1 | ||||
-rw-r--r-- | grc/gui/FileDialogs.py | 15 | ||||
-rw-r--r-- | grc/gui/Preferences.py | 4 |
5 files changed, 23 insertions, 6 deletions
diff --git a/grc/grc.conf.in b/grc/grc.conf.in index d0dc78d84f..71c4f63bca 100644 --- a/grc/grc.conf.in +++ b/grc/grc.conf.in @@ -8,4 +8,3 @@ local_blocks_path = xterm_executable = @GRC_XTERM_EXE@ canvas_font_size = 8 canvas_default_size = 1280, 1024 -screenshots_transparent_bg = False diff --git a/grc/gui/ActionHandler.py b/grc/gui/ActionHandler.py index df142ff1c8..0f227d08f5 100644 --- a/grc/gui/ActionHandler.py +++ b/grc/gui/ActionHandler.py @@ -34,9 +34,9 @@ from .ParserErrorsDialog import ParserErrorsDialog from .MainWindow import MainWindow from .PropsDialog import PropsDialog from .FileDialogs import (OpenFlowGraphFileDialog, SaveFlowGraphFileDialog, - SaveReportsFileDialog, SaveImageFileDialog, + SaveReportsFileDialog, SaveScreenShotDialog, OpenQSSFileDialog) -from .Constants import DEFAULT_CANVAS_SIZE, IMAGE_FILE_EXTENSION, GR_PREFIX, SCREENSHOTS_TRANSPARENT_BG +from .Constants import DEFAULT_CANVAS_SIZE, IMAGE_FILE_EXTENSION, GR_PREFIX gobject.threads_init() @@ -521,9 +521,9 @@ class ActionHandler: self.main_window.tool_bar.refresh_submenus() self.main_window.menu_bar.refresh_submenus() elif action == Actions.FLOW_GRAPH_SCREEN_CAPTURE: - file_path = SaveImageFileDialog(self.get_page().get_file_path()).run() + file_path, background_transparent = SaveScreenShotDialog(self.get_page().get_file_path()).run() if file_path is not None: - pixbuf = self.get_flow_graph().get_drawing_area().get_screenshot(SCREENSHOTS_TRANSPARENT_BG) + pixbuf = self.get_flow_graph().get_drawing_area().get_screenshot(background_transparent) pixbuf.save(file_path, IMAGE_FILE_EXTENSION[1:]) ################################################## # Gen/Exec/Stop diff --git a/grc/gui/Constants.py b/grc/gui/Constants.py index 830bc96681..741c6fda95 100644 --- a/grc/gui/Constants.py +++ b/grc/gui/Constants.py @@ -29,7 +29,6 @@ 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/FileDialogs.py b/grc/gui/FileDialogs.py index 730ac6fba0..4b5770ad21 100644 --- a/grc/gui/FileDialogs.py +++ b/grc/gui/FileDialogs.py @@ -210,3 +210,18 @@ class SaveFlowGraphFileDialog(FileDialog): type = SAVE_FLOW_GRAPH class OpenQSSFileDialog(FileDialog): type = OPEN_QSS_THEME class SaveReportsFileDialog(FileDialog): type = SAVE_REPORTS class SaveImageFileDialog(FileDialog): type = SAVE_IMAGE + + +class SaveScreenShotDialog(SaveImageFileDialog): + + def __init__(self, current_file_path=''): + SaveImageFileDialog.__init__(self, current_file_path) + self._button = button = gtk.CheckButton('_Background transparent') + self._button.set_active(Preferences.screen_shot_background_transparent()) + self.set_extra_widget(button) + + def run(self): + filename = SaveImageFileDialog.run(self) + bg_transparent = self._button.get_active() + Preferences.screen_shot_background_transparent(bg_transparent) + return filename, bg_transparent diff --git a/grc/gui/Preferences.py b/grc/gui/Preferences.py index 3ebee24345..ad2206ca29 100644 --- a/grc/gui/Preferences.py +++ b/grc/gui/Preferences.py @@ -150,3 +150,7 @@ def blocks_window_position(pos=None): def xterm_missing(cmd=None): return entry('xterm_missing', cmd, default='INVALID_XTERM_SETTING') + + +def screen_shot_background_transparent(transparent=None): + return entry('screen_shot_background_transparent', transparent, default=False) |