Files
oak-editor/app/project/projectsavemanager.h
T
itsmattkc fa95a61c7b implemented cancel feedback in project saving
The cancel button now sends a signal to the saving thread to stop.
2020-01-12 16:34:35 +11:00

44 lines
771 B
C++

#ifndef PROJECTSAVEMANAGER_H
#define PROJECTSAVEMANAGER_H
#include <QObject>
#include "project.h"
class ProjectSaveManager : public QObject
{
Q_OBJECT
public:
ProjectSaveManager(Project* project);
public slots:
/**
* @brief Start the save process
*
* It's recommended to invoke this through Qt signals/slots/QueuedConnection after moving this object to a separate
* thread.
*/
void Start();
/**
* @brief Cancel the current save
*
* Always connect to this with a DirectConnection. Otherwise, it'll be queued AFTER the save function is already
* complete.
*/
void Cancel();
signals:
void ProgressChanged(int);
void Finished();
private:
Project* project_;
QAtomicInt cancelled_;
};
#endif // PROJECTSAVEMANAGER_H