Daniel Brötzmann pushed to branch master at gajim / gajim

Commits:

1 changed file:

Changes:

  • gajim/gtk/advanced_config.py
    ... ... @@ -43,6 +43,7 @@ class Column(IntEnum):
    43 43
         NAME = 0
    
    44 44
         VALUE = 1
    
    45 45
         TYPE = 2
    
    46
    +    IS_DEFAULT = 3
    
    46 47
     
    
    47 48
     
    
    48 49
     BOOL_DICT = {
    
    ... ... @@ -72,7 +73,7 @@ def __init__(self) -> None:
    72 73
     
    
    73 74
             treeview = self._ui.advanced_treeview
    
    74 75
             self.treeview = treeview
    
    75
    -        self.model = Gtk.TreeStore(str, str, str)
    
    76
    +        self.model = Gtk.TreeStore(str, str, str, bool)
    
    76 77
             self._fill_model()
    
    77 78
             self.model.set_sort_column_id(0, Gtk.SortType.ASCENDING)
    
    78 79
             self.modelfilter = self.model.filter_new()
    
    ... ... @@ -83,6 +84,8 @@ def __init__(self) -> None:
    83 84
             col = Gtk.TreeViewColumn(Q_('?config:Preference Name'),
    
    84 85
                                      renderer_text, text=0)
    
    85 86
             treeview.insert_column(col, -1)
    
    87
    +        col.set_cell_data_func(renderer_text,
    
    88
    +                               self._value_column_name_callback)
    
    86 89
             col.set_expand(True)
    
    87 90
             col.set_sizing(Gtk.TreeViewColumnSizing.FIXED)
    
    88 91
             col.set_resizable(True)
    
    ... ... @@ -120,14 +123,30 @@ def _on_key_press(self, _widget: Gtk.Widget, event: Gdk.EventKey) -> None:
    120 123
     
    
    121 124
             self.destroy()
    
    122 125
     
    
    126
    +    def _value_column_name_callback(self,
    
    127
    +                                    _col: Gtk.TreeViewColumn,
    
    128
    +                                    cell: Gtk.CellRenderer,
    
    129
    +                                    model: Gtk.TreeModel,
    
    130
    +                                    iter_: Gtk.TreeIter,
    
    131
    +                                    _data: Optional[object]
    
    132
    +                                    ) -> None:
    
    133
    +
    
    134
    +        opt_is_default = model[iter_][Column.IS_DEFAULT]
    
    135
    +        cell.set_property('weight', 400 if opt_is_default else 700)
    
    136
    +
    
    123 137
         def _value_column_data_callback(self,
    
    124 138
                                         _col: Gtk.TreeViewColumn,
    
    125 139
                                         cell: Gtk.CellRenderer,
    
    126 140
                                         model: Gtk.TreeModel,
    
    127 141
                                         iter_: Gtk.TreeIter,
    
    128
    -                                    _data: Optional[object]):
    
    129
    -        opttype = model[iter_][Column.TYPE]
    
    130
    -        cell.set_property('editable', opttype != SETTING_TYPES[bool])
    
    142
    +                                    _data: Optional[object]
    
    143
    +                                    ) -> None:
    
    144
    +
    
    145
    +        opt_type = model[iter_][Column.TYPE]
    
    146
    +        cell.set_property('editable', opt_type != SETTING_TYPES[bool])
    
    147
    +
    
    148
    +        opt_is_default = model[iter_][Column.IS_DEFAULT]
    
    149
    +        cell.set_property('weight', 400 if opt_is_default else 700)
    
    131 150
     
    
    132 151
         def _on_treeview_selection_changed(self,
    
    133 152
                                            treeselection: Gtk.TreeSelection
    
    ... ... @@ -158,20 +177,24 @@ def _on_treeview_row_activated(self,
    158 177
     
    
    159 178
             setting_value = modelrow[Column.VALUE] != _('Activated')
    
    160 179
             column_value = BOOL_DICT[setting_value]
    
    180
    +        default = APP_SETTINGS[setting]
    
    161 181
     
    
    162 182
             app.settings.set(setting, setting_value)
    
    163 183
             modelrow[Column.VALUE] = column_value
    
    184
    +        modelrow[Column.IS_DEFAULT] = bool(setting_value == default)
    
    164 185
     
    
    165 186
         def _on_config_edited(self,
    
    166 187
                               _cell: Gtk.CellRendererText,
    
    167 188
                               path: str,
    
    168 189
                               text: str
    
    169 190
                               ) -> None:
    
    191
    +
    
    170 192
             treepath = Gtk.TreePath.new_from_string(path)
    
    171 193
             modelpath = self.modelfilter.convert_path_to_child_path(treepath)
    
    172 194
             assert modelpath
    
    173 195
             modelrow = self.model[modelpath]
    
    174 196
             setting = modelrow[Column.NAME]
    
    197
    +        default = APP_SETTINGS[setting]
    
    175 198
     
    
    176 199
             value = text
    
    177 200
             if modelrow[Column.TYPE] == SETTING_TYPES[int]:
    
    ... ... @@ -179,6 +202,7 @@ def _on_config_edited(self,
    179 202
     
    
    180 203
             app.settings.set(setting, value)
    
    181 204
             modelrow[Column.VALUE] = text
    
    205
    +        modelrow[Column.IS_DEFAULT] = bool(value == default)
    
    182 206
     
    
    183 207
         def _on_reset_button_clicked(self, button: Gtk.Button) -> None:
    
    184 208
             model, iter_ = self.treeview.get_selection().get_selected()
    
    ... ... @@ -193,6 +217,8 @@ def _on_reset_button_clicked(self, button: Gtk.Button) -> None:
    193 217
             else:
    
    194 218
                 model[iter_][Column.VALUE] = str(default)
    
    195 219
     
    
    220
    +        model[iter_][Column.IS_DEFAULT] = True
    
    221
    +
    
    196 222
             app.settings.set(setting, default)
    
    197 223
             button.set_sensitive(False)
    
    198 224
     
    
    ... ... @@ -203,6 +229,9 @@ def _fill_model(self) -> None:
    203 229
     
    
    204 230
                 for setting in settings:
    
    205 231
                     value = app.settings.get(setting)
    
    232
    +                default = APP_SETTINGS[setting]
    
    233
    +                is_default = bool(value == default)
    
    234
    +
    
    206 235
                     if isinstance(value, bool):
    
    207 236
                         value = BOOL_DICT[value]
    
    208 237
                         type_ = SETTING_TYPES[bool]
    
    ... ... @@ -217,7 +246,7 @@ def _fill_model(self) -> None:
    217 246
                     else:
    
    218 247
                         raise ValueError
    
    219 248
     
    
    220
    -                self.model.append(None, [setting, value, type_])
    
    249
    +                self.model.append(None, [setting, value, type_, is_default])
    
    221 250
     
    
    222 251
         def _visible_func(self,
    
    223 252
                           model: Gtk.TreeModel,