Correction de la facon dont la zValue des conducteurs est geree.

git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@811 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
xavier
2009-12-07 22:33:32 +00:00
parent 17a3dcd92b
commit 0764e6a4de
2 changed files with 22 additions and 5 deletions

View File

@@ -595,15 +595,11 @@ void Conductor::mousePressEvent(QGraphicsSceneMouseEvent *e) {
if (hasClickedOn(press_point, segment -> secondPoint())) { if (hasClickedOn(press_point, segment -> secondPoint())) {
moving_point = true; moving_point = true;
moving_segment = false; moving_segment = false;
previous_z_value = zValue();
setZValue(5000.0);
moved_segment = segment; moved_segment = segment;
break; break;
} else if (hasClickedOn(press_point, segment -> middle())) { } else if (hasClickedOn(press_point, segment -> middle())) {
moving_point = false; moving_point = false;
moving_segment = true; moving_segment = true;
previous_z_value = zValue();
setZValue(5000.0);
moved_segment = segment; moved_segment = segment;
break; break;
} }
@@ -680,7 +676,6 @@ void Conductor::mouseReleaseEvent(QGraphicsSceneMouseEvent *e) {
saveProfile(); saveProfile();
has_to_save_profile = false; has_to_save_profile = false;
} }
setZValue(previous_z_value);
if (!(e -> modifiers() & Qt::ControlModifier)) { if (!(e -> modifiers() & Qt::ControlModifier)) {
QGraphicsPathItem::mouseReleaseEvent(e); QGraphicsPathItem::mouseReleaseEvent(e);
} }
@@ -737,6 +732,27 @@ void Conductor::hoverMoveEvent(QGraphicsSceneHoverEvent *e) {
QGraphicsPathItem::hoverMoveEvent(e); QGraphicsPathItem::hoverMoveEvent(e);
} }
/**
Gere les changements relatifs au conducteur
Reimplemente ici pour :
* positionner le conducteur en avant-plan lorsqu'il est selectionne
@param change
@param value
*/
QVariant Conductor::itemChange(GraphicsItemChange change, const QVariant &value) {
if (change == QGraphicsItem::ItemSelectedChange) {
if (value.toBool()) {
// le conducteur vient de se faire selectionner
previous_z_value = zValue();
setZValue(qAbs(previous_z_value) + 10000);
} else {
// le conducteur vient de se faire deselectionner
setZValue(previous_z_value);
}
}
return(QGraphicsPathItem::itemChange(change, value));
}
/** /**
@return Le rectangle delimitant l'espace de dessin du conducteur @return Le rectangle delimitant l'espace de dessin du conducteur
*/ */

View File

@@ -93,6 +93,7 @@ class Conductor : public QObject, public QGraphicsPathItem {
virtual void hoverEnterEvent(QGraphicsSceneHoverEvent *); virtual void hoverEnterEvent(QGraphicsSceneHoverEvent *);
virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent *); virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent *);
virtual void hoverMoveEvent(QGraphicsSceneHoverEvent *); virtual void hoverMoveEvent(QGraphicsSceneHoverEvent *);
virtual QVariant itemChange(GraphicsItemChange, const QVariant &);
private: private:
/// caracteristiques du conducteur /// caracteristiques du conducteur