diff options
| author | Peter Penz <[email protected]> | 2010-11-05 17:02:58 +0000 |
|---|---|---|
| committer | Peter Penz <[email protected]> | 2010-11-05 17:02:58 +0000 |
| commit | da1adf7ba407fc58cf458b8ebe26c793090c1763 (patch) | |
| tree | e0bb95cc043d080bde5ca566d6834fb2d8338246 /src/settings/startup | |
| parent | e8bbbd57036950e6290bf8de936b5dfe769a0256 (diff) | |
If the user has changed the startup settings, they should also get applied to the current views.
BUG: 254947
FIXED-IN: 4.6.0
svn path=/trunk/KDE/kdebase/apps/; revision=1193344
Diffstat (limited to 'src/settings/startup')
| -rw-r--r-- | src/settings/startup/startupsettingspage.cpp | 26 | ||||
| -rw-r--r-- | src/settings/startup/startupsettingspage.h | 1 |
2 files changed, 19 insertions, 8 deletions
diff --git a/src/settings/startup/startupsettingspage.cpp b/src/settings/startup/startupsettingspage.cpp index d891558e1..907b3f2cd 100644 --- a/src/settings/startup/startupsettingspage.cpp +++ b/src/settings/startup/startupsettingspage.cpp @@ -88,10 +88,6 @@ StartupSettingsPage::StartupSettingsPage(const KUrl& url, QWidget* parent) : m_editableUrl = new QCheckBox(i18nc("@option:check Startup Settings", "Editable location bar"), vBox); m_showFullPath = new QCheckBox(i18nc("@option:check Startup Settings", "Show full path inside location bar"), vBox); m_filterBar = new QCheckBox(i18nc("@option:check Startup Settings", "Show filter bar"), vBox); - connect(m_splitView, SIGNAL(toggled(bool)), this, SIGNAL(changed())); - connect(m_editableUrl, SIGNAL(toggled(bool)), this, SIGNAL(changed())); - connect(m_showFullPath, SIGNAL(toggled(bool)), this, SIGNAL(changed())); - connect(m_filterBar, SIGNAL(toggled(bool)), this, SIGNAL(changed())); // Add a dummy widget with no restriction regarding // a vertical resizing. This assures that the dialog layout @@ -102,9 +98,12 @@ StartupSettingsPage::StartupSettingsPage(const KUrl& url, QWidget* parent) : loadSettings(); - // it's important connecting 'textChanged' after loadSettings(), as loadSettings() - // invokes m_homeUrl->setText() + // Connecting the signals must be done after loading the settings connect(m_homeUrl, SIGNAL(textChanged(const QString&)), this, SIGNAL(changed())); + connect(m_splitView, SIGNAL(toggled(bool)), this, SLOT(slotSettingsChanged())); + connect(m_editableUrl, SIGNAL(toggled(bool)), this, SLOT(slotSettingsChanged())); + connect(m_showFullPath, SIGNAL(toggled(bool)), this, SLOT(slotSettingsChanged())); + connect(m_filterBar, SIGNAL(toggled(bool)), this, SLOT(slotSettingsChanged())); } StartupSettingsPage::~StartupSettingsPage() @@ -139,13 +138,24 @@ void StartupSettingsPage::restoreDefaults() settings->useDefaults(false); } +void StartupSettingsPage::slotSettingsChanged() +{ + // Provide a hint that the startup settings have been changed. This allows the views + // to apply the startup settings only if they have been explicitely changed by the user + // (see bug #254947). + GeneralSettings* settings = DolphinSettings::instance().generalSettings(); + settings->setModifiedStartupSettings(true); + + emit changed(); +} + void StartupSettingsPage::selectHomeUrl() { const QString homeUrl = m_homeUrl->text(); KUrl url = KFileDialog::getExistingDirectoryUrl(homeUrl, this); if (!url.isEmpty()) { m_homeUrl->setText(url.prettyUrl()); - emit changed(); + slotSettingsChanged(); } } @@ -156,7 +166,7 @@ void StartupSettingsPage::useCurrentLocation() void StartupSettingsPage::useDefaultLocation() { - KUrl url(QDir::homePath()); + KUrl url(QDir::homePath()); m_homeUrl->setText(url.prettyUrl()); } diff --git a/src/settings/startup/startupsettingspage.h b/src/settings/startup/startupsettingspage.h index 98219a5a4..d749e5e0e 100644 --- a/src/settings/startup/startupsettingspage.h +++ b/src/settings/startup/startupsettingspage.h @@ -46,6 +46,7 @@ public: virtual void restoreDefaults(); private slots: + void slotSettingsChanged(); void selectHomeUrl(); void useCurrentLocation(); void useDefaultLocation(); |
