Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py

changeset 179
09260f69bf37
parent 178
dd9f0bca5e2f
child 180
40ac468c2558
equal deleted inserted replaced
178:dd9f0bca5e2f 179:09260f69bf37
55 self.limitSpinBox.setValue(self.vcs.getPlugin().getPreferences("LogLimit")) 55 self.limitSpinBox.setValue(self.vcs.getPlugin().getPreferences("LogLimit"))
56 self.stopCheckBox.setChecked(self.vcs.getPlugin().getPreferences("StopLogOnCopy")) 56 self.stopCheckBox.setChecked(self.vcs.getPlugin().getPreferences("StopLogOnCopy"))
57 57
58 self.__messageRole = Qt.UserRole 58 self.__messageRole = Qt.UserRole
59 self.__changesRole = Qt.UserRole + 1 59 self.__changesRole = Qt.UserRole + 1
60 self.__parentsRole = Qt.UserRole + 2
60 61
61 self.process = QProcess() 62 self.process = QProcess()
62 self.connect(self.process, SIGNAL('finished(int, QProcess::ExitStatus)'), 63 self.connect(self.process, SIGNAL('finished(int, QProcess::ExitStatus)'),
63 self.__procFinished) 64 self.__procFinished)
64 self.connect(self.process, SIGNAL('readyReadStandardOutput()'), 65 self.connect(self.process, SIGNAL('readyReadStandardOutput()'),
120 self.filesTree.sortItems(1, 121 self.filesTree.sortItems(1,
121 self.filesTree.header().sortIndicatorOrder()) 122 self.filesTree.header().sortIndicatorOrder())
122 self.filesTree.sortItems(sortColumn, 123 self.filesTree.sortItems(sortColumn,
123 self.filesTree.header().sortIndicatorOrder()) 124 self.filesTree.header().sortIndicatorOrder())
124 125
125 def __generateLogItem(self, author, date, message, revision, changedPaths): 126 def __generateLogItem(self, author, date, message, revision, changedPaths, parents):
126 """ 127 """
127 Private method to generate a log tree entry. 128 Private method to generate a log tree entry.
128 129
129 @param author author info (string) 130 @param author author info (string)
130 @param date date info (string) 131 @param date date info (string)
131 @param message text of the log message (list of strings) 132 @param message text of the log message (list of strings)
132 @param revision revision info (string) 133 @param revision revision info (string)
133 @param changedPaths list of dictionary objects containing 134 @param changedPaths list of dictionary objects containing
134 info about the changed files/directories 135 info about the changed files/directories
136 @param parents list of parent revisions (list of integers)
135 @return reference to the generated item (QTreeWidgetItem) 137 @return reference to the generated item (QTreeWidgetItem)
136 """ 138 """
137 msg = [] 139 msg = []
138 for line in message: 140 for line in message:
139 msg.append(line.strip()) 141 msg.append(line.strip())
146 " ".join(msg), 148 " ".join(msg),
147 ]) 149 ])
148 150
149 itm.setData(0, self.__messageRole, message) 151 itm.setData(0, self.__messageRole, message)
150 itm.setData(0, self.__changesRole, changedPaths) 152 itm.setData(0, self.__changesRole, changedPaths)
153 itm.setData(0, self.__parentsRole, parents)
151 154
152 itm.setTextAlignment(0, Qt.AlignLeft) 155 itm.setTextAlignment(0, Qt.AlignLeft)
153 itm.setTextAlignment(1, Qt.AlignLeft) 156 itm.setTextAlignment(1, Qt.AlignLeft)
154 itm.setTextAlignment(2, Qt.AlignLeft) 157 itm.setTextAlignment(2, Qt.AlignLeft)
155 itm.setTextAlignment(3, Qt.AlignLeft) 158 itm.setTextAlignment(3, Qt.AlignLeft)
213 if not self.stopCheckBox.isChecked(): 216 if not self.stopCheckBox.isChecked():
214 args.append('--follow') 217 args.append('--follow')
215 args.append('--template') 218 args.append('--template')
216 args.append("change|{rev}:{node|short}\n" 219 args.append("change|{rev}:{node|short}\n"
217 "user|{author}\n" 220 "user|{author}\n"
221 "parents|{parents}\n"
218 "date|{date|isodate}\n" 222 "date|{date|isodate}\n"
219 "description|{desc}\n" 223 "description|{desc}\n"
220 "file_adds|{file_adds}\n" 224 "file_adds|{file_adds}\n"
221 "files_mods|{file_mods}\n" 225 "files_mods|{file_mods}\n"
222 "file_dels|{file_dels}\n" 226 "file_dels|{file_dels}\n"
308 value = s 312 value = s
309 if key == "change": 313 if key == "change":
310 log["revision"] = value.strip() 314 log["revision"] = value.strip()
311 elif key == "user": 315 elif key == "user":
312 log["author"] = value.strip() 316 log["author"] = value.strip()
317 elif key == "parents":
318 log["parents"] = [int(x) for x in value.strip().split()]
313 elif key == "date": 319 elif key == "date":
314 log["date"] = " ".join(value.strip().split()[:2]) 320 log["date"] = " ".join(value.strip().split()[:2])
315 elif key == "description": 321 elif key == "description":
316 log["message"].append(value.strip()) 322 log["message"].append(value.strip())
317 elif key == "file_adds": 323 elif key == "file_adds":
339 if value.strip(): 345 if value.strip():
340 log["message"].append(value.strip()) 346 log["message"].append(value.strip())
341 else: 347 else:
342 if len(log) > 1: 348 if len(log) > 1:
343 self.__generateLogItem(log["author"], log["date"], 349 self.__generateLogItem(log["author"], log["date"],
344 log["message"], log["revision"], changedPaths) 350 log["message"], log["revision"], changedPaths,
351 log["parents"])
345 dt = QDate.fromString(log["date"], Qt.ISODate) 352 dt = QDate.fromString(log["date"], Qt.ISODate)
346 if not self.__maxDate.isValid() and not self.__minDate.isValid(): 353 if not self.__maxDate.isValid() and not self.__minDate.isValid():
347 self.__maxDate = dt 354 self.__maxDate = dt
348 self.__minDate = dt 355 self.__minDate = dt
349 else: 356 else:

eric ide

mercurial