From d25e07db7c62d18a163285a12f0acafedb776a69 Mon Sep 17 00:00:00 2001 From: blacksun Date: Sat, 11 Jan 2014 18:09:04 +0000 Subject: [PATCH] element text item: element isn't movable by defaut, for move text we must hold ctrl key git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@2734 bfdf4180-ca20-0410-9c96-a3a8aa849046 --- sources/qetgraphicsitem/elementtextitem.cpp | 25 +++++++++------------ sources/qetgraphicsitem/elementtextitem.h | 4 ++++ 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/sources/qetgraphicsitem/elementtextitem.cpp b/sources/qetgraphicsitem/elementtextitem.cpp index 378d343a9..5f1a4131c 100644 --- a/sources/qetgraphicsitem/elementtextitem.cpp +++ b/sources/qetgraphicsitem/elementtextitem.cpp @@ -31,15 +31,7 @@ ElementTextItem::ElementTextItem(Element *parent_element, Diagram *parent_diagra follow_parent_rotations(false), original_rotation_angle_(0.0), first_move_(true) -{ - // par defaut, les DiagramTextItem sont Selectable et Movable - // cela nous convient, on ne touche pas a ces flags - - adjustItemPosition(1); - // ajuste la position du QGraphicsItem lorsque le QTextDocument change - connect(document(), SIGNAL(blockCountChanged(int)), this, SLOT(adjustItemPosition(int))); - connect(document(), SIGNAL(contentsChanged()), this, SLOT(adjustItemPosition())); -} +{build();} /** Constructeur @@ -53,10 +45,11 @@ ElementTextItem::ElementTextItem(const QString &text, Element *parent_element, D follow_parent_rotations(false), original_rotation_angle_(0.0), first_move_(true) -{ - // par defaut, les DiagramTextItem sont Selectable et Movable - // cela nous convient, on ne touche pas a ces flags - +{build();} + +void ElementTextItem::build() { + setFlag(QGraphicsItem::ItemIsMovable, false); + setToolTip(tr("Maintenir ctrl pour d\351placer", "tool tip for element text item")); adjustItemPosition(1); // ajuste la position du QGraphicsItem lorsque le QTextDocument change connect(document(), SIGNAL(blockCountChanged(int)), this, SLOT(adjustItemPosition(int))); @@ -224,9 +217,10 @@ void ElementTextItem::applyRotation(const qreal &angle) { void ElementTextItem::mousePressEvent(QGraphicsSceneMouseEvent *e) { first_move_ = true; if (e -> modifiers() & Qt::ControlModifier) { - setSelected(!isSelected()); + setSelected(true); + setFlag(QGraphicsItem::ItemIsMovable, true); } - DiagramTextItem::mousePressEvent(e); + else DiagramTextItem::mousePressEvent(e); } /** @@ -307,4 +301,5 @@ void ElementTextItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *e) { if (!(e -> modifiers() & Qt::ControlModifier)) { QGraphicsTextItem::mouseReleaseEvent(e); } + setFlag(QGraphicsItem::ItemIsMovable, false); } diff --git a/sources/qetgraphicsitem/elementtextitem.h b/sources/qetgraphicsitem/elementtextitem.h index 21acb7846..165601e84 100644 --- a/sources/qetgraphicsitem/elementtextitem.h +++ b/sources/qetgraphicsitem/elementtextitem.h @@ -72,6 +72,10 @@ class ElementTextItem : public DiagramTextItem { virtual void mousePressEvent(QGraphicsSceneMouseEvent *); virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *); virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *); + virtual void focusOutEvent(QFocusEvent *e) {DiagramTextItem::focusOutEvent(e); setFlag(QGraphicsItem::ItemIsMovable, false);} + + private: + void build(); }; /**