summaryrefslogtreecommitdiffstats
path: root/src/imports
diff options
context:
space:
mode:
authorYang Li <yang.12.li@nokia.com>2012-04-12 13:50:40 +0200
committerQt by Nokia <qt-info@nokia.com>2012-04-19 12:10:38 +0200
commitc19da31387ff4098e494b696a9ebbfcd06b86513 (patch)
treeab2e14e1ace79edf1f850e4da1b875c4a0f03f58 /src/imports
parent2023582007390882be17d72154e79eb2eebed19b (diff)
Change function activeLocks() and enabledLocks() to be asynchronous
Read lock types from JsonDB initially, and update them by JsonDb Watcher Change-Id: I2b9fc1a4a0574ddecc2e9bd194a5b773b3bfa1fb Reviewed-by: Cristiano di Flora <cristiano.di-flora@nokia.com>
Diffstat (limited to 'src/imports')
-rw-r--r--src/imports/systeminfo/qdeclarativedeviceinfo.cpp14
-rw-r--r--src/imports/systeminfo/qdeclarativedeviceinfo_p.h3
2 files changed, 12 insertions, 5 deletions
diff --git a/src/imports/systeminfo/qdeclarativedeviceinfo.cpp b/src/imports/systeminfo/qdeclarativedeviceinfo.cpp
index ae126f4f..528ae27f 100644
--- a/src/imports/systeminfo/qdeclarativedeviceinfo.cpp
+++ b/src/imports/systeminfo/qdeclarativedeviceinfo.cpp
@@ -72,17 +72,20 @@ QDeclarativeDeviceInfo::~QDeclarativeDeviceInfo()
This property holds the activated locks. Available locks include:
\list
- \li NoLock No lock, or unknown lock type.
+ \li NoLock No lock.
\li PinLock Device can be locked by PIN code or password.
\li TouchOrKeyboardLock Device can be locked by touch or keyboard.
+ \li UnknownLock lock types requested but no result received yet.
\endlist
*/
QDeclarativeDeviceInfo::LockTypeFlags QDeclarativeDeviceInfo::activatedLocks() const
{
connect(deviceInfo, SIGNAL(activatedLocksChanged(QDeviceInfo::LockTypeFlags)),
- this, SIGNAL(activatedLocksChanged()));
+ this, SIGNAL(activatedLocksChanged()), Qt::UniqueConnection);
QDeviceInfo::LockTypeFlags locks(deviceInfo->activatedLocks());
+ if (locks.testFlag(QDeviceInfo::UnknownLock))
+ return QDeclarativeDeviceInfo::UnknownLock;
LockTypeFlags declarativeLocks(NoLock);
if (locks.testFlag(QDeviceInfo::PinLock))
declarativeLocks |= PinLock;
@@ -96,17 +99,20 @@ QDeclarativeDeviceInfo::LockTypeFlags QDeclarativeDeviceInfo::activatedLocks() c
This property holds the enabled locks. Available locks include:
\list
- \li NoLock No lock, or unknown lock type.
+ \li NoLock No lock.
\li PinLock Device can be locked by PIN code or password.
\li TouchOrKeyboardLock Device can be locked by touch or keyboard.
+ \li UnknownLock lock types requested but no result received yet.
\endlist
*/
QDeclarativeDeviceInfo::LockTypeFlags QDeclarativeDeviceInfo::enabledLocks() const
{
connect(deviceInfo, SIGNAL(enabledLocksChanged(QDeviceInfo::LockTypeFlags)),
- this, SIGNAL(enabledLocksChanged()));
+ this, SIGNAL(enabledLocksChanged()), Qt::UniqueConnection);
QDeviceInfo::LockTypeFlags locks(deviceInfo->enabledLocks());
+ if (locks.testFlag(QDeviceInfo::UnknownLock))
+ return QDeclarativeDeviceInfo::UnknownLock;
LockTypeFlags declarativeLocks(NoLock);
if (locks.testFlag(QDeviceInfo::PinLock))
declarativeLocks |= PinLock;
diff --git a/src/imports/systeminfo/qdeclarativedeviceinfo_p.h b/src/imports/systeminfo/qdeclarativedeviceinfo_p.h
index 1cf29143..f0223e9f 100644
--- a/src/imports/systeminfo/qdeclarativedeviceinfo_p.h
+++ b/src/imports/systeminfo/qdeclarativedeviceinfo_p.h
@@ -97,7 +97,8 @@ public:
enum LockType {
NoLock = QDeviceInfo::NoLock,
PinLock = QDeviceInfo::PinLock,
- TouchOrKeyboardLock = QDeviceInfo::TouchOrKeyboardLock
+ TouchOrKeyboardLock = QDeviceInfo::TouchOrKeyboardLock,
+ UnknownLock = QDeviceInfo::UnknownLock
};
Q_DECLARE_FLAGS(LockTypeFlags, LockType)