summary refs log tree commit diff
path: root/src/timeline2/TimelineModel.h
diff options
context:
space:
mode:
authorNicolas Werner <nicolas.werner@hotmail.de>2019-08-30 23:20:53 +0200
committerNicolas Werner <nicolas.werner@hotmail.de>2019-11-23 20:06:14 +0100
commit8b5c7b2f2fb43b4f1884e683d60dd2553b9aa994 (patch)
tree5acc7a5af54bb5319eccbfb509e7f0c807aadee1 /src/timeline2/TimelineModel.h
parentReplace timeline with empty qml view (diff)
downloadnheko-8b5c7b2f2fb43b4f1884e683d60dd2553b9aa994.tar.xz
Add placeholder timeline model
Diffstat (limited to 'src/timeline2/TimelineModel.h')
-rw-r--r--src/timeline2/TimelineModel.h42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/timeline2/TimelineModel.h b/src/timeline2/TimelineModel.h
new file mode 100644

index 00000000..c281056d --- /dev/null +++ b/src/timeline2/TimelineModel.h
@@ -0,0 +1,42 @@ +#pragma once + +#include <map> +#include <vector> + +#include <QAbstractListModel> +#include <QColor> + +#include <mtx/events/collections.hpp> + +class TimelineModel : public QAbstractListModel +{ + Q_OBJECT + +public: + explicit TimelineModel(QObject *parent = 0) + : QAbstractListModel(parent) + {} + + enum Roles + { + Type, + Body, + FormattedBody, + UserId, + UserName, + Timestamp, + }; + + QHash<int, QByteArray> roleNames() const override; + int rowCount(const QModelIndex &parent = QModelIndex()) const; + QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const; + + Q_INVOKABLE QColor userColor(QString id, QColor background); + +private: + std::map<QString, mtx::events::collections::TimelineEvents> events; + std::vector<QString> eventOrder; + + std::map<QString, QColor> userColors; +}; +