summary refs log tree commit diff
path: root/src/timeline2/TimelineViewManager.cpp
diff options
context:
space:
mode:
authorNicolas Werner <nicolas.werner@hotmail.de>2019-09-28 11:07:58 +0200
committerNicolas Werner <nicolas.werner@hotmail.de>2019-11-23 20:06:14 +0100
commit9b18440b4f989da4fcd764f33291d17dbbcb82e3 (patch)
tree968354719b88c8a94edf7d3c557d4ad6916ea9ff /src/timeline2/TimelineViewManager.cpp
parentAdd lock to encrypted messages (diff)
downloadnheko-9b18440b4f989da4fcd764f33291d17dbbcb82e3.tar.xz
Reenable ImageOverlay
Diffstat (limited to 'src/timeline2/TimelineViewManager.cpp')
-rw-r--r--src/timeline2/TimelineViewManager.cpp25
1 files changed, 24 insertions, 1 deletions
diff --git a/src/timeline2/TimelineViewManager.cpp b/src/timeline2/TimelineViewManager.cpp

index 18297370..bf09ef5a 100644 --- a/src/timeline2/TimelineViewManager.cpp +++ b/src/timeline2/TimelineViewManager.cpp
@@ -5,8 +5,10 @@ #include "Logging.h" #include "MxcImageProvider.h" +#include "dialogs/ImageOverlay.h" TimelineViewManager::TimelineViewManager(QWidget *parent) + : imgProvider(new MxcImageProvider()) { qmlRegisterUncreatableMetaObject(qml_mtx_events::staticMetaObject, "com.github.nheko", @@ -18,7 +20,7 @@ TimelineViewManager::TimelineViewManager(QWidget *parent) container = QWidget::createWindowContainer(view, parent); container->setMinimumSize(200, 200); view->rootContext()->setContextProperty("timelineManager", this); - view->engine()->addImageProvider("MxcImage", new MxcImageProvider()); + view->engine()->addImageProvider("MxcImage", imgProvider); view->setSource(QUrl("qrc:///qml/TimelineView.qml")); } @@ -53,6 +55,27 @@ TimelineViewManager::setHistoryView(const QString &room_id) } void +TimelineViewManager::openImageOverlay(QString url) const +{ + QQuickImageResponse *imgResponse = + imgProvider->requestImageResponse(url.remove("image://mxcimage/"), QSize()); + connect(imgResponse, &QQuickImageResponse::finished, this, [imgResponse]() { + if (!imgResponse->errorString().isEmpty()) { + nhlog::ui()->error("Error when retrieving image for overlay: {}", + imgResponse->errorString().toStdString()); + return; + } + auto pixmap = QPixmap::fromImage(imgResponse->textureFactory()->image()); + + auto imgDialog = new dialogs::ImageOverlay(pixmap); + imgDialog->show(); + // connect(imgDialog, &dialogs::ImageOverlay::saving, this, + // &ImageItem::saveAs); + Q_UNUSED(imgDialog); + }); +} + +void TimelineViewManager::updateReadReceipts(const QString &room_id, const std::vector<QString> &event_ids) {