From 104c48b6eb3d6c2a092fae4d50ddd54d0130609b Mon Sep 17 00:00:00 2001 From: Ivan Alejandro Date: Tue, 5 Nov 2013 14:10:33 -0300 Subject: Move string encoding to srpregister. --- src/leap/bitmask/gui/wizard.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'src/leap/bitmask/gui/wizard.py') diff --git a/src/leap/bitmask/gui/wizard.py b/src/leap/bitmask/gui/wizard.py index 6ba65410..e9c1d86c 100644 --- a/src/leap/bitmask/gui/wizard.py +++ b/src/leap/bitmask/gui/wizard.py @@ -226,9 +226,7 @@ class Wizard(QtGui.QWizard): self._registration_finished) threads.deferToThread( - partial(register.register_user, - username.encode("utf8"), - password.encode("utf8"))) + partial(register.register_user, username, password)) self._username = username self._password = password -- cgit v1.2.3 From 5ae44d80876aa9c1e60280fbf437ee687d9bc3c8 Mon Sep 17 00:00:00 2001 From: Ivan Alejandro Date: Tue, 5 Nov 2013 14:59:30 -0300 Subject: Handle Timeout errors during register. Also catch all request exceptions to avoid failures. [Closes #4358] --- src/leap/bitmask/gui/wizard.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/leap/bitmask/gui/wizard.py') diff --git a/src/leap/bitmask/gui/wizard.py b/src/leap/bitmask/gui/wizard.py index e9c1d86c..8de5802e 100644 --- a/src/leap/bitmask/gui/wizard.py +++ b/src/leap/bitmask/gui/wizard.py @@ -280,7 +280,8 @@ class Wizard(QtGui.QWizard): old_username = self._username self._username = None self._password = None - error_msg = self.tr("Unknown error") + error_msg = self.tr("Something has gone wrong. " + "Please try again.") try: content, _ = get_content(req) json_content = json.loads(content) -- cgit v1.2.3 From 768bdfa653e7ef9829f355822ee0273072520c5f Mon Sep 17 00:00:00 2001 From: Ivan Alejandro Date: Wed, 6 Nov 2013 13:00:13 -0300 Subject: Fix 'cancel' and 'back' misbehavior. - Check if the 'next' button should be enabled after 'cancel' or 'back'. - Also, when the radio button is switched from existing to new provider, check if we need to enable the 'check' button. [Closes #4148] --- src/leap/bitmask/gui/wizard.py | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) (limited to 'src/leap/bitmask/gui/wizard.py') diff --git a/src/leap/bitmask/gui/wizard.py b/src/leap/bitmask/gui/wizard.py index 8de5802e..5c4a6f8e 100644 --- a/src/leap/bitmask/gui/wizard.py +++ b/src/leap/bitmask/gui/wizard.py @@ -111,8 +111,9 @@ class Wizard(QtGui.QWizard): self.currentIdChanged.connect(self._current_id_changed) - self.ui.lnProvider.textChanged.connect( - self._enable_check) + self.ui.lnProvider.textChanged.connect(self._enable_check) + self.ui.rbNewProvider.toggled.connect( + lambda x: self._enable_check()) self.ui.lblUser.returnPressed.connect( self._focus_password) @@ -193,8 +194,19 @@ class Wizard(QtGui.QWizard): def get_services(self): return self._selected_services - def _enable_check(self, text): - self.ui.btnCheck.setEnabled(len(self.ui.lnProvider.text()) != 0) + @QtCore.Slot() + def _enable_check(self): + """ + SLOT + TRIGGER: + self.ui.lnProvider.textChanged + + Enables/disables the 'check' button in the SELECT_PROVIDER_PAGE + depending on the lnProvider content. + """ + enabled = len(self.ui.lnProvider.text()) != 0 + enabled = enabled and self.ui.rbNewProvider.isChecked() + self.ui.btnCheck.setEnabled(enabled) self._reset_provider_check() def _focus_password(self): @@ -555,8 +567,9 @@ class Wizard(QtGui.QWizard): Prepares the pages when they appear """ if pageId == self.SELECT_PROVIDER_PAGE: - self._reset_provider_check() - self._enable_check("") + skip = self.ui.rbExistingProvider.isChecked() + self._enable_check() + self._skip_provider_checks(skip) if pageId == self.SETUP_PROVIDER_PAGE: self._reset_provider_setup() -- cgit v1.2.3 From 276810a3767fdba5e3ba543b23afc49f050b46b0 Mon Sep 17 00:00:00 2001 From: Ivan Alejandro Date: Wed, 6 Nov 2013 17:50:42 -0300 Subject: Remember setup provider checks. Also, on finish: - hide checks groupBox - clear domain lineEdit [Closes #3815] --- src/leap/bitmask/gui/wizard.py | 34 ++++++++++++++++++++++++++++++---- 1 file changed, 30 insertions(+), 4 deletions(-) (limited to 'src/leap/bitmask/gui/wizard.py') diff --git a/src/leap/bitmask/gui/wizard.py b/src/leap/bitmask/gui/wizard.py index 5c4a6f8e..8508067e 100644 --- a/src/leap/bitmask/gui/wizard.py +++ b/src/leap/bitmask/gui/wizard.py @@ -147,6 +147,24 @@ class Wizard(QtGui.QWizard): self._load_configured_providers() + self._provider_checks_ok = False + self.finished.connect(self._wizard_finished) + + @QtCore.Slot() + def _wizard_finished(self): + """ + SLOT + TRIGGER: + self.finished + + This method is called when the wizard is accepted or rejected. + Here we do the cleanup needed to use the wizard again reusing the + instance. + """ + self._provider_checks_ok = False + self.ui.lnProvider.setText('') + self.ui.grpCheckProvider.setVisible(False) + def _load_configured_providers(self): """ Loads the configured providers into the wizard providers combo box. @@ -195,7 +213,7 @@ class Wizard(QtGui.QWizard): return self._selected_services @QtCore.Slot() - def _enable_check(self): + def _enable_check(self, reset=True): """ SLOT TRIGGER: @@ -207,7 +225,9 @@ class Wizard(QtGui.QWizard): enabled = len(self.ui.lnProvider.text()) != 0 enabled = enabled and self.ui.rbNewProvider.isChecked() self.ui.btnCheck.setEnabled(enabled) - self._reset_provider_check() + + if reset: + self._reset_provider_check() def _focus_password(self): """ @@ -350,6 +370,8 @@ class Wizard(QtGui.QWizard): if len(self.ui.lnProvider.text()) == 0: return + self._provider_checks_ok = False + self.ui.grpCheckProvider.setVisible(True) self.ui.btnCheck.setEnabled(False) self.ui.lnProvider.setEnabled(False) @@ -459,6 +481,7 @@ class Wizard(QtGui.QWizard): "provider.json")): self._complete_task(data, self.ui.lblProviderInfo, True, self.SELECT_PROVIDER_PAGE) + self._provider_checks_ok = True else: new_data = { self._provider_bootstrapper.PASSED_KEY: False, @@ -568,8 +591,11 @@ class Wizard(QtGui.QWizard): """ if pageId == self.SELECT_PROVIDER_PAGE: skip = self.ui.rbExistingProvider.isChecked() - self._enable_check() - self._skip_provider_checks(skip) + if not self._provider_checks_ok: + self._enable_check() + self._skip_provider_checks(skip) + else: + self._enable_check(reset=False) if pageId == self.SETUP_PROVIDER_PAGE: self._reset_provider_setup() -- cgit v1.2.3 From fb0d8da17541c48ed20d829d706e4cd9d3b4dde6 Mon Sep 17 00:00:00 2001 From: Ivan Alejandro Date: Thu, 7 Nov 2013 09:38:28 -0300 Subject: Remember provider CA checks. [Closes #3814] --- src/leap/bitmask/gui/wizard.py | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) (limited to 'src/leap/bitmask/gui/wizard.py') diff --git a/src/leap/bitmask/gui/wizard.py b/src/leap/bitmask/gui/wizard.py index 8508067e..5f5224ae 100644 --- a/src/leap/bitmask/gui/wizard.py +++ b/src/leap/bitmask/gui/wizard.py @@ -148,6 +148,7 @@ class Wizard(QtGui.QWizard): self._load_configured_providers() self._provider_checks_ok = False + self._provider_setup_ok = False self.finished.connect(self._wizard_finished) @QtCore.Slot() @@ -162,6 +163,7 @@ class Wizard(QtGui.QWizard): instance. """ self._provider_checks_ok = False + self._provider_setup_ok = False self.ui.lnProvider.setText('') self.ui.grpCheckProvider.setVisible(False) @@ -372,6 +374,10 @@ class Wizard(QtGui.QWizard): self._provider_checks_ok = False + # just in case that the user has already setup a provider and + # go 'back' to check a provider + self._provider_setup_ok = False + self.ui.grpCheckProvider.setVisible(True) self.ui.btnCheck.setEnabled(False) self.ui.lnProvider.setEnabled(False) @@ -533,6 +539,7 @@ class Wizard(QtGui.QWizard): """ self._complete_task(data, self.ui.lblCheckApiCert, True, self.SETUP_PROVIDER_PAGE) + self._provider_setup_ok = True def _service_selection_changed(self, service, state): """ @@ -598,14 +605,14 @@ class Wizard(QtGui.QWizard): self._enable_check(reset=False) if pageId == self.SETUP_PROVIDER_PAGE: - self._reset_provider_setup() - self.page(pageId).setSubTitle(self.tr("Gathering configuration " - "options for %s") % - (self._provider_config - .get_name(),)) - self.ui.lblDownloadCaCert.setPixmap(self.QUESTION_ICON) - self._provider_setup_defer = self._provider_bootstrapper.\ - run_provider_setup_checks(self._provider_config) + if not self._provider_setup_ok: + self._reset_provider_setup() + sub_title = self.tr("Gathering configuration options for {0}") + sub_title = sub_title.format(self._provider_config.get_name()) + self.page(pageId).setSubTitle(sub_title) + self.ui.lblDownloadCaCert.setPixmap(self.QUESTION_ICON) + self._provider_setup_defer = self._provider_bootstrapper.\ + run_provider_setup_checks(self._provider_config) if pageId == self.PRESENT_PROVIDER_PAGE: self.page(pageId).setSubTitle(self.tr("Description of services " -- cgit v1.2.3