KiCad PCB EDA Suite
nested_settings.h
Go to the documentation of this file.
1 /*
2  * This program source code file is part of KiCad, a free EDA CAD application.
3  *
4  * Copyright (C) 2020 Jon Evans <jon@craftyjon.com>
5  * Copyright (C) 2020 KiCad Developers, see AUTHORS.txt for contributors.
6  *
7  * This program is free software: you can redistribute it and/or modify it
8  * under the terms of the GNU General Public License as published by the
9  * Free Software Foundation, either version 3 of the License, or (at your
10  * option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful, but
13  * WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  * General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License along
18  * with this program. If not, see <http://www.gnu.org/licenses/>.
19  */
20 
21 #ifndef NESTED_SETTINGS_H_
22 #define NESTED_SETTINGS_H_
23 
24 #include <settings/json_settings.h>
25 
26 
32 {
33 public:
34  NESTED_SETTINGS( const std::string& aName, int aSchemaVersion, JSON_SETTINGS* aParent,
35  const std::string& aPath );
36 
37  virtual ~NESTED_SETTINGS();
38 
43  bool LoadFromFile( const wxString& aDirectory = "" ) override;
44 
50  bool SaveToFile( const wxString& aDirectory = "", bool aForce = false ) override;
51 
52  void SetParent( JSON_SETTINGS* aParent );
53 
55  {
56  return m_parent;
57  }
58 
59 protected:
60 
63 
65  std::string m_path;
66 };
67 
68 #endif
JSON_SETTINGS * GetParent()
bool LoadFromFile(const wxString &aDirectory="") override
Loads the JSON document from the parent and then calls Load()
bool SaveToFile(const wxString &aDirectory="", bool aForce=false) override
Calls Store() and then saves the JSON document contents into the parent JSON_SETTINGS.
NESTED_SETTINGS is a JSON_SETTINGS that lives inside a JSON_SETTINGS.
JSON_SETTINGS * m_parent
A pointer to the parent object to load and store from.
virtual ~NESTED_SETTINGS()
NESTED_SETTINGS(const std::string &aName, int aSchemaVersion, JSON_SETTINGS *aParent, const std::string &aPath)
std::string m_path
The path (in pointer format) of where to store this document in the parent.
void SetParent(JSON_SETTINGS *aParent)