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

branch
eric7
changeset 8312
800c432b34c8
parent 8218
7c09585bd960
child 8318
962bce857696
equal deleted inserted replaced
8311:4e8b98454baa 8312:800c432b34c8
1 # -*- coding: utf-8 -*-
2
3 # Copyright (c) 2010 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
4 #
5
6 """
7 Module implementing the Mercurial configuration page.
8 """
9
10 from PyQt5.QtCore import pyqtSlot
11
12 from Preferences.ConfigurationPages.ConfigurationPageBase import (
13 ConfigurationPageBase
14 )
15 from .Ui_MercurialPage import Ui_MercurialPage
16
17 from Utilities import supportedCodecs
18
19
20 class MercurialPage(ConfigurationPageBase, Ui_MercurialPage):
21 """
22 Class implementing the Mercurial configuration page.
23 """
24 def __init__(self, plugin):
25 """
26 Constructor
27
28 @param plugin reference to the plugin object
29 """
30 super().__init__()
31 self.setupUi(self)
32 self.setObjectName("MercurialPage")
33
34 self.__plugin = plugin
35
36 self.encodingComboBox.addItems(sorted(supportedCodecs))
37 self.encodingModeComboBox.addItems(["strict", "ignore", "replace"])
38
39 # set initial values
40 # global options
41 index = self.encodingComboBox.findText(
42 self.__plugin.getPreferences("Encoding"))
43 self.encodingComboBox.setCurrentIndex(index)
44 index = self.encodingModeComboBox.findText(
45 self.__plugin.getPreferences("EncodingMode"))
46 self.encodingModeComboBox.setCurrentIndex(index)
47 self.hiddenChangesetsCheckBox.setChecked(
48 self.__plugin.getPreferences("ConsiderHidden"))
49 # log
50 self.logSpinBox.setValue(
51 self.__plugin.getPreferences("LogLimit"))
52 self.logWidthSpinBox.setValue(
53 self.__plugin.getPreferences("LogMessageColumnWidth"))
54 self.startFullLogCheckBox.setChecked(
55 self.__plugin.getPreferences("LogBrowserShowFullLog"))
56 # commit
57 self.commitSpinBox.setValue(
58 self.__plugin.getPreferences("CommitMessages"))
59 self.commitAuthorsSpinBox.setValue(
60 self.__plugin.getPreferences("CommitAuthorsLimit"))
61 # pull
62 self.pullUpdateCheckBox.setChecked(
63 self.__plugin.getPreferences("PullUpdate"))
64 self.preferUnbundleCheckBox.setChecked(
65 self.__plugin.getPreferences("PreferUnbundle"))
66 # cleanup
67 self.cleanupPatternEdit.setText(
68 self.__plugin.getPreferences("CleanupPatterns"))
69 # revert
70 self.backupCheckBox.setChecked(
71 self.__plugin.getPreferences("CreateBackup"))
72 # merge
73 self.internalMergeCheckBox.setChecked(
74 self.__plugin.getPreferences("InternalMerge"))
75
76 def save(self):
77 """
78 Public slot to save the Mercurial configuration.
79 """
80 # global options
81 self.__plugin.setPreferences(
82 "Encoding", self.encodingComboBox.currentText())
83 self.__plugin.setPreferences(
84 "EncodingMode", self.encodingModeComboBox.currentText())
85 self.__plugin.setPreferences(
86 "ConsiderHidden", self.hiddenChangesetsCheckBox.isChecked())
87 # log
88 self.__plugin.setPreferences(
89 "LogLimit", self.logSpinBox.value())
90 self.__plugin.setPreferences(
91 "LogMessageColumnWidth", self.logWidthSpinBox.value())
92 self.__plugin.setPreferences(
93 "LogBrowserShowFullLog", self.startFullLogCheckBox.isChecked())
94 # commit
95 self.__plugin.setPreferences(
96 "CommitMessages", self.commitSpinBox.value())
97 self.__plugin.setPreferences(
98 "CommitAuthorsLimit", self.commitAuthorsSpinBox.value())
99 # pull
100 self.__plugin.setPreferences(
101 "PullUpdate", self.pullUpdateCheckBox.isChecked())
102 self.__plugin.setPreferences(
103 "PreferUnbundle", self.preferUnbundleCheckBox.isChecked())
104 # cleanup
105 self.__plugin.setPreferences(
106 "CleanupPatterns", self.cleanupPatternEdit.text())
107 # revert
108 self.__plugin.setPreferences(
109 "CreateBackup", self.backupCheckBox.isChecked())
110 # merge
111 self.__plugin.setPreferences(
112 "InternalMerge", self.internalMergeCheckBox.isChecked())
113
114 @pyqtSlot()
115 def on_configButton_clicked(self):
116 """
117 Private slot to edit the (per user) Mercurial configuration file.
118 """
119 from ..HgUserConfigDialog import HgUserConfigDialog
120 from ..HgUtilities import hgVersion
121
122 dlg = HgUserConfigDialog(version=hgVersion(self.__plugin)[1])
123 dlg.exec()

eric ide

mercurial