git-svn-id: svn://db.shs.com.ru/libs@75 a8b55f48-bf90-11e4-a774-851b48703e85

This commit is contained in:
2016-01-18 14:41:29 +00:00
parent 5b523a65ae
commit d88b341070
28 changed files with 539 additions and 112 deletions

View File

@@ -61,7 +61,7 @@ public:
QPIConfig(const QString & path, QIODevice::OpenMode mode = QIODevice::ReadWrite);
QPIConfig(const QString & path, QPIConfig::FileType type);
QPIConfig(QString * str, QPIConfig::FileType type = QPIConfig::Config);
~QPIConfig() {stream.setDevice(0); root.deleteBranch();}
~QPIConfig();
void setFile(const QString & path, QIODevice::OpenMode mode = QIODevice::ReadWrite);
void setString(QString * str);
@@ -248,6 +248,7 @@ public:
void setDelimiter(const QString & d) {delim = d; setEntryDelim(&root, d); readAll();}
private:
QPIConfig(const QString & path, QStringList dirs);
void init();
int childCount(const Entry * e) const {int c = 0; foreach (const Entry * i, e->_children) c += childCount(i); c += e->_children.size(); return c;}
bool entryExists(const Entry * e, const QString & name) const;
@@ -257,9 +258,17 @@ private:
inline Entry & entryByIndex(const int index) {Branch b = allLeaves(); if (index < 0 || index >= b.size()) return empty; return *(b[index]);}
void removeEntry(Branch & b, Entry * e);
void deleteEntry(Entry * e) {foreach (Entry * i, e->_children) deleteEntry(i); delete e;}
QString getPrefixFromLine(QString line, bool * exists);
void updateIncludes();
QString entryValue(QString v);
void parse(QString content = QString());
int centry;
bool internal;
QVector<QPIConfig * > includes, inc_devs;
Branch all_includes;
QFile * dev;
QStringList incdirs;
QString delim, * buffer;
Entry root, empty;
uint lines;