mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2026-01-09 15:19:58 +01:00
Il est desormais possible de deplacer les elements d'un schema avec les fleches du clavier
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@123 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
33
diagram.cpp
33
diagram.cpp
@@ -70,6 +70,39 @@ void Diagram::drawBackground(QPainter *p, const QRectF &r) {
|
||||
p -> restore();
|
||||
}
|
||||
|
||||
/**
|
||||
Gere le clavier
|
||||
@param e QKeyEvent decrivant l'evenement clavier
|
||||
*/
|
||||
void Diagram::keyPressEvent(QKeyEvent *e) {
|
||||
qDebug() << "Diagram::keyPressEvent";
|
||||
QPointF movement;
|
||||
switch(e -> key()) {
|
||||
case Qt::Key_Left: movement = QPointF(-GRILLE_X, 0.0); break;
|
||||
case Qt::Key_Right: movement = QPointF(+GRILLE_X, 0.0); break;
|
||||
case Qt::Key_Up: movement = QPointF(0.0, -GRILLE_Y); break;
|
||||
case Qt::Key_Down: movement = QPointF(0.0, +GRILLE_Y); break;
|
||||
}
|
||||
if (!movement.isNull()) {
|
||||
QSet<Element *> moved_elements = elementsToMove();
|
||||
if (!moved_elements.isEmpty()) {
|
||||
Element *first_elmt;
|
||||
foreach(Element *elmt, moved_elements) {
|
||||
first_elmt = elmt;
|
||||
break;
|
||||
}
|
||||
first_elmt -> setPos(first_elmt -> pos() + movement);
|
||||
first_elmt -> moveOtherElements(movement);
|
||||
}
|
||||
}
|
||||
QGraphicsScene::keyPressEvent(e);
|
||||
}
|
||||
|
||||
void Diagram::keyReleaseEvent(QKeyEvent *e) {
|
||||
invalidateMovedElements();
|
||||
QGraphicsScene::keyReleaseEvent(e);
|
||||
}
|
||||
|
||||
/**
|
||||
Exporte le schema vers une image
|
||||
@return Une QImage representant le schema
|
||||
|
||||
Reference in New Issue
Block a user