From 5be9eae0dea08c2caf2d6edf6b2cf3589881ff54 Mon Sep 17 00:00:00 2001 From: Skycoder42 Date: Tue, 31 Jul 2018 01:02:26 +0200 Subject: [PATCH] WIP settings config loader test --- src/mvvmcore/settingsconfigloader_p.h | 7 +- src/settingsconfig/prefix_p.h | 10 + src/settingsconfig/settingsconfig.pri | 3 +- src/settingsconfig/settingsconfig.xsd | 2 + src/settingsconfig/settingsconfigimpl.cpp | 2 +- ...ngsconfigimpl.h => settingsconfigimpl_p.h} | 2 +- tests/auto/mvvmcore/binding/tst_binding.cpp | 2 - tests/auto/mvvmcore/mvvmcore.pro | 3 +- .../settingsconfigloader/categoryDocument.xml | 31 + .../settingsconfigloader/entryDocument.xml | 36 ++ .../settingsconfigloader/groupDocument.xml | 14 + .../settingsconfigloader/sectionDocument.xml | 17 + .../settingsconfigloader/selectorDocument.xml | 30 + .../settingsconfigloader.pro | 26 + .../tst_settingsconfigloader.cpp | 570 ++++++++++++++++++ .../settingsgenerator/settingsgeneratorimpl.h | 2 +- tools/settingsgenerator/settingstranslator.h | 2 +- 17 files changed, 748 insertions(+), 11 deletions(-) create mode 100644 src/settingsconfig/prefix_p.h rename src/settingsconfig/{settingsconfigimpl.h => settingsconfigimpl_p.h} (94%) create mode 100644 tests/auto/mvvmcore/settingsconfigloader/categoryDocument.xml create mode 100644 tests/auto/mvvmcore/settingsconfigloader/entryDocument.xml create mode 100644 tests/auto/mvvmcore/settingsconfigloader/groupDocument.xml create mode 100644 tests/auto/mvvmcore/settingsconfigloader/sectionDocument.xml create mode 100644 tests/auto/mvvmcore/settingsconfigloader/selectorDocument.xml create mode 100644 tests/auto/mvvmcore/settingsconfigloader/settingsconfigloader.pro create mode 100644 tests/auto/mvvmcore/settingsconfigloader/tst_settingsconfigloader.cpp diff --git a/src/mvvmcore/settingsconfigloader_p.h b/src/mvvmcore/settingsconfigloader_p.h index 3ba8248..21732c9 100644 --- a/src/mvvmcore/settingsconfigloader_p.h +++ b/src/mvvmcore/settingsconfigloader_p.h @@ -4,13 +4,14 @@ #include #include +#include "qtmvvmcore_global.h" #include "settingssetup.h" -#include +#include namespace QtMvvm { -class SettingsConfigLoader : public QObject, public ISettingsSetupLoader, public SettingsConfigImpl +class Q_MVVMCORE_EXPORT SettingsConfigLoader : public QObject, public ISettingsSetupLoader, public SettingsConfigImpl { Q_OBJECT Q_INTERFACES(QtMvvm::ISettingsSetupLoader) @@ -48,7 +49,7 @@ private: TType trIf(const optional &text, bool allowTr, const TType &defaultValue = {}) const; }; -class SettingsConfigException : public SettingsLoaderException +class Q_MVVMCORE_EXPORT SettingsConfigException : public SettingsLoaderException { public: SettingsConfigException(SettingsConfigBase::Exception &exception); diff --git a/src/settingsconfig/prefix_p.h b/src/settingsconfig/prefix_p.h new file mode 100644 index 0000000..ce0f4cb --- /dev/null +++ b/src/settingsconfig/prefix_p.h @@ -0,0 +1,10 @@ +#ifndef PREFIX_P_H +#define PREFIX_P_H + +#if defined(BUILD_QSETTINGSGENERATOR) +#define Q_MVVMCORE_EXPORT +#else +#include "qtmvvmcore_global.h" +#endif + +#endif // PREFIX_P_H diff --git a/src/settingsconfig/settingsconfig.pri b/src/settingsconfig/settingsconfig.pri index e2d19ee..f3e735a 100644 --- a/src/settingsconfig/settingsconfig.pri +++ b/src/settingsconfig/settingsconfig.pri @@ -1,7 +1,8 @@ HEADERS += \ $$PWD/../3rdparty/optional-lite/optional.hpp \ $$PWD/../3rdparty/variant-lite/variant.hpp \ - $$PWD/settingsconfigimpl.h + $$PWD/prefix_p.h \ + $$PWD/settingsconfigimpl_p.h SOURCES += $$PWD/settingsconfigimpl.cpp diff --git a/src/settingsconfig/settingsconfig.xsd b/src/settingsconfig/settingsconfig.xsd index 1e57d00..cc792b3 100644 --- a/src/settingsconfig/settingsconfig.xsd +++ b/src/settingsconfig/settingsconfig.xsd @@ -3,10 +3,12 @@ xmlns:qxg="https://skycoder42.de/xml/schemas/QXmlCodeGen"> QtCore/QHash + prefix_p.h diff --git a/src/settingsconfig/settingsconfigimpl.cpp b/src/settingsconfig/settingsconfigimpl.cpp index 8bfa6ff..b15cf8e 100644 --- a/src/settingsconfig/settingsconfigimpl.cpp +++ b/src/settingsconfig/settingsconfigimpl.cpp @@ -1,4 +1,4 @@ -#include "settingsconfigimpl.h" +#include "settingsconfigimpl_p.h" #include #include diff --git a/src/settingsconfig/settingsconfigimpl.h b/src/settingsconfig/settingsconfigimpl_p.h similarity index 94% rename from src/settingsconfig/settingsconfigimpl.h rename to src/settingsconfig/settingsconfigimpl_p.h index b73cf99..7a02035 100644 --- a/src/settingsconfig/settingsconfigimpl.h +++ b/src/settingsconfig/settingsconfigimpl_p.h @@ -5,7 +5,7 @@ class QFileSelector; -class SettingsConfigImpl : public SettingsConfigBase +class Q_MVVMCORE_EXPORT SettingsConfigImpl : public SettingsConfigBase { public: bool isUsable(const SelectableContrainerInfo &element) const; diff --git a/tests/auto/mvvmcore/binding/tst_binding.cpp b/tests/auto/mvvmcore/binding/tst_binding.cpp index 113898f..2829d0b 100644 --- a/tests/auto/mvvmcore/binding/tst_binding.cpp +++ b/tests/auto/mvvmcore/binding/tst_binding.cpp @@ -1,6 +1,4 @@ -#include #include -#include #include using namespace QtMvvm; diff --git a/tests/auto/mvvmcore/mvvmcore.pro b/tests/auto/mvvmcore/mvvmcore.pro index 6e85c11..3b7ad87 100644 --- a/tests/auto/mvvmcore/mvvmcore.pro +++ b/tests/auto/mvvmcore/mvvmcore.pro @@ -5,7 +5,8 @@ SUBDIRS += \ serviceregistry \ serviceregistrytestplugin \ binding \ - qsettingsaccessor + qsettingsaccessor \ + settingsconfigloader serviceregistry.depends += serviceregistrytestplugin diff --git a/tests/auto/mvvmcore/settingsconfigloader/categoryDocument.xml b/tests/auto/mvvmcore/settingsconfigloader/categoryDocument.xml new file mode 100644 index 0000000..2c02bc0 --- /dev/null +++ b/tests/auto/mvvmcore/settingsconfigloader/categoryDocument.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + +
+
+ +
+
+ + + + +
+ + diff --git a/tests/auto/mvvmcore/settingsconfigloader/entryDocument.xml b/tests/auto/mvvmcore/settingsconfigloader/entryDocument.xml new file mode 100644 index 0000000..4070f60 --- /dev/null +++ b/tests/auto/mvvmcore/settingsconfigloader/entryDocument.xml @@ -0,0 +1,36 @@ + + + + + + hello + world + + + 42 + baum42 + + 13 + + 4.2 + + + 42 + + + + 42 + + 4.2 + + + + diff --git a/tests/auto/mvvmcore/settingsconfigloader/groupDocument.xml b/tests/auto/mvvmcore/settingsconfigloader/groupDocument.xml new file mode 100644 index 0000000..94b604f --- /dev/null +++ b/tests/auto/mvvmcore/settingsconfigloader/groupDocument.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + diff --git a/tests/auto/mvvmcore/settingsconfigloader/sectionDocument.xml b/tests/auto/mvvmcore/settingsconfigloader/sectionDocument.xml new file mode 100644 index 0000000..c81b648 --- /dev/null +++ b/tests/auto/mvvmcore/settingsconfigloader/sectionDocument.xml @@ -0,0 +1,17 @@ + + +
+
+ +
+
+ + + + +
+ diff --git a/tests/auto/mvvmcore/settingsconfigloader/selectorDocument.xml b/tests/auto/mvvmcore/settingsconfigloader/selectorDocument.xml new file mode 100644 index 0000000..967fb06 --- /dev/null +++ b/tests/auto/mvvmcore/settingsconfigloader/selectorDocument.xml @@ -0,0 +1,30 @@ + + + + +
+
+ + + + +
+ + + + +
+
+ + + + +
+ + + + diff --git a/tests/auto/mvvmcore/settingsconfigloader/settingsconfigloader.pro b/tests/auto/mvvmcore/settingsconfigloader/settingsconfigloader.pro new file mode 100644 index 0000000..5a7a14d --- /dev/null +++ b/tests/auto/mvvmcore/settingsconfigloader/settingsconfigloader.pro @@ -0,0 +1,26 @@ +TEMPLATE = app + +QT += testlib mvvmcore mvvmcore-private +QT -= gui +CONFIG += console +CONFIG -= app_bundle + +TARGET = tst_settingsconfigloader + +DEFINES += SRCDIR=\\\"$$_PRO_FILE_PWD_\\\" + +INCLUDEPATH += \ + ../../../../src/settingsconfig \ + $$shadowed(../../../../src/mvvmcore) \ + ../../../../src/3rdparty/optional-lite \ + ../../../../src/3rdparty/variant-lite + +SOURCES += \ + tst_settingsconfigloader.cpp + +DISTFILES += \ + entryDocument.xml \ + groupDocument.xml \ + sectionDocument.xml \ + categoryDocument.xml \ + selectorDocument.xml diff --git a/tests/auto/mvvmcore/settingsconfigloader/tst_settingsconfigloader.cpp b/tests/auto/mvvmcore/settingsconfigloader/tst_settingsconfigloader.cpp new file mode 100644 index 0000000..6ec5b25 --- /dev/null +++ b/tests/auto/mvvmcore/settingsconfigloader/tst_settingsconfigloader.cpp @@ -0,0 +1,570 @@ +#include +#include +using namespace QtMvvm; +using namespace QtMvvm::SettingsElements; + +class SettingsConfigLoaderTest : public QObject +{ + Q_OBJECT + +private Q_SLOTS: + void testConfigLoader_data(); + void testConfigLoader(); + +private: + Setup createEntryDocumentSetup(); + Setup createGroupDocumentSetup(); + Setup createSectionDocumentSetup(); + Setup createCategoryDocumentSetup(); + + Setup createSelectorsSetup0(); + Setup createSelectorsSetup1(); + Setup createSelectorsSetup2(); + Setup createSelectorsSetup3(); + Setup createSelectorsSetup4(); + + Setup createIncludesSetup(); + Setup createCustomTypesSetup(); + Setup createIconChangeSetup(); + Setup createTranslationsSetup(); +}; + +void SettingsConfigLoaderTest::testConfigLoader_data() +{ + QTest::addColumn("path"); + QTest::addColumn("frontend"); + QTest::addColumn("selectors"); + QTest::addColumn("success"); + QTest::addColumn("setup"); + + QTest::newRow("entryDocument") << QStringLiteral(SRCDIR "/entryDocument.xml") + << QStringLiteral("dummy") + << QStringList{} + << true + << createEntryDocumentSetup(); + + QTest::newRow("groupDocument") << QStringLiteral(SRCDIR "/groupDocument.xml") + << QStringLiteral("dummy") + << QStringList{} + << true + << createGroupDocumentSetup(); + + QTest::newRow("sectionDocument") << QStringLiteral(SRCDIR "/sectionDocument.xml") + << QStringLiteral("dummy") + << QStringList{} + << true + << createSectionDocumentSetup(); + + QTest::newRow("categoryDocument") << QStringLiteral(SRCDIR "/categoryDocument.xml") + << QStringLiteral("dummy") + << QStringList{} + << true + << createCategoryDocumentSetup(); + + QTest::newRow("selectorDocument.frontend.widgets") << QStringLiteral(SRCDIR "/selectorDocument.xml") + << QStringLiteral("widgets") + << QStringList{} + << true + << createSelectorsSetup0(); + + QTest::newRow("selectorDocument.frontend.quick") << QStringLiteral(SRCDIR "/selectorDocument.xml") + << QStringLiteral("quick") + << QStringList{} + << true + << createSelectorsSetup1(); + + QTest::newRow("selectorDocument.selector.typeA") << QStringLiteral(SRCDIR "/selectorDocument.xml") + << QStringLiteral("dummy") + << QStringList{ + QStringLiteral("a1"), + QStringLiteral("b2"), + QStringLiteral("a3") + } + << true + << createSelectorsSetup2(); + + QTest::newRow("selectorDocument.selector.typeB") << QStringLiteral(SRCDIR "/selectorDocument.xml") + << QStringLiteral("dummy") + << QStringList{ + QStringLiteral("b1"), + QStringLiteral("a2"), + QStringLiteral("b3") + } + << true + << createSelectorsSetup3(); + + QTest::newRow("selectorDocument.combined") << QStringLiteral(SRCDIR "/selectorDocument.xml") + << QStringLiteral("console") + << QStringList{ + QStringLiteral("a1"), + QStringLiteral("a2"), + QStringLiteral("a3") + } + << true + << createSelectorsSetup4(); +} + +void SettingsConfigLoaderTest::testConfigLoader() +{ + QFETCH(QString, path); + QFETCH(QString, frontend); + QFETCH(QStringList, selectors); + QFETCH(bool, success); + QFETCH(Setup, setup); + + try { + QFileSelector selector; + selector.setExtraSelectors(selectors); + SettingsConfigLoader loader; + loader.changeDefaultIcon(QStringLiteral("qrc:/baum")); + if(success) { + auto res = loader.loadSetup(path, frontend, &selector); + + // compare low-level to be able to catch where errors happend easier + QCOMPARE(res.allowRestore, setup.allowRestore); + QCOMPARE(res.allowSearch, setup.allowSearch); + QCOMPARE(res.categories.size(), setup.categories.size()); + for(auto i = 0; i < setup.categories.size(); i++) { + const auto &resCat = res.categories[i]; + const auto &category = setup.categories[i]; + QCOMPARE(resCat.title, category.title); + QCOMPARE(resCat.icon, category.icon); + QCOMPARE(resCat.tooltip, category.tooltip); + QCOMPARE(resCat.sections.size(), category.sections.size()); + for(auto j = 0; j < category.sections.size(); j++) { + const auto &resSec = resCat.sections[j]; + const auto §ion = category.sections[j]; + QCOMPARE(resSec.title, section.title); + QCOMPARE(resSec.icon, section.icon); + QCOMPARE(resSec.tooltip, section.tooltip); + QCOMPARE(resSec.groups.size(), section.groups.size()); + for(auto k = 0; k < section.groups.size(); k++) { + const auto &resGrp = resSec.groups[k]; + const auto &group = section.groups[k]; + QCOMPARE(resGrp.title, group.title); + QCOMPARE(resGrp.tooltip, group.tooltip); + QCOMPARE(resGrp.entries.size(), group.entries.size()); + for(auto l = 0; l < group.entries.size(); l++) { + const auto &resEnt = resGrp.entries[l]; + const auto &entry = group.entries[l]; + QCOMPARE(resEnt.key, entry.key); + QCOMPARE(resEnt.type, entry.type); + QCOMPARE(resEnt.title, entry.title); + QCOMPARE(resEnt.tooltip, entry.tooltip); + QCOMPARE(resEnt.defaultValue, entry.defaultValue); + QCOMPARE(resEnt.searchKeys, entry.searchKeys); + QCOMPARE(resEnt.properties, entry.properties); + } + } + } + } + } else + QVERIFY_EXCEPTION_THROWN(loader.loadSetup(path, frontend, &selector), SettingsConfigException); + } catch(std::exception &e) { + if(success) + QFAIL(e.what()); + } +} + +Setup SettingsConfigLoaderTest::createEntryDocumentSetup() +{ + return Setup { + true, true, { + Category { + QStringLiteral("General Settings"), QStringLiteral("qrc:/baum"), {}, { + Section { + QStringLiteral("General"), {}, {}, { + Group { + {}, {}, { + Entry { + QStringLiteral("minimal"), "bool" + }, + Entry { + QStringLiteral("full"), "string", + QStringLiteral("FULL"), QStringLiteral("full tip"), + QStringLiteral("hello world") + }, + Entry { + QStringLiteral("search"), "int", + {}, {}, {}, + {QStringLiteral("hello"), QStringLiteral("world")} + }, Entry { + QStringLiteral("elements"), "double", + {}, {}, {}, {}, + { + {QStringLiteral("simple"), 42}, + {QStringLiteral("literal"), QStringLiteral("baum42")}, + {QStringLiteral("list"), QVariantList { + 13, + QVariantList{4.2}, + QVariantMap{{QStringLiteral("simple"), 42}} + }}, + {QStringLiteral("map"), QVariantMap{ + {QStringLiteral("simple"), 42}, + {QStringLiteral("list"), QVariantList{4.2}} + }} + } + } + } + } + } + } + } + } + } + }; +} + +Setup SettingsConfigLoaderTest::createGroupDocumentSetup() +{ + return Setup { + true, true, { + Category { + QStringLiteral("General Settings"), QStringLiteral("qrc:/baum"), {}, { + Section { + QStringLiteral("General"), {}, {}, { + Group {}, + Group { + {}, {}, { + Entry { + QStringLiteral("minimal"), "bool" + } + } + }, + Group { + QStringLiteral("FULL"), QStringLiteral("full"), { + Entry { + QStringLiteral("a"), "bool" + }, + Entry { + QStringLiteral("b"), "bool" + } + } + } + } + } + } + } + } + }; +} + +Setup SettingsConfigLoaderTest::createSectionDocumentSetup() +{ + return Setup { + false, false, { + Category { + QStringLiteral("General Settings"), QStringLiteral("qrc:/baum"), {}, { + Section { + QStringLiteral("General") + }, + Section { + QStringLiteral("General"), {}, {}, { + Group { + {}, {}, { + Entry { + QStringLiteral("direct"), "double" + } + } + } + } + }, + Section { + QStringLiteral("master"), QStringLiteral("file:///path/to/vengance.png"), + QStringLiteral("ruler"), { + Group {}, + Group { + {}, {}, { + Entry { + QStringLiteral("indirect"), "double" + } + } + } + } + } + } + } + } + }; +} + +Setup SettingsConfigLoaderTest::createCategoryDocumentSetup() +{ + return Setup { + false, false, { + Category { + QStringLiteral("General Settings"), QStringLiteral("qrc:/baum") + }, + Category { + QStringLiteral("General Settings"), QStringLiteral("qrc:/baum"), {}, { + Section { + QStringLiteral("General"), {}, {}, { + Group { + {}, {}, { + Entry { + QStringLiteral("direct"), "double" + } + } + } + } + } + } + }, + Category { + QStringLiteral("General Settings"), QStringLiteral("qrc:/baum"), {}, { + Section { + QStringLiteral("General"), {}, {}, { + Group {}, + Group { + {}, {}, { + Entry { + QStringLiteral("indirect"), "double" + } + } + } + } + } + } + }, + Category { + QStringLiteral("main"), QStringLiteral("http://example.com/favicon.png"), + QStringLiteral("another tooltip"), { + Section { + QStringLiteral("General") + }, + Section { + QStringLiteral("General"), {}, {}, { + Group { + {}, {}, { + Entry { + QStringLiteral("subdirect"), "double" + } + } + } + } + }, + Section { + QStringLiteral("General"), {}, {}, { + Group {}, + Group { + {}, {}, { + Entry { + QStringLiteral("fardirect"), "double" + } + } + } + } + } + } + } + } + }; +} + +Setup SettingsConfigLoaderTest::createSelectorsSetup0() +{ + return Setup { + false, false, { + Category { + QStringLiteral("General Settings"), QStringLiteral("qrc:/baum") + }, + Category { + QStringLiteral("General Settings"), QStringLiteral("qrc:/baum"), {}, { + Section { + QStringLiteral("General"), {}, {}, { + Group {}, + Group {} + } + } + } + }, + + Category { + QStringLiteral("General Settings"), QStringLiteral("qrc:/baum"), {}, { + Section { + QStringLiteral("General"), {}, {}, { + Group {} + } + } + } + } + } + }; +} + +Setup SettingsConfigLoaderTest::createSelectorsSetup1() +{ + return Setup { + false, false, { + Category { + QStringLiteral("General Settings"), QStringLiteral("qrc:/baum"), {}, { + Section { + QStringLiteral("General") + }, + Section { + QStringLiteral("General"), {}, {}, { + Group { + {}, {}, { + Entry { + QStringLiteral("t1"), "bool" + } + } + } + } + } + } + }, + + Category { + QStringLiteral("General Settings"), QStringLiteral("qrc:/baum"), {}, { + Section { + QStringLiteral("General"), {}, {}, { + Group {} + } + } + } + } + } + }; +} + +Setup SettingsConfigLoaderTest::createSelectorsSetup2() +{ + return Setup { + false, false, { + Category { + QStringLiteral("General Settings"), QStringLiteral("qrc:/baum"), {}, { + Section { + QStringLiteral("General"), {}, {}, { + Group {} + } + } + } + }, + + Category { + QStringLiteral("General Settings"), QStringLiteral("qrc:/baum"), {}, { + Section { + QStringLiteral("General") + }, + Section { + QStringLiteral("General"), {}, {}, { + Group { + {}, {}, { + Entry { + QStringLiteral("t2"), "bool" + } + } + } + } + } + } + } + } + }; +} + +Setup SettingsConfigLoaderTest::createSelectorsSetup3() +{ + return Setup { + false, false, { + Category { + QStringLiteral("General Settings"), QStringLiteral("qrc:/baum"), {}, { + Section { + QStringLiteral("General"), {}, {}, { + Group {} + } + } + } + }, + + Category { + QStringLiteral("General Settings"), QStringLiteral("qrc:/baum") + }, + Category { + QStringLiteral("General Settings"), QStringLiteral("qrc:/baum"), {}, { + Section { + QStringLiteral("General") + }, + Section { + QStringLiteral("General"), {}, {}, { + Group {} + } + } + } + } + } + }; +} + +Setup SettingsConfigLoaderTest::createSelectorsSetup4() +{ + return Setup { + false, false, { + Category { + QStringLiteral("General Settings"), QStringLiteral("qrc:/baum"), {}, { + Section { + QStringLiteral("General"), {}, {}, { + Group {}, + Group { + {}, {}, { + Entry { + QStringLiteral("t1"), "bool" + } + } + } + } + } + } + }, + + Category { + QStringLiteral("General Settings"), QStringLiteral("qrc:/baum"), {}, { + Section { + QStringLiteral("General") + }, + Section { + QStringLiteral("General"), {}, {}, { + Group {}, + Group { + {}, {}, { + Entry { + QStringLiteral("t2"), "bool" + } + } + } + } + } + } + }, + + Category { + QStringLiteral("General Settings"), QStringLiteral("qrc:/baum") + } + } + }; +} + +Setup SettingsConfigLoaderTest::createIncludesSetup() +{ + return Setup{}; +} + +Setup SettingsConfigLoaderTest::createCustomTypesSetup() +{ + return Setup{}; +} + +Setup SettingsConfigLoaderTest::createIconChangeSetup() +{ + return Setup{}; +} + +Setup SettingsConfigLoaderTest::createTranslationsSetup() +{ + return Setup{}; +} + +QTEST_MAIN(SettingsConfigLoaderTest) + +#include "tst_settingsconfigloader.moc" diff --git a/tools/settingsgenerator/settingsgeneratorimpl.h b/tools/settingsgenerator/settingsgeneratorimpl.h index c347eba..de07d2c 100644 --- a/tools/settingsgenerator/settingsgeneratorimpl.h +++ b/tools/settingsgenerator/settingsgeneratorimpl.h @@ -5,7 +5,7 @@ #include #include "qsettingsgenerator.h" -#include "settingsconfigimpl.h" +#include "settingsconfigimpl_p.h" class SettingsGeneratorImpl : public SettingsGeneratorBase { diff --git a/tools/settingsgenerator/settingstranslator.h b/tools/settingsgenerator/settingstranslator.h index ef8bdb6..5e6efa6 100644 --- a/tools/settingsgenerator/settingstranslator.h +++ b/tools/settingsgenerator/settingstranslator.h @@ -4,7 +4,7 @@ #include #include -#include "settingsconfigimpl.h" +#include "settingsconfigimpl_p.h" class SettingsTranslator : public SettingsConfigImpl {