Some error banner delays fixed.
[jenirok] / src / common / settings.cpp
index 1333c21..956173e 100644 (file)
@@ -18,6 +18,8 @@
 
 #include <QtSql/QSqlQuery>
 #include <QtCore/QVariant>
+#include <QtCore/QDebug>
+#include <gconf/gconf-client.h>
 #include "settings.h"
 #include "db.h"
 
@@ -118,6 +120,7 @@ QString Settings::getDefaultValue(QString const& name)
         defaultValues["autostart"] = "1";
         defaultValues["eniro_site"] = tr("fi");
         defaultValues["cache_size"] = "200";
+        defaultValues["connection"] = "global";
         defaultValuesLoaded = true;
     }
 
@@ -156,6 +159,91 @@ bool Settings::reset()
     return ret;
 }
 
+Settings::ConnectionType Settings::getConnectionType()
+{
+    QString value = get("connection");
+
+    if(value == "any")
+    {
+        return ANY;
+    }
+    else if(value == "wlan")
+    {
+        return WLAN;
+    }
+    else if(value == "gprs")
+    {
+        return GPRS;
+    }
+    else
+    {
+        if(value != "global")
+        {
+            qDebug() << "Unknown connection type in settings, using default";
+        }
+
+        QList<QString> values;
+
+        GConfClient* gcClient = NULL;
+        gcClient = gconf_client_get_default();
+
+        g_assert(GCONF_IS_CLIENT(gcClient));
+
+        GError* error = NULL;
+        GSList* list = NULL;
+        list = gconf_client_get_list(gcClient,
+                                     "/system/osso/connectivity/network_type/auto_connect",
+                                     GCONF_VALUE_STRING,
+                                     &error);
+
+        if(error)
+        {
+            qDebug() << "Error: " << error->message;
+            g_error_free(error);
+        }
+        else
+        {
+            while(list)
+            {
+                values.push_back((char *)list->data);
+                list = list->next;
+            }
+        }
+
+        g_object_unref(gcClient);
+
+        if(values.size() == 0)
+        {
+            return ALWAYS_ASK;
+        }
+        else
+        {
+            QString value = values.at(0);
+
+            if(value == "*")
+            {
+                return ANY;
+            }
+            else if(value == "GPRS")
+            {
+                return GPRS;
+            }
+            else if(value == "WLAN_INFRA" || value == "WLAN_ADHOC" || value == "WLAN")
+            {
+                return WLAN;
+            }
+            else
+            {
+                qDebug() << "Unknown connection type: " << value;
+                return ALWAYS_ASK;
+            }
+        }
+
+    }
+
+    return ALWAYS_ASK;
+}
+
 Settings::Settings()
 {
 }