diff --git a/modules/gui/src/data_viewer/mask_overlay.cc b/modules/gui/src/data_viewer/mask_overlay.cc index 6b52851831d44995a70eb3f6beffe518bada2447..c0c0e6560344c59f75cb95031a1a372086aba0ad 100644 --- a/modules/gui/src/data_viewer/mask_overlay.cc +++ b/modules/gui/src/data_viewer/mask_overlay.cc @@ -57,43 +57,46 @@ MaskOverlay::MaskOverlay(const MaskPtr& m): void MaskOverlay::OnDraw(QPainter& pnt, DataViewerPanel* dvp, bool is_active) { + QPainter::RenderHints render_hints=pnt.renderHints(); + pnt.setRenderHints(render_hints | QPainter::Antialiasing); for (int i=0;i<static_cast<int>(polygons_.size());++i){ if(is_active){ if(i==active_){ - pnt.setPen(QPen(QColor(255,255,0),2)); + pnt.setPen(QPen(QColor(255,255,0),1)); pnt.setBrush(QColor(255,255,0,30)); }else{ - pnt.setPen(QPen(QColor(255,0,0),2)); + pnt.setPen(QPen(QColor(255,0,0),1)); pnt.setBrush(QColor(255,0,0,30)); } }else{ - pnt.setPen(QPen(QColor(100,100,100),2)); + pnt.setPen(QPen(QColor(100,100,100),1)); pnt.setBrush(QColor(100,100,100,30)); } geom::Polygon2 pol=polygons_[i]; QPolygon qpol; for(int j=0;j<static_cast<int>(pol.GetNodeCount());++j){ qpol << dvp->FracPointToWinCenter(pol.GetNode(j)+shift_); - pnt.drawEllipse(qpol.back(),3,3); + pnt.drawEllipse(qpol.back(),4,4); } pnt.drawPolygon(qpol); } if(add_mode_) { if(is_active){ - pnt.setPen(QPen(QColor(255,0,255),3)); + pnt.setPen(QPen(QColor(255,0,255),1)); pnt.setBrush(QColor(255,0,255,30)); }else{ - pnt.setPen(QPen(QColor(100,100,100),2)); + pnt.setPen(QPen(QColor(100,100,100),1)); pnt.setBrush(QColor(100,100,100,30)); } QPolygon qpol; for(int j=0;j<static_cast<int>(new_poly_.GetNodeCount());++j){ qpol << dvp->FracPointToWinCenter(new_poly_.GetNode(j)+shift_); - pnt.drawEllipse(qpol.back(),3,3); + pnt.drawEllipse(qpol.back(),4,4); } pnt.drawPolygon(qpol); } + pnt.setRenderHints(render_hints); } bool MaskOverlay::OnMouseEvent(QMouseEvent* e, DataViewerPanel* dvp, @@ -118,7 +121,7 @@ bool MaskOverlay::OnMouseEvent(QMouseEvent* e, DataViewerPanel* dvp, if(active_>=0){ geom::Polygon2 pol=polygons_[active_]; for(unsigned int j=0;j<pol.GetNodeCount();++j){ - if(Length(mousepos-(pol.GetNode(j)+shift_))<3){ + if(Length(mousepos-(pol.GetNode(j)+shift_))<4){ active_node_=j; return true; } @@ -128,7 +131,7 @@ bool MaskOverlay::OnMouseEvent(QMouseEvent* e, DataViewerPanel* dvp, if(i!=active_){ geom::Polygon2 pol=polygons_[i]; for(unsigned int j=0;j<pol.GetNodeCount();++j){ - if(Length(mousepos-pol.GetNode(j))<3){ + if(Length(mousepos-(pol.GetNode(j)+shift_))<4){ active_=i; active_node_=j; return true; @@ -142,7 +145,7 @@ bool MaskOverlay::OnMouseEvent(QMouseEvent* e, DataViewerPanel* dvp, } } if(e->buttons() & Qt::LeftButton && active_>=0 && active_node_>=0 && ! (e->modifiers() & Qt::ShiftModifier)){ - polygons_[active_].SetNode(active_node_,mousepos); + polygons_[active_].SetNode(active_node_,mousepos-shift_); } return false; }