File indexing completed on 2024-04-28 15:39:42
0001 // SPDX-FileCopyrightText: 2014-2022 Jesper K. Pedersen <blackie@kde.org> 0002 // 0003 // SPDX-License-Identifier: GPL-2.0-or-later 0004 0005 #ifndef REMOTEIMAGE_H 0006 #define REMOTEIMAGE_H 0007 0008 #include "Types.h" 0009 #include <QImage> 0010 #include <QQuickPaintedItem> 0011 0012 namespace RemoteControl 0013 { 0014 0015 class RemoteImage : public QQuickPaintedItem 0016 { 0017 Q_OBJECT 0018 Q_PROPERTY(int imageId READ imageId WRITE setImageId NOTIFY imageIdChanged) 0019 Q_PROPERTY(RemoteControl::Types::ViewType type MEMBER m_type NOTIFY typeChanged) 0020 Q_PROPERTY(QString label MEMBER m_label NOTIFY labelChanged) 0021 0022 public: 0023 explicit RemoteImage(QQuickItem *parent = 0); 0024 void paint(QPainter *painter) override; 0025 int imageId() const; 0026 QSize size() const; 0027 void setLabel(const QString &label); 0028 void setImage(const QImage &image); 0029 0030 public Q_SLOTS: 0031 void setImageId(int imageId); 0032 void loadFullSize(); 0033 0034 protected: 0035 void componentComplete(); 0036 0037 private Q_SLOTS: 0038 void requestImage(); 0039 0040 Q_SIGNALS: 0041 void imageIdChanged(); 0042 void typeChanged(); 0043 void labelChanged(); 0044 void sourceSizeChanged(); 0045 0046 private: 0047 int m_imageId; 0048 ViewType m_type; 0049 QString m_label; 0050 QImage m_image; 0051 bool m_hasFullSizedImage = false; 0052 }; 0053 0054 } 0055 0056 #endif // REMOTEIMAGE_H