Add accept button to CaptureWidget

Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
This commit is contained in:
Haris Gušić
2021-10-05 17:06:46 +02:00
parent a96c3302e9
commit 85352ff72f
4 changed files with 25 additions and 0 deletions

View File

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

View File

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

View File

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

View File

@@ -65,6 +65,7 @@ private slots:
// TODO replace with tools
void copyScreenshot();
void saveScreenshot();
void acceptCapture();
void undo();
void redo();
void togglePanel();