Mercurial > hg > easyhg
comparison hgtabwidget.cpp @ 336:4229b6a8e9c6
Merge
author | Chris Cannam |
---|---|
date | Mon, 14 Mar 2011 10:00:29 +0000 |
parents | f166f70c64f9 |
children | 4cd753e083cc |
comparison
equal
deleted
inserted
replaced
335:aa852b477e4d | 336:4229b6a8e9c6 |
---|---|
28 | 28 |
29 HgTabWidget::HgTabWidget(QWidget *parent, | 29 HgTabWidget::HgTabWidget(QWidget *parent, |
30 QString workFolderPath) : | 30 QString workFolderPath) : |
31 QTabWidget(parent) | 31 QTabWidget(parent) |
32 { | 32 { |
33 // Work page | 33 // Work tab |
34 m_fileStatusWidget = new FileStatusWidget; | 34 m_fileStatusWidget = new FileStatusWidget; |
35 m_fileStatusWidget->setLocalPath(workFolderPath); | 35 m_fileStatusWidget->setLocalPath(workFolderPath); |
36 | |
36 connect(m_fileStatusWidget, SIGNAL(selectionChanged()), | 37 connect(m_fileStatusWidget, SIGNAL(selectionChanged()), |
37 this, SIGNAL(selectionChanged())); | 38 this, SIGNAL(selectionChanged())); |
39 | |
38 connect(m_fileStatusWidget, SIGNAL(showAllChanged(bool)), | 40 connect(m_fileStatusWidget, SIGNAL(showAllChanged(bool)), |
39 this, SIGNAL(showAllChanged(bool))); | 41 this, SIGNAL(showAllChanged(bool))); |
42 | |
43 connect(m_fileStatusWidget, SIGNAL(annotateFiles(QStringList)), | |
44 this, SIGNAL(annotateFiles(QStringList))); | |
45 | |
46 connect(m_fileStatusWidget, SIGNAL(diffFiles(QStringList)), | |
47 this, SIGNAL(diffFiles(QStringList))); | |
48 | |
49 connect(m_fileStatusWidget, SIGNAL(commitFiles(QStringList)), | |
50 this, SIGNAL(commitFiles(QStringList))); | |
51 | |
52 connect(m_fileStatusWidget, SIGNAL(revertFiles(QStringList)), | |
53 this, SIGNAL(revertFiles(QStringList))); | |
54 | |
55 connect(m_fileStatusWidget, SIGNAL(addFiles(QStringList)), | |
56 this, SIGNAL(addFiles(QStringList))); | |
57 | |
58 connect(m_fileStatusWidget, SIGNAL(removeFiles(QStringList)), | |
59 this, SIGNAL(removeFiles(QStringList))); | |
60 | |
61 connect(m_fileStatusWidget, SIGNAL(redoFileMerges(QStringList)), | |
62 this, SIGNAL(redoFileMerges(QStringList))); | |
63 | |
64 connect(m_fileStatusWidget, SIGNAL(markFilesResolved(QStringList)), | |
65 this, SIGNAL(markFilesResolved(QStringList))); | |
66 | |
67 connect(m_fileStatusWidget, SIGNAL(ignoreFiles(QStringList)), | |
68 this, SIGNAL(ignoreFiles(QStringList))); | |
69 | |
70 connect(m_fileStatusWidget, SIGNAL(unIgnoreFiles(QStringList)), | |
71 this, SIGNAL(unIgnoreFiles(QStringList))); | |
72 | |
40 addTab(m_fileStatusWidget, tr("My work")); | 73 addTab(m_fileStatusWidget, tr("My work")); |
41 | 74 |
42 // History graph page | 75 // History graph tab |
43 m_historyWidget = new HistoryWidget; | 76 m_historyWidget = new HistoryWidget; |
44 addTab(m_historyWidget, tr("History")); | 77 addTab(m_historyWidget, tr("History")); |
45 | 78 |
46 connect(m_historyWidget, SIGNAL(commit()), | 79 connect(m_historyWidget, SIGNAL(commit()), |
47 this, SIGNAL(commit())); | 80 this, SIGNAL(commit())); |
114 | 147 |
115 bool HgTabWidget::canCommit() const | 148 bool HgTabWidget::canCommit() const |
116 { | 149 { |
117 if (!m_fileStatusWidget->haveChangesToCommit()) return false; | 150 if (!m_fileStatusWidget->haveChangesToCommit()) return false; |
118 if (!m_fileStatusWidget->getAllUnresolvedFiles().empty()) return false; | 151 if (!m_fileStatusWidget->getAllUnresolvedFiles().empty()) return false; |
119 | 152 return true; |
120 QStringList addable = m_fileStatusWidget->getSelectedAddableFiles(); | |
121 if (addable.empty()) return true; | |
122 | |
123 QStringList committable = m_fileStatusWidget->getSelectedCommittableFiles(); | |
124 | |
125 // "Removed" files are both committable and addable; don't return | |
126 // a false negative if the selection only contains these | |
127 if (committable == addable) return true; | |
128 return false; | |
129 } | 153 } |
130 | 154 |
131 bool HgTabWidget::canRevert() const | 155 bool HgTabWidget::canRevert() const |
132 { | 156 { |
133 // Not the same as canCommit() -- we can revert (and diff) | 157 // Not the same as canCommit() -- we can revert (and diff) |
134 // unresolved files, but we can't commit them | 158 // unresolved files, but we can't commit them |
135 if (!m_fileStatusWidget->haveChangesToCommit() && | 159 if (!m_fileStatusWidget->haveChangesToCommit() && |
136 m_fileStatusWidget->getAllUnresolvedFiles().empty()) return false; | 160 m_fileStatusWidget->getAllUnresolvedFiles().empty()) return false; |
137 | 161 return true; |
138 // The rest of this logic is as in canCommit though | |
139 | |
140 QStringList addable = m_fileStatusWidget->getSelectedAddableFiles(); | |
141 if (addable.empty()) return true; | |
142 | |
143 QStringList committable = m_fileStatusWidget->getSelectedCommittableFiles(); | |
144 if (committable == addable) return true; | |
145 return false; | |
146 } | 162 } |
147 | 163 |
148 bool HgTabWidget::canAdd() const | 164 bool HgTabWidget::canAdd() const |
149 { | 165 { |
166 // Permit this only when work tab is visible | |
167 if (currentIndex() != 0) return false; | |
168 | |
150 QStringList addable = m_fileStatusWidget->getSelectedAddableFiles(); | 169 QStringList addable = m_fileStatusWidget->getSelectedAddableFiles(); |
151 if (addable.empty()) return false; | 170 if (addable.empty()) return false; |
152 | 171 |
153 QStringList removable = m_fileStatusWidget->getSelectedRemovableFiles(); | 172 QStringList removable = m_fileStatusWidget->getSelectedRemovableFiles(); |
154 if (!removable.empty()) return false; | 173 if (!removable.empty()) return false; |
155 | 174 |
156 QStringList committable = m_fileStatusWidget->getSelectedCommittableFiles(); | 175 return true; |
157 | |
158 // "Removed" files are both committable and addable; don't return | |
159 // a false negative if the selection only contains these | |
160 if (committable == addable || committable.empty()) return true; | |
161 return false; | |
162 } | 176 } |
163 | 177 |
164 bool HgTabWidget::canRemove() const | 178 bool HgTabWidget::canRemove() const |
165 { | 179 { |
180 // Permit this only when work tab is visible | |
181 if (currentIndex() != 0) return false; | |
182 | |
166 if (m_fileStatusWidget->getSelectedRemovableFiles().empty()) return false; | 183 if (m_fileStatusWidget->getSelectedRemovableFiles().empty()) return false; |
167 if (!m_fileStatusWidget->getSelectedAddableFiles().empty()) return false; | 184 if (!m_fileStatusWidget->getSelectedAddableFiles().empty()) return false; |
168 return true; | 185 return true; |
169 } | 186 } |
170 | 187 |
171 bool HgTabWidget::canResolve() const | 188 bool HgTabWidget::canResolve() const |
172 { | 189 { |
173 return !m_fileStatusWidget->getSelectedUnresolvedFiles().empty(); | 190 return !m_fileStatusWidget->getAllUnresolvedFiles().empty(); |
174 } | 191 } |
175 | 192 |
176 bool HgTabWidget::haveChangesToCommit() const | 193 bool HgTabWidget::haveChangesToCommit() const |
177 { | 194 { |
178 return m_fileStatusWidget->haveChangesToCommit(); | 195 return m_fileStatusWidget->haveChangesToCommit(); |
179 } | 196 } |
180 | 197 |
181 QStringList HgTabWidget::getAllSelectedFiles() const | |
182 { | |
183 return m_fileStatusWidget->getAllSelectedFiles(); | |
184 } | |
185 | |
186 QStringList HgTabWidget::getAllCommittableFiles() const | 198 QStringList HgTabWidget::getAllCommittableFiles() const |
187 { | 199 { |
188 return m_fileStatusWidget->getAllCommittableFiles(); | 200 return m_fileStatusWidget->getAllCommittableFiles(); |
189 } | 201 } |
190 | 202 |
191 QStringList HgTabWidget::getSelectedCommittableFiles() const | |
192 { | |
193 return m_fileStatusWidget->getSelectedCommittableFiles(); | |
194 } | |
195 | |
196 QStringList HgTabWidget::getAllRevertableFiles() const | 203 QStringList HgTabWidget::getAllRevertableFiles() const |
197 { | 204 { |
198 return m_fileStatusWidget->getAllRevertableFiles(); | 205 return m_fileStatusWidget->getAllRevertableFiles(); |
199 } | 206 } |
200 | 207 |
201 QStringList HgTabWidget::getSelectedRevertableFiles() const | |
202 { | |
203 return m_fileStatusWidget->getSelectedRevertableFiles(); | |
204 } | |
205 | |
206 QStringList HgTabWidget::getSelectedAddableFiles() const | 208 QStringList HgTabWidget::getSelectedAddableFiles() const |
207 { | 209 { |
208 return m_fileStatusWidget->getSelectedAddableFiles(); | 210 return m_fileStatusWidget->getSelectedAddableFiles(); |
209 } | 211 } |
210 | 212 |
211 QStringList HgTabWidget::getAllRemovableFiles() const | |
212 { | |
213 return m_fileStatusWidget->getAllRemovableFiles(); | |
214 } | |
215 | |
216 QStringList HgTabWidget::getSelectedRemovableFiles() const | 213 QStringList HgTabWidget::getSelectedRemovableFiles() const |
217 { | 214 { |
218 return m_fileStatusWidget->getSelectedRemovableFiles(); | 215 return m_fileStatusWidget->getSelectedRemovableFiles(); |
219 } | 216 } |
220 | 217 |
221 QStringList HgTabWidget::getAllUnresolvedFiles() const | 218 QStringList HgTabWidget::getAllUnresolvedFiles() const |
222 { | 219 { |
223 return m_fileStatusWidget->getAllUnresolvedFiles(); | 220 return m_fileStatusWidget->getAllUnresolvedFiles(); |
224 } | |
225 | |
226 QStringList HgTabWidget::getSelectedUnresolvedFiles() const | |
227 { | |
228 return m_fileStatusWidget->getSelectedUnresolvedFiles(); | |
229 } | 221 } |
230 | 222 |
231 void HgTabWidget::updateWorkFolderFileList(QString fileList) | 223 void HgTabWidget::updateWorkFolderFileList(QString fileList) |
232 { | 224 { |
233 m_fileStates.parseStates(fileList); | 225 m_fileStates.parseStates(fileList); |