diff --git a/flameshot.pro b/flameshot.pro index 11b7b0c7..0c274ac7 100644 --- a/flameshot.pro +++ b/flameshot.pro @@ -87,6 +87,7 @@ SOURCES += src/main.cpp \ src/config/filepathconfiguration.cpp \ src/config/setshortcutwidget.cpp \ src/config/shortcutswidget.cpp \ + src/tools/storage/imguploadertool.cpp \ src/tools/storage/storagemanager.cpp \ src/utils/configshortcuts.cpp \ src/widgets/historywidget.cpp \ @@ -173,6 +174,7 @@ HEADERS += src/widgets/capture/buttonhandler.h \ src/config/setshortcutwidget.h \ src/config/shortcutswidget.h \ src/tools/storage/imgstorages.h \ + src/tools/storage/imguploadertool.h \ src/tools/storage/storagemanager.h \ src/utils/configshortcuts.h \ src/widgets/historywidget.h \ diff --git a/src/tools/storage/imguploadertool.cpp b/src/tools/storage/imguploadertool.cpp new file mode 100644 index 00000000..2f4c62f3 --- /dev/null +++ b/src/tools/storage/imguploadertool.cpp @@ -0,0 +1,36 @@ +#include "imguploadertool.h" + +ImgUploaderTool::ImgUploaderTool(QObject* parent) + : AbstractActionTool(parent) +{ + +} + +void ImgUploaderTool::setCapture(const QPixmap& pixmap) +{ + m_capture = pixmap; +} + +void ImgUploaderTool::pressed(const CaptureContext& context) +{ + m_capture = context.selectedScreenshotArea(); + emit requestAction(REQ_CAPTURE_DONE_OK); + emit requestAction(REQ_ADD_EXTERNAL_WIDGETS); +} + +const QPixmap& ImgUploaderTool::capture() { + return m_capture; +} + +QIcon ImgUploaderTool::icon(const QColor& background, bool inEditor) const +{ + Q_UNUSED(inEditor); + return QIcon(iconPath(background) + "cloud-upload.svg"); +} + + +bool ImgUploaderTool::closeOnButtonPressed() const +{ + return true; +} + diff --git a/src/tools/storage/imguploadertool.h b/src/tools/storage/imguploadertool.h new file mode 100644 index 00000000..760f4884 --- /dev/null +++ b/src/tools/storage/imguploadertool.h @@ -0,0 +1,27 @@ +#ifndef IMGUPLOADERTOOL_H +#define IMGUPLOADERTOOL_H + +#include "src/tools/abstractactiontool.h" + + +class ImgUploaderTool : public AbstractActionTool +{ + Q_OBJECT +public: + explicit ImgUploaderTool(QObject* parent = nullptr); + + bool closeOnButtonPressed() const; + + QIcon icon(const QColor& background, bool inEditor) const override; + + void setCapture(const QPixmap& pixmap); + const QPixmap& capture(); + +public slots: + void pressed(const CaptureContext& context) override; + +private: + QPixmap m_capture; +}; + +#endif // IMGUPLOADERTOOL_H diff --git a/src/tools/storage/imgur/imguruploadertool.cpp b/src/tools/storage/imgur/imguruploadertool.cpp index 44dabf4a..6c534a57 100644 --- a/src/tools/storage/imgur/imguruploadertool.cpp +++ b/src/tools/storage/imgur/imguruploadertool.cpp @@ -20,20 +20,9 @@ #include ImgurUploaderTool::ImgurUploaderTool(QObject* parent) - : AbstractActionTool(parent) + : ImgUploaderTool(parent) {} -bool ImgurUploaderTool::closeOnButtonPressed() const -{ - return true; -} - -QIcon ImgurUploaderTool::icon(const QColor& background, bool inEditor) const -{ - Q_UNUSED(inEditor); - return QIcon(iconPath(background) + "cloud-upload.svg"); -} - QString ImgurUploaderTool::name() const { return tr("Image Uploader"); @@ -51,24 +40,12 @@ QString ImgurUploaderTool::description() const QWidget* ImgurUploaderTool::widget() { - ImgurUploader* p = new ImgurUploader(capture); + ImgurUploader* p = new ImgurUploader(capture()); p->upload(); return p; } -void ImgurUploaderTool::setCapture(const QPixmap& pixmap) -{ - capture = pixmap; -} - CaptureTool* ImgurUploaderTool::copy(QObject* parent) { return new ImgurUploaderTool(parent); } - -void ImgurUploaderTool::pressed(const CaptureContext& context) -{ - capture = context.selectedScreenshotArea(); - emit requestAction(REQ_CAPTURE_DONE_OK); - emit requestAction(REQ_ADD_EXTERNAL_WIDGETS); -} diff --git a/src/tools/storage/imgur/imguruploadertool.h b/src/tools/storage/imgur/imguruploadertool.h index 8ce93082..d9bf74ed 100644 --- a/src/tools/storage/imgur/imguruploadertool.h +++ b/src/tools/storage/imgur/imguruploadertool.h @@ -17,17 +17,14 @@ #pragma once -#include "src/tools/abstractactiontool.h" +#include "src/tools/storage/imguploadertool.h" -class ImgurUploaderTool : public AbstractActionTool +class ImgurUploaderTool : public ImgUploaderTool { Q_OBJECT public: explicit ImgurUploaderTool(QObject* parent = nullptr); - bool closeOnButtonPressed() const; - - QIcon icon(const QColor& background, bool inEditor) const override; QString name() const override; static QString nameID(); QString description() const override; @@ -35,11 +32,4 @@ public: QWidget* widget() override; CaptureTool* copy(QObject* parent = nullptr) override; - void setCapture(const QPixmap&); - -public slots: - void pressed(const CaptureContext& context) override; - -private: - QPixmap capture; }; diff --git a/src/tools/storage/s3/imgs3uploadertool.cpp b/src/tools/storage/s3/imgs3uploadertool.cpp index e1694470..56ddaed4 100644 --- a/src/tools/storage/s3/imgs3uploadertool.cpp +++ b/src/tools/storage/s3/imgs3uploadertool.cpp @@ -20,20 +20,9 @@ #include ImgS3UploaderTool::ImgS3UploaderTool(QObject* parent) - : AbstractActionTool(parent) + : ImgUploaderTool(parent) {} -bool ImgS3UploaderTool::closeOnButtonPressed() const -{ - return true; -} - -QIcon ImgS3UploaderTool::icon(const QColor& background, bool inEditor) const -{ - Q_UNUSED(inEditor); - return QIcon(iconPath(background) + "cloud-upload.svg"); -} - QString ImgS3UploaderTool::name() const { return tr("Image Uploader"); @@ -51,24 +40,12 @@ QString ImgS3UploaderTool::description() const QWidget* ImgS3UploaderTool::widget() { - ImgS3Uploader* p = new ImgS3Uploader(capture); + ImgS3Uploader* p = new ImgS3Uploader(capture()); p->upload(); return p; } -void ImgS3UploaderTool::setCapture(const QPixmap& pixmap) -{ - capture = pixmap; -} - CaptureTool* ImgS3UploaderTool::copy(QObject* parent) { return new ImgS3UploaderTool(parent); } - -void ImgS3UploaderTool::pressed(const CaptureContext& context) -{ - capture = context.selectedScreenshotArea(); - emit requestAction(REQ_CAPTURE_DONE_OK); - emit requestAction(REQ_ADD_EXTERNAL_WIDGETS); -} diff --git a/src/tools/storage/s3/imgs3uploadertool.h b/src/tools/storage/s3/imgs3uploadertool.h index 4d5bdbc9..d1ee8afa 100644 --- a/src/tools/storage/s3/imgs3uploadertool.h +++ b/src/tools/storage/s3/imgs3uploadertool.h @@ -17,17 +17,14 @@ #pragma once -#include "src/tools/abstractactiontool.h" +#include "src/tools/storage/imguploadertool.h" -class ImgS3UploaderTool : public AbstractActionTool +class ImgS3UploaderTool : public ImgUploaderTool { Q_OBJECT public: explicit ImgS3UploaderTool(QObject* parent = nullptr); - bool closeOnButtonPressed() const; - - QIcon icon(const QColor& background, bool inEditor) const override; QString name() const override; static QString nameID(); QString description() const override; @@ -35,11 +32,4 @@ public: QWidget* widget() override; CaptureTool* copy(QObject* parent = nullptr) override; - void setCapture(const QPixmap& pixmap); - -public slots: - void pressed(const CaptureContext& context) override; - -private: - QPixmap capture; };