+ Agrandissement des pts de deplacement des conducteurs lorsqu'on clique dessus.

git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@802 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
cfdev
2009-12-04 12:04:42 +00:00
parent db62af3694
commit 1e6b056a1a
2 changed files with 16 additions and 9 deletions

View File

@@ -93,6 +93,8 @@ Conductor::Conductor(Terminal *p1, Terminal* p2, Element *parent, QGraphicsScene
this, this,
SLOT(displayedTextChanged()) SLOT(displayedTextChanged())
); );
// taille du carre de saisie du segment
RectMoveSeg_Scale = 1.0;
} }
/** /**
@@ -503,15 +505,15 @@ void Conductor::paint(QPainter *qp, const QStyleOptionGraphicsItem *options, QWi
QPointF previous_point; QPointF previous_point;
for (int i = 1 ; i < (points.size() -1) ; ++ i) { for (int i = 1 ; i < (points.size() -1) ; ++ i) {
QPointF point = points.at(i); QPointF point = points.at(i);
// dessine le carre de saisie du segment // dessine le carre de saisie du segment
if (i > 1) { if (i > 1) {
qp -> fillRect( qp -> fillRect(
QRectF( QRectF(
((previous_point.x() + point.x()) / 2.0 ) - pretty_offset, ((previous_point.x() + point.x()) / 2.0 ) - pretty_offset * RectMoveSeg_Scale,
((previous_point.y() + point.y()) / 2.0 ) - pretty_offset, ((previous_point.y() + point.y()) / 2.0 ) - pretty_offset * RectMoveSeg_Scale,
2.0, 2.0 * RectMoveSeg_Scale,
2.0 2.0 * RectMoveSeg_Scale
), ),
square_brush square_brush
); );
@@ -601,11 +603,12 @@ void Conductor::mousePressEvent(QGraphicsSceneMouseEvent *e) {
} 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;
RectMoveSeg_Scale = 2.0;
previous_z_value = zValue(); previous_z_value = zValue();
setZValue(5000.0); setZValue(5000.0);
moved_segment = segment; moved_segment = segment;
break; break;
} }else RectMoveSeg_Scale = 1.0;
segment = segment -> nextSegment(); segment = segment -> nextSegment();
} }
} }
@@ -620,17 +623,19 @@ void Conductor::mousePressEvent(QGraphicsSceneMouseEvent *e) {
@param e L'evenement decrivant le deplacement de souris. @param e L'evenement decrivant le deplacement de souris.
*/ */
void Conductor::mouseMoveEvent(QGraphicsSceneMouseEvent *e) { void Conductor::mouseMoveEvent(QGraphicsSceneMouseEvent *e) {
// position pointee par la souris
qreal mouse_x = e -> pos().x();
qreal mouse_y = e -> pos().y();
// clic gauche // clic gauche
if (e -> buttons() & Qt::LeftButton) { 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; bool snap_conductors_to_grid = e -> modifiers() ^ Qt::ShiftModifier;
if (snap_conductors_to_grid) { if (snap_conductors_to_grid) {
mouse_x = qRound(mouse_x / (Diagram::xGrid * 1.0)) * Diagram::xGrid; mouse_x = qRound(mouse_x / (Diagram::xGrid * 1.0)) * Diagram::xGrid;
mouse_y = qRound(mouse_y / (Diagram::yGrid * 1.0)) * Diagram::yGrid; mouse_y = qRound(mouse_y / (Diagram::yGrid * 1.0)) * Diagram::yGrid;
} }
if (moving_point) { if (moving_point) {
// la modification par points revient bientot // la modification par points revient bientot
/* /*

View File

@@ -93,6 +93,8 @@ class Conductor : public QObject, public QGraphicsPathItem {
virtual void hoverMoveEvent(QGraphicsSceneHoverEvent *); virtual void hoverMoveEvent(QGraphicsSceneHoverEvent *);
private: private:
/// taille du carre de saisie du segment
int RectMoveSeg_Scale;
/// caracteristiques du conducteur /// caracteristiques du conducteur
ConductorProperties properties_; ConductorProperties properties_;
/// booleen indiquant si le fil est encore valide /// booleen indiquant si le fil est encore valide