Philipp Hörist pushed to branch master at gajim / gajim
Commits: b5416f0e by Daniel Brötzmann at 2018-10-25T22:06:27Z Rework ACE
- - - - -
2 changed files:
- gajim/data/gui/advanced_configuration_window.ui - gajim/gtk/advanced_config.py
Changes:
===================================== gajim/data/gui/advanced_configuration_window.ui ===================================== @@ -1,16 +1,10 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Generated with glade 3.18.3 --> +<!-- Generated with glade 3.22.1 --> <interface> - <requires lib="gtk+" version="3.12"/> - <object class="GtkImage" id="image1"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="stock">gtk-dialog-warning</property> - </object> + <requires lib="gtk+" version="3.20"/> <object class="GtkWindow" id="advanced_configuration_window"> <property name="can_focus">False</property> - <property name="border_width">6</property> - <property name="title" translatable="yes">Advanced Configuration Editor</property> + <property name="title" translatable="yes">Advanced Configuration Editor (ACE)</property> <property name="role">ace</property> <property name="window_position">center-on-parent</property> <property name="default_width">650</property> @@ -18,21 +12,81 @@ <property name="type_hint">dialog</property> <signal name="destroy" handler="on_advanced_configuration_window_destroy" swapped="no"/> <child> - <object class="GtkBox" id="box2"> + <placeholder/> + </child> + <child> + <object class="GtkBox"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="border_width">18</property> <property name="orientation">vertical</property> <property name="spacing">6</property> <child> - <object class="GtkBox" id="box3"> + <object class="GtkInfoBar" id="restart_warning"> + <property name="can_focus">False</property> + <property name="no_show_all">True</property> + <property name="message_type">warning</property> + <child internal-child="action_area"> + <object class="GtkButtonBox"> + <property name="can_focus">False</property> + <property name="spacing">6</property> + <property name="layout_style">end</property> + <child> + <placeholder/> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">0</property> + </packing> + </child> + <child internal-child="content_area"> + <object class="GtkBox"> + <property name="can_focus">False</property> + <property name="spacing">16</property> + <child> + <object class="GtkLabel"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">You should restart Gajim for some changes to take effect</property> + <property name="use_markup">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">0</property> + </packing> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkBox"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="spacing">12</property> <child> - <object class="GtkLabel" id="label1"> + <object class="GtkLabel"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="label" translatable="yes">Filter:</property> + <property name="label" translatable="yes">_Filter</property> + <property name="use_underline">True</property> + <property name="mnemonic_widget">advanced_entry</property> + <style> + <class name="dim-label"/> + </style> </object> <packing> <property name="expand">False</property> @@ -56,11 +110,12 @@ <packing> <property name="expand">False</property> <property name="fill">True</property> - <property name="position">0</property> + <property name="position">1</property> </packing> </child> <child> - <object class="GtkScrolledWindow" id="scrolledwindow36"> + <object class="GtkScrolledWindow"> + <property name="height_request">200</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="hscrollbar_policy">never</property> @@ -72,7 +127,7 @@ <property name="rules_hint">True</property> <signal name="row-activated" handler="on_advanced_treeview_row_activated" swapped="no"/> <child internal-child="selection"> - <object class="GtkTreeSelection" id="treeview-selection"/> + <object class="GtkTreeSelection"/> </child> </object> </child> @@ -81,47 +136,26 @@ <property name="expand">True</property> <property name="fill">True</property> <property name="padding">1</property> - <property name="position">1</property> + <property name="position">2</property> </packing> </child> <child> - <object class="GtkFrame" id="frame36"> + <object class="GtkBox"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="border_width">3</property> - <property name="label_xalign">0</property> - <property name="shadow_type">none</property> + <property name="orientation">vertical</property> + <property name="spacing">6</property> <child> - <object class="GtkLabel" id="advanced_desc_label"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="margin_left">12</property> - <property name="xalign">0</property> - <property name="wrap">True</property> - </object> - </child> - <child type="label"> - <object class="GtkLabel" id="label357"> + <object class="GtkLabel"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="label" translatable="yes"><b>Description</b></property> + <property name="halign">start</property> + <property name="label" translatable="yes">Description</property> <property name="use_markup">True</property> - </object> - </child> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">2</property> - </packing> - </child> - <child> - <object class="GtkBox" id="restart_box"> - <property name="can_focus">False</property> - <child> - <object class="GtkImage" id="image3"> - <property name="can_focus">False</property> - <property name="stock">gtk-dialog-warning</property> + <style> + <class name="bold"/> + <class name="dim-label"/> + </style> </object> <packing> <property name="expand">False</property> @@ -130,15 +164,16 @@ </packing> </child> <child> - <object class="GtkLabel" id="restart_label"> + <object class="GtkLabel" id="description"> + <property name="height_request">30</property> + <property name="visible">True</property> <property name="can_focus">False</property> + <property name="halign">start</property> + <property name="wrap">True</property> <property name="xalign">0</property> - <property name="label" translatable="yes"><b>NOTE:</b> You should restart Gajim for some settings to take effect</property> - <property name="use_markup">True</property> - <property name="use_underline">True</property> </object> <packing> - <property name="expand">True</property> + <property name="expand">False</property> <property name="fill">True</property> <property name="position">1</property> </packing> @@ -147,13 +182,14 @@ <packing> <property name="expand">False</property> <property name="fill">True</property> - <property name="position">3</property> + <property name="position">4</property> </packing> </child> <child> - <object class="GtkButtonBox" id="buttonbox1"> + <object class="GtkButtonBox"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="margin_top">12</property> <property name="spacing">6</property> <property name="layout_style">end</property> <child> @@ -162,10 +198,12 @@ <property name="visible">True</property> <property name="sensitive">False</property> <property name="can_focus">True</property> - <property name="receives_default">True</property> - <property name="image">image1</property> + <property name="receives_default">False</property> <property name="use_underline">True</property> <signal name="clicked" handler="on_reset_button_clicked" swapped="no"/> + <style> + <class name="destructive-action"/> + </style> </object> <packing> <property name="expand">False</property> @@ -193,15 +231,10 @@ <packing> <property name="expand">False</property> <property name="fill">True</property> - <property name="position">4</property> + <property name="position">5</property> </packing> </child> </object> </child> </object> - <object class="GtkImage" id="image2"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="stock">gtk-undo</property> - </object> </interface>
===================================== gajim/gtk/advanced_config.py ===================================== @@ -69,13 +69,8 @@ def tree_model_pre_order(model, treeiter):
class AdvancedConfig: def __init__(self, transient): - self.xml = get_builder('advanced_configuration_window.ui') - self.window = self.xml.get_object('advanced_configuration_window') - self.window.set_transient_for(transient) - self.entry = self.xml.get_object('advanced_entry') - self.desc_label = self.xml.get_object('advanced_desc_label') - self.restart_box = self.xml.get_object('restart_box') - self.reset_button = self.xml.get_object('reset_button') + self._ui = get_builder('advanced_configuration_window.ui') + self._ui.advanced_configuration_window.set_transient_for(transient)
# Format: # key = option name (root/subopt/opt separated by \n then) @@ -90,7 +85,7 @@ class AdvancedConfig: 'string': _('Text'), 'color': _('Color')}
- treeview = self.xml.get_object('advanced_treeview') + treeview = self._ui.advanced_treeview self.treeview = treeview self.model = Gtk.TreeStore(str, str, str) self.fill_model() @@ -121,13 +116,12 @@ class AdvancedConfig:
treeview.set_model(self.modelfilter)
- # connect signal for selection change + # Connect signal for selection change treeview.get_selection().connect('changed', self.on_advanced_treeview_selection_changed)
- self.xml.connect_signals(self) - self.restart_box.set_no_show_all(True) - self.window.show_all() + self._ui.connect_signals(self) + self._ui.advanced_configuration_window.show_all() app.interface.instances['advanced_config'] = self
def cb_value_column_data(self, col, cell, model, iter_, data): @@ -168,17 +162,17 @@ class AdvancedConfig: elif len(opt_path) == 1: desc = app.config.get_desc(opt_path[0]) if desc: - self.desc_label.set_text(desc) + self._ui.description.set_text(desc) else: - #we talk about option description in advanced configuration editor - self.desc_label.set_text(_('(None)')) + # We talk about option description in advanced configuration editor + self._ui.description.set_text(_('(None)')) if len(opt_path) == 3 or (len(opt_path) == 1 and not \ model.iter_has_child(iter_)): - self.reset_button.set_sensitive(True) + self._ui.reset_button.set_sensitive(True) else: - self.reset_button.set_sensitive(False) + self._ui.reset_button.set_sensitive(False) else: - self.reset_button.set_sensitive(False) + self._ui.reset_button.set_sensitive(False)
def remember_option(self, option, oldval, newval): if option in self.changed_opts: @@ -211,7 +205,7 @@ class AdvancedConfig: self.check_for_restart()
def check_for_restart(self): - self.restart_box.hide() + self._ui.restart_warning.hide() for opt in self.changed_opts: opt_path = opt.split('\n') if len(opt_path) == 3: @@ -221,12 +215,12 @@ class AdvancedConfig: restart = app.config.get_restart(opt_path[0]) if restart: if self.changed_opts[opt][0] != self.changed_opts[opt][1]: - self.restart_box.set_no_show_all(False) - self.restart_box.show_all() + self._ui.restart_warning.set_no_show_all(False) + self._ui.restart_warning.show() break
def on_config_edited(self, cell, path, text): - # convert modelfilter path to model path + # Convert modelfilter path to model path path = Gtk.TreePath.new_from_string(path) modelpath = self.modelfilter.convert_path_to_child_path(path) modelrow = self.model[modelpath] @@ -287,7 +281,7 @@ class AdvancedConfig: self.on_config_edited(None, path.to_string(), str(default))
def on_advanced_close_button_clicked(self, widget): - self.window.destroy() + self._ui.advanced_configuration_window.destroy()
def fill_model(self, node=None, parent=None): for item, option in app.config.get_children(node): @@ -314,7 +308,7 @@ class AdvancedConfig: self.model.append(parent, [name, value, type_])
def visible_func(self, model, treeiter, data): - search_string = self.entry.get_text().lower() + search_string = self._ui.advanced_entry.get_text().lower() for it in tree_model_pre_order(model, treeiter): if model[it][Column.TYPE] != '': opt_path = self.get_option_path(model, it)
View it on GitLab: https://dev.gajim.org/gajim/gajim/commit/b5416f0e9717ab969a87564319f89113f57...