eric6/Plugins/VcsPlugins/vcsMercurial/QueuesExtension/HgQueuesQueueManagementDialog.py

Wed, 01 Jan 2020 11:57:23 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Wed, 01 Jan 2020 11:57:23 +0100
changeset 7360
9190402e4505
parent 7257
c4d0cac9b5c9
child 7370
5fb53279f2df
permissions
-rw-r--r--

Updated copyright for 2020.

1053
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
7360
9190402e4505 Updated copyright for 2020.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7257
diff changeset
3 # Copyright (c) 2011 - 2020 Detlev Offenbach <detlev@die-offenbachs.de>
1053
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing a dialog used by the queue management functions.
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
2525
8b507a9a2d40 Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 2302
diff changeset
10
4278
ccd1e13cb9bd Fixed issues where dialogs could not be minimized on some desktop environments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
11 from PyQt5.QtCore import pyqtSlot, Qt, QProcess, QCoreApplication
7257
c4d0cac9b5c9 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
12 from PyQt5.QtWidgets import (
c4d0cac9b5c9 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
13 QDialog, QDialogButtonBox, QAbstractItemView, QListWidgetItem,
c4d0cac9b5c9 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
14 QAbstractButton
c4d0cac9b5c9 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
15 )
1053
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17 from .Ui_HgQueuesQueueManagementDialog import Ui_HgQueuesQueueManagementDialog
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 class HgQueuesQueueManagementDialog(QDialog, Ui_HgQueuesQueueManagementDialog):
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 """
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 Class implementing a dialog used by the queue management functions.
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 """
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 NO_INPUT = 0
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 NAME_INPUT = 1
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 QUEUE_INPUT = 2
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27
1255
e1d8a8a4d40c Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
28 def __init__(self, mode, title, suppressActive, repodir, vcs, parent=None):
1053
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 """
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 Constructor
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 @param mode mode of the dialog (HgQueuesQueueManagementDialog.NO_INPUT
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 HgQueuesQueueManagementDialog.NAME_INPUT,
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 HgQueuesQueueManagementDialog.QUEUE_INPUT)
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 @param title title for the dialog (string)
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2962
diff changeset
36 @param suppressActive flag indicating to not show the name of the
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2962
diff changeset
37 active queue (boolean)
1053
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 @param repodir name of the repository directory (string)
1255
e1d8a8a4d40c Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
39 @param vcs reference to the vcs object
1053
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 @param parent reference to the parent widget (QWidget)
2962
d6c9d1ca2da4 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2771
diff changeset
41 @exception ValueError raised to indicate an invalid dialog mode
1053
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 """
2525
8b507a9a2d40 Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 2302
diff changeset
43 super(HgQueuesQueueManagementDialog, self).__init__(parent)
1053
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 self.setupUi(self)
4278
ccd1e13cb9bd Fixed issues where dialogs could not be minimized on some desktop environments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
45 self.setWindowFlags(Qt.Window)
1053
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 if mode not in (HgQueuesQueueManagementDialog.NO_INPUT,
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 HgQueuesQueueManagementDialog.NAME_INPUT,
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 HgQueuesQueueManagementDialog.QUEUE_INPUT):
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 raise ValueError("illegal value for mode")
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 self.__mode = mode
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 self.__repodir = repodir
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 self.__suppressActive = suppressActive
1255
e1d8a8a4d40c Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
55 self.__hgClient = vcs.getClient()
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
56 self.vcs = vcs
1053
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2962
diff changeset
58 self.inputFrame.setHidden(
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2962
diff changeset
59 mode != HgQueuesQueueManagementDialog.NAME_INPUT)
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2962
diff changeset
60 self.selectLabel.setHidden(
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2962
diff changeset
61 mode != HgQueuesQueueManagementDialog.QUEUE_INPUT)
1053
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 if mode != HgQueuesQueueManagementDialog.QUEUE_INPUT:
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 self.queuesList.setSelectionMode(QAbstractItemView.NoSelection)
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 if mode == HgQueuesQueueManagementDialog.NO_INPUT:
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2962
diff changeset
66 self.buttonBox.removeButton(
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2962
diff changeset
67 self.buttonBox.button(QDialogButtonBox.Ok))
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2962
diff changeset
68 self.buttonBox.removeButton(
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2962
diff changeset
69 self.buttonBox.button(QDialogButtonBox.Cancel))
1053
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 self.refreshButton = self.buttonBox.addButton(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
71 self.tr("Refresh"), QDialogButtonBox.ActionRole)
1053
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 self.refreshButton.setToolTip(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
73 self.tr("Press to refresh the queues list"))
1053
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 self.buttonBox.button(QDialogButtonBox.Close).setDefault(True)
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 else:
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2962
diff changeset
76 self.buttonBox.removeButton(
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2962
diff changeset
77 self.buttonBox.button(QDialogButtonBox.Close))
1053
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 self.buttonBox.button(QDialogButtonBox.Ok).setEnabled(False)
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 self.refreshButton = None
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81 self.setWindowTitle(title)
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82
1260
9488a3aceb0e Added code to some Mercurial dialogs to improve user experience.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1255
diff changeset
83 self.show()
9488a3aceb0e Added code to some Mercurial dialogs to improve user experience.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1255
diff changeset
84 QCoreApplication.processEvents()
9488a3aceb0e Added code to some Mercurial dialogs to improve user experience.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1255
diff changeset
85
1053
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86 self.refresh()
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88 def __getQueuesList(self):
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89 """
3591
2f2a4a76dd22 Corrected a bunch of source docu issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3484
diff changeset
90 Private method to get a list of all queues and the name of the active
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2962
diff changeset
91 queue.
1053
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2962
diff changeset
93 @return tuple with a list of all queues and the name of the active
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2962
diff changeset
94 queue (list of strings, string)
1053
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95 """
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 queuesList = []
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97 activeQueue = ""
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
99 args = self.vcs.initCommand("qqueue")
1053
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100 args.append("--list")
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101
1255
e1d8a8a4d40c Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
102 output = ""
e1d8a8a4d40c Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
103 if self.__hgClient:
e1d8a8a4d40c Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
104 output = self.__hgClient.runcommand(args)[0]
e1d8a8a4d40c Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
105 else:
e1d8a8a4d40c Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
106 process = QProcess()
e1d8a8a4d40c Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
107 process.setWorkingDirectory(self.__repodir)
e1d8a8a4d40c Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
108 process.start('hg', args)
2771
281c9b30dd91 Changed all QProcess.waitForStarted() calls to use a 5s timeout (except the debugger interfaces, which have a 10s timeout).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
109 procStarted = process.waitForStarted(5000)
1255
e1d8a8a4d40c Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
110 if procStarted:
e1d8a8a4d40c Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
111 finished = process.waitForFinished(30000)
e1d8a8a4d40c Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
112 if finished and process.exitCode() == 0:
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
113 output = str(process.readAllStandardOutput(),
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
114 self.vcs.getEncoding(), 'replace')
1255
e1d8a8a4d40c Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
115
e1d8a8a4d40c Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
116 for queue in output.splitlines():
e1d8a8a4d40c Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
117 queue = queue.strip()
e1d8a8a4d40c Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
118 if queue.endswith(")"):
e1d8a8a4d40c Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
119 queue = queue.rsplit(None, 1)[0]
e1d8a8a4d40c Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
120 activeQueue = queue
e1d8a8a4d40c Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1131
diff changeset
121 queuesList.append(queue)
1053
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
122
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
123 if self.__suppressActive:
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
124 if activeQueue in queuesList:
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
125 queuesList.remove(activeQueue)
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
126 activeQueue = ""
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
127 return queuesList, activeQueue
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
128
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
129 @pyqtSlot(str)
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
130 def on_nameEdit_textChanged(self, txt):
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
131 """
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
132 Private slot to handle changes of the entered queue name.
2962
d6c9d1ca2da4 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2771
diff changeset
133
d6c9d1ca2da4 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2771
diff changeset
134 @param txt text of the edit (string)
1053
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
135 """
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
136 if self.__mode == HgQueuesQueueManagementDialog.NAME_INPUT:
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
137 self.buttonBox.button(QDialogButtonBox.Ok).setEnabled(txt != "")
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
138
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
139 @pyqtSlot()
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
140 def on_queuesList_itemSelectionChanged(self):
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
141 """
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
142 Private slot to handle changes of selected queue names.
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
143 """
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
144 if self.__mode == HgQueuesQueueManagementDialog.QUEUE_INPUT:
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
145 self.buttonBox.button(QDialogButtonBox.Ok).setEnabled(
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
146 len(self.queuesList.selectedItems()) > 0)
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
147
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
148 @pyqtSlot(QAbstractButton)
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
149 def on_buttonBox_clicked(self, button):
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
150 """
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
151 Private slot called by a button of the button box clicked.
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
152
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
153 @param button button that was clicked (QAbstractButton)
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
154 """
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
155 if button == self.refreshButton:
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
156 self.refresh()
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
157 elif button == self.buttonBox.button(QDialogButtonBox.Close):
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
158 self.close()
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
159
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
160 def refresh(self):
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
161 """
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
162 Public slot to refresh the list of queues.
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
163 """
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
164 self.queuesList.clear()
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
165 queuesList, activeQueue = self.__getQueuesList()
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
166 for queue in sorted(queuesList):
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
167 itm = QListWidgetItem(queue, self.queuesList)
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
168 if queue == activeQueue:
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
169 font = itm.font()
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
170 font.setBold(True)
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
171 itm.setFont(font)
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
172
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
173 def getData(self):
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
174 """
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
175 Public slot to get the data.
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
176
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
177 @return queue name (string)
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
178 """
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
179 name = ""
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
180 if self.__mode == HgQueuesQueueManagementDialog.NAME_INPUT:
3408
b6e6a7062d12 Changed some Mercurial dialogs asking for a (tag, branch,...) name to convert spaces to underscores because spaces are not really recommended.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3302
diff changeset
181 name = self.nameEdit.text().replace(" ", "_")
1053
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
182 elif self.__mode == HgQueuesQueueManagementDialog.QUEUE_INPUT:
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
183 selItems = self.queuesList.selectedItems()
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
184 if selItems:
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
185 name = selItems[0].text()
c54aa980ea8e Added an interface to the Mercurial patch queue management.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
186 return name

eric ide

mercurial