diff --git a/data/gui/adhoc_commands_window.ui b/data/gui/adhoc_commands_window.ui index b3bedc500..4901df232 100644 --- a/data/gui/adhoc_commands_window.ui +++ b/data/gui/adhoc_commands_window.ui @@ -358,6 +358,22 @@ True 12 end + + + gtk-goto-first + True + True + True + False + True + + + + False + False + 0 + + gtk-go-back @@ -371,7 +387,7 @@ False False - 0 + 1 @@ -387,7 +403,7 @@ False False - 1 + 2 @@ -403,7 +419,7 @@ False False - 2 + 3 @@ -419,7 +435,7 @@ False False - 3 + 4 diff --git a/src/adhoc_commands.py b/src/adhoc_commands.py index 548319b6f..85ba9cfd1 100644 --- a/src/adhoc_commands.py +++ b/src/adhoc_commands.py @@ -55,22 +55,15 @@ class CommandWindow: # an account object self.account = gajim.connections[account] self.jid = jid - - self.pulse_id = None # to satisfy self.setup_pulsing() - self.commandlist = None # a list of (commandname, commanddescription) - - # command's data self.commandnode = commandnode - self.sessionid = None - self.dataform = None - self.allow_stage3_close = False + self.data_form_widget = None # retrieving widgets from xml self.xml = gtkgui_helpers.get_gtk_builder('adhoc_commands_window.ui') self.window = self.xml.get_object('adhoc_commands_window') self.window.connect('delete-event', self.on_adhoc_commands_window_delete_event) - for name in ('back_button', 'forward_button', + for name in ('restart_button', 'back_button', 'forward_button', 'execute_button', 'close_button', 'stages_notebook', 'retrieving_commands_stage_vbox', 'command_list_stage_vbox', 'command_list_vbox', @@ -79,7 +72,22 @@ class CommandWindow: 'error_description_label'): self.__dict__[name] = self.xml.get_object(name) + self.initiate() + + def initiate(self): + + self.pulse_id = None # to satisfy self.setup_pulsing() + self.commandlist = None # a list of (commandname, commanddescription) + + # command's data + self.sessionid = None + self.dataform = None + self.allow_stage3_close = False + # creating data forms widget + if self.data_form_widget: + self.sending_form_stage_vbox.remove(self.data_form_widget) + self.data_form_widget.destroy() self.data_form_widget = dataforms_widget.DataFormWidget() self.data_form_widget.show() self.sending_form_stage_vbox.pack_start(self.data_form_widget) @@ -95,6 +103,8 @@ class CommandWindow: self.xml.connect_signals(self) self.window.show_all() + self.restart_button.set_sensitive(False) + # These functions are set up by appropriate stageX methods. def stage_finish(self, *anything): pass @@ -377,6 +387,7 @@ class CommandWindow: if self.form_status == 'completed': self.close_button.set_sensitive(True) + self.restart_button.set_sensitive(True) self.back_button.hide() self.forward_button.hide() self.execute_button.hide() @@ -393,6 +404,10 @@ class CommandWindow: self.notes_label.set_no_show_all(True) self.notes_label.hide() + def on_restart_button_clicked(self, widget): + self.commandnode = None + self.initiate() + # stage 4: no commands are exposed def stage4(self): """