Correction : a partir de Qt 4.6, certains evenements ne sont plus signales

dans la methode QGraphicsItem::itemChange, a commencer par les changements de
position, sauf si l'on positionne explicitement un flag.
Ce comportement avait un impact important sur le repositionnement des champs de
texte.


git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/branches/0.3@843 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
xavier
2010-01-20 00:16:55 +00:00
parent 46888a0f7b
commit 6c0c8cb70a
9 changed files with 31 additions and 4 deletions

View File

@@ -35,6 +35,9 @@ PartTextField::PartTextField(QETElementEditor *editor, QGraphicsItem *parent, QG
setDefaultTextColor(Qt::black);
setFont(QETApp::diagramTextsFont());
setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable);
#if QT_VERSION >= 0x040600
setFlag(QGraphicsItem::ItemSendsGeometryChanges, true);
#endif
setPlainText(QObject::tr("_", "default text when adding a textfield in the element editor"));
infos = new TextFieldEditor(elementEditor(), this);
infos -> setElementTypeName(name());
@@ -207,7 +210,7 @@ void PartTextField::focusOutEvent(QFocusEvent *e) {
setTextCursor(qtc);
setTextInteractionFlags(Qt::NoTextInteraction);
setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable);
setFlag(QGraphicsItem::ItemIsFocusable, false);
}
/**
@@ -215,7 +218,7 @@ void PartTextField::focusOutEvent(QFocusEvent *e) {
@param e Le QGraphicsSceneMouseEvent qui decrit le double-clic
*/
void PartTextField::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *e) {
setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable | QGraphicsItem::ItemIsFocusable);
setFlag(QGraphicsItem::ItemIsFocusable, true);
setTextInteractionFlags(Qt::TextEditorInteraction);
previous_text = toPlainText();
QGraphicsTextItem::mouseDoubleClickEvent(e);