Spectral/src/imageitem.h

53 lines
1.2 KiB
C
Raw Normal View History

2018-09-06 08:22:00 +00:00
#ifndef IMAGEITEM_H
#define IMAGEITEM_H
#include <QPointer>
2018-09-06 08:22:00 +00:00
#include <QImage>
#include <QObject>
#include <QPainter>
#include <QQuickItem>
#include <QQuickPaintedItem>
2018-11-04 11:14:02 +00:00
#include "paintable.h"
2018-09-06 08:22:00 +00:00
class ImageItem : public QQuickPaintedItem {
Q_OBJECT
2018-11-04 11:14:02 +00:00
Q_PROPERTY(Paintable* source READ paintable WRITE setPaintable NOTIFY
paintableChanged)
2018-09-06 08:22:00 +00:00
Q_PROPERTY(QString hint READ hint WRITE setHint NOTIFY hintChanged)
Q_PROPERTY(QString defaultColor READ defaultColor WRITE setDefaultColor NOTIFY
defaultColorChanged)
2018-09-10 01:51:02 +00:00
Q_PROPERTY(bool round READ round WRITE setRound NOTIFY roundChanged)
2018-09-06 08:22:00 +00:00
public:
2018-11-04 11:14:02 +00:00
ImageItem(QQuickItem* parent = nullptr);
2018-09-06 08:22:00 +00:00
2018-11-04 11:14:02 +00:00
void paint(QPainter* painter);
2018-09-06 08:22:00 +00:00
2018-11-04 11:14:02 +00:00
Paintable* paintable() { return m_paintable; }
void setPaintable(Paintable* paintable);
2018-09-06 08:22:00 +00:00
QString hint() { return m_hint; }
void setHint(QString hint);
QString defaultColor() { return m_color; }
void setDefaultColor(QString color);
2018-09-10 01:51:02 +00:00
bool round() { return m_round; }
void setRound(bool value);
2018-09-06 08:22:00 +00:00
signals:
2018-11-04 11:14:02 +00:00
void paintableChanged();
2018-09-06 08:22:00 +00:00
void hintChanged();
void defaultColorChanged();
2018-09-10 01:51:02 +00:00
void roundChanged();
2018-09-06 08:22:00 +00:00
private:
QPointer<Paintable> m_paintable;
QString m_hint = "H";
2018-09-16 08:09:36 +00:00
QString m_color;
2018-09-10 01:51:02 +00:00
bool m_round = true;
2018-09-06 08:22:00 +00:00
};
#endif // IMAGEITEM_H