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:
xavierqet
2007-09-15 23:45:27 +00:00
parent 271775c8a4
commit ca4103b75a
4 changed files with 64 additions and 26 deletions

View File

@@ -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