diff options
author | Yang Li <yang.12.li@nokia.com> | 2012-04-12 13:50:40 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-04-19 12:10:38 +0200 |
commit | c19da31387ff4098e494b696a9ebbfcd06b86513 (patch) | |
tree | ab2e14e1ace79edf1f850e4da1b875c4a0f03f58 /src/imports | |
parent | 2023582007390882be17d72154e79eb2eebed19b (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.cpp | 14 | ||||
-rw-r--r-- | src/imports/systeminfo/qdeclarativedeviceinfo_p.h | 3 |
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) |