Fail gracefully if the screenshots folder doesn't exist.
This commit is contained in:
parent
8cac1a8360
commit
6a30c7d037
6 changed files with 15 additions and 10 deletions
|
@ -56,8 +56,6 @@ EvtMainFrame::EvtMainFrame(wxWindow* parent): MainFrame(parent) {
|
||||||
wxFSW_EVENT_CREATE|wxFSW_EVENT_DELETE|wxFSW_EVENT_MODIFY|wxFSW_EVENT_RENAME, wxString::Format("*%s.sav", _manager.steamId()));
|
wxFSW_EVENT_CREATE|wxFSW_EVENT_DELETE|wxFSW_EVENT_MODIFY|wxFSW_EVENT_RENAME, wxString::Format("*%s.sav", _manager.steamId()));
|
||||||
_watcher.AddTree(wxFileName(Utility::Directory::toNativeSeparators(_manager.stagingAreaDirectory()), wxPATH_WIN),
|
_watcher.AddTree(wxFileName(Utility::Directory::toNativeSeparators(_manager.stagingAreaDirectory()), wxPATH_WIN),
|
||||||
wxFSW_EVENT_CREATE|wxFSW_EVENT_DELETE|wxFSW_EVENT_MODIFY|wxFSW_EVENT_RENAME, "*.sav");
|
wxFSW_EVENT_CREATE|wxFSW_EVENT_DELETE|wxFSW_EVENT_MODIFY|wxFSW_EVENT_RENAME, "*.sav");
|
||||||
_watcher.AddTree(wxFileName(Utility::Directory::toNativeSeparators(_manager.screenshotDirectory()), wxPATH_WIN),
|
|
||||||
wxFSW_EVENT_CREATE|wxFSW_EVENT_DELETE, "*.png"); // Not monitoring wxFSW_EVENT_{MODIFY,RENAME}, because they're a massive pain to handle. Ugh.
|
|
||||||
|
|
||||||
std::vector<std::string> v = _manager.initialiseStagingArea();
|
std::vector<std::string> v = _manager.initialiseStagingArea();
|
||||||
for(const std::string& s : v) {
|
for(const std::string& s : v) {
|
||||||
|
@ -66,6 +64,15 @@ EvtMainFrame::EvtMainFrame(wxWindow* parent): MainFrame(parent) {
|
||||||
|
|
||||||
_gameCheckTimer.Start(3000);
|
_gameCheckTimer.Start(3000);
|
||||||
|
|
||||||
|
if(!_manager.findScreenshotDirectory()) {
|
||||||
|
warningMessage("Screenshot manager not ready:\n\n" + _manager.lastError());
|
||||||
|
_screenshotsPanel->Disable();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
_watcher.AddTree(wxFileName(Utility::Directory::toNativeSeparators(_manager.screenshotDirectory()), wxPATH_WIN),
|
||||||
|
wxFSW_EVENT_CREATE|wxFSW_EVENT_DELETE, "*.png"); // Not monitoring wxFSW_EVENT_{MODIFY,RENAME}, because they're a massive pain to handle. Ugh.
|
||||||
|
|
||||||
_screenshotsList->SetImageList(&_screenshotThumbs, wxIMAGE_LIST_NORMAL);
|
_screenshotsList->SetImageList(&_screenshotThumbs, wxIMAGE_LIST_NORMAL);
|
||||||
|
|
||||||
updateScreenshotList();
|
updateScreenshotList();
|
||||||
|
|
|
@ -186,7 +186,7 @@ MainFrame::MainFrame( wxWindow* parent, wxWindowID id, const wxString& title, co
|
||||||
|
|
||||||
bSizerMainPanel->Add( bSizerGameStatus, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
|
bSizerMainPanel->Add( bSizerGameStatus, 0, wxALIGN_CENTER_HORIZONTAL, 5 );
|
||||||
|
|
||||||
_aboutText = new wxStaticText( _mainPanel, wxID_ANY, wxT("This version of the application was tested on M.A.S.S. Builder early access version 0.4.1.\nIt may or may not work with other versions of the game.\nMade for the M.A.S.S. Builder community by Guillaume Jacquemin."), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTER_HORIZONTAL );
|
_aboutText = new wxStaticText( _mainPanel, wxID_ANY, wxT("This version of the application was tested on M.A.S.S. Builder early access version 0.4.5.\nIt may or may not work with other versions of the game.\nMade for the M.A.S.S. Builder community by Guillaume Jacquemin."), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTER_HORIZONTAL );
|
||||||
_aboutText->Wrap( -1 );
|
_aboutText->Wrap( -1 );
|
||||||
bSizerMainPanel->Add( _aboutText, 0, wxEXPAND|wxRIGHT|wxLEFT|wxALIGN_CENTER_HORIZONTAL, 5 );
|
bSizerMainPanel->Add( _aboutText, 0, wxEXPAND|wxRIGHT|wxLEFT|wxALIGN_CENTER_HORIZONTAL, 5 );
|
||||||
|
|
||||||
|
|
|
@ -48,7 +48,7 @@
|
||||||
<property name="size">-1,-1</property>
|
<property name="size">-1,-1</property>
|
||||||
<property name="style">wxCAPTION|wxCLOSE_BOX|wxMINIMIZE_BOX|wxSYSTEM_MENU</property>
|
<property name="style">wxCAPTION|wxCLOSE_BOX|wxMINIMIZE_BOX|wxSYSTEM_MENU</property>
|
||||||
<property name="subclass">; ; forward_declare</property>
|
<property name="subclass">; ; forward_declare</property>
|
||||||
<property name="title">M.A.S.S. Manager 1.1.1</property>
|
<property name="title">M.A.S.S. Manager 1.1.2</property>
|
||||||
<property name="tooltip"></property>
|
<property name="tooltip"></property>
|
||||||
<property name="window_extra_style"></property>
|
<property name="window_extra_style"></property>
|
||||||
<property name="window_name"></property>
|
<property name="window_name"></property>
|
||||||
|
@ -1968,7 +1968,7 @@
|
||||||
<property name="gripper">0</property>
|
<property name="gripper">0</property>
|
||||||
<property name="hidden">0</property>
|
<property name="hidden">0</property>
|
||||||
<property name="id">wxID_ANY</property>
|
<property name="id">wxID_ANY</property>
|
||||||
<property name="label">This version of the application was tested on M.A.S.S. Builder early access version 0.4.1.
It may or may not work with other versions of the game.
Made for the M.A.S.S. Builder community by Guillaume Jacquemin.</property>
|
<property name="label">This version of the application was tested on M.A.S.S. Builder early access version 0.4.5.
It may or may not work with other versions of the game.
Made for the M.A.S.S. Builder community by Guillaume Jacquemin.</property>
|
||||||
<property name="markup">0</property>
|
<property name="markup">0</property>
|
||||||
<property name="max_size"></property>
|
<property name="max_size"></property>
|
||||||
<property name="maximize_button">0</property>
|
<property name="maximize_button">0</property>
|
||||||
|
|
|
@ -96,7 +96,7 @@ class MainFrame : public wxFrame
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
MainFrame( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxT("M.A.S.S. Manager 1.1.1"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxCAPTION|wxCLOSE_BOX|wxMINIMIZE_BOX|wxSYSTEM_MENU|wxCLIP_CHILDREN|wxTAB_TRAVERSAL );
|
MainFrame( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxT("M.A.S.S. Manager 1.1.2"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxCAPTION|wxCLOSE_BOX|wxMINIMIZE_BOX|wxSYSTEM_MENU|wxCLIP_CHILDREN|wxTAB_TRAVERSAL );
|
||||||
|
|
||||||
~MainFrame();
|
~MainFrame();
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,7 @@ constexpr unsigned char active_slot_locator[] = { 'A', 'c', 't', 'i', 'v', 'e',
|
||||||
constexpr unsigned char credits_locator[] = { 'C', 'r', 'e', 'd', 'i', 't', '\0', 0x0C, '\0', '\0', '\0', 'I', 'n', 't', 'P', 'r', 'o', 'p', 'e', 'r', 't', 'y', '\0' };
|
constexpr unsigned char credits_locator[] = { 'C', 'r', 'e', 'd', 'i', 't', '\0', 0x0C, '\0', '\0', '\0', 'I', 'n', 't', 'P', 'r', 'o', 'p', 'e', 'r', 't', 'y', '\0' };
|
||||||
|
|
||||||
MassManager::MassManager() {
|
MassManager::MassManager() {
|
||||||
_ready = findSaveDirectory() && findSteamId() && findScreenshotDirectory();
|
_ready = findSaveDirectory() && findSteamId();
|
||||||
|
|
||||||
if(!_ready) {
|
if(!_ready) {
|
||||||
return;
|
return;
|
||||||
|
@ -59,8 +59,6 @@ MassManager::MassManager() {
|
||||||
_hangars[i]._filename = Utility::formatString("Unit{:.2d}{}.sav", i, _steamId);
|
_hangars[i]._filename = Utility::formatString("Unit{:.2d}{}.sav", i, _steamId);
|
||||||
refreshHangar(i);
|
refreshHangar(i);
|
||||||
}
|
}
|
||||||
|
|
||||||
loadScreenshots();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
auto MassManager::ready() -> bool {
|
auto MassManager::ready() -> bool {
|
||||||
|
|
|
@ -94,6 +94,7 @@ class MassManager {
|
||||||
auto stagedMassName(int index) -> std::string;
|
auto stagedMassName(int index) -> std::string;
|
||||||
auto stagedMassName(const std::string& filename) -> std::string;
|
auto stagedMassName(const std::string& filename) -> std::string;
|
||||||
|
|
||||||
|
auto findScreenshotDirectory() -> bool;
|
||||||
void loadScreenshots();
|
void loadScreenshots();
|
||||||
auto screenshots() -> std::vector<Screenshot> const&;
|
auto screenshots() -> std::vector<Screenshot> const&;
|
||||||
void sortScreenshots(SortType type);
|
void sortScreenshots(SortType type);
|
||||||
|
@ -107,7 +108,6 @@ class MassManager {
|
||||||
auto findSaveDirectory() -> bool;
|
auto findSaveDirectory() -> bool;
|
||||||
auto findSteamId() -> bool;
|
auto findSteamId() -> bool;
|
||||||
|
|
||||||
auto findScreenshotDirectory() -> bool;
|
|
||||||
void addScreenshot(const std::string& filename);
|
void addScreenshot(const std::string& filename);
|
||||||
|
|
||||||
bool _ready = false;
|
bool _ready = false;
|
||||||
|
|
Loading…
Reference in a new issue