2 Commits f9bae392fd ... 23b6da3094

Author SHA1 Message Date
  CYBERDEViL 23b6da3094 profiles.conf is saved after the chooser dialog closed, so no need to do it here too. 3 years ago
  CYBERDEViL f8ffad0a0c Don't keep references to QSettings while not needed. 3 years ago
1 changed files with 39 additions and 28 deletions
  1. 39 28
      searxqt/main.py

+ 39 - 28
searxqt/main.py

@@ -87,22 +87,13 @@ class MainWindow(QMainWindow):
         self._persistantEnginesModel = PersistentEnginesModel()
 
         # Profiles
-        self.profilesSettings = QSettings(
-            SETTINGS_PATH, 'profiles', self
-        )
         self.profiles = {
             # list with searxqt.models.profiles.ProfileItem's
-            'profiles': self.profilesSettings.value('profiles', list(), list),
-
+            'profiles': [],
             # str: profile id
-            'default': self.profilesSettings.value(
-                'default', ProfileItem(), ProfileItem
-            )
+            'default': ProfileItem()
         }
 
-        # Shared settings
-        self.settings = QSettings(SETTINGS_PATH, 'shared', self)
-
         self.instanceFilter = InstanceModelFilter(
             self._persistantInstancesModel, self
         )
@@ -178,6 +169,7 @@ class MainWindow(QMainWindow):
 
         self.instanceSelecter.instanceChanged.connect(self.__instanceChanged)
 
+        self.loadProfiles()  # read profiles.conf
         if not self.profiles['default'].id:
             # Don't have a default profile set.
             dialog = ProfileChooserDialog(self.profiles)
@@ -211,6 +203,7 @@ class MainWindow(QMainWindow):
         about.show(self)
 
     def _openProfileChooser(self):
+        self.loadProfiles()  # read profiles.conf
         dialog = ProfileChooserDialog(self.profiles, self._currentProfile)
         if dialog.exec():
             if self._currentProfile:
@@ -235,13 +228,7 @@ class MainWindow(QMainWindow):
     def _openSettingsWindow(self):
         if not self._settingsWindow:
             self._settingsWindow = SettingsWindow(self._settingsModel)
-            self._settingsWindow.resize(
-                self.settings.value(
-                    'settingsWindowSize',
-                    QSize(400, 400),
-                    QSize
-                )
-            )
+            self._settingsWindow.resize(self.__lastSettingsWindowSize)
         self._settingsWindow.show()
         self._settingsWindow.activateWindow()  # Bring it to front
 
@@ -364,32 +351,56 @@ class MainWindow(QMainWindow):
     def loadSharedSettings(self):
         """ Load shared settings
         """
+        settings = QSettings(SETTINGS_PATH, 'shared', self)
         self.resize(
-            self.settings.value('windowSize', QSize(), QSize)
+            settings.value('windowSize', QSize(), QSize)
         )
 
         self.splitter.restoreState(
-            self.settings.value('splitterState', QByteArray(), QByteArray)
+            settings.value('splitterState', QByteArray(), QByteArray)
+        )
+
+        self.__lastSettingsWindowSize = settings.value(
+            'settingsWindowSize',
+            QSize(400, 400),
+            QSize
+        )
+
+    def loadProfiles(self):
+        """ Load profiles.conf
+        """
+        profilesSettings = QSettings(
+            SETTINGS_PATH, 'profiles', self
         )
+        self.profiles = {
+            # list with searxqt.models.profiles.ProfileItem's
+            'profiles': profilesSettings.value('profiles', list(), list),
+
+            # str: profile id
+            'default': profilesSettings.value(
+                'default', ProfileItem(), ProfileItem
+            )
+        }
 
     def saveProfiles(self):
-        self.profilesSettings.setValue('profiles', self.profiles['profiles'])
-        self.profilesSettings.setValue('default', self.profiles['default'])
+        profilesSettings = QSettings(
+            SETTINGS_PATH, 'profiles', self
+        )
+        profilesSettings.setValue('profiles', self.profiles['profiles'])
+        profilesSettings.setValue('default', self.profiles['default'])
 
     def saveSettings(self):
-        # profiles.conf
-        self.saveProfiles()
-
         # save current profile
         if self._currentProfile:
             self.saveProfile()
 
         # shared.conf
-        self.settings.setValue('windowSize', self.size())
-        self.settings.setValue('splitterState', self.splitter.saveState())
+        settings = QSettings(SETTINGS_PATH, 'shared', self)
+        settings.setValue('windowSize', self.size())
+        settings.setValue('splitterState', self.splitter.saveState())
 
         if self._settingsWindow:
-            self.settings.setValue(
+            settings.setValue(
                 'settingsWindowSize',
                 self._settingsWindow.size()
             )