Bookmarks/Recents now loading & saving

This commit is contained in:
Charles J. Cliffe
2016-12-13 21:09:44 -05:00
parent 746b7cfcae
commit 2cc05baaa1
5 changed files with 123 additions and 15 deletions
+17 -1
View File
@@ -435,7 +435,12 @@ std::string DataElement::toString() {
strValue = std::to_string(floatSettingValue);
} else if (dataType == DATA_NULL) {
strValue = "";
} else {
} else if (dataType == DATA_WSTRING) {
std::wstring wstr;
get(wstr);
strValue = *wstr.c_str();
}
else {
std::cout << "Unhandled DataElement toString for type: " << dataType << std::endl;
}
} catch (DataTypeMismatchException e) {
@@ -490,6 +495,16 @@ DataNode::DataNode(const char *name_in): parentNode(NULL), ptr(0) {
data_elem = new DataElement();
}
DataNode::DataNode(const char *name_in, DataNode &cloneFrom): parentNode(NULL), ptr(0) {
node_name = name_in;
data_elem = new DataElement(*cloneFrom.element());
// TODO: stack recursion optimization
while (cloneFrom.hasAnother()) {
DataNode *cNode = cloneFrom.getNext();
newChildCloneFrom(cNode->getName().c_str(), cNode);
}
}
DataNode::DataNode(const char *name_in, DataElement &cloneFrom): parentNode(NULL), ptr(0) {
node_name = name_in;
@@ -540,6 +555,7 @@ DataNode *DataNode::newChildCloneFrom(const char *name_in, DataNode *cloneFrom)
childmap[name_in].push_back(children.back());
children.back()->setParentNode(*this);
// TODO: stack recursion optimization
while (cloneFrom->hasAnother()) {
DataNode *cNode = cloneFrom->getNext();
cloneNode->newChildCloneFrom(cNode->getName().c_str(), cNode);
+3 -2
View File
@@ -237,8 +237,9 @@ public:
DataNode();
DataNode(const char *name_in);
DataNode(const char *name_in, DataElement &cloneFrom);
~DataNode();
DataNode(const char *name_in, DataNode &cloneFrom);
~DataNode();
void setName(const char *name_in);
string &getName() { return node_name; }