diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/leap/bitmask/config/leapsettings.py | 29 | ||||
| -rw-r--r-- | src/leap/bitmask/gui/mainwindow.py | 27 | 
2 files changed, 28 insertions, 28 deletions
| diff --git a/src/leap/bitmask/config/leapsettings.py b/src/leap/bitmask/config/leapsettings.py index 35010280..6aab84e4 100644 --- a/src/leap/bitmask/config/leapsettings.py +++ b/src/leap/bitmask/config/leapsettings.py @@ -75,11 +75,10 @@ class LeapSettings(object):          the config          :type standalone: bool          """ - -        settings_path = os.path.join(get_platform_prefixer() -                                     .get_path_prefix(standalone=standalone), -                                     "leap", -                                     self.CONFIG_NAME) +        self._path_prefix = get_platform_prefixer().get_path_prefix( +            standalone=standalone) +        settings_path = os.path.join( +            self._path_prefix, "leap", self.CONFIG_NAME)          self._settings = QtCore.QSettings(settings_path,                                            QtCore.QSettings.IniFormat) @@ -119,6 +118,26 @@ class LeapSettings(object):          leap_assert(windowstate, "We need a window state")          self._settings.setValue(self.WINDOWSTATE_KEY, windowstate) +    def get_configured_providers(self): +        """ +        Returns the configured providers based on the file structure in the +        settings directory. + +        :rtype: list of str +        """ +        # TODO: check which providers have a valid certificate among +        # other things, not just the directories +        providers = [] +        try: +            providers_path = os.path.join( +                self._path_prefix, "leap", "providers") +            providers = os.listdir(providers_path) +        except Exception as e: +            logger.debug("Error listing providers, assume there are none. %r" +                         % (e,)) + +        return providers +      def get_enabled_services(self, provider):          """          Returns a list of enabled services for the given provider diff --git a/src/leap/bitmask/gui/mainwindow.py b/src/leap/bitmask/gui/mainwindow.py index c832887a..7b9d492e 100644 --- a/src/leap/bitmask/gui/mainwindow.py +++ b/src/leap/bitmask/gui/mainwindow.py @@ -491,7 +491,8 @@ class MainWindow(QtGui.QMainWindow):          """          # XXX: May be this can be divided into two methods? -        self._login_widget.set_providers(self._configured_providers()) +        providers = self._settings.get_configured_providers() +        self._login_widget.set_providers(providers)          self._show_systray()          self.show()          if IS_MAC: @@ -736,34 +737,14 @@ class MainWindow(QtGui.QMainWindow):          QtGui.QMainWindow.closeEvent(self, e) -    def _configured_providers(self): -        """ -        Returns the available providers based on the file structure - -        :rtype: list -        """ - -        # TODO: check which providers have a valid certificate among -        # other things, not just the directories -        providers = [] -        try: -            providers = os.listdir( -                os.path.join(self._provider_config.get_path_prefix(), -                             "leap", -                             "providers")) -        except Exception as e: -            logger.debug("Error listing providers, assume there are none. %r" -                         % (e,)) - -        return providers -      def _first_run(self):          """          Returns True if there are no configured providers. False otherwise          :rtype: bool          """ -        has_provider_on_disk = len(self._configured_providers()) != 0 +        providers = self._settings.get_configured_providers() +        has_provider_on_disk = len(providers) != 0          is_proper_provider = self._settings.get_properprovider()          return not (has_provider_on_disk and is_proper_provider) | 
