Made undo tool aware of circle count to decrement. Refactored tool ID's to be enum

This commit is contained in:
Jeremy Borgman
2020-09-07 14:47:49 -05:00
committed by borgmanJeremy
parent ed4ea1377b
commit 6afa3ca26a
47 changed files with 166 additions and 81 deletions

View File

@@ -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;

View File

@@ -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;

View File

@@ -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

View File

@@ -53,6 +53,8 @@ protected:
bool m_supportsOrthogonalAdj = false;
bool m_supportsDiagonalAdj = false;
virtual ToolType nameID() const = 0;
private:
QPoint adjustedVector(QPoint v) const;
};

View File

@@ -92,10 +92,10 @@ ArrowTool::name() const
return tr("Arrow");
}
QString
ArrowTool::nameID()
ToolType
ArrowTool::nameID() const
{
return QLatin1String("");
return ToolType::ARROW;
}
QString

View File

@@ -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;

View File

@@ -23,6 +23,30 @@
#include <QIcon>
#include <QPainter>
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;

View File

@@ -40,10 +40,10 @@ CircleTool::name() const
return tr("Circle");
}
QString
CircleTool::nameID()
ToolType
CircleTool::nameID() const
{
return QLatin1String("");
return ToolType::CIRCLE;
}
QString

View File

@@ -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;

View File

@@ -39,10 +39,10 @@ CircleCountTool::name() const
return tr("Circle Counter");
}
QString
CircleCountTool::nameID()
ToolType
CircleCountTool::nameID() const
{
return QLatin1String("");
return ToolType::CIRCLECOUNT;
}
QString

View File

@@ -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:

View File

@@ -41,10 +41,10 @@ CopyTool::name() const
return tr("Copy");
}
QString
CopyTool::nameID()
ToolType
CopyTool::nameID() const
{
return QLatin1String("");
return ToolType::COPY;
}
QString

View File

@@ -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;
};

View File

@@ -40,10 +40,10 @@ ExitTool::name() const
return tr("Exit");
}
QString
ExitTool::nameID()
ToolType
ExitTool::nameID() const
{
return QLatin1String("");
return ToolType::EXIT;
}
QString

View File

@@ -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;
};

View File

@@ -41,10 +41,10 @@ ImgurUploaderTool::name() const
return tr("Image Uploader");
}
QString
ImgurUploaderTool::nameID()
ToolType
ImgurUploaderTool::nameID() const
{
return QLatin1String("");
return ToolType::IMGUR;
}
QString

View File

@@ -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;

View File

@@ -40,10 +40,10 @@ AppLauncher::name() const
return tr("App Launcher");
}
QString
AppLauncher::nameID()
ToolType
AppLauncher::nameID() const
{
return QLatin1String("");
return ToolType::LAUNCHER;
}
QString

View File

@@ -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;

View File

@@ -43,10 +43,10 @@ LineTool::name() const
return tr("Line");
}
QString
LineTool::nameID()
ToolType
LineTool::nameID() const
{
return QLatin1String("");
return ToolType::LINE;
}
QString

View File

@@ -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;

View File

@@ -43,10 +43,10 @@ MarkerTool::name() const
return tr("Marker");
}
QString
MarkerTool::nameID()
ToolType
MarkerTool::nameID() const
{
return QLatin1String("");
return ToolType::MARKER;
}
QString

View File

@@ -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;

View File

@@ -40,10 +40,10 @@ MoveTool::name() const
return tr("Move");
}
QString
MoveTool::nameID()
ToolType
MoveTool::nameID() const
{
return QLatin1String("");
return ToolType::MOVE;
}
QString

View File

@@ -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;

View File

@@ -34,10 +34,10 @@ PencilTool::name() const
return tr("Pencil");
}
QString
PencilTool::nameID()
ToolType
PencilTool::nameID() const
{
return QLatin1String("");
return ToolType::PENCIL;
}
QString

View File

@@ -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;

View File

@@ -40,10 +40,10 @@ PinTool::name() const
return tr("Pin Tool");
}
QString
PinTool::nameID()
ToolType
PinTool::nameID() const
{
return QLatin1String("");
return ToolType::PIN;
}
QString

View File

@@ -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;

View File

@@ -39,10 +39,10 @@ PixelateTool::name() const
return tr("Pixelate");
}
QString
PixelateTool::nameID()
ToolType
PixelateTool::nameID() const
{
return QLatin1String("");
return ToolType::PIXELATE;
}
QString

View File

@@ -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;

View File

@@ -40,10 +40,10 @@ RectangleTool::name() const
return tr("Rectangle");
}
QString
RectangleTool::nameID()
ToolType
RectangleTool::nameID() const
{
return QLatin1String("");
return ToolType::RECTANGLE;
}
QString

View File

@@ -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;

View File

@@ -40,10 +40,10 @@ RedoTool::name() const
return tr("Redo");
}
QString
RedoTool::nameID()
ToolType
RedoTool::nameID() const
{
return QLatin1String("");
return ToolType::REDO;
}
QString

View File

@@ -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;
};

View File

@@ -41,10 +41,10 @@ SaveTool::name() const
return tr("Save");
}
QString
SaveTool::nameID()
ToolType
SaveTool::nameID() const
{
return QLatin1String("");
return ToolType::SAVE;
}
QString

View File

@@ -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;
};

View File

@@ -46,10 +46,10 @@ SelectionTool::name() const
return tr("Rectangular Selection");
}
QString
SelectionTool::nameID()
ToolType
SelectionTool::nameID() const
{
return QLatin1String("");
return ToolType::SELECTION;
}
QString

View File

@@ -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;

View File

@@ -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

View File

@@ -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;
};

View File

@@ -63,10 +63,10 @@ TextTool::name() const
return tr("Text");
}
QString
TextTool::nameID()
ToolType
TextTool::nameID() const
{
return QLatin1String("");
return ToolType::TEXT;
}
QString

View File

@@ -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;

View File

@@ -40,10 +40,10 @@ UndoTool::name() const
return tr("Undo");
}
QString
UndoTool::nameID()
ToolType
UndoTool::nameID() const
{
return QLatin1String("");
return ToolType::UNDO;
}
QString

View File

@@ -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;
};

View File

@@ -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)
{

View File

@@ -92,6 +92,7 @@ private slots:
void setDrawColor(const QColor& c);
void setDrawThickness(const int& t);
void incrementCircleCount();
void decrementCircleCount();
protected:
void paintEvent(QPaintEvent*);