Upload screenshot to S3 on Enter after capture

This commit is contained in:
Yuriy Puchkov
2020-07-02 21:21:32 +03:00
parent c4a745d838
commit ceadb0d833
5 changed files with 22 additions and 2 deletions

View File

@@ -66,6 +66,8 @@ public:
explicit CaptureTool(QObject *parent = nullptr) : QObject(parent){}
virtual void setCapture(const QPixmap &pixmap) {};
// Returns false when the tool is in an inconsistent state and shouldn't
// be included in the tool undo/redo stack.
virtual bool isValid() const = 0;

View File

@@ -54,6 +54,10 @@ QWidget* ImgS3UploaderTool::widget() {
return new ImgS3Uploader(capture, m_s3CredsUrl, m_s3XApiKey);
}
void ImgS3UploaderTool::setCapture(const QPixmap &pixmap) {
capture = pixmap;
}
CaptureTool* ImgS3UploaderTool::copy(QObject *parent) {
return new ImgS3UploaderTool(parent);
}

View File

@@ -34,6 +34,7 @@ public:
QWidget* widget() override;
CaptureTool* copy(QObject *parent = nullptr) override;
void setCapture(const QPixmap &pixmap);
public slots:
void pressed(const CaptureContext &context) override;

View File

@@ -33,6 +33,8 @@
#include "src/utils/screenshotsaver.h"
#include "src/core/controller.h"
#include "src/widgets/capture/modificationcommand.h"
#include "src/tools/imgs3/imgs3uploadertool.h"
#include "src/tools/toolfactory.h"
#include <QUndoView>
#include <QScreen>
#include <QGuiApplication>
@@ -778,8 +780,11 @@ void CaptureWidget::initShortcuts() {
new QShortcut(QKeySequence(Qt::SHIFT + Qt::Key_Down), this, SLOT(downResize()));
new QShortcut(Qt::Key_Space, this, SLOT(togglePanel()));
new QShortcut(Qt::Key_Escape, this, SLOT(deleteToolwidgetOrClose()));
new QShortcut(Qt::Key_Return, this, SLOT(copyScreenshot()));
new QShortcut(Qt::Key_Enter, this, SLOT(copyScreenshot()));
// new QShortcut(Qt::Key_Return, this, SLOT(copyScreenshot()));
// new QShortcut(Qt::Key_Enter, this, SLOT(copyScreenshot()));
new QShortcut(Qt::Key_Return, this, SLOT(uploadScreenshot()));
new QShortcut(Qt::Key_Enter, this, SLOT(uploadScreenshot()));
}
void CaptureWidget::updateSizeIndicator() {
@@ -861,6 +866,13 @@ void CaptureWidget::childLeave() {
update();
}
void CaptureWidget::uploadScreenshot() {
m_activeTool = new ImgS3UploaderTool();
m_activeTool->setCapture(pixmap());
handleButtonSignal(CaptureTool::REQ_ADD_EXTERNAL_WIDGETS);
close();
}
void CaptureWidget::copyScreenshot() {
m_captureDone = true;
ScreenshotSaver().saveToClipboard(pixmap());

View File

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