Les deplacements d'elements sont desormais annulables

git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@137 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
xavierqet
2007-09-26 17:14:09 +00:00
parent 099d568f84
commit 5150cb38ad
6 changed files with 148 additions and 11 deletions

View File

@@ -4,6 +4,7 @@
#include "customelement.h"
#include "diagram.h"
#include "exportdialog.h"
#include "diagramcommands.h"
/**
Constructeur
@@ -99,7 +100,25 @@ void Diagram::keyPressEvent(QKeyEvent *e) {
}
void Diagram::keyReleaseEvent(QKeyEvent *e) {
invalidateMovedElements();
// detecte le relachement d'une touche de direction ( = deplacement d'elements)
if (
(e -> key() == Qt::Key_Left || e -> key() == Qt::Key_Right ||\
e -> key() == Qt::Key_Up || e -> key() == Qt::Key_Down) &&\
!current_movement.isNull() && !e -> isAutoRepeat()
) {
// cree un object d'annulation pour le mouvement qui vient de se finir
undoStack().push(
new MoveElementsCommand(
this,
elementsToMove(),
conducersToMove(),
conducersToUpdate(),
current_movement
)
);
invalidateMovedElements();
current_movement = QPointF();
}
QGraphicsScene::keyReleaseEvent(e);
}