comparison hgtabwidget.cpp @ 329:ef977e7482cd

Merge from branch "filelist_right_button_menu"
author Chris Cannam
date Fri, 11 Mar 2011 18:08:35 +0000
parents f166f70c64f9
children 4cd753e083cc
comparison
equal deleted inserted replaced
322:913d213dd427 329:ef977e7482cd
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);