7 Module implementing the Mercurial configuration page. |
7 Module implementing the Mercurial configuration page. |
8 """ |
8 """ |
9 |
9 |
10 from __future__ import unicode_literals |
10 from __future__ import unicode_literals |
11 |
11 |
12 import os |
|
13 |
|
14 from PyQt5.QtCore import pyqtSlot |
12 from PyQt5.QtCore import pyqtSlot |
15 from PyQt5.QtWidgets import QDialog |
|
16 |
13 |
17 from Preferences.ConfigurationPages.ConfigurationPageBase import \ |
14 from Preferences.ConfigurationPages.ConfigurationPageBase import \ |
18 ConfigurationPageBase |
15 ConfigurationPageBase |
19 from .Ui_MercurialPage import Ui_MercurialPage |
16 from .Ui_MercurialPage import Ui_MercurialPage |
20 |
17 |
112 @pyqtSlot() |
109 @pyqtSlot() |
113 def on_configButton_clicked(self): |
110 def on_configButton_clicked(self): |
114 """ |
111 """ |
115 Private slot to edit the (per user) Mercurial configuration file. |
112 Private slot to edit the (per user) Mercurial configuration file. |
116 """ |
113 """ |
117 from QScintilla.MiniEditor import MiniEditor |
114 from ..HgUserConfig import hgEditUserConfig |
118 cfgFile = self.__plugin.getConfigPath() |
115 hgEditUserConfig() |
119 if not os.path.exists(cfgFile): |
|
120 from ..HgUserConfigDataDialog import HgUserConfigDataDialog |
|
121 dlg = HgUserConfigDataDialog() |
|
122 if dlg.exec_() == QDialog.Accepted: |
|
123 firstName, lastName, email, extensions, extensionsData = \ |
|
124 dlg.getData() |
|
125 else: |
|
126 firstName, lastName, email, extensions, extensionsData = ( |
|
127 "Firstname", "Lastname", "email_address", [], {}) |
|
128 try: |
|
129 f = open(cfgFile, "w") |
|
130 f.write("[ui]\n") |
|
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"]))) |
|
146 f.close() |
|
147 except (IOError, OSError): |
|
148 # ignore these |
|
149 pass |
|
150 editor = MiniEditor(cfgFile, "Properties", self) |
|
151 editor.show() |
|