Fix Home and End Buttons Handling and DiagramEditor Scroll

git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@4613 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
dfochi
2016-08-08 16:42:47 +00:00
parent 412007bb0d
commit 8f8ede0e6c
3 changed files with 63 additions and 19 deletions

View File

@@ -244,27 +244,27 @@ void Diagram::keyPressEvent(QKeyEvent *e)
QPointF movement;
qreal top_position = 0;
qreal left_position = 0;
QList<Element*> selected_elmts = this->selectedContent().elements.toList();
if (!this->selectedContent().elements.isEmpty()) {
QList<QGraphicsItem*> selected_elmts = this->selectedContent().items();
if (!this->selectedContent().items(255).isEmpty()) {
switch(e -> key()) {
case Qt::Key_Left:
foreach (QGraphicsItem *item, selected_elmts) {
left_position = item->mapRectFromScene(item->boundingRect()).x();
if (left_position >= this->sceneRect().left() - item->boundingRect().width())
return;
}
}
movement = QPointF(-xGrid, 0.0);
break;
case Qt::Key_Right: movement = QPointF(+xGrid, 0.0); break;
case Qt::Key_Up:
foreach (QGraphicsItem *item, selected_elmts) {
top_position = item->mapRectFromScene(item->boundingRect()).y();
if (top_position >= this->sceneRect().top() - item->boundingRect().height())
if (top_position >= this->sceneRect().top() - item->boundingRect().height())
return;
}
movement = QPointF(0.0, -yGrid);
break;
case Qt::Key_Down: movement = QPointF(0.0, +yGrid); break;
case Qt::Key_Down: movement = QPointF(0.0, +yGrid); break;
}
if (!movement.isNull() && !focusItem()) {
beginMoveElements();