/***************************************************************************
- * Copyright (C) 2008 by Peter Penz <peter.penz@gmx.at> *
+ * Copyright (C) 2008 by Peter Penz <peter.penz19@gmail.com> *
* *
* 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 *
#include "startupsettingspage.h"
-#include "settings/dolphinsettings.h"
#include "dolphinmainwindow.h"
#include "dolphinviewcontainer.h"
#include "dolphin_generalsettings.h"
-#include <kdialog.h>
-#include <kfiledialog.h>
-#include <klocale.h>
-#include <klineedit.h>
-#include <kmessagebox.h>
-#include <kvbox.h>
+#include <KDialog>
+#include <KFileDialog>
+#include <KLocale>
+#include <KLineEdit>
+#include <KMessageBox>
+#include <KVBox>
#include <QCheckBox>
#include <QGroupBox>
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()));
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
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()
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);
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();
}
}
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"