SaveTool: add skeleton for update checking.
This commit is contained in:
parent
4dd2064aae
commit
d0eee0caeb
3 changed files with 39 additions and 2 deletions
|
@ -30,6 +30,8 @@
|
|||
#include <Magnum/ImGuiIntegration/Integration.h>
|
||||
#include <Magnum/ImGuiIntegration/Context.hpp>
|
||||
|
||||
#include <cpr/cpr.h>
|
||||
|
||||
#include <windef.h>
|
||||
#include <winuser.h>
|
||||
#include <processthreadsapi.h>
|
||||
|
@ -81,12 +83,15 @@ SaveTool::SaveTool(const Arguments& arguments):
|
|||
|
||||
initialiseGui();
|
||||
|
||||
if((_initEventId = SDL_RegisterEvents(1)) == UnsignedInt(-1)) {
|
||||
if((_initEventId = SDL_RegisterEvents(2)) == UnsignedInt(-1)) {
|
||||
SDL_ShowSimpleMessageBox(SDL_MESSAGEBOX_ERROR, "Error",
|
||||
"SDL_RegisterEvents failed in SaveTool::SaveTool(). Exiting...", window());
|
||||
exit(EXIT_FAILURE);
|
||||
return;
|
||||
}
|
||||
|
||||
_updateEventId = _initEventId + 1;
|
||||
|
||||
_backupsDir = Utility::Directory::join(Utility::Directory::path(Utility::Directory::executableLocation()), "backups");
|
||||
_stagingDir = Utility::Directory::join(Utility::Directory::path(Utility::Directory::executableLocation()), "staging");
|
||||
|
||||
|
@ -101,6 +106,7 @@ SaveTool::SaveTool(const Arguments& arguments):
|
|||
if(!findGameDataDirectory()) {
|
||||
SDL_ShowSimpleMessageBox(SDL_MESSAGEBOX_ERROR, "Error initialising the app", _lastError.c_str(), window());
|
||||
exit(EXIT_FAILURE);
|
||||
return;
|
||||
}
|
||||
|
||||
_configDir = Utility::Directory::join(_gameDataDir, "Saved/Config/WindowsNoEditor");
|
||||
|
@ -110,6 +116,7 @@ SaveTool::SaveTool(const Arguments& arguments):
|
|||
if(SDL_InitSubSystem(SDL_INIT_TIMER) != 0) {
|
||||
SDL_ShowSimpleMessageBox(SDL_MESSAGEBOX_ERROR, "Error initialising the app", SDL_GetError(), window());
|
||||
exit(EXIT_FAILURE);
|
||||
return;
|
||||
}
|
||||
|
||||
checkGameState();
|
||||
|
@ -122,6 +129,7 @@ SaveTool::SaveTool(const Arguments& arguments):
|
|||
if(_gameCheckTimerId == 0) {
|
||||
SDL_ShowSimpleMessageBox(SDL_MESSAGEBOX_ERROR, "Error", SDL_GetError(), window());
|
||||
exit(EXIT_FAILURE);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -247,6 +255,9 @@ void SaveTool::anyEvent(SDL_Event& event) {
|
|||
if(event.type == _initEventId) {
|
||||
initEvent(event);
|
||||
}
|
||||
else if(event.type == _updateEventId) {
|
||||
updateCheckEvent(event);
|
||||
}
|
||||
}
|
||||
|
||||
void SaveTool::initEvent(SDL_Event& event) {
|
||||
|
@ -266,6 +277,12 @@ void SaveTool::initEvent(SDL_Event& event) {
|
|||
}
|
||||
}
|
||||
|
||||
void SaveTool::updateCheckEvent(SDL_Event& event) {
|
||||
_thread.join();
|
||||
|
||||
// TODO: implement
|
||||
}
|
||||
|
||||
void SaveTool::initialiseGui() {
|
||||
ImGui::CreateContext();
|
||||
|
||||
|
@ -549,3 +566,12 @@ void SaveTool::checkGameState() {
|
|||
_gameState = GameState::Unknown;
|
||||
}
|
||||
}
|
||||
|
||||
void SaveTool::checkForUpdates() {
|
||||
// TODO: implement
|
||||
|
||||
SDL_Event event;
|
||||
SDL_zero(event);
|
||||
event.type = _updateEventId;
|
||||
SDL_PushEvent(&event);
|
||||
}
|
||||
|
|
|
@ -70,6 +70,7 @@ class SaveTool: public Platform::Sdl2Application, public efsw::FileWatchListener
|
|||
ProfileManagerFailure
|
||||
};
|
||||
void initEvent(SDL_Event& event);
|
||||
void updateCheckEvent(SDL_Event& event);
|
||||
|
||||
// Initialisation methods
|
||||
void initialiseGui();
|
||||
|
@ -136,6 +137,8 @@ class SaveTool: public Platform::Sdl2Application, public efsw::FileWatchListener
|
|||
|
||||
void checkGameState();
|
||||
|
||||
void checkForUpdates();
|
||||
|
||||
Utility::Resource _rs{"assets"};
|
||||
|
||||
// GUI-related members
|
||||
|
@ -155,8 +158,10 @@ class SaveTool: public Platform::Sdl2Application, public efsw::FileWatchListener
|
|||
bool _metricsWindow{false};
|
||||
#endif
|
||||
|
||||
std::thread _thread;
|
||||
std::thread _thread; // used for threaded operations such as profile manager init or update checking.
|
||||
|
||||
UnsignedInt _initEventId;
|
||||
UnsignedInt _updateEventId;
|
||||
|
||||
std::string _lastError;
|
||||
|
||||
|
|
|
@ -54,6 +54,12 @@ void SaveTool::drawMainMenu() {
|
|||
|
||||
ImGui::Separator();
|
||||
|
||||
if(ImGui::MenuItem(ICON_FA_SYNC_ALT " Check for updates", nullptr, false, false)) {
|
||||
// TODO: implement
|
||||
}
|
||||
|
||||
ImGui::Separator();
|
||||
|
||||
if(ImGui::MenuItem(ICON_FA_SIGN_OUT_ALT " Quit##QuitMenuItem")) {
|
||||
exit(EXIT_SUCCESS);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue