16 #ifndef QGSQUICKMAPCANVASMAP_H
17 #define QGSQUICKMAPCANVASMAP_H
19 #include "qgis_quick.h"
22 #include <QFutureSynchronizer>
24 #include <QtQuick/QQuickItem>
70 Q_PROPERTY(
bool freeze READ freeze WRITE setFreeze NOTIFY freezeChanged )
77 Q_PROPERTY(
bool isRendering READ isRendering NOTIFY isRenderingChanged )
84 Q_PROPERTY(
int mapUpdateInterval READ mapUpdateInterval WRITE setMapUpdateInterval NOTIFY mapUpdateIntervalChanged )
89 Q_PROPERTY(
bool incrementalRendering READ incrementalRendering WRITE setIncrementalRendering NOTIFY incrementalRenderingChanged )
96 QSGNode *updatePaintNode( QSGNode *oldNode, QQuickItem::UpdatePaintNodeData * )
override;
105 void setFreeze(
bool freeze );
108 bool isRendering()
const;
111 int mapUpdateInterval()
const;
114 void setMapUpdateInterval(
int mapUpdateInterval );
117 bool incrementalRendering()
const;
120 void setIncrementalRendering(
bool incrementalRendering );
147 void geometryChanged(
const QRectF &newGeometry,
const QRectF &oldGeometry )
override;
151 void stopRendering();
156 void zoom( QPointF center, qreal scale );
161 void pan( QPointF oldPos, QPointF newPos );
176 void renderJobUpdated();
177 void renderJobFinished();
178 void layerRepaintRequested(
bool deferred );
179 void onWindowChanged( QQuickWindow *window );
180 void onScreenChanged( QScreen *screen );
181 void onExtentChanged();
182 void onLayersChanged();
191 void updateTransform();
192 void zoomToFullExtent();
194 std::unique_ptr<QgsQuickMapSettings> mMapSettings;
195 bool mPinching =
false;
196 QPoint mPinchStartPoint;
198 std::unique_ptr<QgsMapRendererCache> mCache;
202 QTimer mRefreshTimer;
204 bool mFreeze =
false;
205 QList<QMetaObject::Connection> mLayerConnections;
206 QTimer mMapUpdateTimer;
207 bool mIncrementalRendering =
false;
208 bool mSilentRefresh =
false;
209 bool mDeferredRefreshPending =
false;
211 QQuickWindow *mWindow =
nullptr;
Class that stores computed placement from labeling engine.
This class is responsible for keeping cache of rendered images resulting from a map rendering job.
Abstract base class for map rendering implementations.
Job implementation that renders all layers in parallel.
The QgsMapSettings class contains configuration for rendering of the map.
This class implements a visual Qt Quick Item that does map rendering according to the current map set...
void freezeChanged()
When freeze property is set to true, the map canvas does not refresh.
void mapCanvasRefreshed()
Signal is emitted when a canvas is refreshed.
void incrementalRenderingChanged()
When the incrementalRendering property is set to true, the automatic refresh of map canvas during ren...
void renderStarting()
Signal is emitted when a rendering is starting.
void mapUpdateIntervalChanged()
Interval in milliseconds after which the map canvas will be updated while a rendering job is ongoing.
void isRenderingChanged()
The isRendering property is set to true while a rendering job is pending for this map canvas map.
The QgsQuickMapSettings class encapsulates QgsMapSettings class to offer settings of configuration of...