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

@@ -336,18 +336,40 @@ ElementContent ElementView::pasteWithOffset(const QDomDocument &xml_document) {
void ElementView::mousePressEvent(QMouseEvent *e) {
// Select visualisation or selection mode
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 ElementView::mouseMoveEvent
* Manage the event move mouse
*/
void ElementView::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 ElementView::mouseReleaseEvent
* Manage event release click mouse
*/
void ElementView::mouseReleaseEvent(QMouseEvent *e) {
if (e -> button() == Qt::MidButton) {
setCursor(Qt::ArrowCursor);
return;
}
QGraphicsView::mouseReleaseEvent(e);
}
/**
Gere les actions liees a la rollette de la souris
@param e QWheelEvent decrivant l'evenement rollette

View File

@@ -43,6 +43,8 @@ class ElementView : public QGraphicsView {
protected:
void mousePressEvent(QMouseEvent *);
void mouseMoveEvent(QMouseEvent *);
void mouseReleaseEvent(QMouseEvent *);
void wheelEvent(QWheelEvent *);
virtual void drawBackground(QPainter *, const QRectF &);
@@ -79,6 +81,8 @@ class ElementView : public QGraphicsView {
QString to_paste_in_area_;
int offset_paste_count_;
QPointF start_top_left_corner_;
QPointF reference_view_;
QPointF center_view_;
bool is_moving_view_; ///< Indicate whether the visualisation mode has been enabled due to mouse/keyboard interactions
};
#endif