diff options
author | Josh Blum <josh@joshknows.com> | 2009-09-09 21:35:58 -0700 |
---|---|---|
committer | Josh Blum <josh@joshknows.com> | 2009-09-09 21:35:58 -0700 |
commit | bced51e1fe3694e073bebf053b2c69bc5128e00b (patch) | |
tree | 27d94cc1c4be7260e2acabafe186238590af53b4 /grc/gui | |
parent | 7f3dc5c263a55d1a992d28d374fc7acc9ebe412b (diff) |
properties dialog with ok/cancel buttons
Diffstat (limited to 'grc/gui')
-rw-r--r-- | grc/gui/ActionHandler.py | 15 | ||||
-rw-r--r-- | grc/gui/PropsDialog.py | 18 |
2 files changed, 17 insertions, 16 deletions
diff --git a/grc/gui/ActionHandler.py b/grc/gui/ActionHandler.py index f12893579d..656f99c377 100644 --- a/grc/gui/ActionHandler.py +++ b/grc/gui/ActionHandler.py @@ -240,10 +240,17 @@ class ActionHandler: ################################################## elif state == Actions.BLOCK_PARAM_MODIFY: selected_block = self.get_flow_graph().get_selected_block() - if selected_block and PropsDialog(selected_block).run(): - self.get_flow_graph().update() - self.get_page().get_state_cache().save_new_state(self.get_flow_graph().export_data()) - self.get_page().set_saved(False) + if selected_block: + if PropsDialog(selected_block).run(): + #save the new state + self.get_flow_graph().update() + self.get_page().get_state_cache().save_new_state(self.get_flow_graph().export_data()) + self.get_page().set_saved(False) + else: + #restore the current state + n = self.get_page().get_state_cache().get_current_state() + self.get_flow_graph().import_data(n) + self.get_flow_graph().update() ################################################## # Undo/Redo ################################################## diff --git a/grc/gui/PropsDialog.py b/grc/gui/PropsDialog.py index 4965004169..29b3c7b40c 100644 --- a/grc/gui/PropsDialog.py +++ b/grc/gui/PropsDialog.py @@ -51,7 +51,7 @@ class PropsDialog(gtk.Dialog): LABEL_SPACING = 7 gtk.Dialog.__init__(self, title='Properties: %s'%block.get_name(), - buttons=(gtk.STOCK_CLOSE, gtk.RESPONSE_CLOSE), + buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT, gtk.STOCK_OK, gtk.RESPONSE_ACCEPT), ) self._block = block self.set_size_request(MIN_DIALOG_WIDTH, MIN_DIALOG_HEIGHT) @@ -155,20 +155,14 @@ class PropsDialog(gtk.Dialog): @return false to forward the keypress """ keyname = gtk.gdk.keyval_name(event.keyval) - if keyname == 'Return': self.response(gtk.RESPONSE_OK) + if keyname == 'Return': self.response(gtk.RESPONSE_ACCEPT) return False #forward the keypress def run(self): """ - Call run(). - @return true if a change occured. + Run the dialog and get its response. + @return true if the response was accept """ - original_data = list() - for param in self._block.get_params(): - original_data.append(param.get_value()) - gtk.Dialog.run(self) + response = gtk.Dialog.run(self) self.destroy() - new_data = list() - for param in self._block.get_params(): - new_data.append(param.get_value()) - return original_data != new_data + return response == gtk.RESPONSE_ACCEPT |