MainFrame: add logic to unsafe mode checkbox.
This commit is contained in:
parent
0b1ecc52f5
commit
5b23303a48
2 changed files with 133 additions and 70 deletions
|
@ -192,6 +192,7 @@ void EvtMainFrame::companyRenameEvent(wxMouseEvent&) {
|
|||
int result = dialog.ShowModal();
|
||||
|
||||
if(result == wxID_OK) {
|
||||
if(_unsafeMode == false) {
|
||||
switch(_mbManager.gameState()) {
|
||||
case GameState::Unknown:
|
||||
errorMessage(error_prefix + "For security reasons, renaming the company is disabled if the game's status is unknown.");
|
||||
|
@ -212,6 +213,18 @@ void EvtMainFrame::companyRenameEvent(wxMouseEvent&) {
|
|||
break;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if(!_profileManager.currentProfile()->renameCompany(dialog.getName())) {
|
||||
errorMessage(error_prefix + _profileManager.currentProfile()->lastError());
|
||||
}
|
||||
else {
|
||||
_profileChoice->SetString(_profileChoice->GetCurrentSelection(),
|
||||
wxString::Format("%s%s",
|
||||
_profileManager.currentProfile()->companyName(),
|
||||
_profileManager.currentProfile()->type() == ProfileType::Demo ? " (Demo)" : ""));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void EvtMainFrame::importMassEvent(wxCommandEvent&) {
|
||||
|
@ -238,6 +251,7 @@ void EvtMainFrame::importMassEvent(wxCommandEvent&) {
|
|||
return;
|
||||
}
|
||||
|
||||
if(_unsafeMode == false) {
|
||||
switch(_mbManager.gameState()) {
|
||||
case GameState::Unknown:
|
||||
errorMessage(error_prefix + "For security reasons, importing is disabled if the game's status is unknown.");
|
||||
|
@ -251,6 +265,12 @@ void EvtMainFrame::importMassEvent(wxCommandEvent&) {
|
|||
errorMessage(error_prefix + "Importing a M.A.S.S. is disabled while the game is running.");
|
||||
break;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if(!_massManager->importMass(staged_selection, selected_hangar)) {
|
||||
errorMessage(error_prefix + _massManager->lastError());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void EvtMainFrame::exportMassEvent(wxCommandEvent&) {
|
||||
|
@ -279,6 +299,7 @@ void EvtMainFrame::moveMassEvent(wxCommandEvent&) {
|
|||
return;
|
||||
}
|
||||
|
||||
if(_unsafeMode == false) {
|
||||
switch(_mbManager.gameState()) {
|
||||
case GameState::Unknown:
|
||||
errorMessage(error_prefix + "For security reasons, moving a M.A.S.S. is disabled if the game's status is unknown.");
|
||||
|
@ -292,6 +313,12 @@ void EvtMainFrame::moveMassEvent(wxCommandEvent&) {
|
|||
errorMessage(error_prefix + "Moving a M.A.S.S. is disabled while the game is running.");
|
||||
break;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if(!_massManager->moveMass(source_slot, choice - 1)) {
|
||||
errorMessage(error_prefix + _massManager->lastError());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void EvtMainFrame::deleteMassEvent(wxCommandEvent&) {
|
||||
|
@ -302,6 +329,7 @@ void EvtMainFrame::deleteMassEvent(wxCommandEvent&) {
|
|||
return;
|
||||
}
|
||||
|
||||
if(_unsafeMode == false) {
|
||||
switch(_mbManager.gameState()) {
|
||||
case GameState::Unknown:
|
||||
errorMessage(error_prefix + "For security reasons, deleting a M.A.S.S. is disabled if the game's status is unknown.");
|
||||
|
@ -315,6 +343,12 @@ void EvtMainFrame::deleteMassEvent(wxCommandEvent&) {
|
|||
errorMessage(error_prefix + "Deleting a M.A.S.S. is disabled while the game is running.");
|
||||
break;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if(!_massManager->deleteMass(_installedListView->GetFirstSelected())) {
|
||||
errorMessage(error_prefix + _massManager->lastError());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void EvtMainFrame::renameMassEvent(wxCommandEvent&) {
|
||||
|
@ -325,6 +359,7 @@ void EvtMainFrame::renameMassEvent(wxCommandEvent&) {
|
|||
int result = dialog.ShowModal();
|
||||
|
||||
if(result == wxID_OK) {
|
||||
if(_unsafeMode == false) {
|
||||
switch(_mbManager.gameState()) {
|
||||
case GameState::Unknown:
|
||||
errorMessage(error_prefix + "For security reasons, renaming a M.A.S.S. is disabled if the game's status is unknown.");
|
||||
|
@ -339,6 +374,12 @@ void EvtMainFrame::renameMassEvent(wxCommandEvent&) {
|
|||
break;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if(!_massManager->renameMass(_installedListView->GetFirstSelected(), dialog.getName())) {
|
||||
errorMessage(error_prefix + _massManager->lastError());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void EvtMainFrame::openSaveDirEvent(wxCommandEvent&) {
|
||||
|
@ -465,6 +506,25 @@ void EvtMainFrame::gameCheckTimerEvent(wxTimerEvent&) {
|
|||
isGameRunning();
|
||||
}
|
||||
|
||||
void EvtMainFrame::unsafeCheckboxEvent(wxCommandEvent& event) {
|
||||
if(event.IsChecked() == true) {
|
||||
int confirmation = wxMessageBox("Are you sure you want to enable unsafe mode ?\n\n"
|
||||
"Unsafe mode will allow you to perform changes even while the game is running, which can result in weird behaviour or even data corruption.",
|
||||
"Question", wxYES_NO|wxCENTRE|wxICON_WARNING, this);
|
||||
if(confirmation == wxYES) {
|
||||
_unsafeMode = true;
|
||||
}
|
||||
else {
|
||||
_unsafeCheckbox->SetValue(false);
|
||||
}
|
||||
}
|
||||
else {
|
||||
_unsafeMode = false;
|
||||
}
|
||||
|
||||
updateCommandsState();
|
||||
}
|
||||
|
||||
void EvtMainFrame::saveFileEventHandler(int event_type, const wxString& event_file, const wxFileSystemWatcherEvent& event) {
|
||||
wxRegEx regex;
|
||||
|
||||
|
@ -649,11 +709,11 @@ void EvtMainFrame::updateCommandsState() {
|
|||
GameState game_state = _mbManager.gameState();
|
||||
MassState mass_state = _massManager->massState(selection);
|
||||
|
||||
_importButton->Enable(selection != -1 && staged_selection != -1 && game_state == GameState::NotRunning);
|
||||
_importButton->Enable(selection != -1 && staged_selection != -1 && (_unsafeMode == true || game_state == GameState::NotRunning));
|
||||
_exportButton->Enable(selection != -1);
|
||||
_moveButton->Enable(selection != -1 && game_state == GameState::NotRunning && mass_state == MassState::Valid);
|
||||
_deleteButton->Enable(selection != -1 && game_state == GameState::NotRunning && mass_state != MassState::Empty);
|
||||
_renameButton->Enable(selection != -1 && game_state == GameState::NotRunning && mass_state == MassState::Valid);
|
||||
_moveButton->Enable(selection != -1 && (_unsafeMode == true || game_state == GameState::NotRunning) && mass_state == MassState::Valid);
|
||||
_deleteButton->Enable(selection != -1 && (_unsafeMode == true || game_state == GameState::NotRunning) && mass_state != MassState::Empty);
|
||||
_renameButton->Enable(selection != -1 && (_unsafeMode == true || game_state == GameState::NotRunning) && mass_state == MassState::Valid);
|
||||
_deleteStagedButton->Enable(staged_selection != -1);
|
||||
|
||||
long screenshot_selection = _screenshotsList->GetNextItem(-1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED);
|
||||
|
|
|
@ -75,6 +75,7 @@ class EvtMainFrame: public MainFrame {
|
|||
void tabChangeEvent(wxNotebookEvent& event);
|
||||
void fileUpdateEvent(wxFileSystemWatcherEvent& event);
|
||||
void gameCheckTimerEvent(wxTimerEvent&);
|
||||
void unsafeCheckboxEvent(wxCommandEvent& event);
|
||||
|
||||
private:
|
||||
void saveFileEventHandler(int event_type, const wxString& event_file, const wxFileSystemWatcherEvent& event);
|
||||
|
@ -97,6 +98,8 @@ class EvtMainFrame: public MainFrame {
|
|||
void warningMessage(const wxString& message);
|
||||
void errorMessage(const wxString& message);
|
||||
|
||||
bool _unsafeMode = false;
|
||||
|
||||
MassBuilderManager _mbManager;
|
||||
ProfileManager _profileManager;
|
||||
Containers::Pointer<MassManager> _massManager;
|
||||
|
|
Loading…
Reference in a new issue