From b1ddaad64fe5645d390ff5f7e256b48beec88a32 Mon Sep 17 00:00:00 2001 From: andreas <andreas@5a81b35b-ba03-0410-adc8-b2c5c5119f08> Date: Wed, 28 Jul 2010 21:30:09 +0000 Subject: [PATCH] bugfix in MaskOverlay ported from qtiplt git-svn-id: https://dng.biozentrum.unibas.ch/svn/openstructure/trunk@2600 5a81b35b-ba03-0410-adc8-b2c5c5119f08 --- modules/gui/src/data_viewer/mask_overlay.cc | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/modules/gui/src/data_viewer/mask_overlay.cc b/modules/gui/src/data_viewer/mask_overlay.cc index 6e1ae0990..b53678ad1 100644 --- a/modules/gui/src/data_viewer/mask_overlay.cc +++ b/modules/gui/src/data_viewer/mask_overlay.cc @@ -73,7 +73,7 @@ void MaskOverlay::OnDraw(QPainter& pnt, DataViewerPanel* dvp, bool is_active) geom::Polygon2 pol=polygons_[i]; QPolygon qpol; for(int j=0;j<static_cast<int>(pol.GetNodeCount());++j){ - qpol << dvp->FracPointToWinCenter(pol.GetNode(j)); + qpol << dvp->FracPointToWinCenter(pol.GetNode(j)+shift_); pnt.drawEllipse(qpol.back(),3,3); } pnt.drawPolygon(qpol); @@ -89,7 +89,7 @@ void MaskOverlay::OnDraw(QPainter& pnt, DataViewerPanel* dvp, bool is_active) } QPolygon qpol; for(int j=0;j<static_cast<int>(new_poly_.GetNodeCount());++j){ - qpol << dvp->FracPointToWinCenter(new_poly_.GetNode(j)); + qpol << dvp->FracPointToWinCenter(new_poly_.GetNode(j)+shift_); pnt.drawEllipse(qpol.back(),3,3); } pnt.drawPolygon(qpol); @@ -103,11 +103,7 @@ bool MaskOverlay::OnMouseEvent(QMouseEvent* e, DataViewerPanel* dvp, geom::Vec2 mousepos=dvp->WinToFracPoint(e->pos()); geom::Vec2 diffpos=mousepos-old_mouse_pos_; - if(e->buttons() & Qt::RightButton){ - for(std::vector<geom::Polygon2>::iterator it=polygons_.begin();it!=polygons_.end();++it){ - (*it)=(*it)+diffpos; - } - new_poly_=new_poly_+diffpos; + if(e->buttons() & Qt::RightButton && e->button()==Qt::NoButton){ shift_+=diffpos; } old_mouse_pos_=mousepos; -- GitLab