MassManager: move some fields to SaveTool.

This commit is contained in:
Guillaume Jacquemin 2021-07-21 20:57:39 +02:00
parent 241f5b754d
commit 688e61b9ae
6 changed files with 21 additions and 24 deletions

View File

@ -24,11 +24,11 @@
static const std::string empty_string = ""; static const std::string empty_string = "";
MassManager::MassManager(const std::string& save_path, const std::string& steam_id, bool demo): MassManager::MassManager(const std::string& save_path, const std::string& steam_id, bool demo, const std::string& staging_dir):
_saveDirectory{save_path}, _saveDirectory{save_path},
_steamId{steam_id}, _steamId{steam_id},
_demo{demo}, _demo{demo},
_stagingAreaDirectory{Utility::Directory::join(Utility::Directory::path(Utility::Directory::executableLocation()), "staging")} _stagingAreaDirectory{staging_dir}
{ {
Containers::arrayReserve(_hangars, 32); Containers::arrayReserve(_hangars, 32);
@ -45,14 +45,6 @@ MassManager::MassManager(const std::string& save_path, const std::string& steam_
refreshStagedMasses(); refreshStagedMasses();
} }
auto MassManager::saveDirectory() -> std::string const& {
return _saveDirectory;
}
auto MassManager::stagingAreaDirectory() -> std::string const& {
return _stagingAreaDirectory;
}
auto MassManager::lastError() -> std::string const& { auto MassManager::lastError() -> std::string const& {
return _lastError; return _lastError;
} }

View File

@ -27,10 +27,7 @@ using namespace Corrade;
class MassManager { class MassManager {
public: public:
MassManager(const std::string& save_path, const std::string& steam_id, bool demo); MassManager(const std::string& save_path, const std::string& steam_id, bool demo, const std::string& staging_dir);
auto saveDirectory() -> std::string const&;
auto stagingAreaDirectory() -> std::string const&;
auto lastError() -> std::string const&; auto lastError() -> std::string const&;
@ -50,15 +47,15 @@ class MassManager {
auto deleteStagedMass(const std::string& filename) -> bool; auto deleteStagedMass(const std::string& filename) -> bool;
private: private:
std::string _saveDirectory; const std::string& _saveDirectory;
std::string _steamId; const std::string& _steamId;
bool _demo; bool _demo;
std::string _lastError; std::string _lastError;
Containers::Array<Mass> _hangars; Containers::Array<Mass> _hangars;
const std::string _stagingAreaDirectory; const std::string& _stagingAreaDirectory;
std::map<std::string, std::string> _stagedMasses; std::map<std::string, std::string> _stagedMasses;
}; };

View File

@ -88,11 +88,16 @@ SaveTool::SaveTool(const Arguments& arguments):
} }
_backupsDir = Utility::Directory::join(Utility::Directory::path(Utility::Directory::executableLocation()), "backups"); _backupsDir = Utility::Directory::join(Utility::Directory::path(Utility::Directory::executableLocation()), "backups");
_stagingDir = Utility::Directory::join(Utility::Directory::path(Utility::Directory::executableLocation()), "staging");
if(!Utility::Directory::exists(_backupsDir)) { if(!Utility::Directory::exists(_backupsDir)) {
Utility::Directory::mkpath(_backupsDir); Utility::Directory::mkpath(_backupsDir);
} }
if(!Utility::Directory::exists(_stagingDir)) {
Utility::Directory::mkpath(_stagingDir);
}
if(!findGameDataDirectory()) { if(!findGameDataDirectory()) {
SDL_ShowSimpleMessageBox(SDL_MESSAGEBOX_ERROR, "Error initialising the app", _lastError.c_str(), window()); SDL_ShowSimpleMessageBox(SDL_MESSAGEBOX_ERROR, "Error initialising the app", _lastError.c_str(), window());
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
@ -345,7 +350,8 @@ void SaveTool::initialiseMassManager() {
_massManager.emplace(_saveDir, _massManager.emplace(_saveDir,
_currentProfile->steamId(), _currentProfile->steamId(),
_currentProfile->type() == ProfileType::Demo); _currentProfile->type() == ProfileType::Demo,
_stagingDir);
initialiseFileWatcher(); initialiseFileWatcher();
} }
@ -353,7 +359,7 @@ void SaveTool::initialiseMassManager() {
void SaveTool::initialiseFileWatcher() { void SaveTool::initialiseFileWatcher() {
_fileWatcher.emplace(); _fileWatcher.emplace();
_watchIDs[SaveDir] = _fileWatcher->addWatch(_saveDir, this, false); _watchIDs[SaveDir] = _fileWatcher->addWatch(_saveDir, this, false);
_watchIDs[StagingDir] = _fileWatcher->addWatch(_massManager->stagingAreaDirectory(), this, false); _watchIDs[StagingDir] = _fileWatcher->addWatch(_stagingDir, this, false);
_fileWatcher->watch(); _fileWatcher->watch();
} }

View File

@ -166,6 +166,7 @@ class SaveTool: public Platform::Sdl2Application, public efsw::FileWatchListener
std::string _screenshotsDir; std::string _screenshotsDir;
std::string _backupsDir; std::string _backupsDir;
std::string _stagingDir;
enum class GameState : UnsignedByte { enum class GameState : UnsignedByte {
Unknown, NotRunning, Running Unknown, NotRunning, Running

View File

@ -19,6 +19,7 @@
#include <algorithm> #include <algorithm>
#include <Corrade/Containers/Reference.h> #include <Corrade/Containers/Reference.h>
#include <Corrade/Utility/Directory.h>
#include <Corrade/Utility/FormatStl.h> #include <Corrade/Utility/FormatStl.h>
#include <Corrade/Utility/String.h> #include <Corrade/Utility/String.h>
@ -528,7 +529,7 @@ void SaveTool::drawMassManager() {
ImGui::TextUnformatted("Staging area"); ImGui::TextUnformatted("Staging area");
ImGui::SameLine(); ImGui::SameLine();
if(ImGui::SmallButton(ICON_FA_FOLDER_OPEN " Open staging folder")) { if(ImGui::SmallButton(ICON_FA_FOLDER_OPEN " Open staging folder")) {
openUri(_massManager->stagingAreaDirectory()); openUri(Utility::Directory::toNativeSeparators(_stagingDir));
} }
for(const auto& pair : _massManager->stagedMasses()) { for(const auto& pair : _massManager->stagedMasses()) {

View File

@ -41,14 +41,14 @@ void SaveTool::drawMainMenu() {
} }
if(ImGui::BeginMenu(ICON_FA_FOLDER_OPEN " Open manager directory")) { if(ImGui::BeginMenu(ICON_FA_FOLDER_OPEN " Open manager directory")) {
if(ImGui::MenuItem(ICON_FA_EXCHANGE_ALT " Staging area", nullptr, false, _massManager != nullptr)) {
openUri(Utility::Directory::toNativeSeparators(_massManager->stagingAreaDirectory()));
}
if(ImGui::MenuItem(ICON_FA_FILE_ARCHIVE " Profile backups", nullptr, false, _profileManager != nullptr)) { if(ImGui::MenuItem(ICON_FA_FILE_ARCHIVE " Profile backups", nullptr, false, _profileManager != nullptr)) {
openUri(Utility::Directory::toNativeSeparators(_backupsDir)); openUri(Utility::Directory::toNativeSeparators(_backupsDir));
} }
if(ImGui::MenuItem(ICON_FA_EXCHANGE_ALT " Staging area", nullptr, false, _massManager != nullptr)) {
openUri(Utility::Directory::toNativeSeparators(_stagingDir));
}
ImGui::EndMenu(); ImGui::EndMenu();
} }