70 lines
1.6 KiB
C++
70 lines
1.6 KiB
C++
#ifndef OMOBIDISPLAYTEXTMODEL_H
|
|
#define OMOBIDISPLAYTEXTMODEL_H
|
|
|
|
#include <QAbstractListModel>
|
|
#include <QObject>
|
|
#include <QColor>
|
|
#include <QDebug>
|
|
|
|
class OmobiDisplayTextModel : public QAbstractListModel
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
friend class OmobiDisplayBackend;
|
|
|
|
enum OmobiDisplayTextModelRole {
|
|
TextRole = Qt::DisplayRole,
|
|
ActiveRole,
|
|
RuntimeRole,
|
|
ColorRole,
|
|
AlignmentRole,
|
|
ScrollRole,
|
|
ScrollSpeedRole,
|
|
ScrollCountRole,
|
|
IndexRole
|
|
};
|
|
Q_ENUM(OmobiDisplayTextModelRole)
|
|
|
|
|
|
enum text_align_t
|
|
{
|
|
AlignLeft,
|
|
AlignCenter,
|
|
AlignRignt
|
|
};
|
|
|
|
|
|
int rowCount(const QModelIndex & = QModelIndex()) const;
|
|
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
|
|
QHash<int, QByteArray> roleNames() const;
|
|
|
|
Q_INVOKABLE void append(
|
|
QString text,
|
|
bool active,
|
|
unsigned int runtime,
|
|
QString color,
|
|
QString alignment,
|
|
bool scroll,
|
|
unsigned int scrollSpeed,
|
|
unsigned int scrollCount
|
|
);
|
|
void append(const QMap<int, QVariant> &roles);
|
|
|
|
bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole);
|
|
|
|
Q_INVOKABLE void remove(int row);
|
|
|
|
protected:
|
|
OmobiDisplayTextModel(QObject* parent = nullptr);
|
|
|
|
bool setTexts(QList<QMap<int, QVariant>> json);
|
|
QList<QMap<int, QVariant>> getTexts();
|
|
|
|
void clear();
|
|
|
|
private:
|
|
QList<QMap<int, QVariant>> texts;
|
|
};
|
|
|
|
#endif // OMOBIDISPLAYTEXTMODEL_H
|