diff uncommitteditem.cpp @ 141:e6c6b88d19b9

* Start hooking up right-button menus on changeset & uncommitted items
author Chris Cannam
date Tue, 30 Nov 2010 17:56:11 +0000
parents 2550aaa09240
children 644bd31e8301
line wrap: on
line diff
--- a/uncommitteditem.cpp	Tue Nov 30 14:59:52 2010 +0000
+++ b/uncommitteditem.cpp	Tue Nov 30 17:56:11 2010 +0000
@@ -21,6 +21,11 @@
 
 #include <QPainter>
 #include <QGraphicsScene>
+#include <QGraphicsSceneMouseEvent>
+#include <QMenu>
+#include <QAction>
+#include <QLabel>
+#include <QWidgetAction>
 
 UncommittedItem::UncommittedItem() :
     m_column(0), m_row(0), m_wide(false)
@@ -41,6 +46,37 @@
 }
 
 void
+UncommittedItem::mousePressEvent(QGraphicsSceneMouseEvent *e)
+{
+    DEBUG << "UncommittedItem::mousePressEvent" << endl;
+    if (e->button() == Qt::RightButton) {
+        activateMenu();
+    }
+}
+
+void
+UncommittedItem::activateMenu()
+{
+    QMenu *menu = new QMenu;
+    QLabel *label = new QLabel(tr("<qt><b>Uncommitted changes</b></qt>"));
+    QWidgetAction *wa = new QWidgetAction(menu);
+    wa->setDefaultWidget(label);
+    menu->addAction(wa);
+    menu->addSeparator();
+
+    QAction *commit = menu->addAction(tr("Commit..."));
+    connect(commit, SIGNAL(triggered()), this, SIGNAL(commit()));
+    QAction *revert = menu->addAction(tr("Revert..."));
+    connect(revert, SIGNAL(triggered()), this, SIGNAL(revert()));
+    QAction *dif = menu->addAction(tr("Diff"));
+    connect(dif, SIGNAL(triggered()), this, SIGNAL(diff()));
+
+    menu->exec(QCursor::pos());
+
+    ungrabMouse();
+}
+
+void
 UncommittedItem::paint(QPainter *paint, const QStyleOptionGraphicsItem *option,
 		       QWidget *w)
 {