parent
774fe41da2
commit
539d7a9072
2 changed files with 5 additions and 5 deletions
|
@ -45,7 +45,7 @@ DBusResponseWaiter::DBusResponseWaiter()
|
||||||
|
|
||||||
QVariant DBusResponseWaiter::waitForReply(QVariant variant) const
|
QVariant DBusResponseWaiter::waitForReply(QVariant variant) const
|
||||||
{
|
{
|
||||||
if (QDBusPendingCall* call = extractPendingCall(variant))
|
if (QDBusPendingCall* call = const_cast<QDBusPendingCall*>(extractPendingCall(variant)))
|
||||||
{
|
{
|
||||||
call->waitForFinished();
|
call->waitForFinished();
|
||||||
|
|
||||||
|
@ -77,7 +77,7 @@ DBusAsyncResponse::DBusAsyncResponse(QObject* parent)
|
||||||
|
|
||||||
void DBusAsyncResponse::setPendingCall(QVariant variant)
|
void DBusAsyncResponse::setPendingCall(QVariant variant)
|
||||||
{
|
{
|
||||||
if (QDBusPendingCall* call = DBusResponseWaiter::instance()->extractPendingCall(variant))
|
if (QDBusPendingCall* call = const_cast<QDBusPendingCall*>(DBusResponseWaiter::instance()->extractPendingCall(variant)))
|
||||||
{
|
{
|
||||||
QDBusPendingCallWatcher* watcher = new QDBusPendingCallWatcher(*call);
|
QDBusPendingCallWatcher* watcher = new QDBusPendingCallWatcher(*call);
|
||||||
watcher->setProperty("pengingCallVariant", variant);
|
watcher->setProperty("pengingCallVariant", variant);
|
||||||
|
@ -124,13 +124,13 @@ void DBusAsyncResponse::onTimeout()
|
||||||
Q_EMIT error(QStringLiteral("timeout when waiting dbus response!"));
|
Q_EMIT error(QStringLiteral("timeout when waiting dbus response!"));
|
||||||
}
|
}
|
||||||
|
|
||||||
QDBusPendingCall* DBusResponseWaiter::extractPendingCall(QVariant& variant) const
|
const QDBusPendingCall* DBusResponseWaiter::extractPendingCall(QVariant& variant) const
|
||||||
{
|
{
|
||||||
for (int type : qAsConst(m_registered))
|
for (int type : qAsConst(m_registered))
|
||||||
{
|
{
|
||||||
if (variant.canConvert(QVariant::Type(type)))
|
if (variant.canConvert(QVariant::Type(type)))
|
||||||
{
|
{
|
||||||
return static_cast<QDBusPendingCall*>(variant.value<void *>());
|
return reinterpret_cast<const QDBusPendingCall*>(variant.constData());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,7 @@ public:
|
||||||
///extract QDbusPendingCall from \p variant and blocks until completed
|
///extract QDbusPendingCall from \p variant and blocks until completed
|
||||||
Q_INVOKABLE QVariant waitForReply(QVariant variant) const;
|
Q_INVOKABLE QVariant waitForReply(QVariant variant) const;
|
||||||
|
|
||||||
QDBusPendingCall* extractPendingCall(QVariant& variant) const;
|
const QDBusPendingCall* extractPendingCall(QVariant& variant) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
DBusResponseWaiter();
|
DBusResponseWaiter();
|
||||||
|
|
Loading…
Reference in a new issue