add MapItemBase::renderHints
This commit is contained in:
@@ -4,7 +4,9 @@
|
||||
#include "osm_math_p.h"
|
||||
|
||||
|
||||
MapItemBase::MapItemBase() {}
|
||||
MapItemBase::MapItemBase() {
|
||||
m_hints = QPainter::Antialiasing | QPainter::SmoothPixmapTransform;
|
||||
}
|
||||
|
||||
|
||||
MapItemBase::~MapItemBase() {
|
||||
@@ -19,6 +21,18 @@ void MapItemBase::setInteracive(bool newInteracive) {
|
||||
}
|
||||
|
||||
|
||||
void MapItemBase::setRenderHints(QPainter::RenderHints h) {
|
||||
m_hints = h;
|
||||
updateParent();
|
||||
}
|
||||
|
||||
|
||||
void MapItemBase::setRenderHint(QPainter::RenderHint h, bool on) {
|
||||
m_hints.setFlag(h, on);
|
||||
updateParent();
|
||||
}
|
||||
|
||||
|
||||
void MapItemBase::setVisible(bool newVisible) {
|
||||
m_visible = newVisible;
|
||||
updateParent();
|
||||
|
||||
@@ -38,10 +38,13 @@ public:
|
||||
explicit MapItemBase();
|
||||
virtual ~MapItemBase();
|
||||
|
||||
|
||||
bool isInteracive() const { return m_interacive; }
|
||||
void setInteracive(bool newInteracive);
|
||||
|
||||
QPainter::RenderHints renderHints() const { return m_hints; }
|
||||
void setRenderHints(QPainter::RenderHints h);
|
||||
void setRenderHint(QPainter::RenderHint h, bool on = true);
|
||||
|
||||
bool isVisible() const { return m_visible; }
|
||||
void setVisible(bool newVisible);
|
||||
bool isHidden() const { return !isVisible(); }
|
||||
@@ -97,6 +100,7 @@ private:
|
||||
QPointF m_position, m_scale = {1., 1.}, m_offset;
|
||||
QRectF m_bounding;
|
||||
QCursor m_cursor;
|
||||
QPainter::RenderHints m_hints;
|
||||
QMap<int, QVariant> data_;
|
||||
};
|
||||
|
||||
|
||||
@@ -320,8 +320,7 @@ void MapView::drawBackground() {
|
||||
|
||||
void MapView::drawItems(QPainter & p) {
|
||||
auto src_tr = p.transform();
|
||||
p.setRenderHint(QPainter::Antialiasing);
|
||||
p.setRenderHint(QPainter::SmoothPixmapTransform);
|
||||
QPainter::RenderHints cur_hints;
|
||||
QPoint mouse = mapFromGlobal(QCursor::pos());
|
||||
MapItemBase * hover = nullptr;
|
||||
for (auto * i: items_) {
|
||||
@@ -332,6 +331,10 @@ void MapView::drawItems(QPainter & p) {
|
||||
p.translate(i->m_offset.x(), -i->m_offset.y());
|
||||
p.rotate(i->getRotation());
|
||||
if (!i->ignore_scale) p.scale(i->getScale().x(), i->getScale().y());
|
||||
if (cur_hints != i->renderHints()) {
|
||||
cur_hints = i->renderHints();
|
||||
p.setRenderHints(cur_hints);
|
||||
}
|
||||
i->draw(&p);
|
||||
QTransform mtr;
|
||||
mtr.rotate(-i->getRotation());
|
||||
|
||||
Reference in New Issue
Block a user