X-Git-Url: http://git.maemo.org/git/?p=jenirok;a=blobdiff_plain;f=src%2Fgui%2Fsettingsdialog.cpp;h=2c3ee7728d97b913549645e4221c9ab759e75bb5;hp=337a9bd3026bbc0611517eddc29f8e9272e4cf2c;hb=f99718e69b270a89094113a26b22c694b79382f0;hpb=d187495fd3566da1ee1eb94cc313c2f561a0fac5 diff --git a/src/gui/settingsdialog.cpp b/src/gui/settingsdialog.cpp index 337a9bd..2c3ee77 100644 --- a/src/gui/settingsdialog.cpp +++ b/src/gui/settingsdialog.cpp @@ -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);