# HG changeset patch # User Chris Cannam # Date 1291129192 0 # Node ID bad40d7e7a2bc50c1fe1a6d040e8887e84c3e804 # Parent e8a4817896070048f7019200f7536e8c4bebd210 * First cut at (not yet operational) right-button menu diff -r e8a481789607 -r bad40d7e7a2b changesetitem.cpp --- a/changesetitem.cpp Tue Nov 30 14:27:34 2010 +0000 +++ b/changesetitem.cpp Tue Nov 30 14:59:52 2010 +0000 @@ -25,6 +25,10 @@ #include #include #include +#include +#include +#include +#include ChangesetItem::ChangesetItem(Changeset *cs) : m_changeset(cs), m_detail(0), @@ -82,10 +86,32 @@ } else { showDetail(); } + } else if (e->button() == Qt::RightButton) { + activateMenu(); } } void +ChangesetItem::activateMenu() +{ + QMenu *menu = new QMenu; + QLabel *label = new QLabel(tr("Identifier: %1") + .arg(m_changeset->id())); + QWidgetAction *wa = new QWidgetAction(menu);; + wa->setDefaultWidget(label); + menu->addAction(wa); + menu->addSeparator(); + QAction *update = menu->addAction(tr("Update to this revision")); + menu->addSeparator(); + QAction *diffParent = menu->addAction(tr("Diff against previous revision")); + QAction *diffCurrent = menu->addAction(tr("Diff against current revision")); + menu->addSeparator(); + QAction *merge = menu->addAction(tr("Merge from here to current")); + QAction *tag = menu->addAction(tr("Tag this revision")); + menu->exec(QCursor::pos()); +} + +void ChangesetItem::paint(QPainter *paint, const QStyleOptionGraphicsItem *option, QWidget *w) { diff -r e8a481789607 -r bad40d7e7a2b changesetitem.h --- a/changesetitem.h Tue Nov 30 14:27:34 2010 +0000 +++ b/changesetitem.h Tue Nov 30 14:59:52 2010 +0000 @@ -66,6 +66,8 @@ virtual void mousePressEvent(QGraphicsSceneMouseEvent *); private: + void activateMenu(); + QFont m_font; Changeset *m_changeset; ChangesetDetailItem *m_detail;