Bearer/Connman: emit missing updateCompleted()
emit missing updateCompleted() in some conditions after QNetworkConfigurationManager::updateConfigurations() is called. * There is no wifi devices. * The wifi device returns error when scan is called. Change-Id: I2668644249a0584bf43efea95348424aa64ab4a6 Reviewed-by: Lorn Potter <lorn.potter@canonical.com>bb10
parent
cc119dee73
commit
b2029e9ca6
|
|
@ -85,7 +85,7 @@ void QConnmanEngine::initialize()
|
|||
this, SLOT(updateServices(ConnmanMapList,QList<QDBusObjectPath>)));
|
||||
|
||||
connect(connmanManager,SIGNAL(servicesReady(QStringList)),this,SLOT(servicesReady(QStringList)));
|
||||
connect(connmanManager,SIGNAL(scanFinished()),this,SLOT(finishedScan()));
|
||||
connect(connmanManager,SIGNAL(scanFinished(bool)),this,SLOT(finishedScan(bool)));
|
||||
|
||||
foreach (const QString &servPath, connmanManager->getServices()) {
|
||||
addServiceConfiguration(servPath);
|
||||
|
|
@ -197,11 +197,15 @@ void QConnmanEngine::requestUpdate()
|
|||
|
||||
void QConnmanEngine::doRequestUpdate()
|
||||
{
|
||||
connmanManager->requestScan("wifi");
|
||||
bool scanned = connmanManager->requestScan("wifi");
|
||||
if (!scanned)
|
||||
Q_EMIT updateCompleted();
|
||||
}
|
||||
|
||||
void QConnmanEngine::finishedScan()
|
||||
void QConnmanEngine::finishedScan(bool error)
|
||||
{
|
||||
if (error)
|
||||
Q_EMIT updateCompleted();
|
||||
}
|
||||
|
||||
void QConnmanEngine::updateServices(const ConnmanMapList &changed, const QList<QDBusObjectPath> &removed)
|
||||
|
|
|
|||
|
|
@ -94,7 +94,7 @@ private Q_SLOTS:
|
|||
void updateServices(const ConnmanMapList &changed, const QList<QDBusObjectPath> &removed);
|
||||
|
||||
void servicesReady(const QStringList &);
|
||||
void finishedScan();
|
||||
void finishedScan(bool error);
|
||||
void changedModem();
|
||||
void serviceStateChanged(const QString &state);
|
||||
void configurationChange(QConnmanServiceInterface * service);
|
||||
|
|
|
|||
|
|
@ -243,13 +243,16 @@ QStringList QConnmanManagerInterface::getServices()
|
|||
return servicesList;
|
||||
}
|
||||
|
||||
void QConnmanManagerInterface::requestScan(const QString &type)
|
||||
bool QConnmanManagerInterface::requestScan(const QString &type)
|
||||
{
|
||||
bool scanned = false;
|
||||
Q_FOREACH (QConnmanTechnologyInterface *tech, technologiesMap) {
|
||||
if (tech->type() == type) {
|
||||
tech->scan();
|
||||
scanned = true;
|
||||
}
|
||||
}
|
||||
return scanned;
|
||||
}
|
||||
|
||||
void QConnmanManagerInterface::technologyAdded(const QDBusObjectPath &path, const QVariantMap &)
|
||||
|
|
@ -259,7 +262,7 @@ void QConnmanManagerInterface::technologyAdded(const QDBusObjectPath &path, cons
|
|||
QConnmanTechnologyInterface *tech;
|
||||
tech = new QConnmanTechnologyInterface(path.path(),this);
|
||||
technologiesMap.insert(path.path(),tech);
|
||||
connect(tech,SIGNAL(scanFinished()),this,SIGNAL(scanFinished()));
|
||||
connect(tech,SIGNAL(scanFinished(bool)),this,SIGNAL(scanFinished(bool)));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -495,7 +498,11 @@ void QConnmanTechnologyInterface::scan()
|
|||
|
||||
void QConnmanTechnologyInterface::scanReply(QDBusPendingCallWatcher *call)
|
||||
{
|
||||
Q_EMIT scanFinished();
|
||||
QDBusPendingReply<QVariantMap> props_reply = *call;
|
||||
if (props_reply.isError()) {
|
||||
qDebug() << props_reply.error().message();
|
||||
}
|
||||
Q_EMIT scanFinished(props_reply.isError());
|
||||
call->deleteLater();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -108,7 +108,7 @@ public:
|
|||
bool getOfflineMode();
|
||||
QStringList getTechnologies();
|
||||
QStringList getServices();
|
||||
void requestScan(const QString &type);
|
||||
bool requestScan(const QString &type);
|
||||
|
||||
QHash<QString, QConnmanTechnologyInterface *> technologiesMap;
|
||||
|
||||
|
|
@ -119,7 +119,7 @@ Q_SIGNALS:
|
|||
void servicesChanged(const ConnmanMapList&, const QList<QDBusObjectPath> &);
|
||||
|
||||
void servicesReady(const QStringList &);
|
||||
void scanFinished();
|
||||
void scanFinished(bool error);
|
||||
|
||||
protected:
|
||||
void connectNotify(const QMetaMethod &signal);
|
||||
|
|
@ -204,7 +204,7 @@ public:
|
|||
Q_SIGNALS:
|
||||
void propertyChanged(const QString &, const QDBusVariant &value);
|
||||
void propertyChangedContext(const QString &,const QString &,const QDBusVariant &);
|
||||
void scanFinished();
|
||||
void scanFinished(bool error);
|
||||
protected:
|
||||
void connectNotify(const QMetaMethod &signal);
|
||||
QVariant getProperty(const QString &);
|
||||
|
|
|
|||
Loading…
Reference in New Issue