diff options
Diffstat (limited to 'src/leap/config/leapsettings.py')
-rw-r--r-- | src/leap/config/leapsettings.py | 253 |
1 files changed, 0 insertions, 253 deletions
diff --git a/src/leap/config/leapsettings.py b/src/leap/config/leapsettings.py deleted file mode 100644 index 35010280..00000000 --- a/src/leap/config/leapsettings.py +++ /dev/null @@ -1,253 +0,0 @@ -# -*- coding: utf-8 -*- -# leapsettings.py -# Copyright (C) 2013 LEAP -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -""" -QSettings abstraction -""" -import os -import logging - -from PySide import QtCore - -from leap.common.check import leap_assert, leap_assert_type -from leap.common.config.prefixers import get_platform_prefixer - -logger = logging.getLogger(__name__) - - -def to_bool(val): - """ - Returns the boolean value corresponding to val. Will return False - in case val is not a string or something that behaves like one. - - :param val: value to cast - :type val: either bool already or str - - :rtype: bool - """ - if isinstance(val, bool): - return val - - bool_val = False - try: - bool_val = val.lower() == "true" - except: - pass - - return bool_val - - -class LeapSettings(object): - """ - Leap client QSettings wrapper - """ - - CONFIG_NAME = "leap.conf" - - # keys - GEOMETRY_KEY = "Geometry" - WINDOWSTATE_KEY = "WindowState" - USER_KEY = "User" - PROPERPROVIDER_KEY = "ProperProvider" - REMEMBER_KEY = "RememberUserAndPass" - DEFAULTPROVIDER_KEY = "DefaultProvider" - ALERTMISSING_KEY = "AlertMissingScripts" - - def __init__(self, standalone=False): - """ - Constructor - - :param standalone: parameter used to define the location of - the config - :type standalone: bool - """ - - settings_path = os.path.join(get_platform_prefixer() - .get_path_prefix(standalone=standalone), - "leap", - self.CONFIG_NAME) - self._settings = QtCore.QSettings(settings_path, - QtCore.QSettings.IniFormat) - - def get_geometry(self): - """ - Returns the saved geometry or None if it wasn't saved - - :rtype: bytearray or None - """ - return self._settings.value(self.GEOMETRY_KEY, None) - - def set_geometry(self, geometry): - """ - Saves the geometry to the settings - - :param geometry: bytearray representing the geometry - :type geometry: bytearray - """ - leap_assert(geometry, "We need a geometry") - self._settings.setValue(self.GEOMETRY_KEY, geometry) - - def get_windowstate(self): - """ - Returns the window state or None if it wasn't saved - - :rtype: bytearray or None - """ - return self._settings.value(self.WINDOWSTATE_KEY, None) - - def set_windowstate(self, windowstate): - """ - Saves the window state to the settings - - :param windowstate: bytearray representing the window state - :type windowstate: bytearray - """ - leap_assert(windowstate, "We need a window state") - self._settings.setValue(self.WINDOWSTATE_KEY, windowstate) - - def get_enabled_services(self, provider): - """ - Returns a list of enabled services for the given provider - - :param provider: provider domain - :type provider: str - - :rtype: list of str - """ - - leap_assert(len(provider) > 0, "We need a nonempty provider") - enabled_services = self._settings.value("%s/Services" % (provider,), - []) - if isinstance(enabled_services, (str, unicode)): - enabled_services = enabled_services.split(",") - - return enabled_services - - def set_enabled_services(self, provider, services): - """ - Saves the list of enabled services for the given provider - - :param provider: provider domain - :type provider: str - - :param services: list of services to save - :type services: list of str - """ - - leap_assert(len(provider) > 0, "We need a nonempty provider") - leap_assert_type(services, list) - - self._settings.setValue("%s/Services" % (provider,), - services) - - def get_user(self): - """ - Returns the configured user to remember, None if there isn't one - - :rtype: str or None - """ - return self._settings.value(self.USER_KEY, None) - - def set_user(self, user): - """ - Saves the user to remember - - :param user: user name to remember - :type user: str - """ - leap_assert(len(user) > 0, "We cannot save an empty user") - self._settings.setValue(self.USER_KEY, user) - - def get_remember(self): - """ - Returns the value of the remember selection. - - :rtype: bool - """ - return to_bool(self._settings.value(self.REMEMBER_KEY, False)) - - def set_remember(self, remember): - """ - Sets wheter the app should remember username and password - - :param remember: True if the app should remember username and - password, False otherwise - :rtype: bool - """ - leap_assert_type(remember, bool) - self._settings.setValue(self.REMEMBER_KEY, remember) - - # TODO: make this scale with multiple providers, we are assuming - # just one for now - def get_properprovider(self): - """ - Returns True if there is a properly configured provider. - - .. note:: this assumes only one provider for now. - - :rtype: bool - """ - return to_bool(self._settings.value(self.PROPERPROVIDER_KEY, False)) - - def set_properprovider(self, properprovider): - """ - Sets whether the app should automatically login. - - :param properprovider: True if the provider is properly configured, - False otherwise. - :type properprovider: bool - """ - leap_assert_type(properprovider, bool) - self._settings.setValue(self.PROPERPROVIDER_KEY, properprovider) - - def get_defaultprovider(self): - """ - Returns the default provider to be used for autostarting EIP - - :rtype: str or None - """ - return self._settings.value(self.DEFAULTPROVIDER_KEY, None) - - def set_defaultprovider(self, provider): - """ - Sets the default provider to be used for autostarting EIP - - :param provider: provider to use - :type provider: str or None - """ - if provider is None: - self._settings.remove(self.DEFAULTPROVIDER_KEY) - else: - self._settings.setValue(self.DEFAULTPROVIDER_KEY, provider) - - def get_alert_missing_scripts(self): - """ - Returns the setting for alerting of missing up/down scripts. - - :rtype: bool - """ - return to_bool(self._settings.value(self.ALERTMISSING_KEY, True)) - - def set_alert_missing_scripts(self, value): - """ - Sets the setting for alerting of missing up/down scripts. - - :param value: the value to set - :type value: bool - """ - leap_assert_type(value, bool) - self._settings.setValue(self.ALERTMISSING_KEY, value) |