From 8f7bf7bc8165cf94170effa18ffe70ece48fba0d Mon Sep 17 00:00:00 2001 From: Skycoder42 Date: Sun, 25 Feb 2018 13:57:03 +0100 Subject: [PATCH] moved mvvm settings stuff into main lib --- examples/mvvmcore/SampleCore/SampleCore.pro | 4 +- .../mvvmcore/SampleCore/drawerviewmodel.cpp | 2 +- .../mvvmcore/SampleCore/sampleviewmodel.cpp | 2 +- .../mvvmquick/SampleQuick/SampleQuick.pro | 2 +- .../SampleWidgets/SampleWidgets.pro | 2 +- examples/mvvmwidgets/SampleWidgets/main.cpp | 2 - src/imports/mvvmcore/plugins.qmltypes | 45 ++++++++++++++++++ src/imports/mvvmcore/qtmvvmcore_plugin.cpp | 2 + src/mvvmcore/mvvmcore.pro | 13 +++-- src/mvvmcore/qtmvvmcore_global.cpp | 22 +++++++++ .../settings.xsd | 0 .../settingssetup.h | 2 +- .../settingssetuploader.cpp | 2 +- .../settingssetuploader_p.h | 6 +-- .../settingsviewmodel.cpp | 5 +- .../settingsviewmodel.h | 6 +-- .../settingsviewmodel_p.h | 2 +- src/mvvmsettingscore/mvvmsettingscore.pro | 40 ---------------- src/mvvmsettingscore/qpmx.json | 14 ------ .../qtmvvmsettingscore_global.cpp | 24 ---------- .../qtmvvmsettingscore_global.h | 12 ----- .../translations/qtmvvmsettingscore_de.ts | 30 ------------ .../qtmvvmsettingscore_template.ts | 30 ------------ .../mvvmsettingswidgets.pro | 42 ---------------- src/mvvmsettingswidgets/qpmx.json | 14 ------ .../qtmvvmsettingswidgets_global.h | 12 ----- src/mvvmwidgets/mvvmwidgets.pro | 13 ++++- .../qtmvvmwidgets_module.qrc} | 0 .../setting_tools.ico | Bin .../settingsdialog.cpp | 26 ++-------- .../settingsdialog.h | 6 +-- .../settingsdialog.ui | 0 .../settingsdialog_p.h | 6 +-- src/mvvmwidgets/widgetspresenter.cpp | 3 +- src/src.pro | 4 +- sync.profile | 4 +- 36 files changed, 122 insertions(+), 277 deletions(-) rename src/{mvvmsettingscore => mvvmcore}/settings.xsd (100%) rename src/{mvvmsettingscore => mvvmcore}/settingssetup.h (96%) rename src/{mvvmsettingscore => mvvmcore}/settingssetuploader.cpp (99%) rename src/{mvvmsettingscore => mvvmcore}/settingssetuploader_p.h (93%) rename src/{mvvmsettingscore => mvvmcore}/settingsviewmodel.cpp (97%) rename src/{mvvmsettingscore => mvvmcore}/settingsviewmodel.h (90%) rename src/{mvvmsettingscore => mvvmcore}/settingsviewmodel_p.h (90%) delete mode 100644 src/mvvmsettingscore/mvvmsettingscore.pro delete mode 100644 src/mvvmsettingscore/qpmx.json delete mode 100644 src/mvvmsettingscore/qtmvvmsettingscore_global.cpp delete mode 100644 src/mvvmsettingscore/qtmvvmsettingscore_global.h delete mode 100644 src/mvvmsettingscore/translations/qtmvvmsettingscore_de.ts delete mode 100644 src/mvvmsettingscore/translations/qtmvvmsettingscore_template.ts delete mode 100644 src/mvvmsettingswidgets/mvvmsettingswidgets.pro delete mode 100644 src/mvvmsettingswidgets/qpmx.json delete mode 100644 src/mvvmsettingswidgets/qtmvvmsettingswidgets_global.h rename src/{mvvmsettingswidgets/qtmvvmsettingswidgets_module.qrc => mvvmwidgets/qtmvvmwidgets_module.qrc} (100%) rename src/{mvvmsettingswidgets => mvvmwidgets}/setting_tools.ico (100%) rename src/{mvvmsettingswidgets => mvvmwidgets}/settingsdialog.cpp (93%) rename src/{mvvmsettingswidgets => mvvmwidgets}/settingsdialog.h (74%) rename src/{mvvmsettingswidgets => mvvmwidgets}/settingsdialog.ui (100%) rename src/{mvvmsettingswidgets => mvvmwidgets}/settingsdialog_p.h (94%) diff --git a/examples/mvvmcore/SampleCore/SampleCore.pro b/examples/mvvmcore/SampleCore/SampleCore.pro index 6e5c266..f5959b3 100644 --- a/examples/mvvmcore/SampleCore/SampleCore.pro +++ b/examples/mvvmcore/SampleCore/SampleCore.pro @@ -1,6 +1,6 @@ TEMPLATE = lib -QT = core gui mvvmcore mvvmsettingscore +QT = core gui mvvmcore CONFIG += static TARGET = SampleCore @@ -26,4 +26,4 @@ target.path = $$[QT_INSTALL_EXAMPLES]/mvvmcore/$$TARGET INSTALLS += target RESOURCES += \ - sample_core.qrc + sample_core.qrc diff --git a/examples/mvvmcore/SampleCore/drawerviewmodel.cpp b/examples/mvvmcore/SampleCore/drawerviewmodel.cpp index acd386c..7b1446a 100644 --- a/examples/mvvmcore/SampleCore/drawerviewmodel.cpp +++ b/examples/mvvmcore/SampleCore/drawerviewmodel.cpp @@ -1,5 +1,5 @@ #include "drawerviewmodel.h" -#include +#include #include "sampleviewmodel.h" #include "tabviewmodel.h" diff --git a/examples/mvvmcore/SampleCore/sampleviewmodel.cpp b/examples/mvvmcore/SampleCore/sampleviewmodel.cpp index 5508062..f7c78dc 100644 --- a/examples/mvvmcore/SampleCore/sampleviewmodel.cpp +++ b/examples/mvvmcore/SampleCore/sampleviewmodel.cpp @@ -1,7 +1,7 @@ #include "sampleviewmodel.h" #include #include -#include +#include #include "resultviewmodel.h" #include "tabviewmodel.h" diff --git a/examples/mvvmquick/SampleQuick/SampleQuick.pro b/examples/mvvmquick/SampleQuick/SampleQuick.pro index 7774f24..b145764 100644 --- a/examples/mvvmquick/SampleQuick/SampleQuick.pro +++ b/examples/mvvmquick/SampleQuick/SampleQuick.pro @@ -1,6 +1,6 @@ TEMPLATE = app -QT += core gui qml quick mvvmquick widgets mvvmsettingscore +QT += core gui qml quick mvvmquick widgets TARGET = SampleQuick diff --git a/examples/mvvmwidgets/SampleWidgets/SampleWidgets.pro b/examples/mvvmwidgets/SampleWidgets/SampleWidgets.pro index a6088cc..6aa522e 100644 --- a/examples/mvvmwidgets/SampleWidgets/SampleWidgets.pro +++ b/examples/mvvmwidgets/SampleWidgets/SampleWidgets.pro @@ -1,6 +1,6 @@ TEMPLATE = app -QT += core gui widgets mvvmwidgets mvvmsettingswidgets +QT += core gui widgets mvvmwidgets TARGET = SampleWidgets diff --git a/examples/mvvmwidgets/SampleWidgets/main.cpp b/examples/mvvmwidgets/SampleWidgets/main.cpp index f200ef2..489c21b 100644 --- a/examples/mvvmwidgets/SampleWidgets/main.cpp +++ b/examples/mvvmwidgets/SampleWidgets/main.cpp @@ -1,7 +1,6 @@ #include #include #include -#include #include #include "widgetseventservice.h" @@ -26,7 +25,6 @@ int main(int argc, char *argv[]) QtMvvm::WidgetsPresenter::registerView(); QtMvvm::WidgetsPresenter::registerView(); QtMvvm::WidgetsPresenter::registerView(); - QtMvvm::WidgetsPresenter::registerView(); if(TEST_CURRENT == TEST_DIRECT) QtMvvm::ServiceRegistry::instance()->registerObject(); diff --git a/src/imports/mvvmcore/plugins.qmltypes b/src/imports/mvvmcore/plugins.qmltypes index 8ac87bb..67ebf6b 100644 --- a/src/imports/mvvmcore/plugins.qmltypes +++ b/src/imports/mvvmcore/plugins.qmltypes @@ -419,6 +419,51 @@ Module { Parameter { name: "onResult"; type: "QJSValue" } } } + Component { + name: "QtMvvm::SettingsViewModel" + prototype: "QtMvvm::ViewModel" + exports: ["de.skycoder42.QtMvvm.Core/SettingsViewModel 1.0"] + isCreatable: false + exportMetaObjectRevisions: [0] + Property { name: "canRestoreDefaults"; type: "bool"; isReadonly: true } + Property { name: "restoreConfig"; type: "QtMvvm::MessageConfig"; isReadonly: true } + Property { name: "settingsSetupLoader"; type: "QtMvvm::ISettingsSetupLoader"; isPointer: true } + Property { name: "__qtmvvm_inject_settingsSetupLoader"; type: "QByteArray"; isReadonly: true } + Signal { + name: "settingsSetupLoaderChanged" + Parameter { name: "settingsSetupLoader"; type: "QtMvvm::ISettingsSetupLoader"; isPointer: true } + } + Signal { name: "beginLoadSetup" } + Method { + name: "callAction" + Parameter { name: "entryId"; type: "string" } + Parameter { name: "parameters"; type: "QVariantMap" } + } + Method { + name: "setSettingsSetupLoader" + Parameter { name: "settingsSetupLoader"; type: "QtMvvm::ISettingsSetupLoader"; isPointer: true } + } + Method { + name: "loadValue" + type: "QVariant" + Parameter { name: "key"; type: "string" } + Parameter { name: "defaultValue"; type: "QVariant" } + } + Method { + name: "loadValue" + type: "QVariant" + Parameter { name: "key"; type: "string" } + } + Method { + name: "saveValue" + Parameter { name: "key"; type: "string" } + Parameter { name: "value"; type: "QVariant" } + } + Method { + name: "resetValue" + Parameter { name: "key"; type: "string" } + } + } Component { name: "QtMvvm::ViewModel" prototype: "QObject" diff --git a/src/imports/mvvmcore/qtmvvmcore_plugin.cpp b/src/imports/mvvmcore/qtmvvmcore_plugin.cpp index 7708762..6d9adf0 100644 --- a/src/imports/mvvmcore/qtmvvmcore_plugin.cpp +++ b/src/imports/mvvmcore/qtmvvmcore_plugin.cpp @@ -3,6 +3,7 @@ #include #include +#include #include #include "qqmlmvvmbinding.h" @@ -25,6 +26,7 @@ void QtMvvmCoreDeclarativeModule::registerTypes(const char *uri) qmlRegisterUncreatableType(uri, 1, 0, "MessageConfig", QStringLiteral("Q_GADGETS cannot be created from QML")); qmlRegisterUncreatableType(uri, 1, 0, "MessageResult", QStringLiteral("Message results must be passed from C++")); qmlRegisterUncreatableType(uri, 1, 0, "ViewModel", QStringLiteral("ViewModels cannot be created from QML")); + qmlRegisterUncreatableType(uri, 1, 0, "SettingsViewModel", QStringLiteral("ViewModels cannot be created from QML")); qmlRegisterType(uri, 1, 0, "MvvmBinding"); diff --git a/src/mvvmcore/mvvmcore.pro b/src/mvvmcore/mvvmcore.pro index 8b851ee..56eb02f 100644 --- a/src/mvvmcore/mvvmcore.pro +++ b/src/mvvmcore/mvvmcore.pro @@ -16,7 +16,11 @@ HEADERS += \ binding.h \ binding_p.h \ message.h \ - message_p.h + message_p.h \ + settingssetup.h \ + settingssetuploader_p.h \ + settingsviewmodel_p.h \ + settingsviewmodel.h SOURCES += \ viewmodel.cpp \ @@ -25,13 +29,16 @@ SOURCES += \ qtmvvmcore_global.cpp \ binding.cpp \ message.cpp \ - ipresenter.cpp + ipresenter.cpp \ + settingssetuploader.cpp \ + settingsviewmodel.cpp TRANSLATIONS += \ translations/qtmvvmcore_de.ts \ translations/qtmvvmcore_template.ts -DISTFILES += $$TRANSLATIONS +DISTFILES += $$TRANSLATIONS \ + settings.xsd qpmx_ts_target.path = $$[QT_INSTALL_TRANSLATIONS] qpmx_ts_target.depends += lrelease diff --git a/src/mvvmcore/qtmvvmcore_global.cpp b/src/mvvmcore/qtmvvmcore_global.cpp index cbfc511..a349450 100644 --- a/src/mvvmcore/qtmvvmcore_global.cpp +++ b/src/mvvmcore/qtmvvmcore_global.cpp @@ -1,5 +1,27 @@ #include "qtmvvmcore_global.h" #include "qtmvvm_logging_p.h" +#include "serviceregistry.h" +#include "settingssetuploader_p.h" + +#include + +namespace { + +void qtMvvmCoreStartup() +{ + using namespace QtMvvm; + registerInterfaceConverter(); + try { + ServiceRegistry::instance()->registerInterface(true); + } catch(ServiceExistsException &e) { + logDebug() << "Unable to register default ISettingsSetupLoader with error:" << e.what(); + } +} + +} +Q_COREAPP_STARTUP_FUNCTION(qtMvvmCoreStartup) + + namespace QtMvvm { diff --git a/src/mvvmsettingscore/settings.xsd b/src/mvvmcore/settings.xsd similarity index 100% rename from src/mvvmsettingscore/settings.xsd rename to src/mvvmcore/settings.xsd diff --git a/src/mvvmsettingscore/settingssetup.h b/src/mvvmcore/settingssetup.h similarity index 96% rename from src/mvvmsettingscore/settingssetup.h rename to src/mvvmcore/settingssetup.h index 8f72814..39a6255 100644 --- a/src/mvvmsettingscore/settingssetup.h +++ b/src/mvvmcore/settingssetup.h @@ -8,7 +8,7 @@ #include #include -#include "QtMvvmSettingsCore/qtmvvmsettingscore_global.h" +#include "QtMvvmCore/qtmvvmcore_global.h" namespace QtMvvm { diff --git a/src/mvvmsettingscore/settingssetuploader.cpp b/src/mvvmcore/settingssetuploader.cpp similarity index 99% rename from src/mvvmsettingscore/settingssetuploader.cpp rename to src/mvvmcore/settingssetuploader.cpp index 685fc55..b75054b 100644 --- a/src/mvvmsettingscore/settingssetuploader.cpp +++ b/src/mvvmcore/settingssetuploader.cpp @@ -1,9 +1,9 @@ #include "settingssetuploader_p.h" +#include "qtmvvm_logging_p.h" #include #include -#include using namespace QtMvvm; using namespace QtMvvm::SettingsElements; diff --git a/src/mvvmsettingscore/settingssetuploader_p.h b/src/mvvmcore/settingssetuploader_p.h similarity index 93% rename from src/mvvmsettingscore/settingssetuploader_p.h rename to src/mvvmcore/settingssetuploader_p.h index 94c8a86..0215405 100644 --- a/src/mvvmsettingscore/settingssetuploader_p.h +++ b/src/mvvmcore/settingssetuploader_p.h @@ -9,12 +9,12 @@ #include #include -#include "qtmvvmsettingscore_global.h" +#include "qtmvvmcore_global.h" #include "settingssetup.h" namespace QtMvvm { -class Q_MVVMSETTINGSCORE_EXPORT SettingsSetupLoader : public QObject, public ISettingsSetupLoader +class Q_MVVMCORE_EXPORT SettingsSetupLoader : public QObject, public ISettingsSetupLoader { Q_OBJECT Q_INTERFACES(QtMvvm::ISettingsSetupLoader) @@ -68,7 +68,7 @@ private: bool isUsable(const T &configElement, const QString &frontend, const QStringList &selectors) const; }; -class Q_MVVMSETTINGSCORE_EXPORT SettingsXmlException : public SettingsLoaderException +class Q_MVVMCORE_EXPORT SettingsXmlException : public SettingsLoaderException { public: SettingsXmlException(const QXmlStreamReader &reader); diff --git a/src/mvvmsettingscore/settingsviewmodel.cpp b/src/mvvmcore/settingsviewmodel.cpp similarity index 97% rename from src/mvvmsettingscore/settingsviewmodel.cpp rename to src/mvvmcore/settingsviewmodel.cpp index 8238630..ad9d1c3 100644 --- a/src/mvvmsettingscore/settingsviewmodel.cpp +++ b/src/mvvmcore/settingsviewmodel.cpp @@ -1,8 +1,7 @@ #include "settingsviewmodel.h" #include "settingsviewmodel_p.h" -#include -#include - +#include "coreapp.h" +#include "qtmvvm_logging_p.h" #include "settingssetuploader_p.h" using namespace QtMvvm; diff --git a/src/mvvmsettingscore/settingsviewmodel.h b/src/mvvmcore/settingsviewmodel.h similarity index 90% rename from src/mvvmsettingscore/settingsviewmodel.h rename to src/mvvmcore/settingsviewmodel.h index 0972d77..c7076fd 100644 --- a/src/mvvmsettingscore/settingsviewmodel.h +++ b/src/mvvmcore/settingsviewmodel.h @@ -7,13 +7,13 @@ #include #include -#include "QtMvvmSettingsCore/qtmvvmsettingscore_global.h" -#include "QtMvvmSettingsCore/settingssetup.h" +#include "QtMvvmCore/qtmvvmcore_global.h" +#include "QtMvvmCore/settingssetup.h" namespace QtMvvm { class SettingsViewModelPrivate; -class Q_MVVMSETTINGSCORE_EXPORT SettingsViewModel : public ViewModel //TODO create qml binding +class Q_MVVMCORE_EXPORT SettingsViewModel : public ViewModel { Q_OBJECT diff --git a/src/mvvmsettingscore/settingsviewmodel_p.h b/src/mvvmcore/settingsviewmodel_p.h similarity index 90% rename from src/mvvmsettingscore/settingsviewmodel_p.h rename to src/mvvmcore/settingsviewmodel_p.h index 8c3fadd..572760e 100644 --- a/src/mvvmsettingscore/settingsviewmodel_p.h +++ b/src/mvvmcore/settingsviewmodel_p.h @@ -1,7 +1,7 @@ #ifndef QTMVVM_SETTINGSVIEWMODEL_P_H #define QTMVVM_SETTINGSVIEWMODEL_P_H -#include "qtmvvmsettingscore_global.h" +#include "qtmvvmcore_global.h" #include "settingsviewmodel.h" namespace QtMvvm { diff --git a/src/mvvmsettingscore/mvvmsettingscore.pro b/src/mvvmsettingscore/mvvmsettingscore.pro deleted file mode 100644 index c19543e..0000000 --- a/src/mvvmsettingscore/mvvmsettingscore.pro +++ /dev/null @@ -1,40 +0,0 @@ -TARGET = QtMvvmSettingsCore - -QT = core gui mvvmcore mvvmcore-private - -HEADERS += qtmvvmsettingscore_global.h \ - settingsviewmodel.h \ - settingssetup.h \ - settingssetuploader_p.h \ - settingsviewmodel_p.h - -SOURCES += \ - settingsviewmodel.cpp \ - settingssetuploader.cpp \ - qtmvvmsettingscore_global.cpp - -TRANSLATIONS += \ - translations/qtmvvmsettingscore_de.ts \ - translations/qtmvvmsettingscore_template.ts - -DISTFILES += $$TRANSLATIONS - -qpmx_ts_target.path = $$[QT_INSTALL_TRANSLATIONS] -qpmx_ts_target.depends += lrelease - -load(qt_module) - -win32 { - QMAKE_TARGET_PRODUCT = "$$TARGET" - QMAKE_TARGET_COMPANY = "Skycoder42" - QMAKE_TARGET_COPYRIGHT = "Felix Barz" -} else:mac { - QMAKE_TARGET_BUNDLE_PREFIX = "com.skycoder42." -} - -!ReleaseBuild:!DebugBuild:!system(qpmx -d $$shell_quote($$_PRO_FILE_PWD_) --qmake-run init $$QPMX_EXTRA_OPTIONS $$shell_quote($$QMAKE_QMAKE) $$shell_quote($$OUT_PWD)): error(qpmx initialization failed. Check the compilation log for details.) -else: include($$OUT_PWD/qpmx_generated.pri) - -qpmx_ts_target.files -= $$OUT_PWD/$$QPMX_WORKINGDIR/qtmvvmsettingscore_template.qm -qpmx_ts_target.files += translations/qtmvvmsettingscore_template.ts - diff --git a/src/mvvmsettingscore/qpmx.json b/src/mvvmsettingscore/qpmx.json deleted file mode 100644 index 461fe91..0000000 --- a/src/mvvmsettingscore/qpmx.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "dependencies": [], - "license": { - "file": "", - "name": "" - }, - "prcFile": "", - "priFile": "", - "priIncludes": [ - ], - "publishers": { - }, - "source": false -} diff --git a/src/mvvmsettingscore/qtmvvmsettingscore_global.cpp b/src/mvvmsettingscore/qtmvvmsettingscore_global.cpp deleted file mode 100644 index d6e2663..0000000 --- a/src/mvvmsettingscore/qtmvvmsettingscore_global.cpp +++ /dev/null @@ -1,24 +0,0 @@ -#include "qtmvvmsettingscore_global.h" -#include -#include -#include - -#include "settingssetuploader_p.h" - -using namespace QtMvvm; - -namespace { - -void qtMvvmSettingsCoreStartup() -{ - QtMvvm::registerInterfaceConverter(); - try { - ServiceRegistry::instance()->registerInterface(true); - } catch(ServiceExistsException &e) { - logDebug() << "Unable to register default ISettingsSetupLoader with error:" << e.what(); - } -} - -} - -Q_COREAPP_STARTUP_FUNCTION(qtMvvmSettingsCoreStartup) diff --git a/src/mvvmsettingscore/qtmvvmsettingscore_global.h b/src/mvvmsettingscore/qtmvvmsettingscore_global.h deleted file mode 100644 index 2f6b414..0000000 --- a/src/mvvmsettingscore/qtmvvmsettingscore_global.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef QTMVVMSETTINGSCORE_GLOBAL_H -#define QTMVVMSETTINGSCORE_GLOBAL_H - -#include - -#if defined(QT_BUILD_MVVMSETTINGSCORE_LIB) -# define Q_MVVMSETTINGSCORE_EXPORT Q_DECL_EXPORT -#else -# define Q_MVVMSETTINGSCORE_EXPORT Q_DECL_IMPORT -#endif - -#endif // QTMVVMSETTINGSCORE_GLOBAL_H diff --git a/src/mvvmsettingscore/translations/qtmvvmsettingscore_de.ts b/src/mvvmsettingscore/translations/qtmvvmsettingscore_de.ts deleted file mode 100644 index a5c63e4..0000000 --- a/src/mvvmsettingscore/translations/qtmvvmsettingscore_de.ts +++ /dev/null @@ -1,30 +0,0 @@ - - - - - QtMvvm::SettingsSetupLoader - - - General Settings - - - - - General - - - - - QtMvvm::SettingsViewModel - - - Restore Defaults? - - - - - All custom changes will be deleted and the defaults restored. <i>This cannot be undone!</i> - - - - diff --git a/src/mvvmsettingscore/translations/qtmvvmsettingscore_template.ts b/src/mvvmsettingscore/translations/qtmvvmsettingscore_template.ts deleted file mode 100644 index c1a534f..0000000 --- a/src/mvvmsettingscore/translations/qtmvvmsettingscore_template.ts +++ /dev/null @@ -1,30 +0,0 @@ - - - - - QtMvvm::SettingsSetupLoader - - - General Settings - - - - - General - - - - - QtMvvm::SettingsViewModel - - - Restore Defaults? - - - - - All custom changes will be deleted and the defaults restored. <i>This cannot be undone!</i> - - - - diff --git a/src/mvvmsettingswidgets/mvvmsettingswidgets.pro b/src/mvvmsettingswidgets/mvvmsettingswidgets.pro deleted file mode 100644 index c8e9b85..0000000 --- a/src/mvvmsettingswidgets/mvvmsettingswidgets.pro +++ /dev/null @@ -1,42 +0,0 @@ -TARGET = QtMvvmSettingsWidgets - -QT = core gui mvvmsettingscore mvvmwidgets mvvmcore-private - -HEADERS += qtmvvmsettingswidgets_global.h \ - settingsdialog.h \ - settingsdialog_p.h - -SOURCES += \ - settingsdialog.cpp - -TRANSLATIONS += \ - translations/qtmvvmsettingswidgets_de.ts \ - translations/qtmvvmsettingswidgets_template.ts - -DISTFILES += $$TRANSLATIONS - -qpmx_ts_target.path = $$[QT_INSTALL_TRANSLATIONS] -qpmx_ts_target.depends += lrelease - -load(qt_module) - -win32 { - QMAKE_TARGET_PRODUCT = "$$TARGET" - QMAKE_TARGET_COMPANY = "Skycoder42" - QMAKE_TARGET_COPYRIGHT = "Felix Barz" -} else:mac { - QMAKE_TARGET_BUNDLE_PREFIX = "com.skycoder42." -} - -!ReleaseBuild:!DebugBuild:!system(qpmx -d $$shell_quote($$_PRO_FILE_PWD_) --qmake-run init $$QPMX_EXTRA_OPTIONS $$shell_quote($$QMAKE_QMAKE) $$shell_quote($$OUT_PWD)): error(qpmx initialization failed. Check the compilation log for details.) -else: include($$OUT_PWD/qpmx_generated.pri) - -qpmx_ts_target.files -= $$OUT_PWD/$$QPMX_WORKINGDIR/qtmvvmsettingswidgets_template.qm -qpmx_ts_target.files += translations/qtmvvmsettingswidgets_template.ts - -FORMS += \ - settingsdialog.ui - -RESOURCES += \ - qtmvvmsettingswidgets_module.qrc - diff --git a/src/mvvmsettingswidgets/qpmx.json b/src/mvvmsettingswidgets/qpmx.json deleted file mode 100644 index 461fe91..0000000 --- a/src/mvvmsettingswidgets/qpmx.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "dependencies": [], - "license": { - "file": "", - "name": "" - }, - "prcFile": "", - "priFile": "", - "priIncludes": [ - ], - "publishers": { - }, - "source": false -} diff --git a/src/mvvmsettingswidgets/qtmvvmsettingswidgets_global.h b/src/mvvmsettingswidgets/qtmvvmsettingswidgets_global.h deleted file mode 100644 index ac94303..0000000 --- a/src/mvvmsettingswidgets/qtmvvmsettingswidgets_global.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef QTMVVMSETTINGSWIDGETS_GLOBAL_H -#define QTMVVMSETTINGSWIDGETS_GLOBAL_H - -#include - -#if defined(QT_BUILD_MVVMSETTINGSWIDGETS_LIB) -# define Q_MVVMSETTINGSWIDGETS_EXPORT Q_DECL_EXPORT -#else -# define Q_MVVMSETTINGSWIDGETS_EXPORT Q_DECL_IMPORT -#endif - -#endif // QTMVVMSETTINGSWIDGETS_GLOBAL_H diff --git a/src/mvvmwidgets/mvvmwidgets.pro b/src/mvvmwidgets/mvvmwidgets.pro index 0fb4a21..2bc8351 100644 --- a/src/mvvmwidgets/mvvmwidgets.pro +++ b/src/mvvmwidgets/mvvmwidgets.pro @@ -10,13 +10,22 @@ HEADERS += \ fontcombobox_p.h \ selectcombobox_p.h \ inputwidgetfactory.h \ - inputwidgetfactory_p.h + inputwidgetfactory_p.h \ + settingsdialog_p.h \ + settingsdialog.h SOURCES += \ widgetspresenter.cpp \ fontcombobox.cpp \ selectcombobox.cpp \ - inputwidgetfactory.cpp + inputwidgetfactory.cpp \ + settingsdialog.cpp + +FORMS += \ + settingsdialog.ui + +RESOURCES += \ + qtmvvmwidgets_module.qrc TRANSLATIONS += \ translations/qtmvvmwidgets_de.ts \ diff --git a/src/mvvmsettingswidgets/qtmvvmsettingswidgets_module.qrc b/src/mvvmwidgets/qtmvvmwidgets_module.qrc similarity index 100% rename from src/mvvmsettingswidgets/qtmvvmsettingswidgets_module.qrc rename to src/mvvmwidgets/qtmvvmwidgets_module.qrc diff --git a/src/mvvmsettingswidgets/setting_tools.ico b/src/mvvmwidgets/setting_tools.ico similarity index 100% rename from src/mvvmsettingswidgets/setting_tools.ico rename to src/mvvmwidgets/setting_tools.ico diff --git a/src/mvvmsettingswidgets/settingsdialog.cpp b/src/mvvmwidgets/settingsdialog.cpp similarity index 93% rename from src/mvvmsettingswidgets/settingsdialog.cpp rename to src/mvvmwidgets/settingsdialog.cpp index f2c9ad9..ff6a2ee 100644 --- a/src/mvvmsettingswidgets/settingsdialog.cpp +++ b/src/mvvmwidgets/settingsdialog.cpp @@ -1,6 +1,7 @@ #include "settingsdialog.h" #include "settingsdialog_p.h" #include "ui_settingsdialog.h" +#include "widgetspresenter_p.h" #include #include @@ -10,9 +11,6 @@ #include #include -#include -#include - #include namespace { @@ -35,12 +33,6 @@ SettingsDialog::SettingsDialog(ViewModel *viewModel, QWidget *parent) : initResources(); d->ui->setupUi(this); - //TODO ??? -// d->ui->buttonBox->button(QDialogButtonBox::Ok)->setAutoDefault(false); -// d->ui->buttonBox->button(QDialogButtonBox::Cancel)->setAutoDefault(false); -// d->ui->buttonBox->button(QDialogButtonBox::Apply)->setAutoDefault(false); -// d->ui->buttonBox->button(QDialogButtonBox::RestoreDefaults)->setAutoDefault(false); -// d->ui->buttonBox->button(QDialogButtonBox::Ok)->setDefault(true); connect(d->ui->buttonBox, &QDialogButtonBox::clicked, d, &SettingsDialogPrivate::buttonBoxClicked); connect(d->ui->filterLineEdit, &QLineEdit::textChanged, @@ -207,13 +199,7 @@ void SettingsDialogPrivate::createEntry(const SettingsElements::Entry &entry, QW }); content = btn; } else { - auto presenter = dynamic_cast(CoreApp::instance()->presenter()); - if(!presenter) { - logWarning() << "Unable to convert QtMvvm::CoreApp::presenter to a QtMvvm::WidgetsPresenter - cannot create settings entry"; - return; - } - - auto widgetFactory = presenter->inputWidgetFactory(); + auto widgetFactory = WidgetsPresenterPrivate::currentPresenter()->inputWidgetFactory(); content = widgetFactory->createInput(entry.type, sectionWidget, entry.properties); if(!content) { logWarning() << "Failed to create settings widget for type" << entry.type; @@ -474,13 +460,11 @@ void SettingsDialogPrivate::filterTextChanged(const QString &searchText) -CategoryItemDelegate::CategoryItemDelegate(std::function updateFunc, const QSize &iconSize, int layoutSpacing, QObject *parent) : +CategoryItemDelegate::CategoryItemDelegate(const std::function &updateFunc, const QSize &iconSize, int layoutSpacing, QObject *parent) : QStyledItemDelegate(parent), - _iconSize(), + _iconSize(iconSize + QSize(0, layoutSpacing)), _updateFunc(updateFunc) -{ - this->_iconSize = iconSize + QSize(0, layoutSpacing); -} +{} QSize CategoryItemDelegate::sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const { diff --git a/src/mvvmsettingswidgets/settingsdialog.h b/src/mvvmwidgets/settingsdialog.h similarity index 74% rename from src/mvvmsettingswidgets/settingsdialog.h rename to src/mvvmwidgets/settingsdialog.h index 98774c6..9662d0d 100644 --- a/src/mvvmsettingswidgets/settingsdialog.h +++ b/src/mvvmwidgets/settingsdialog.h @@ -3,16 +3,16 @@ #include -#include +#include #include -#include "QtMvvmSettingsWidgets/qtmvvmsettingswidgets_global.h" +#include "QtMvvmWidgets/qtmvvmwidgets_global.h" namespace QtMvvm { class SettingsDialogPrivate; -class Q_MVVMSETTINGSWIDGETS_EXPORT SettingsDialog : public QDialog +class Q_MVVMWIDGETS_EXPORT SettingsDialog : public QDialog { Q_OBJECT diff --git a/src/mvvmsettingswidgets/settingsdialog.ui b/src/mvvmwidgets/settingsdialog.ui similarity index 100% rename from src/mvvmsettingswidgets/settingsdialog.ui rename to src/mvvmwidgets/settingsdialog.ui diff --git a/src/mvvmsettingswidgets/settingsdialog_p.h b/src/mvvmwidgets/settingsdialog_p.h similarity index 94% rename from src/mvvmsettingswidgets/settingsdialog_p.h rename to src/mvvmwidgets/settingsdialog_p.h index 24c7592..4a7b2a8 100644 --- a/src/mvvmsettingswidgets/settingsdialog_p.h +++ b/src/mvvmwidgets/settingsdialog_p.h @@ -12,7 +12,7 @@ #include #include -#include "qtmvvmsettingswidgets_global.h" +#include "qtmvvmwidgets_global.h" #include "settingsdialog.h" namespace Ui { @@ -24,8 +24,8 @@ namespace QtMvvm { class CategoryItemDelegate : public QStyledItemDelegate { public: - CategoryItemDelegate(std::function _updateFunc, - const QSize &_iconSize, + CategoryItemDelegate(const std::function &updateFunc, + const QSize &iconSize, int layoutSpacing, QObject *parent = nullptr); diff --git a/src/mvvmwidgets/widgetspresenter.cpp b/src/mvvmwidgets/widgetspresenter.cpp index ad23086..bd190c2 100644 --- a/src/mvvmwidgets/widgetspresenter.cpp +++ b/src/mvvmwidgets/widgetspresenter.cpp @@ -1,6 +1,7 @@ #include "widgetspresenter.h" #include "widgetspresenter_p.h" #include "ipresentingview.h" +#include "settingsdialog.h" #include @@ -395,7 +396,7 @@ void WidgetsPresenter::presentOtherDialog(const MessageConfig &config, QPointer< WidgetsPresenterPrivate::WidgetsPresenterPrivate() : inputViewFactory(new InputWidgetFactory()), - implicitMappings(), + implicitMappings({&SettingsDialog::staticMetaObject}), explicitMappings() {} diff --git a/src/src.pro b/src/src.pro index aef7bf1..e4a4ccb 100644 --- a/src/src.pro +++ b/src/src.pro @@ -4,9 +4,7 @@ CONFIG += ordered SUBDIRS += mvvmcore \ mvvmwidgets \ mvvmquick \ - imports \ - mvvmsettingscore \ - mvvmsettingswidgets + imports prepareRecursiveTarget(lrelease) QMAKE_EXTRA_TARGETS += lrelease diff --git a/sync.profile b/sync.profile index 7459573..e062f8d 100644 --- a/sync.profile +++ b/sync.profile @@ -1,9 +1,7 @@ %modules = ( "QtMvvmCore" => "$basedir/src/mvvmcore", "QtMvvmWidgets" => "$basedir/src/mvvmwidgets", - "QtMvvmQuick" => "$basedir/src/mvvmquick", - "QtMvvmSettingsCore" => "$basedir/src/mvvmsettingscore", - "QtMvvmSettingsWidgets" => "$basedir/src/mvvmsettingswidgets" + "QtMvvmQuick" => "$basedir/src/mvvmquick" ); # Force generation of camel case headers for classes inside QtDataSync namespaces