Implement noconfirmation hotkey for deleting savegames in the save dialog. Refs #3962.

Remove the deleteGame duplicate.

This was SVN commit r18996.
This commit is contained in:
elexis 2016-11-25 03:30:16 +00:00
parent 30598bd451
commit f15e900086
4 changed files with 23 additions and 39 deletions

View File

@ -67,6 +67,28 @@ function hasSameMods(metadata, engineInfo)
return modsA.every((mod, index) => mod == modsB[index]);
}
function deleteGame()
{
let gameSelection = Engine.GetGUIObjectByName("gameSelection");
let gameID = gameSelection.list_data[gameSelection.selected];
if (!gameID)
return;
if (Engine.HotkeyIsPressed("session.savedgames.noconfirmation"))
reallyDeleteGame(gameID);
else
messageBox(
500, 200,
sprintf(translate("\"%(label)s\""), {
"label": gameSelection.list[gameSelection.selected]
}) + "\n" + translate("Saved game will be permanently deleted, are you sure?"),
translate("DELETE"),
[translate("No"), translate("Yes")],
[null, function(){ reallyDeleteGame(gameID); }]
);
}
function reallyDeleteGame(gameID)
{
if (!Engine.DeleteSavedGame(gameID))

View File

@ -160,25 +160,3 @@ function reallyLoadGame(gameId)
"savedGUIData": metadata.gui
});
}
function deleteGame()
{
let gameSelection = Engine.GetGUIObjectByName("gameSelection");
let gameID = gameSelection.list_data[gameSelection.selected];
if (!gameID)
return;
if (Engine.HotkeyIsPressed("session.savedgames.noconfirmation"))
reallyDeleteGame(gameID);
else
messageBox(
500, 200,
sprintf(translate("\"%(label)s\""), {
"label": gameSelection.list[gameSelection.selected]
}) + "\n" + translate("Saved game will be permanently deleted, are you sure?"),
translate("DELETE"),
[translate("No"), translate("Yes")],
[null, function(){ reallyDeleteGame(gameID); }]
);
}

View File

@ -80,22 +80,6 @@ function closeSave()
Engine.PopGuiPageCB(0);
}
function deleteGame()
{
let gameSelection = Engine.GetGUIObjectByName("gameSelection");
let gameLabel = gameSelection.list[gameSelection.selected];
let gameID = gameSelection.list_data[gameSelection.selected];
messageBox(
500, 200,
sprintf(translate("\"%(label)s\""), { "label": gameLabel }) + "\n" +
translate("Saved game will be permanently deleted, are you sure?"),
translate("DELETE"),
[translate("No"), translate("Yes")],
[null, function(){ reallyDeleteGame(gameID); }]
);
}
// HACK: Engine.SaveGame* expects this function to be defined on the current page.
// That's why we have to pass the data to this page even if we don't need it.
function getSavedGameData()

View File

@ -39,7 +39,7 @@
<action on="Press">closeSave(true);</action>
</object>
<object name="deleteGameButton" type="button" size="33%+20 100%-60 66%-15 100%-32" style="StoneButton">
<object name="deleteGameButton" type="button" size="33%+20 100%-60 66%-15 100%-32" style="StoneButton" hotkey="session.savedgames.delete">
<translatableAttribute id="caption">Delete</translatableAttribute>
<action on="Press">deleteGame();</action>
</object>