summaryrefslogtreecommitdiffstats
path: root/src/plugins/bearer
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/bearer')
-rw-r--r--src/plugins/bearer/connman/qconnmanengine.cpp8
-rw-r--r--src/plugins/bearer/connman/qconnmanengine.h1
2 files changed, 8 insertions, 1 deletions
diff --git a/src/plugins/bearer/connman/qconnmanengine.cpp b/src/plugins/bearer/connman/qconnmanengine.cpp
index 7633b4f2b8..eac0d2b813 100644
--- a/src/plugins/bearer/connman/qconnmanengine.cpp
+++ b/src/plugins/bearer/connman/qconnmanengine.cpp
@@ -417,7 +417,7 @@ QNetworkConfiguration::StateFlags QConnmanEngine::getStateForService(const QStri
QConnmanServiceInterface serv(service);
QNetworkConfiguration::StateFlags flag = QNetworkConfiguration::Defined;
if (serv.getType() == "cellular") {
- if (serv.isSetupRequired() || !serv.isAutoConnect()) {
+ if (serv.isSetupRequired() || !serv.isAutoConnect() || (serv.isRoaming() && isAlwaysAskRoaming())) {
flag = ( flag | QNetworkConfiguration::Defined);
} else {
flag = ( flag | QNetworkConfiguration::Discovered);
@@ -593,6 +593,12 @@ bool QConnmanEngine::requiresPolling() const
return false;
}
+bool QConnmanEngine::isAlwaysAskRoaming()
+{
+ QSettings confFile(QStringLiteral("nemomobile"), QStringLiteral("connectionagent"));
+ confFile.beginGroup(QStringLiteral("Connectionagent"));
+ return confFile.value(QStringLiteral("askForRoaming")).toBool();
+}
QT_END_NAMESPACE
#endif // QT_NO_DBUS
diff --git a/src/plugins/bearer/connman/qconnmanengine.h b/src/plugins/bearer/connman/qconnmanengine.h
index c2a820997e..49a1a91d29 100644
--- a/src/plugins/bearer/connman/qconnmanengine.h
+++ b/src/plugins/bearer/connman/qconnmanengine.h
@@ -129,6 +129,7 @@ private:
QNetworkConfiguration::BearerType ofonoTechToBearerType(const QString &type);
bool isRoamingAllowed(const QString &context);
+ bool isAlwaysAskRoaming();
protected:
bool requiresPolling() const;
};