Plugins/VcsPlugins/vcsMercurial/ConfigurationPage/MercurialPage.py

Sat, 20 Jul 2013 16:01:55 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 20 Jul 2013 16:01:55 +0200
changeset 2810
fe551b27f62e
parent 2405
d4b5f3bd4720
child 2847
1843ef6e2656
child 3008
7848489bcb92
permissions
-rw-r--r--

Editing the Mercurial config file will generate a minimal one if none exists.

178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
2302
f29e9405c851 Updated copyright for 2013.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2278
diff changeset
3 # Copyright (c) 2010 - 2013 Detlev Offenbach <detlev@die-offenbachs.de>
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing the Mercurial configuration page.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
2278
72d794b6fef8 Added code to create an empty Mercurial user configuration file, if non exists already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
10 import os
72d794b6fef8 Added code to create an empty Mercurial user configuration file, if non exists already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
11
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 from PyQt4.QtCore import pyqtSlot
2810
fe551b27f62e Editing the Mercurial config file will generate a minimal one if none exists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2405
diff changeset
13 from PyQt4.QtGui import QDialog
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15 from Preferences.ConfigurationPages.ConfigurationPageBase import ConfigurationPageBase
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16 from .Ui_MercurialPage import Ui_MercurialPage
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
18
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 class MercurialPage(ConfigurationPageBase, Ui_MercurialPage):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 Class implementing the Mercurial configuration page.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 def __init__(self, plugin):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 Constructor
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 @param plugin reference to the plugin object
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 """
1131
7781e396c903 Changed the code to use super() to access the superclass.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1085
diff changeset
29 super().__init__()
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 self.setupUi(self)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 self.setObjectName("MercurialPage")
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 self.__plugin = plugin
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 # set initial values
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 self.logSpinBox.setValue(self.__plugin.getPreferences("LogLimit"))
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 self.commitSpinBox.setValue(self.__plugin.getPreferences("CommitMessages"))
181
4af57f97c1bc Added code to choose the way incoming and outgoing logs are shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
38 self.logBrowserCheckBox.setChecked(self.__plugin.getPreferences("UseLogBrowser"))
219
0553aa793753 Added action to back out a changeset and added code to update automatically after a pull (Mercurial Plug-in).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
39 self.pullUpdateCheckBox.setChecked(self.__plugin.getPreferences("PullUpdate"))
1307
9f7a056dbcc6 Modified pull such, that it will try to apply an existing changegroups file first.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
40 self.preferUnbundleCheckBox.setChecked(
9f7a056dbcc6 Modified pull such, that it will try to apply an existing changegroups file first.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
41 self.__plugin.getPreferences("PreferUnbundle"))
1085
ef6102d5fefe Made the Mercurial cleanup patterns configurable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1064
diff changeset
42 self.cleanupPatternEdit.setText(self.__plugin.getPreferences("CleanupPatterns"))
1312
12506dba74dc Added configuration option to create backup files when reverting changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
43 self.backupCheckBox.setChecked(self.__plugin.getPreferences("CreateBackup"))
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 def save(self):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 Public slot to save the Mercurial configuration.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 self.__plugin.setPreferences("LogLimit", self.logSpinBox.value())
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 self.__plugin.setPreferences("CommitMessages", self.commitSpinBox.value())
181
4af57f97c1bc Added code to choose the way incoming and outgoing logs are shown.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 178
diff changeset
51 self.__plugin.setPreferences("UseLogBrowser", self.logBrowserCheckBox.isChecked())
219
0553aa793753 Added action to back out a changeset and added code to update automatically after a pull (Mercurial Plug-in).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
52 self.__plugin.setPreferences("PullUpdate", self.pullUpdateCheckBox.isChecked())
1307
9f7a056dbcc6 Modified pull such, that it will try to apply an existing changegroups file first.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
53 self.__plugin.setPreferences("PreferUnbundle",
9f7a056dbcc6 Modified pull such, that it will try to apply an existing changegroups file first.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
54 self.preferUnbundleCheckBox.isChecked())
1085
ef6102d5fefe Made the Mercurial cleanup patterns configurable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1064
diff changeset
55 self.__plugin.setPreferences("CleanupPatterns", self.cleanupPatternEdit.text())
1312
12506dba74dc Added configuration option to create backup files when reverting changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
56 self.__plugin.setPreferences("CreateBackup", self.backupCheckBox.isChecked())
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 @pyqtSlot()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 def on_configButton_clicked(self):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 """
1064
10bdbb173c0f Added an entry to the Mercurial menu to edit the user configuration file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
61 Private slot to edit the (per user) Mercurial configuration file.
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 """
2405
d4b5f3bd4720 Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
63 from QScintilla.MiniEditor import MiniEditor
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 cfgFile = self.__plugin.getConfigPath()
2278
72d794b6fef8 Added code to create an empty Mercurial user configuration file, if non exists already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
65 if not os.path.exists(cfgFile):
2810
fe551b27f62e Editing the Mercurial config file will generate a minimal one if none exists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2405
diff changeset
66 username = ""
fe551b27f62e Editing the Mercurial config file will generate a minimal one if none exists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2405
diff changeset
67 from .MercurialUserDataDialog import MercurialUserDataDialog
fe551b27f62e Editing the Mercurial config file will generate a minimal one if none exists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2405
diff changeset
68 dlg = MercurialUserDataDialog()
fe551b27f62e Editing the Mercurial config file will generate a minimal one if none exists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2405
diff changeset
69 if dlg.exec_() == QDialog.Accepted:
fe551b27f62e Editing the Mercurial config file will generate a minimal one if none exists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2405
diff changeset
70 name, email = dlg.getData()
fe551b27f62e Editing the Mercurial config file will generate a minimal one if none exists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2405
diff changeset
71 if name and email:
fe551b27f62e Editing the Mercurial config file will generate a minimal one if none exists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2405
diff changeset
72 username = "{0} <{1}>".format(name, email)
fe551b27f62e Editing the Mercurial config file will generate a minimal one if none exists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2405
diff changeset
73 elif name:
fe551b27f62e Editing the Mercurial config file will generate a minimal one if none exists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2405
diff changeset
74 username = name
fe551b27f62e Editing the Mercurial config file will generate a minimal one if none exists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2405
diff changeset
75 elif email:
fe551b27f62e Editing the Mercurial config file will generate a minimal one if none exists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2405
diff changeset
76 username = email
2278
72d794b6fef8 Added code to create an empty Mercurial user configuration file, if non exists already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
77 try:
72d794b6fef8 Added code to create an empty Mercurial user configuration file, if non exists already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
78 f = open(cfgFile, "w")
2810
fe551b27f62e Editing the Mercurial config file will generate a minimal one if none exists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2405
diff changeset
79 f.write(os.linesep.join(["[ui]", "username = {0}".format(username), ""]))
2278
72d794b6fef8 Added code to create an empty Mercurial user configuration file, if non exists already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
80 f.close()
72d794b6fef8 Added code to create an empty Mercurial user configuration file, if non exists already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
81 except (IOError, OSError):
72d794b6fef8 Added code to create an empty Mercurial user configuration file, if non exists already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
82 # ignore these
72d794b6fef8 Added code to create an empty Mercurial user configuration file, if non exists already.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
83 pass
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 editor = MiniEditor(cfgFile, "Properties", self)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85 editor.show()

eric ide

mercurial