12 from PyQt6.QtCore import pyqtSignal, Qt, pyqtSlot |
12 from PyQt6.QtCore import pyqtSignal, Qt, pyqtSlot |
13 from PyQt6.QtWidgets import QWidget, QDialogButtonBox |
13 from PyQt6.QtWidgets import QWidget, QDialogButtonBox |
14 |
14 |
15 from .Ui_SvnCommitDialog import Ui_SvnCommitDialog |
15 from .Ui_SvnCommitDialog import Ui_SvnCommitDialog |
16 |
16 |
17 import Preferences |
|
18 |
|
19 |
17 |
20 class SvnCommitDialog(QWidget, Ui_SvnCommitDialog): |
18 class SvnCommitDialog(QWidget, Ui_SvnCommitDialog): |
21 """ |
19 """ |
22 Class implementing a dialog to enter the commit message. |
20 Class implementing a dialog to enter the commit message. |
23 |
21 |
25 @signal rejected() emitted, if the dialog was rejected |
23 @signal rejected() emitted, if the dialog was rejected |
26 """ |
24 """ |
27 accepted = pyqtSignal() |
25 accepted = pyqtSignal() |
28 rejected = pyqtSignal() |
26 rejected = pyqtSignal() |
29 |
27 |
30 def __init__(self, changelists, parent=None): |
28 def __init__(self, vcs, parent=None): |
31 """ |
29 """ |
32 Constructor |
30 Constructor |
33 |
31 |
34 @param changelists list of available change lists (list of strings) |
32 @param vcs reference to the vcs object |
35 @param parent parent widget (QWidget) |
33 @param parent parent widget (QWidget) |
36 """ |
34 """ |
37 super().__init__(parent, Qt.WindowType.Window) |
35 super().__init__(parent, Qt.WindowType.Window) |
38 self.setupUi(self) |
36 self.setupUi(self) |
39 |
37 |
|
38 self.__vcs = vcs |
|
39 |
40 if pysvn.svn_version < (1, 5, 0) or pysvn.version < (1, 6, 0): |
40 if pysvn.svn_version < (1, 5, 0) or pysvn.version < (1, 6, 0): |
41 self.changeListsGroup.hide() |
41 self.changeListsGroup.hide() |
42 else: |
42 else: |
43 self.changeLists.addItems(sorted(changelists)) |
43 self.changeLists.addItems(sorted(vcs.svnGetChangelists())) |
44 |
44 |
45 def showEvent(self, evt): |
45 def showEvent(self, evt): |
46 """ |
46 """ |
47 Protected method called when the dialog is about to be shown. |
47 Protected method called when the dialog is about to be shown. |
48 |
48 |
49 @param evt the event (QShowEvent) |
49 @param evt the event (QShowEvent) |
50 """ |
50 """ |
51 self.recentCommitMessages = Preferences.toList( |
51 commitMessages = self.__vcs.vcsCommitMessages() |
52 Preferences.Prefs.settings.value('Subversion/Commits')) |
|
53 self.recentComboBox.clear() |
52 self.recentComboBox.clear() |
54 self.recentComboBox.addItem("") |
53 self.recentComboBox.addItem("") |
55 self.recentComboBox.addItems(self.recentCommitMessages) |
54 self.recentComboBox.addItems(commitMessages) |
56 |
55 |
57 self.logEdit.setFocus(Qt.FocusReason.OtherFocusReason) |
56 self.logEdit.setFocus(Qt.FocusReason.OtherFocusReason) |
58 |
57 |
59 def logMessage(self): |
58 def logMessage(self): |
60 """ |
59 """ |
65 |
64 |
66 @return the log message (string) |
65 @return the log message (string) |
67 """ |
66 """ |
68 msg = self.logEdit.toPlainText() |
67 msg = self.logEdit.toPlainText() |
69 if msg: |
68 if msg: |
70 if msg in self.recentCommitMessages: |
69 self.__vcs.vcsAddCommitMessage(msg) |
71 self.recentCommitMessages.remove(msg) |
|
72 self.recentCommitMessages.insert(0, msg) |
|
73 no = int(Preferences.Prefs.settings.value( |
|
74 'Subversion/CommitMessages', 20)) |
|
75 del self.recentCommitMessages[no:] |
|
76 Preferences.Prefs.settings.setValue( |
|
77 'Subversion/Commits', self.recentCommitMessages) |
|
78 return msg |
70 return msg |
79 |
71 |
80 def hasChangelists(self): |
72 def hasChangelists(self): |
81 """ |
73 """ |
82 Public method to check, if the user entered some changelists. |
74 Public method to check, if the user entered some changelists. |