┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/settings/startup
diff options
context:
space:
mode:
authorPeter Penz <[email protected]>2010-11-05 17:02:58 +0000
committerPeter Penz <[email protected]>2010-11-05 17:02:58 +0000
commitda1adf7ba407fc58cf458b8ebe26c793090c1763 (patch)
treee0bb95cc043d080bde5ca566d6834fb2d8338246 /src/settings/startup
parente8bbbd57036950e6290bf8de936b5dfe769a0256 (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.cpp26
-rw-r--r--src/settings/startup/startupsettingspage.h1
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();