1 # -*- coding: utf-8 -*- |
|
2 |
|
3 # Copyright (c) 2010 - 2016 Detlev Offenbach <detlev@die-offenbachs.de> |
|
4 # |
|
5 |
|
6 """ |
|
7 Module implementing the Mercurial version control plugin. |
|
8 """ |
|
9 |
|
10 from __future__ import unicode_literals |
|
11 |
|
12 import os |
|
13 |
|
14 from PyQt5.QtWidgets import QDialog |
|
15 |
|
16 from QScintilla.MiniEditor import MiniEditor |
|
17 |
|
18 |
|
19 __all__ = ["hgEditUserConfig"] |
|
20 |
|
21 _UserEditor = None |
|
22 |
|
23 |
|
24 def hgEditUserConfig(version=(0, 0)): |
|
25 """ |
|
26 Module function used to edit the user configuration file. |
|
27 |
|
28 @param version Mercurial version info (tuple of two integers) |
|
29 """ |
|
30 global _UserEditor |
|
31 |
|
32 from .HgUtilities import getConfigPath |
|
33 cfgFile = getConfigPath() |
|
34 if not os.path.exists(cfgFile): |
|
35 # open dialog to enter the initial data |
|
36 from .HgUserConfigDataDialog import HgUserConfigDataDialog |
|
37 dlg = HgUserConfigDataDialog(version=version) |
|
38 if dlg.exec_() == QDialog.Accepted: |
|
39 firstName, lastName, email, extensions, extensionsData = \ |
|
40 dlg.getData() |
|
41 else: |
|
42 firstName, lastName, email, extensions, extensionsData = ( |
|
43 "Firstname", "Lastname", "email_address", [], {}) |
|
44 try: |
|
45 f = open(cfgFile, "w") |
|
46 f.write("[ui]\n") |
|
47 f.write("username = {0} {1} <{2}>\n".format( |
|
48 firstName, lastName, email)) |
|
49 if extensions: |
|
50 f.write("\n[extensions]\n") |
|
51 f.write(" =\n".join(extensions)) |
|
52 f.write(" =\n") # complete the last line |
|
53 if "largefiles" in extensionsData: |
|
54 dataDict = extensionsData["largefiles"] |
|
55 f.write("\n[largefiles]\n") |
|
56 if "minsize" in dataDict: |
|
57 f.write("minsize = {0}\n".format(dataDict["minsize"])) |
|
58 if "patterns" in dataDict: |
|
59 f.write("patterns =\n") |
|
60 f.write(" {0}\n".format( |
|
61 "\n ".join(dataDict["patterns"]))) |
|
62 f.close() |
|
63 except (IOError, OSError): |
|
64 # ignore these |
|
65 pass |
|
66 _UserEditor = MiniEditor(cfgFile, "Properties") |
|
67 _UserEditor.show() |
|