summaryrefslogtreecommitdiffstats
path: root/src/imports
diff options
context:
space:
mode:
authorSteffen Hahn <steffen.hahn@nokia.com>2012-04-13 12:22:22 +0200
committerQt by Nokia <qt-info@nokia.com>2012-04-25 07:33:57 +0200
commitc04e52a0b20cda464dd187b8e4908299b9b8a279 (patch)
treedabcf169faba969372454cd1abef338dda168f5c /src/imports
parent353e754161a2bdc07fd3ad8709cf3a1425864175 (diff)
Change DeviceProfile API to be asynchronous
- Change QDeviceProfile members to return immediately and return UnknownProfile or -1 if not result yet - Add JsonDb Watcher to update data in background - Change Q_INVOKABLEs to Q_PROPERTYs and add needed signals - Add QML Wrapper to allow convenient property binding - Additional clean-ups to QJsonDbWrapper: - Remove obsoleted hasSystemObject() - Some renamings to method names - Restructured onJsonDbWatcherLocksNotificationsAvailable() to emit signals only if required Change-Id: I1c9b511b9435b994fe88b96959d03ee33b3a0f55 Reviewed-by: Cristiano di Flora <cristiano.di-flora@nokia.com>
Diffstat (limited to 'src/imports')
-rw-r--r--src/imports/systeminfo/qdeclarativedeviceprofile.cpp132
-rw-r--r--src/imports/systeminfo/qdeclarativedeviceprofile_p.h101
-rw-r--r--src/imports/systeminfo/qsysteminfo.cpp45
-rw-r--r--src/imports/systeminfo/systeminfo.pro4
4 files changed, 238 insertions, 44 deletions
diff --git a/src/imports/systeminfo/qdeclarativedeviceprofile.cpp b/src/imports/systeminfo/qdeclarativedeviceprofile.cpp
new file mode 100644
index 00000000..42eacc6b
--- /dev/null
+++ b/src/imports/systeminfo/qdeclarativedeviceprofile.cpp
@@ -0,0 +1,132 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/
+**
+** This file is part of the QtSystems module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** GNU Lesser General Public License Usage
+** This file may be used under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation and
+** appearing in the file LICENSE.LGPL included in the packaging of this
+** file. Please review the following information to ensure the GNU Lesser
+** General Public License version 2.1 requirements will be met:
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU General
+** Public License version 3.0 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 3.0 requirements will be met:
+** http://www.gnu.org/copyleft/gpl.html.
+**
+** Other Usage
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qdeclarativedeviceprofile_p.h"
+
+QT_BEGIN_NAMESPACE
+
+/*!
+ \qmlclass DeviceProfile QDeclarativeDeviceProfile
+ \inqmlmodule QtSystemInfo
+ \ingroup qml-systeminfo
+ \brief The DeviceProfile element provides information about the profile of the device.
+*/
+
+/*!
+ \internal
+*/
+QDeclarativeDeviceProfile::QDeclarativeDeviceProfile(QObject *parent)
+ : QObject(parent)
+ , deviceProfile(new QDeviceProfile(this))
+{
+}
+
+/*!
+ \internal
+ */
+QDeclarativeDeviceProfile::~QDeclarativeDeviceProfile()
+{
+}
+
+/*!
+ \qmlproperty bool DeviceProfile::isVibrationActivated
+
+ This property holds whether the vibration is currently activated or deactivated.
+ */
+
+bool QDeclarativeDeviceProfile::isVibrationActivated() const
+{
+ connect(deviceProfile, SIGNAL(vibrationActivatedChanged(bool)),
+ this, SIGNAL(vibrationActivatedChanged()), Qt::UniqueConnection);
+ return deviceProfile->isVibrationActivated();
+}
+
+/*!
+ \qmlproperty int DeviceProfile::messageRingtoneVolume
+
+ This property holds the current message ringtone volume, from 0 to 100.
+ If this information is unknown, voice message volume requested but no result
+ received yet or error occurs, -1 is returned.
+ */
+
+int QDeclarativeDeviceProfile::messageRingtoneVolume() const
+{
+ connect(deviceProfile, SIGNAL(messageRingtoneVolumeChanged(int)),
+ this, SIGNAL(messageRingtoneVolumeChanged()), Qt::UniqueConnection);
+ return deviceProfile->messageRingtoneVolume();
+}
+
+/*!
+ \qmlproperty int DeviceProfile::voiceRingtoneVolume
+
+ This property holds the current voice ringtone volume, from 0 to 100.
+ If this information is unknown, voice ringtone volume requested but no result
+ received yet or error occurs, -1 is returned.
+ */
+
+int QDeclarativeDeviceProfile::voiceRingtoneVolume() const
+{
+ connect(deviceProfile, SIGNAL(voiceRingtoneVolumeChanged(int)),
+ this, SIGNAL(voiceRingtoneVolumeChanged()), Qt::UniqueConnection);
+ return deviceProfile->voiceRingtoneVolume();
+}
+
+/*!
+ \qmlproperty enum DeviceProfile::currentProfileType
+
+ Returns the type of the current profile, possible types are:
+ \list
+ \li UnknownProfile Profile unknown, profile type requested but no result received yet or an error occured.
+ \li SilentProfile Neither sound nor vibration is on.
+ \li NormalProfile Normal sound is on.
+ \li VibrationProfile Only vibration is on, and sound is off.
+ \li BeepProfile Only beep is on.
+ \endlist
+ */
+
+QDeclarativeDeviceProfile::ProfileType QDeclarativeDeviceProfile::currentProfileType() const
+{
+ connect(deviceProfile, SIGNAL(currentProfileTypeChanged(QDeviceProfile::ProfileType)),
+ this, SIGNAL(currentProfileTypeChanged()), Qt::UniqueConnection);
+ return static_cast<QDeclarativeDeviceProfile::ProfileType>(deviceProfile->currentProfileType());
+}
+
+QT_END_NAMESPACE
diff --git a/src/imports/systeminfo/qdeclarativedeviceprofile_p.h b/src/imports/systeminfo/qdeclarativedeviceprofile_p.h
new file mode 100644
index 00000000..c07be0fb
--- /dev/null
+++ b/src/imports/systeminfo/qdeclarativedeviceprofile_p.h
@@ -0,0 +1,101 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/
+**
+** This file is part of the QtSystems module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** GNU Lesser General Public License Usage
+** This file may be used under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation and
+** appearing in the file LICENSE.LGPL included in the packaging of this
+** file. Please review the following information to ensure the GNU Lesser
+** General Public License version 2.1 requirements will be met:
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU General
+** Public License version 3.0 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 3.0 requirements will be met:
+** http://www.gnu.org/copyleft/gpl.html.
+**
+** Other Usage
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
+#ifndef QDECLARATIVEDEVICEPROFILE_P_H
+#define QDECLARATIVEDEVICEPROFILE_P_H
+
+#include <qdeviceprofile.h>
+
+QT_BEGIN_HEADER
+QT_BEGIN_NAMESPACE
+
+class QDeclarativeDeviceProfile : public QObject
+{
+ Q_OBJECT
+
+ Q_ENUMS(ProfileType)
+ Q_PROPERTY(bool isVibrationActivated READ isVibrationActivated NOTIFY vibrationActivatedChanged)
+ Q_PROPERTY(int messageRingtoneVolume READ messageRingtoneVolume NOTIFY messageRingtoneVolumeChanged)
+ Q_PROPERTY(int voiceRingtoneVolume READ voiceRingtoneVolume NOTIFY voiceRingtoneVolumeChanged)
+ Q_PROPERTY(ProfileType currentProfileType READ currentProfileType NOTIFY currentProfileTypeChanged)
+
+public:
+ enum ProfileType {
+ UnknownProfile = QDeviceProfile::UnknownProfile,
+ SilentProfile = QDeviceProfile::SilentProfile,
+ NormalProfile = QDeviceProfile::NormalProfile,
+ VibrationProfile = QDeviceProfile::VibrationProfile,
+ BeepProfile = QDeviceProfile::BeepProfile
+ };
+
+ QDeclarativeDeviceProfile(QObject *parent = 0);
+ virtual ~QDeclarativeDeviceProfile();
+
+ bool isVibrationActivated() const;
+ int messageRingtoneVolume() const;
+ int voiceRingtoneVolume() const;
+ ProfileType currentProfileType() const;
+
+Q_SIGNALS:
+ void vibrationActivatedChanged();
+ void messageRingtoneVolumeChanged();
+ void voiceRingtoneVolumeChanged();
+ void currentProfileTypeChanged();
+
+private:
+ QDeviceProfile *deviceProfile;
+};
+
+QT_END_NAMESPACE
+QT_END_HEADER
+
+#endif // QDECLARATIVEDEVICEPROFILE_P_H
diff --git a/src/imports/systeminfo/qsysteminfo.cpp b/src/imports/systeminfo/qsysteminfo.cpp
index 4bbe8822..f3e2eeb8 100644
--- a/src/imports/systeminfo/qsysteminfo.cpp
+++ b/src/imports/systeminfo/qsysteminfo.cpp
@@ -44,7 +44,7 @@
#include "qdeclarativebatteryinfo_p.h"
#include "qdeclarativedeviceinfo_p.h"
-#include <qdeviceprofile.h>
+#include "qdeclarativedeviceprofile_p.h"
#include "qdeclarativedisplayinfo_p.h"
#include "qdeclarativenetworkinfo_p.h"
#include <qscreensaver.h>
@@ -66,7 +66,7 @@ public:
int minor = 0;
qmlRegisterType<QDeclarativeBatteryInfo>(uri, major, minor, "BatteryInfo");
qmlRegisterType<QDeclarativeDeviceInfo>(uri, major, minor, "DeviceInfo");
- qmlRegisterType<QDeviceProfile>(uri, major, minor, "DeviceProfile");
+ qmlRegisterType<QDeclarativeDeviceProfile>(uri, major, minor, "DeviceProfile");
qmlRegisterType<QDeclarativeDisplayInfo>(uri, major, minor, "DisplayInfo");
qmlRegisterType<QDeclarativeNetworkInfo>(uri, major, minor, "NetworkInfo");
qmlRegisterType<QScreenSaver>(uri, major, minor, "ScreenSaver");
@@ -92,45 +92,4 @@ QT_END_NAMESPACE
On certain platforms, if screen saver is disabled, deep system sleep won't be automatically triggered,
and the display won't be automatically turned off, etc.
- */
-
-
-/*!
- \qmlclass DeviceProfile QDeviceProfile
- \inqmlmodule QtSystemInfo
- \ingroup qml-systeminfo
- \brief The DeviceProfile element provides information about the profile of the device.
*/
-
-/*!
- \qmlmethod bool DeviceProfile::isVibrationActivated()
-
- Returns true if the vibration is currently activated, or false otherwise.
- */
-
-/*!
- \qmlmethod int DeviceProfile::messageRingtoneVolume()
-
- Returns the current message ringtone volume, from 0 to 100. If this information is unknown, or
- error occurs, -1 is returned.
- */
-
-/*!
- \qmlmethod int DeviceProfile::voiceRingtoneVolume()
-
- Returns the current voice ringtone volume, from 0 to 100. If this information is unknown, or error
- occurs, -1 is returned.
- */
-
-/*!
- \qmlproperty enum DeviceProfile::currentProfileType
-
- Returns the type of the current profile, possible types are:
- \list
- \li UnknownProfile Profile unknown or on error.
- \li SilentProfile Neither sound nor vibration is on.
- \li NormalProfile Normal sound is on.
- \li VibrationProfile Only vibration is on, and sound is off.
- \li BeepProfile Only beep is on.
- \endlist
- */
diff --git a/src/imports/systeminfo/systeminfo.pro b/src/imports/systeminfo/systeminfo.pro
index 490e2107..e1ddca13 100644
--- a/src/imports/systeminfo/systeminfo.pro
+++ b/src/imports/systeminfo/systeminfo.pro
@@ -16,7 +16,8 @@ HEADERS += \
qdeclarativedeviceinfo_p.h \
qdeclarativedisplayinfo_p.h \
qdeclarativenetworkinfo_p.h \
- qdeclarativestorageinfo_p.h
+ qdeclarativestorageinfo_p.h \
+ qdeclarativedeviceprofile_p.h
SOURCES += \
qdeclarativebatteryinfo.cpp \
@@ -24,4 +25,5 @@ SOURCES += \
qdeclarativedisplayinfo.cpp \
qdeclarativenetworkinfo.cpp \
qdeclarativestorageinfo.cpp \
+ qdeclarativedeviceprofile.cpp \
qsysteminfo.cpp