1
0
forked from 0ad/0ad

Create a saveSettingAndWriteToUserConfig() function to absorb some duplication in the gui

Patch By: ffffffff
Comments By: leper, mimo
Differential Revision: https://code.wildfiregames.com/D1211
This was SVN commit r21036.
This commit is contained in:
bb 2018-01-27 20:59:19 +00:00
parent cb8a7e48a0
commit 2d57478781
10 changed files with 25 additions and 53 deletions

View File

@ -7,6 +7,15 @@ var g_SoundNotifications = {
"nick": { "soundfile": "audio/interface/ui/chat_alert.ogg", "threshold": 3000 }
};
/**
* Save setting for current instance and write setting to the user config file.
*/
function saveSettingAndWriteToUserConfig(setting, value)
{
Engine.ConfigDB_CreateValue("user", setting, value);
Engine.ConfigDB_WriteValueToFile("user", setting, value, "config/user.cfg");
}
/**
* Returns translated history and gameplay data of all civs, optionally including a mock gaia civ.
*/

View File

@ -1097,10 +1097,7 @@ function init(attribs)
// Replace empty playername when entering a singleplayermatch for the first time
if (!g_IsNetworked)
{
Engine.ConfigDB_CreateValue("user", "playername.singleplayer", singleplayerName());
Engine.ConfigDB_WriteValueToFile("user", "playername.singleplayer", singleplayerName(), "config/user.cfg");
}
saveSettingAndWriteToUserConfig("playername.singleplayer", singleplayerName());
initDefaults();
supplementDefaults();
@ -1377,13 +1374,6 @@ function initSPTips()
Engine.GetGUIObjectByName("aiTips").caption = Engine.TranslateLines(Engine.ReadFile("gui/gamesetup/ai.txt"));
}
function saveSPTipsSetting()
{
let enabled = String(Engine.GetGUIObjectByName("displaySPTips").checked);
Engine.ConfigDB_CreateValue("user", "gui.gamesetup.enabletips", enabled);
Engine.ConfigDB_WriteValueToFile("user", "gui.gamesetup.enabletips", enabled, "config/user.cfg");
}
/**
* Distribute the currently visible settings over the settings panel.
* First calculate the number of columns required, then place the objects.

View File

@ -136,7 +136,7 @@
<translatableAttribute id="caption">Show this message in the future</translatableAttribute>
</object>
<object name="displaySPTips" size="8 100%-30 28 100%-8" type="checkbox" style="ModernTickBox">
<action on="Press">saveSPTipsSetting();</action>
<action on="Press">saveSettingAndWriteToUserConfig("gui.gamesetup.enabletips", String(this.checked));</action>
</object>
</object>

View File

@ -272,23 +272,13 @@ function switchSetupPage(newPage)
Engine.GetGUIObjectByName("continueButton").hidden = newPage == "pageConnecting";
}
function saveSTUNSetting(enabled)
{
Engine.ConfigDB_CreateValue("user", "lobby.stun.enabled", enabled);
Engine.ConfigDB_WriteValueToFile("user", "lobby.stun.enabled", enabled, "config/user.cfg");
}
function startHost(playername, servername, port)
{
startConnectionStatus("server");
// Save player name
Engine.ConfigDB_CreateValue("user", "playername.multiplayer", playername);
Engine.ConfigDB_WriteValueToFile("user", "playername.multiplayer", playername, "config/user.cfg");
saveSettingAndWriteToUserConfig("playername.multiplayer", playername);
// Save port
Engine.ConfigDB_CreateValue("user", "multiplayerhosting.port", port);
Engine.ConfigDB_WriteValueToFile("user", "multiplayerhosting.port", port, "config/user.cfg");
saveSettingAndWriteToUserConfig("multiplayerhosting.port", port);
let hostFeedback = Engine.GetGUIObjectByName("hostFeedback");
@ -366,12 +356,9 @@ function startJoin(playername, ip, port, useSTUN, hostJID = "")
else
{
// Only save the player name and host address if they're valid and we're not in the lobby
Engine.ConfigDB_CreateValue("user", "playername.multiplayer", playername);
Engine.ConfigDB_WriteValueToFile("user", "playername.multiplayer", playername, "config/user.cfg");
Engine.ConfigDB_CreateValue("user", "multiplayerserver", ip);
Engine.ConfigDB_WriteValueToFile("user", "multiplayerserver", ip, "config/user.cfg");
Engine.ConfigDB_CreateValue("user", "multiplayerjoining.port", port);
Engine.ConfigDB_WriteValueToFile("user", "multiplayerjoining.port", port, "config/user.cfg");
saveSettingAndWriteToUserConfig("playername.multiplayer", playername);
saveSettingAndWriteToUserConfig("multiplayerserver", ip);
saveSettingAndWriteToUserConfig("multiplayerjoining.port", port);
}
return true;
}

View File

@ -108,7 +108,7 @@
<object name="hostSTUNWrapper">
<object name="useSTUN" size="120 116 152 146" type="checkbox" style="ModernTickBox">
<action on="Press">saveSTUNSetting(String(this.checked));</action>
<action on="Press">saveSettingAndWriteToUserConfig("lobby.stun.enabled", String(this.checked));</action>
</object>
<object type="text" size="146 106 100% 146" style="ModernLeftLabelText">
<translatableAttribute id="caption">Use STUN to work around firewalls</translatableAttribute>

View File

@ -783,10 +783,7 @@ function toggleBuddy()
updateToggleBuddy();
// Don't save empty strings to the config file
let buddies = g_Buddies.filter(nick => nick).join(g_BuddyListDelimiter) || g_BuddyListDelimiter;
Engine.ConfigDB_CreateValue("user", "lobby.buddies", buddies);
Engine.ConfigDB_WriteValueToFile("user", "lobby.buddies", buddies, "config/user.cfg");
saveSettingAndWriteToUserConfig("lobby.buddies", g_Buddies.filter(nick => nick).join(g_BuddyListDelimiter) || g_BuddyListDelimiter);
updatePlayerList();
updateGameList();

View File

@ -191,15 +191,12 @@ function onTick()
{
Engine.PopGuiPage();
Engine.SwitchGuiPage("page_lobby.xml", { "dialog": false });
Engine.ConfigDB_CreateValue("user", "playername.multiplayer", username);
Engine.ConfigDB_WriteValueToFile("user", "playername.multiplayer", username, "config/user.cfg");
Engine.ConfigDB_CreateValue("user", "lobby.login", username);
Engine.ConfigDB_WriteValueToFile("user", "lobby.login", username, "config/user.cfg");
saveSettingAndWriteToUserConfig("playername.multiplayer", username);
saveSettingAndWriteToUserConfig("lobby.login", username);
// We only store the encrypted password, so make sure to re-encrypt it if changed before saving.
if (password != g_EncryptedPassword.substring(0, 10))
g_EncryptedPassword = Engine.EncryptPassword(password, username);
Engine.ConfigDB_CreateValue("user", "lobby.password", g_EncryptedPassword);
Engine.ConfigDB_WriteValueToFile("user", "lobby.password", g_EncryptedPassword, "config/user.cfg");
saveSettingAndWriteToUserConfig("lobby.password", g_EncryptedPassword);
break;
}
}

View File

@ -350,10 +350,7 @@ function updateChatHistory()
function onToggleChatWindowExtended()
{
// Save user preference
let extended = Engine.GetGUIObjectByName("extendedChat").checked.toString();
Engine.ConfigDB_CreateValue("user", "chat.session.extended", extended);
Engine.ConfigDB_WriteValueToFile("user", "chat.session.extended", extended, "config/user.cfg");
saveSettingAndWriteToUserConfig("chat.session.extended", String(Engine.GetGUIObjectByName("extendedChat").checked));
resizeChatWindow();

View File

@ -1280,8 +1280,7 @@ function recalculateStatusBarDisplay(remove = false)
function toggleConfigBool(configName)
{
let enabled = Engine.ConfigDB_GetValue("user", configName) != "true";
Engine.ConfigDB_CreateValue("user", configName, String(enabled));
Engine.ConfigDB_WriteValueToFile("user", configName, String(enabled), "config/user.cfg");
saveSettingAndWriteToUserConfig(configName, String(enabled));
return enabled;
}

View File

@ -28,12 +28,8 @@
<object name="btnOK" type="button" style="ModernButtonRed" size="18 100%-45 50%-5 100%-17" hotkey="cancel">
<translatableAttribute id="caption">OK</translatableAttribute>
<action on="Press"><![CDATA[
let enabled = String(Engine.GetGUIObjectByName("displaySplashScreen").checked);
Engine.ConfigDB_CreateValue("user", "gui.splashscreen.enable", enabled);
Engine.ConfigDB_WriteValueToFile("user", "gui.splashscreen.enable", enabled, "config/user.cfg");
let version = Engine.GetFileMTime("gui/splashscreen/splashscreen.txt");
Engine.ConfigDB_CreateValue("user", "gui.splashscreen.version", version);
Engine.ConfigDB_WriteValueToFile("user", "gui.splashscreen.version", version, "config/user.cfg");
saveSettingAndWriteToUserConfig("gui.splashscreen.enable", String(Engine.GetGUIObjectByName("displaySplashScreen").checked));
saveSettingAndWriteToUserConfig("gui.splashscreen.version", Engine.GetFileMTime("gui/splashscreen/splashscreen.txt"));
Engine.PopGuiPageCB();
]]></action>
</object>