From 511c58d608eeec4899cff4d016d4d5d99fbff36f Mon Sep 17 00:00:00 2001 From: Konstantinos Sideris Date: Wed, 14 Mar 2018 21:31:09 +0200 Subject: Add context menu option to save images fixes #265 --- src/timeline/widgets/ImageItem.cc | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'src/timeline/widgets') diff --git a/src/timeline/widgets/ImageItem.cc b/src/timeline/widgets/ImageItem.cc index 2784f386..d28a4017 100644 --- a/src/timeline/widgets/ImageItem.cc +++ b/src/timeline/widgets/ImageItem.cc @@ -18,6 +18,7 @@ #include #include #include +#include #include #include #include @@ -219,3 +220,32 @@ ImageItem::paintEvent(QPaintEvent *event) painter.drawText(textRegion_, Qt::AlignVCenter, elidedText); } } + +void +ImageItem::saveAs() +{ + auto filename = QFileDialog::getSaveFileName(this, tr("Save image"), text_); + + if (filename.isEmpty()) + return; + + auto proxy = client_->downloadFile(url_); + connect(proxy, + &DownloadMediaProxy::fileDownloaded, + this, + [proxy, this, filename](const QByteArray &data) { + proxy->deleteLater(); + + try { + QFile file(filename); + + if (!file.open(QIODevice::WriteOnly)) + return; + + file.write(data); + file.close(); + } catch (const std::exception &ex) { + qDebug() << "Error while saving file to:" << ex.what(); + } + }); +} -- cgit 1.5.1