last-svn-commit-150-g999e60c Update viewer.

* viewer/image_region.cc, * viewer/image_region.hxx: Improve selection highlighting (more readable). --- viewer/image_region.cc | 41 ++++++++++++++++++++++++++++++++++++++--- viewer/image_region.hxx | 24 ------------------------ 2 files changed, 38 insertions(+), 27 deletions(-) diff --git a/viewer/image_region.cc b/viewer/image_region.cc index bef30fc..7761065 100644 --- a/viewer/image_region.cc +++ b/viewer/image_region.cc @@ -70,11 +70,10 @@ ImageRegion::paint(QPainter* painter, width = 1; if (outline_) - painter->setPen(QPen(QBrush(color_), width)); + painter->setPen(QPen(QBrush(color_), width, Qt::SolidLine, + Qt::SquareCap, Qt::MiterJoin)); else painter->setPen(QColor(0, 0, 0, 0)); - if (selected_) - painter->setPen(QPen(QBrush(QColor("red")), width)); QColor brush = color_; if (fill_) @@ -84,4 +83,40 @@ ImageRegion::paint(QPainter* painter, painter->setBrush(brush); painter->drawPath(shape_); + + if (selected_) + { + QPolygonF sceneRect = mapFromScene(scene()->sceneRect()); + QPainterPath path; + path.addPolygon(sceneRect); + QColor brush(255, 255, 255); + brush.setAlpha(120); + painter->setBrush(brush); + painter->setPen(QColor(0, 0, 0, 0)); + painter->drawPath(path.subtracted(shape_)); + } +} + +void +ImageRegion::select() +{ + if (!selected_) + { + selected_ = true; + setZValue(2); + scene()->invalidate(); + update(); + } +} + +void +ImageRegion::deselect() +{ + if (selected_) + { + selected_ = false; + scene()->invalidate(); + setZValue(1); + update(); + } } diff --git a/viewer/image_region.hxx b/viewer/image_region.hxx index 35634f7..b15615c 100644 --- a/viewer/image_region.hxx +++ b/viewer/image_region.hxx @@ -87,28 +87,4 @@ ImageRegion::index() const return index_; } -inline -void -ImageRegion::select() -{ - if (!selected_) - { - selected_ = true; - setZValue(2); - update(); - } -} - -inline -void -ImageRegion::deselect() -{ - if (selected_) - { - selected_ = false; - setZValue(1); - update(); - } -} - #endif /* !IMAGE_REGION_HXX_ */ -- 1.5.6.5
participants (1)
-
Florent D'Halluin