From b073351872fc29f3ee78baa3936ee2443736f8c3 Mon Sep 17 00:00:00 2001 From: xavier Date: Sun, 2 May 2010 22:21:53 +0000 Subject: [PATCH] Retour arriere sur l'utilisation de QGraphicsItem::ItemSceneHasChanged pour detecter les changements de QGraphicsScene. git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/branches/0.3@983 bfdf4180-ca20-0410-9c96-a3a8aa849046 --- sources/conductor.cpp | 7 +------ sources/conductor.h | 2 -- sources/diagramtextitem.cpp | 17 +---------------- sources/diagramtextitem.h | 3 --- 4 files changed, 2 insertions(+), 27 deletions(-) diff --git a/sources/conductor.cpp b/sources/conductor.cpp index 1d59e4f49..f98edee20 100644 --- a/sources/conductor.cpp +++ b/sources/conductor.cpp @@ -40,7 +40,6 @@ Conductor::Conductor(Terminal *p1, Terminal* p2, Diagram *parent_diagram) : QGraphicsPathItem(0, parent_diagram), terminal1(p1), terminal2(p2), - parent_diagram_(parent_diagram), destroyed(false), text_item(0), segments(NULL), @@ -543,7 +542,7 @@ void Conductor::destroy() { /// @return le Diagram auquel ce conducteur appartient, ou 0 si ce conducteur est independant Diagram *Conductor::diagram() const { - return(parent_diagram_); + return(qobject_cast(scene())); } /** @@ -746,10 +745,6 @@ QVariant Conductor::itemChange(GraphicsItemChange change, const QVariant &value) setZValue(previous_z_value); } } else if (change == QGraphicsItem::ItemSceneHasChanged) { - // prend en compte le changement de schema - QGraphicsScene *qgscene = value.value(); - parent_diagram_ = static_cast(qgscene); - // permet de positionner correctement le texte du conducteur lors de son ajout a un schema calculateTextItemPosition(); } else if (change == QGraphicsItem::ItemVisibleHasChanged) { diff --git a/sources/conductor.h b/sources/conductor.h index d7def414d..cd2a7a73d 100644 --- a/sources/conductor.h +++ b/sources/conductor.h @@ -96,8 +96,6 @@ class Conductor : public QObject, public QGraphicsPathItem { virtual QVariant itemChange(GraphicsItemChange, const QVariant &); private: - /// Schema auquel ce conducteur est rattache - Diagram *parent_diagram_; /// caracteristiques du conducteur ConductorProperties properties_; /// booleen indiquant si le fil est encore valide diff --git a/sources/diagramtextitem.cpp b/sources/diagramtextitem.cpp index fd47c9f83..49008aa9f 100644 --- a/sources/diagramtextitem.cpp +++ b/sources/diagramtextitem.cpp @@ -27,7 +27,6 @@ */ DiagramTextItem::DiagramTextItem(QGraphicsItem *parent, Diagram *parent_diagram) : QGraphicsTextItem(parent, parent_diagram), - parent_diagram_(parent_diagram), previous_text_(), rotation_angle_(0.0) { @@ -48,7 +47,6 @@ DiagramTextItem::DiagramTextItem(QGraphicsItem *parent, Diagram *parent_diagram) */ DiagramTextItem::DiagramTextItem(const QString &text, QGraphicsItem *parent, Diagram *parent_diagram) : QGraphicsTextItem(text, parent, parent_diagram), - parent_diagram_(parent_diagram), previous_text_(text), rotation_angle_(0.0) { @@ -70,7 +68,7 @@ DiagramTextItem::~DiagramTextItem() { rattache a aucun schema */ Diagram *DiagramTextItem::diagram() const { - return(parent_diagram_); + return(qobject_cast(scene())); } /** @@ -180,19 +178,6 @@ QPointF DiagramTextItem::mapMovementFromParent(const QPointF &movement) const { return(local_movement_point - local_origin); } -/** - Gere les changements dont ce champ de texte est informe - @param change Type de changement - @param value Valeur relative au changement -*/ -QVariant DiagramTextItem::itemChange(GraphicsItemChange change, const QVariant &value) { - if (change == QGraphicsItem::ItemSceneHasChanged) { - QGraphicsScene *qgscene = value.value(); - parent_diagram_ = static_cast(qgscene); - } - return(QGraphicsTextItem::itemChange(change, value)); -} - /** Gere la prise de focus du champ de texte @param e Objet decrivant la prise de focus diff --git a/sources/diagramtextitem.h b/sources/diagramtextitem.h index 42bb710df..1379bf9ed 100644 --- a/sources/diagramtextitem.h +++ b/sources/diagramtextitem.h @@ -58,7 +58,6 @@ class DiagramTextItem : public QGraphicsTextItem { QPointF mapMovementFromParent(const QPointF &) const; protected: - virtual QVariant itemChange(GraphicsItemChange, const QVariant &); virtual void focusInEvent(QFocusEvent *); virtual void focusOutEvent(QFocusEvent *); virtual void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *); @@ -80,8 +79,6 @@ class DiagramTextItem : public QGraphicsTextItem { // attributs prives private: - /// Schema auquel ce texte est rattache - Diagram *parent_diagram_; /// Texte precedent QString previous_text_; /// angle de rotation du champ de texte