mirror of
				https://github.com/ciphervance/supercell-wx.git
				synced 2025-10-31 00: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*>>> | ||||
|                                       subcategoryArrays_; | ||||
|    std::vector<SettingsCategory*>     subcategories_; | ||||
|    std::vector<SettingsVariableBase*> variables_; | ||||
| }; | ||||
| 
 | ||||
|  | @ -54,6 +55,12 @@ void SettingsCategory::SetDefaults() | |||
|       } | ||||
|    } | ||||
| 
 | ||||
|    // Set subcategory defaults
 | ||||
|    for (auto& subcategory : p->subcategories_) | ||||
|    { | ||||
|       subcategory->SetDefaults(); | ||||
|    } | ||||
| 
 | ||||
|    // Set variable defaults
 | ||||
|    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
 | ||||
|       for (auto& variable : p->variables_) | ||||
|       { | ||||
|  | @ -154,6 +169,14 @@ void SettingsCategory::WriteJson(boost::json::object& json) const | |||
|       object.insert_or_assign(subcategoryArray.first, arrayObject); | ||||
|    } | ||||
| 
 | ||||
|    // Write subcategories
 | ||||
|    for (auto& subcategory : p->subcategories_) | ||||
|    { | ||||
|       (void) subcategory; | ||||
|       // TODO:
 | ||||
|       // subcategory->WriteJson();
 | ||||
|    } | ||||
| 
 | ||||
|    // Write 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); | ||||
| } | ||||
| 
 | ||||
| void SettingsCategory::RegisterSubcategory(SettingsCategory& subcategory) | ||||
| { | ||||
|    p->subcategories_.push_back(&subcategory); | ||||
| } | ||||
| 
 | ||||
| void SettingsCategory::RegisterSubcategoryArray( | ||||
|    const std::string& name, std::vector<SettingsCategory>& subcategories) | ||||
| { | ||||
|  | @ -175,6 +203,18 @@ void SettingsCategory::RegisterSubcategoryArray( | |||
|                   [](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( | ||||
|    std::initializer_list<SettingsVariableBase*> variables) | ||||
| { | ||||
|  |  | |||
|  | @ -50,8 +50,11 @@ public: | |||
|     */ | ||||
|    virtual void WriteJson(boost::json::object& json) const; | ||||
| 
 | ||||
|    void RegisterSubcategory(SettingsCategory& subcategory); | ||||
|    void RegisterSubcategoryArray(const std::string&             name, | ||||
|                                  std::vector<SettingsCategory>& subcategories); | ||||
|    void RegisterSubcategoryArray(const std::string&              name, | ||||
|                                  std::vector<SettingsCategory*>& subcategories); | ||||
|    void | ||||
|    RegisterVariables(std::initializer_list<SettingsVariableBase*> variables); | ||||
|    void RegisterVariables(std::vector<SettingsVariableBase*> variables); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Dan Paulat
						Dan Paulat