# HG changeset patch # User Goffi # Date 1585419095 -3600 # Node ID ff5516adc1f5d0091423d773a33f79b119e777a2 # Parent 6c21a5a44b54433db87bb57ffa3551b9bf55a5db profile manager: don't activate `Connect` button until we get authentication result from backend diff -r 6c21a5a44b54 -r ff5516adc1f5 cagou/core/profile_manager.py --- a/cagou/core/profile_manager.py Mon Mar 23 16:52:08 2020 +0100 +++ b/cagou/core/profile_manager.py Sat Mar 28 19:11:35 2020 +0100 @@ -140,7 +140,6 @@ self.screen_manager.add_widget(self.new_profile_screen) self.screen_manager.add_widget(self.delete_profiles_screen) self.add_widget(self.screen_manager) - self.bind(selected=self.onProfileSelect) def closeUI(self, xmlui, reason=None): self.screen_manager.transition.direction = 'right' @@ -155,23 +154,23 @@ self.screen_manager.transition.direction = 'left' self.screen_manager.current = 'xmlui' - def onProfileSelect(self, __, selected): - if not selected: + def selectProfile(self, profile_item): + if not profile_item.selected: return def authenticate_cb(data, cb_id, profile): if not C.bool(data.pop('validated', C.BOOL_FALSE)): # profile didn't validate, we unselect it - selected.state = 'normal' + profile_item.state = 'normal' self.selected = '' else: # state may have been modified so we need to be sure it's down - selected.state = 'down' - self.selected = selected + profile_item.state = 'down' + self.selected = profile_item G.host.actionManager(data, callback=authenticate_cb, ui_show_cb=self.showUI, profile=profile) G.host.launchAction(C.AUTHENTICATE_PROFILE_ID, callback=authenticate_cb, - profile=selected.text) + profile=profile_item.text) def getProfiles(self): # for now we restrict to a single profile in Cagou diff -r 6c21a5a44b54 -r ff5516adc1f5 cagou/kv/profile_manager.kv --- a/cagou/kv/profile_manager.kv Mon Mar 23 16:52:08 2020 +0100 +++ b/cagou/kv/profile_manager.kv Sat Mar 28 19:11:35 2020 +0100 @@ -193,5 +193,5 @@ selected: self.state == 'down' color: 0,0,0,1 background_color: self.selected_color if self.selected else self.deselected_color - on_press: self.ps.pm.selected = self if self.selected else '' + on_press: self.ps.pm.selectProfile(self) height: dp(30)