diff options
author | Teemu Holappa <teemu.holappa@theqtcompany.com> | 2016-02-11 11:50:55 +0200 |
---|---|---|
committer | Teemu Holappa <teemu.holappa@theqtcompany.com> | 2016-02-17 11:57:20 +0000 |
commit | f1d884b6dad5a93d7a3077b6b05d3ec7fcd9a6ea (patch) | |
tree | 9d48669bdf1e8877b19c3a98cd8bbd8c90df5290 /src/imports | |
parent | b4088adc7f2666d468a478e379b94c5cb4494c1b (diff) |
Refactored Qml plugins into modules.
Separated C++ and Qml interfaces. All the UI's from plugins are moved to the settingsui folder.
Change-Id: Id6a6623346b18321357bc42d24121c4d9cdfd098
Reviewed-by: Kimmo Ollila <kimmo.ollila@theqtcompany.com>
Diffstat (limited to 'src/imports')
25 files changed, 673 insertions, 174 deletions
diff --git a/src/imports/bluetoothsettings/bluetoothsettings.pro b/src/imports/bluetoothsettings/bluetoothsettings.pro new file mode 100644 index 0000000..3475ffa --- /dev/null +++ b/src/imports/bluetoothsettings/bluetoothsettings.pro @@ -0,0 +1,17 @@ +TEMPLATE = lib +CONFIG += plugin +QT += qml bluetooth bluetoothsettings +uri = com.theqtcompany.settings.bluetooth + +TARGET = btsettingsplugin + +pluginfiles.files += \ + qmldir \ + +SOURCES += plugin.cpp + +installPath = $$[QT_INSTALL_QML]/$$replace(uri, \\., /) + +target.path = $$installPath +pluginfiles.path += $$installPath +INSTALLS += target pluginfiles diff --git a/src/imports/bluetoothsettings/plugin.cpp b/src/imports/bluetoothsettings/plugin.cpp new file mode 100644 index 0000000..d0a25c3 --- /dev/null +++ b/src/imports/bluetoothsettings/plugin.cpp @@ -0,0 +1,67 @@ +/**************************************************************************** +** +** Copyright (C) 2015 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Device Utilities module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtQml/QQmlExtensionPlugin> +#include <QtQml/qqml.h> +#include <qcoreapplication.h> +#include <QQmlEngine> +#include <QQmlContext> + +#include "bluetoothdevice.h" +#include "discoverymodel.h" + +class BluetoothSettingsQmlPlugin : public QQmlExtensionPlugin +{ + Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface") + +public: + void registerTypes(const char *uri) + { + Q_ASSERT(QLatin1String(uri) == QLatin1String("com.theqtcompany.settings.bluetooth")); + qmlRegisterUncreatableType<BtDeviceItem>(uri, 1, 0, "BtDeviceItem", "Cannot be instantiated directly."); + + } + + void initializeEngine(QQmlEngine * engine, const char * uri) + { + Q_ASSERT(QLatin1String(uri) == QLatin1String("com.theqtcompany.settings.bluetooth")); + BluetoothDevice *device = new BluetoothDevice(engine); + engine->rootContext()->setContextProperty("BtDevice", device); + } +}; + +#include "plugin.moc" diff --git a/src/imports/bluetoothsettings/qmldir b/src/imports/bluetoothsettings/qmldir new file mode 100644 index 0000000..f63b52f --- /dev/null +++ b/src/imports/bluetoothsettings/qmldir @@ -0,0 +1,2 @@ +module com.theqtcompany.settings.bluetooth +plugin btsettingsplugin diff --git a/src/imports/displaysettings/displaysettings.pro b/src/imports/displaysettings/displaysettings.pro new file mode 100644 index 0000000..4c581f4 --- /dev/null +++ b/src/imports/displaysettings/displaysettings.pro @@ -0,0 +1,18 @@ +TEMPLATE = lib +CONFIG += plugin +QT += qml displaysettings + +uri = com.theqtcompany.settings.display + +TARGET = qmldisplaysettingsplugin + +SOURCES += plugin.cpp \ + +pluginfiles.files += \ + qmldir \ + +installPath = $$[QT_INSTALL_QML]/$$replace(uri, \\., /) + +target.path = $$installPath +pluginfiles.path += $$installPath +INSTALLS += target pluginfiles diff --git a/src/imports/displaysettings/plugin.cpp b/src/imports/displaysettings/plugin.cpp new file mode 100644 index 0000000..92c0171 --- /dev/null +++ b/src/imports/displaysettings/plugin.cpp @@ -0,0 +1,63 @@ +/**************************************************************************** +** +** Copyright (C) 2015 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Device Utilities module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtQml/QQmlExtensionPlugin> +#include <QtQml/qqml.h> +#include <QQmlEngine> +#include <qcoreapplication.h> +#include "displaysettings.h" + +template <typename T> +QObject *instance(QQmlEngine *engine, QJSEngine *) { + T *t = new T(engine); + t->setObjectName(T::staticMetaObject.className()); + return t; +} + +class GeneralSettingsQmlPlugin : public QQmlExtensionPlugin +{ + Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface") + +public: + void registerTypes(const char *uri) + { + qmlRegisterType(QUrl("qrc:/Display.qml"), uri, 1, 0, "Display"); + qmlRegisterSingletonType<DisplaySettings>(uri, 1, 0, "DisplaySettings", &instance<DisplaySettings>); + } +}; + +#include "plugin.moc" diff --git a/src/imports/displaysettings/qmldir b/src/imports/displaysettings/qmldir new file mode 100644 index 0000000..4f8a3db --- /dev/null +++ b/src/imports/displaysettings/qmldir @@ -0,0 +1,2 @@ +module com.theqtcompany.settings.display +plugin qmldisplaysettingsplugin diff --git a/src/imports/imports.pro b/src/imports/imports.pro index 38f61c3..f34be18 100644 --- a/src/imports/imports.pro +++ b/src/imports/imports.pro @@ -1,2 +1,7 @@ TEMPLATE = subdirs -SUBDIRS += utils +SUBDIRS += networksettings \ + bluetoothsettings \ + localesettings \ + timedatesettings \ + localdevice \ + displaysettings diff --git a/src/imports/localdevice/localdevice.pro b/src/imports/localdevice/localdevice.pro new file mode 100644 index 0000000..dfcbcf9 --- /dev/null +++ b/src/imports/localdevice/localdevice.pro @@ -0,0 +1,17 @@ +TEMPLATE = lib +CONFIG += plugin +TARGET = localdeviceplugin +uri = com.theqtcompany.localdevice + +QT += qml localdevice + +pluginfiles.files += \ + qmldir \ + +SOURCES += plugin.cpp + +installPath = $$[QT_INSTALL_QML]/$$replace(uri, \\., /) + +target.path = $$installPath +pluginfiles.path += $$installPath +INSTALLS += target pluginfiles diff --git a/src/imports/localdevice/plugin.cpp b/src/imports/localdevice/plugin.cpp new file mode 100644 index 0000000..b69d9b4 --- /dev/null +++ b/src/imports/localdevice/plugin.cpp @@ -0,0 +1,117 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Digia Plc +** All rights reserved. +** For any questions to Digia, please use the contact form at +** http://www.qt.io +** +** This file is part of Qt Enterprise Embedded. +** +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. +** +** If you have questions regarding the use of this file, please use +** the contact form at http://www.qt.io +** +****************************************************************************/ +#include <qlocaldevice.h> +#include <QtQml> + +/*! + \qmlmodule com.theqtcompany.localdevice 1.0 + \title Qt Local Device QML Module + \ingroup qtee-qmlmodules + \brief A collection of the local device related utility functions, accessible from QML. +*/ + +/*! + \page b2qt-addon-utils.html + \title Qt Local Device Module + \ingroup qtee-modules + \brief A collection of the local device realted utility functions, accessible from QML. + + Provides utility functions for controlling an embedded + device, such as device shutdown/reboot. + + Import the module as follows: + + \badcode + import com.theqtcompany.localdevice 1.0 + \endcode + + This will give you access to the singleton QML type LocalDevice. + + \note Some functions are currently only implemented for one of + the platforms. + + \section1 QML Types + + \annotatedlist utils-qmltypes +*/ + +/*! + \qmltype LocalDevice + \inqmlmodule com.theqtcompany.localdevice + \ingroup utils-qmltypes + \brief Singleton QML type providing access to utility functions. + + LocalDevice QML type is the interface to various utility + functions. + + There is no need to create an instance of this object. To use it, + simply import the \c {LocalDevice} module: + + \qml + com.theqtcompany.localdevice + + \endqml + + \note Some functions are currently only implemented for one of + the platforms. +*/ + +/*! + \qmlmethod LocalDevice::reboot() + + Reboots the system. Does not return. + + \sa powerOff() +*/ + +/*! + \qmlmethod LocalDevice::powerOff() + + Shuts down the system. Does not return. + + \sa reboot() +*/ + +static QObject *module_api_factory(QQmlEngine *engine, QJSEngine *scriptEngine) +{ + Q_UNUSED(engine) + Q_UNUSED(scriptEngine) + QLocalDevice *api = new QLocalDevice(); + + return api; +} + +class B2QtUtilsPlugin : public QQmlExtensionPlugin +{ + Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface") + +public: + B2QtUtilsPlugin() + { + } + + void registerTypes(const char *uri) + { + Q_ASSERT(QLatin1String(uri) == "com.theqtcompany.localdevice"); + qmlRegisterSingletonType<QLocalDevice>(uri, 1, 0, "LocalDevice", module_api_factory); + } +}; + +#include "plugin.moc" diff --git a/src/imports/utils/plugins.qmltypes b/src/imports/localdevice/plugins.qmltypes index 88acb66..88acb66 100644 --- a/src/imports/utils/plugins.qmltypes +++ b/src/imports/localdevice/plugins.qmltypes diff --git a/src/imports/localdevice/qmldir b/src/imports/localdevice/qmldir new file mode 100644 index 0000000..ae1b1c5 --- /dev/null +++ b/src/imports/localdevice/qmldir @@ -0,0 +1,3 @@ +module com.theqtcompany.localdevice +plugin localdeviceplugin +typeinfo plugins.qmltypes diff --git a/src/imports/localesettings/locale.xml b/src/imports/localesettings/locale.xml new file mode 100644 index 0000000..b722456 --- /dev/null +++ b/src/imports/localesettings/locale.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8"?> +<node name="/Service" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0"> +<node> + <interface name="org.freedesktop.locale1"> + <property name="Locale" type="as" access="read"/> + <method name="SetLocale"> + <arg name="locale" type="as" direction="in"/> + <arg name="user_interaction" type="b" direction="in"/> + </method> + </interface> +</node> + diff --git a/src/imports/localesettings/localesettings.pro b/src/imports/localesettings/localesettings.pro new file mode 100644 index 0000000..891e4f8 --- /dev/null +++ b/src/imports/localesettings/localesettings.pro @@ -0,0 +1,18 @@ +TEMPLATE = lib +CONFIG += plugin +QT += qml localesettings + +uri = com.theqtcompany.settings.locale + +TARGET = localesettingsplugin + +SOURCES += plugin.cpp + +pluginfiles.files += \ + qmldir \ + +installPath = $$[QT_INSTALL_QML]/$$replace(uri, \\., /) + +target.path = $$installPath +pluginfiles.path += $$installPath +INSTALLS += target pluginfiles diff --git a/src/imports/localesettings/plugin.cpp b/src/imports/localesettings/plugin.cpp new file mode 100644 index 0000000..7edd2c5 --- /dev/null +++ b/src/imports/localesettings/plugin.cpp @@ -0,0 +1,75 @@ +/**************************************************************************** +** +** Copyright (C) 2015 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Device Utilities module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtQml/QQmlExtensionPlugin> +#include <QtQml/qqml.h> +#include <qcoreapplication.h> +#include <QQmlEngine> +#include <QQmlContext> + +#include <systemlocale.h> +#include <localemodel.h> +#include <localefiltermodel.h> + +template <typename T> +QObject *instance(QQmlEngine *engine, QJSEngine *) { + T *t = new T(engine); + t->setObjectName(T::staticMetaObject.className()); + return t; +} + +class LanguageSettingsQmlPlugin : public QQmlExtensionPlugin +{ + Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface") + +public: + void registerTypes(const char *uri) + { + qmlRegisterSingletonType<SystemLocale>(uri, 1, 0, "LocaleManager", &instance<SystemLocale>); + } + + void initializeEngine(QQmlEngine * engine, const char * uri) + { + Q_ASSERT(QLatin1String(uri) == QLatin1String("com.theqtcompany.settings.locale")); + LocaleModel*localeModel = new LocaleModel(engine); + LocaleFilterModel* filter = new LocaleFilterModel(engine); + filter->setSourceModel(localeModel); + engine->rootContext()->setContextProperty("LocaleFilter", filter); + } +}; + +#include "plugin.moc" diff --git a/src/imports/localesettings/qmldir b/src/imports/localesettings/qmldir new file mode 100644 index 0000000..3c59bb0 --- /dev/null +++ b/src/imports/localesettings/qmldir @@ -0,0 +1,2 @@ +module com.theqtcompany.settings.locale +plugin localesettingsplugin diff --git a/src/imports/networksettings/networksettings.pro b/src/imports/networksettings/networksettings.pro new file mode 100644 index 0000000..45228c5 --- /dev/null +++ b/src/imports/networksettings/networksettings.pro @@ -0,0 +1,34 @@ +TEMPLATE = lib +TARGET = networksettingsplugin +QT += qml quick networksettings +CONFIG += qt plugin + +uri = com.theqtcompany.settings.network + +SOURCES += \ + plugin.cpp \ + +HEADERS += \ + plugin.h \ + +DISTFILES = qmldir + +!equals(_PRO_FILE_PWD_, $$OUT_PWD) { + copy_qmldir.target = $$OUT_PWD/qmldir + copy_qmldir.depends = $$_PRO_FILE_PWD_/qmldir + copy_qmldir.commands = $(COPY_FILE) \"$$replace(copy_qmldir.depends, /, $$QMAKE_DIR_SEP)\" \"$$replace(copy_qmldir.target, /, $$QMAKE_DIR_SEP)\" + QMAKE_EXTRA_TARGETS += copy_qmldir + PRE_TARGETDEPS += $$copy_qmldir.target +} + +qmldir.files = qmldir + +pluginfiles.files += \ + +installPath = $$[QT_INSTALL_QML]/$$replace(uri, \\., /) + +pluginfiles.path = $$installPath +qmldir.path = $$installPath +target.path = $$installPath +INSTALLS += target qmldir pluginfiles + diff --git a/src/imports/networksettings/plugin.cpp b/src/imports/networksettings/plugin.cpp new file mode 100644 index 0000000..eeee147 --- /dev/null +++ b/src/imports/networksettings/plugin.cpp @@ -0,0 +1,67 @@ +/**************************************************************************** +** +** Copyright (C) 2015 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Device Utilities module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ +#include "plugin.h" +#include <qnetworksettings.h> +#include <qnetworksettingsmanager.h> +#include <qnetworksettingsservice.h> +#include <qnetworksettingsuseragent.h> + +#include <qqml.h> +#include <QQmlEngine> +#include <QQmlContext> + +void NetworksettingspluginPlugin::registerTypes(const char *uri) +{ + Q_ASSERT(QLatin1String(uri) == QLatin1String("com.theqtcompany.settings.network")); + qmlRegisterUncreatableType<QNetworkSettingsService>(uri, 1, 0, "NetworkService", "Cannot be instantiated directly."); + qmlRegisterUncreatableType<QNetworkSettingsIPv4>(uri, 1, 0, "NetworkSettingsIPv4", "Cannot be instantiated directly."); + qmlRegisterUncreatableType<QNetworkSettingsIPv6>(uri, 1, 0, "NetworkSettingsIPv6", "Cannot be instantiated directly."); + 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); +} diff --git a/src/imports/networksettings/plugin.h b/src/imports/networksettings/plugin.h new file mode 100644 index 0000000..f47b964 --- /dev/null +++ b/src/imports/networksettings/plugin.h @@ -0,0 +1,52 @@ +/**************************************************************************** +** +** Copyright (C) 2015 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Device Utilities module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ +#ifndef NETWORKSETTINGSPLUGIN_PLUGIN_H +#define NETWORKSETTINGSPLUGIN_PLUGIN_H + +#include <QQmlExtensionPlugin> + +class NetworksettingspluginPlugin : public QQmlExtensionPlugin +{ + Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface") + +public: + void registerTypes(const char *uri); + void initializeEngine(QQmlEngine * engine, const char * uri); +}; + +#endif // NETWORKSETTINGSPLUGIN_PLUGIN_H + diff --git a/src/imports/networksettings/qmldir b/src/imports/networksettings/qmldir new file mode 100644 index 0000000..7774745 --- /dev/null +++ b/src/imports/networksettings/qmldir @@ -0,0 +1,3 @@ +module com.theqtcompany.settings.network +plugin networksettingsplugin + diff --git a/src/imports/timedatesettings/plugin.cpp b/src/imports/timedatesettings/plugin.cpp new file mode 100644 index 0000000..e55cddc --- /dev/null +++ b/src/imports/timedatesettings/plugin.cpp @@ -0,0 +1,77 @@ +/**************************************************************************** +** +** Copyright (C) 2015 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Device Utilities module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL3$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPLv3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or later as published by the Free +** Software Foundation and appearing in the file LICENSE.GPL included in +** the packaging of this file. Please review the following information to +** ensure the GNU General Public License version 2.0 requirements will be +** met: http://www.gnu.org/licenses/gpl-2.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtQml/QQmlExtensionPlugin> +#include <QtQml/qqml.h> +#include <qcoreapplication.h> +#include <QQmlEngine> +#include <QQmlContext> + +#include <systemtime.h> +#include <timezonemodel.h> +#include <timezonefiltermodel.h> + +template <typename T> +QObject *instance(QQmlEngine *engine, QJSEngine *) { + T *t = new T(engine); + t->setObjectName(T::staticMetaObject.className()); + return t; +} + +class TimeDateSettingsQmlPlugin : public QQmlExtensionPlugin +{ + Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface") + +public: + void registerTypes(const char *uri) + { + qmlRegisterSingletonType<SystemTime>(uri, 1, 0, "TimeManager", &instance<SystemTime>); + } + + void initializeEngine(QQmlEngine * engine, const char * uri) + { + Q_ASSERT(QLatin1String(uri) == QLatin1String("com.theqtcompany.settings.timedate")); + TimezoneModel* timezoneModel = new TimezoneModel(engine); + TimezoneFilterModel* filter = new TimezoneFilterModel(engine); + filter->setSourceModel(timezoneModel); + + engine->rootContext()->setContextProperty("Timezones", timezoneModel); + engine->rootContext()->setContextProperty("TimezonesFilter", filter); + } +}; + +#include "plugin.moc" diff --git a/src/imports/timedatesettings/qmldir b/src/imports/timedatesettings/qmldir new file mode 100644 index 0000000..3fc8fec --- /dev/null +++ b/src/imports/timedatesettings/qmldir @@ -0,0 +1,2 @@ +module com.theqtcompany.settings.timedate +plugin qmltimedatesettingsplugin diff --git a/src/imports/timedatesettings/timedatesettings.pro b/src/imports/timedatesettings/timedatesettings.pro new file mode 100644 index 0000000..ec86d4e --- /dev/null +++ b/src/imports/timedatesettings/timedatesettings.pro @@ -0,0 +1,19 @@ +TEMPLATE = lib +CONFIG += plugin +QT += qml timedatesettings + +uri = com.theqtcompany.settings.timedate + +DESTDIR = imports/TimeDate +TARGET = qmltimedatesettingsplugin + +SOURCES += plugin.cpp + +pluginfiles.files += qmldir + +installPath = $$[QT_INSTALL_QML]/$$replace(uri, \\., /) + +target.path = $$installPath +pluginfiles.path += $$installPath +INSTALLS += target pluginfiles + diff --git a/src/imports/utils/plugin.cpp b/src/imports/utils/plugin.cpp deleted file mode 100644 index a4f8810..0000000 --- a/src/imports/utils/plugin.cpp +++ /dev/null @@ -1,160 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 Digia Plc -** All rights reserved. -** For any questions to Digia, please use the contact form at -** http://www.qt.io -** -** This file is part of Qt Enterprise Embedded. -** -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise License Agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. -** -** If you have questions regarding the use of this file, please use -** the contact form at http://www.qt.io -** -****************************************************************************/ -#include <b2qtdevice.h> -#include <QtQml> - -/*! - \qmlmodule B2Qt.Utils 1.0 - \title B2Qt Utils QML Module - \ingroup qtee-qmlmodules - \brief A collection of utility functions, accessible from QML. -*/ - -/*! - \page b2qt-addon-utils.html - \title B2Qt Utils Module - \ingroup qtee-modules - \brief A collection of utility functions, accessible from QML. - - Provides various utility functions for controlling an embedded - device, such as display brightness, IP address and hostname, and - device shutdown/reboot. - - Import the module as follows: - - \badcode - import B2Qt.Utils 1.0 - \endcode - - This will give you access to the singleton QML type B2QtDevice. - - \note Some functions are currently only implemented for one of - the platforms. - - \section1 QML Types - - \annotatedlist utils-qmltypes -*/ - -/*! - \qmltype B2QtDevice - \inqmlmodule B2Qt.Utils - \ingroup utils-qmltypes - \brief Singleton QML type providing access to utility functions. - - B2QtDevice QML type is the interface to various utility - functions. - - There is no need to create an instance of this object. To use it, - simply import the \c {B2Qt.Utils} module: - - \qml - import B2Qt.Utils 1.0 - - Text { - text: qsTr("IP Address:") + B2QtDevice.ipAddress - } - \endqml - - \note Some functions are currently only implemented for one of - the platforms. -*/ - -/*! - \qmlmethod B2Qt.Utils::B2QtDevice::reboot() - - Reboots the system. Does not return. - - \sa powerOff() -*/ - -/*! - \qmlmethod B2Qt.Utils::B2QtDevice::powerOff() - - Shuts down the system. Does not return. - - \sa reboot() -*/ - -/*! - \qmlproperty int B2Qt.Utils::B2QtDevice::masterVolume - - This property holds the master volume of the device. - The volume can range from \c 0 to \c 100 and is linear. - Changing the master volume will affect all audio streams. - - \note Currently implemented only for \B2QA. -*/ - -/*! - \qmlproperty int B2Qt.Utils::B2QtDevice::displayBrightness - This property holds the display brightness (the intensity of the backlight). - The value is in the range from \c 0 to \c 255, where 255 is the maximum - brightness, and 0 is the minimum (typically, the backlight is turned off). - - \note Currently implemented only for \B2QA. -*/ - -/*! - \qmlproperty string B2Qt.Utils::B2QtDevice::ipAddress - \readonly - - This property holds the current IP address(es) of the device - for all active network interfaces. If multiple IP addresses are defined, - this property holds a comma-separated list. The localhost (loopback) - IP addresses are omitted. - - \sa hostname -*/ - -/*! - \qmlproperty string B2Qt.Utils::B2QtDevice::hostname - - This property holds the current hostname of the device. - - \sa ipAddress -*/ - -static QObject *module_api_factory(QQmlEngine *engine, QJSEngine *scriptEngine) -{ - Q_UNUSED(engine) - Q_UNUSED(scriptEngine) - B2QtDevice *api = new B2QtDevice(); - - return api; -} - -class B2QtUtilsPlugin : public QQmlExtensionPlugin -{ - Q_OBJECT - Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface") - -public: - B2QtUtilsPlugin() - { - } - - void registerTypes(const char *uri) - { - Q_ASSERT(QLatin1String(uri) == "B2Qt.Utils"); - qmlRegisterSingletonType<B2QtDevice>(uri, 1, 0, "B2QtDevice", module_api_factory); - } -}; - -#include "plugin.moc" diff --git a/src/imports/utils/qmldir b/src/imports/utils/qmldir deleted file mode 100644 index e5e0b31..0000000 --- a/src/imports/utils/qmldir +++ /dev/null @@ -1,3 +0,0 @@ -module B2Qt.Utils -plugin b2qtutilsplugin -typeinfo plugins.qmltypes diff --git a/src/imports/utils/utils.pro b/src/imports/utils/utils.pro deleted file mode 100644 index a580643..0000000 --- a/src/imports/utils/utils.pro +++ /dev/null @@ -1,10 +0,0 @@ -CXX_MODULE = qml -TARGET = b2qtutilsplugin -TARGETPATH = B2Qt/Utils -IMPORT_VERSION = 1.0 - -QT += qml b2qtutils - -SOURCES += plugin.cpp - -load(qml_plugin) |