From f1d884b6dad5a93d7a3077b6b05d3ec7fcd9a6ea Mon Sep 17 00:00:00 2001 From: Teemu Holappa Date: Thu, 11 Feb 2016 11:50:55 +0200 Subject: 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 --- src/imports/localdevice/localdevice.pro | 17 +++++ src/imports/localdevice/plugin.cpp | 117 +++++++++++++++++++++++++++++++ src/imports/localdevice/plugins.qmltypes | 54 ++++++++++++++ src/imports/localdevice/qmldir | 3 + 4 files changed, 191 insertions(+) create mode 100644 src/imports/localdevice/localdevice.pro create mode 100644 src/imports/localdevice/plugin.cpp create mode 100644 src/imports/localdevice/plugins.qmltypes create mode 100644 src/imports/localdevice/qmldir (limited to 'src/imports/localdevice') 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 +#include + +/*! + \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(uri, 1, 0, "LocalDevice", module_api_factory); + } +}; + +#include "plugin.moc" diff --git a/src/imports/localdevice/plugins.qmltypes b/src/imports/localdevice/plugins.qmltypes new file mode 100644 index 0000000..88acb66 --- /dev/null +++ b/src/imports/localdevice/plugins.qmltypes @@ -0,0 +1,54 @@ +import QtQuick.tooling 1.1 + +// This file describes the plugin-supplied types contained in the library. +// It is used for QML tooling purposes only. +// +// This file was auto-generated by: +// 'qmlplugindump -nonrelocatable B2Qt.Utils 1.0 /system/qml/B2Qt/Utils/' + +Module { + Component { + name: "B2QtDevice" + prototype: "QObject" + exports: ["B2Qt.Utils/B2QtDevice 1.0"] + isCreatable: false + isSingleton: true + exportMetaObjectRevisions: [0] + Property { name: "displayBrightness"; type: "uchar" } + Property { name: "hostname"; type: "string" } + Property { name: "ipAddress"; type: "string"; isReadonly: true } + Property { name: "masterVolume"; type: "int" } + Signal { + name: "displayBrightnessChanged" + Parameter { name: "newValue"; type: "uchar" } + } + Signal { + name: "hostnameChanged" + Parameter { name: "newName"; type: "string" } + } + Signal { + name: "ipAddressChanged" + Parameter { name: "newAddress"; type: "string" } + } + Signal { + name: "masterVolumeChanged" + Parameter { name: "newVolume"; type: "int" } + } + Method { name: "reboot" } + Method { name: "powerOff" } + Method { + name: "setDisplayBrightness" + type: "bool" + Parameter { name: "value"; type: "uchar" } + } + Method { + name: "setHostname" + type: "bool" + Parameter { name: "name"; type: "string" } + } + Method { + name: "setMasterVolume" + Parameter { name: "volume"; type: "int" } + } + } +} 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 -- cgit v1.2.3