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