FlightGear next
ThumbnailImageItem.hxx
Go to the documentation of this file.
1#ifndef THUMBNAILIMAGEITEM_HXX
2#define THUMBNAILIMAGEITEM_HXX
3
4#include <memory>
5
6#include <QQuickItem>
7#include <QUrl>
8#include <QImage>
9
10class ThumbnailImageItem : public QQuickItem
11{
12 Q_OBJECT
13
14 Q_PROPERTY(QString aircraftUri READ aircraftUri WRITE setAircraftUri NOTIFY aircraftUriChanged)
15 Q_PROPERTY(QUrl url READ url NOTIFY aircraftUriChanged)
16
17 Q_PROPERTY(QSize sourceSize READ sourceSize NOTIFY sourceSizeChanged)
18
19 Q_PROPERTY(QSize maximumSize READ maximumSize WRITE setMaximumSize NOTIFY maximumSizeChanged)
20public:
21 ThumbnailImageItem(QQuickItem* parent = nullptr);
23
24 QSGNode* updatePaintNode(QSGNode *, UpdatePaintNodeData *) override;
25
26 QUrl url() const;
27
28 QString aircraftUri() const;
29
30 QSize sourceSize() const;
31
32 QSize maximumSize() const;
33
34signals:
36
38
40
41public slots:
42
43 void setAircraftUri(QString uri);
44
45 void setMaximumSize(QSize maximumSize);
46
47private:
50
51 void setImage(QImage image);
52 void clearImage();
53
54 QString m_aircraftUri;
55 QUrl m_imageUrl;
56 std::unique_ptr<ThumbnailPackageDelegate> m_delegate;
57
58 bool m_imageDirty = false;
59 QImage m_image;
60 QSize m_maximumSize;
61};
62
63#endif // THUMBNAILIMAGEITEM_HXX
void setAircraftUri(QString uri)
void maximumSizeChanged(QSize maximumSize)
void setMaximumSize(QSize maximumSize)
ThumbnailImageItem(QQuickItem *parent=nullptr)
QSGNode * updatePaintNode(QSGNode *, UpdatePaintNodeData *) override