From 85352ff72f328fed9c45fb783e2da82caf9c2589 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Haris=20Gu=C5=A1i=C4=87?= Date: Tue, 5 Oct 2021 17:06:46 +0200 Subject: [PATCH] Add accept button to CaptureWidget MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Haris Gušić --- src/core/capturerequest.cpp | 5 +++++ src/core/capturerequest.h | 1 + src/widgets/capture/capturewidget.cpp | 18 ++++++++++++++++++ src/widgets/capture/capturewidget.h | 1 + 4 files changed, 25 insertions(+) diff --git a/src/core/capturerequest.cpp b/src/core/capturerequest.cpp index f5874b2e..8a2a16f0 100644 --- a/src/core/capturerequest.cpp +++ b/src/core/capturerequest.cpp @@ -62,6 +62,11 @@ QVariant CaptureRequest::data() const return m_data; } +CaptureRequest::ExportTask CaptureRequest::tasks() const +{ + return m_tasks; +} + void CaptureRequest::addTask(CaptureRequest::ExportTask task) { m_tasks |= task; diff --git a/src/core/capturerequest.h b/src/core/capturerequest.h index 418036b1..22c47280 100644 --- a/src/core/capturerequest.h +++ b/src/core/capturerequest.h @@ -37,6 +37,7 @@ public: QString path() const; QVariant data() const; CaptureMode captureMode() const; + ExportTask tasks() const; void addTask(ExportTask task); void exportCapture(const QPixmap& p); diff --git a/src/widgets/capture/capturewidget.cpp b/src/widgets/capture/capturewidget.cpp index 1c5bfa4c..d415211a 100644 --- a/src/widgets/capture/capturewidget.cpp +++ b/src/widgets/capture/capturewidget.cpp @@ -243,6 +243,10 @@ void CaptureWidget::initButtons() { auto allButtonTypes = CaptureToolButton::getIterableButtonTypes(); auto visibleButtonTypes = m_config.buttons(); + auto& request = *Controller::getInstance()->requests().find(m_id); + if (request.tasks() == CaptureRequest::NO_TASK) { + visibleButtonTypes.removeOne(CaptureTool::TYPE_ACCEPT); + } QVector vectorButtons; // Add all buttons but hide those that were disabled in the Interface config @@ -262,6 +266,7 @@ void CaptureWidget::initButtons() case CaptureTool::TYPE_EXIT: case CaptureTool::TYPE_SAVE: case CaptureTool::TYPE_COPY: + case CaptureTool::TYPE_ACCEPT: case CaptureTool::TYPE_UNDO: case CaptureTool::TYPE_IMAGEUPLOADER: case CaptureTool::TYPE_REDO: @@ -1179,6 +1184,13 @@ void CaptureWidget::initShortcuts() this, SLOT(copyScreenshot())); + auto& request = *Controller::getInstance()->requests().find(m_id); + if (request.tasks() != CaptureRequest::NO_TASK) { + new QShortcut(QKeySequence(ConfigHandler().shortcut("TYPE_ACCEPT")), + this, + SLOT(acceptCapture())); + } + new QShortcut( QKeySequence(ConfigHandler().shortcut("TYPE_UNDO")), this, SLOT(undo())); @@ -1457,6 +1469,12 @@ void CaptureWidget::saveScreenshot() close(); } +void CaptureWidget::acceptCapture() +{ + m_captureDone = true; + close(); +} + void CaptureWidget::setCaptureToolObjects( const CaptureToolObjects& captureToolObjects) { diff --git a/src/widgets/capture/capturewidget.h b/src/widgets/capture/capturewidget.h index 4b9691e4..7af263e3 100644 --- a/src/widgets/capture/capturewidget.h +++ b/src/widgets/capture/capturewidget.h @@ -65,6 +65,7 @@ private slots: // TODO replace with tools void copyScreenshot(); void saveScreenshot(); + void acceptCapture(); void undo(); void redo(); void togglePanel();