summary refs log tree commit diff
path: root/src/timeline/widgets
diff options
context:
space:
mode:
authorKonstantinos Sideris <sideris.konstantin@gmail.com>2018-03-14 21:31:09 +0200
committerKonstantinos Sideris <sideris.konstantin@gmail.com>2018-03-14 21:31:09 +0200
commit511c58d608eeec4899cff4d016d4d5d99fbff36f (patch)
tree69ca9bfee8df013ff31a63a7daaf49e1b51e5000 /src/timeline/widgets
parentFix CI builds (diff)
downloadnheko-511c58d608eeec4899cff4d016d4d5d99fbff36f.tar.xz
Add context menu option to save images
fixes #265
Diffstat (limited to 'src/timeline/widgets')
-rw-r--r--src/timeline/widgets/ImageItem.cc30
1 files changed, 30 insertions, 0 deletions
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 <QBrush> #include <QDebug> #include <QDesktopServices> +#include <QFileDialog> #include <QFileInfo> #include <QPainter> #include <QPixmap> @@ -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(); + } + }); +}