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

branch
eric7
changeset 8312
800c432b34c8
parent 8218
7c09585bd960
child 8318
962bce857696
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/ConfigurationPage/MercurialPage.py	Sat May 15 18:45:04 2021 +0200
@@ -0,0 +1,123 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2010 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing the Mercurial configuration page.
+"""
+
+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().__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"))
+        self.startFullLogCheckBox.setChecked(
+            self.__plugin.getPreferences("LogBrowserShowFullLog"))
+        # 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())
+        self.__plugin.setPreferences(
+            "LogBrowserShowFullLog", self.startFullLogCheckBox.isChecked())
+        # 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