mirror of
https://invent.kde.org/system/dolphin
synced 2024-09-19 16:31:21 +00:00
Split the "General Settings" into "Startup Settings" and "General Settings" for having a cleaner layout. Still some fine tuning and code cleanups have to be done...
svn path=/trunk/KDE/kdebase/apps/; revision=764389
This commit is contained in:
parent
8ba61eb0c7
commit
f3c83ec89f
|
@ -101,6 +101,7 @@ set(dolphin_SRCS
|
||||||
pixmapviewer.cpp
|
pixmapviewer.cpp
|
||||||
settingspagebase.cpp
|
settingspagebase.cpp
|
||||||
sidebarpage.cpp
|
sidebarpage.cpp
|
||||||
|
startupsettingspage.cpp
|
||||||
statusbarspaceinfo.cpp
|
statusbarspaceinfo.cpp
|
||||||
statusbarmessagelabel.cpp
|
statusbarmessagelabel.cpp
|
||||||
terminalsidebarpage.cpp
|
terminalsidebarpage.cpp
|
||||||
|
|
|
@ -23,6 +23,7 @@
|
||||||
#include "dolphinapplication.h"
|
#include "dolphinapplication.h"
|
||||||
#include "dolphinmainwindow.h"
|
#include "dolphinmainwindow.h"
|
||||||
#include "generalsettingspage.h"
|
#include "generalsettingspage.h"
|
||||||
|
#include "startupsettingspage.h"
|
||||||
#include "viewsettingspage.h"
|
#include "viewsettingspage.h"
|
||||||
|
|
||||||
#include <klocale.h>
|
#include <klocale.h>
|
||||||
|
@ -30,7 +31,11 @@
|
||||||
#include <kicon.h>
|
#include <kicon.h>
|
||||||
|
|
||||||
DolphinSettingsDialog::DolphinSettingsDialog(DolphinMainWindow* mainWindow) :
|
DolphinSettingsDialog::DolphinSettingsDialog(DolphinMainWindow* mainWindow) :
|
||||||
KPageDialog(mainWindow)
|
KPageDialog(mainWindow),
|
||||||
|
m_startupSettingsPage(0),
|
||||||
|
m_generalSettingsPage(0),
|
||||||
|
m_viewSettingsPage(0)
|
||||||
|
|
||||||
{
|
{
|
||||||
const QSize minSize = minimumSize();
|
const QSize minSize = minimumSize();
|
||||||
setMinimumSize(QSize(512, minSize.height()));
|
setMinimumSize(QSize(512, minSize.height()));
|
||||||
|
@ -40,6 +45,11 @@ DolphinSettingsDialog::DolphinSettingsDialog(DolphinMainWindow* mainWindow) :
|
||||||
setButtons(Ok | Apply | Cancel | Default);
|
setButtons(Ok | Apply | Cancel | Default);
|
||||||
setDefaultButton(Ok);
|
setDefaultButton(Ok);
|
||||||
|
|
||||||
|
m_startupSettingsPage = new StartupSettingsPage(mainWindow, this);
|
||||||
|
KPageWidgetItem* startupSettingsFrame = addPage(m_startupSettingsPage,
|
||||||
|
i18nc("@title:group", "Startup"));
|
||||||
|
startupSettingsFrame->setIcon(KIcon("go-home"));
|
||||||
|
|
||||||
m_generalSettingsPage = new GeneralSettingsPage(mainWindow, this);
|
m_generalSettingsPage = new GeneralSettingsPage(mainWindow, this);
|
||||||
KPageWidgetItem* generalSettingsFrame = addPage(m_generalSettingsPage,
|
KPageWidgetItem* generalSettingsFrame = addPage(m_generalSettingsPage,
|
||||||
i18nc("@title:group", "General"));
|
i18nc("@title:group", "General"));
|
||||||
|
@ -76,6 +86,7 @@ void DolphinSettingsDialog::slotButtonClicked(int button)
|
||||||
|
|
||||||
void DolphinSettingsDialog::applySettings()
|
void DolphinSettingsDialog::applySettings()
|
||||||
{
|
{
|
||||||
|
m_startupSettingsPage->applySettings();
|
||||||
m_generalSettingsPage->applySettings();
|
m_generalSettingsPage->applySettings();
|
||||||
m_viewSettingsPage->applySettings();
|
m_viewSettingsPage->applySettings();
|
||||||
DolphinApplication::app()->refreshMainWindows();
|
DolphinApplication::app()->refreshMainWindows();
|
||||||
|
@ -83,6 +94,7 @@ void DolphinSettingsDialog::applySettings()
|
||||||
|
|
||||||
void DolphinSettingsDialog::restoreDefaults()
|
void DolphinSettingsDialog::restoreDefaults()
|
||||||
{
|
{
|
||||||
|
m_startupSettingsPage->restoreDefaults();
|
||||||
m_generalSettingsPage->restoreDefaults();
|
m_generalSettingsPage->restoreDefaults();
|
||||||
m_viewSettingsPage->restoreDefaults();
|
m_viewSettingsPage->restoreDefaults();
|
||||||
DolphinApplication::app()->refreshMainWindows();
|
DolphinApplication::app()->refreshMainWindows();
|
||||||
|
|
|
@ -22,14 +22,16 @@
|
||||||
#define DOLPHINSETTINGSDIALOG_H
|
#define DOLPHINSETTINGSDIALOG_H
|
||||||
|
|
||||||
#include <kpagedialog.h>
|
#include <kpagedialog.h>
|
||||||
|
|
||||||
class GeneralSettingsPage;
|
class GeneralSettingsPage;
|
||||||
|
class StartupSettingsPage;
|
||||||
class ViewSettingsPage;
|
class ViewSettingsPage;
|
||||||
class DolphinMainWindow;
|
class DolphinMainWindow;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Settings dialog for Dolphin.
|
* @brief Settings dialog for Dolphin.
|
||||||
*
|
*
|
||||||
* Contains the pages for general settings and view settings.
|
* Contains the pages for startup settings, general settings and view settings.
|
||||||
*
|
*
|
||||||
* @author Peter Penz <peter.penz@gmx.at>
|
* @author Peter Penz <peter.penz@gmx.at>
|
||||||
*/
|
*/
|
||||||
|
@ -50,6 +52,7 @@ private:
|
||||||
void restoreDefaults();
|
void restoreDefaults();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
StartupSettingsPage* m_startupSettingsPage;
|
||||||
GeneralSettingsPage* m_generalSettingsPage;
|
GeneralSettingsPage* m_generalSettingsPage;
|
||||||
ViewSettingsPage* m_viewSettingsPage;
|
ViewSettingsPage* m_viewSettingsPage;
|
||||||
};
|
};
|
||||||
|
|
|
@ -21,31 +21,20 @@
|
||||||
#include "generalsettingspage.h"
|
#include "generalsettingspage.h"
|
||||||
|
|
||||||
#include "dolphinsettings.h"
|
#include "dolphinsettings.h"
|
||||||
#include "dolphinmainwindow.h"
|
|
||||||
#include "dolphinview.h"
|
|
||||||
#include "dolphinviewcontainer.h"
|
|
||||||
|
|
||||||
#include "dolphin_generalsettings.h"
|
#include "dolphin_generalsettings.h"
|
||||||
|
|
||||||
#include <kdialog.h>
|
#include <kdialog.h>
|
||||||
#include <kfiledialog.h>
|
|
||||||
#include <klocale.h>
|
#include <klocale.h>
|
||||||
#include <kvbox.h>
|
#include <kvbox.h>
|
||||||
|
|
||||||
#include <QCheckBox>
|
#include <QCheckBox>
|
||||||
#include <QGroupBox>
|
#include <QGroupBox>
|
||||||
#include <QLabel>
|
#include <QLabel>
|
||||||
#include <QLineEdit>
|
#include <QVBoxLayout>
|
||||||
#include <QPushButton>
|
|
||||||
#include <QRadioButton>
|
|
||||||
|
|
||||||
GeneralSettingsPage::GeneralSettingsPage(DolphinMainWindow* mainWin, QWidget* parent) :
|
GeneralSettingsPage::GeneralSettingsPage(DolphinMainWindow* mainWin, QWidget* parent) :
|
||||||
SettingsPageBase(parent),
|
SettingsPageBase(parent),
|
||||||
m_mainWindow(mainWin),
|
|
||||||
m_homeUrl(0),
|
|
||||||
m_splitView(0),
|
|
||||||
m_editableUrl(0),
|
|
||||||
m_filterBar(0),
|
|
||||||
m_showDeleteCommand(0),
|
m_showDeleteCommand(0),
|
||||||
m_confirmMoveToTrash(0),
|
m_confirmMoveToTrash(0),
|
||||||
m_confirmDelete(0),
|
m_confirmDelete(0),
|
||||||
|
@ -57,45 +46,6 @@ GeneralSettingsPage::GeneralSettingsPage(DolphinMainWindow* mainWin, QWidget* pa
|
||||||
KVBox* vBox = new KVBox(this);
|
KVBox* vBox = new KVBox(this);
|
||||||
vBox->setSpacing(spacing);
|
vBox->setSpacing(spacing);
|
||||||
|
|
||||||
// create 'Home URL' editor
|
|
||||||
QGroupBox* homeBox = new QGroupBox(i18nc("@title:group", "Home Folder"), vBox);
|
|
||||||
|
|
||||||
KHBox* homeUrlBox = new KHBox(homeBox);
|
|
||||||
homeUrlBox->setSpacing(spacing);
|
|
||||||
|
|
||||||
new QLabel(i18nc("@label:textbox", "Location:"), homeUrlBox);
|
|
||||||
m_homeUrl = new QLineEdit(homeUrlBox);
|
|
||||||
|
|
||||||
QPushButton* selectHomeUrlButton = new QPushButton(KIcon("folder-open"), QString(), homeUrlBox);
|
|
||||||
connect(selectHomeUrlButton, SIGNAL(clicked()),
|
|
||||||
this, SLOT(selectHomeUrl()));
|
|
||||||
|
|
||||||
KHBox* buttonBox = new KHBox(homeBox);
|
|
||||||
buttonBox->setSpacing(spacing);
|
|
||||||
|
|
||||||
QPushButton* useCurrentButton = new QPushButton(i18nc("@action:button", "Use Current Location"), buttonBox);
|
|
||||||
connect(useCurrentButton, SIGNAL(clicked()),
|
|
||||||
this, SLOT(useCurrentLocation()));
|
|
||||||
QPushButton* useDefaultButton = new QPushButton(i18nc("@action:button", "Use Default Location"), buttonBox);
|
|
||||||
connect(useDefaultButton, SIGNAL(clicked()),
|
|
||||||
this, SLOT(useDefaultLocation()));
|
|
||||||
|
|
||||||
QVBoxLayout* homeBoxLayout = new QVBoxLayout(homeBox);
|
|
||||||
homeBoxLayout->addWidget(homeUrlBox);
|
|
||||||
homeBoxLayout->addWidget(buttonBox);
|
|
||||||
|
|
||||||
QGroupBox* startBox = new QGroupBox(i18nc("@title:group", "Startup Settings"), vBox);
|
|
||||||
|
|
||||||
// create 'Split view', 'Editable location' and 'Filter bar' checkboxes
|
|
||||||
m_splitView = new QCheckBox(i18nc("@option:check Startup Settings", "Split view mode"), startBox);
|
|
||||||
m_editableUrl = new QCheckBox(i18nc("@option:check Startup Settings", "Editable location bar"), startBox);
|
|
||||||
m_filterBar = new QCheckBox(i18nc("@option:check Startup Settings", "Show filter bar"),startBox);
|
|
||||||
|
|
||||||
QVBoxLayout* startBoxLayout = new QVBoxLayout(startBox);
|
|
||||||
startBoxLayout->addWidget(m_splitView);
|
|
||||||
startBoxLayout->addWidget(m_editableUrl);
|
|
||||||
startBoxLayout->addWidget(m_filterBar);
|
|
||||||
|
|
||||||
// create 'Ask Confirmation For' group
|
// create 'Ask Confirmation For' group
|
||||||
QGroupBox* confirmBox = new QGroupBox(i18nc("@title:group", "Ask For Confirmation When"), vBox);
|
QGroupBox* confirmBox = new QGroupBox(i18nc("@title:group", "Ask For Confirmation When"), vBox);
|
||||||
m_confirmMoveToTrash = new QCheckBox(i18nc("@option:check Ask for Confirmation When",
|
m_confirmMoveToTrash = new QCheckBox(i18nc("@option:check Ask for Confirmation When",
|
||||||
|
@ -130,16 +80,6 @@ void GeneralSettingsPage::applySettings()
|
||||||
{
|
{
|
||||||
GeneralSettings* settings = DolphinSettings::instance().generalSettings();
|
GeneralSettings* settings = DolphinSettings::instance().generalSettings();
|
||||||
|
|
||||||
const KUrl url(m_homeUrl->text());
|
|
||||||
KFileItem fileItem(S_IFDIR, KFileItem::Unknown, url);
|
|
||||||
if (url.isValid() && fileItem.isDir()) {
|
|
||||||
settings->setHomeUrl(url.prettyUrl());
|
|
||||||
}
|
|
||||||
|
|
||||||
settings->setSplitView(m_splitView->isChecked());
|
|
||||||
settings->setEditableUrl(m_editableUrl->isChecked());
|
|
||||||
settings->setFilterBar(m_filterBar->isChecked());
|
|
||||||
|
|
||||||
KSharedConfig::Ptr konqConfig = KSharedConfig::openConfig("konquerorrc", KConfig::IncludeGlobals);
|
KSharedConfig::Ptr konqConfig = KSharedConfig::openConfig("konquerorrc", KConfig::IncludeGlobals);
|
||||||
KConfigGroup trashConfig(konqConfig, "Trash");
|
KConfigGroup trashConfig(konqConfig, "Trash");
|
||||||
trashConfig.writeEntry("ConfirmTrash", m_confirmMoveToTrash->isChecked());
|
trashConfig.writeEntry("ConfirmTrash", m_confirmMoveToTrash->isChecked());
|
||||||
|
@ -163,34 +103,8 @@ void GeneralSettingsPage::restoreDefaults()
|
||||||
loadSettings();
|
loadSettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
void GeneralSettingsPage::selectHomeUrl()
|
|
||||||
{
|
|
||||||
const QString homeUrl(m_homeUrl->text());
|
|
||||||
KUrl url(KFileDialog::getExistingDirectoryUrl(homeUrl));
|
|
||||||
if (!url.isEmpty()) {
|
|
||||||
m_homeUrl->setText(url.prettyUrl());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void GeneralSettingsPage::useCurrentLocation()
|
|
||||||
{
|
|
||||||
const DolphinView* view = m_mainWindow->activeViewContainer()->view();
|
|
||||||
m_homeUrl->setText(view->url().prettyUrl());
|
|
||||||
}
|
|
||||||
|
|
||||||
void GeneralSettingsPage::useDefaultLocation()
|
|
||||||
{
|
|
||||||
m_homeUrl->setText("file://" + QDir::homePath());
|
|
||||||
}
|
|
||||||
|
|
||||||
void GeneralSettingsPage::loadSettings()
|
void GeneralSettingsPage::loadSettings()
|
||||||
{
|
{
|
||||||
GeneralSettings* settings = DolphinSettings::instance().generalSettings();
|
|
||||||
m_homeUrl->setText(settings->homeUrl());
|
|
||||||
m_splitView->setChecked(settings->splitView());
|
|
||||||
m_editableUrl->setChecked(settings->editableUrl());
|
|
||||||
m_filterBar->setChecked(settings->filterBar());
|
|
||||||
|
|
||||||
KSharedConfig::Ptr konqConfig = KSharedConfig::openConfig("konquerorrc", KConfig::IncludeGlobals);
|
KSharedConfig::Ptr konqConfig = KSharedConfig::openConfig("konquerorrc", KConfig::IncludeGlobals);
|
||||||
const KConfigGroup trashConfig(konqConfig, "Trash");
|
const KConfigGroup trashConfig(konqConfig, "Trash");
|
||||||
m_confirmMoveToTrash->setChecked(trashConfig.readEntry("ConfirmTrash", false));
|
m_confirmMoveToTrash->setChecked(trashConfig.readEntry("ConfirmTrash", false));
|
||||||
|
@ -199,6 +113,7 @@ void GeneralSettingsPage::loadSettings()
|
||||||
const KConfigGroup kdeConfig(KGlobal::config(), "KDE");
|
const KConfigGroup kdeConfig(KGlobal::config(), "KDE");
|
||||||
m_showDeleteCommand->setChecked(kdeConfig.readEntry("ShowDeleteCommand", false));
|
m_showDeleteCommand->setChecked(kdeConfig.readEntry("ShowDeleteCommand", false));
|
||||||
|
|
||||||
|
GeneralSettings* settings = DolphinSettings::instance().generalSettings();
|
||||||
m_browseThroughArchives->setChecked(settings->browseThroughArchives());
|
m_browseThroughArchives->setChecked(settings->browseThroughArchives());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -28,9 +28,6 @@ class QCheckBox;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Page for the 'General' settings of the Dolphin settings dialog.
|
* @brief Page for the 'General' settings of the Dolphin settings dialog.
|
||||||
*
|
|
||||||
* The general settings allow to set the home URL and to configure the
|
|
||||||
* state of the view mode, split mode and the filter bar when starting Dolphin.
|
|
||||||
*/
|
*/
|
||||||
class GeneralSettingsPage : public SettingsPageBase
|
class GeneralSettingsPage : public SettingsPageBase
|
||||||
{
|
{
|
||||||
|
@ -46,22 +43,10 @@ public:
|
||||||
/** @see SettingsPageBase::restoreDefaults() */
|
/** @see SettingsPageBase::restoreDefaults() */
|
||||||
virtual void restoreDefaults();
|
virtual void restoreDefaults();
|
||||||
|
|
||||||
private slots:
|
|
||||||
void selectHomeUrl();
|
|
||||||
void useCurrentLocation();
|
|
||||||
void useDefaultLocation();
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void loadSettings();
|
void loadSettings();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
DolphinMainWindow* m_mainWindow;
|
|
||||||
QLineEdit* m_homeUrl;
|
|
||||||
|
|
||||||
QCheckBox* m_splitView;
|
|
||||||
QCheckBox* m_editableUrl;
|
|
||||||
QCheckBox* m_filterBar;
|
|
||||||
|
|
||||||
QCheckBox* m_showDeleteCommand;
|
QCheckBox* m_showDeleteCommand;
|
||||||
QCheckBox* m_confirmMoveToTrash;
|
QCheckBox* m_confirmMoveToTrash;
|
||||||
QCheckBox* m_confirmDelete;
|
QCheckBox* m_confirmDelete;
|
||||||
|
|
159
src/startupsettingspage.cpp
Normal file
159
src/startupsettingspage.cpp
Normal file
|
@ -0,0 +1,159 @@
|
||||||
|
/***************************************************************************
|
||||||
|
* Copyright (C) 2008 by Peter Penz <peter.penz@gmx.at> *
|
||||||
|
* *
|
||||||
|
* 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 *
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or *
|
||||||
|
* (at your option) any later version. *
|
||||||
|
* *
|
||||||
|
* This program is distributed in the hope that it will be useful, *
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||||
|
* GNU General Public License for more details. *
|
||||||
|
* *
|
||||||
|
* You should have received a copy of the GNU General Public License *
|
||||||
|
* along with this program; if not, write to the *
|
||||||
|
* Free Software Foundation, Inc., *
|
||||||
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA *
|
||||||
|
***************************************************************************/
|
||||||
|
|
||||||
|
#include "startupsettingspage.h"
|
||||||
|
|
||||||
|
#include "dolphinsettings.h"
|
||||||
|
#include "dolphinmainwindow.h"
|
||||||
|
#include "dolphinview.h"
|
||||||
|
#include "dolphinviewcontainer.h"
|
||||||
|
|
||||||
|
#include "dolphin_generalsettings.h"
|
||||||
|
|
||||||
|
#include <kdialog.h>
|
||||||
|
#include <kfiledialog.h>
|
||||||
|
#include <klocale.h>
|
||||||
|
#include <kvbox.h>
|
||||||
|
|
||||||
|
#include <QCheckBox>
|
||||||
|
#include <QGroupBox>
|
||||||
|
#include <QLabel>
|
||||||
|
#include <QLineEdit>
|
||||||
|
#include <QPushButton>
|
||||||
|
#include <QRadioButton>
|
||||||
|
|
||||||
|
StartupSettingsPage::StartupSettingsPage(DolphinMainWindow* mainWin, QWidget* parent) :
|
||||||
|
SettingsPageBase(parent),
|
||||||
|
m_mainWindow(mainWin),
|
||||||
|
m_homeUrl(0),
|
||||||
|
m_splitView(0),
|
||||||
|
m_editableUrl(0),
|
||||||
|
m_filterBar(0)
|
||||||
|
{
|
||||||
|
const int spacing = KDialog::spacingHint();
|
||||||
|
|
||||||
|
QVBoxLayout* topLayout = new QVBoxLayout(this);
|
||||||
|
KVBox* vBox = new KVBox(this);
|
||||||
|
vBox->setSpacing(spacing);
|
||||||
|
|
||||||
|
// create 'Home URL' editor
|
||||||
|
QGroupBox* homeBox = new QGroupBox(i18nc("@title:group", "Home Folder"), vBox);
|
||||||
|
|
||||||
|
KHBox* homeUrlBox = new KHBox(homeBox);
|
||||||
|
homeUrlBox->setSpacing(spacing);
|
||||||
|
|
||||||
|
new QLabel(i18nc("@label:textbox", "Location:"), homeUrlBox);
|
||||||
|
m_homeUrl = new QLineEdit(homeUrlBox);
|
||||||
|
|
||||||
|
QPushButton* selectHomeUrlButton = new QPushButton(KIcon("folder-open"), QString(), homeUrlBox);
|
||||||
|
connect(selectHomeUrlButton, SIGNAL(clicked()),
|
||||||
|
this, SLOT(selectHomeUrl()));
|
||||||
|
|
||||||
|
KHBox* buttonBox = new KHBox(homeBox);
|
||||||
|
buttonBox->setSpacing(spacing);
|
||||||
|
|
||||||
|
QPushButton* useCurrentButton = new QPushButton(i18nc("@action:button", "Use Current Location"), buttonBox);
|
||||||
|
connect(useCurrentButton, SIGNAL(clicked()),
|
||||||
|
this, SLOT(useCurrentLocation()));
|
||||||
|
QPushButton* useDefaultButton = new QPushButton(i18nc("@action:button", "Use Default Location"), buttonBox);
|
||||||
|
connect(useDefaultButton, SIGNAL(clicked()),
|
||||||
|
this, SLOT(useDefaultLocation()));
|
||||||
|
|
||||||
|
QVBoxLayout* homeBoxLayout = new QVBoxLayout(homeBox);
|
||||||
|
homeBoxLayout->addWidget(homeUrlBox);
|
||||||
|
homeBoxLayout->addWidget(buttonBox);
|
||||||
|
|
||||||
|
QGroupBox* startBox = new QGroupBox(i18nc("@title:group", "Settings"), vBox);
|
||||||
|
|
||||||
|
// create 'Split view', 'Editable location' and 'Filter bar' checkboxes
|
||||||
|
m_splitView = new QCheckBox(i18nc("@option:check Startup Settings", "Split view mode"), startBox);
|
||||||
|
m_editableUrl = new QCheckBox(i18nc("@option:check Startup Settings", "Editable location bar"), startBox);
|
||||||
|
m_filterBar = new QCheckBox(i18nc("@option:check Startup Settings", "Show filter bar"),startBox);
|
||||||
|
|
||||||
|
QVBoxLayout* startBoxLayout = new QVBoxLayout(startBox);
|
||||||
|
startBoxLayout->addWidget(m_splitView);
|
||||||
|
startBoxLayout->addWidget(m_editableUrl);
|
||||||
|
startBoxLayout->addWidget(m_filterBar);
|
||||||
|
|
||||||
|
// Add a dummy widget with no restriction regarding
|
||||||
|
// a vertical resizing. This assures that the dialog layout
|
||||||
|
// is not stretched vertically.
|
||||||
|
new QWidget(vBox);
|
||||||
|
|
||||||
|
topLayout->addWidget(vBox);
|
||||||
|
|
||||||
|
loadSettings();
|
||||||
|
}
|
||||||
|
|
||||||
|
StartupSettingsPage::~StartupSettingsPage()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void StartupSettingsPage::applySettings()
|
||||||
|
{
|
||||||
|
GeneralSettings* settings = DolphinSettings::instance().generalSettings();
|
||||||
|
|
||||||
|
const KUrl url(m_homeUrl->text());
|
||||||
|
KFileItem fileItem(S_IFDIR, KFileItem::Unknown, url);
|
||||||
|
if (url.isValid() && fileItem.isDir()) {
|
||||||
|
settings->setHomeUrl(url.prettyUrl());
|
||||||
|
}
|
||||||
|
|
||||||
|
settings->setSplitView(m_splitView->isChecked());
|
||||||
|
settings->setEditableUrl(m_editableUrl->isChecked());
|
||||||
|
settings->setFilterBar(m_filterBar->isChecked());
|
||||||
|
}
|
||||||
|
|
||||||
|
void StartupSettingsPage::restoreDefaults()
|
||||||
|
{
|
||||||
|
GeneralSettings* settings = DolphinSettings::instance().generalSettings();
|
||||||
|
settings->setDefaults();
|
||||||
|
loadSettings();
|
||||||
|
}
|
||||||
|
|
||||||
|
void StartupSettingsPage::selectHomeUrl()
|
||||||
|
{
|
||||||
|
const QString homeUrl = m_homeUrl->text();
|
||||||
|
KUrl url = KFileDialog::getExistingDirectoryUrl(homeUrl);
|
||||||
|
if (!url.isEmpty()) {
|
||||||
|
m_homeUrl->setText(url.prettyUrl());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void StartupSettingsPage::useCurrentLocation()
|
||||||
|
{
|
||||||
|
const DolphinView* view = m_mainWindow->activeViewContainer()->view();
|
||||||
|
m_homeUrl->setText(view->url().prettyUrl());
|
||||||
|
}
|
||||||
|
|
||||||
|
void StartupSettingsPage::useDefaultLocation()
|
||||||
|
{
|
||||||
|
m_homeUrl->setText("file://" + QDir::homePath());
|
||||||
|
}
|
||||||
|
|
||||||
|
void StartupSettingsPage::loadSettings()
|
||||||
|
{
|
||||||
|
GeneralSettings* settings = DolphinSettings::instance().generalSettings();
|
||||||
|
m_homeUrl->setText(settings->homeUrl());
|
||||||
|
m_splitView->setChecked(settings->splitView());
|
||||||
|
m_editableUrl->setChecked(settings->editableUrl());
|
||||||
|
m_filterBar->setChecked(settings->filterBar());
|
||||||
|
}
|
||||||
|
|
||||||
|
#include "startupsettingspage.moc"
|
65
src/startupsettingspage.h
Normal file
65
src/startupsettingspage.h
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
/***************************************************************************
|
||||||
|
* Copyright (C) 2008 by Peter Penz <peter.penz@gmx.at> *
|
||||||
|
* *
|
||||||
|
* 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 *
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or *
|
||||||
|
* (at your option) any later version. *
|
||||||
|
* *
|
||||||
|
* This program is distributed in the hope that it will be useful, *
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||||
|
* GNU General Public License for more details. *
|
||||||
|
* *
|
||||||
|
* You should have received a copy of the GNU General Public License *
|
||||||
|
* along with this program; if not, write to the *
|
||||||
|
* Free Software Foundation, Inc., *
|
||||||
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA *
|
||||||
|
***************************************************************************/
|
||||||
|
#ifndef STARTUPSETTINGSPAGE_H
|
||||||
|
#define STARTUPSETTINGSPAGE_H
|
||||||
|
|
||||||
|
#include <settingspagebase.h>
|
||||||
|
|
||||||
|
class DolphinMainWindow;
|
||||||
|
class QLineEdit;
|
||||||
|
class QCheckBox;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Page for the 'Startup' settings of the Dolphin settings dialog.
|
||||||
|
*
|
||||||
|
* The startup settings allow to set the home URL and to configure the
|
||||||
|
* state of the view mode, split mode and the filter bar when starting Dolphin.
|
||||||
|
*/
|
||||||
|
class StartupSettingsPage : public SettingsPageBase
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
StartupSettingsPage(DolphinMainWindow* mainWindow, QWidget* parent);
|
||||||
|
virtual ~StartupSettingsPage();
|
||||||
|
|
||||||
|
/** @see SettingsPageBase::applySettings() */
|
||||||
|
virtual void applySettings();
|
||||||
|
|
||||||
|
/** @see SettingsPageBase::restoreDefaults() */
|
||||||
|
virtual void restoreDefaults();
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
void selectHomeUrl();
|
||||||
|
void useCurrentLocation();
|
||||||
|
void useDefaultLocation();
|
||||||
|
|
||||||
|
private:
|
||||||
|
void loadSettings();
|
||||||
|
|
||||||
|
private:
|
||||||
|
DolphinMainWindow* m_mainWindow;
|
||||||
|
QLineEdit* m_homeUrl;
|
||||||
|
|
||||||
|
QCheckBox* m_splitView;
|
||||||
|
QCheckBox* m_editableUrl;
|
||||||
|
QCheckBox* m_filterBar;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
Loading…
Reference in a new issue