mirror of
https://github.com/ciphervance/supercell-wx.git
synced 2025-10-30 19:10:06 +00:00
Add subcategory functionality to settings, still need to read/write JSON
This commit is contained in:
parent
cea2993665
commit
1a30743c0a
2 changed files with 43 additions and 0 deletions
|
|
@ -25,6 +25,7 @@ public:
|
||||||
|
|
||||||
std::vector<std::pair<std::string, std::vector<SettingsCategory*>>>
|
std::vector<std::pair<std::string, std::vector<SettingsCategory*>>>
|
||||||
subcategoryArrays_;
|
subcategoryArrays_;
|
||||||
|
std::vector<SettingsCategory*> subcategories_;
|
||||||
std::vector<SettingsVariableBase*> variables_;
|
std::vector<SettingsVariableBase*> variables_;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -54,6 +55,12 @@ void SettingsCategory::SetDefaults()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Set subcategory defaults
|
||||||
|
for (auto& subcategory : p->subcategories_)
|
||||||
|
{
|
||||||
|
subcategory->SetDefaults();
|
||||||
|
}
|
||||||
|
|
||||||
// Set variable defaults
|
// Set variable defaults
|
||||||
for (auto& variable : p->variables_)
|
for (auto& variable : p->variables_)
|
||||||
{
|
{
|
||||||
|
|
@ -111,6 +118,14 @@ bool SettingsCategory::ReadJson(const boost::json::object& json)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Read subcategories
|
||||||
|
for (auto& subcategory : p->subcategories_)
|
||||||
|
{
|
||||||
|
(void) subcategory;
|
||||||
|
// TODO:
|
||||||
|
// subcategory->ReadJson(object);
|
||||||
|
}
|
||||||
|
|
||||||
// Read variables
|
// Read variables
|
||||||
for (auto& variable : p->variables_)
|
for (auto& variable : p->variables_)
|
||||||
{
|
{
|
||||||
|
|
@ -154,6 +169,14 @@ void SettingsCategory::WriteJson(boost::json::object& json) const
|
||||||
object.insert_or_assign(subcategoryArray.first, arrayObject);
|
object.insert_or_assign(subcategoryArray.first, arrayObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Write subcategories
|
||||||
|
for (auto& subcategory : p->subcategories_)
|
||||||
|
{
|
||||||
|
(void) subcategory;
|
||||||
|
// TODO:
|
||||||
|
// subcategory->WriteJson();
|
||||||
|
}
|
||||||
|
|
||||||
// Write variables
|
// Write variables
|
||||||
for (auto& variable : p->variables_)
|
for (auto& variable : p->variables_)
|
||||||
{
|
{
|
||||||
|
|
@ -163,6 +186,11 @@ void SettingsCategory::WriteJson(boost::json::object& json) const
|
||||||
json.insert_or_assign(p->name_, object);
|
json.insert_or_assign(p->name_, object);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SettingsCategory::RegisterSubcategory(SettingsCategory& subcategory)
|
||||||
|
{
|
||||||
|
p->subcategories_.push_back(&subcategory);
|
||||||
|
}
|
||||||
|
|
||||||
void SettingsCategory::RegisterSubcategoryArray(
|
void SettingsCategory::RegisterSubcategoryArray(
|
||||||
const std::string& name, std::vector<SettingsCategory>& subcategories)
|
const std::string& name, std::vector<SettingsCategory>& subcategories)
|
||||||
{
|
{
|
||||||
|
|
@ -175,6 +203,18 @@ void SettingsCategory::RegisterSubcategoryArray(
|
||||||
[](SettingsCategory& subcategory) { return &subcategory; });
|
[](SettingsCategory& subcategory) { return &subcategory; });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SettingsCategory::RegisterSubcategoryArray(
|
||||||
|
const std::string& name, std::vector<SettingsCategory*>& subcategories)
|
||||||
|
{
|
||||||
|
auto& newSubcategories = p->subcategoryArrays_.emplace_back(
|
||||||
|
name, std::vector<SettingsCategory*> {});
|
||||||
|
|
||||||
|
std::transform(subcategories.begin(),
|
||||||
|
subcategories.end(),
|
||||||
|
std::back_inserter(newSubcategories.second),
|
||||||
|
[](SettingsCategory* subcategory) { return subcategory; });
|
||||||
|
}
|
||||||
|
|
||||||
void SettingsCategory::RegisterVariables(
|
void SettingsCategory::RegisterVariables(
|
||||||
std::initializer_list<SettingsVariableBase*> variables)
|
std::initializer_list<SettingsVariableBase*> variables)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -50,8 +50,11 @@ public:
|
||||||
*/
|
*/
|
||||||
virtual void WriteJson(boost::json::object& json) const;
|
virtual void WriteJson(boost::json::object& json) const;
|
||||||
|
|
||||||
|
void RegisterSubcategory(SettingsCategory& subcategory);
|
||||||
void RegisterSubcategoryArray(const std::string& name,
|
void RegisterSubcategoryArray(const std::string& name,
|
||||||
std::vector<SettingsCategory>& subcategories);
|
std::vector<SettingsCategory>& subcategories);
|
||||||
|
void RegisterSubcategoryArray(const std::string& name,
|
||||||
|
std::vector<SettingsCategory*>& subcategories);
|
||||||
void
|
void
|
||||||
RegisterVariables(std::initializer_list<SettingsVariableBase*> variables);
|
RegisterVariables(std::initializer_list<SettingsVariableBase*> variables);
|
||||||
void RegisterVariables(std::vector<SettingsVariableBase*> variables);
|
void RegisterVariables(std::vector<SettingsVariableBase*> variables);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue