diff options
author | Marja Hassinen <marja.hassinen@nokia.com> | 2010-09-20 13:29:33 +0300 |
---|---|---|
committer | Marja Hassinen <marja.hassinen@nokia.com> | 2010-09-20 13:29:33 +0300 |
commit | ad716f0a9d69b08538ff3f25d28649284287d246 (patch) | |
tree | 1015477b3af8861410819ea080129768aa3e9eb8 /libcontextsubscriber/src/provider.cpp | |
parent | ca5f48f21a443b3805eb125116f1c361ad0fc45d (diff) |
libcontextsubscriber fix: if plugin loading failed, waitForSubscription hanged.
Diffstat (limited to 'libcontextsubscriber/src/provider.cpp')
-rw-r--r-- | libcontextsubscriber/src/provider.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/libcontextsubscriber/src/provider.cpp b/libcontextsubscriber/src/provider.cpp index d31d80d4..8826575c 100644 --- a/libcontextsubscriber/src/provider.cpp +++ b/libcontextsubscriber/src/provider.cpp @@ -164,6 +164,12 @@ void Provider::constructPlugin() contextCritical() << "Illegal plugin name" << providerInfo.plugin << ", doesn't start with /"; } + // Connect the subscribeFinished signal early enough; if plugin loading has + // failed, we still need to send it. + HandleSignalRouter* handleSignalRouter = HandleSignalRouter::instance(); + sconnect(this, SIGNAL(subscribeFinished(Provider *,QString)), + handleSignalRouter, SLOT(onSubscribeFinished(Provider *,QString))); + if (plugin == 0) { pluginState = FAILED; handleSubscribes(); @@ -171,7 +177,6 @@ void Provider::constructPlugin() } // Connect the signal of changing values to the class who handles it - HandleSignalRouter* handleSignalRouter = HandleSignalRouter::instance(); sconnect(plugin, SIGNAL(valueChanged(QString, TimedValue)), this, SLOT(onPluginValueChanged(QString, TimedValue))); sconnect(plugin, SIGNAL(valueChanged(QString, QVariant)), @@ -197,8 +202,6 @@ void Provider::constructPlugin() this, SLOT(onPluginSubscribeFinished(QString)), Qt::QueuedConnection); sconnect(plugin, SIGNAL(subscribeFailed(QString, QString)), this, SLOT(onPluginSubscribeFailed(QString, QString)), Qt::QueuedConnection); - sconnect(this, SIGNAL(subscribeFinished(Provider *,QString)), - handleSignalRouter, SLOT(onSubscribeFinished(Provider *,QString))); } /// Updates \c pluginState to \c READY and requests subscription for |