Capture GUI refactor (#1939)

* Merge CTB::ButtonType into CaptureTool::Type

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Remove configshortcuts.cpp which I forgot to do earlier

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Add activeButtonTool & activeButtonToolType in CaptureWidget

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Rename slots in CaptureTool for better mnemonics

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Fix move tool bug

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Refactor ShortcutsWidget::initButtons

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Move code from CaptureWidget to SelectionWidget: part 1

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Move code from CaptureWidget to SelectionWidget: part 2

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Move code from CaptureWidget to SelectionWidget: part 3

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Move code from CaptureWidget to SelectionWidget: part 4

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Add SelectionWidget::updateCursor

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Move code from CaptureWidget to SelectionWidget: part 5

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Refactor mouse events in CaptureWidget

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Overlay message update

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Replace connect/disconnect with blockSignals

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* updateIcon on button animation finished

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Remove CaptureWidget::selectAll

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Move moveLeft and similar to SelectionWidget

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Mark update calls for removal

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Specialize CaptureWidget update to affected rects

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Tune update of tool objects

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Remove redundant CaptureTool requests

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Improve performance of update in CaptureWidget

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Fix failing builds

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Fix failing builds again

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Fix undo/redo update

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Undo/redo update workaround

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Extend capture tool update rects

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Fix circle count tool update bug

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Add 'Left Double-Click' tooltip to copy button

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>

* Improve ColorPicker performance

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
This commit is contained in:
Haris Gušić
2021-10-08 18:04:06 +02:00
committed by GitHub
parent 9cdb8f9fb1
commit fef7787011
76 changed files with 1142 additions and 1159 deletions

View File

@@ -1,4 +1,5 @@
#include "valuehandler.h"
#include "capturetool.h"
#include "confighandler.h"
#include <QColor>
#include <QFileInfo>
@@ -267,15 +268,16 @@ QString FilenamePattern::expected()
// BUTTON LIST
using BType = CaptureToolButton::ButtonType;
using BList = QList<BType>;
using BType = CaptureTool::Type;
using BList = QList<CaptureTool::Type>;
bool ButtonList::check(const QVariant& val)
{
// TODO stop using CTB
using CTB = CaptureToolButton;
auto allButtons = CTB::getIterableButtonTypes();
for (int btn : val.value<QList<int>>()) {
if (!allButtons.contains(static_cast<CTB::ButtonType>(btn))) {
if (!allButtons.contains(static_cast<BType>(btn))) {
return false;
}
}
@@ -302,8 +304,8 @@ QVariant ButtonList::process(const QVariant& val)
QVariant ButtonList::fallback()
{
auto buttons = CaptureToolButton::getIterableButtonTypes();
buttons.removeOne(CaptureToolButton::TYPE_SIZEDECREASE);
buttons.removeOne(CaptureToolButton::TYPE_SIZEINCREASE);
buttons.removeOne(CaptureTool::TYPE_SIZEDECREASE);
buttons.removeOne(CaptureTool::TYPE_SIZEINCREASE);
sortButtons(buttons);
return QVariant::fromValue(buttons);
}
@@ -320,17 +322,16 @@ QString ButtonList::expected()
return QStringLiteral("please don't edit by hand");
}
QList<CaptureToolButton::ButtonType> ButtonList::fromIntList(
const QList<int>& l)
QList<CaptureTool::Type> ButtonList::fromIntList(const QList<int>& l)
{
QList<CaptureToolButton::ButtonType> buttons;
QList<CaptureTool::Type> buttons;
buttons.reserve(l.size());
for (auto const i : l)
buttons << static_cast<CaptureToolButton::ButtonType>(i);
buttons << static_cast<CaptureTool::Type>(i);
return buttons;
}
QList<int> ButtonList::toIntList(const QList<CaptureToolButton::ButtonType>& l)
QList<int> ButtonList::toIntList(const QList<CaptureTool::Type>& l)
{
QList<int> buttons;
buttons.reserve(l.size());