1// Copyright (C) 2019 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#ifndef QQUICKIMAGEBASE_P_P_H
5#define QQUICKIMAGEBASE_P_P_H
6
7//
8// W A R N I N G
9// -------------
10//
11// This file is not part of the Qt API. It exists purely as an
12// implementation detail. This header file may change from version to
13// version without notice, or even be removed.
14//
15// We mean it.
16//
17
18#include "qquickimplicitsizeitem_p_p.h"
19#include "qquickimagebase_p.h"
20
21#include <QtQuick/private/qquickpixmap_p.h>
22
23QT_BEGIN_NAMESPACE
24
25class QNetworkReply;
26class Q_QUICK_EXPORT QQuickImageBasePrivate : public QQuickImplicitSizeItemPrivate
27{
28 Q_DECLARE_PUBLIC(QQuickImageBase)
29
30public:
31 QQuickImageBasePrivate()
32 : async(false),
33 cache(true),
34 mirrorHorizontally(false),
35 mirrorVertically(false),
36 oldAutoTransform(false),
37 retainWhileLoading(false)
38 {
39 pendingPix = &pix1;
40 currentPix = &pix1;
41 }
42
43 static QQuickImageBasePrivate *get(QQuickImageBase *image)
44 {
45 return image->d_func();
46 }
47
48 virtual bool updateDevicePixelRatio(qreal targetDevicePixelRatio);
49
50 void setStatus(QQuickImageBase::Status value);
51 void setProgress(qreal value);
52
53 QUrl url;
54 QQuickPixmap *pendingPix = nullptr;
55 QQuickPixmap *currentPix = nullptr;
56 QQuickPixmap pix1;
57 QQuickPixmap pix2;
58 QSize sourcesize;
59 QSize oldSourceSize;
60 QRectF sourceClipRect;
61 QQuickImageProviderOptions providerOptions;
62 QColorSpace colorSpace;
63
64 int currentFrame = 0;
65 int frameCount = 0;
66 qreal progress = 0;
67 qreal devicePixelRatio = 1;
68 QQuickImageBase::Status status = QQuickImageBase::Null;
69
70 bool async : 1;
71 bool cache : 1;
72 bool mirrorHorizontally: 1;
73 bool mirrorVertically : 1;
74 bool oldAutoTransform : 1;
75 bool retainWhileLoading : 1;
76};
77
78QT_END_NAMESPACE
79
80#endif // QQUICKIMAGEBASE_P_P_H
81

source code of qtdeclarative/src/quick/items/qquickimagebase_p_p.h