Qet graphics item : disable context menu from view when right button is holded

git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@3593 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
blacksun
2015-01-08 18:59:23 +00:00
parent de096fef23
commit f782976fa7
2 changed files with 44 additions and 30 deletions

View File

@@ -90,11 +90,20 @@ void QetGraphicsItem::applyRotation(const qreal &angle) {
*handle the mouse click *handle the mouse click
* @param e * @param e
*/ */
void QetGraphicsItem::mousePressEvent(QGraphicsSceneMouseEvent *e) { void QetGraphicsItem::mousePressEvent(QGraphicsSceneMouseEvent *e)
{
if (e -> button() == Qt::LeftButton)
{
//Disable views context menu
if (scene())
foreach (QGraphicsView *view, scene()->views())
view->setContextMenuPolicy(Qt::NoContextMenu);
first_move_ = true; first_move_ = true;
if (e -> modifiers() & Qt::ControlModifier) { if (e -> modifiers() & Qt::ControlModifier)
setSelected(!isSelected()); setSelected(!isSelected());
} }
QGraphicsItem::mousePressEvent(e); QGraphicsItem::mousePressEvent(e);
} }
@@ -148,5 +157,13 @@ void QetGraphicsItem::mouseMoveEvent(QGraphicsSceneMouseEvent *e) {
*/ */
void QetGraphicsItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *e) { void QetGraphicsItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *e) {
if (diagram()) diagram() -> endMoveElements(); if (diagram()) diagram() -> endMoveElements();
if (!(e -> modifiers() & Qt::ControlModifier)) QGraphicsItem::mouseReleaseEvent(e);
if (!(e -> modifiers() & Qt::ControlModifier))
QGraphicsItem::mouseReleaseEvent(e);
//Enable views context menu
if (e -> button() == Qt::LeftButton)
if (scene())
foreach (QGraphicsView *view, scene()->views())
view -> setContextMenuPolicy(Qt::DefaultContextMenu);
} }

View File

@@ -22,7 +22,8 @@
class Diagram; class Diagram;
class QetGraphicsItem : public QGraphicsObject { class QetGraphicsItem : public QGraphicsObject
{
Q_OBJECT Q_OBJECT
public: public:
@@ -39,10 +40,6 @@ class QetGraphicsItem : public QGraphicsObject {
virtual void editProperty () {} virtual void editProperty () {}
virtual QString name ()const {return QString("");} virtual QString name ()const {return QString("");}
signals:
public slots:
//protected method //protected method
protected: protected:
virtual void mousePressEvent(QGraphicsSceneMouseEvent *e); virtual void mousePressEvent(QGraphicsSceneMouseEvent *e);