diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/leap/bitmask/gui/eip_preferenceswindow.py | 21 | ||||
| -rw-r--r-- | src/leap/bitmask/gui/mail_status.py | 2 | ||||
| -rw-r--r-- | src/leap/bitmask/gui/mainwindow.py | 32 | 
3 files changed, 32 insertions, 23 deletions
| diff --git a/src/leap/bitmask/gui/eip_preferenceswindow.py b/src/leap/bitmask/gui/eip_preferenceswindow.py index 504d1cf1..dcaa8b1e 100644 --- a/src/leap/bitmask/gui/eip_preferenceswindow.py +++ b/src/leap/bitmask/gui/eip_preferenceswindow.py @@ -22,7 +22,7 @@ import os  import logging  from functools import partial -from PySide import QtGui +from PySide import QtCore, QtGui  from leap.bitmask.config.leapsettings import LeapSettings  from leap.bitmask.config.providerconfig import ProviderConfig @@ -37,10 +37,12 @@ class EIPPreferencesWindow(QtGui.QDialog):      """      Window that displays the EIP preferences.      """ -    def __init__(self, parent): +    def __init__(self, parent, domain):          """          :param parent: parent object of the EIPPreferencesWindow. -        :parent type: QWidget +        :type parent: QWidget +        :param domain: the selected by default domain. +        :type domain: unicode          """          QtGui.QDialog.__init__(self, parent)          self.AUTOMATIC_GATEWAY_LABEL = self.tr("Automatic") @@ -59,7 +61,7 @@ class EIPPreferencesWindow(QtGui.QDialog):          self.ui.cbGateways.currentIndexChanged[unicode].connect(              lambda x: self.ui.lblProvidersGatewayStatus.setVisible(False)) -        self._add_configured_providers() +        self._add_configured_providers(domain)      def _set_providers_gateway_status(self, status, success=False,                                        error=False): @@ -83,9 +85,12 @@ class EIPPreferencesWindow(QtGui.QDialog):          self.ui.lblProvidersGatewayStatus.setVisible(True)          self.ui.lblProvidersGatewayStatus.setText(status) -    def _add_configured_providers(self): +    def _add_configured_providers(self, domain=None):          """          Add the client's configured providers to the providers combo boxes. + +        :param domain: the domain to be selected by default. +        :type domain: unicode          """          self.ui.cbProvidersGateway.clear()          providers = self._settings.get_configured_providers() @@ -100,6 +105,12 @@ class EIPPreferencesWindow(QtGui.QDialog):                  label = provider + self.tr(" (uninitialized)")              self.ui.cbProvidersGateway.addItem(label, userData=provider) +        # Select provider by name +        if domain is not None: +            provider_index = self.ui.cbProvidersGateway.findText( +                domain, QtCore.Qt.MatchStartsWith) +            self.ui.cbProvidersGateway.setCurrentIndex(provider_index) +      def _save_selected_gateway(self, provider):          """          SLOT diff --git a/src/leap/bitmask/gui/mail_status.py b/src/leap/bitmask/gui/mail_status.py index 1d5ff319..8da26f6d 100644 --- a/src/leap/bitmask/gui/mail_status.py +++ b/src/leap/bitmask/gui/mail_status.py @@ -213,7 +213,7 @@ class MailStatusWidget(QtGui.QWidget):                      self._service_name))          elif ready == 1:              icon = self.CONNECTING_ICON -            self._mx_status = self.tr('Starting..') +            self._mx_status = self.tr('Starting…')              tray_status = self.tr('Mail is starting')          elif ready >= 2:              icon = self.CONNECTED_ICON diff --git a/src/leap/bitmask/gui/mainwindow.py b/src/leap/bitmask/gui/mainwindow.py index 9ee62e17..004d135b 100644 --- a/src/leap/bitmask/gui/mainwindow.py +++ b/src/leap/bitmask/gui/mainwindow.py @@ -588,7 +588,8 @@ class MainWindow(QtGui.QMainWindow):          Displays the EIP preferences window.          """ -        EIPPreferencesWindow(self).show() +        domain = self._login_widget.get_selected_provider() +        EIPPreferencesWindow(self, domain).show()      #      # updates @@ -1066,16 +1067,24 @@ class MainWindow(QtGui.QMainWindow):          Stops the login sequence.          """ -        logger.debug("Cancelling setup provider defer.") +        logger.debug("Cancelling log in.") +        self._cancel_ongoing_defers() + +    def _cancel_ongoing_defers(self): +        """ +        Cancel the running defers to avoid app blocking. +        """          self._backend.cancel_setup_provider()          if self._login_defer is not None:              logger.debug("Cancelling login defer.")              self._login_defer.cancel() +            self._login_defer = None          if self._soledad_defer is not None:              logger.debug("Cancelling soledad defer.")              self._soledad_defer.cancel() +            self._soledad_defer = None      def _set_login_cancelled(self):          """ @@ -1248,8 +1257,7 @@ class MainWindow(QtGui.QMainWindow):              self._soledad_bootstrapper.increment_retries_count()              # XXX should cancel the existing socket --- this              # is avoiding a clean termination. -            threads.deferToThread( -                self._soledad_bootstrapper.load_and_sync_soledad) +            self._maybe_run_soledad_setup_checks()          else:              logger.warning("Max number of soledad initialization "                             "retries reached.") @@ -1812,9 +1820,8 @@ class MainWindow(QtGui.QMainWindow):          """          self._soledad_bootstrapper.cancel_bootstrap()          setProxiedObject(self._soledad, None) -        if self._soledad_defer is not None: -            logger.debug("Cancelling soledad defer.") -            self._soledad_defer.cancel() + +        self._cancel_ongoing_defers()          # reset soledad status flag          self._already_started_soledad = False @@ -1931,16 +1938,7 @@ class MainWindow(QtGui.QMainWindow):          logger.debug('Terminating vpn')          self._vpn.terminate(shutdown=True) -        if self._login_defer: -            logger.debug("Cancelling login defer.") -            self._login_defer.cancel() - -        logger.debug("Cancelling setup provider defer.") -        self._backend.cancel_setup_provider() - -        if self._soledad_defer is not None: -            logger.debug("Cancelling soledad defer.") -            self._soledad_defer.cancel() +        self._cancel_ongoing_defers()          # TODO missing any more cancels? | 
