Mercurial > hg > easyhg
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) {