From 6afa3ca26a465294d0ee5531a78668d82dda8548 Mon Sep 17 00:00:00 2001 From: Jeremy Borgman Date: Mon, 7 Sep 2020 14:47:49 -0500 Subject: [PATCH] Made undo tool aware of circle count to decrement. Refactored tool ID's to be enum --- src/tools/abstractactiontool.h | 3 ++ src/tools/abstractpathtool.h | 2 ++ src/tools/abstracttwopointtool.cpp | 3 ++ src/tools/abstracttwopointtool.h | 2 ++ src/tools/arrow/arrowtool.cpp | 6 ++-- src/tools/arrow/arrowtool.h | 4 ++- src/tools/capturetool.h | 28 ++++++++++++++++++- src/tools/circle/circletool.cpp | 6 ++-- src/tools/circle/circletool.h | 4 ++- src/tools/circlecount/circlecounttool.cpp | 6 ++-- src/tools/circlecount/circlecounttool.h | 4 ++- src/tools/copy/copytool.cpp | 6 ++-- src/tools/copy/copytool.h | 4 ++- src/tools/exit/exittool.cpp | 6 ++-- src/tools/exit/exittool.h | 4 ++- src/tools/imgur/imguruploadertool.cpp | 6 ++-- src/tools/imgur/imguruploadertool.h | 4 ++- src/tools/launcher/applaunchertool.cpp | 6 ++-- src/tools/launcher/applaunchertool.h | 4 ++- src/tools/line/linetool.cpp | 6 ++-- src/tools/line/linetool.h | 4 ++- src/tools/marker/markertool.cpp | 6 ++-- src/tools/marker/markertool.h | 4 ++- src/tools/move/movetool.cpp | 6 ++-- src/tools/move/movetool.h | 2 +- src/tools/pencil/penciltool.cpp | 6 ++-- src/tools/pencil/penciltool.h | 4 ++- src/tools/pin/pintool.cpp | 6 ++-- src/tools/pin/pintool.h | 4 ++- src/tools/pixelate/pixelatetool.cpp | 6 ++-- src/tools/pixelate/pixelatetool.h | 4 ++- src/tools/rectangle/rectangletool.cpp | 6 ++-- src/tools/rectangle/rectangletool.h | 4 ++- src/tools/redo/redotool.cpp | 6 ++-- src/tools/redo/redotool.h | 4 ++- src/tools/save/savetool.cpp | 6 ++-- src/tools/save/savetool.h | 4 ++- src/tools/selection/selectiontool.cpp | 6 ++-- src/tools/selection/selectiontool.h | 4 ++- src/tools/sizeindicator/sizeindicatortool.cpp | 6 ++-- src/tools/sizeindicator/sizeindicatortool.h | 4 ++- src/tools/text/texttool.cpp | 6 ++-- src/tools/text/texttool.h | 4 ++- src/tools/undo/undotool.cpp | 6 ++-- src/tools/undo/undotool.h | 4 ++- src/widgets/capture/capturewidget.cpp | 10 +++++++ src/widgets/capture/capturewidget.h | 1 + 47 files changed, 166 insertions(+), 81 deletions(-) diff --git a/src/tools/abstractactiontool.h b/src/tools/abstractactiontool.h index 815c5276..d8144adb 100644 --- a/src/tools/abstractactiontool.h +++ b/src/tools/abstractactiontool.h @@ -36,6 +36,9 @@ public: void paintMousePreview(QPainter& painter, const CaptureContext& context) override; +protected: + virtual ToolType nameID() const = 0; + public slots: void drawEnd(const QPoint& p) override; void drawMove(const QPoint& p) override; diff --git a/src/tools/abstractpathtool.h b/src/tools/abstractpathtool.h index fcff6846..a5c7a58c 100644 --- a/src/tools/abstractpathtool.h +++ b/src/tools/abstractpathtool.h @@ -42,6 +42,8 @@ protected: void updateBackup(const QPixmap& pixmap); void addPoint(const QPoint& point); + virtual ToolType nameID() const = 0; + QPixmap m_pixmapBackup; QRect m_backupArea; QColor m_color; diff --git a/src/tools/abstracttwopointtool.cpp b/src/tools/abstracttwopointtool.cpp index b8f47799..7a4463b1 100644 --- a/src/tools/abstracttwopointtool.cpp +++ b/src/tools/abstracttwopointtool.cpp @@ -77,6 +77,9 @@ AbstractTwoPointTool::undo(QPixmap& pixmap) { QPainter p(&pixmap); p.drawPixmap(backupRect(pixmap.rect()).topLeft(), m_pixmapBackup); + if (this->nameID() == ToolType::CIRCLECOUNT) { + emit requestAction(REQ_DECREMENT_CIRCLE_COUNT); + } } void diff --git a/src/tools/abstracttwopointtool.h b/src/tools/abstracttwopointtool.h index 5e512a25..f6200ea9 100644 --- a/src/tools/abstracttwopointtool.h +++ b/src/tools/abstracttwopointtool.h @@ -53,6 +53,8 @@ protected: bool m_supportsOrthogonalAdj = false; bool m_supportsDiagonalAdj = false; + virtual ToolType nameID() const = 0; + private: QPoint adjustedVector(QPoint v) const; }; diff --git a/src/tools/arrow/arrowtool.cpp b/src/tools/arrow/arrowtool.cpp index 4603279f..bf2a859a 100644 --- a/src/tools/arrow/arrowtool.cpp +++ b/src/tools/arrow/arrowtool.cpp @@ -92,10 +92,10 @@ ArrowTool::name() const return tr("Arrow"); } -QString -ArrowTool::nameID() +ToolType +ArrowTool::nameID() const { - return QLatin1String(""); + return ToolType::ARROW; } QString diff --git a/src/tools/arrow/arrowtool.h b/src/tools/arrow/arrowtool.h index dd7db9e3..0b747cdd 100644 --- a/src/tools/arrow/arrowtool.h +++ b/src/tools/arrow/arrowtool.h @@ -29,7 +29,6 @@ public: QIcon icon(const QColor& background, bool inEditor) const override; QString name() const override; - static QString nameID(); QString description() const override; CaptureTool* copy(QObject* parent = nullptr) override; @@ -39,6 +38,9 @@ public: void paintMousePreview(QPainter& painter, const CaptureContext& context) override; +protected: + ToolType nameID() const override; + public slots: void drawStart(const CaptureContext& context) override; void pressed(const CaptureContext& context) override; diff --git a/src/tools/capturetool.h b/src/tools/capturetool.h index 2deb2081..9186f5ab 100644 --- a/src/tools/capturetool.h +++ b/src/tools/capturetool.h @@ -23,6 +23,30 @@ #include #include +enum class ToolType +{ + ARROW, + CIRCLE, + CIRCLECOUNT, + COPY, + EXIT, + IMGUR, + LAUNCHER, + LINE, + MARKER, + MOVE, + PENCIL, + PIN, + PIXELATE, + RECTANGLE, + REDO, + SAVE, + SELECTION, + SIZEINDICATOR, + TEXT, + UNDO +}; + class CaptureTool : public QObject { Q_OBJECT @@ -66,6 +90,8 @@ public: REQ_ADD_EXTERNAL_WIDGETS, REQ_INCREMENT_CIRCLE_COUNT, + + REQ_DECREMENT_CIRCLE_COUNT, }; explicit CaptureTool(QObject* parent = nullptr) @@ -91,7 +117,7 @@ public: virtual QString name() const = 0; // Codename for the tool, this hsouldn't change as it is used as ID // for the tool in the internals of Flameshot - static QString nameID(); + virtual ToolType nameID() const = 0; // Short description of the tool. virtual QString description() const = 0; diff --git a/src/tools/circle/circletool.cpp b/src/tools/circle/circletool.cpp index 4c4f6491..539f5293 100644 --- a/src/tools/circle/circletool.cpp +++ b/src/tools/circle/circletool.cpp @@ -40,10 +40,10 @@ CircleTool::name() const return tr("Circle"); } -QString -CircleTool::nameID() +ToolType +CircleTool::nameID() const { - return QLatin1String(""); + return ToolType::CIRCLE; } QString diff --git a/src/tools/circle/circletool.h b/src/tools/circle/circletool.h index 3a42b980..9d6f610c 100644 --- a/src/tools/circle/circletool.h +++ b/src/tools/circle/circletool.h @@ -27,7 +27,6 @@ public: QIcon icon(const QColor& background, bool inEditor) const override; QString name() const override; - static QString nameID(); QString description() const override; CaptureTool* copy(QObject* parent = nullptr) override; @@ -37,6 +36,9 @@ public: void paintMousePreview(QPainter& painter, const CaptureContext& context) override; +protected: + ToolType nameID() const override; + public slots: void drawStart(const CaptureContext& context) override; void pressed(const CaptureContext& context) override; diff --git a/src/tools/circlecount/circlecounttool.cpp b/src/tools/circlecount/circlecounttool.cpp index 742a637e..c60666d7 100644 --- a/src/tools/circlecount/circlecounttool.cpp +++ b/src/tools/circlecount/circlecounttool.cpp @@ -39,10 +39,10 @@ CircleCountTool::name() const return tr("Circle Counter"); } -QString -CircleCountTool::nameID() +ToolType +CircleCountTool::nameID() const { - return QLatin1String(""); + return ToolType::CIRCLECOUNT; } QString diff --git a/src/tools/circlecount/circlecounttool.h b/src/tools/circlecount/circlecounttool.h index 7087a4b2..ed51fcc4 100644 --- a/src/tools/circlecount/circlecounttool.h +++ b/src/tools/circlecount/circlecounttool.h @@ -27,7 +27,6 @@ public: QIcon icon(const QColor& background, bool inEditor) const override; QString name() const override; - static QString nameID(); QString description() const override; CaptureTool* copy(QObject* parent = nullptr) override; @@ -37,6 +36,9 @@ public: void paintMousePreview(QPainter& painter, const CaptureContext& context) override; +protected: + ToolType nameID() const override; + private: unsigned int m_count; public slots: diff --git a/src/tools/copy/copytool.cpp b/src/tools/copy/copytool.cpp index 1b2eb3c2..88829532 100644 --- a/src/tools/copy/copytool.cpp +++ b/src/tools/copy/copytool.cpp @@ -41,10 +41,10 @@ CopyTool::name() const return tr("Copy"); } -QString -CopyTool::nameID() +ToolType +CopyTool::nameID() const { - return QLatin1String(""); + return ToolType::COPY; } QString diff --git a/src/tools/copy/copytool.h b/src/tools/copy/copytool.h index 42727fdc..b6fd3b62 100644 --- a/src/tools/copy/copytool.h +++ b/src/tools/copy/copytool.h @@ -29,11 +29,13 @@ public: QIcon icon(const QColor& background, bool inEditor) const override; QString name() const override; - static QString nameID(); QString description() const override; CaptureTool* copy(QObject* parent = nullptr) override; +protected: + ToolType nameID() const override; + public slots: void pressed(const CaptureContext& context) override; }; diff --git a/src/tools/exit/exittool.cpp b/src/tools/exit/exittool.cpp index 53fb5725..00557158 100644 --- a/src/tools/exit/exittool.cpp +++ b/src/tools/exit/exittool.cpp @@ -40,10 +40,10 @@ ExitTool::name() const return tr("Exit"); } -QString -ExitTool::nameID() +ToolType +ExitTool::nameID() const { - return QLatin1String(""); + return ToolType::EXIT; } QString diff --git a/src/tools/exit/exittool.h b/src/tools/exit/exittool.h index 62a1cbbf..af77c43f 100644 --- a/src/tools/exit/exittool.h +++ b/src/tools/exit/exittool.h @@ -29,11 +29,13 @@ public: QIcon icon(const QColor& background, bool inEditor) const override; QString name() const override; - static QString nameID(); QString description() const override; CaptureTool* copy(QObject* parent = nullptr) override; +protected: + ToolType nameID() const override; + public slots: void pressed(const CaptureContext& context) override; }; diff --git a/src/tools/imgur/imguruploadertool.cpp b/src/tools/imgur/imguruploadertool.cpp index 7d5185dc..60763f43 100644 --- a/src/tools/imgur/imguruploadertool.cpp +++ b/src/tools/imgur/imguruploadertool.cpp @@ -41,10 +41,10 @@ ImgurUploaderTool::name() const return tr("Image Uploader"); } -QString -ImgurUploaderTool::nameID() +ToolType +ImgurUploaderTool::nameID() const { - return QLatin1String(""); + return ToolType::IMGUR; } QString diff --git a/src/tools/imgur/imguruploadertool.h b/src/tools/imgur/imguruploadertool.h index 4a27b61a..ad23be98 100644 --- a/src/tools/imgur/imguruploadertool.h +++ b/src/tools/imgur/imguruploadertool.h @@ -29,13 +29,15 @@ public: QIcon icon(const QColor& background, bool inEditor) const override; QString name() const override; - static QString nameID(); QString description() const override; QWidget* widget() override; CaptureTool* copy(QObject* parent = nullptr) override; +protected: + ToolType nameID() const override; + public slots: void pressed(const CaptureContext& context) override; diff --git a/src/tools/launcher/applaunchertool.cpp b/src/tools/launcher/applaunchertool.cpp index cff4a04f..e521f5eb 100644 --- a/src/tools/launcher/applaunchertool.cpp +++ b/src/tools/launcher/applaunchertool.cpp @@ -40,10 +40,10 @@ AppLauncher::name() const return tr("App Launcher"); } -QString -AppLauncher::nameID() +ToolType +AppLauncher::nameID() const { - return QLatin1String(""); + return ToolType::LAUNCHER; } QString diff --git a/src/tools/launcher/applaunchertool.h b/src/tools/launcher/applaunchertool.h index 1527b95a..f2b85e55 100644 --- a/src/tools/launcher/applaunchertool.h +++ b/src/tools/launcher/applaunchertool.h @@ -29,13 +29,15 @@ public: QIcon icon(const QColor& background, bool inEditor) const override; QString name() const override; - static QString nameID(); QString description() const override; QWidget* widget() override; CaptureTool* copy(QObject* parent = nullptr) override; +protected: + ToolType nameID() const override; + public slots: void pressed(const CaptureContext& context) override; diff --git a/src/tools/line/linetool.cpp b/src/tools/line/linetool.cpp index 9231a869..de15ae91 100644 --- a/src/tools/line/linetool.cpp +++ b/src/tools/line/linetool.cpp @@ -43,10 +43,10 @@ LineTool::name() const return tr("Line"); } -QString -LineTool::nameID() +ToolType +LineTool::nameID() const { - return QLatin1String(""); + return ToolType::LINE; } QString diff --git a/src/tools/line/linetool.h b/src/tools/line/linetool.h index 90bc98d7..02b63792 100644 --- a/src/tools/line/linetool.h +++ b/src/tools/line/linetool.h @@ -27,7 +27,6 @@ public: QIcon icon(const QColor& background, bool inEditor) const override; QString name() const override; - static QString nameID(); QString description() const override; CaptureTool* copy(QObject* parent = nullptr) override; @@ -37,6 +36,9 @@ public: void paintMousePreview(QPainter& painter, const CaptureContext& context) override; +protected: + ToolType nameID() const override; + public slots: void drawStart(const CaptureContext& context) override; void pressed(const CaptureContext& context) override; diff --git a/src/tools/marker/markertool.cpp b/src/tools/marker/markertool.cpp index 8f899f8b..135f6db2 100644 --- a/src/tools/marker/markertool.cpp +++ b/src/tools/marker/markertool.cpp @@ -43,10 +43,10 @@ MarkerTool::name() const return tr("Marker"); } -QString -MarkerTool::nameID() +ToolType +MarkerTool::nameID() const { - return QLatin1String(""); + return ToolType::MARKER; } QString diff --git a/src/tools/marker/markertool.h b/src/tools/marker/markertool.h index d243a544..7c1b378c 100644 --- a/src/tools/marker/markertool.h +++ b/src/tools/marker/markertool.h @@ -27,7 +27,6 @@ public: QIcon icon(const QColor& background, bool inEditor) const override; QString name() const override; - static QString nameID(); QString description() const override; CaptureTool* copy(QObject* parent = nullptr) override; @@ -37,6 +36,9 @@ public: void paintMousePreview(QPainter& painter, const CaptureContext& context) override; +protected: + ToolType nameID() const override; + public slots: void drawStart(const CaptureContext& context) override; void pressed(const CaptureContext& context) override; diff --git a/src/tools/move/movetool.cpp b/src/tools/move/movetool.cpp index 3dbd4bf1..5b7f15ca 100644 --- a/src/tools/move/movetool.cpp +++ b/src/tools/move/movetool.cpp @@ -40,10 +40,10 @@ MoveTool::name() const return tr("Move"); } -QString -MoveTool::nameID() +ToolType +MoveTool::nameID() const { - return QLatin1String(""); + return ToolType::MOVE; } QString diff --git a/src/tools/move/movetool.h b/src/tools/move/movetool.h index c1f64464..358f19f8 100644 --- a/src/tools/move/movetool.h +++ b/src/tools/move/movetool.h @@ -29,7 +29,7 @@ public: QIcon icon(const QColor& background, bool inEditor) const override; QString name() const override; - static QString nameID(); + ToolType nameID() const override; QString description() const override; CaptureTool* copy(QObject* parent = nullptr) override; diff --git a/src/tools/pencil/penciltool.cpp b/src/tools/pencil/penciltool.cpp index 1225a1da..74d4ea89 100644 --- a/src/tools/pencil/penciltool.cpp +++ b/src/tools/pencil/penciltool.cpp @@ -34,10 +34,10 @@ PencilTool::name() const return tr("Pencil"); } -QString -PencilTool::nameID() +ToolType +PencilTool::nameID() const { - return QLatin1String(""); + return ToolType::PENCIL; } QString diff --git a/src/tools/pencil/penciltool.h b/src/tools/pencil/penciltool.h index 89dce824..fabba6bd 100644 --- a/src/tools/pencil/penciltool.h +++ b/src/tools/pencil/penciltool.h @@ -27,7 +27,6 @@ public: QIcon icon(const QColor& background, bool inEditor) const override; QString name() const override; - static QString nameID(); QString description() const override; CaptureTool* copy(QObject* parent = nullptr) override; @@ -38,6 +37,9 @@ public: void paintMousePreview(QPainter& painter, const CaptureContext& context) override; +protected: + ToolType nameID() const override; + public slots: void drawStart(const CaptureContext& context) override; void pressed(const CaptureContext& context) override; diff --git a/src/tools/pin/pintool.cpp b/src/tools/pin/pintool.cpp index 54b10af4..455443df 100644 --- a/src/tools/pin/pintool.cpp +++ b/src/tools/pin/pintool.cpp @@ -40,10 +40,10 @@ PinTool::name() const return tr("Pin Tool"); } -QString -PinTool::nameID() +ToolType +PinTool::nameID() const { - return QLatin1String(""); + return ToolType::PIN; } QString diff --git a/src/tools/pin/pintool.h b/src/tools/pin/pintool.h index e4c911f4..7ff993c3 100644 --- a/src/tools/pin/pintool.h +++ b/src/tools/pin/pintool.h @@ -29,13 +29,15 @@ public: QIcon icon(const QColor& background, bool inEditor) const override; QString name() const override; - static QString nameID(); QString description() const override; QWidget* widget() override; CaptureTool* copy(QObject* parent = nullptr) override; +protected: + ToolType nameID() const override; + public slots: void pressed(const CaptureContext& context) override; diff --git a/src/tools/pixelate/pixelatetool.cpp b/src/tools/pixelate/pixelatetool.cpp index 9ac8881c..ff0389ec 100644 --- a/src/tools/pixelate/pixelatetool.cpp +++ b/src/tools/pixelate/pixelatetool.cpp @@ -39,10 +39,10 @@ PixelateTool::name() const return tr("Pixelate"); } -QString -PixelateTool::nameID() +ToolType +PixelateTool::nameID() const { - return QLatin1String(""); + return ToolType::PIXELATE; } QString diff --git a/src/tools/pixelate/pixelatetool.h b/src/tools/pixelate/pixelatetool.h index d1227af4..d1b1753f 100644 --- a/src/tools/pixelate/pixelatetool.h +++ b/src/tools/pixelate/pixelatetool.h @@ -27,7 +27,6 @@ public: QIcon icon(const QColor& background, bool inEditor) const override; QString name() const override; - static QString nameID(); QString description() const override; CaptureTool* copy(QObject* parent = nullptr) override; @@ -37,6 +36,9 @@ public: void paintMousePreview(QPainter& painter, const CaptureContext& context) override; +protected: + ToolType nameID() const override; + public slots: void drawStart(const CaptureContext& context) override; void pressed(const CaptureContext& context) override; diff --git a/src/tools/rectangle/rectangletool.cpp b/src/tools/rectangle/rectangletool.cpp index a1215f2e..0648d887 100644 --- a/src/tools/rectangle/rectangletool.cpp +++ b/src/tools/rectangle/rectangletool.cpp @@ -40,10 +40,10 @@ RectangleTool::name() const return tr("Rectangle"); } -QString -RectangleTool::nameID() +ToolType +RectangleTool::nameID() const { - return QLatin1String(""); + return ToolType::RECTANGLE; } QString diff --git a/src/tools/rectangle/rectangletool.h b/src/tools/rectangle/rectangletool.h index 3116d36f..2fe2a949 100644 --- a/src/tools/rectangle/rectangletool.h +++ b/src/tools/rectangle/rectangletool.h @@ -27,7 +27,6 @@ public: QIcon icon(const QColor& background, bool inEditor) const override; QString name() const override; - static QString nameID(); QString description() const override; CaptureTool* copy(QObject* parent = nullptr) override; @@ -37,6 +36,9 @@ public: void paintMousePreview(QPainter& painter, const CaptureContext& context) override; +protected: + ToolType nameID() const override; + public slots: void drawStart(const CaptureContext& context) override; void pressed(const CaptureContext& context) override; diff --git a/src/tools/redo/redotool.cpp b/src/tools/redo/redotool.cpp index 45ca5304..3aca17f0 100644 --- a/src/tools/redo/redotool.cpp +++ b/src/tools/redo/redotool.cpp @@ -40,10 +40,10 @@ RedoTool::name() const return tr("Redo"); } -QString -RedoTool::nameID() +ToolType +RedoTool::nameID() const { - return QLatin1String(""); + return ToolType::REDO; } QString diff --git a/src/tools/redo/redotool.h b/src/tools/redo/redotool.h index 876339a3..1900779c 100644 --- a/src/tools/redo/redotool.h +++ b/src/tools/redo/redotool.h @@ -29,11 +29,13 @@ public: QIcon icon(const QColor& background, bool inEditor) const override; QString name() const override; - static QString nameID(); QString description() const override; CaptureTool* copy(QObject* parent = nullptr) override; +protected: + ToolType nameID() const override; + public slots: void pressed(const CaptureContext& context) override; }; diff --git a/src/tools/save/savetool.cpp b/src/tools/save/savetool.cpp index 05832ec3..28a5a629 100644 --- a/src/tools/save/savetool.cpp +++ b/src/tools/save/savetool.cpp @@ -41,10 +41,10 @@ SaveTool::name() const return tr("Save"); } -QString -SaveTool::nameID() +ToolType +SaveTool::nameID() const { - return QLatin1String(""); + return ToolType::SAVE; } QString diff --git a/src/tools/save/savetool.h b/src/tools/save/savetool.h index f3887c14..3322ec53 100644 --- a/src/tools/save/savetool.h +++ b/src/tools/save/savetool.h @@ -29,11 +29,13 @@ public: QIcon icon(const QColor& background, bool inEditor) const override; QString name() const override; - static QString nameID(); QString description() const override; CaptureTool* copy(QObject* parent = nullptr) override; +protected: + ToolType nameID() const override; + public slots: void pressed(const CaptureContext& context) override; }; diff --git a/src/tools/selection/selectiontool.cpp b/src/tools/selection/selectiontool.cpp index 51d1ddcb..0fa45c11 100644 --- a/src/tools/selection/selectiontool.cpp +++ b/src/tools/selection/selectiontool.cpp @@ -46,10 +46,10 @@ SelectionTool::name() const return tr("Rectangular Selection"); } -QString -SelectionTool::nameID() +ToolType +SelectionTool::nameID() const { - return QLatin1String(""); + return ToolType::SELECTION; } QString diff --git a/src/tools/selection/selectiontool.h b/src/tools/selection/selectiontool.h index 9b124b5c..822ff47a 100644 --- a/src/tools/selection/selectiontool.h +++ b/src/tools/selection/selectiontool.h @@ -29,7 +29,6 @@ public: QIcon icon(const QColor& background, bool inEditor) const override; QString name() const override; - static QString nameID(); QString description() const override; CaptureTool* copy(QObject* parent = nullptr) override; @@ -39,6 +38,9 @@ public: void paintMousePreview(QPainter& painter, const CaptureContext& context) override; +protected: + ToolType nameID() const override; + public slots: void drawStart(const CaptureContext& context) override; void pressed(const CaptureContext& context) override; diff --git a/src/tools/sizeindicator/sizeindicatortool.cpp b/src/tools/sizeindicator/sizeindicatortool.cpp index bbb9ae01..cda7f761 100644 --- a/src/tools/sizeindicator/sizeindicatortool.cpp +++ b/src/tools/sizeindicator/sizeindicatortool.cpp @@ -40,10 +40,10 @@ SizeIndicatorTool::name() const return tr("Selection Size Indicator"); } -QString -SizeIndicatorTool::nameID() +ToolType +SizeIndicatorTool::nameID() const { - return QLatin1String(""); + return ToolType::SIZEINDICATOR; } QString diff --git a/src/tools/sizeindicator/sizeindicatortool.h b/src/tools/sizeindicator/sizeindicatortool.h index 966d4f57..af377811 100644 --- a/src/tools/sizeindicator/sizeindicatortool.h +++ b/src/tools/sizeindicator/sizeindicatortool.h @@ -29,11 +29,13 @@ public: QIcon icon(const QColor& background, bool inEditor) const override; QString name() const override; - static QString nameID(); QString description() const override; CaptureTool* copy(QObject* parent = nullptr) override; +protected: + ToolType nameID() const override; + public slots: void pressed(const CaptureContext& context) override; }; diff --git a/src/tools/text/texttool.cpp b/src/tools/text/texttool.cpp index 153deab4..81711f18 100644 --- a/src/tools/text/texttool.cpp +++ b/src/tools/text/texttool.cpp @@ -63,10 +63,10 @@ TextTool::name() const return tr("Text"); } -QString -TextTool::nameID() +ToolType +TextTool::nameID() const { - return QLatin1String(""); + return ToolType::TEXT; } QString diff --git a/src/tools/text/texttool.h b/src/tools/text/texttool.h index 29330888..4fba5c8b 100644 --- a/src/tools/text/texttool.h +++ b/src/tools/text/texttool.h @@ -36,7 +36,6 @@ public: QIcon icon(const QColor& background, bool inEditor) const override; QString name() const override; - static QString nameID(); QString description() const override; QWidget* widget() override; @@ -50,6 +49,9 @@ public: void paintMousePreview(QPainter& painter, const CaptureContext& context) override; +protected: + ToolType nameID() const override; + public slots: void drawEnd(const QPoint& p) override; void drawMove(const QPoint& p) override; diff --git a/src/tools/undo/undotool.cpp b/src/tools/undo/undotool.cpp index 9dde045f..217f19d7 100644 --- a/src/tools/undo/undotool.cpp +++ b/src/tools/undo/undotool.cpp @@ -40,10 +40,10 @@ UndoTool::name() const return tr("Undo"); } -QString -UndoTool::nameID() +ToolType +UndoTool::nameID() const { - return QLatin1String(""); + return ToolType::UNDO; } QString diff --git a/src/tools/undo/undotool.h b/src/tools/undo/undotool.h index 6aa3b983..94b1ad0f 100644 --- a/src/tools/undo/undotool.h +++ b/src/tools/undo/undotool.h @@ -29,11 +29,13 @@ public: QIcon icon(const QColor& background, bool inEditor) const override; QString name() const override; - static QString nameID(); QString description() const override; CaptureTool* copy(QObject* parent = nullptr) override; +protected: + ToolType nameID() const override; + public slots: void pressed(const CaptureContext& context) override; }; diff --git a/src/widgets/capture/capturewidget.cpp b/src/widgets/capture/capturewidget.cpp index cc138d83..c9c02749 100644 --- a/src/widgets/capture/capturewidget.cpp +++ b/src/widgets/capture/capturewidget.cpp @@ -709,6 +709,10 @@ CaptureWidget::handleButtonSignal(CaptureTool::Request r) incrementCircleCount(); break; + case CaptureTool::REQ_DECREMENT_CIRCLE_COUNT: + decrementCircleCount(); + break; + case CaptureTool::REQ_CLOSE_GUI: close(); break; @@ -796,6 +800,12 @@ CaptureWidget::incrementCircleCount() m_context.circleCount++; } +void +CaptureWidget::decrementCircleCount() +{ + m_context.circleCount--; +} + void CaptureWidget::setDrawThickness(const int& t) { diff --git a/src/widgets/capture/capturewidget.h b/src/widgets/capture/capturewidget.h index c203e3f5..20e7f08a 100644 --- a/src/widgets/capture/capturewidget.h +++ b/src/widgets/capture/capturewidget.h @@ -92,6 +92,7 @@ private slots: void setDrawColor(const QColor& c); void setDrawThickness(const int& t); void incrementCircleCount(); + void decrementCircleCount(); protected: void paintEvent(QPaintEvent*);