summary refs log tree commit diff
path: root/src/timeline2/TimelineViewManager.cpp
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/TimelineViewManager.cpp
parentReplace timeline with empty qml view (diff)
downloadnheko-8b5c7b2f2fb43b4f1884e683d60dd2553b9aa994.tar.xz
Add placeholder timeline model
Diffstat (limited to 'src/timeline2/TimelineViewManager.cpp')
-rw-r--r--src/timeline2/TimelineViewManager.cpp44
1 files changed, 43 insertions, 1 deletions
diff --git a/src/timeline2/TimelineViewManager.cpp b/src/timeline2/TimelineViewManager.cpp

index b932b6ac..711dfcad 100644 --- a/src/timeline2/TimelineViewManager.cpp +++ b/src/timeline2/TimelineViewManager.cpp
@@ -1,10 +1,52 @@ #include "TimelineViewManager.h" +#include <QMetaType> +#include <QQmlContext> + +#include "Logging.h" + TimelineViewManager::TimelineViewManager(QWidget *parent) { view = new QQuickView(); container = QWidget::createWindowContainer(view, parent); container->setMinimumSize(200, 200); view->setSource(QUrl("qrc:///qml/TimelineView.qml")); - // view->rootContext()->setContextProperty(room); +} + +void +TimelineViewManager::initialize(const mtx::responses::Rooms &rooms) +{ + for (auto it = rooms.join.cbegin(); it != rooms.join.cend(); ++it) { + addRoom(QString::fromStdString(it->first)); + } + + sync(rooms); +} + +void +TimelineViewManager::addRoom(const QString &room_id) +{ + if (!models.contains(room_id)) + models.insert(room_id, QSharedPointer<TimelineModel>(new TimelineModel())); +} + +void +TimelineViewManager::setHistoryView(const QString &room_id) +{ + nhlog::ui()->info("Trying to activate room {}", room_id.toStdString()); + + auto room = models.find(room_id); + if (room != models.end()) { + view->rootContext()->setContextProperty("timeline", + QVariant::fromValue(room.value().data())); + nhlog::ui()->info("Activated room {}", room_id.toStdString()); + } +} + +void +TimelineViewManager::initWithMessages(const std::map<QString, mtx::responses::Timeline> &msgs) +{ + for (const auto &e : msgs) { + addRoom(e.first); + } }