Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py

changeset 1086
b48ce064b224
parent 1061
3e21869872e3
child 1131
7781e396c903
equal deleted inserted replaced
1085:ef6102d5fefe 1086:b48ce064b224
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)

eric ide

mercurial