Migration of QtMvvm from github
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

42 lines
1.4 KiB

#ifndef CPPSETTINGSGENERATOR_H
#define CPPSETTINGSGENERATOR_H
#include "settingsgeneratorimpl.h"
class CppSettingsGenerator : public SettingsGeneratorImpl
{
public:
CppSettingsGenerator(const QString &hdrPath,
const QString &srcPath);
void process(const QString &inPath);
private:
QFile _hdrFile;
QFile _srcFile;
QTextStream _hdr;
QTextStream _src;
QHash<QString, QString> _typeMappings;
void writeHeader(const SettingsType &settings);
void writeNodeElementDeclarations(const NodeContentGroup &node, int intendent = 1);
void writeNodeDeclaration(const NodeType &node, int intendent = 1);
void writeEntryDeclaration(const EntryType &entry, int intendent = 1);
void writeListNodeDeclaration(const ListNodeType &node, int intendent = 1);
void writeSource(const SettingsType &settings);
void writeNodeElementDefinitions(const NodeContentGroup &node,
const QStringList &keyChain,
const QStringList &entryChain = {},
int intendent = 1,
const QStringList &listTypeChain = {});
void writeEntryDefinition(const EntryType &entry, QStringList keyChain, QStringList entryChain, int intendent, const QStringList &listTypeChain);
void writeListNodeDefinition(const ListNodeType &node, QStringList keyChain, QStringList entryChain, int intendent, QStringList listTypeChain);
QString concatKeys(const QStringList &keyChain, int intendet) const;
};
#endif // CPPSETTINGSGENERATOR_H