diff changesetitem.cpp @ 296:d40294e164da status_outside_tabs

Merge from the default branch
author Chris Cannam
date Tue, 22 Feb 2011 13:03:03 +0000
parents 37f67999b661
children 5b4aa1c24407
line wrap: on
line diff
--- a/changesetitem.cpp	Mon Feb 21 11:07:21 2011 +0000
+++ b/changesetitem.cpp	Tue Feb 22 13:03:03 2011 +0000
@@ -108,6 +108,7 @@
 ChangesetItem::activateMenu()
 {
     m_parentDiffActions.clear();
+    m_summaryActions.clear();
 
     QMenu *menu = new QMenu;
     QLabel *label = new QLabel(tr("<qt><b>&nbsp;Revision: </b>%1</qt>")
@@ -120,16 +121,18 @@
     QAction *copyId = menu->addAction(tr("Copy identifier to clipboard"));
     connect(copyId, SIGNAL(triggered()), this, SLOT(copyIdActivated()));
 
+    QAction *stat = menu->addAction(tr("Summarise changes"));
+    connect(stat, SIGNAL(triggered()), this, SLOT(showSummaryActivated()));
+
     menu->addSeparator();
 
     QStringList parents = m_changeset->parents();
 
+    QString leftId, rightId;
+    bool havePositions = false;
+
     if (parents.size() > 1) {
-
-        QString leftId, rightId;
         ChangesetScene *cs = dynamic_cast<ChangesetScene *>(scene());
-        bool havePositions = false;
-
         if (cs && parents.size() == 2) {
             ChangesetItem *i0 = cs->getItemById(parents[0]);
             ChangesetItem *i1 = cs->getItemById(parents[1]);
@@ -144,37 +147,33 @@
                 havePositions = true;
             }
         }
+    }
 
+    if (parents.size() > 1) {
         if (havePositions) {
             
-            QAction *diffParent = menu->addAction(tr("Diff to left parent"));
-            connect(diffParent, SIGNAL(triggered()),
-                    this, SLOT(diffToParentActivated()));
-            m_parentDiffActions[diffParent] = leftId;
+            QAction *diff = menu->addAction(tr("Diff to left parent"));
+            connect(diff, SIGNAL(triggered()), this, SLOT(diffToParentActivated()));
+            m_parentDiffActions[diff] = leftId;
             
-            diffParent = menu->addAction(tr("Diff to right parent"));
-            connect(diffParent, SIGNAL(triggered()),
-                    this, SLOT(diffToParentActivated()));
-            m_parentDiffActions[diffParent] = rightId;
+            diff = menu->addAction(tr("Diff to right parent"));
+            connect(diff, SIGNAL(triggered()), this, SLOT(diffToParentActivated()));
+            m_parentDiffActions[diff] = rightId;
 
         } else {
 
             foreach (QString parentId, parents) {
-                QString text = tr("Diff to parent %1")
-                    .arg(Changeset::hashOf(parentId));
-                QAction *diffParent = menu->addAction(text);
-                connect(diffParent, SIGNAL(triggered()),
-                        this, SLOT(diffToParentActivated()));
-                m_parentDiffActions[diffParent] = parentId;
+                QString text = tr("Diff to parent %1").arg(Changeset::hashOf(parentId));
+                QAction *diff = menu->addAction(text);
+                connect(diff, SIGNAL(triggered()), this, SLOT(diffToParentActivated()));
+                m_parentDiffActions[diff] = parentId;
             }
         }
 
     } else {
 
-        QAction *diffParent =
-            menu->addAction(tr("Diff to parent"));
-        connect(diffParent, SIGNAL(triggered()),
-                this, SLOT(diffToParentActivated()));
+        QAction *diff = menu->addAction(tr("Diff to parent"));
+        connect(diff, SIGNAL(triggered()), this, SLOT(diffToParentActivated()));
     }
 
     QAction *diffCurrent = menu->addAction(tr("Diff to current working folder"));
@@ -223,14 +222,18 @@
     emit diffToParent(getId(), parentId);
 }
 
+void ChangesetItem::showSummaryActivated()
+{
+    emit showSummary(m_changeset);
+}
+
 void ChangesetItem::updateActivated() { emit updateTo(getId()); }
 void ChangesetItem::diffToCurrentActivated() { emit diffToCurrent(getId()); }
 void ChangesetItem::mergeActivated() { emit mergeFrom(getId()); }
 void ChangesetItem::tagActivated() { emit tag(getId()); }
 
 void
-ChangesetItem::paint(QPainter *paint, const QStyleOptionGraphicsItem *option,
-                     QWidget *w)
+ChangesetItem::paint(QPainter *paint, const QStyleOptionGraphicsItem *, QWidget *)
 {
     paint->save();