summaryrefslogtreecommitdiffstats
path: root/src/imports/qtcanvas3d/teximage3d_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/imports/qtcanvas3d/teximage3d_p.h')
-rw-r--r--src/imports/qtcanvas3d/teximage3d_p.h14
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