diff hgtabwidget.cpp @ 326:6e1fdda1dff2 filelist_right_button_menu

Implement right-button menu functions for file lists; convert the toolbar-button functions (apart from Add and Remove) to modal only on working copy state rather than selection state
author Chris Cannam
date Fri, 11 Mar 2011 15:33:16 +0000
parents 4811eb34e819
children f166f70c64f9
line wrap: on
line diff
--- a/hgtabwidget.cpp	Thu Mar 10 21:04:58 2011 +0000
+++ b/hgtabwidget.cpp	Fri Mar 11 15:33:16 2011 +0000
@@ -30,16 +30,49 @@
                          QString workFolderPath) :
     QTabWidget(parent)
 {
-    // Work page
+    // Work tab
     m_fileStatusWidget = new FileStatusWidget;
     m_fileStatusWidget->setLocalPath(workFolderPath);
+
     connect(m_fileStatusWidget, SIGNAL(selectionChanged()),
             this, SIGNAL(selectionChanged()));
+
     connect(m_fileStatusWidget, SIGNAL(showAllChanged(bool)),
             this, SIGNAL(showAllChanged(bool)));
+
+    connect(m_fileStatusWidget, SIGNAL(annotateFiles(QStringList)),
+            this, SIGNAL(annotateFiles(QStringList)));
+
+    connect(m_fileStatusWidget, SIGNAL(diffFiles(QStringList)),
+            this, SIGNAL(diffFiles(QStringList)));
+
+    connect(m_fileStatusWidget, SIGNAL(commitFiles(QStringList)),
+            this, SIGNAL(commitFiles(QStringList)));
+
+    connect(m_fileStatusWidget, SIGNAL(revertFiles(QStringList)),
+            this, SIGNAL(revertFiles(QStringList)));
+
+    connect(m_fileStatusWidget, SIGNAL(addFiles(QStringList)),
+            this, SIGNAL(addFiles(QStringList)));
+
+    connect(m_fileStatusWidget, SIGNAL(removeFiles(QStringList)),
+            this, SIGNAL(removeFiles(QStringList)));
+
+    connect(m_fileStatusWidget, SIGNAL(redoFileMerges(QStringList)),
+            this, SIGNAL(redoFileMerges(QStringList)));
+
+    connect(m_fileStatusWidget, SIGNAL(markFilesResolved(QStringList)),
+            this, SIGNAL(markFilesResolved(QStringList)));
+
+    connect(m_fileStatusWidget, SIGNAL(ignoreFiles(QStringList)),
+            this, SIGNAL(ignoreFiles(QStringList)));
+
+    connect(m_fileStatusWidget, SIGNAL(unIgnoreFiles(QStringList)),
+            this, SIGNAL(unIgnoreFiles(QStringList)));
+
     addTab(m_fileStatusWidget, tr("My work"));
 
-    // History graph page
+    // History graph tab
     m_historyWidget = new HistoryWidget;
     addTab(m_historyWidget, tr("History"));
 
@@ -116,16 +149,7 @@
 {
     if (!m_fileStatusWidget->haveChangesToCommit()) return false;
     if (!m_fileStatusWidget->getAllUnresolvedFiles().empty()) return false;
-
-    QStringList addable = m_fileStatusWidget->getSelectedAddableFiles();
-    if (addable.empty()) return true;
-
-    QStringList committable = m_fileStatusWidget->getSelectedCommittableFiles();
-
-    // "Removed" files are both committable and addable; don't return
-    // a false negative if the selection only contains these
-    if (committable == addable) return true;
-    return false;
+    return true;
 }
 
 bool HgTabWidget::canRevert() const
@@ -134,15 +158,7 @@
     // unresolved files, but we can't commit them
     if (!m_fileStatusWidget->haveChangesToCommit() &&
         m_fileStatusWidget->getAllUnresolvedFiles().empty()) return false;
-
-    // The rest of this logic is as in canCommit though
-
-    QStringList addable = m_fileStatusWidget->getSelectedAddableFiles();
-    if (addable.empty()) return true;
-
-    QStringList committable = m_fileStatusWidget->getSelectedCommittableFiles();
-    if (committable == addable) return true;
-    return false;
+    return true;
 }
 
 bool HgTabWidget::canAdd() const
@@ -153,12 +169,7 @@
     QStringList removable = m_fileStatusWidget->getSelectedRemovableFiles();
     if (!removable.empty()) return false;
 
-    QStringList committable = m_fileStatusWidget->getSelectedCommittableFiles();
-
-    // "Removed" files are both committable and addable; don't return
-    // a false negative if the selection only contains these
-    if (committable == addable || committable.empty()) return true;
-    return false;
+    return true;
 }
 
 bool HgTabWidget::canRemove() const
@@ -170,7 +181,7 @@
 
 bool HgTabWidget::canResolve() const
 {
-    return !m_fileStatusWidget->getSelectedUnresolvedFiles().empty();
+    return !m_fileStatusWidget->getAllUnresolvedFiles().empty();
 }
 
 bool HgTabWidget::haveChangesToCommit() const
@@ -178,41 +189,21 @@
     return m_fileStatusWidget->haveChangesToCommit();
 }
 
-QStringList HgTabWidget::getAllSelectedFiles() const
-{
-    return m_fileStatusWidget->getAllSelectedFiles();
-}
-
 QStringList HgTabWidget::getAllCommittableFiles() const
 {
     return m_fileStatusWidget->getAllCommittableFiles();
 }
 
-QStringList HgTabWidget::getSelectedCommittableFiles() const
-{
-    return m_fileStatusWidget->getSelectedCommittableFiles();
-}
-
 QStringList HgTabWidget::getAllRevertableFiles() const
 {
     return m_fileStatusWidget->getAllRevertableFiles();
 }
 
-QStringList HgTabWidget::getSelectedRevertableFiles() const
-{
-    return m_fileStatusWidget->getSelectedRevertableFiles();
-}
-
 QStringList HgTabWidget::getSelectedAddableFiles() const
 {
     return m_fileStatusWidget->getSelectedAddableFiles();
 }
 
-QStringList HgTabWidget::getAllRemovableFiles() const
-{
-    return m_fileStatusWidget->getAllRemovableFiles();
-}
-
 QStringList HgTabWidget::getSelectedRemovableFiles() const
 {
     return m_fileStatusWidget->getSelectedRemovableFiles();
@@ -223,11 +214,6 @@
     return m_fileStatusWidget->getAllUnresolvedFiles();
 }
 
-QStringList HgTabWidget::getSelectedUnresolvedFiles() const
-{
-    return m_fileStatusWidget->getSelectedUnresolvedFiles();
-}
-
 void HgTabWidget::updateWorkFolderFileList(QString fileList)
 {
     m_fileStates.parseStates(fileList);