diff options
Diffstat (limited to 'src/imports/networksettings')
-rw-r--r-- | src/imports/networksettings/plugin.cpp | 20 | ||||
-rw-r--r-- | src/imports/networksettings/plugin.h | 1 |
2 files changed, 9 insertions, 12 deletions
diff --git a/src/imports/networksettings/plugin.cpp b/src/imports/networksettings/plugin.cpp index eeee147..ab81e31 100644 --- a/src/imports/networksettings/plugin.cpp +++ b/src/imports/networksettings/plugin.cpp @@ -43,6 +43,13 @@ #include <QQmlEngine> #include <QQmlContext> +template <typename T> +QObject *instance(QQmlEngine *engine, QJSEngine *) { + T *t = new T(engine); + t->setObjectName(T::staticMetaObject.className()); + return t; +} + void NetworksettingspluginPlugin::registerTypes(const char *uri) { Q_ASSERT(QLatin1String(uri) == QLatin1String("com.theqtcompany.settings.network")); @@ -52,16 +59,7 @@ void NetworksettingspluginPlugin::registerTypes(const char *uri) qmlRegisterUncreatableType<QNetworkSettingsProxy>(uri, 1, 0, "NetworkSettingsProxy", "Cannot be instantiated directly."); qmlRegisterUncreatableType<QNetworkSettingsType>(uri, 1, 0, "NetworkSettingsType", "Cannot be instantiated directly."); qmlRegisterUncreatableType<QNetworkSettingsState>(uri, 1, 0, "NetworkSettingsState", "Cannot be instantiated directly."); -} - - -void NetworksettingspluginPlugin::initializeEngine(QQmlEngine * engine, const char * uri) -{ - Q_ASSERT(QLatin1String(uri) == QLatin1String("com.theqtcompany.settings.network")); - QNetworkSettingsManager* networkManager = new QNetworkSettingsManager(engine); - QNetworkSettingsUserAgent* userAgent = new QNetworkSettingsUserAgent(engine); - networkManager->setUserAgent(userAgent); - engine->rootContext()->setContextProperty("NetworkSettingsManager", networkManager); - engine->rootContext()->setContextProperty("NetworkSettingsUserAgent", userAgent); + qmlRegisterSingletonType<QNetworkSettingsManager>(uri, 1, 0, "NetworkSettingsManager", &instance<QNetworkSettingsManager>); + qmlRegisterSingletonType<QNetworkSettingsUserAgent>(uri, 1, 0, "NetworkSettingsUserAgent", &instance<QNetworkSettingsUserAgent>); } diff --git a/src/imports/networksettings/plugin.h b/src/imports/networksettings/plugin.h index f47b964..40e02e2 100644 --- a/src/imports/networksettings/plugin.h +++ b/src/imports/networksettings/plugin.h @@ -45,7 +45,6 @@ class NetworksettingspluginPlugin : public QQmlExtensionPlugin public: void registerTypes(const char *uri); - void initializeEngine(QQmlEngine * engine, const char * uri); }; #endif // NETWORKSETTINGSPLUGIN_PLUGIN_H |