ProfileManager: move some fields to SaveTool.
This commit is contained in:
parent
2a617b3359
commit
241f5b754d
5 changed files with 19 additions and 32 deletions
|
@ -33,20 +33,10 @@
|
|||
|
||||
using namespace Corrade;
|
||||
|
||||
ProfileManager::ProfileManager(const std::string& base_path):
|
||||
_backupsDirectory{Utility::Directory::join(Utility::Directory::path(Utility::Directory::executableLocation()), "backups")}
|
||||
ProfileManager::ProfileManager(const std::string& save_dir, const std::string& backup_dir):
|
||||
_saveDirectory{save_dir},
|
||||
_backupsDirectory{backup_dir}
|
||||
{
|
||||
_saveDirectory = Utility::Directory::join(base_path, "Saved/SaveGames");
|
||||
|
||||
if(!Utility::Directory::exists(_backupsDirectory)) {
|
||||
Utility::Directory::mkpath(_backupsDirectory);
|
||||
}
|
||||
|
||||
if(!Utility::Directory::exists(_saveDirectory)) {
|
||||
_lastError = "Couldn't find the profile directory. Make sure you played enough of the game.";
|
||||
return;
|
||||
}
|
||||
|
||||
_ready = refreshProfiles();
|
||||
}
|
||||
|
||||
|
@ -58,14 +48,6 @@ auto ProfileManager::lastError() -> std::string const& {
|
|||
return _lastError;
|
||||
}
|
||||
|
||||
auto ProfileManager::saveDirectory() -> std::string const& {
|
||||
return _saveDirectory;
|
||||
}
|
||||
|
||||
auto ProfileManager::backupsDirectory() -> std::string const& {
|
||||
return _backupsDirectory;
|
||||
}
|
||||
|
||||
auto ProfileManager::profiles() -> std::vector<Profile> const& {
|
||||
return _profiles;
|
||||
}
|
||||
|
|
|
@ -38,14 +38,11 @@ struct Backup {
|
|||
|
||||
class ProfileManager {
|
||||
public:
|
||||
ProfileManager(const std::string& base_path);
|
||||
explicit ProfileManager(const std::string& save_dir, const std::string& backup_dir);
|
||||
|
||||
auto ready() const -> bool;
|
||||
auto lastError() -> std::string const&;
|
||||
|
||||
auto saveDirectory() -> std::string const&;
|
||||
auto backupsDirectory() -> std::string const&;
|
||||
|
||||
auto profiles() -> std::vector<Profile> const&;
|
||||
auto refreshProfiles() -> bool;
|
||||
|
||||
|
@ -61,10 +58,10 @@ class ProfileManager {
|
|||
|
||||
private:
|
||||
bool _ready = false;
|
||||
std::string _lastError = "";
|
||||
std::string _lastError;
|
||||
|
||||
std::string _saveDirectory;
|
||||
const std::string _backupsDirectory;
|
||||
const std::string& _saveDirectory;
|
||||
const std::string& _backupsDirectory;
|
||||
|
||||
std::vector<Profile> _profiles;
|
||||
std::vector<Backup> _backups;
|
||||
|
|
|
@ -87,6 +87,12 @@ SaveTool::SaveTool(const Arguments& arguments):
|
|||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
_backupsDir = Utility::Directory::join(Utility::Directory::path(Utility::Directory::executableLocation()), "backups");
|
||||
|
||||
if(!Utility::Directory::exists(_backupsDir)) {
|
||||
Utility::Directory::mkpath(_backupsDir);
|
||||
}
|
||||
|
||||
if(!findGameDataDirectory()) {
|
||||
SDL_ShowSimpleMessageBox(SDL_MESSAGEBOX_ERROR, "Error initialising the app", _lastError.c_str(), window());
|
||||
exit(EXIT_FAILURE);
|
||||
|
@ -304,7 +310,7 @@ void SaveTool::initialiseManager() {
|
|||
SDL_zero(event);
|
||||
event.type = _initEventId;
|
||||
|
||||
_profileManager.emplace(_gameDataDir);
|
||||
_profileManager.emplace(_saveDir, _backupsDir);
|
||||
if(!_profileManager->ready()) {
|
||||
event.user.code = ProfileManagerFailure;
|
||||
SDL_PushEvent(&event);
|
||||
|
@ -337,7 +343,7 @@ auto SaveTool::findGameDataDirectory() -> bool {
|
|||
void SaveTool::initialiseMassManager() {
|
||||
_currentProfile->refreshValues();
|
||||
|
||||
_massManager.emplace(_profileManager->saveDirectory(),
|
||||
_massManager.emplace(_saveDir,
|
||||
_currentProfile->steamId(),
|
||||
_currentProfile->type() == ProfileType::Demo);
|
||||
|
||||
|
@ -346,7 +352,7 @@ void SaveTool::initialiseMassManager() {
|
|||
|
||||
void SaveTool::initialiseFileWatcher() {
|
||||
_fileWatcher.emplace();
|
||||
_watchIDs[SaveDir] = _fileWatcher->addWatch(_profileManager->saveDirectory(), this, false);
|
||||
_watchIDs[SaveDir] = _fileWatcher->addWatch(_saveDir, this, false);
|
||||
_watchIDs[StagingDir] = _fileWatcher->addWatch(_massManager->stagingAreaDirectory(), this, false);
|
||||
_fileWatcher->watch();
|
||||
}
|
||||
|
|
|
@ -165,6 +165,8 @@ class SaveTool: public Platform::Sdl2Application, public efsw::FileWatchListener
|
|||
std::string _saveDir;
|
||||
std::string _screenshotsDir;
|
||||
|
||||
std::string _backupsDir;
|
||||
|
||||
enum class GameState : UnsignedByte {
|
||||
Unknown, NotRunning, Running
|
||||
} _gameState{GameState::Unknown};
|
||||
|
|
|
@ -46,7 +46,7 @@ void SaveTool::drawMainMenu() {
|
|||
}
|
||||
|
||||
if(ImGui::MenuItem(ICON_FA_FILE_ARCHIVE " Profile backups", nullptr, false, _profileManager != nullptr)) {
|
||||
openUri(Utility::Directory::toNativeSeparators(_profileManager->backupsDirectory()));
|
||||
openUri(Utility::Directory::toNativeSeparators(_backupsDir));
|
||||
}
|
||||
|
||||
ImGui::EndMenu();
|
||||
|
|
Loading…
Reference in a new issue