diff options
Diffstat (limited to 'libcontextsubscriber/src')
-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 |