Philipp Hörist pushed to branch master at gajim / gajim
Commits: 782602e5 by lovetox at 2020-09-07T17:46:25+02:00 Settings: Add default_text argument for bind_signal() default_text is returned if the value of the setting is an empty string - - - - - 43ea1969 by lovetox at 2020-09-07T17:47:35+02:00 Settings: Reset proxy setting if it is deleted - - - - - 837ade88 by lovetox at 2020-09-07T18:09:18+02:00 PopoverSetting: Use default_text argument - - - - - fa8bab81 by lovetox at 2020-09-07T18:10:11+02:00 Accounts: Use default_text argument for proxy setting - - - - - 3 changed files: - gajim/common/settings.py - gajim/gtk/accounts.py - gajim/gtk/settings.py Changes: ===================================== gajim/common/settings.py ===================================== @@ -104,14 +104,15 @@ class _Settings: func_name, account=None, jid=None, - inverted=False): + inverted=False, + default_text=None): callbacks = self._callbacks[(setting, account, jid)] func = getattr(widget, func_name) - callbacks.append((func, inverted)) + callbacks.append((func, inverted, default_text)) def _on_destroy(*args): - callbacks.remove((func, inverted)) + callbacks.remove((func, inverted, default_text)) widget.connect('destroy', _on_destroy) @@ -121,10 +122,13 @@ class _Settings: callbacks = self._callbacks[(setting, account, jid)] for func in list(callbacks): if isinstance(func, tuple): - func, inverted = func - if inverted: + func, inverted, default_text = func + if isinstance(value, bool) and inverted: value = not value + if value == '' and default_text is not None: + value = default_text + try: func(value) except Exception: @@ -825,6 +829,13 @@ class _Settings: del self._settings['proxies'][proxy_name] self._commit_settings('proxies') + if self.get_app_setting('global_proxy') == proxy_name: + self.set_app_setting('global_proxy', None) + + for account in self._account_settings: + if self.get_account_setting(account, 'proxy') == proxy_name: + self.set_account_setting(account, 'proxy', None) + Settings = _Settings() ===================================== gajim/gtk/accounts.py ===================================== @@ -693,6 +693,7 @@ class ConnectionPage(GenericSettingPage): Setting(SettingKind.POPOVER, _('Proxy'), SettingType.ACCOUNT_CONFIG, 'proxy', name='proxy', props={'entries': self._get_proxies(), + 'default-text': _('No Proxy'), 'button-icon-name': 'preferences-system-symbolic', 'button-callback': self._on_proxy_edit}), @@ -720,10 +721,7 @@ class ConnectionPage(GenericSettingPage): @staticmethod def _get_proxies(): - proxies = {'': _('No Proxy')} - for proxy in app.settings.get_proxies(): - proxies[proxy] = proxy - return proxies + return {proxy: proxy for proxy in app.settings.get_proxies()} @staticmethod def _on_proxy_edit(*args): ===================================== gajim/gtk/settings.py ===================================== @@ -542,6 +542,8 @@ class PopoverSetting(GenericSetting): box.set_halign(Gtk.Align.END) box.set_hexpand(True) + self._default_text = kwargs.get('default-text') + self._current_label = Gtk.Label() self._current_label.set_valign(Gtk.Align.CENTER) image = Gtk.Image.new_from_icon_name('pan-down-symbolic', @@ -576,7 +578,8 @@ class PopoverSetting(GenericSetting): self._add_action_button(kwargs) - self._current_label.set_text(entries.get(self.setting_value, '')) + self._current_label.set_text(entries.get(self.setting_value, + self._default_text or '')) self._bind_label() @@ -588,12 +591,17 @@ class PopoverSetting(GenericSetting): app.settings.bind_signal(self.value, self._current_label, - 'set_text') + 'set_text', + account=self.account, + default_text=self._default_text) def _add_menu_entries(self, entries): if isinstance(entries, list): entries = {key: key for key in entries} + if self._default_text is not None: + self._menu_listbox.add(PopoverRow(self._default_text, '')) + for value, label in entries.items(): self._menu_listbox.add(PopoverRow(label, value)) @@ -601,7 +609,6 @@ class PopoverSetting(GenericSetting): def _on_menu_row_activated(self, listbox, row): listbox.unselect_all() - self._current_label.set_text(row.label) self._popover.popdown() self.set_value(row.value) View it on GitLab: https://dev.gajim.org/gajim/gajim/-/compare/2e1252c4154f581e790bf4440ead0303629cffdd...fa8bab81a302fe1adc9f91c440940d1538e93c80 -- View it on GitLab: https://dev.gajim.org/gajim/gajim/-/compare/2e1252c4154f581e790bf4440ead0303629cffdd...fa8bab81a302fe1adc9f91c440940d1538e93c80 You're receiving this email because of your account on dev.gajim.org.
_______________________________________________ Commits mailing list Commits@gajim.org https://lists.gajim.org/cgi-bin/listinfo/commits