Use FromJSVal and ToJSVal for GUI boolean conversions.

Consistently warn instead of using implicit conversion when not passing
a boolean, for consistency and callers being more cautious with passed
values.

This was SVN commit r22538.
This commit is contained in:
elexis 2019-07-23 21:46:32 +00:00
parent 62f83eb673
commit eec179a9a8
5 changed files with 12 additions and 9 deletions

View file

@ -2111,7 +2111,7 @@ function updateGUIDropdown(name, playerIdx = undefined)
let indexHidden = isControlArrayElementHidden(playerIdx);
let obj = (playerIdx === undefined ? g_Dropdowns : g_PlayerDropdowns)[name];
let hidden = indexHidden || obj.hidden && obj.hidden(playerIdx);
let hidden = indexHidden || !!obj.hidden && obj.hidden(playerIdx);
let selected = hidden ? -1 : dropdown.list_data.indexOf(String(obj.get(playerIdx)));
let enabled = !indexHidden && (!obj.enabled || obj.enabled(playerIdx));
@ -2142,7 +2142,7 @@ function updateGUICheckbox(name)
let obj = g_Checkboxes[name];
let checked = obj.get();
let hidden = obj.hidden && obj.hidden();
let hidden = !!obj.hidden && obj.hidden();
let enabled = !obj.enabled || obj.enabled();
let [guiName, guiType, guiIdx] = getGUIObjectNameFromSetting(name);

View file

@ -685,7 +685,7 @@ function updateToggleBuddy()
let toggleBuddyButton = Engine.GetGUIObjectByName("toggleBuddyButton");
toggleBuddyButton.caption = g_Buddies.indexOf(playerName) != -1 ? translate("Unmark as Buddy") : translate("Mark as Buddy");
toggleBuddyButton.enabled = playerName && playerName != g_Username;
toggleBuddyButton.enabled = !!playerName && playerName != g_Username;
}
/**
@ -1120,7 +1120,7 @@ function updateGameSelection()
Engine.GetGUIObjectByName("gameInfo").hidden = !game;
Engine.GetGUIObjectByName("joinGameButton").hidden = g_Dialog || !game;
Engine.GetGUIObjectByName("gameInfoEmpty").hidden = game;
Engine.GetGUIObjectByName("gameInfoEmpty").hidden = !!game;
if (!game)
return;

View file

@ -23,7 +23,7 @@ function init(data)
let savedGames = Engine.GetSavedGames().sort(sortDecreasingDate);
let gameSelection = Engine.GetGUIObjectByName("gameSelection");
gameSelection.enabled = savedGames.length;
gameSelection.enabled = savedGames.length != 0;
if (!savedGames.length)
{

View file

@ -576,10 +576,10 @@ function controlsPlayer(playerID)
{
let playerStates = GetSimState().players;
return playerStates[Engine.GetPlayerID()] &&
return !!playerStates[Engine.GetPlayerID()] &&
playerStates[Engine.GetPlayerID()].controlsAll ||
Engine.GetPlayerID() == playerID &&
playerStates[playerID] &&
!!playerStates[playerID] &&
playerStates[playerID].state != "defeated";
}

View file

@ -132,7 +132,7 @@ bool JSI_IGUIObject::getProperty(JSContext* cx, JS::HandleObject obj, JS::Handle
{
bool value;
GUI<bool>::GetSetting(e, propName, value);
vp.set(JS::BooleanValue(value));
ScriptInterface::ToJSVal(cx, vp, value);
break;
}
@ -465,7 +465,10 @@ bool JSI_IGUIObject::setProperty(JSContext* cx, JS::HandleObject obj, JS::Handle
case GUIST_bool:
{
bool value = JS::ToBoolean(vp);
bool value;
if (!ScriptInterface::FromJSVal(cx, vp, value))
return false;
GUI<bool>::SetSetting(e, propName, value);
break;
}