/***************************************************************************
- * 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 <KLocalizedString>
+#include <QLineEdit>
+#include <KMessageBox>
+#include <QVBoxLayout>
#include <QCheckBox>
#include <QGroupBox>
#include <QLabel>
#include <QPushButton>
-#include <QRadioButton>
+#include <QHBoxLayout>
+#include <QVBoxLayout>
#include "views/dolphinview.h"
-StartupSettingsPage::StartupSettingsPage(const KUrl& url, QWidget* parent) :
+StartupSettingsPage::StartupSettingsPage(const QUrl& url, QWidget* parent) :
SettingsPageBase(parent),
m_url(url),
m_homeUrl(0),
const int spacing = KDialog::spacingHint();
QVBoxLayout* topLayout = new QVBoxLayout(this);
- KVBox* vBox = new KVBox(this);
- vBox->setSpacing(spacing);
+ QWidget* vBox = new QWidget(this);
+ QVBoxLayout *vBoxLayout = new QVBoxLayout(vBox);
+ vBoxLayout->setMargin(0);
+ vBoxLayout->setSpacing(spacing);
+ vBoxLayout->setAlignment(Qt::AlignTop);
// create 'Home URL' editor
QGroupBox* homeBox = new QGroupBox(i18nc("@title:group", "Home Folder"), vBox);
+ vBoxLayout->addWidget(homeBox);
- KHBox* homeUrlBox = new KHBox(homeBox);
- homeUrlBox->setSpacing(spacing);
+ QWidget* homeUrlBox = new QWidget(homeBox);
+ QHBoxLayout *homeUrlBoxLayout = new QHBoxLayout(homeUrlBox);
+ homeUrlBoxLayout->setMargin(0);
+ homeUrlBoxLayout->setSpacing(spacing);
- new QLabel(i18nc("@label:textbox", "Location:"), homeUrlBox);
- m_homeUrl = new KLineEdit(homeUrlBox);
- m_homeUrl->setClearButtonShown(true);
+ QLabel* homeUrlLabel = new QLabel(i18nc("@label:textbox", "Location:"), homeUrlBox);
+ homeUrlBoxLayout->addWidget(homeUrlLabel);
+ m_homeUrl = new QLineEdit(homeUrlBox);
+ homeUrlBoxLayout->addWidget(m_homeUrl);
+ m_homeUrl->setClearButtonEnabled(true);
- QPushButton* selectHomeUrlButton = new QPushButton(KIcon("folder-open"), QString(), homeUrlBox);
- connect(selectHomeUrlButton, SIGNAL(clicked()),
- this, SLOT(selectHomeUrl()));
+ QPushButton* selectHomeUrlButton = new QPushButton(QIcon::fromTheme("folder-open"), QString(), homeUrlBox);
+ homeUrlBoxLayout->addWidget(selectHomeUrlButton);
- KHBox* buttonBox = new KHBox(homeBox);
- buttonBox->setSpacing(spacing);
+#ifndef QT_NO_ACCESSIBILITY
+ selectHomeUrlButton->setAccessibleName(i18nc("@action:button", "Select Home Location"));
+#endif
+
+ connect(selectHomeUrlButton, &QPushButton::clicked,
+ this, &StartupSettingsPage::selectHomeUrl);
+
+ QWidget* buttonBox = new QWidget(homeBox);
+ QHBoxLayout *buttonBoxLayout = new QHBoxLayout(buttonBox);
+ buttonBoxLayout->setMargin(0);
+ buttonBoxLayout->setSpacing(spacing);
QPushButton* useCurrentButton = new QPushButton(i18nc("@action:button", "Use Current Location"), buttonBox);
- connect(useCurrentButton, SIGNAL(clicked()),
- this, SLOT(useCurrentLocation()));
+ buttonBoxLayout->addWidget(useCurrentButton);
+ connect(useCurrentButton, &QPushButton::clicked,
+ this, &StartupSettingsPage::useCurrentLocation);
QPushButton* useDefaultButton = new QPushButton(i18nc("@action:button", "Use Default Location"), buttonBox);
- connect(useDefaultButton, SIGNAL(clicked()),
- this, SLOT(useDefaultLocation()));
+ buttonBoxLayout->addWidget(useDefaultButton);
+ connect(useDefaultButton, &QPushButton::clicked,
+ this, &StartupSettingsPage::useDefaultLocation);
QVBoxLayout* homeBoxLayout = new QVBoxLayout(homeBox);
homeBoxLayout->addWidget(homeUrlBox);
// create 'Split view', 'Show full path', 'Editable location' and 'Filter bar' checkboxes
m_splitView = new QCheckBox(i18nc("@option:check Startup Settings", "Split view mode"), vBox);
+ vBoxLayout->addWidget(m_splitView);
m_editableUrl = new QCheckBox(i18nc("@option:check Startup Settings", "Editable location bar"), vBox);
+ vBoxLayout->addWidget(m_editableUrl);
m_showFullPath = new QCheckBox(i18nc("@option:check Startup Settings", "Show full path inside location bar"), vBox);
+ vBoxLayout->addWidget(m_showFullPath);
m_filterBar = new QCheckBox(i18nc("@option:check Startup Settings", "Show filter bar"), vBox);
+ vBoxLayout->addWidget(m_filterBar);
// Add a dummy widget with no restriction regarding
// a vertical resizing. This assures that the dialog layout
loadSettings();
- connect(m_homeUrl, SIGNAL(textChanged(const 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()));
+ connect(m_homeUrl, &QLineEdit::textChanged, this, &StartupSettingsPage::slotSettingsChanged);
+ connect(m_splitView, &QCheckBox::toggled, this, &StartupSettingsPage::slotSettingsChanged);
+ connect(m_editableUrl, &QCheckBox::toggled, this, &StartupSettingsPage::slotSettingsChanged);
+ connect(m_showFullPath, &QCheckBox::toggled, this, &StartupSettingsPage::slotSettingsChanged);
+ connect(m_filterBar, &QCheckBox::toggled, this, &StartupSettingsPage::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);
- if (url.isValid() && fileItem.isDir()) {
- settings->setHomeUrl(url.prettyUrl());
+ const QUrl url(QUrl::fromLocalFile(m_homeUrl->text()));
+ KFileItem fileItem(url);
+ if ((url.isValid() && fileItem.isDir()) || (url.scheme() == QLatin1String("timeline"))) {
+ settings->setHomeUrl(url.toDisplayString(QUrl::PreferLocalFile));
} else {
KMessageBox::error(this, i18nc("@info", "The location for the home folder is invalid or does not exist, it will not be applied."));
}
settings->setShowFullPath(m_showFullPath->isChecked());
settings->setFilterBar(m_filterBar->isChecked());
- settings->writeConfig();
+ settings->save();
}
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 explicitely changed by the user
+ // to apply the startup settings only if they have been explicitly changed by the user
// (see bug #254947).
- GeneralSettings* settings = DolphinSettings::instance().generalSettings();
- settings->setModifiedStartupSettings(true);
-
+ GeneralSettings::setModifiedStartupSettings(true);
emit changed();
}
void StartupSettingsPage::selectHomeUrl()
{
const QString homeUrl = m_homeUrl->text();
- KUrl url = KFileDialog::getExistingDirectoryUrl(homeUrl, this);
+ QUrl url = KFileDialog::getExistingDirectoryUrl(QUrl::fromLocalFile(homeUrl), this);
if (!url.isEmpty()) {
- m_homeUrl->setText(url.prettyUrl());
+ m_homeUrl->setText(url.toDisplayString(QUrl::PreferLocalFile));
slotSettingsChanged();
}
}
void StartupSettingsPage::useCurrentLocation()
{
- m_homeUrl->setText(m_url.prettyUrl());
+ m_homeUrl->setText(m_url.toDisplayString(QUrl::PreferLocalFile));
}
void StartupSettingsPage::useDefaultLocation()
{
- KUrl url(QDir::homePath());
- m_homeUrl->setText(url.prettyUrl());
+ m_homeUrl->setText(QDir::homePath());
}
void StartupSettingsPage::loadSettings()
{
- GeneralSettings* settings = DolphinSettings::instance().generalSettings();
- KUrl url(settings->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());
+ const QUrl url(QUrl::fromLocalFile(GeneralSettings::homeUrl()));
+ m_homeUrl->setText(url.toDisplayString(QUrl::PreferLocalFile));
+ m_splitView->setChecked(GeneralSettings::splitView());
+ m_editableUrl->setChecked(GeneralSettings::editableUrl());
+ m_showFullPath->setChecked(GeneralSettings::showFullPath());
+ m_filterBar->setChecked(GeneralSettings::filterBar());
}
-
-#include "startupsettingspage.moc"