12#ifndef REVISIONSTORE_HPP
13#define REVISIONSTORE_HPP
21#include "UtCallbackHolder.hpp"
45 void SetProject(
const UtPath& aProjectDir,
const UtPath& aProjectFile = UtPath());
58 void QueueFile(
const UtTextDocument* aDocPtr);
59 bool Restore(
int aRevNo, QStringList& aFailedFiles, QWidget* aRequestingWidget =
nullptr);
77 const std::string& aWorkingDir,
78 const std::vector<std::string>& aStartupFiles);
81 bool RenameFallbackDb();
82 bool ReplaceFile(
const UtPath& aFilePath,
const char* aFileContent,
size_t aFileContentSize);
83 bool MakeNewFile(
const UtPath& aFilePath,
const char* aFileContent);
84 bool RestoreIncludedFile(
const std::string& aFilePath,
const UtTextDocument& aFileContent);
85 bool RestoreUnincludedFile(
const std::string& aFilePath,
const UtTextDocument& aFileContent, QWidget* aRequestingWidget);
86 bool RestoreFile(
const std::string& aPath,
int aRevNo, QWidget* aRequestingWidget =
nullptr);
87 bool AnalyzeAndBackup();
88 bool ProxyUpToDate()
const;
89 void AddToQueue(
const std::string& aRelFilePath,
const UtTextDocument* aDocPtr);
90 std::string RelativeDocPath(
const UtTextDocument& aDoc)
const;
97 UtPath mProjectWorkingDir;
98 std::vector<UtPath> mProjectStartupFiles;
99 UtCallbackHolder mCallbacks;
102 bool mBackupScheduled;
103 QTimer* mAutoBackupTimer;
#define VI_EXPORT
Definition ViExport.hpp:38
Definition WsfPProxy.hpp:32
Definition RevisionDb.hpp:35
RevisionList Revisions()
Definition RevisionStore.cpp:390
bool Open()
Definition RevisionStore.cpp:88
bool IsOpen() const
Definition RevisionStore.cpp:139
RevisionDb & DB()
Definition RevisionStore.cpp:396
void HandleProjectStartupFilesChanged(const std::vector< UtPath > &aStartupFiles)
Definition RevisionStore.cpp:278
bool Backup()
Definition RevisionStore.cpp:209
void HandleProxyAvailable(WsfPProxy *aProxy)
Definition RevisionStore.cpp:250
bool StoreNewRevision(const RevisionChangeList &aChanges, const std::string &aWorkingDir, const std::vector< std::string > &aStartupFiles)
Definition RevisionStore.cpp:570
bool Exists() const
Definition RevisionStore.cpp:146
bool RequestBackup()
Definition RevisionStore.cpp:184
void SetProject(const UtPath &aProjectDir, const UtPath &aProjectFile=UtPath())
Definition RevisionStore.cpp:60
bool OpenInMemory()
Definition RevisionStore.cpp:112
void HandleParseUpdated(bool aParsed)
Definition RevisionStore.cpp:268
RevisionChangeList GenerateFileChanges(const RevisionPathSet &aRemovedPaths=RevisionPathSet())
Definition RevisionStore.cpp:497
RevisionStore()
Default constructor.
Definition RevisionStore.cpp:48
bool Close()
Definition RevisionStore.cpp:119
bool IsEmpty()
Definition RevisionStore.cpp:133
~RevisionStore() override=default
void QueueFile(const UtTextDocument *aDocPtr)
Definition RevisionStore.cpp:294
bool DeleteAllRevisions()
Definition RevisionStore.cpp:377
void EnableAutoBackup(int aMin)
Definition RevisionStore.cpp:153
bool Restore(int aRevNo, QStringList &aFailedFiles, QWidget *aRequestingWidget=nullptr)
Definition RevisionStore.cpp:316
void DisableAutoBackup()
Disables the automatic backup feature.
Definition RevisionStore.cpp:167
void QueueAllProjectFiles()
Definition RevisionStore.cpp:233
void SetProjectWorkingDir(const UtPath &aWorkingDir)
Definition RevisionStore.cpp:80
Definition TextSource.hpp:48
std::vector< RevisionChange > RevisionChangeList
Definition RevisionChange.hpp:54
std::vector< Revision > RevisionList
Definition Revision.hpp:35
std::map< std::string, const UtTextDocument * > RevisionFileMap
Definition RevisionStore.hpp:34
std::set< std::string > RevisionPathSet
Definition RevisionDb.hpp:26
Definition RevisionChange.hpp:28