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 );
127 void renderStarting();
132 void mapCanvasRefreshed();
135 void freezeChanged();
138 void isRenderingChanged();
141 void mapUpdateIntervalChanged();
144 void incrementalRenderingChanged();
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();
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