66 self.buttonBox.button(QDialogButtonBox.Cancel).setDefault(True) |
66 self.buttonBox.button(QDialogButtonBox.Cancel).setDefault(True) |
67 |
67 |
68 self.filesTree.headerItem().setText(self.filesTree.columnCount(), "") |
68 self.filesTree.headerItem().setText(self.filesTree.columnCount(), "") |
69 self.filesTree.header().setSortIndicator(0, Qt.AscendingOrder) |
69 self.filesTree.header().setSortIndicator(0, Qt.AscendingOrder) |
70 |
70 |
|
71 self.refreshButton = \ |
|
72 self.buttonBox.addButton(self.trUtf8("&Refresh"), QDialogButtonBox.ActionRole) |
|
73 self.refreshButton.setToolTip( |
|
74 self.trUtf8("Press to refresh the list of changesets")) |
|
75 self.refreshButton.setEnabled(False) |
|
76 |
71 self.vcs = vcs |
77 self.vcs = vcs |
72 if mode in ("log", "incoming", "outgoing"): |
78 if mode in ("log", "incoming", "outgoing"): |
73 self.commandMode = mode |
79 self.commandMode = mode |
74 else: |
80 else: |
75 self.commandMode = "log" |
81 self.commandMode = "log" |
76 self.bundle = bundle |
82 self.bundle = bundle |
77 |
83 |
78 self.__maxDate = QDate() |
84 self.__initData() |
79 self.__minDate = QDate() |
85 |
80 self.__filterLogsEnabled = True |
86 self.__allBranchesFilter = self.trUtf8("All") |
81 |
87 |
82 self.fromDate.setDisplayFormat("yyyy-MM-dd") |
88 self.fromDate.setDisplayFormat("yyyy-MM-dd") |
83 self.toDate.setDisplayFormat("yyyy-MM-dd") |
89 self.toDate.setDisplayFormat("yyyy-MM-dd") |
84 self.fromDate.setDate(QDate.currentDate()) |
90 self.fromDate.setDate(QDate.currentDate()) |
85 self.toDate.setDate(QDate.currentDate()) |
91 self.toDate.setDate(QDate.currentDate()) |
109 'A': self.trUtf8('Added'), |
115 'A': self.trUtf8('Added'), |
110 'D': self.trUtf8('Deleted'), |
116 'D': self.trUtf8('Deleted'), |
111 'M': self.trUtf8('Modified'), |
117 'M': self.trUtf8('Modified'), |
112 } |
118 } |
113 |
119 |
|
120 self.__dotRadius = 8 |
|
121 self.__rowHeight = 20 |
|
122 |
|
123 self.logTree.setIconSize( |
|
124 QSize(100 * self.__rowHeight, self.__rowHeight)) |
|
125 if self.vcs.versionStr >= "1.8": |
|
126 self.logTree.headerItem().setText(self.logTree.columnCount(), |
|
127 self.trUtf8("Bookmarks")) |
|
128 |
|
129 def __initData(self): |
|
130 """ |
|
131 Private method to (re-)initialize some data. |
|
132 """ |
|
133 self.__maxDate = QDate() |
|
134 self.__minDate = QDate() |
|
135 self.__filterLogsEnabled = True |
|
136 |
114 self.buf = [] # buffer for stdout |
137 self.buf = [] # buffer for stdout |
115 self.diff = None |
138 self.diff = None |
116 self.__started = False |
139 self.__started = False |
117 self.__lastRev = 0 |
140 self.__lastRev = 0 |
118 self.projectMode = False |
141 self.projectMode = False |
120 # attributes to store log graph data |
143 # attributes to store log graph data |
121 self.__revs = [] |
144 self.__revs = [] |
122 self.__revColors = {} |
145 self.__revColors = {} |
123 self.__revColor = 0 |
146 self.__revColor = 0 |
124 |
147 |
125 self.__dotRadius = 8 |
|
126 self.__rowHeight = 20 |
|
127 |
|
128 self.__branchColors = {} |
148 self.__branchColors = {} |
129 self.__allBranchesFilter = self.trUtf8("All") |
|
130 |
|
131 self.logTree.setIconSize( |
|
132 QSize(100 * self.__rowHeight, self.__rowHeight)) |
|
133 if self.vcs.versionStr >= "1.8": |
|
134 self.logTree.headerItem().setText(self.logTree.columnCount(), |
|
135 self.trUtf8("Bookmarks")) |
|
136 |
149 |
137 self.__projectRevision = -1 |
150 self.__projectRevision = -1 |
138 |
151 |
139 def closeEvent(self, e): |
152 def closeEvent(self, e): |
140 """ |
153 """ |
690 self.buttonBox.button(QDialogButtonBox.Cancel).setEnabled(False) |
703 self.buttonBox.button(QDialogButtonBox.Cancel).setEnabled(False) |
691 self.buttonBox.button(QDialogButtonBox.Close).setDefault(True) |
704 self.buttonBox.button(QDialogButtonBox.Close).setDefault(True) |
692 |
705 |
693 self.inputGroup.setEnabled(False) |
706 self.inputGroup.setEnabled(False) |
694 self.inputGroup.hide() |
707 self.inputGroup.hide() |
|
708 self.refreshButton.setEnabled(True) |
695 |
709 |
696 def __processBuffer(self): |
710 def __processBuffer(self): |
697 """ |
711 """ |
698 Private method to process the buffered output of the hg log command. |
712 Private method to process the buffered output of the hg log command. |
699 """ |
713 """ |
883 if button == self.buttonBox.button(QDialogButtonBox.Close): |
897 if button == self.buttonBox.button(QDialogButtonBox.Close): |
884 self.close() |
898 self.close() |
885 elif button == self.buttonBox.button(QDialogButtonBox.Cancel): |
899 elif button == self.buttonBox.button(QDialogButtonBox.Cancel): |
886 self.cancelled = True |
900 self.cancelled = True |
887 self.__finish() |
901 self.__finish() |
|
902 elif button == self.refreshButton: |
|
903 self.on_refreshButton_clicked() |
888 |
904 |
889 def __updateDiffButtons(self): |
905 def __updateDiffButtons(self): |
890 """ |
906 """ |
891 Private slot to update the enabled status of the diff buttons. |
907 Private slot to update the enabled status of the diff buttons. |
892 """ |
908 """ |
893 selectionLength = len(self.logTree.selectedItems()) |
909 selectionLength = len(self.logTree.selectedItems()) |
894 if selectionLength <= 1: |
910 if selectionLength <= 1: |
895 current = self.logTree.currentItem() |
911 current = self.logTree.currentItem() |
896 parents = current.data(0, self.__parentsRole) |
912 if current is None: |
897 self.diffP1Button.setEnabled(len(parents) > 0) |
913 self.diffP1Button.setEnabled(False) |
898 self.diffP2Button.setEnabled(len(parents) > 1) |
914 self.diffP2Button.setEnabled(False) |
|
915 else: |
|
916 parents = current.data(0, self.__parentsRole) |
|
917 self.diffP1Button.setEnabled(len(parents) > 0) |
|
918 self.diffP2Button.setEnabled(len(parents) > 1) |
899 |
919 |
900 self.diffRevisionsButton.setEnabled(False) |
920 self.diffRevisionsButton.setEnabled(False) |
901 elif selectionLength == 2: |
921 elif selectionLength == 2: |
902 self.diffP1Button.setEnabled(False) |
922 self.diffP1Button.setEnabled(False) |
903 self.diffP2Button.setEnabled(False) |
923 self.diffP2Button.setEnabled(False) |
916 |
936 |
917 @param current reference to the new current item (QTreeWidgetItem) |
937 @param current reference to the new current item (QTreeWidgetItem) |
918 @param previous reference to the old current item (QTreeWidgetItem) |
938 @param previous reference to the old current item (QTreeWidgetItem) |
919 """ |
939 """ |
920 self.messageEdit.clear() |
940 self.messageEdit.clear() |
921 for line in current.data(0, self.__messageRole): |
|
922 self.messageEdit.append(line.strip()) |
|
923 |
|
924 self.filesTree.clear() |
941 self.filesTree.clear() |
925 changes = current.data(0, self.__changesRole) |
942 |
926 if len(changes) > 0: |
943 if current is not None: |
927 for change in changes: |
944 for line in current.data(0, self.__messageRole): |
928 self.__generateFileItem( |
945 self.messageEdit.append(line.strip()) |
929 change["action"], change["path"], change["copyfrom"]) |
946 |
930 self.__resizeColumnsFiles() |
947 changes = current.data(0, self.__changesRole) |
931 self.__resortFiles() |
948 if len(changes) > 0: |
|
949 for change in changes: |
|
950 self.__generateFileItem( |
|
951 change["action"], change["path"], change["copyfrom"]) |
|
952 self.__resizeColumnsFiles() |
|
953 self.__resortFiles() |
932 |
954 |
933 self.__updateDiffButtons() |
955 self.__updateDiffButtons() |
934 |
956 |
935 @pyqtSlot() |
957 @pyqtSlot() |
936 def on_logTree_itemSelectionChanged(self): |
958 def on_logTree_itemSelectionChanged(self): |
1102 self.vcs.getPlugin().setPreferences("StopLogOnCopy", |
1124 self.vcs.getPlugin().setPreferences("StopLogOnCopy", |
1103 self.stopCheckBox.isChecked()) |
1125 self.stopCheckBox.isChecked()) |
1104 self.nextButton.setEnabled(True) |
1126 self.nextButton.setEnabled(True) |
1105 self.limitSpinBox.setEnabled(True) |
1127 self.limitSpinBox.setEnabled(True) |
1106 |
1128 |
|
1129 @pyqtSlot() |
|
1130 def on_refreshButton_clicked(self): |
|
1131 """ |
|
1132 Private slot to refresh the log. |
|
1133 """ |
|
1134 self.buttonBox.button(QDialogButtonBox.Close).setEnabled(False) |
|
1135 self.buttonBox.button(QDialogButtonBox.Cancel).setEnabled(True) |
|
1136 self.buttonBox.button(QDialogButtonBox.Cancel).setDefault(True) |
|
1137 |
|
1138 self.inputGroup.setEnabled(True) |
|
1139 self.inputGroup.show() |
|
1140 self.refreshButton.setEnabled(False) |
|
1141 |
|
1142 self.__initData() |
|
1143 |
|
1144 self.start(self.filename) |
|
1145 |
1107 def on_passwordCheckBox_toggled(self, isOn): |
1146 def on_passwordCheckBox_toggled(self, isOn): |
1108 """ |
1147 """ |
1109 Private slot to handle the password checkbox toggled. |
1148 Private slot to handle the password checkbox toggled. |
1110 |
1149 |
1111 @param isOn flag indicating the status of the check box (boolean) |
1150 @param isOn flag indicating the status of the check box (boolean) |