From 288b838f75f91205d81d5d46201eae90e8abd51a Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Wed, 24 Mar 2010 10:51:58 +0100 Subject: This commit should finally fix settings handling --- src/mainwindow.cpp | 14 +++++++++----- src/settings/adblockwidget.cpp | 3 +++ src/settings/networkwidget.cpp | 3 +++ src/settings/settingsdialog.cpp | 6 ++++++ 4 files changed, 21 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index d15ce0c4..68469cdd 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -543,6 +543,11 @@ void MainWindow::setupPanels() void MainWindow::updateConfiguration() { + kDebug() << "======================================================================================================================"; + kDebug() << "======================================================================================================================"; + kDebug() << "======================================================================================================================"; + kDebug() << "======================================================================================================================"; + // ============== General ================== m_view->updateTabBar(); @@ -639,14 +644,13 @@ void MainWindow::preferences() return; // we didn't find an instance of this dialog, so lets create it - QWeakPointer s = new SettingsDialog(this); + QPointer s = new SettingsDialog(this); // keep us informed when the user changes settings - connect(s.data(), SIGNAL(settingsChanged(const QString&)), this, SLOT(updateConfiguration())); + connect(s, SIGNAL(settingsChanged(const QString&)), this, SLOT(updateConfiguration())); - s.data()->exec(); - delete s.data(); - s.clear(); + s->exec(); + delete s; } diff --git a/src/settings/adblockwidget.cpp b/src/settings/adblockwidget.cpp index 471f57f0..39df2c36 100644 --- a/src/settings/adblockwidget.cpp +++ b/src/settings/adblockwidget.cpp @@ -174,6 +174,9 @@ void AdBlockWidget::save() ReKonfig::setAdBlockEnabled( checkEnableAdblock->isChecked() ); ReKonfig::setHideAdsEnabled( checkHideAds->isChecked() ); ReKonfig::setUpdateInterval( spinBox->value() ); + + _changed = false; + emit changed(false); } diff --git a/src/settings/networkwidget.cpp b/src/settings/networkwidget.cpp index 2f5948cf..54f6e068 100644 --- a/src/settings/networkwidget.cpp +++ b/src/settings/networkwidget.cpp @@ -82,6 +82,9 @@ void NetworkWidget::save() _cookiesModule->save(); _proxyModule->save(); _cacheModule->save(); + + _changed = false; + emit changed(false); } diff --git a/src/settings/settingsdialog.cpp b/src/settings/settingsdialog.cpp index 08d5ca6e..35f753d3 100644 --- a/src/settings/settingsdialog.cpp +++ b/src/settings/settingsdialog.cpp @@ -199,11 +199,17 @@ void SettingsDialog::readConfig() // we need this function to SAVE settings in rc file.. void SettingsDialog::saveSettings() { + if (!hasChanged()) + return; + ReKonfig::self()->writeConfig(); d->ebrowsingModule->save(); d->shortcutsEditor->save(); d->adBlockWidg->save(); d->networkWidg->save(); + + updateButtons(); + emit settingsChanged("ReKonfig"); } -- cgit v1.2.1