From 00b1088997294bdc6eb48d23baab47e68dfb6cb7 Mon Sep 17 00:00:00 2001 From: Andrea Date: Sat, 22 Jan 2022 15:51:16 +0000 Subject: [PATCH] Added 'Save to disk' button when uploading to imgur (#2237) --- .../imgupload/storages/imguploaderbase.cpp | 18 ++++++++++++++++++ src/tools/imgupload/storages/imguploaderbase.h | 2 ++ 2 files changed, 20 insertions(+) diff --git a/src/tools/imgupload/storages/imguploaderbase.cpp b/src/tools/imgupload/storages/imguploaderbase.cpp index 6eee3c1a..b36ccb18 100644 --- a/src/tools/imgupload/storages/imguploaderbase.cpp +++ b/src/tools/imgupload/storages/imguploaderbase.cpp @@ -6,6 +6,7 @@ #include "src/utils/confighandler.h" #include "src/utils/globalvalues.h" #include "src/utils/history.h" +#include "src/utils/screenshotsaver.h" #include "src/widgets/imagelabel.h" #include "src/widgets/loadspinner.h" #include "src/widgets/notificationwidget.h" @@ -130,10 +131,12 @@ void ImgUploaderBase::showPostUploadDialog() m_openUrlButton = new QPushButton(tr("Open URL")); m_openDeleteUrlButton = new QPushButton(tr("Delete image")); m_toClipboardButton = new QPushButton(tr("Image to Clipboard.")); + m_saveToFilesystemButton = new QPushButton(tr("Save image")); m_hLayout->addWidget(m_copyUrlButton); m_hLayout->addWidget(m_openUrlButton); m_hLayout->addWidget(m_openDeleteUrlButton); m_hLayout->addWidget(m_toClipboardButton); + m_hLayout->addWidget(m_saveToFilesystemButton); connect( m_copyUrlButton, &QPushButton::clicked, this, &ImgUploaderBase::copyURL); @@ -147,6 +150,11 @@ void ImgUploaderBase::showPostUploadDialog() &QPushButton::clicked, this, &ImgUploaderBase::copyImage); + + QObject::connect(m_saveToFilesystemButton, + &QPushButton::clicked, + this, + &ImgUploaderBase::saveScreenshotToFilesystem); } void ImgUploaderBase::openURL() @@ -176,3 +184,13 @@ void ImgUploaderBase::deleteCurrentImage() history.unpackFileName(m_currentImageName); deleteImage(unpackFileName.file, unpackFileName.token); } + +void ImgUploaderBase::saveScreenshotToFilesystem() +{ + if (!ScreenshotSaver().saveToFilesystemGUI(m_pixmap)) { + m_notification->showMessage( + tr("Unable to save the screenshot to disk.")); + return; + } + m_notification->showMessage(tr("Screenshot saved.")); +} diff --git a/src/tools/imgupload/storages/imguploaderbase.h b/src/tools/imgupload/storages/imguploaderbase.h index 09316b8a..44cd0512 100644 --- a/src/tools/imgupload/storages/imguploaderbase.h +++ b/src/tools/imgupload/storages/imguploaderbase.h @@ -48,6 +48,7 @@ private slots: void copyURL(); void copyImage(); void deleteCurrentImage(); + void saveScreenshotToFilesystem(); private: QPixmap m_pixmap; @@ -62,6 +63,7 @@ private: QPushButton* m_openDeleteUrlButton; QPushButton* m_copyUrlButton; QPushButton* m_toClipboardButton; + QPushButton* m_saveToFilesystemButton; QUrl m_imageURL; NotificationWidget* m_notification;