element editor and diagram view, now can move view by holding wheel click and drag mouse

git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@2153 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
blacksun
2013-05-11 18:20:26 +00:00
parent 5a84e5161d
commit b837ffa0b1
4 changed files with 71 additions and 18 deletions

View File

@@ -409,7 +409,7 @@ void DiagramView::pasteHere() {
}
/**
Manage the events click mouse :
Manage the events press click mouse :
* click to add an independent text field
*/
void DiagramView::mousePressEvent(QMouseEvent *e) {
@@ -423,20 +423,43 @@ void DiagramView::mousePressEvent(QMouseEvent *e) {
is_adding_text = false;
}
}
// Select visualisation or selection mode
// workaround for drag view with hold wheel click and drag mouse
// see also mouseMoveEvent() and mouseReleaseEvent()
if (e -> buttons() == Qt::MidButton) {
if (!is_moving_view_) {
setVisualisationMode();
is_moving_view_ = true;
}
else{
setSelectionMode();
is_moving_view_ = false;
}
setCursor(Qt::ClosedHandCursor);
reference_view_ = mapToScene(e -> pos());
center_view_ = mapToScene(this -> viewport() -> rect()).boundingRect().center();
return;
}
QGraphicsView::mousePressEvent(e);
}
/**
* @brief DiagramView::mouseMoveEvent
* Manage the event move mouse
*/
void DiagramView::mouseMoveEvent(QMouseEvent *e) {
if ((e -> buttons() & Qt::MidButton) == Qt::MidButton) {
QPointF move = reference_view_ - mapToScene(e -> pos());
this -> centerOn(center_view_ + move);
center_view_ = mapToScene(this -> viewport() -> rect()).boundingRect().center();
return;
}
QGraphicsView::mouseMoveEvent(e);
}
/**
* @brief DiagramView::mouseReleaseEvent
* Manage event release click mouse
*/
void DiagramView::mouseReleaseEvent(QMouseEvent *e) {
if (e -> button() == Qt::MidButton) {
setCursor(Qt::ArrowCursor);
return;
}
QGraphicsView::mouseReleaseEvent(e);
}
/**
Manage wheel event of mouse
@param e QWheelEvent