Merge pull request #12608 from karroffel/configfile-orderedhashmap
make ConfigFile use OrderedHashMap
This commit is contained in:
commit
8e145fa1a8
|
@ -75,7 +75,7 @@ void ConfigFile::set_value(const String &p_section, const String &p_key, const V
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
if (!values.has(p_section)) {
|
if (!values.has(p_section)) {
|
||||||
values[p_section] = Map<String, Variant>();
|
values[p_section] = OrderedHashMap<String, Variant>();
|
||||||
}
|
}
|
||||||
|
|
||||||
values[p_section][p_key] = p_value;
|
values[p_section][p_key] = p_value;
|
||||||
|
@ -106,7 +106,7 @@ bool ConfigFile::has_section_key(const String &p_section, const String &p_key) c
|
||||||
|
|
||||||
void ConfigFile::get_sections(List<String> *r_sections) const {
|
void ConfigFile::get_sections(List<String> *r_sections) const {
|
||||||
|
|
||||||
for (const Map<String, Map<String, Variant> >::Element *E = values.front(); E; E = E->next()) {
|
for (const Map<String, OrderedHashMap<String, Variant> >::Element *E = values.front(); E; E = E->next()) {
|
||||||
r_sections->push_back(E->key());
|
r_sections->push_back(E->key());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -114,8 +114,8 @@ void ConfigFile::get_section_keys(const String &p_section, List<String> *r_keys)
|
||||||
|
|
||||||
ERR_FAIL_COND(!values.has(p_section));
|
ERR_FAIL_COND(!values.has(p_section));
|
||||||
|
|
||||||
for (const Map<String, Variant>::Element *E = values[p_section].front(); E; E = E->next()) {
|
for (OrderedHashMap<String, Variant>::ConstElement E = values[p_section].front(); E; E = E.next()) {
|
||||||
r_keys->push_back(E->key());
|
r_keys->push_back(E.key());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -135,17 +135,17 @@ Error ConfigFile::save(const String &p_path) {
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (Map<String, Map<String, Variant> >::Element *E = values.front(); E; E = E->next()) {
|
for (Map<String, OrderedHashMap<String, Variant> >::Element *E = values.front(); E; E = E->next()) {
|
||||||
|
|
||||||
if (E != values.front())
|
if (E != values.front())
|
||||||
file->store_string("\n");
|
file->store_string("\n");
|
||||||
file->store_string("[" + E->key() + "]\n\n");
|
file->store_string("[" + E->key() + "]\n\n");
|
||||||
|
|
||||||
for (Map<String, Variant>::Element *F = E->get().front(); F; F = F->next()) {
|
for (OrderedHashMap<String, Variant>::Element F = E->get().front(); F; F = F.next()) {
|
||||||
|
|
||||||
String vstr;
|
String vstr;
|
||||||
VariantWriter::write_to_string(F->get(), vstr);
|
VariantWriter::write_to_string(F.get(), vstr);
|
||||||
file->store_string(F->key() + "=" + vstr + "\n");
|
file->store_string(F.key() + "=" + vstr + "\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -30,13 +30,14 @@
|
||||||
#ifndef CONFIG_FILE_H
|
#ifndef CONFIG_FILE_H
|
||||||
#define CONFIG_FILE_H
|
#define CONFIG_FILE_H
|
||||||
|
|
||||||
|
#include "core/ordered_hash_map.h"
|
||||||
#include "reference.h"
|
#include "reference.h"
|
||||||
|
|
||||||
class ConfigFile : public Reference {
|
class ConfigFile : public Reference {
|
||||||
|
|
||||||
GDCLASS(ConfigFile, Reference);
|
GDCLASS(ConfigFile, Reference);
|
||||||
|
|
||||||
Map<String, Map<String, Variant> > values;
|
Map<String, OrderedHashMap<String, Variant> > values;
|
||||||
|
|
||||||
PoolStringArray _get_sections() const;
|
PoolStringArray _get_sections() const;
|
||||||
PoolStringArray _get_section_keys(const String &p_section) const;
|
PoolStringArray _get_section_keys(const String &p_section) const;
|
||||||
|
|
|
@ -181,7 +181,7 @@ public:
|
||||||
};
|
};
|
||||||
|
|
||||||
ConstElement find(const K &p_key) const {
|
ConstElement find(const K &p_key) const {
|
||||||
typename InternalList::Element **list_element = map.getptr(p_key);
|
typename InternalList::Element *const *list_element = map.getptr(p_key);
|
||||||
if (list_element) {
|
if (list_element) {
|
||||||
return ConstElement(*list_element);
|
return ConstElement(*list_element);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue