summary refs log tree commit diff
path: root/src/timeline2
diff options
context:
space:
mode:
authorNicolas Werner <nicolas.werner@hotmail.de>2019-11-08 14:39:45 +0100
committerNicolas Werner <nicolas.werner@hotmail.de>2019-11-23 20:06:15 +0100
commit2bfb885b4739dae46a35cfc5b1c62767b3900da9 (patch)
tree753fa8ae89671057adea30cb0e0cc53c0a4c0cf0 /src/timeline2
parentMake replies format nicer (diff)
downloadnheko-2bfb885b4739dae46a35cfc5b1c62767b3900da9.tar.xz
optionally use QQuickWidget and replace ColorOverlay -> colorImageProvider
Diffstat (limited to 'src/timeline2')
-rw-r--r--src/timeline2/DelegateChooser.cpp1
-rw-r--r--src/timeline2/TimelineModel.cpp2
-rw-r--r--src/timeline2/TimelineViewManager.cpp14
-rw-r--r--src/timeline2/TimelineViewManager.h7
4 files changed, 22 insertions, 2 deletions
diff --git a/src/timeline2/DelegateChooser.cpp b/src/timeline2/DelegateChooser.cpp

index 6aeea69b..632a2a64 100644 --- a/src/timeline2/DelegateChooser.cpp +++ b/src/timeline2/DelegateChooser.cpp
@@ -119,7 +119,6 @@ DelegateChooser::DelegateIncubator::statusChanged(QQmlIncubator::Status status) chooser.child = dynamic_cast<QQuickItem *>(object()); if (chooser.child == nullptr) { nhlog::ui()->error("Delegate has to be derived of Item!"); - delete chooser.child; return; } diff --git a/src/timeline2/TimelineModel.cpp b/src/timeline2/TimelineModel.cpp
index b2b6f803..ab7d3d47 100644 --- a/src/timeline2/TimelineModel.cpp +++ b/src/timeline2/TimelineModel.cpp
@@ -844,7 +844,7 @@ TimelineModel::replyAction(QString id) return related_; }, event); - related.type = mtx::events::getMessageType(boost::apply_visitor( + related.type = mtx::events::getMessageType(boost::apply_visitor( [](const auto &e) -> std::string { return eventMsgType(e); }, event)); related.quoted_body = boost::apply_visitor( [](const auto &e) -> QString { return eventFormattedBody(e); }, event); diff --git a/src/timeline2/TimelineViewManager.cpp b/src/timeline2/TimelineViewManager.cpp
index a054bc78..d733ad90 100644 --- a/src/timeline2/TimelineViewManager.cpp +++ b/src/timeline2/TimelineViewManager.cpp
@@ -8,6 +8,7 @@ #include <QStandardPaths> #include "ChatPage.h" +#include "ColorImageProvider.h" #include "DelegateChooser.h" #include "Logging.h" #include "MxcImageProvider.h" @@ -51,6 +52,7 @@ TimelineViewManager::updateColorPalette() TimelineViewManager::TimelineViewManager(QWidget *parent) : imgProvider(new MxcImageProvider()) + , colorImgProvider(new ColorImageProvider()) { qmlRegisterUncreatableMetaObject(qml_mtx_events::staticMetaObject, "com.github.nheko", @@ -61,12 +63,24 @@ TimelineViewManager::TimelineViewManager(QWidget *parent) qmlRegisterType<DelegateChoice>("com.github.nheko", 1, 0, "DelegateChoice"); qmlRegisterType<DelegateChooser>("com.github.nheko", 1, 0, "DelegateChooser"); +#ifdef USE_QUICK_VIEW view = new QQuickView(); container = QWidget::createWindowContainer(view, parent); +#else + view = new QQuickWidget(parent); + container = view; + view->setResizeMode(QQuickWidget::SizeRootObjectToView); + container->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); + + connect(view, &QQuickWidget::statusChanged, this, [](QQuickWidget::Status status) { + nhlog::ui()->debug("Status changed to {}", status); + }); +#endif container->setMinimumSize(200, 200); view->rootContext()->setContextProperty("timelineManager", this); updateColorPalette(); view->engine()->addImageProvider("MxcImage", imgProvider); + view->engine()->addImageProvider("colorimage", colorImgProvider); view->setSource(QUrl("qrc:///qml/TimelineView.qml")); connect(dynamic_cast<ChatPage *>(parent), diff --git a/src/timeline2/TimelineViewManager.h b/src/timeline2/TimelineViewManager.h
index b14e78ff..691c8ddb 100644 --- a/src/timeline2/TimelineViewManager.h +++ b/src/timeline2/TimelineViewManager.h
@@ -1,6 +1,7 @@ #pragma once #include <QQuickView> +#include <QQuickWidget> #include <QSharedPointer> #include <QWidget> @@ -16,6 +17,7 @@ #pragma GCC diagnostic ignored "-Wunused-parameter" class MxcImageProvider; +class ColorImageProvider; class TimelineViewManager : public QObject { @@ -99,10 +101,15 @@ public slots: uint64_t dsize); private: +#ifdef USE_QUICK_VIEW QQuickView *view; +#else + QQuickWidget *view; +#endif QWidget *container; TimelineModel *timeline_ = nullptr; MxcImageProvider *imgProvider; + ColorImageProvider *colorImgProvider; QHash<QString, QSharedPointer<TimelineModel>> models; };