Danish Eniro search fixed.
[jenirok] / src / gui / settingsdialog.cpp
index 337a9bd..2c3ee77 100644 (file)
@@ -107,7 +107,12 @@ autostartSelector_(0), connectionSelector_(0), tabs_(0)
 
     connectionSelector_ = new ConnectionSelector(tr("Connect automatically on"), this);
     QString selectedConnection = Settings::instance()->get("connection");
-    connectionSelector_->selectByValue(selectedConnection);
+
+    if(connectionSelector_->selectByValue(selectedConnection) &&
+       selectedConnection == "gprs")
+    {
+        connectionSelector_->updateConnections();
+    }
 
     QPushButton* submitButton = new QPushButton(tr("Save"), this);
     connect(submitButton, SIGNAL(pressed()), this, SLOT(saveSettings()));
@@ -151,7 +156,6 @@ void SettingsDialog::saveSettings()
 
     Settings::instance()->startEdit();
 
-    sourceConfig_->save();
     Settings::instance()->set("cache_size", cacheInput_->text());
     QString source = sourceSelector_->value().toString();
     Settings::instance()->set("source", source);
@@ -159,24 +163,33 @@ void SettingsDialog::saveSettings()
     Settings::instance()->set("autostart", autostart);
     QString connection = connectionSelector_->value().toString();
     Settings::instance()->set("connection", connection);
-    Settings::instance()->set("connection_name", connectionSelector_->text());
     QString language = languageSelector_->value().toString();
     Settings::instance()->set("language", language);
+    sourceConfig_->save();
 
     Settings::instance()->endEdit();
 
-    if(Daemon::isRunning())
-    {
-        QMaemo5InformationBox::information(this, tr("Restarting daemon..."));
-        Daemon::restart();
-    }
+    bool infoboxShown = false;
 
     if(language != selectedLanguage_)
     {
         QMaemo5InformationBox::information(this, tr("You need to restart Jenirok for language change to take effect."));
         selectedLanguage_ = language;
+        infoboxShown = true;
+    }
+
+    if(Daemon::isRunning())
+    {
+        if(!infoboxShown)
+        {
+            QMaemo5InformationBox::information(this, tr("Restarting daemon..."), 1500);
+        }
+
+        Daemon::restart();
     }
 
+    emit saved();
+
 }
 
 void SettingsDialog::resetCache()
@@ -200,7 +213,13 @@ void SettingsDialog::onSourceSelected(unsigned int index,
 
     if(source != currentSource_)
     {
-        tabs_->removeTab(tabs_->count() - 1);
+        int tabId = tabs_->indexOf(sourceConfig_);
+
+        if(tabId >= 0)
+        {
+            tabs_->removeTab(tabId);
+        }
+
         delete sourceConfig_;
         Source::SourceId sourceId = Source::stringToId(value.toString());
         sourceConfig_ = SourceGuiConfig::getGuiConfig(sourceId, this);