Plugins/VcsPlugins/vcsSubversion/SvnLogBrowserDialog.py

changeset 3009
bf5ae5d7477d
parent 2963
745d38097b7f
child 3020
542e97d4ecb3
child 3057
10516539f238
equal deleted inserted replaced
3008:7848489bcb92 3009:bf5ae5d7477d
52 52
53 self.fromDate.setDisplayFormat("yyyy-MM-dd") 53 self.fromDate.setDisplayFormat("yyyy-MM-dd")
54 self.toDate.setDisplayFormat("yyyy-MM-dd") 54 self.toDate.setDisplayFormat("yyyy-MM-dd")
55 self.fromDate.setDate(QDate.currentDate()) 55 self.fromDate.setDate(QDate.currentDate())
56 self.toDate.setDate(QDate.currentDate()) 56 self.toDate.setDate(QDate.currentDate())
57 self.fieldCombo.setCurrentIndex(self.fieldCombo.findText(self.trUtf8("Message"))) 57 self.fieldCombo.setCurrentIndex(
58 self.limitSpinBox.setValue(self.vcs.getPlugin().getPreferences("LogLimit")) 58 self.fieldCombo.findText(self.trUtf8("Message")))
59 self.stopCheckBox.setChecked(self.vcs.getPlugin().getPreferences("StopLogOnCopy")) 59 self.limitSpinBox.setValue(
60 self.vcs.getPlugin().getPreferences("LogLimit"))
61 self.stopCheckBox.setChecked(
62 self.vcs.getPlugin().getPreferences("StopLogOnCopy"))
60 63
61 self.__messageRole = Qt.UserRole 64 self.__messageRole = Qt.UserRole
62 self.__changesRole = Qt.UserRole + 1 65 self.__changesRole = Qt.UserRole + 1
63 66
64 self.process = QProcess() 67 self.process = QProcess()
66 self.process.readyReadStandardOutput.connect(self.__readStdout) 69 self.process.readyReadStandardOutput.connect(self.__readStdout)
67 self.process.readyReadStandardError.connect(self.__readStderr) 70 self.process.readyReadStandardError.connect(self.__readStderr)
68 71
69 self.rx_sep1 = QRegExp('\\-+\\s*') 72 self.rx_sep1 = QRegExp('\\-+\\s*')
70 self.rx_sep2 = QRegExp('=+\\s*') 73 self.rx_sep2 = QRegExp('=+\\s*')
71 self.rx_rev1 = QRegExp('rev ([0-9]+): ([^|]*) \| ([^|]*) \| ([0-9]+) .*') 74 self.rx_rev1 = QRegExp(
75 'rev ([0-9]+): ([^|]*) \| ([^|]*) \| ([0-9]+) .*')
72 # "rev" followed by one or more decimals followed by a colon followed 76 # "rev" followed by one or more decimals followed by a colon followed
73 # anything up to " | " (twice) followed by one or more decimals followed 77 # anything up to " | " (twice) followed by one or more decimals
74 # by anything 78 # followed by anything
75 self.rx_rev2 = QRegExp('r([0-9]+) \| ([^|]*) \| ([^|]*) \| ([0-9]+) .*') 79 self.rx_rev2 = QRegExp(
80 'r([0-9]+) \| ([^|]*) \| ([^|]*) \| ([0-9]+) .*')
76 # "r" followed by one or more decimals followed by " | " followed 81 # "r" followed by one or more decimals followed by " | " followed
77 # anything up to " | " (twice) followed by one or more decimals followed 82 # anything up to " | " (twice) followed by one or more decimals
78 # by anything 83 # followed by anything
79 self.rx_flags1 = QRegExp(r""" ([ADM])\s(.*)\s+\(\w+\s+(.*):([0-9]+)\)\s*""") 84 self.rx_flags1 = QRegExp(
85 r""" ([ADM])\s(.*)\s+\(\w+\s+(.*):([0-9]+)\)\s*""")
80 # three blanks followed by A or D or M followed by path followed by 86 # three blanks followed by A or D or M followed by path followed by
81 # path copied from followed by copied from revision 87 # path copied from followed by copied from revision
82 self.rx_flags2 = QRegExp(' ([ADM]) (.*)\\s*') 88 self.rx_flags2 = QRegExp(' ([ADM]) (.*)\\s*')
83 # three blanks followed by A or D or M followed by path 89 # three blanks followed by A or D or M followed by path
84 90
279 self.__processBuffer() 285 self.__processBuffer()
280 self.__finish() 286 self.__finish()
281 287
282 def __finish(self): 288 def __finish(self):
283 """ 289 """
284 Private slot called when the process finished or the user pressed the button. 290 Private slot called when the process finished or the user pressed the
291 button.
285 """ 292 """
286 if self.process is not None and \ 293 if self.process is not None and \
287 self.process.state() != QProcess.NotRunning: 294 self.process.state() != QProcess.NotRunning:
288 self.process.terminate() 295 self.process.terminate()
289 QTimer.singleShot(2000, self.process.kill) 296 QTimer.singleShot(2000, self.process.kill)
339 elif self.rx_sep1.exactMatch(s) or self.rx_sep2.exactMatch(s): 346 elif self.rx_sep1.exactMatch(s) or self.rx_sep2.exactMatch(s):
340 if len(log) > 1: 347 if len(log) > 1:
341 self.__generateLogItem(log["author"], log["date"], 348 self.__generateLogItem(log["author"], log["date"],
342 log["message"], log["revision"], changedPaths) 349 log["message"], log["revision"], changedPaths)
343 dt = QDate.fromString(log["date"], Qt.ISODate) 350 dt = QDate.fromString(log["date"], Qt.ISODate)
344 if not self.__maxDate.isValid() and not self.__minDate.isValid(): 351 if not self.__maxDate.isValid() and \
352 not self.__minDate.isValid():
345 self.__maxDate = dt 353 self.__maxDate = dt
346 self.__minDate = dt 354 self.__minDate = dt
347 else: 355 else:
348 if self.__maxDate < dt: 356 if self.__maxDate < dt:
349 self.__maxDate = dt 357 self.__maxDate = dt
414 422
415 @param rev1 first revision number (integer) 423 @param rev1 first revision number (integer)
416 @param rev2 second revision number (integer) 424 @param rev2 second revision number (integer)
417 """ 425 """
418 if self.sbsCheckBox.isEnabled() and self.sbsCheckBox.isChecked(): 426 if self.sbsCheckBox.isEnabled() and self.sbsCheckBox.isChecked():
419 self.vcs.svnSbsDiff(self.filename, revisions=(str(rev1), str(rev2))) 427 self.vcs.svnSbsDiff(self.filename,
428 revisions=(str(rev1), str(rev2)))
420 else: 429 else:
421 if self.diff is None: 430 if self.diff is None:
422 from .SvnDiffDialog import SvnDiffDialog 431 from .SvnDiffDialog import SvnDiffDialog
423 self.diff = SvnDiffDialog(self.vcs) 432 self.diff = SvnDiffDialog(self.vcs)
424 self.diff.show() 433 self.diff.show()
457 change["copyfrom_path"], change["copyfrom_revision"]) 466 change["copyfrom_path"], change["copyfrom_revision"])
458 self.__resizeColumnsFiles() 467 self.__resizeColumnsFiles()
459 self.__resortFiles() 468 self.__resortFiles()
460 469
461 self.diffPreviousButton.setEnabled( 470 self.diffPreviousButton.setEnabled(
462 current != self.logTree.topLevelItem(self.logTree.topLevelItemCount() - 1)) 471 current != self.logTree.topLevelItem(
472 self.logTree.topLevelItemCount() - 1))
463 473
464 @pyqtSlot() 474 @pyqtSlot()
465 def on_logTree_itemSelectionChanged(self): 475 def on_logTree_itemSelectionChanged(self):
466 """ 476 """
467 Private slot called, when the selection has changed. 477 Private slot called, when the selection has changed.
468 """ 478 """
469 self.diffRevisionsButton.setEnabled(len(self.logTree.selectedItems()) == 2) 479 self.diffRevisionsButton.setEnabled(
480 len(self.logTree.selectedItems()) == 2)
470 481
471 @pyqtSlot() 482 @pyqtSlot()
472 def on_nextButton_clicked(self): 483 def on_nextButton_clicked(self):
473 """ 484 """
474 Private slot to handle the Next button. 485 Private slot to handle the Next button.
485 if itm is None: 496 if itm is None:
486 self.diffPreviousButton.setEnabled(False) 497 self.diffPreviousButton.setEnabled(False)
487 return 498 return
488 rev2 = int(itm.text(0)) 499 rev2 = int(itm.text(0))
489 500
490 itm = self.logTree.topLevelItem(self.logTree.indexOfTopLevelItem(itm) + 1) 501 itm = self.logTree.topLevelItem(
502 self.logTree.indexOfTopLevelItem(itm) + 1)
491 if itm is None: 503 if itm is None:
492 self.diffPreviousButton.setEnabled(False) 504 self.diffPreviousButton.setEnabled(False)
493 return 505 return
494 rev1 = int(itm.text(0)) 506 rev1 = int(itm.text(0))
495 507
559 searchRx = QRegExp(self.rxEdit.text(), Qt.CaseInsensitive) 571 searchRx = QRegExp(self.rxEdit.text(), Qt.CaseInsensitive)
560 elif txt == self.trUtf8("Revision"): 572 elif txt == self.trUtf8("Revision"):
561 fieldIndex = 0 573 fieldIndex = 0
562 txt = self.rxEdit.text() 574 txt = self.rxEdit.text()
563 if txt.startswith("^"): 575 if txt.startswith("^"):
564 searchRx = QRegExp("^\s*{0}".format(txt[1:]), Qt.CaseInsensitive) 576 searchRx = QRegExp(
577 "^\s*{0}".format(txt[1:]), Qt.CaseInsensitive)
565 else: 578 else:
566 searchRx = QRegExp(txt, Qt.CaseInsensitive) 579 searchRx = QRegExp(txt, Qt.CaseInsensitive)
567 else: 580 else:
568 fieldIndex = 3 581 fieldIndex = 3
569 searchRx = QRegExp(self.rxEdit.text(), Qt.CaseInsensitive) 582 searchRx = QRegExp(self.rxEdit.text(), Qt.CaseInsensitive)

eric ide

mercurial