Plugins/PluginVcsMercurial.py

changeset 5554
c477ae02bf5f
parent 5520
2a97a4d58bc6
child 5558
858abfcbaf28
--- a/Plugins/PluginVcsMercurial.py	Fri Feb 24 18:51:36 2017 +0100
+++ b/Plugins/PluginVcsMercurial.py	Fri Feb 24 18:58:27 2017 +0100
@@ -143,12 +143,49 @@
     if not e5App().getObject("PluginManager").isPluginLoaded(
             "PluginVcsMercurial"):
         Preferences.Prefs.settings.remove("Mercurial")
+
+
+def clearPrivateData():
+    """
+    Module function to clear the private data of the plug-in.
+    """
+    for key in ["RepositoryUrlHistory"]:
+        VcsMercurialPlugin.setPreferences(key, [])
     
 
 class VcsMercurialPlugin(QObject):
     """
     Class implementing the Mercurial version control plugin.
     """
+    MercurialDefaults = {
+        "StopLogOnCopy": True,  # used in log browser
+        "LogLimit": 20,
+        "CommitMessages": 20,
+        "Commits": [],
+        "CommitAuthorsLimit": 20,
+        "CommitAuthors": [],
+        "PullUpdate": False,
+        "PreferUnbundle": False,
+        "ServerPort": 8000,
+        "ServerStyle": "",
+        "CleanupPatterns": "*.orig *.rej *~",
+        "CreateBackup": False,
+        "InternalMerge": False,
+        "Encoding": "utf-8",
+        "EncodingMode": "strict",
+        "ConsiderHidden": False,
+        "LogMessageColumnWidth": 30,
+        "LogBrowserGeometry": QByteArray(),
+        "LogBrowserSplitterStates": [QByteArray(), QByteArray(),
+                                     QByteArray()],
+        # mainSplitter, detailsSplitter, diffSplitter
+        "StatusDialogGeometry": QByteArray(),
+        "StatusDialogSplitterState": QByteArray(),
+        "MqStatusDialogGeometry": QByteArray(),
+        "MqStatusDialogSplitterState": QByteArray(),
+        "RepositoryUrlHistory": [],
+    }
+    
     def __init__(self, ui):
         """
         Constructor
@@ -158,34 +195,6 @@
         super(VcsMercurialPlugin, self).__init__(ui)
         self.__ui = ui
         
-        self.__mercurialDefaults = {
-            "StopLogOnCopy": True,  # used in log browser
-            "LogLimit": 20,
-            "CommitMessages": 20,
-            "Commits": [],
-            "CommitAuthorsLimit": 20,
-            "CommitAuthors": [],
-            "PullUpdate": False,
-            "PreferUnbundle": False,
-            "ServerPort": 8000,
-            "ServerStyle": "",
-            "CleanupPatterns": "*.orig *.rej *~",
-            "CreateBackup": False,
-            "InternalMerge": False,
-            "Encoding": "utf-8",
-            "EncodingMode": "strict",
-            "ConsiderHidden": False,
-            "LogMessageColumnWidth": 30,
-            "LogBrowserGeometry": QByteArray(),
-            "LogBrowserSplitterStates": [QByteArray(), QByteArray(),
-                                         QByteArray()],
-            # mainSplitter, detailsSplitter, diffSplitter
-            "StatusDialogGeometry": QByteArray(),
-            "StatusDialogSplitterState": QByteArray(),
-            "MqStatusDialogGeometry": QByteArray(),
-            "MqStatusDialogSplitterState": QByteArray(),
-        }
-        
         from VcsPlugins.vcsMercurial.ProjectHelper import HgProjectHelper
         self.__projectHelperObject = HgProjectHelper(None, None)
         try:
@@ -248,7 +257,8 @@
         tb.setVisible(True)
         tb.setEnabled(True)
     
-    def getPreferences(self, key):
+    @classmethod
+    def getPreferences(cls, key):
         """
         Public method to retrieve the various settings.
         
@@ -258,14 +268,14 @@
         if key in ["StopLogOnCopy", "PullUpdate", "PreferUnbundle",
                    "CreateBackup", "InternalMerge", "ConsiderHidden"]:
             return Preferences.toBool(Preferences.Prefs.settings.value(
-                "Mercurial/" + key, self.__mercurialDefaults[key]))
+                "Mercurial/" + key, cls.MercurialDefaults[key]))
         elif key in ["LogLimit", "CommitMessages", "CommitAuthorsLimit",
                      "ServerPort", "LogMessageColumnWidth"]:
             return int(Preferences.Prefs.settings.value(
-                "Mercurial/" + key, self.__mercurialDefaults[key]))
-        elif key in ["Commits", "CommitAuthors"]:
+                "Mercurial/" + key, cls.MercurialDefaults[key]))
+        elif key in ["Commits", "CommitAuthors", "RepositoryUrlHistory"]:
             return Preferences.toList(Preferences.Prefs.settings.value(
-                "Mercurial/" + key))
+                "Mercurial/" + key, cls.MercurialDefaults[key]))
         elif key in ["LogBrowserGeometry", "StatusDialogGeometry",
                      "StatusDialogSplitterState", "MqStatusDialogGeometry",
                      "MqStatusDialogSplitterState"]:
@@ -274,19 +284,20 @@
             if v is not None:
                 return v
             else:
-                return self.__mercurialDefaults[key]
+                return cls.MercurialDefaults[key]
         elif key in ["LogBrowserSplitterStates"]:
             # list of QByteArray values
             states = Preferences.Prefs.settings.value("Mercurial/" + key)
             if states is not None:
                 return states
             else:
-                return self.__mercurialDefaults[key]
+                return cls.MercurialDefaults[key]
         else:
             return Preferences.Prefs.settings.value(
-                "Mercurial/" + key, self.__mercurialDefaults[key])
+                "Mercurial/" + key, cls.MercurialDefaults[key])
     
-    def setPreferences(self, key, value):
+    @classmethod
+    def setPreferences(cls, key, value):
         """
         Public method to store the various settings.
         
@@ -303,11 +314,11 @@
         """
         args = []
         if self.getPreferences("Encoding") != \
-                self.__mercurialDefaults["Encoding"]:
+                self.MercurialDefaults["Encoding"]:
             args.append("--encoding")
             args.append(self.getPreferences("Encoding"))
         if self.getPreferences("EncodingMode") != \
-                self.__mercurialDefaults["EncodingMode"]:
+                self.MercurialDefaults["EncodingMode"]:
             args.append("--encodingmode")
             args.append(self.getPreferences("EncodingMode"))
         if self.getPreferences("ConsiderHidden"):

eric ide

mercurial