diff options
Diffstat (limited to 'src/imports/qtcanvas3d/teximage3d_p.h')
-rw-r--r-- | src/imports/qtcanvas3d/teximage3d_p.h | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/imports/qtcanvas3d/teximage3d_p.h b/src/imports/qtcanvas3d/teximage3d_p.h index ecb1756..73f1186 100644 --- a/src/imports/qtcanvas3d/teximage3d_p.h +++ b/src/imports/qtcanvas3d/teximage3d_p.h @@ -54,6 +54,7 @@ #include "abstractobject3d_p.h" #include <QtCore/QUrl> +#include <QtCore/QPointer> #include <QtGui/QImage> #include <QtNetwork/QNetworkAccessManager> #include <QtNetwork/QNetworkReply> @@ -77,6 +78,8 @@ public: void notifyLoadedImages(); Q_INVOKABLE QJSValue newTexImage(); + void handleImageDestroyed(CanvasTextureImage *image); + private: QQmlEngine *m_qmlEngine; QList<CanvasTextureImage *> m_loadingImagesList; @@ -123,7 +126,7 @@ public: void emitImageLoadingError(); void load(); - void handleReply(QNetworkReply *reply); + void handleReply(); QImage &getImage(); uchar *convertToFormat(CanvasContext::glEnums format, bool flipY = false, bool premultipliedAlpha = false); @@ -132,7 +135,7 @@ public: private: void setImageState(TextureImageState state); explicit CanvasTextureImage(const QImage &source, int width, int height, - QObject *parent, QQmlEngine *engine); + CanvasTextureImageFactory *parent, QQmlEngine *engine); signals: void srcChanged(QUrl source); @@ -146,8 +149,11 @@ signals: void imageLoadingFailed(CanvasTextureImage *image); private: + void cleanupNetworkReply(); + QQmlEngine *m_engine; - QNetworkAccessManager *m_networkAccessManager; + QNetworkAccessManager *m_networkAccessManager; // not owned + QNetworkReply *m_networkReply; QImage m_image; QUrl m_source; TextureImageState m_state; @@ -157,7 +163,7 @@ private: bool m_pixelCacheFlipY; QImage m_glImage; QVariant *m_anyValue; - CanvasTextureImageFactory *m_parentFactory; + QPointer<CanvasTextureImageFactory> m_parentFactory; }; QT_CANVAS3D_END_NAMESPACE |