mirror of
https://github.com/fergalmoran/flameshot.git
synced 2025-12-26 20:00:30 +00:00
Refactor CaptureRequest
Signed-off-by: Haris Gušić <harisgusic.dev@gmail.com>
This commit is contained in:
@@ -5,15 +5,14 @@
|
|||||||
#include "src/utils/screenshotsaver.h"
|
#include "src/utils/screenshotsaver.h"
|
||||||
#include <QDateTime>
|
#include <QDateTime>
|
||||||
#include <QVector>
|
#include <QVector>
|
||||||
|
#include <stdexcept>
|
||||||
|
|
||||||
CaptureRequest::CaptureRequest(CaptureRequest::CaptureMode mode,
|
CaptureRequest::CaptureRequest(CaptureRequest::CaptureMode mode,
|
||||||
const uint delay,
|
const uint delay,
|
||||||
const QString& path,
|
|
||||||
const QVariant& data,
|
const QVariant& data,
|
||||||
CaptureRequest::ExportTask tasks)
|
CaptureRequest::ExportTask tasks)
|
||||||
: m_mode(mode)
|
: m_mode(mode)
|
||||||
, m_delay(delay)
|
, m_delay(delay)
|
||||||
, m_path(path)
|
|
||||||
, m_tasks(tasks)
|
, m_tasks(tasks)
|
||||||
, m_data(data)
|
, m_data(data)
|
||||||
, m_forcedID(false)
|
, m_forcedID(false)
|
||||||
@@ -69,12 +68,21 @@ CaptureRequest::ExportTask CaptureRequest::tasks() const
|
|||||||
|
|
||||||
void CaptureRequest::addTask(CaptureRequest::ExportTask task)
|
void CaptureRequest::addTask(CaptureRequest::ExportTask task)
|
||||||
{
|
{
|
||||||
|
if (task == SAVE_TASK) {
|
||||||
|
throw std::logic_error("SAVE_TASK must be added using addSaveTask");
|
||||||
|
}
|
||||||
m_tasks |= task;
|
m_tasks |= task;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CaptureRequest::addSaveTask(const QString& path)
|
||||||
|
{
|
||||||
|
m_tasks |= SAVE_TASK;
|
||||||
|
m_path = path;
|
||||||
|
}
|
||||||
|
|
||||||
void CaptureRequest::exportCapture(const QPixmap& p)
|
void CaptureRequest::exportCapture(const QPixmap& p)
|
||||||
{
|
{
|
||||||
if ((m_tasks & ExportTask::FILESYSTEM_SAVE_TASK) != ExportTask::NO_TASK) {
|
if ((m_tasks & ExportTask::SAVE_TASK) != ExportTask::NO_TASK) {
|
||||||
if (m_path.isEmpty()) {
|
if (m_path.isEmpty()) {
|
||||||
ScreenshotSaver(m_id).saveToFilesystemGUI(p);
|
ScreenshotSaver(m_id).saveToFilesystemGUI(p);
|
||||||
} else {
|
} else {
|
||||||
@@ -82,7 +90,7 @@ void CaptureRequest::exportCapture(const QPixmap& p)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((m_tasks & ExportTask::CLIPBOARD_SAVE_TASK) != ExportTask::NO_TASK) {
|
if ((m_tasks & ExportTask::COPY_TASK) != ExportTask::NO_TASK) {
|
||||||
ScreenshotSaver().saveToClipboard(p);
|
ScreenshotSaver().saveToClipboard(p);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,13 +20,12 @@ public:
|
|||||||
enum ExportTask
|
enum ExportTask
|
||||||
{
|
{
|
||||||
NO_TASK = 0,
|
NO_TASK = 0,
|
||||||
CLIPBOARD_SAVE_TASK = 1,
|
COPY_TASK = 1,
|
||||||
FILESYSTEM_SAVE_TASK = 2,
|
SAVE_TASK = 2,
|
||||||
};
|
};
|
||||||
|
|
||||||
CaptureRequest(CaptureMode mode,
|
CaptureRequest(CaptureMode mode,
|
||||||
const uint delay = 0,
|
const uint delay = 0,
|
||||||
const QString& path = QLatin1String(""),
|
|
||||||
const QVariant& data = QVariant(),
|
const QVariant& data = QVariant(),
|
||||||
ExportTask tasks = NO_TASK);
|
ExportTask tasks = NO_TASK);
|
||||||
|
|
||||||
@@ -40,6 +39,7 @@ public:
|
|||||||
ExportTask tasks() const;
|
ExportTask tasks() const;
|
||||||
|
|
||||||
void addTask(ExportTask task);
|
void addTask(ExportTask task);
|
||||||
|
void addSaveTask(const QString& path);
|
||||||
void exportCapture(const QPixmap& p);
|
void exportCapture(const QPixmap& p);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|||||||
@@ -33,9 +33,12 @@ void FlameshotDBusAdapter::graphicCapture(QString path,
|
|||||||
int delay,
|
int delay,
|
||||||
uint id)
|
uint id)
|
||||||
{
|
{
|
||||||
CaptureRequest req(CaptureRequest::GRAPHICAL_MODE, delay, path);
|
CaptureRequest req(CaptureRequest::GRAPHICAL_MODE, delay);
|
||||||
if (toClipboard) {
|
if (toClipboard) {
|
||||||
req.addTask(CaptureRequest::CLIPBOARD_SAVE_TASK);
|
req.addTask(CaptureRequest::COPY_TASK);
|
||||||
|
}
|
||||||
|
if (!path.isEmpty()) {
|
||||||
|
req.addSaveTask(path);
|
||||||
}
|
}
|
||||||
req.setStaticID(id);
|
req.setStaticID(id);
|
||||||
Controller::getInstance()->requestCapture(req);
|
Controller::getInstance()->requestCapture(req);
|
||||||
@@ -48,9 +51,11 @@ void FlameshotDBusAdapter::fullScreen(QString path,
|
|||||||
{
|
{
|
||||||
CaptureRequest req(CaptureRequest::FULLSCREEN_MODE, delay, path);
|
CaptureRequest req(CaptureRequest::FULLSCREEN_MODE, delay, path);
|
||||||
if (toClipboard) {
|
if (toClipboard) {
|
||||||
req.addTask(CaptureRequest::CLIPBOARD_SAVE_TASK);
|
req.addTask(CaptureRequest::COPY_TASK);
|
||||||
|
}
|
||||||
|
if (!path.isEmpty()) {
|
||||||
|
req.addSaveTask(path);
|
||||||
}
|
}
|
||||||
req.addTask(CaptureRequest::FILESYSTEM_SAVE_TASK);
|
|
||||||
req.setStaticID(id);
|
req.setStaticID(id);
|
||||||
Controller::getInstance()->requestCapture(req);
|
Controller::getInstance()->requestCapture(req);
|
||||||
}
|
}
|
||||||
@@ -66,11 +71,13 @@ void FlameshotDBusAdapter::captureScreen(int number,
|
|||||||
int delay,
|
int delay,
|
||||||
uint id)
|
uint id)
|
||||||
{
|
{
|
||||||
CaptureRequest req(CaptureRequest::SCREEN_MODE, delay, path, number);
|
CaptureRequest req(CaptureRequest::SCREEN_MODE, delay, number);
|
||||||
if (toClipboard) {
|
if (toClipboard) {
|
||||||
req.addTask(CaptureRequest::CLIPBOARD_SAVE_TASK);
|
req.addTask(CaptureRequest::COPY_TASK);
|
||||||
|
}
|
||||||
|
if (!path.isEmpty()) {
|
||||||
|
req.addSaveTask(path);
|
||||||
}
|
}
|
||||||
req.addTask(CaptureRequest::FILESYSTEM_SAVE_TASK);
|
|
||||||
req.setStaticID(id);
|
req.setStaticID(id);
|
||||||
Controller::getInstance()->requestCapture(req);
|
Controller::getInstance()->requestCapture(req);
|
||||||
}
|
}
|
||||||
|
|||||||
15
src/main.cpp
15
src/main.cpp
@@ -307,7 +307,7 @@ int main(int argc, char* argv[])
|
|||||||
DBusUtils dbusUtils;
|
DBusUtils dbusUtils;
|
||||||
CaptureRequest req(CaptureRequest::GRAPHICAL_MODE, delay, pathValue);
|
CaptureRequest req(CaptureRequest::GRAPHICAL_MODE, delay, pathValue);
|
||||||
if (toClipboard) {
|
if (toClipboard) {
|
||||||
req.addTask(CaptureRequest::CLIPBOARD_SAVE_TASK);
|
req.addTask(CaptureRequest::COPY_TASK);
|
||||||
}
|
}
|
||||||
uint id = req.id();
|
uint id = req.id();
|
||||||
|
|
||||||
@@ -352,12 +352,12 @@ int main(int argc, char* argv[])
|
|||||||
goto finish;
|
goto finish;
|
||||||
}
|
}
|
||||||
|
|
||||||
CaptureRequest req(CaptureRequest::FULLSCREEN_MODE, delay, pathValue);
|
CaptureRequest req(CaptureRequest::FULLSCREEN_MODE, delay);
|
||||||
if (toClipboard) {
|
if (toClipboard) {
|
||||||
req.addTask(CaptureRequest::CLIPBOARD_SAVE_TASK);
|
req.addTask(CaptureRequest::COPY_TASK);
|
||||||
}
|
}
|
||||||
if (!pathValue.isEmpty()) {
|
if (!pathValue.isEmpty()) {
|
||||||
req.addTask(CaptureRequest::FILESYSTEM_SAVE_TASK);
|
req.addSaveTask(pathValue);
|
||||||
}
|
}
|
||||||
uint id = req.id();
|
uint id = req.id();
|
||||||
DBusUtils dbusUtils;
|
DBusUtils dbusUtils;
|
||||||
@@ -410,13 +410,12 @@ int main(int argc, char* argv[])
|
|||||||
goto finish;
|
goto finish;
|
||||||
}
|
}
|
||||||
|
|
||||||
CaptureRequest req(
|
CaptureRequest req(CaptureRequest::SCREEN_MODE, delay, number);
|
||||||
CaptureRequest::SCREEN_MODE, delay, pathValue, number);
|
|
||||||
if (toClipboard) {
|
if (toClipboard) {
|
||||||
req.addTask(CaptureRequest::CLIPBOARD_SAVE_TASK);
|
req.addTask(CaptureRequest::COPY_TASK);
|
||||||
}
|
}
|
||||||
if (!pathValue.isEmpty()) {
|
if (!pathValue.isEmpty()) {
|
||||||
req.addTask(CaptureRequest::FILESYSTEM_SAVE_TASK);
|
req.addSaveTask(pathValue);
|
||||||
}
|
}
|
||||||
uint id = req.id();
|
uint id = req.id();
|
||||||
DBusUtils dbusUtils;
|
DBusUtils dbusUtils;
|
||||||
|
|||||||
Reference in New Issue
Block a user