version 2.13.0
add Map library (MapView with OSM maps and items) and mapviewer util
This commit is contained in:
38
libs/map/mapitemimage.cpp
Normal file
38
libs/map/mapitemimage.cpp
Normal file
@@ -0,0 +1,38 @@
|
||||
#include "mapitemimage.h"
|
||||
|
||||
|
||||
MapItemImage::MapItemImage(const QPixmap & p) {
|
||||
setPixmap(p);
|
||||
}
|
||||
|
||||
|
||||
void MapItemImage::setPixmap(const QPixmap & p) {
|
||||
m_pixmap = p;
|
||||
updateParent();
|
||||
}
|
||||
|
||||
|
||||
void MapItemImage::setAlignment(Qt::Alignment a) {
|
||||
m_alignment = a;
|
||||
updateParent();
|
||||
}
|
||||
|
||||
|
||||
void MapItemImage::draw(QPainter * p) {
|
||||
if (m_pixmap.isNull()) return;
|
||||
QRectF pr(QPointF(0, 0), QSizeF(m_pixmap.size()));
|
||||
if (m_alignment.testFlag(Qt::AlignHCenter)) {
|
||||
pr.translate(-pr.center().x(), 0.);
|
||||
}
|
||||
if (m_alignment.testFlag(Qt::AlignRight)) {
|
||||
pr.translate(-pr.width(), 0.);
|
||||
}
|
||||
if (m_alignment.testFlag(Qt::AlignVCenter)) {
|
||||
pr.translate(0., -pr.center().y());
|
||||
}
|
||||
if (m_alignment.testFlag(Qt::AlignBottom)) {
|
||||
pr.translate(0., -pr.height());
|
||||
}
|
||||
p->drawPixmap(pr, m_pixmap, m_pixmap.rect());
|
||||
setBoundingRect(pr);
|
||||
}
|
||||
Reference in New Issue
Block a user