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
This commit is contained in:
blacksun
2014-01-11 18:09:04 +00:00
parent 8c86ced6df
commit d25e07db7c
2 changed files with 14 additions and 15 deletions

View File

@@ -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);
}

View File

@@ -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();
};
/**