Config: Keep track of deleted keys
This allows deleted keys to be deleted from INIs properly.
This commit is contained in:
parent
b51c6023ba
commit
9c3265f1ef
|
@ -120,6 +120,8 @@ bool Section::Delete(const std::string& key)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
m_values.erase(it);
|
m_values.erase(it);
|
||||||
|
|
||||||
|
m_deleted_keys.push_back(key);
|
||||||
m_dirty = true;
|
m_dirty = true;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -98,6 +98,7 @@ public:
|
||||||
virtual bool HasLines() const { return m_lines.size() > 0; }
|
virtual bool HasLines() const { return m_lines.size() > 0; }
|
||||||
const std::string& GetName() const { return m_name; }
|
const std::string& GetName() const { return m_name; }
|
||||||
const SectionValueMap& GetValues() const { return m_values; }
|
const SectionValueMap& GetValues() const { return m_values; }
|
||||||
|
const std::vector<std::string>& GetDeletedKeys() const { return m_deleted_keys; }
|
||||||
bool IsDirty() const { return m_dirty; }
|
bool IsDirty() const { return m_dirty; }
|
||||||
void ClearDirty() { m_dirty = false; }
|
void ClearDirty() { m_dirty = false; }
|
||||||
protected:
|
protected:
|
||||||
|
@ -109,6 +110,7 @@ protected:
|
||||||
static const std::string& NULL_STRING;
|
static const std::string& NULL_STRING;
|
||||||
|
|
||||||
SectionValueMap m_values;
|
SectionValueMap m_values;
|
||||||
|
std::vector<std::string> m_deleted_keys;
|
||||||
|
|
||||||
std::vector<std::string> m_lines;
|
std::vector<std::string> m_lines;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue