Spectral/matrix/imageprovider.h

50 lines
1.4 KiB
C
Raw Normal View History

2018-03-02 08:56:36 +00:00
#ifndef IMAGEPROVIDER_H
#define IMAGEPROVIDER_H
#include <QtQuick/QQuickImageProvider>
#include <QtCore/QReadWriteLock>
#include <QObject>
2018-03-02 08:56:36 +00:00
#include "libqmatrixclient/connection.h"
class ImageProviderConnection: public QObject
{
Q_OBJECT
Q_PROPERTY(QMatrixClient::Connection* connection READ getConnection WRITE setConnection NOTIFY connectionChanged)
public:
explicit ImageProviderConnection(QObject* parent = nullptr);
~ImageProviderConnection();
QMatrixClient::Connection* getConnection() { return m_connection; }
Q_INVOKABLE void setConnection(QMatrixClient::Connection* connection) {
qDebug() << "Connection changed.";
emit connectionChanged();
m_connection = connection;
}
private:
QMatrixClient::Connection* m_connection;
signals:
void connectionChanged();
};
2018-03-02 08:56:36 +00:00
class ImageProvider: public QQuickImageProvider
{
public:
explicit ImageProvider(QObject* parent = nullptr);
2018-03-02 08:56:36 +00:00
QImage requestImage(const QString& id, QSize* pSize,
const QSize& requestedSize) override;
void initializeEngine(QQmlEngine *engine, const char *uri);
ImageProviderConnection* getConnection() { return m_connection; }
2018-03-02 08:56:36 +00:00
private:
QReadWriteLock m_lock;
ImageProviderConnection* m_connection;
2018-03-02 08:56:36 +00:00
};
#endif // IMAGEPROVIDER_H