16 #ifndef QGSQUICKMAPCANVASMAP_H
17 #define QGSQUICKMAPCANVASMAP_H
21 #include <QtQuick/QQuickItem>
22 #include <QFutureSynchronizer>
28 #include "qgis_quick.h"
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 );
171 void renderJobUpdated();
172 void renderJobFinished();
173 void onWindowChanged( QQuickWindow *window );
174 void onScreenChanged( QScreen *screen );
175 void onExtentChanged();
176 void onLayersChanged();
185 void updateTransform();
186 void zoomToFullExtent();
188 std::unique_ptr<QgsQuickMapSettings> mMapSettings;
189 bool mPinching =
false;
190 QPoint mPinchStartPoint;
196 QTimer mRefreshTimer;
198 bool mFreeze =
false;
199 bool mNeedsRefresh =
false;
200 QList<QMetaObject::Connection> mLayerConnections;
201 QTimer mMapUpdateTimer;
202 bool mIncrementalRendering =
false;
205 #endif // QGSQUICKMAPCANVASMAP_H