fix for Qt6

MapView add contrast property
MapView fix plugin
This commit is contained in:
2025-03-19 22:03:51 +03:00
parent f0c2369df0
commit 8df58026c4
4 changed files with 22 additions and 1 deletions

View File

@@ -81,6 +81,12 @@ void MapView::setZoom(double z) {
}
void MapView::setContrast(double value) {
contrast = piClampd(value, 0., 100.);
update();
}
QString MapView::cachePath() const {
return cache->cacheRoot();
}
@@ -258,6 +264,11 @@ void MapView::wheelEvent(QWheelEvent * e) {
void MapView::paintEvent(QPaintEvent *) {
QPainter p(this);
p.drawPixmap(0, 0, background);
if (contrast < 100.) {
auto col = palette().color(QPalette::Window);
col.setAlphaF(1. - contrast / 100.);
p.fillRect(rect(), col);
}
drawItems(p);
updateMouse(mapFromGlobal(QCursor::pos()));
}

View File

@@ -36,6 +36,7 @@ class QAD_MAP_EXPORT MapView: public QWidget {
Q_OBJECT
Q_PROPERTY(QPointF center READ center WRITE setCenter)
Q_PROPERTY(double zoom READ getZoom WRITE setZoom)
Q_PROPERTY(double contrast READ getContrast WRITE setContrast)
Q_PROPERTY(bool offlineMode READ isOfflineMode WRITE setOfflineMode)
friend class MapViewTileDownloader;
@@ -58,6 +59,12 @@ public:
double getZoom() const { return zoom_; }
void setZoom(double z);
double getContrast() const { return contrast; }
/// 0 - 100
void setContrast(double value);
/// {lat, lng}
QPointF clickedCoordinate() const { return last_click_coord; }
QString cachePath() const;
@@ -107,7 +114,7 @@ private:
QVector<MapItemBase *> items_;
QBrush brush_tr;
bool is_pan = false, is_downloading = false, is_offline = false;
double zoom_ = 1., scale_ = 1., px2m = 1.;
double zoom_ = 1., scale_ = 1., px2m = 1., contrast = 100.;
int zoom_level = 0, tiles_side = 1, max_level = 19;
public slots:

View File

@@ -23,6 +23,7 @@
#include "mapview_types.h"
#include "qad_map_export.h"
#include <QObject>
#include <QPixmap>
#include <pivaluetree.h>

View File

@@ -1,6 +1,7 @@
#include "mapplugin.h"
#include "mapview.h"
#include "mapview_tile_provider_osm.h"
#include <QtCore/QtPlugin>
@@ -26,6 +27,7 @@ bool MapPlugin::isInitialized() const {
QWidget * MapPlugin::createWidget(QWidget * parent) {
MapView * w = new MapView(parent);
w->setTileProvider(new MapViewTileProvider_OSM());
return w;
}