eric6/Plugins/VcsPlugins/vcsMercurial/ConfigurationPage/MercurialPage.py

changeset 6942
2602857055c5
parent 6645
ad476851d7e0
child 7009
eaf5ed6ef298
diff -r f99d60d6b59b -r 2602857055c5 eric6/Plugins/VcsPlugins/vcsMercurial/ConfigurationPage/MercurialPage.py
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric6/Plugins/VcsPlugins/vcsMercurial/ConfigurationPage/MercurialPage.py	Sun Apr 14 15:09:21 2019 +0200
@@ -0,0 +1,120 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2010 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing the Mercurial configuration page.
+"""
+
+from __future__ import unicode_literals
+
+from PyQt5.QtCore import pyqtSlot
+
+from Preferences.ConfigurationPages.ConfigurationPageBase import \
+    ConfigurationPageBase
+from .Ui_MercurialPage import Ui_MercurialPage
+
+from Utilities import supportedCodecs
+
+
+class MercurialPage(ConfigurationPageBase, Ui_MercurialPage):
+    """
+    Class implementing the Mercurial configuration page.
+    """
+    def __init__(self, plugin):
+        """
+        Constructor
+        
+        @param plugin reference to the plugin object
+        """
+        super(MercurialPage, self).__init__()
+        self.setupUi(self)
+        self.setObjectName("MercurialPage")
+        
+        self.__plugin = plugin
+        
+        self.encodingComboBox.addItems(sorted(supportedCodecs))
+        self.encodingModeComboBox.addItems(["strict", "ignore", "replace"])
+        
+        # set initial values
+        # global options
+        index = self.encodingComboBox.findText(
+            self.__plugin.getPreferences("Encoding"))
+        self.encodingComboBox.setCurrentIndex(index)
+        index = self.encodingModeComboBox.findText(
+            self.__plugin.getPreferences("EncodingMode"))
+        self.encodingModeComboBox.setCurrentIndex(index)
+        self.hiddenChangesetsCheckBox.setChecked(
+            self.__plugin.getPreferences("ConsiderHidden"))
+        # log
+        self.logSpinBox.setValue(
+            self.__plugin.getPreferences("LogLimit"))
+        self.logWidthSpinBox.setValue(
+            self.__plugin.getPreferences("LogMessageColumnWidth"))
+        # commit
+        self.commitSpinBox.setValue(
+            self.__plugin.getPreferences("CommitMessages"))
+        self.commitAuthorsSpinBox.setValue(
+            self.__plugin.getPreferences("CommitAuthorsLimit"))
+        # pull
+        self.pullUpdateCheckBox.setChecked(
+            self.__plugin.getPreferences("PullUpdate"))
+        self.preferUnbundleCheckBox.setChecked(
+            self.__plugin.getPreferences("PreferUnbundle"))
+        # cleanup
+        self.cleanupPatternEdit.setText(
+            self.__plugin.getPreferences("CleanupPatterns"))
+        # revert
+        self.backupCheckBox.setChecked(
+            self.__plugin.getPreferences("CreateBackup"))
+        # merge
+        self.internalMergeCheckBox.setChecked(
+            self.__plugin.getPreferences("InternalMerge"))
+    
+    def save(self):
+        """
+        Public slot to save the Mercurial configuration.
+        """
+        # global options
+        self.__plugin.setPreferences(
+            "Encoding", self.encodingComboBox.currentText())
+        self.__plugin.setPreferences(
+            "EncodingMode", self.encodingModeComboBox.currentText())
+        self.__plugin.setPreferences(
+            "ConsiderHidden", self.hiddenChangesetsCheckBox.isChecked())
+        # log
+        self.__plugin.setPreferences(
+            "LogLimit", self.logSpinBox.value())
+        self.__plugin.setPreferences(
+            "LogMessageColumnWidth", self.logWidthSpinBox.value())
+        # commit
+        self.__plugin.setPreferences(
+            "CommitMessages", self.commitSpinBox.value())
+        self.__plugin.setPreferences(
+            "CommitAuthorsLimit", self.commitAuthorsSpinBox.value())
+        # pull
+        self.__plugin.setPreferences(
+            "PullUpdate", self.pullUpdateCheckBox.isChecked())
+        self.__plugin.setPreferences(
+            "PreferUnbundle", self.preferUnbundleCheckBox.isChecked())
+        # cleanup
+        self.__plugin.setPreferences(
+            "CleanupPatterns", self.cleanupPatternEdit.text())
+        # revert
+        self.__plugin.setPreferences(
+            "CreateBackup", self.backupCheckBox.isChecked())
+        # merge
+        self.__plugin.setPreferences(
+            "InternalMerge", self.internalMergeCheckBox.isChecked())
+    
+    @pyqtSlot()
+    def on_configButton_clicked(self):
+        """
+        Private slot to edit the (per user) Mercurial configuration file.
+        """
+        from ..HgUserConfigDialog import HgUserConfigDialog
+        from ..HgUtilities import hgVersion
+        
+        dlg = HgUserConfigDialog(version=hgVersion(self.__plugin)[1])
+        dlg.exec_()

eric ide

mercurial