diff options
| -rw-r--r-- | changes/bug-4670_disable-eip-and-disable-actions | 2 | ||||
| -rw-r--r-- | src/leap/bitmask/gui/mainwindow.py | 56 | ||||
| -rw-r--r-- | src/leap/bitmask/gui/preferenceswindow.py | 3 | 
3 files changed, 46 insertions, 15 deletions
| diff --git a/changes/bug-4670_disable-eip-and-disable-actions b/changes/bug-4670_disable-eip-and-disable-actions new file mode 100644 index 00000000..7f11b3bb --- /dev/null +++ b/changes/bug-4670_disable-eip-and-disable-actions @@ -0,0 +1,2 @@ +- Disable and stop EIP when you set EIP as disabled in the preferences dialog. +  Closes #4670. diff --git a/src/leap/bitmask/gui/mainwindow.py b/src/leap/bitmask/gui/mainwindow.py index 929919ac..44fee6b5 100644 --- a/src/leap/bitmask/gui/mainwindow.py +++ b/src/leap/bitmask/gui/mainwindow.py @@ -471,12 +471,49 @@ class MainWindow(QtGui.QMainWindow):          Displays the preferences window.          """ -        preferences_window = PreferencesWindow( +        preferences = PreferencesWindow(              self, self._srp_auth, self._provider_config, self._soledad,              self._login_widget.get_selected_provider()) -        self.soledad_ready.connect(preferences_window.set_soledad_ready) -        preferences_window.show() +        self.soledad_ready.connect(preferences.set_soledad_ready) +        preferences.show() +        preferences.preferences_saved.connect(self._update_eip_enabled_status) + +    def _update_eip_enabled_status(self): +        """ +        SLOT +        TRIGGER: +            PreferencesWindow.preferences_saved + +        Enable or disable the EIP start/stop actions and stop EIP if the user +        disabled that service. + +        :returns: if the eip actions were enabled or disabled +        :rtype: bool +        """ +        settings = self._settings +        default_provider = settings.get_defaultprovider() +        enabled_services = [] +        if default_provider is not None: +            enabled_services = settings.get_enabled_services(default_provider) + +        eip_enabled = False +        if EIP_SERVICE in enabled_services: +            should_autostart = settings.get_autostart_eip() +            if should_autostart and default_provider is not None: +                self._eip_status.enable_eip_start() +                self._eip_status.set_eip_status("") +                eip_enabled = True +            else: +                # we don't have an usable provider +                # so the user needs to log in first +                self._eip_status.disable_eip_start() +        else: +            self._stop_eip() +            self._eip_status.disable_eip_start() +            self._eip_status.set_eip_status(self.tr("Disabled")) + +        return eip_enabled      def _show_eip_preferences(self):          """ @@ -1177,21 +1214,10 @@ class MainWindow(QtGui.QMainWindow):          """          settings = self._settings -        should_autostart = settings.get_autostart_eip() -        if not should_autostart: -            logger.debug('Will not autostart EIP since it is setup ' -                         'to not to do it') -            self.eip_needs_login.emit() +        if not self._update_eip_enabled_status():              return          default_provider = settings.get_defaultprovider() - -        if default_provider is None: -            logger.info("Cannot autostart Encrypted Internet because there is " -                        "no default provider configured") -            self.eip_needs_login.emit() -            return -          self._enabled_services = settings.get_enabled_services(              default_provider) diff --git a/src/leap/bitmask/gui/preferenceswindow.py b/src/leap/bitmask/gui/preferenceswindow.py index b4bddef2..517a90c4 100644 --- a/src/leap/bitmask/gui/preferenceswindow.py +++ b/src/leap/bitmask/gui/preferenceswindow.py @@ -42,6 +42,8 @@ class PreferencesWindow(QtGui.QDialog):      """      Window that displays the preferences.      """ +    preferences_saved = QtCore.Signal() +      def __init__(self, parent, srp_auth, provider_config, soledad, domain):          """          :param parent: parent object of the PreferencesWindow. @@ -369,6 +371,7 @@ class PreferencesWindow(QtGui.QDialog):              "Services settings for provider '{0}' saved.".format(provider))          logger.debug(msg)          self._set_providers_services_status(msg, success=True) +        self.preferences_saved.emit()      def _get_provider_config(self, domain):          """ | 
