Philipp Hörist pushed to branch master at gajim / gajim

Commits:

3 changed files:

Changes:

  • gajim/common/settings.py
    ... ... @@ -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
     
    

  • gajim/gtk/accounts.py
    ... ... @@ -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):
    

  • gajim/gtk/settings.py
    ... ... @@ -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)