Philipp Hörist pushed to branch master at gajim / gajim
Commits:
-
782602e5
by lovetox at 2020-09-07T17:46:25+02:00
-
43ea1969
by lovetox at 2020-09-07T17:47:35+02:00
-
837ade88
by lovetox at 2020-09-07T18:09:18+02:00
-
fa8bab81
by lovetox at 2020-09-07T18:10:11+02:00
3 changed files:
Changes:
| ... | ... | @@ -104,14 +104,15 @@ class _Settings: |
| 104 | 104 |
func_name,
|
| 105 | 105 |
account=None,
|
| 106 | 106 |
jid=None,
|
| 107 |
- inverted=False):
|
|
| 107 |
+ inverted=False,
|
|
| 108 |
+ default_text=None):
|
|
| 108 | 109 |
|
| 109 | 110 |
callbacks = self._callbacks[(setting, account, jid)]
|
| 110 | 111 |
func = getattr(widget, func_name)
|
| 111 |
- callbacks.append((func, inverted))
|
|
| 112 |
+ callbacks.append((func, inverted, default_text))
|
|
| 112 | 113 |
|
| 113 | 114 |
def _on_destroy(*args):
|
| 114 |
- callbacks.remove((func, inverted))
|
|
| 115 |
+ callbacks.remove((func, inverted, default_text))
|
|
| 115 | 116 |
|
| 116 | 117 |
widget.connect('destroy', _on_destroy)
|
| 117 | 118 |
|
| ... | ... | @@ -121,10 +122,13 @@ class _Settings: |
| 121 | 122 |
callbacks = self._callbacks[(setting, account, jid)]
|
| 122 | 123 |
for func in list(callbacks):
|
| 123 | 124 |
if isinstance(func, tuple):
|
| 124 |
- func, inverted = func
|
|
| 125 |
- if inverted:
|
|
| 125 |
+ func, inverted, default_text = func
|
|
| 126 |
+ if isinstance(value, bool) and inverted:
|
|
| 126 | 127 |
value = not value
|
| 127 | 128 |
|
| 129 |
+ if value == '' and default_text is not None:
|
|
| 130 |
+ value = default_text
|
|
| 131 |
+ |
|
| 128 | 132 |
try:
|
| 129 | 133 |
func(value)
|
| 130 | 134 |
except Exception:
|
| ... | ... | @@ -825,6 +829,13 @@ class _Settings: |
| 825 | 829 |
del self._settings['proxies'][proxy_name]
|
| 826 | 830 |
self._commit_settings('proxies')
|
| 827 | 831 |
|
| 832 |
+ if self.get_app_setting('global_proxy') == proxy_name:
|
|
| 833 |
+ self.set_app_setting('global_proxy', None)
|
|
| 834 |
+ |
|
| 835 |
+ for account in self._account_settings:
|
|
| 836 |
+ if self.get_account_setting(account, 'proxy') == proxy_name:
|
|
| 837 |
+ self.set_account_setting(account, 'proxy', None)
|
|
| 838 |
+ |
|
| 828 | 839 |
|
| 829 | 840 |
Settings = _Settings()
|
| 830 | 841 |
|
| ... | ... | @@ -693,6 +693,7 @@ class ConnectionPage(GenericSettingPage): |
| 693 | 693 |
Setting(SettingKind.POPOVER, _('Proxy'),
|
| 694 | 694 |
SettingType.ACCOUNT_CONFIG, 'proxy', name='proxy',
|
| 695 | 695 |
props={'entries': self._get_proxies(),
|
| 696 |
+ 'default-text': _('No Proxy'),
|
|
| 696 | 697 |
'button-icon-name': 'preferences-system-symbolic',
|
| 697 | 698 |
'button-callback': self._on_proxy_edit}),
|
| 698 | 699 |
|
| ... | ... | @@ -720,10 +721,7 @@ class ConnectionPage(GenericSettingPage): |
| 720 | 721 |
|
| 721 | 722 |
@staticmethod
|
| 722 | 723 |
def _get_proxies():
|
| 723 |
- proxies = {'': _('No Proxy')}
|
|
| 724 |
- for proxy in app.settings.get_proxies():
|
|
| 725 |
- proxies[proxy] = proxy
|
|
| 726 |
- return proxies
|
|
| 724 |
+ return {proxy: proxy for proxy in app.settings.get_proxies()}
|
|
| 727 | 725 |
|
| 728 | 726 |
@staticmethod
|
| 729 | 727 |
def _on_proxy_edit(*args):
|
| ... | ... | @@ -542,6 +542,8 @@ class PopoverSetting(GenericSetting): |
| 542 | 542 |
box.set_halign(Gtk.Align.END)
|
| 543 | 543 |
box.set_hexpand(True)
|
| 544 | 544 |
|
| 545 |
+ self._default_text = kwargs.get('default-text')
|
|
| 546 |
+ |
|
| 545 | 547 |
self._current_label = Gtk.Label()
|
| 546 | 548 |
self._current_label.set_valign(Gtk.Align.CENTER)
|
| 547 | 549 |
image = Gtk.Image.new_from_icon_name('pan-down-symbolic',
|
| ... | ... | @@ -576,7 +578,8 @@ class PopoverSetting(GenericSetting): |
| 576 | 578 |
|
| 577 | 579 |
self._add_action_button(kwargs)
|
| 578 | 580 |
|
| 579 |
- self._current_label.set_text(entries.get(self.setting_value, ''))
|
|
| 581 |
+ self._current_label.set_text(entries.get(self.setting_value,
|
|
| 582 |
+ self._default_text or ''))
|
|
| 580 | 583 |
|
| 581 | 584 |
self._bind_label()
|
| 582 | 585 |
|
| ... | ... | @@ -588,12 +591,17 @@ class PopoverSetting(GenericSetting): |
| 588 | 591 |
|
| 589 | 592 |
app.settings.bind_signal(self.value,
|
| 590 | 593 |
self._current_label,
|
| 591 |
- 'set_text')
|
|
| 594 |
+ 'set_text',
|
|
| 595 |
+ account=self.account,
|
|
| 596 |
+ default_text=self._default_text)
|
|
| 592 | 597 |
|
| 593 | 598 |
def _add_menu_entries(self, entries):
|
| 594 | 599 |
if isinstance(entries, list):
|
| 595 | 600 |
entries = {key: key for key in entries}
|
| 596 | 601 |
|
| 602 |
+ if self._default_text is not None:
|
|
| 603 |
+ self._menu_listbox.add(PopoverRow(self._default_text, ''))
|
|
| 604 |
+ |
|
| 597 | 605 |
for value, label in entries.items():
|
| 598 | 606 |
self._menu_listbox.add(PopoverRow(label, value))
|
| 599 | 607 |
|
| ... | ... | @@ -601,7 +609,6 @@ class PopoverSetting(GenericSetting): |
| 601 | 609 |
|
| 602 | 610 |
def _on_menu_row_activated(self, listbox, row):
|
| 603 | 611 |
listbox.unselect_all()
|
| 604 |
- self._current_label.set_text(row.label)
|
|
| 605 | 612 |
self._popover.popdown()
|
| 606 | 613 |
|
| 607 | 614 |
self.set_value(row.value)
|