33 self.setupUi(self) |
35 self.setupUi(self) |
34 self.setObjectName("MercurialPage") |
36 self.setObjectName("MercurialPage") |
35 |
37 |
36 self.__plugin = plugin |
38 self.__plugin = plugin |
37 |
39 |
|
40 self.encodingComboBox.addItems(sorted(supportedCodecs)) |
|
41 self.encodingModeComboBox.addItems(["strict", "ignore", "replace"]) |
|
42 |
38 # set initial values |
43 # set initial values |
|
44 # global options |
|
45 index = self.encodingComboBox.findText( |
|
46 self.__plugin.getPreferences("Encoding")) |
|
47 self.encodingComboBox.setCurrentIndex(index) |
|
48 index = self.encodingModeComboBox.findText( |
|
49 self.__plugin.getPreferences("EncodingMode")) |
|
50 self.encodingModeComboBox.setCurrentIndex(index) |
|
51 self.hiddenChangesetsCheckBox.setChecked( |
|
52 self.__plugin.getPreferences("ConsiderHidden")) |
|
53 # log |
39 self.logSpinBox.setValue( |
54 self.logSpinBox.setValue( |
40 self.__plugin.getPreferences("LogLimit")) |
55 self.__plugin.getPreferences("LogLimit")) |
|
56 # commit |
41 self.commitSpinBox.setValue( |
57 self.commitSpinBox.setValue( |
42 self.__plugin.getPreferences("CommitMessages")) |
58 self.__plugin.getPreferences("CommitMessages")) |
|
59 # incoming/outgoing |
43 self.logBrowserCheckBox.setChecked( |
60 self.logBrowserCheckBox.setChecked( |
44 self.__plugin.getPreferences("UseLogBrowser")) |
61 self.__plugin.getPreferences("UseLogBrowser")) |
|
62 # pull |
45 self.pullUpdateCheckBox.setChecked( |
63 self.pullUpdateCheckBox.setChecked( |
46 self.__plugin.getPreferences("PullUpdate")) |
64 self.__plugin.getPreferences("PullUpdate")) |
47 self.preferUnbundleCheckBox.setChecked( |
65 self.preferUnbundleCheckBox.setChecked( |
48 self.__plugin.getPreferences("PreferUnbundle")) |
66 self.__plugin.getPreferences("PreferUnbundle")) |
|
67 # cleanup |
49 self.cleanupPatternEdit.setText( |
68 self.cleanupPatternEdit.setText( |
50 self.__plugin.getPreferences("CleanupPatterns")) |
69 self.__plugin.getPreferences("CleanupPatterns")) |
|
70 # revert |
51 self.backupCheckBox.setChecked( |
71 self.backupCheckBox.setChecked( |
52 self.__plugin.getPreferences("CreateBackup")) |
72 self.__plugin.getPreferences("CreateBackup")) |
|
73 # merge |
|
74 self.internalMergeCheckBox.setChecked( |
|
75 self.__plugin.getPreferences("InternalMerge")) |
53 |
76 |
54 def save(self): |
77 def save(self): |
55 """ |
78 """ |
56 Public slot to save the Mercurial configuration. |
79 Public slot to save the Mercurial configuration. |
57 """ |
80 """ |
|
81 # global options |
|
82 self.__plugin.setPreferences( |
|
83 "Encoding", self.encodingComboBox.currentText()) |
|
84 self.__plugin.setPreferences( |
|
85 "EncodingMode", self.encodingModeComboBox.currentText()) |
|
86 self.__plugin.setPreferences( |
|
87 "ConsiderHidden", self.hiddenChangesetsCheckBox.isChecked()) |
|
88 # log |
58 self.__plugin.setPreferences( |
89 self.__plugin.setPreferences( |
59 "LogLimit", self.logSpinBox.value()) |
90 "LogLimit", self.logSpinBox.value()) |
|
91 # commit |
60 self.__plugin.setPreferences( |
92 self.__plugin.setPreferences( |
61 "CommitMessages", self.commitSpinBox.value()) |
93 "CommitMessages", self.commitSpinBox.value()) |
|
94 # incoming/outgoing |
62 self.__plugin.setPreferences( |
95 self.__plugin.setPreferences( |
63 "UseLogBrowser", self.logBrowserCheckBox.isChecked()) |
96 "UseLogBrowser", self.logBrowserCheckBox.isChecked()) |
|
97 # pull |
64 self.__plugin.setPreferences( |
98 self.__plugin.setPreferences( |
65 "PullUpdate", self.pullUpdateCheckBox.isChecked()) |
99 "PullUpdate", self.pullUpdateCheckBox.isChecked()) |
66 self.__plugin.setPreferences( |
100 self.__plugin.setPreferences( |
67 "PreferUnbundle", self.preferUnbundleCheckBox.isChecked()) |
101 "PreferUnbundle", self.preferUnbundleCheckBox.isChecked()) |
|
102 # cleanup |
68 self.__plugin.setPreferences( |
103 self.__plugin.setPreferences( |
69 "CleanupPatterns", self.cleanupPatternEdit.text()) |
104 "CleanupPatterns", self.cleanupPatternEdit.text()) |
|
105 # revert |
70 self.__plugin.setPreferences( |
106 self.__plugin.setPreferences( |
71 "CreateBackup", self.backupCheckBox.isChecked()) |
107 "CreateBackup", self.backupCheckBox.isChecked()) |
|
108 # merge |
|
109 self.__plugin.setPreferences( |
|
110 "InternalMerge", self.internalMergeCheckBox.isChecked()) |
72 |
111 |
73 @pyqtSlot() |
112 @pyqtSlot() |
74 def on_configButton_clicked(self): |
113 def on_configButton_clicked(self): |
75 """ |
114 """ |
76 Private slot to edit the (per user) Mercurial configuration file. |
115 Private slot to edit the (per user) Mercurial configuration file. |
77 """ |
116 """ |
78 from QScintilla.MiniEditor import MiniEditor |
117 from QScintilla.MiniEditor import MiniEditor |
79 cfgFile = self.__plugin.getConfigPath() |
118 cfgFile = self.__plugin.getConfigPath() |
80 if not os.path.exists(cfgFile): |
119 if not os.path.exists(cfgFile): |
81 username = "" |
120 from ..HgUserConfigDataDialog import HgUserConfigDataDialog |
82 from .MercurialUserDataDialog import MercurialUserDataDialog |
121 dlg = HgUserConfigDataDialog() |
83 dlg = MercurialUserDataDialog() |
|
84 if dlg.exec_() == QDialog.Accepted: |
122 if dlg.exec_() == QDialog.Accepted: |
85 name, email = dlg.getData() |
123 firstName, lastName, email, extensions, extensionsData = \ |
86 if name and email: |
124 dlg.getData() |
87 username = "{0} <{1}>".format(name, email) |
125 else: |
88 elif name: |
126 firstName, lastName, email, extensions, extensionsData = ( |
89 username = name |
127 "Firstname", "Lastname", "email_address", [], {}) |
90 elif email: |
|
91 username = email |
|
92 try: |
128 try: |
93 f = open(cfgFile, "w") |
129 f = open(cfgFile, "w") |
94 f.write(os.linesep.join(["[ui]", |
130 f.write("[ui]\n") |
95 "username = {0}".format(username), ""])) |
131 f.write("username = {0} {1} <{2}>\n".format( |
|
132 firstName, lastName, email)) |
|
133 if extensions: |
|
134 f.write("\n[extensions]\n") |
|
135 f.write(" =\n".join(extensions)) |
|
136 f.write(" =\n") # complete the last line |
|
137 if "largefiles" in extensionsData: |
|
138 dataDict = extensionsData["largefiles"] |
|
139 f.write("\n[largefiles]\n") |
|
140 if "minsize" in dataDict: |
|
141 f.write("minsize = {0}\n".format(dataDict["minsize"])) |
|
142 if "patterns" in dataDict: |
|
143 f.write("patterns =\n") |
|
144 f.write(" {0}\n".format( |
|
145 "\n ".join(dataDict["patterns"]))) |
96 f.close() |
146 f.close() |
97 except (IOError, OSError): |
147 except (IOError, OSError): |
98 # ignore these |
148 # ignore these |
99 pass |
149 pass |
100 editor = MiniEditor(cfgFile, "Properties", self) |
150 editor = MiniEditor(cfgFile, "Properties", self) |