From 5e018f61477e2e1c5bfd70b3b6971ae622b1da88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Br=C3=B6tzmann?= <mailtrash@posteo.de> Date: Sun, 17 Nov 2019 15:34:49 +0100 Subject: [PATCH] Themes: Rearrange dialog buttons, close popover after adding option --- gajim/data/gui/themes_window.ui | 160 +++++++++++++++++++------------- gajim/gtk/themes.py | 5 +- 2 files changed, 99 insertions(+), 66 deletions(-) diff --git a/gajim/data/gui/themes_window.ui b/gajim/data/gui/themes_window.ui index 13d7ba832d..bca454d263 100644 --- a/gajim/data/gui/themes_window.ui +++ b/gajim/data/gui/themes_window.ui @@ -1,8 +1,8 @@ <?xml version="1.0" encoding="UTF-8"?> <!-- Generated with glade 3.22.1 --> <interface> - <requires lib="gtk+" version="3.18"/> - <object class="GtkPopover" id="popover1"> + <requires lib="gtk+" version="3.20"/> + <object class="GtkPopover" id="option_popover"> <property name="can_focus">False</property> <child> <object class="GtkScrolledWindow"> @@ -32,6 +32,27 @@ </object> </child> </object> + <object class="GtkBox" id="placeholder"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">vertical</property> + <child> + <object class="GtkLabel"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">Add a setting you would like to change</property> + <style> + <class name="bold"/> + <class name="dim-label"/> + </style> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + </object> <object class="GtkListStore" id="theme_store"> <columns> <!-- column-name name --> @@ -41,7 +62,6 @@ <object class="GtkGrid" id="theme_grid"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="row_spacing">6</property> <property name="column_spacing">6</property> <child> <object class="GtkScrolledWindow"> @@ -82,62 +102,6 @@ <property name="top_attach">0</property> </packing> </child> - <child> - <object class="GtkBox"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <child> - <object class="GtkButton"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">True</property> - <signal name="clicked" handler="_on_add_new_theme" swapped="no"/> - <child> - <object class="GtkImage"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="icon_name">list-add-symbolic</property> - <property name="icon_size">1</property> - </object> - </child> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkButton" id="remove_theme_button"> - <property name="visible">True</property> - <property name="sensitive">False</property> - <property name="can_focus">True</property> - <property name="receives_default">True</property> - <signal name="clicked" handler="_on_remove_theme" swapped="no"/> - <child> - <object class="GtkImage"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="icon_name">list-remove-symbolic</property> - <property name="icon_size">1</property> - </object> - </child> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">1</property> - </packing> - </child> - <style> - <class name="linked"/> - </style> - </object> - <packing> - <property name="left_attach">0</property> - <property name="top_attach">1</property> - </packing> - </child> <child> <object class="GtkScrolledWindow"> <property name="visible">True</property> @@ -174,18 +138,44 @@ <object class="GtkBox"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="halign">center</property> + <property name="valign">center</property> <child> <object class="GtkMenuButton" id="add_option_button"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">True</property> - <property name="popover">popover1</property> + <property name="popover">option_popover</property> <child> - <object class="GtkImage"> + <object class="GtkBox"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="icon_name">list-add-symbolic</property> - <property name="icon_size">1</property> + <property name="spacing">6</property> + <child> + <object class="GtkImage"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="icon_name">list-add-symbolic</property> + <property name="icon_size">1</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkLabel"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">Add Setting</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> </object> </child> </object> @@ -196,12 +186,52 @@ <property name="position">0</property> </packing> </child> + </object> + <packing> + <property name="left_attach">1</property> + <property name="top_attach">1</property> + </packing> + </child> + <child> + <object class="GtkToolbar"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="icon_size">2</property> + <child> + <object class="GtkToolButton" id="add_theme_button"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="tooltip_text" translatable="yes">Add new Theme</property> + <property name="use_underline">True</property> + <property name="icon_name">list-add-symbolic</property> + <signal name="clicked" handler="_on_add_new_theme" swapped="no"/> + </object> + <packing> + <property name="expand">False</property> + <property name="homogeneous">True</property> + </packing> + </child> + <child> + <object class="GtkToolButton" id="remove_theme_button"> + <property name="visible">True</property> + <property name="sensitive">False</property> + <property name="can_focus">False</property> + <property name="tooltip_text" translatable="yes">Remove Theme</property> + <property name="use_underline">True</property> + <property name="icon_name">list-remove-symbolic</property> + <signal name="clicked" handler="_on_remove_theme" swapped="no"/> + </object> + <packing> + <property name="expand">False</property> + <property name="homogeneous">True</property> + </packing> + </child> <style> - <class name="linked"/> + <class name="inline-toolbar"/> </style> </object> <packing> - <property name="left_attach">1</property> + <property name="left_attach">0</property> <property name="top_attach">1</property> </packing> </child> diff --git a/gajim/gtk/themes.py b/gajim/gtk/themes.py index bcbc3cc0da..01896d3dc3 100644 --- a/gajim/gtk/themes.py +++ b/gajim/gtk/themes.py @@ -185,7 +185,7 @@ def __init__(self, transient): widgets = ['option_listbox', 'remove_theme_button', 'theme_store', 'theme_treeview', 'choose_option_listbox', - 'add_option_button'] + 'add_option_button', 'placeholder', 'option_popover'] for widget in widgets: setattr(self, '_%s' % widget, self.builder.get_object(widget)) @@ -193,6 +193,7 @@ def __init__(self, transient): self._add_option_button.set_sensitive(False) self._get_themes() + self._option_listbox.set_placeholder(self._placeholder) self.builder.connect_signals(self) self.connect('destroy', self._on_destroy) @@ -264,6 +265,7 @@ def _add_option(self, listbox, row): return row = Option(row.option, None) self._option_listbox.add(row) + self._option_popover.popdown() def _clear_options(self): self._option_listbox.foreach(self._remove_option) @@ -367,6 +369,7 @@ def __init__(self, option, value): remove_button = Gtk.Button.new_from_icon_name( 'list-remove-symbolic', Gtk.IconSize.MENU) + remove_button.set_tooltip_text(_('Remove Setting')) remove_button.get_style_context().add_class('theme_remove_button') remove_button.connect('clicked', self._on_remove) self._box.add(remove_button) -- GitLab