[qet] [809] Desormais, tous les champs de texte (elements, conducteurs, independants) reagissent de la meme facon :

[ Thread Index | Date Index | More lists.tuxfamily.org/qet Archives ]


Revision: 809
Author:   xavier
Date:     2009-12-07 00:18:47 +0100 (Mon, 07 Dec 2009)
Log Message:
-----------
Desormais, tous les champs de texte (elements, conducteurs, independants) reagissent de la meme facon :
  * clic simple : selection
  * double clic : edition

Modified Paths:
--------------
    branches/0.3/sources/conductor.cpp
    branches/0.3/sources/diagramtextitem.cpp
    branches/0.3/sources/diagramtextitem.h
    branches/0.3/sources/elementtextitem.cpp

Modified: branches/0.3/sources/conductor.cpp
===================================================================
--- branches/0.3/sources/conductor.cpp	2009-12-06 22:48:08 UTC (rev 808)
+++ branches/0.3/sources/conductor.cpp	2009-12-06 23:18:47 UTC (rev 809)
@@ -81,8 +81,9 @@
 	
 	// ajout du champ de texte editable
 	text_item = new DiagramTextItem();
+	// par defaut, les DiagramTextItem sont Selectable et Movable
+	// on desactive Movable pour les textes des conducteurs
 	text_item -> setFlag(QGraphicsItem::ItemIsMovable, false);
-	text_item -> setTextInteractionFlags(Qt::TextEditorInteraction);
 	text_item -> setPlainText(properties_.text);
 	text_item -> previous_text = properties_.text;
 	calculateTextItemPosition();

Modified: branches/0.3/sources/diagramtextitem.cpp
===================================================================
--- branches/0.3/sources/diagramtextitem.cpp	2009-12-06 22:48:08 UTC (rev 808)
+++ branches/0.3/sources/diagramtextitem.cpp	2009-12-06 23:18:47 UTC (rev 809)
@@ -112,11 +112,9 @@
 	cursor.clearSelection();
 	setTextCursor(cursor);
 	
-	if (flags() & QGraphicsItem::ItemIsMovable) {
-		// hack a la con pour etre re-entrant
-		setTextInteractionFlags(Qt::NoTextInteraction);
-		QTimer::singleShot(0, this, SIGNAL(lostFocus()));
-	}
+	// hack a la con pour etre re-entrant
+	setTextInteractionFlags(Qt::NoTextInteraction);
+	QTimer::singleShot(0, this, SIGNAL(lostFocus()));
 }
 
 /**
@@ -152,22 +150,12 @@
 	@param event un QGraphicsSceneMouseEvent decrivant le double-clic
 */
 void DiagramTextItem::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) {
-	if (flags() & QGraphicsItem::ItemIsMovable && !(textInteractionFlags() & Qt::TextEditable)) {
+	if (!(textInteractionFlags() & Qt::TextEditable)) {
 		// rend le champ de texte editable
 		setTextInteractionFlags(Qt::TextEditorInteraction);
 		
-		// simule un clic simple, ce qui edite le champ de texte
-		QGraphicsSceneMouseEvent *mouseEvent = new QGraphicsSceneMouseEvent(QEvent::GraphicsSceneMousePress);
-		mouseEvent -> setAccepted(true);
-		mouseEvent -> setPos(event -> pos());
-		mouseEvent -> setScenePos(event -> scenePos());
-		mouseEvent -> setScreenPos(event -> screenPos());
-		mouseEvent -> setButtonDownPos(Qt::LeftButton, event -> buttonDownPos(Qt::LeftButton));
-		mouseEvent -> setButtonDownScreenPos(Qt::LeftButton, event -> buttonDownScreenPos(Qt::LeftButton));
-		mouseEvent -> setButtonDownScenePos(Qt::LeftButton, event -> buttonDownScenePos(Qt::LeftButton));
-		mouseEvent -> setWidget(event -> widget());
-		QGraphicsTextItem::mousePressEvent(mouseEvent);
-		delete mouseEvent;
+		// edite le champ de texte
+		setFocus(Qt::MouseFocusReason);
 	} else {
 		QGraphicsTextItem::mouseDoubleClickEvent(event);
 	}

Modified: branches/0.3/sources/diagramtextitem.h
===================================================================
--- branches/0.3/sources/diagramtextitem.h	2009-12-06 22:48:08 UTC (rev 808)
+++ branches/0.3/sources/diagramtextitem.h	2009-12-06 23:18:47 UTC (rev 809)
@@ -21,6 +21,8 @@
 #include "diagram.h"
 /**
 	Cette classe represente un champ de texte editable sur le schema.
+	Par defaut, les DiagramTextItem sont Selectable et Movable.
+	@see QGraphicsItem::GraphicsItemFlags
 */
 class DiagramTextItem : public QGraphicsTextItem {
 	Q_OBJECT

Modified: branches/0.3/sources/elementtextitem.cpp
===================================================================
--- branches/0.3/sources/elementtextitem.cpp	2009-12-06 22:48:08 UTC (rev 808)
+++ branches/0.3/sources/elementtextitem.cpp	2009-12-06 23:18:47 UTC (rev 809)
@@ -28,8 +28,9 @@
 	DiagramTextItem(parent, scene),
 	follow_parent_rotations(false)
 {
-	setFlags(QGraphicsItem::ItemIsSelectable);
-	setTextInteractionFlags(Qt::TextEditorInteraction);
+	// par defaut, les DiagramTextItem sont Selectable et Movable
+	// on desactive Movable pour les textes des elements
+	setFlag(QGraphicsItem::ItemIsMovable, false);
 }
 
 /**
@@ -42,8 +43,9 @@
 	DiagramTextItem(text, parent, scene),
 	follow_parent_rotations(false)
 {
-	setFlags(QGraphicsItem::ItemIsSelectable);
-	setTextInteractionFlags(Qt::TextEditorInteraction);
+	// par defaut, les DiagramTextItem sont Selectable et Movable
+	// on desactive Movable pour les textes des elements
+	setFlag(QGraphicsItem::ItemIsMovable, false);
 }
 
 /// Destructeur


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/