Skip to content
Snippets Groups Projects
Commit 028a2abf authored by Philipp Hörist's avatar Philipp Hörist
Browse files

AdHoc: Show default action

parent 8645a286
No related branches found
No related tags found
No related merge requests found
...@@ -83,14 +83,12 @@ def _add_custom_buttons(self): ...@@ -83,14 +83,12 @@ def _add_custom_buttons(self):
for button in list(action_area.get_children()): for button in list(action_area.get_children()):
self.remove_action_widget(button) self.remove_action_widget(button)
cancel = Gtk.Button(label=_('Cancel')) cancel = ActionButton(_('Cancel'), AdHocAction.CANCEL)
cancel.connect('clicked', self._abort) cancel.connect('clicked', self._abort)
cancel.get_style_context().add_class('destructive-action')
self._buttons['cancel'] = cancel self._buttons['cancel'] = cancel
self.add_action_widget(cancel) self.add_action_widget(cancel)
complete = Gtk.Button(label=_('Finish')) complete = ActionButton(_('Finish'), AdHocAction.COMPLETE)
complete.action = AdHocAction.COMPLETE
complete.connect('clicked', self._execute_action) complete.connect('clicked', self._execute_action)
self._buttons['complete'] = complete self._buttons['complete'] = complete
self.add_action_widget(complete) self.add_action_widget(complete)
...@@ -101,28 +99,26 @@ def _add_custom_buttons(self): ...@@ -101,28 +99,26 @@ def _add_custom_buttons(self):
self._buttons['commands'] = commands self._buttons['commands'] = commands
self.add_action_widget(commands) self.add_action_widget(commands)
next_ = Gtk.Button(label=_('Next')) next_ = ActionButton(_('Next'), AdHocAction.NEXT)
next_.action = AdHocAction.NEXT
next_.connect('clicked', self._execute_action) next_.connect('clicked', self._execute_action)
self._buttons['next'] = next_ self._buttons['next'] = next_
self.add_action_widget(next_) self.add_action_widget(next_)
prev = Gtk.Button(label=_('Previous')) prev = ActionButton(_('Previous'), AdHocAction.PREV)
prev.action = AdHocAction.PREV
prev.connect('clicked', self._execute_action) prev.connect('clicked', self._execute_action)
self._buttons['prev'] = prev self._buttons['prev'] = prev
self.add_action_widget(prev) self.add_action_widget(prev)
execute = Gtk.Button(label=_('Execute')) execute = ActionButton(_('Execute'), AdHocAction.EXECUTE)
execute.action = AdHocAction.EXECUTE
execute.get_style_context().add_class('suggested-action')
execute.connect('clicked', self._execute_action) execute.connect('clicked', self._execute_action)
self._buttons['execute'] = execute self._buttons['execute'] = execute
self.add_action_widget(execute) self.add_action_widget(execute)
def _set_button_visibility(self, page): def _set_button_visibility(self, page):
for button in self._buttons.values(): for action, button in self._buttons.items():
button.hide() button.hide()
if action in ('next', 'prev', 'complete'):
button.remove_default()
if page == Page.COMMANDS: if page == Page.COMMANDS:
self._buttons['execute'].show() self._buttons['execute'].show()
...@@ -132,10 +128,13 @@ def _set_button_visibility(self, page): ...@@ -132,10 +128,13 @@ def _set_button_visibility(self, page):
stage_page = self.get_nth_page(page) stage_page = self.get_nth_page(page)
if not stage_page.actions: if not stage_page.actions:
self._buttons['complete'].show() self._buttons['complete'].show()
self._buttons['complete'].make_default()
else: else:
for action in stage_page.actions: for action in stage_page.actions:
button = self._buttons.get(action.value) button = self._buttons.get(action.value)
if button is not None: if button is not None:
if button.action == stage_page.default:
button.make_default()
button.show() button.show()
elif page == Page.ERROR: elif page == Page.ERROR:
...@@ -328,6 +327,7 @@ def __init__(self): ...@@ -328,6 +327,7 @@ def __init__(self):
self._dataform_widget = None self._dataform_widget = None
self._notes = [] self._notes = []
self._last_stage_data = None self._last_stage_data = None
self.default = None
self.show_all() self.show_all()
@property @property
...@@ -347,6 +347,7 @@ def process_stage(self, stage_data): ...@@ -347,6 +347,7 @@ def process_stage(self, stage_data):
self._last_stage_data = stage_data self._last_stage_data = stage_data
self._show_notes(stage_data.notes) self._show_notes(stage_data.notes)
self._show_form(stage_data.data) self._show_form(stage_data.data)
self.default = stage_data.default
def _show_form(self, form): def _show_form(self, form):
if self._dataform_widget is not None: if self._dataform_widget is not None:
...@@ -482,3 +483,20 @@ def show_command_button(self): ...@@ -482,3 +483,20 @@ def show_command_button(self):
@show_command_button.setter @show_command_button.setter
def show_command_button(self, value): def show_command_button(self, value):
self._show_command_button = value self._show_command_button = value
class ActionButton(Gtk.Button):
def __init__(self, label, action):
Gtk.Button.__init__(self, label=label)
self.action = action
if action == AdHocAction.CANCEL:
self.get_style_context().add_class('destructive-action')
if action == AdHocAction.EXECUTE:
self.get_style_context().add_class('suggested-action')
def make_default(self):
self.get_style_context().add_class('suggested-action')
def remove_default(self):
self.get_style_context().remove_class('suggested-action')
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment