diff --git a/gajim/gtk/assistant.py b/gajim/gtk/assistant.py index 112f89b778abe64ad4e0a6d025fb829e584db198..02f32439a6c691e71c4e9662eabcee10b92623ae 100644 --- a/gajim/gtk/assistant.py +++ b/gajim/gtk/assistant.py @@ -100,6 +100,8 @@ def add_default_page(self, name): page = SuccessPage() elif name == 'error': page = ErrorPage() + elif name == 'progress': + page = ProgressPage() else: raise ValueError('Unknown page: %s' % name) @@ -194,3 +196,32 @@ def __init__(self): Page.__init__(self, icon_name='object-select-symbolic', icon_css_class='success-color') + + +class ProgressPage(Gtk.Box): + def __init__(self): + super().__init__(orientation=Gtk.Orientation.VERTICAL) + self.set_spacing(18) + self.set_valign(Gtk.Align.CENTER) + + self.title = '' + + self._label = Gtk.Label() + self._label.set_max_width_chars(50) + self._label.set_line_wrap(True) + self._label.set_halign(Gtk.Align.CENTER) + self._label.set_justify(Gtk.Justification.CENTER) + + spinner = Gtk.Spinner() + spinner.start() + + self.pack_start(spinner, True, True, 0) + self.pack_start(self._label, False, True, 0) + + self.show_all() + + def set_text(self, text): + self._label.set_text(text) + + def set_title(self, title): + self.title = title diff --git a/test/gtk/assistant.py b/test/gtk/assistant.py index 6d818e1fce110792c21b8e06b7a7072c960df26c..c7378d063e59f39beba6b636e45f263f848aa01d 100644 --- a/test/gtk/assistant.py +++ b/test/gtk/assistant.py @@ -14,8 +14,11 @@ class TestAssistant(Assistant): def __init__(self): Assistant.__init__(self) - self.add_pages({'start': Start(), - 'progress': Progress()}) + self.add_pages({'start': Start()}) + + progress = self.add_default_page('progress') + progress.set_title('Executing...') + progress.set_text('Something is in progress...') error = self.add_default_page('error') error.set_title('Error') @@ -90,26 +93,6 @@ def _on_page_changed(self, _assistant, page_name): self.set_default_button('back') -class Progress(Gtk.Box): - - title = 'Progress' - - def __init__(self): - super().__init__(orientation=Gtk.Orientation.VERTICAL) - self.set_spacing(18) - self.set_valign(Gtk.Align.CENTER) - label = Gtk.Label(label='Test label...') - label.set_max_width_chars(50) - label.set_line_wrap(True) - label.set_halign(Gtk.Align.CENTER) - label.set_justify(Gtk.Justification.CENTER) - spinner = Gtk.Spinner() - self.pack_start(label, False, True, 0) - self.pack_start(spinner, False, True, 0) - spinner.start() - self.show_all() - - class Start(Gtk.Box): title = 'Start'