23 #include <QApplication>
24 #include <QCoreApplication>
30 class AutoSetResetFlag {
32 AutoSetResetFlag(
bool* flag) : m_flag(flag) { *flag =
true; }
33 ~AutoSetResetFlag() { *m_flag =
false; }
36 bool* m_flag =
nullptr;
42 : QObject(parent), m_is_saving(false), m_autosave(nullptr), m_document(nullptr)
100 QApplication::setOverrideCursor(Qt::WaitCursor);
103 QTime dieTime = QTime::currentTime().addSecs(60);
104 while (QTime::currentTime() < dieTime) {
105 QCoreApplication::processEvents(QEventLoop::AllEvents, 100);
110 throw GUIHelpers::Error(
"SaveService::stopService() -> Error. Can't stop service. ");
117 QApplication::restoreOverrideCursor();
159 connect(saveThread, &SaveThread::finished, saveThread, &QObject::deleteLater);
Defines the macro ASSERT.
#define ASSERT(condition)
Defines class AutosaveController.
Defines class GUIHelpers functions.
Defines ProjectUtils namespace.
Defines class SaveService.
Defines SaveThread classes.
Defines class UpdateTimer.
Triggers autosave request after some accumulated ammount of document changes.
void setAutosaveTime(int timerInterval)
Sets autosave time (in msec)
void setDocument(ProjectDocument *document)
void removeAutosaveDir()
remove auto save directory for given project and all its content
QString autosaveName() const
Project document class handles all data related to the opened project (sample, jobModel,...
void save_project_file(const QString &project_file_name, bool autoSave=false)
void setAutosaveTime(int timerInterval)
Sets autosave time (in msec)
void setAutosaveEnabled(bool value)
ProjectDocument * m_document
void save(const QString &project_file_name)
bool isAutosaveEnabled() const
QQueue< QString > m_save_queue
void setDocument(ProjectDocument *document)
SaveService(QObject *parent=0)
AutosaveController * m_autosave
Performs saving of heavy intensity data in a thread.
void setSaveContext(ProjectDocument *document, const QString &project_file_name)
QString autosaveSubdir()
Returns fixed name for autosave sub-directory.
Defines class ProjectDocument.