mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-12-17 12:40:35 +01:00
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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user