Accounts: Update proxy combobox correctly

This commit is contained in:
Philipp Hörist 2019-01-22 22:00:20 +01:00
parent 1a7d930fc4
commit dad99f85fc
1 changed files with 19 additions and 4 deletions

View File

@ -477,11 +477,11 @@ class ProxyComboOption(GenericOption):
GenericOption.__init__(self, *args)
self.combo = Gtk.ComboBoxText()
self.update_values()
self.combo.connect('changed', self.on_value_change)
self.combo.set_valign(Gtk.Align.CENTER)
self._signal_id = None
self.update_values()
button = get_image_button(
'preferences-system-symbolic', _('Manage Proxies'))
button.set_action_name('app.manage-proxies')
@ -491,7 +491,18 @@ class ProxyComboOption(GenericOption):
self.option_box.pack_start(button, False, True, 0)
self.show_all()
def _block_signal(self, state):
if state:
if self._signal_id is None:
return
self.combo.disconnect(self._signal_id)
else:
self._signal_id = self.combo.connect('changed',
self.on_value_change)
self.combo.emit('changed')
def update_values(self):
self._block_signal(True)
proxies = app.config.get_per('proxies')
proxies.insert(0, _('No Proxy'))
self.combo.remove_all()
@ -499,8 +510,12 @@ class ProxyComboOption(GenericOption):
self.combo.insert_text(-1, value)
if value == self.option_value or index == 0:
self.combo.set_active(index)
self._block_signal(False)
def on_value_change(self, combo):
if combo.get_active() == 0:
self.set_value('')
else:
self.set_value(combo.get_active_text())
def on_row_activated(self):