Specialize Params::get_as<bool>() to read "true" as a true bool

Just like new params impl Param<bool>::fromString()
This commit is contained in:
David Capello 2019-03-22 11:47:45 -03:00
parent 674f9ff3b5
commit 3c35887abf
8 changed files with 26 additions and 30 deletions

View File

@ -104,12 +104,7 @@ AutocropSpriteCommand::AutocropSpriteCommand()
void AutocropSpriteCommand::onLoadParams(const app::Params& params)
{
m_byGrid = false;
if (params.has_param("byGrid")) {
std::string isByGrid = params.get("byGrid");
if (isByGrid == "true")
m_byGrid = true;
}
m_byGrid = params.get_as<bool>("byGrid");
}
bool AutocropSpriteCommand::onEnabled(Context* context)

View File

@ -44,8 +44,7 @@ FlattenLayersCommand::FlattenLayersCommand()
void FlattenLayersCommand::onLoadParams(const Params& params)
{
std::string visibleOnly = params.get("visibleOnly");
m_visibleOnly = (visibleOnly == "true");
m_visibleOnly = params.get_as<bool>("visibleOnly");
}
bool FlattenLayersCommand::onEnabled(Context* context)

View File

@ -79,17 +79,17 @@ void NewLayerCommand::onLoadParams(const Params& params)
{
m_name = params.get("name");
m_type = Type::Layer;
if (params.get("group") == "true")
if (params.get_as<bool>("group"))
m_type = Type::Group;
else if (params.get("reference") == "true")
else if (params.get_as<bool>("reference"))
m_type = Type::ReferenceLayer;
m_ask = (params.get("ask") == "true");
m_fromFile = (params.get("from-file") == "true");
m_ask = params.get_as<bool>("ask");
m_fromFile = params.get_as<bool>("from-file");
m_place = Place::AfterActiveLayer;
if (params.get("top") == "true")
if (params.get_as<bool>("top"))
m_place = Place::Top;
else if (params.get("before") == "true")
else if (params.get_as<bool>("before"))
m_place = Place::BeforeActiveLayer;
}

View File

@ -85,8 +85,8 @@ void OpenFileCommand::onLoadParams(const Params& params)
{
m_filename = params.get("filename");
m_folder = params.get("folder"); // Initial folder
m_repeatCheckbox = (params.get("repeat_checkbox") == "true");
m_oneFrame = (params.get("oneframe") == "true");
m_repeatCheckbox = params.get_as<bool>("repeat_checkbox");
m_oneFrame = params.get_as<bool>("oneframe");
std::string sequence = params.get("sequence");
if (m_oneFrame || sequence == "skip")

View File

@ -45,7 +45,7 @@ void PaletteEditorCommand::onLoadParams(const Params& params)
m_edit =
(params.empty() ||
params.get("edit") == "switch" ||
params.get("switch") == "true"); // "switch" for backward compatibility
params.get_as<bool>("switch")); // "switch" for backward compatibility
m_popup = (!params.get("popup").empty());
m_background = (params.get("popup") == "background");
}

View File

@ -115,8 +115,7 @@ void SaveFileBaseCommand::onLoadParams(const Params& params)
std::string useUI = params.get("useUI");
m_useUI = (useUI.empty() || (useUI == "true"));
std::string ignoreEmpty = params.get("ignoreEmpty");
m_ignoreEmpty = (ignoreEmpty == "true");
m_ignoreEmpty = params.get_as<bool>("ignoreEmpty");
}
// Returns true if there is a current sprite to save.

View File

@ -44,17 +44,9 @@ TimelineCommand::TimelineCommand()
void TimelineCommand::onLoadParams(const Params& params)
{
std::string open_str = params.get("open");
if (open_str == "true") m_open = true;
else m_open = false;
std::string close_str = params.get("close");
if (close_str == "true") m_close = true;
else m_close = false;
std::string switch_str = params.get("switch");
if (switch_str == "true") m_switch = true;
else m_switch = false;
m_open = params.get_as<bool>("open");
m_close = params.get_as<bool>("close");
m_switch = params.get_as<bool>("switch");
}
void TimelineCommand::onExecute(Context* context)

View File

@ -72,6 +72,17 @@ namespace app {
Map m_params;
};
template<>
inline const bool Params::get_as<bool>(const char* name) const {
bool value = false;
auto it = m_params.find(name);
if (it != m_params.end()) {
value = (it->second == "1" ||
it->second == "true");
}
return value;
}
} // namespace app
#endif