[qet] [810] Les points de saisie des segments composant les conducteurs selectionnes sont desormais mis en evidence lorsqu 'on passe la souris dessus. |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/qet Archives
]
- To: qet@xxxxxxxxxxxxxxxxxxx
- Subject: [qet] [810] Les points de saisie des segments composant les conducteurs selectionnes sont desormais mis en evidence lorsqu 'on passe la souris dessus.
- From: subversion@xxxxxxxxxxxxx
- Date: Mon, 07 Dec 2009 20:24:56 +0100
Revision: 810
Author: xavier
Date: 2009-12-07 20:24:56 +0100 (Mon, 07 Dec 2009)
Log Message:
-----------
Les points de saisie des segments composant les conducteurs selectionnes sont desormais mis en evidence lorsqu'on passe la souris dessus.
Modified Paths:
--------------
trunk/sources/conductor.cpp
trunk/sources/conductor.h
Modified: trunk/sources/conductor.cpp
===================================================================
--- trunk/sources/conductor.cpp 2009-12-06 23:18:47 UTC (rev 809)
+++ trunk/sources/conductor.cpp 2009-12-07 19:24:56 UTC (rev 810)
@@ -47,7 +47,8 @@
moving_segment(false),
previous_z_value(zValue()),
modified_path(false),
- has_to_save_profile(false)
+ has_to_save_profile(false),
+ segments_squares_scale_(1.0)
{
// ajout du conducteur a la liste de conducteurs de chacune des deux bornes
bool ajout_p1 = terminal1 -> addConductor(this);
@@ -93,8 +94,6 @@
this,
SLOT(displayedTextChanged())
);
- // taille du carre de saisie du segment
- RectMoveSeg_Scale = 1.0;
}
/**
@@ -510,10 +509,10 @@
if (i > 1) {
qp -> fillRect(
QRectF(
- ((previous_point.x() + point.x()) / 2.0 ) - pretty_offset * RectMoveSeg_Scale,
- ((previous_point.y() + point.y()) / 2.0 ) - pretty_offset * RectMoveSeg_Scale,
- 2.0 * RectMoveSeg_Scale,
- 2.0 * RectMoveSeg_Scale
+ ((previous_point.x() + point.x()) / 2.0 ) - pretty_offset * segments_squares_scale_,
+ ((previous_point.y() + point.y()) / 2.0 ) - pretty_offset * segments_squares_scale_,
+ 2.0 * segments_squares_scale_,
+ 2.0 * segments_squares_scale_
),
square_brush
);
@@ -603,12 +602,11 @@
} else if (hasClickedOn(press_point, segment -> middle())) {
moving_point = false;
moving_segment = true;
- RectMoveSeg_Scale = 2.0;
previous_z_value = zValue();
setZValue(5000.0);
moved_segment = segment;
break;
- }else RectMoveSeg_Scale = 1.0;
+ }
segment = segment -> nextSegment();
}
}
@@ -623,12 +621,11 @@
@param e L'evenement decrivant le deplacement de souris.
*/
void Conductor::mouseMoveEvent(QGraphicsSceneMouseEvent *e) {
- // position pointee par la souris
- qreal mouse_x = e -> pos().x();
- qreal mouse_y = e -> pos().y();
-
// clic gauche
if (e -> buttons() & Qt::LeftButton) {
+ // position pointee par la souris
+ qreal mouse_x = e -> pos().x();
+ qreal mouse_y = e -> pos().y();
bool snap_conductors_to_grid = e -> modifiers() ^ Qt::ShiftModifier;
if (snap_conductors_to_grid) {
@@ -691,6 +688,30 @@
}
/**
+ Gere l'entree de la souris dans la zone du conducteur
+ @param e Le QGraphicsSceneHoverEvent decrivant l'evenement
+*/
+void Conductor::hoverEnterEvent(QGraphicsSceneHoverEvent *e) {
+ Q_UNUSED(e);
+ segments_squares_scale_ = 2.0;
+ if (isSelected()) {
+ update();
+ }
+}
+
+/**
+ Gere la sortie de la souris de la zone du conducteur
+ @param e Le QGraphicsSceneHoverEvent decrivant l'evenement
+*/
+void Conductor::hoverLeaveEvent(QGraphicsSceneHoverEvent *e) {
+ Q_UNUSED(e);
+ segments_squares_scale_ = 1.0;
+ if (isSelected()) {
+ update();
+ }
+}
+
+/**
Gere les mouvements de souris au dessus du conducteur
@param e Le QGraphicsSceneHoverEvent decrivant l'evenement
*/
Modified: trunk/sources/conductor.h
===================================================================
--- trunk/sources/conductor.h 2009-12-06 23:18:47 UTC (rev 809)
+++ trunk/sources/conductor.h 2009-12-07 19:24:56 UTC (rev 810)
@@ -90,11 +90,11 @@
virtual void mousePressEvent(QGraphicsSceneMouseEvent *);
virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *);
virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *);
+ virtual void hoverEnterEvent(QGraphicsSceneHoverEvent *);
+ virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent *);
virtual void hoverMoveEvent(QGraphicsSceneHoverEvent *);
private:
- /// taille du carre de saisie du segment
- int RectMoveSeg_Scale;
/// caracteristiques du conducteur
ConductorProperties properties_;
/// booleen indiquant si le fil est encore valide
@@ -121,6 +121,8 @@
static QBrush conductor_brush;
static QBrush square_brush;
static bool pen_and_brush_initialized;
+ /// facteur de taille du carre de saisie du segment
+ int segments_squares_scale_;
private:
void segmentsToPath();