Daniel Brötzmann pushed to branch master at gajim / gajim
Commits: 9c05702d by wurstsalat at 2022-09-11T17:06:15+02:00 imprv: ACE: Highlight non-default values
Fixes #11120
- - - - -
1 changed file:
- gajim/gtk/advanced_config.py
Changes:
===================================== gajim/gtk/advanced_config.py ===================================== @@ -43,6 +43,7 @@ class Column(IntEnum): NAME = 0 VALUE = 1 TYPE = 2 + IS_DEFAULT = 3
BOOL_DICT = { @@ -72,7 +73,7 @@ def __init__(self) -> None:
treeview = self._ui.advanced_treeview self.treeview = treeview - self.model = Gtk.TreeStore(str, str, str) + self.model = Gtk.TreeStore(str, str, str, bool) self._fill_model() self.model.set_sort_column_id(0, Gtk.SortType.ASCENDING) self.modelfilter = self.model.filter_new() @@ -83,6 +84,8 @@ def __init__(self) -> None: col = Gtk.TreeViewColumn(Q_('?config:Preference Name'), renderer_text, text=0) treeview.insert_column(col, -1) + col.set_cell_data_func(renderer_text, + self._value_column_name_callback) col.set_expand(True) col.set_sizing(Gtk.TreeViewColumnSizing.FIXED) col.set_resizable(True) @@ -120,14 +123,30 @@ def _on_key_press(self, _widget: Gtk.Widget, event: Gdk.EventKey) -> None:
self.destroy()
+ def _value_column_name_callback(self, + _col: Gtk.TreeViewColumn, + cell: Gtk.CellRenderer, + model: Gtk.TreeModel, + iter_: Gtk.TreeIter, + _data: Optional[object] + ) -> None: + + opt_is_default = model[iter_][Column.IS_DEFAULT] + cell.set_property('weight', 400 if opt_is_default else 700) + def _value_column_data_callback(self, _col: Gtk.TreeViewColumn, cell: Gtk.CellRenderer, model: Gtk.TreeModel, iter_: Gtk.TreeIter, - _data: Optional[object]): - opttype = model[iter_][Column.TYPE] - cell.set_property('editable', opttype != SETTING_TYPES[bool]) + _data: Optional[object] + ) -> None: + + opt_type = model[iter_][Column.TYPE] + cell.set_property('editable', opt_type != SETTING_TYPES[bool]) + + opt_is_default = model[iter_][Column.IS_DEFAULT] + cell.set_property('weight', 400 if opt_is_default else 700)
def _on_treeview_selection_changed(self, treeselection: Gtk.TreeSelection @@ -158,20 +177,24 @@ def _on_treeview_row_activated(self,
setting_value = modelrow[Column.VALUE] != _('Activated') column_value = BOOL_DICT[setting_value] + default = APP_SETTINGS[setting]
app.settings.set(setting, setting_value) modelrow[Column.VALUE] = column_value + modelrow[Column.IS_DEFAULT] = bool(setting_value == default)
def _on_config_edited(self, _cell: Gtk.CellRendererText, path: str, text: str ) -> None: + treepath = Gtk.TreePath.new_from_string(path) modelpath = self.modelfilter.convert_path_to_child_path(treepath) assert modelpath modelrow = self.model[modelpath] setting = modelrow[Column.NAME] + default = APP_SETTINGS[setting]
value = text if modelrow[Column.TYPE] == SETTING_TYPES[int]: @@ -179,6 +202,7 @@ def _on_config_edited(self,
app.settings.set(setting, value) modelrow[Column.VALUE] = text + modelrow[Column.IS_DEFAULT] = bool(value == default)
def _on_reset_button_clicked(self, button: Gtk.Button) -> None: model, iter_ = self.treeview.get_selection().get_selected() @@ -193,6 +217,8 @@ def _on_reset_button_clicked(self, button: Gtk.Button) -> None: else: model[iter_][Column.VALUE] = str(default)
+ model[iter_][Column.IS_DEFAULT] = True + app.settings.set(setting, default) button.set_sensitive(False)
@@ -203,6 +229,9 @@ def _fill_model(self) -> None:
for setting in settings: value = app.settings.get(setting) + default = APP_SETTINGS[setting] + is_default = bool(value == default) + if isinstance(value, bool): value = BOOL_DICT[value] type_ = SETTING_TYPES[bool] @@ -217,7 +246,7 @@ def _fill_model(self) -> None: else: raise ValueError
- self.model.append(None, [setting, value, type_]) + self.model.append(None, [setting, value, type_, is_default])
def _visible_func(self, model: Gtk.TreeModel,
View it on GitLab: https://dev.gajim.org/gajim/gajim/-/commit/9c05702db40503c2452252b074d8f7384...