X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/652d08c9242ed51d86dba3b2afda9d3b2e9a9cd7..b2a580c2b9b85a5a5b91e2eb3f218cea3b7b98c3:/src/settings/startup/startupsettingspage.cpp diff --git a/src/settings/startup/startupsettingspage.cpp b/src/settings/startup/startupsettingspage.cpp index d891558e1..633cdacad 100644 --- a/src/settings/startup/startupsettingspage.cpp +++ b/src/settings/startup/startupsettingspage.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2008 by Peter Penz * + * Copyright (C) 2008 by Peter Penz * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * @@ -19,18 +19,17 @@ #include "startupsettingspage.h" -#include "settings/dolphinsettings.h" #include "dolphinmainwindow.h" #include "dolphinviewcontainer.h" #include "dolphin_generalsettings.h" -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include #include #include @@ -66,6 +65,11 @@ StartupSettingsPage::StartupSettingsPage(const KUrl& url, QWidget* parent) : m_homeUrl->setClearButtonShown(true); QPushButton* selectHomeUrlButton = new QPushButton(KIcon("folder-open"), QString(), homeUrlBox); + +#ifndef QT_NO_ACCESSIBILITY + selectHomeUrlButton->setAccessibleName(i18nc("@action:button", "Select Home Location")); +#endif + connect(selectHomeUrlButton, SIGNAL(clicked()), this, SLOT(selectHomeUrl())); @@ -88,10 +92,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 +102,11 @@ StartupSettingsPage::StartupSettingsPage(const KUrl& url, QWidget* parent) : loadSettings(); - // it's important connecting 'textChanged' after loadSettings(), as loadSettings() - // invokes m_homeUrl->setText() - connect(m_homeUrl, SIGNAL(textChanged(const QString&)), this, SIGNAL(changed())); + connect(m_homeUrl, SIGNAL(textChanged(QString)), this, SLOT(slotSettingsChanged())); + 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() @@ -113,7 +115,7 @@ StartupSettingsPage::~StartupSettingsPage() void StartupSettingsPage::applySettings() { - GeneralSettings* settings = DolphinSettings::instance().generalSettings(); + GeneralSettings* settings = GeneralSettings::self(); const KUrl url(m_homeUrl->text()); KFileItem fileItem(KFileItem::Unknown, KFileItem::Unknown, url); @@ -133,19 +135,28 @@ void StartupSettingsPage::applySettings() void StartupSettingsPage::restoreDefaults() { - GeneralSettings* settings = DolphinSettings::instance().generalSettings(); + GeneralSettings* settings = GeneralSettings::self(); settings->useDefaults(true); loadSettings(); 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 explicitly changed by the user + // (see bug #254947). + GeneralSettings::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,19 +167,18 @@ void StartupSettingsPage::useCurrentLocation() void StartupSettingsPage::useDefaultLocation() { - KUrl url(QDir::homePath()); + KUrl url(QDir::homePath()); m_homeUrl->setText(url.prettyUrl()); } void StartupSettingsPage::loadSettings() { - GeneralSettings* settings = DolphinSettings::instance().generalSettings(); - KUrl url(settings->homeUrl()); + const KUrl url(GeneralSettings::homeUrl()); m_homeUrl->setText(url.prettyUrl()); - m_splitView->setChecked(settings->splitView()); - m_editableUrl->setChecked(settings->editableUrl()); - m_showFullPath->setChecked(settings->showFullPath()); - m_filterBar->setChecked(settings->filterBar()); + m_splitView->setChecked(GeneralSettings::splitView()); + m_editableUrl->setChecked(GeneralSettings::editableUrl()); + m_showFullPath->setChecked(GeneralSettings::showFullPath()); + m_filterBar->setChecked(GeneralSettings::filterBar()); } #include "startupsettingspage.moc"