diff hgexpwidget.cpp @ 95:d1be9712818a

* Update actions appropriately when selections are changed
author Chris Cannam
date Wed, 24 Nov 2010 16:29:05 +0000
parents 44ed7766d55a
children
line wrap: on
line diff
--- a/hgexpwidget.cpp	Wed Nov 24 14:41:52 2010 +0000
+++ b/hgexpwidget.cpp	Wed Nov 24 16:29:05 2010 +0000
@@ -31,15 +31,17 @@
 
 #include <iostream>
 
-HgExpWidget::HgExpWidget(QWidget *parent, QString remoteRepo,
-                         QString workFolderPath,
-                         unsigned char viewFileTypesBits) :
+HgExpWidget::HgExpWidget(QWidget *parent,
+                         QString remoteRepo,
+                         QString workFolderPath) :
     QTabWidget(parent)
 {
     // Work page
     fileStatusWidget = new FileStatusWidget;
     fileStatusWidget->setLocalPath(workFolderPath);
     fileStatusWidget->setRemoteURL(remoteRepo);
+    connect(fileStatusWidget, SIGNAL(selectionChanged()),
+            this, SIGNAL(selectionChanged()));
     addTab(fileStatusWidget, tr("My work"));
 
     // History graph page
@@ -67,6 +69,46 @@
     return fileStatusWidget->haveChangesToCommit();
 }
 
+bool HgExpWidget::canAdd() const
+{
+    if (fileStatusWidget->getSelectedAddableFiles().empty()) return false;
+    if (!fileStatusWidget->getSelectedCommittableFiles().empty()) return false;
+    if (!fileStatusWidget->getSelectedRemovableFiles().empty()) return false;
+    return true;
+}
+
+bool HgExpWidget::canRemove() const
+{
+    if (fileStatusWidget->getSelectedRemovableFiles().empty()) return false;
+    if (!fileStatusWidget->getSelectedAddableFiles().empty()) return false;
+    return true;
+}
+
+bool HgExpWidget::canDoDiff() const
+{
+    return canCommit();
+}
+
+QStringList HgExpWidget::getAllSelectedFiles() const
+{
+    return fileStatusWidget->getAllSelectedFiles();
+}
+
+QStringList HgExpWidget::getSelectedCommittableFiles() const
+{
+    return fileStatusWidget->getSelectedCommittableFiles();
+}
+
+QStringList HgExpWidget::getSelectedAddableFiles() const
+{
+    return fileStatusWidget->getSelectedAddableFiles();
+}
+
+QStringList HgExpWidget::getSelectedRemovableFiles() const
+{
+    return fileStatusWidget->getSelectedRemovableFiles();
+}
+
 void HgExpWidget::updateWorkFolderFileList(QString fileList)
 {
     fileStates.parseStates(fileList);