ISOProperties: Don't block when opening default INI in text editor

The purpose of blocking is to reload user INIs after they
have been edited. However, ISOProperties never reloads
default INIs, because they aren't meant to be edited.
Blocking on default INIs is thus useless, and it's
rather annoying for games that have two default INIs,
because it makes it impossible to see both at once.
This commit is contained in:
JosJuice 2015-04-25 22:15:48 +02:00
parent 645aa5af8b
commit db1d81ebf8
2 changed files with 18 additions and 11 deletions

View File

@ -1180,7 +1180,7 @@ bool CISOProperties::SaveGameConfig()
return success;
}
void CISOProperties::LaunchExternalEditor(const std::string& filename)
void CISOProperties::LaunchExternalEditor(const std::string& filename, bool wait_until_closed)
{
#ifdef __APPLE__
// wxTheMimeTypesManager is not yet implemented for wxCocoa
@ -1203,18 +1203,25 @@ void CISOProperties::LaunchExternalEditor(const std::string& filename)
if (OpenCommand.IsEmpty())
{
WxUtils::ShowErrorDialog(_("Couldn't find open command for extension 'ini'!"));
return;
}
long result;
if (wait_until_closed)
result = wxExecute(OpenCommand, wxEXEC_SYNC);
else
result = wxExecute(OpenCommand);
if (result == -1)
{
if (wxExecute(OpenCommand, wxEXEC_SYNC) == -1)
WxUtils::ShowErrorDialog(_("wxExecute returned -1 on application run!"));
WxUtils::ShowErrorDialog(_("wxExecute returned -1 on application run!"));
return;
}
if (wait_until_closed)
bRefreshList = true; // Just in case
#endif
bRefreshList = true; // Just in case
// Once we're done with the ini edit, give the focus back to Dolphin
SetFocus();
}
void CISOProperties::OnEditConfig(wxCommandEvent& WXUNUSED (event))
@ -1226,7 +1233,7 @@ void CISOProperties::OnEditConfig(wxCommandEvent& WXUNUSED (event))
std::fstream blankFile(GameIniFileLocal, std::ios::out);
blankFile.close();
}
LaunchExternalEditor(GameIniFileLocal);
LaunchExternalEditor(GameIniFileLocal, true);
GameIniLocal.Load(GameIniFileLocal);
LoadGameConfig();
}
@ -1283,7 +1290,7 @@ void CISOProperties::OnShowDefaultConfig(wxCommandEvent& WXUNUSED (event))
{
std::string path = File::GetSysDirectory() + GAMESETTINGS_DIR DIR_SEP + filename;
if (File::Exists(path))
LaunchExternalEditor(path);
LaunchExternalEditor(path, false);
}
}

View File

@ -195,7 +195,7 @@ private:
IDM_BNRSAVEAS
};
void LaunchExternalEditor(const std::string& filename);
void LaunchExternalEditor(const std::string& filename, bool wait_until_closed);
void CreateGUIControls(bool);
void OnClose(wxCloseEvent& event);