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

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

eric ide

mercurial