mirror of
https://invent.kde.org/system/dolphin
synced 2024-07-04 17:30:55 +00:00
Dolphin settings revamp
It includes a move of the settings in the Navigation and Startup sections to the Interface (formerly Behavior) section. It also includes a new tab in the View (formerly View Mode) section, called General where some settings regarding Display style, Browsing and Miscellaneous settings The Interface section has new tabs named Folders & Tabs and Status & Location bars respectively where most of the Startup and Navigation settings moved. The `dolphin/kcms/kcm_dolphinnavigation` kcm is removed.
This commit is contained in:
parent
f413e83a22
commit
489b56b68b
|
@ -288,25 +288,24 @@ target_sources(dolphinstatic PRIVATE
|
|||
selectionmode/bottombar.cpp
|
||||
selectionmode/bottombarcontentscontainer.cpp
|
||||
selectionmode/topbar.cpp
|
||||
settings/general/behaviorsettingspage.cpp
|
||||
settings/general/configurepreviewplugindialog.cpp
|
||||
settings/general/confirmationssettingspage.cpp
|
||||
settings/general/generalsettingspage.cpp
|
||||
settings/general/previewssettingspage.cpp
|
||||
settings/general/statusbarsettingspage.cpp
|
||||
settings/interface/folderstabssettingspage.cpp
|
||||
settings/interface/statusandlocationbarssettingspage.cpp
|
||||
settings/interface/configurepreviewplugindialog.cpp
|
||||
settings/interface/confirmationssettingspage.cpp
|
||||
settings/interface/interfacesettingspage.cpp
|
||||
settings/interface/previewssettingspage.cpp
|
||||
settings/dolphinsettingsdialog.cpp
|
||||
settings/navigation/navigationsettingspage.cpp
|
||||
settings/contextmenu/contextmenusettingspage.cpp
|
||||
settings/settingspagebase.cpp
|
||||
settings/serviceitemdelegate.cpp
|
||||
settings/servicemodel.cpp
|
||||
settings/startup/startupsettingspage.cpp
|
||||
settings/trash/trashsettingspage.cpp
|
||||
settings/viewmodes/dolphinfontrequester.cpp
|
||||
settings/viewmodes/viewsettingspage.cpp
|
||||
settings/viewmodes/viewmodesettings.cpp
|
||||
settings/viewmodes/viewsettingstab.cpp
|
||||
settings/viewmodes/contentdisplaytab.cpp
|
||||
settings/viewmodes/generalviewsettingspage.cpp
|
||||
statusbar/dolphinstatusbar.cpp
|
||||
statusbar/mountpointobserver.cpp
|
||||
statusbar/mountpointobservercache.cpp
|
||||
|
@ -348,25 +347,24 @@ target_sources(dolphinstatic PRIVATE
|
|||
selectionmode/bottombar.h
|
||||
selectionmode/bottombarcontentscontainer.h
|
||||
selectionmode/topbar.h
|
||||
settings/general/behaviorsettingspage.h
|
||||
settings/general/configurepreviewplugindialog.h
|
||||
settings/general/confirmationssettingspage.h
|
||||
settings/general/generalsettingspage.h
|
||||
settings/general/previewssettingspage.h
|
||||
settings/general/statusbarsettingspage.h
|
||||
settings/interface/folderstabssettingspage.h
|
||||
settings/interface/statusandlocationbarssettingspage.h
|
||||
settings/interface/configurepreviewplugindialog.h
|
||||
settings/interface/confirmationssettingspage.h
|
||||
settings/interface/interfacesettingspage.h
|
||||
settings/interface/previewssettingspage.h
|
||||
settings/dolphinsettingsdialog.h
|
||||
settings/navigation/navigationsettingspage.h
|
||||
settings/contextmenu/contextmenusettingspage.h
|
||||
settings/settingspagebase.h
|
||||
settings/serviceitemdelegate.h
|
||||
settings/servicemodel.h
|
||||
settings/startup/startupsettingspage.h
|
||||
settings/trash/trashsettingspage.h
|
||||
settings/viewmodes/dolphinfontrequester.h
|
||||
settings/viewmodes/viewsettingspage.h
|
||||
settings/viewmodes/viewmodesettings.h
|
||||
settings/viewmodes/viewsettingstab.h
|
||||
settings/viewmodes/contentdisplaytab.h
|
||||
settings/viewmodes/generalviewsettingspage.h
|
||||
statusbar/dolphinstatusbar.h
|
||||
statusbar/mountpointobserver.h
|
||||
statusbar/mountpointobservercache.h
|
||||
|
@ -500,7 +498,6 @@ install(TARGETS dolphin ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
|
|||
if(NOT WIN32)
|
||||
# The settings are still accessible from the hamburger menu
|
||||
add_library(kcm_dolphinviewmodes MODULE)
|
||||
add_library(kcm_dolphinnavigation MODULE)
|
||||
add_library(kcm_dolphingeneral MODULE)
|
||||
|
||||
target_sources(kcm_dolphinviewmodes PRIVATE
|
||||
|
@ -515,32 +512,37 @@ if(NOT WIN32)
|
|||
settings/viewmodes/viewsettingstab.h
|
||||
views/zoomlevelinfo.h)
|
||||
|
||||
target_sources(kcm_dolphinnavigation PRIVATE
|
||||
settings/kcm/kcmdolphinnavigation.cpp
|
||||
settings/navigation/navigationsettingspage.cpp
|
||||
settings/settingspagebase.cpp
|
||||
settings/kcm/kcmdolphinnavigation.h
|
||||
settings/navigation/navigationsettingspage.h
|
||||
settings/settingspagebase.h
|
||||
)
|
||||
|
||||
target_sources(kcm_dolphingeneral PRIVATE
|
||||
settings/kcm/kcmdolphingeneral.cpp
|
||||
settings/general/behaviorsettingspage.cpp
|
||||
settings/general/previewssettingspage.cpp
|
||||
settings/general/configurepreviewplugindialog.cpp
|
||||
settings/general/confirmationssettingspage.cpp
|
||||
settings/interface/folderstabssettingspage.cpp
|
||||
settings/interface/statusandlocationbarssettingspage.cpp
|
||||
settings/interface/previewssettingspage.cpp
|
||||
settings/interface/configurepreviewplugindialog.cpp
|
||||
settings/interface/confirmationssettingspage.cpp
|
||||
settings/settingspagebase.cpp
|
||||
settings/serviceitemdelegate.cpp
|
||||
settings/servicemodel.cpp
|
||||
dolphin_generalsettings.cpp
|
||||
dolphindebug.cpp
|
||||
dolphinmainwindowinterface.cpp
|
||||
views/viewproperties.cpp
|
||||
dolphin_directoryviewpropertysettings.cpp
|
||||
global.cpp
|
||||
settings/kcm/kcmdolphingeneral.h
|
||||
settings/general/behaviorsettingspage.h
|
||||
settings/general/previewssettingspage.h
|
||||
settings/general/configurepreviewplugindialog.h
|
||||
settings/general/confirmationssettingspage.h
|
||||
settings/interface/folderstabssettingspage.h
|
||||
settings/interface/statusandlocationbarssettingspage.h
|
||||
settings/interface/previewssettingspage.h
|
||||
settings/interface/configurepreviewplugindialog.h
|
||||
settings/interface/confirmationssettingspage.h
|
||||
settings/settingspagebase.h
|
||||
settings/serviceitemdelegate.h
|
||||
settings/servicemodel.h
|
||||
dolphin_generalsettings.h
|
||||
dolphindebug.h
|
||||
dolphinmainwindowinterface.h
|
||||
views/viewproperties.h
|
||||
dolphin_directoryviewpropertysettings.h
|
||||
global.h
|
||||
)
|
||||
|
||||
kconfig_add_kcfg_files(kcm_dolphinviewmodes
|
||||
|
@ -553,20 +555,15 @@ if(NOT WIN32)
|
|||
settings/dolphin_versioncontrolsettings.kcfgc
|
||||
)
|
||||
|
||||
kconfig_add_kcfg_files(kcm_dolphinnavigation
|
||||
settings/dolphin_generalsettings.kcfgc)
|
||||
|
||||
kconfig_add_kcfg_files(kcm_dolphingeneral
|
||||
settings/dolphin_generalsettings.kcfgc)
|
||||
|
||||
target_link_libraries(kcm_dolphinviewmodes dolphinprivate)
|
||||
target_link_libraries(kcm_dolphinnavigation dolphinprivate)
|
||||
target_link_libraries(kcm_dolphingeneral dolphinprivate)
|
||||
|
||||
install( FILES org.kde.dolphin.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR} )
|
||||
|
||||
install(TARGETS kcm_dolphinviewmodes DESTINATION ${KDE_INSTALL_PLUGINDIR}/dolphin/kcms )
|
||||
install(TARGETS kcm_dolphinnavigation DESTINATION ${KDE_INSTALL_PLUGINDIR}/dolphin/kcms )
|
||||
install(TARGETS kcm_dolphingeneral DESTINATION ${KDE_INSTALL_PLUGINDIR}/dolphin/kcms )
|
||||
endif()
|
||||
|
||||
|
|
|
@ -10,9 +10,7 @@
|
|||
#include "contextmenu/contextmenusettingspage.h"
|
||||
#include "dolphin_generalsettings.h"
|
||||
#include "dolphinmainwindow.h"
|
||||
#include "general/generalsettingspage.h"
|
||||
#include "navigation/navigationsettingspage.h"
|
||||
#include "startup/startupsettingspage.h"
|
||||
#include "interface/interfacesettingspage.h"
|
||||
#include "trash/trashsettingspage.h"
|
||||
#include "viewmodes/viewsettingspage.h"
|
||||
#if HAVE_KUSERFEEDBACK
|
||||
|
@ -50,30 +48,18 @@ DolphinSettingsDialog::DolphinSettingsDialog(const QUrl &url, QWidget *parent, K
|
|||
connect(box->button(QDialogButtonBox::Apply), &QAbstractButton::clicked, this, &DolphinSettingsDialog::applySettings);
|
||||
connect(box->button(QDialogButtonBox::RestoreDefaults), &QAbstractButton::clicked, this, &DolphinSettingsDialog::restoreDefaults);
|
||||
|
||||
// General
|
||||
GeneralSettingsPage *generalSettingsPage = new GeneralSettingsPage(url, this);
|
||||
KPageWidgetItem *generalSettingsFrame = addPage(generalSettingsPage, i18nc("@title:group General settings", "General"));
|
||||
generalSettingsFrame->setIcon(QIcon::fromTheme(QStringLiteral("system-file-manager")));
|
||||
connect(generalSettingsPage, &GeneralSettingsPage::changed, this, &DolphinSettingsDialog::enableApply);
|
||||
// Interface
|
||||
InterfaceSettingsPage *interfaceSettingsPage = new InterfaceSettingsPage(this);
|
||||
KPageWidgetItem *interfaceSettingsFrame = addPage(interfaceSettingsPage, i18nc("@title:group Interface settings", "Interface"));
|
||||
interfaceSettingsFrame->setIcon(QIcon::fromTheme(QStringLiteral("system-file-manager")));
|
||||
connect(interfaceSettingsPage, &InterfaceSettingsPage::changed, this, &DolphinSettingsDialog::enableApply);
|
||||
|
||||
// Startup
|
||||
StartupSettingsPage *startupSettingsPage = new StartupSettingsPage(url, this);
|
||||
KPageWidgetItem *startupSettingsFrame = addPage(startupSettingsPage, i18nc("@title:group", "Startup"));
|
||||
startupSettingsFrame->setIcon(QIcon::fromTheme(QStringLiteral("preferences-desktop-launch-feedback")));
|
||||
connect(startupSettingsPage, &StartupSettingsPage::changed, this, &DolphinSettingsDialog::enableApply);
|
||||
|
||||
// View Modes
|
||||
ViewSettingsPage *viewSettingsPage = new ViewSettingsPage(this);
|
||||
KPageWidgetItem *viewSettingsFrame = addPage(viewSettingsPage, i18nc("@title:group", "View Modes"));
|
||||
// View
|
||||
ViewSettingsPage *viewSettingsPage = new ViewSettingsPage(url, this);
|
||||
KPageWidgetItem *viewSettingsFrame = addPage(viewSettingsPage, i18nc("@title:group", "View"));
|
||||
viewSettingsFrame->setIcon(QIcon::fromTheme(QStringLiteral("preferences-desktop-icons")));
|
||||
connect(viewSettingsPage, &ViewSettingsPage::changed, this, &DolphinSettingsDialog::enableApply);
|
||||
|
||||
// Navigation
|
||||
NavigationSettingsPage *navigationSettingsPage = new NavigationSettingsPage(this);
|
||||
KPageWidgetItem *navigationSettingsFrame = addPage(navigationSettingsPage, i18nc("@title:group", "Navigation"));
|
||||
navigationSettingsFrame->setIcon(QIcon::fromTheme(QStringLiteral("preferences-desktop-navigation")));
|
||||
connect(navigationSettingsPage, &NavigationSettingsPage::changed, this, &DolphinSettingsDialog::enableApply);
|
||||
|
||||
// Context Menu
|
||||
auto contextMenuSettingsPage = new ContextMenuSettingsPage(this,
|
||||
actions,
|
||||
|
@ -113,10 +99,8 @@ DolphinSettingsDialog::DolphinSettingsDialog(const QUrl &url, QWidget *parent, K
|
|||
}
|
||||
#endif
|
||||
|
||||
m_pages.append(generalSettingsPage);
|
||||
m_pages.append(startupSettingsPage);
|
||||
m_pages.append(interfaceSettingsPage);
|
||||
m_pages.append(viewSettingsPage);
|
||||
m_pages.append(navigationSettingsPage);
|
||||
m_pages.append(contextMenuSettingsPage);
|
||||
if (trashSettingsPage) {
|
||||
m_pages.append(trashSettingsPage);
|
||||
|
|
|
@ -1,195 +0,0 @@
|
|||
/*
|
||||
* SPDX-FileCopyrightText: 2006 Peter Penz (peter.penz@gmx.at) and Patrice Tremblay
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
|
||||
#include "behaviorsettingspage.h"
|
||||
|
||||
#include "global.h"
|
||||
#include "views/viewproperties.h"
|
||||
|
||||
#include <KLocalizedString>
|
||||
|
||||
#include <QButtonGroup>
|
||||
#include <QCheckBox>
|
||||
#include <QFormLayout>
|
||||
#include <QRadioButton>
|
||||
#include <QSpacerItem>
|
||||
|
||||
BehaviorSettingsPage::BehaviorSettingsPage(const QUrl &url, QWidget *parent)
|
||||
: SettingsPageBase(parent)
|
||||
, m_url(url)
|
||||
, m_localViewProps(nullptr)
|
||||
, m_globalViewProps(nullptr)
|
||||
, m_showToolTips(nullptr)
|
||||
, m_showSelectionToggle(nullptr)
|
||||
, m_naturalSorting(nullptr)
|
||||
, m_caseSensitiveSorting(nullptr)
|
||||
, m_caseInsensitiveSorting(nullptr)
|
||||
, m_renameInline(nullptr)
|
||||
, m_useTabForSplitViewSwitch(nullptr)
|
||||
{
|
||||
QFormLayout *topLayout = new QFormLayout(this);
|
||||
|
||||
// View properties
|
||||
m_globalViewProps = new QRadioButton(i18nc("@option:radio", "Use common display style for all folders"));
|
||||
m_localViewProps = new QRadioButton(i18nc("@option:radio", "Remember display style for each folder"));
|
||||
m_localViewProps->setToolTip(i18nc("@info", "Dolphin will create a hidden .directory file in each folder you change view properties for."));
|
||||
|
||||
QButtonGroup *viewGroup = new QButtonGroup(this);
|
||||
viewGroup->addButton(m_globalViewProps);
|
||||
viewGroup->addButton(m_localViewProps);
|
||||
topLayout->addRow(i18nc("@title:group", "View: "), m_globalViewProps);
|
||||
topLayout->addRow(QString(), m_localViewProps);
|
||||
|
||||
topLayout->addItem(new QSpacerItem(0, Dolphin::VERTICAL_SPACER_HEIGHT, QSizePolicy::Fixed, QSizePolicy::Fixed));
|
||||
|
||||
// Sorting properties
|
||||
m_naturalSorting = new QRadioButton(i18nc("option:radio", "Natural"));
|
||||
m_caseInsensitiveSorting = new QRadioButton(i18nc("option:radio", "Alphabetical, case insensitive"));
|
||||
m_caseSensitiveSorting = new QRadioButton(i18nc("option:radio", "Alphabetical, case sensitive"));
|
||||
|
||||
QButtonGroup *sortingModeGroup = new QButtonGroup(this);
|
||||
sortingModeGroup->addButton(m_naturalSorting);
|
||||
sortingModeGroup->addButton(m_caseInsensitiveSorting);
|
||||
sortingModeGroup->addButton(m_caseSensitiveSorting);
|
||||
topLayout->addRow(i18nc("@title:group", "Sorting mode: "), m_naturalSorting);
|
||||
topLayout->addRow(QString(), m_caseInsensitiveSorting);
|
||||
topLayout->addRow(QString(), m_caseSensitiveSorting);
|
||||
|
||||
// Split Views
|
||||
topLayout->addItem(new QSpacerItem(0, Dolphin::VERTICAL_SPACER_HEIGHT, QSizePolicy::Fixed, QSizePolicy::Fixed));
|
||||
|
||||
// 'Switch between panes of split views with tab key'
|
||||
m_useTabForSplitViewSwitch = new QCheckBox(i18nc("option:check split view panes", "Switch between panes with Tab key"));
|
||||
topLayout->addRow(i18nc("@title:group", "Split view: "), m_useTabForSplitViewSwitch);
|
||||
|
||||
// 'Close active pane when turning off split view'
|
||||
m_closeActiveSplitView = new QCheckBox(i18nc("option:check", "Turning off split view closes active pane"));
|
||||
topLayout->addRow(QString(), m_closeActiveSplitView);
|
||||
m_closeActiveSplitView->setToolTip(i18n("When deactivated, turning off split view will close the inactive pane"));
|
||||
|
||||
topLayout->addItem(new QSpacerItem(0, Dolphin::VERTICAL_SPACER_HEIGHT, QSizePolicy::Fixed, QSizePolicy::Fixed));
|
||||
|
||||
#if HAVE_BALOO
|
||||
// 'Show tooltips'
|
||||
m_showToolTips = new QCheckBox(i18nc("@option:check", "Show tooltips"));
|
||||
topLayout->addRow(i18nc("@title:group", "Miscellaneous: "), m_showToolTips);
|
||||
#endif
|
||||
|
||||
// 'Show selection marker'
|
||||
m_showSelectionToggle = new QCheckBox(i18nc("@option:check", "Show selection marker"));
|
||||
#if HAVE_BALOO
|
||||
topLayout->addRow(QString(), m_showSelectionToggle);
|
||||
#else
|
||||
topLayout->addRow(i18nc("@title:group", "Miscellaneous: "), m_showSelectionToggle);
|
||||
#endif
|
||||
|
||||
// 'Inline renaming of items'
|
||||
m_renameInline = new QCheckBox(i18nc("option:check", "Rename inline"));
|
||||
topLayout->addRow(QString(), m_renameInline);
|
||||
|
||||
loadSettings();
|
||||
|
||||
connect(m_localViewProps, &QRadioButton::toggled, this, &BehaviorSettingsPage::changed);
|
||||
connect(m_globalViewProps, &QRadioButton::toggled, this, &BehaviorSettingsPage::changed);
|
||||
#if HAVE_BALOO
|
||||
connect(m_showToolTips, &QCheckBox::toggled, this, &BehaviorSettingsPage::changed);
|
||||
#endif
|
||||
connect(m_showSelectionToggle, &QCheckBox::toggled, this, &BehaviorSettingsPage::changed);
|
||||
connect(m_naturalSorting, &QRadioButton::toggled, this, &BehaviorSettingsPage::changed);
|
||||
connect(m_caseInsensitiveSorting, &QRadioButton::toggled, this, &BehaviorSettingsPage::changed);
|
||||
connect(m_caseSensitiveSorting, &QRadioButton::toggled, this, &BehaviorSettingsPage::changed);
|
||||
connect(m_renameInline, &QCheckBox::toggled, this, &BehaviorSettingsPage::changed);
|
||||
connect(m_useTabForSplitViewSwitch, &QCheckBox::toggled, this, &BehaviorSettingsPage::changed);
|
||||
connect(m_closeActiveSplitView, &QCheckBox::toggled, this, &BehaviorSettingsPage::changed);
|
||||
}
|
||||
|
||||
BehaviorSettingsPage::~BehaviorSettingsPage()
|
||||
{
|
||||
}
|
||||
|
||||
void BehaviorSettingsPage::applySettings()
|
||||
{
|
||||
GeneralSettings *settings = GeneralSettings::self();
|
||||
ViewProperties props(m_url); // read current view properties
|
||||
|
||||
const bool useGlobalViewProps = m_globalViewProps->isChecked();
|
||||
settings->setGlobalViewProps(useGlobalViewProps);
|
||||
#if HAVE_BALOO
|
||||
settings->setShowToolTips(m_showToolTips->isChecked());
|
||||
#endif
|
||||
settings->setShowSelectionToggle(m_showSelectionToggle->isChecked());
|
||||
setSortingChoiceValue(settings);
|
||||
settings->setRenameInline(m_renameInline->isChecked());
|
||||
settings->setUseTabForSwitchingSplitView(m_useTabForSplitViewSwitch->isChecked());
|
||||
settings->setCloseActiveSplitView(m_closeActiveSplitView->isChecked());
|
||||
settings->save();
|
||||
|
||||
if (useGlobalViewProps) {
|
||||
// Remember the global view properties by applying the current view properties.
|
||||
// It is important that GeneralSettings::globalViewProps() is set before
|
||||
// the class ViewProperties is used, as ViewProperties uses this setting
|
||||
// to find the destination folder for storing the view properties.
|
||||
ViewProperties globalProps(m_url);
|
||||
globalProps.setDirProperties(props);
|
||||
}
|
||||
}
|
||||
|
||||
void BehaviorSettingsPage::restoreDefaults()
|
||||
{
|
||||
GeneralSettings *settings = GeneralSettings::self();
|
||||
settings->useDefaults(true);
|
||||
loadSettings();
|
||||
settings->useDefaults(false);
|
||||
}
|
||||
|
||||
void BehaviorSettingsPage::loadSettings()
|
||||
{
|
||||
const bool useGlobalViewProps = GeneralSettings::globalViewProps();
|
||||
m_localViewProps->setChecked(!useGlobalViewProps);
|
||||
m_globalViewProps->setChecked(useGlobalViewProps);
|
||||
|
||||
#if HAVE_BALOO
|
||||
m_showToolTips->setChecked(GeneralSettings::showToolTips());
|
||||
#endif
|
||||
m_showSelectionToggle->setChecked(GeneralSettings::showSelectionToggle());
|
||||
m_renameInline->setChecked(GeneralSettings::renameInline());
|
||||
m_useTabForSplitViewSwitch->setChecked(GeneralSettings::useTabForSwitchingSplitView());
|
||||
m_closeActiveSplitView->setChecked(GeneralSettings::closeActiveSplitView());
|
||||
|
||||
loadSortingChoiceSettings();
|
||||
}
|
||||
|
||||
void BehaviorSettingsPage::setSortingChoiceValue(GeneralSettings *settings)
|
||||
{
|
||||
using Choice = GeneralSettings::EnumSortingChoice;
|
||||
if (m_naturalSorting->isChecked()) {
|
||||
settings->setSortingChoice(Choice::NaturalSorting);
|
||||
} else if (m_caseInsensitiveSorting->isChecked()) {
|
||||
settings->setSortingChoice(Choice::CaseInsensitiveSorting);
|
||||
} else if (m_caseSensitiveSorting->isChecked()) {
|
||||
settings->setSortingChoice(Choice::CaseSensitiveSorting);
|
||||
}
|
||||
}
|
||||
|
||||
void BehaviorSettingsPage::loadSortingChoiceSettings()
|
||||
{
|
||||
using Choice = GeneralSettings::EnumSortingChoice;
|
||||
switch (GeneralSettings::sortingChoice()) {
|
||||
case Choice::NaturalSorting:
|
||||
m_naturalSorting->setChecked(true);
|
||||
break;
|
||||
case Choice::CaseInsensitiveSorting:
|
||||
m_caseInsensitiveSorting->setChecked(true);
|
||||
break;
|
||||
case Choice::CaseSensitiveSorting:
|
||||
m_caseSensitiveSorting->setChecked(true);
|
||||
break;
|
||||
default:
|
||||
Q_UNREACHABLE();
|
||||
}
|
||||
}
|
||||
|
||||
#include "moc_behaviorsettingspage.cpp"
|
|
@ -1,77 +0,0 @@
|
|||
/*
|
||||
* SPDX-FileCopyrightText: 2009 Peter Penz <peter.penz19@gmail.com>
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
|
||||
#include "statusbarsettingspage.h"
|
||||
|
||||
#include "dolphin_generalsettings.h"
|
||||
|
||||
#include <KLocalizedString>
|
||||
|
||||
#include <QCheckBox>
|
||||
#include <QVBoxLayout>
|
||||
|
||||
StatusBarSettingsPage::StatusBarSettingsPage(QWidget *parent)
|
||||
: SettingsPageBase(parent)
|
||||
, m_showStatusBar(nullptr)
|
||||
, m_showZoomSlider(nullptr)
|
||||
, m_showSpaceInfo(nullptr)
|
||||
{
|
||||
m_showStatusBar = new QCheckBox(i18nc("@option:check", "Show status bar"), this);
|
||||
m_showZoomSlider = new QCheckBox(i18nc("@option:check", "Show zoom slider"), this);
|
||||
m_showSpaceInfo = new QCheckBox(i18nc("@option:check", "Show space information"), this);
|
||||
|
||||
QVBoxLayout *topLayout = new QVBoxLayout(this);
|
||||
topLayout->addWidget(m_showStatusBar);
|
||||
topLayout->addWidget(m_showZoomSlider);
|
||||
topLayout->addWidget(m_showSpaceInfo);
|
||||
topLayout->addStretch();
|
||||
|
||||
loadSettings();
|
||||
|
||||
connect(m_showStatusBar, &QCheckBox::toggled, this, &StatusBarSettingsPage::changed);
|
||||
connect(m_showStatusBar, &QCheckBox::toggled, this, &StatusBarSettingsPage::onShowStatusBarToggled);
|
||||
connect(m_showZoomSlider, &QCheckBox::toggled, this, &StatusBarSettingsPage::changed);
|
||||
connect(m_showSpaceInfo, &QCheckBox::toggled, this, &StatusBarSettingsPage::changed);
|
||||
}
|
||||
|
||||
StatusBarSettingsPage::~StatusBarSettingsPage()
|
||||
{
|
||||
}
|
||||
|
||||
void StatusBarSettingsPage::onShowStatusBarToggled()
|
||||
{
|
||||
const bool checked = m_showStatusBar->isChecked();
|
||||
m_showZoomSlider->setEnabled(checked);
|
||||
m_showSpaceInfo->setEnabled(checked);
|
||||
}
|
||||
|
||||
void StatusBarSettingsPage::applySettings()
|
||||
{
|
||||
GeneralSettings *settings = GeneralSettings::self();
|
||||
settings->setShowStatusBar(m_showStatusBar->isChecked());
|
||||
settings->setShowZoomSlider(m_showZoomSlider->isChecked());
|
||||
settings->setShowSpaceInfo(m_showSpaceInfo->isChecked());
|
||||
settings->save();
|
||||
}
|
||||
|
||||
void StatusBarSettingsPage::restoreDefaults()
|
||||
{
|
||||
GeneralSettings *settings = GeneralSettings::self();
|
||||
settings->useDefaults(true);
|
||||
loadSettings();
|
||||
settings->useDefaults(false);
|
||||
}
|
||||
|
||||
void StatusBarSettingsPage::loadSettings()
|
||||
{
|
||||
m_showStatusBar->setChecked(GeneralSettings::showStatusBar());
|
||||
m_showZoomSlider->setChecked(GeneralSettings::showZoomSlider());
|
||||
m_showSpaceInfo->setChecked(GeneralSettings::showSpaceInfo());
|
||||
|
||||
onShowStatusBarToggled();
|
||||
}
|
||||
|
||||
#include "moc_statusbarsettingspage.cpp"
|
|
@ -1,40 +0,0 @@
|
|||
/*
|
||||
* SPDX-FileCopyrightText: 2009 Peter Penz <peter.penz19@gmail.com>
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
#ifndef STATUSBARSETTINGSPAGE_H
|
||||
#define STATUSBARSETTINGSPAGE_H
|
||||
|
||||
#include "settings/settingspagebase.h"
|
||||
|
||||
class QCheckBox;
|
||||
|
||||
/**
|
||||
* @brief Tab page for the 'Status Bar' settings of the Dolphin settings dialog.
|
||||
*/
|
||||
class StatusBarSettingsPage : public SettingsPageBase
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit StatusBarSettingsPage(QWidget *parent);
|
||||
~StatusBarSettingsPage() override;
|
||||
|
||||
/** @see SettingsPageBase::applySettings() */
|
||||
void applySettings() override;
|
||||
|
||||
/** @see SettingsPageBase::restoreDefaults() */
|
||||
void restoreDefaults() override;
|
||||
|
||||
private:
|
||||
void loadSettings();
|
||||
void onShowStatusBarToggled();
|
||||
|
||||
private:
|
||||
QCheckBox *m_showStatusBar;
|
||||
QCheckBox *m_showZoomSlider;
|
||||
QCheckBox *m_showSpaceInfo;
|
||||
};
|
||||
|
||||
#endif
|
|
@ -1,12 +1,10 @@
|
|||
/*
|
||||
* SPDX-FileCopyrightText: 2008 Peter Penz <peter.penz19@gmail.com>
|
||||
* SPDX-FileCopyrightText: 2006 Peter Penz (peter.penz@gmx.at) and Patrice Tremblay
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
|
||||
#include "startupsettingspage.h"
|
||||
|
||||
#include "dolphin_generalsettings.h"
|
||||
#include "folderstabssettingspage.h"
|
||||
#include "dolphinmainwindow.h"
|
||||
#include "dolphinviewcontainer.h"
|
||||
#include "global.h"
|
||||
|
@ -24,25 +22,27 @@
|
|||
#include <QLineEdit>
|
||||
#include <QPushButton>
|
||||
#include <QRadioButton>
|
||||
#include <QSpacerItem>
|
||||
|
||||
StartupSettingsPage::StartupSettingsPage(const QUrl &url, QWidget *parent)
|
||||
FoldersTabsSettingsPage::FoldersTabsSettingsPage(QWidget *parent)
|
||||
: SettingsPageBase(parent)
|
||||
, m_url(url)
|
||||
, m_homeUrl(nullptr)
|
||||
, m_homeUrlBoxLayoutContainer(nullptr)
|
||||
, m_buttonBoxLayoutContainer(nullptr)
|
||||
, m_rememberOpenedTabsRadioButton(nullptr)
|
||||
, m_homeUrlRadioButton(nullptr)
|
||||
, m_homeUrl(nullptr)
|
||||
, m_rememberOpenedTabsRadioButton(nullptr)
|
||||
, m_openNewTabAfterLastTab(nullptr)
|
||||
, m_openNewTabAfterCurrentTab(nullptr)
|
||||
, m_splitView(nullptr)
|
||||
, m_editableUrl(nullptr)
|
||||
, m_showFullPath(nullptr)
|
||||
, m_filterBar(nullptr)
|
||||
, m_showFullPathInTitlebar(nullptr)
|
||||
, m_openExternallyCalledFolderInNewTab(nullptr)
|
||||
, m_useTabForSplitViewSwitch(nullptr)
|
||||
{
|
||||
QFormLayout *topLayout = new QFormLayout(this);
|
||||
|
||||
m_rememberOpenedTabsRadioButton = new QRadioButton(i18nc("@option:radio Startup Settings", "Folders, tabs, and window state from last time"));
|
||||
// Show on startup
|
||||
m_rememberOpenedTabsRadioButton = new QRadioButton(i18nc("@option:radio Show on startup", "Folders, tabs, and window state from last time"));
|
||||
m_homeUrlRadioButton = new QRadioButton();
|
||||
// HACK: otherwise the radio button has too much spacing in a grid layout
|
||||
m_homeUrlRadioButton->setMaximumWidth(24);
|
||||
|
@ -67,7 +67,7 @@ StartupSettingsPage::StartupSettingsPage(const QUrl &url, QWidget *parent)
|
|||
selectHomeUrlButton->setAccessibleName(i18nc("@action:button", "Select Home Location"));
|
||||
#endif
|
||||
|
||||
connect(selectHomeUrlButton, &QPushButton::clicked, this, &StartupSettingsPage::selectHomeUrl);
|
||||
connect(selectHomeUrlButton, &QPushButton::clicked, this, &FoldersTabsSettingsPage::selectHomeUrl);
|
||||
|
||||
m_buttonBoxLayoutContainer = new QWidget(this);
|
||||
QHBoxLayout *buttonBoxLayout = new QHBoxLayout(m_buttonBoxLayoutContainer);
|
||||
|
@ -75,10 +75,10 @@ StartupSettingsPage::StartupSettingsPage(const QUrl &url, QWidget *parent)
|
|||
|
||||
QPushButton *useCurrentButton = new QPushButton(i18nc("@action:button", "Use Current Location"));
|
||||
buttonBoxLayout->addWidget(useCurrentButton);
|
||||
connect(useCurrentButton, &QPushButton::clicked, this, &StartupSettingsPage::useCurrentLocation);
|
||||
connect(useCurrentButton, &QPushButton::clicked, this, &FoldersTabsSettingsPage::useCurrentLocation);
|
||||
QPushButton *useDefaultButton = new QPushButton(i18nc("@action:button", "Use Default Location"));
|
||||
buttonBoxLayout->addWidget(useDefaultButton);
|
||||
connect(useDefaultButton, &QPushButton::clicked, this, &StartupSettingsPage::useDefaultLocation);
|
||||
connect(useDefaultButton, &QPushButton::clicked, this, &FoldersTabsSettingsPage::useDefaultLocation);
|
||||
|
||||
QGridLayout *startInLocationLayout = new QGridLayout();
|
||||
startInLocationLayout->setHorizontalSpacing(0);
|
||||
|
@ -91,48 +91,73 @@ StartupSettingsPage::StartupSettingsPage(const QUrl &url, QWidget *parent)
|
|||
topLayout->addRow(QString(), startInLocationLayout);
|
||||
|
||||
topLayout->addItem(new QSpacerItem(0, Dolphin::VERTICAL_SPACER_HEIGHT, QSizePolicy::Fixed, QSizePolicy::Fixed));
|
||||
|
||||
m_splitView = new QCheckBox(i18nc("@option:check Startup Settings", "Begin in split view mode"));
|
||||
topLayout->addRow(i18n("New windows:"), m_splitView);
|
||||
m_filterBar = new QCheckBox(i18nc("@option:check Startup Settings", "Show filter bar"));
|
||||
// Opening Folders
|
||||
m_openExternallyCalledFolderInNewTab = new QCheckBox(i18nc("@option:check Opening Folders", "Keep a single Dolphin window, opening new folders in tabs"));
|
||||
topLayout->addRow(i18nc("@label:checkbox", "Opening Folders:"), m_openExternallyCalledFolderInNewTab);
|
||||
// Window
|
||||
m_showFullPathInTitlebar = new QCheckBox(i18nc("@option:check Startup Settings", "Show full path in title bar"));
|
||||
topLayout->addRow(i18nc("@label:checkbox", "Window:"), m_showFullPathInTitlebar);
|
||||
m_filterBar = new QCheckBox(i18nc("@option:check Window Startup Settings", "Show filter bar"));
|
||||
topLayout->addRow(QString(), m_filterBar);
|
||||
m_editableUrl = new QCheckBox(i18nc("@option:check Startup Settings", "Make location bar editable"));
|
||||
topLayout->addRow(QString(), m_editableUrl);
|
||||
|
||||
topLayout->addItem(new QSpacerItem(0, Dolphin::VERTICAL_SPACER_HEIGHT, QSizePolicy::Fixed, QSizePolicy::Fixed));
|
||||
|
||||
m_openExternallyCalledFolderInNewTab = new QCheckBox(i18nc("@option:check Startup Settings", "Open new folders in tabs"));
|
||||
topLayout->addRow(i18nc("@label:checkbox", "General:"), m_openExternallyCalledFolderInNewTab);
|
||||
m_showFullPath = new QCheckBox(i18nc("@option:check Startup Settings", "Show full path inside location bar"));
|
||||
topLayout->addRow(QString(), m_showFullPath);
|
||||
m_showFullPathInTitlebar = new QCheckBox(i18nc("@option:check Startup Settings", "Show full path in title bar"));
|
||||
topLayout->addRow(QString(), m_showFullPathInTitlebar);
|
||||
// Tabs properties
|
||||
m_openNewTabAfterCurrentTab = new QRadioButton(i18nc("option:radio", "After current tab"));
|
||||
m_openNewTabAfterLastTab = new QRadioButton(i18nc("option:radio", "At end of tab bar"));
|
||||
QButtonGroup *tabsBehaviorGroup = new QButtonGroup(this);
|
||||
tabsBehaviorGroup->addButton(m_openNewTabAfterCurrentTab);
|
||||
tabsBehaviorGroup->addButton(m_openNewTabAfterLastTab);
|
||||
topLayout->addRow(i18nc("@title:group", "Open new tabs: "), m_openNewTabAfterCurrentTab);
|
||||
topLayout->addRow(QString(), m_openNewTabAfterLastTab);
|
||||
|
||||
// Split Views
|
||||
topLayout->addItem(new QSpacerItem(0, Dolphin::VERTICAL_SPACER_HEIGHT, QSizePolicy::Fixed, QSizePolicy::Fixed));
|
||||
|
||||
// 'Switch between panes of split views with tab key'
|
||||
m_useTabForSplitViewSwitch = new QCheckBox(i18nc("option:check split view panes", "Switch between panes with Tab key"));
|
||||
topLayout->addRow(i18nc("@title:group", "Split view: "), m_useTabForSplitViewSwitch);
|
||||
|
||||
// 'Close active pane when turning off split view'
|
||||
m_closeActiveSplitView = new QCheckBox(i18nc("option:check", "Turning off split view closes active pane"));
|
||||
topLayout->addRow(QString(), m_closeActiveSplitView);
|
||||
m_closeActiveSplitView->setToolTip(i18n("When deactivated, turning off split view will close the inactive pane"));
|
||||
|
||||
// 'Begin in split view mode'
|
||||
m_splitView = new QCheckBox(i18nc("@option:check Startup Settings", "Begin in split view mode"));
|
||||
topLayout->addRow(i18n("New windows:"), m_splitView);
|
||||
|
||||
loadSettings();
|
||||
|
||||
updateInitialViewOptions();
|
||||
|
||||
connect(m_homeUrl, &QLineEdit::textChanged, this, &StartupSettingsPage::slotSettingsChanged);
|
||||
connect(m_rememberOpenedTabsRadioButton, &QRadioButton::toggled, this, &StartupSettingsPage::slotSettingsChanged);
|
||||
connect(m_homeUrlRadioButton, &QRadioButton::toggled, this, &StartupSettingsPage::slotSettingsChanged);
|
||||
connect(m_homeUrl, &QLineEdit::textChanged, this, &FoldersTabsSettingsPage::slotSettingsChanged);
|
||||
connect(m_rememberOpenedTabsRadioButton, &QRadioButton::toggled, this, &FoldersTabsSettingsPage::slotSettingsChanged);
|
||||
connect(m_homeUrlRadioButton, &QRadioButton::toggled, this, &FoldersTabsSettingsPage::slotSettingsChanged);
|
||||
|
||||
connect(m_splitView, &QCheckBox::toggled, this, &StartupSettingsPage::slotSettingsChanged);
|
||||
connect(m_editableUrl, &QCheckBox::toggled, this, &StartupSettingsPage::slotSettingsChanged);
|
||||
connect(m_filterBar, &QCheckBox::toggled, this, &StartupSettingsPage::slotSettingsChanged);
|
||||
connect(m_splitView, &QCheckBox::toggled, this, &FoldersTabsSettingsPage::slotSettingsChanged);
|
||||
connect(m_filterBar, &QCheckBox::toggled, this, &FoldersTabsSettingsPage::slotSettingsChanged);
|
||||
|
||||
connect(m_openExternallyCalledFolderInNewTab, &QCheckBox::toggled, this, &StartupSettingsPage::slotSettingsChanged);
|
||||
connect(m_showFullPath, &QCheckBox::toggled, this, &StartupSettingsPage::slotSettingsChanged);
|
||||
connect(m_showFullPathInTitlebar, &QCheckBox::toggled, this, &StartupSettingsPage::slotSettingsChanged);
|
||||
connect(m_openExternallyCalledFolderInNewTab, &QCheckBox::toggled, this, &FoldersTabsSettingsPage::slotSettingsChanged);
|
||||
connect(m_showFullPathInTitlebar, &QCheckBox::toggled, this, &FoldersTabsSettingsPage::slotSettingsChanged);
|
||||
|
||||
connect(m_useTabForSplitViewSwitch, &QCheckBox::toggled, this, &FoldersTabsSettingsPage::changed);
|
||||
connect(m_closeActiveSplitView, &QCheckBox::toggled, this, &FoldersTabsSettingsPage::changed);
|
||||
|
||||
connect(m_openNewTabAfterCurrentTab, &QRadioButton::toggled, this, &FoldersTabsSettingsPage::changed);
|
||||
connect(m_openNewTabAfterLastTab, &QRadioButton::toggled, this, &FoldersTabsSettingsPage::changed);
|
||||
}
|
||||
|
||||
StartupSettingsPage::~StartupSettingsPage()
|
||||
FoldersTabsSettingsPage::~FoldersTabsSettingsPage()
|
||||
{
|
||||
}
|
||||
|
||||
void StartupSettingsPage::applySettings()
|
||||
void FoldersTabsSettingsPage::applySettings()
|
||||
{
|
||||
GeneralSettings *settings = GeneralSettings::self();
|
||||
|
||||
settings->setUseTabForSwitchingSplitView(m_useTabForSplitViewSwitch->isChecked());
|
||||
settings->setCloseActiveSplitView(m_closeActiveSplitView->isChecked());
|
||||
const QUrl url(QUrl::fromUserInput(m_homeUrl->text(), QString(), QUrl::AssumeLocalFile));
|
||||
if (url.isValid() && KProtocolManager::supportsListing(url)) {
|
||||
KIO::StatJob *job = KIO::statDetails(url, KIO::StatJob::SourceSide, KIO::StatDetail::StatBasic, KIO::JobFlag::HideProgressInfo);
|
||||
|
@ -157,15 +182,16 @@ void StartupSettingsPage::applySettings()
|
|||
|
||||
settings->setRememberOpenedTabs(m_rememberOpenedTabsRadioButton->isChecked());
|
||||
settings->setSplitView(m_splitView->isChecked());
|
||||
settings->setEditableUrl(m_editableUrl->isChecked());
|
||||
settings->setFilterBar(m_filterBar->isChecked());
|
||||
settings->setOpenExternallyCalledFolderInNewTab(m_openExternallyCalledFolderInNewTab->isChecked());
|
||||
settings->setShowFullPath(m_showFullPath->isChecked());
|
||||
settings->setShowFullPathInTitlebar(m_showFullPathInTitlebar->isChecked());
|
||||
|
||||
settings->setOpenNewTabAfterLastTab(m_openNewTabAfterLastTab->isChecked());
|
||||
|
||||
settings->save();
|
||||
}
|
||||
|
||||
void StartupSettingsPage::restoreDefaults()
|
||||
void FoldersTabsSettingsPage::restoreDefaults()
|
||||
{
|
||||
GeneralSettings *settings = GeneralSettings::self();
|
||||
settings->useDefaults(true);
|
||||
|
@ -173,7 +199,7 @@ void StartupSettingsPage::restoreDefaults()
|
|||
settings->useDefaults(false);
|
||||
}
|
||||
|
||||
void StartupSettingsPage::slotSettingsChanged()
|
||||
void FoldersTabsSettingsPage::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
|
||||
|
@ -185,13 +211,13 @@ void StartupSettingsPage::slotSettingsChanged()
|
|||
Q_EMIT changed();
|
||||
}
|
||||
|
||||
void StartupSettingsPage::updateInitialViewOptions()
|
||||
void FoldersTabsSettingsPage::updateInitialViewOptions()
|
||||
{
|
||||
m_homeUrlBoxLayoutContainer->setEnabled(m_homeUrlRadioButton->isChecked());
|
||||
m_buttonBoxLayoutContainer->setEnabled(m_homeUrlRadioButton->isChecked());
|
||||
}
|
||||
|
||||
void StartupSettingsPage::selectHomeUrl()
|
||||
void FoldersTabsSettingsPage::selectHomeUrl()
|
||||
{
|
||||
const QUrl homeUrl(QUrl::fromUserInput(m_homeUrl->text(), QString(), QUrl::AssumeLocalFile));
|
||||
QUrl url = QFileDialog::getExistingDirectoryUrl(this, QString(), homeUrl);
|
||||
|
@ -201,33 +227,37 @@ void StartupSettingsPage::selectHomeUrl()
|
|||
}
|
||||
}
|
||||
|
||||
void StartupSettingsPage::useCurrentLocation()
|
||||
void FoldersTabsSettingsPage::useCurrentLocation()
|
||||
{
|
||||
m_homeUrl->setText(m_url.toDisplayString(QUrl::PreferLocalFile));
|
||||
}
|
||||
|
||||
void StartupSettingsPage::useDefaultLocation()
|
||||
void FoldersTabsSettingsPage::useDefaultLocation()
|
||||
{
|
||||
m_homeUrl->setText(QDir::homePath());
|
||||
}
|
||||
|
||||
void StartupSettingsPage::loadSettings()
|
||||
void FoldersTabsSettingsPage::loadSettings()
|
||||
{
|
||||
const QUrl url(Dolphin::homeUrl());
|
||||
m_homeUrl->setText(url.toDisplayString(QUrl::PreferLocalFile));
|
||||
m_rememberOpenedTabsRadioButton->setChecked(GeneralSettings::rememberOpenedTabs());
|
||||
m_homeUrlRadioButton->setChecked(!GeneralSettings::rememberOpenedTabs());
|
||||
m_splitView->setChecked(GeneralSettings::splitView());
|
||||
m_editableUrl->setChecked(GeneralSettings::editableUrl());
|
||||
m_showFullPath->setChecked(GeneralSettings::showFullPath());
|
||||
m_filterBar->setChecked(GeneralSettings::filterBar());
|
||||
m_showFullPathInTitlebar->setChecked(GeneralSettings::showFullPathInTitlebar());
|
||||
m_openExternallyCalledFolderInNewTab->setChecked(GeneralSettings::openExternallyCalledFolderInNewTab());
|
||||
|
||||
m_useTabForSplitViewSwitch->setChecked(GeneralSettings::useTabForSwitchingSplitView());
|
||||
m_closeActiveSplitView->setChecked(GeneralSettings::closeActiveSplitView());
|
||||
|
||||
m_openNewTabAfterLastTab->setChecked(GeneralSettings::openNewTabAfterLastTab());
|
||||
m_openNewTabAfterCurrentTab->setChecked(!m_openNewTabAfterLastTab->isChecked());
|
||||
}
|
||||
|
||||
void StartupSettingsPage::showSetDefaultDirectoryError()
|
||||
void FoldersTabsSettingsPage::showSetDefaultDirectoryError()
|
||||
{
|
||||
KMessageBox::error(this, i18nc("@info", "The location for the home folder is invalid or does not exist, it will not be applied."));
|
||||
}
|
||||
|
||||
#include "moc_startupsettingspage.cpp"
|
||||
#include "moc_folderstabssettingspage.cpp"
|
|
@ -3,30 +3,30 @@
|
|||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
#ifndef STARTUPSETTINGSPAGE_H
|
||||
#define STARTUPSETTINGSPAGE_H
|
||||
#ifndef FOLDERSTABSSETTINGSPAGE_H
|
||||
#define FOLDERSTABSSETTINGSPAGE_H
|
||||
|
||||
#include "dolphin_generalsettings.h"
|
||||
#include "settings/settingspagebase.h"
|
||||
|
||||
#include <QUrl>
|
||||
#include <qobject.h>
|
||||
|
||||
class QCheckBox;
|
||||
class QLineEdit;
|
||||
class QLabel;
|
||||
class QRadioButton;
|
||||
|
||||
/**
|
||||
* @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.
|
||||
* @brief Tab page for the 'Behavior' settings of the Dolphin settings dialog.
|
||||
*/
|
||||
class StartupSettingsPage : public SettingsPageBase
|
||||
class FoldersTabsSettingsPage : public SettingsPageBase
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
StartupSettingsPage(const QUrl &url, QWidget *parent);
|
||||
~StartupSettingsPage() override;
|
||||
FoldersTabsSettingsPage(QWidget *parent);
|
||||
~FoldersTabsSettingsPage() override;
|
||||
|
||||
/** @see SettingsPageBase::applySettings() */
|
||||
void applySettings() override;
|
||||
|
@ -34,6 +34,11 @@ public:
|
|||
/** @see SettingsPageBase::restoreDefaults() */
|
||||
void restoreDefaults() override;
|
||||
|
||||
public:
|
||||
QWidget *m_homeUrlBoxLayoutContainer;
|
||||
QWidget *m_buttonBoxLayoutContainer;
|
||||
QRadioButton *m_homeUrlRadioButton;
|
||||
|
||||
private Q_SLOTS:
|
||||
void slotSettingsChanged();
|
||||
void updateInitialViewOptions();
|
||||
|
@ -48,17 +53,17 @@ private:
|
|||
private:
|
||||
QUrl m_url;
|
||||
QLineEdit *m_homeUrl;
|
||||
QWidget *m_homeUrlBoxLayoutContainer;
|
||||
QWidget *m_buttonBoxLayoutContainer;
|
||||
QRadioButton *m_rememberOpenedTabsRadioButton;
|
||||
QRadioButton *m_homeUrlRadioButton;
|
||||
|
||||
QRadioButton *m_openNewTabAfterLastTab;
|
||||
QRadioButton *m_openNewTabAfterCurrentTab;
|
||||
|
||||
QCheckBox *m_splitView;
|
||||
QCheckBox *m_editableUrl;
|
||||
QCheckBox *m_showFullPath;
|
||||
QCheckBox *m_filterBar;
|
||||
QCheckBox *m_showFullPathInTitlebar;
|
||||
QCheckBox *m_openExternallyCalledFolderInNewTab;
|
||||
QCheckBox *m_useTabForSplitViewSwitch;
|
||||
QCheckBox *m_closeActiveSplitView;
|
||||
};
|
||||
|
||||
#endif
|
|
@ -4,19 +4,19 @@
|
|||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
|
||||
#include "generalsettingspage.h"
|
||||
#include "interfacesettingspage.h"
|
||||
|
||||
#include "behaviorsettingspage.h"
|
||||
#include "confirmationssettingspage.h"
|
||||
#include "folderstabssettingspage.h"
|
||||
#include "previewssettingspage.h"
|
||||
#include "statusbarsettingspage.h"
|
||||
#include "statusandlocationbarssettingspage.h"
|
||||
|
||||
#include <KLocalizedString>
|
||||
|
||||
#include <QTabWidget>
|
||||
#include <QVBoxLayout>
|
||||
|
||||
GeneralSettingsPage::GeneralSettingsPage(const QUrl &url, QWidget *parent)
|
||||
InterfaceSettingsPage::InterfaceSettingsPage(QWidget *parent)
|
||||
: SettingsPageBase(parent)
|
||||
, m_pages()
|
||||
{
|
||||
|
@ -25,50 +25,50 @@ GeneralSettingsPage::GeneralSettingsPage(const QUrl &url, QWidget *parent)
|
|||
|
||||
QTabWidget *tabWidget = new QTabWidget(this);
|
||||
|
||||
// initialize 'Behavior' tab
|
||||
BehaviorSettingsPage *behaviorPage = new BehaviorSettingsPage(url, tabWidget);
|
||||
tabWidget->addTab(behaviorPage, i18nc("@title:tab Behavior settings", "Behavior"));
|
||||
connect(behaviorPage, &BehaviorSettingsPage::changed, this, &GeneralSettingsPage::changed);
|
||||
// initialize 'Folders & Tabs' tab
|
||||
FoldersTabsSettingsPage *foldersTabsPage = new FoldersTabsSettingsPage(tabWidget);
|
||||
tabWidget->addTab(foldersTabsPage, i18nc("@title:tab Folders & Tabs settings", "Folders && Tabs"));
|
||||
connect(foldersTabsPage, &FoldersTabsSettingsPage::changed, this, &InterfaceSettingsPage::changed);
|
||||
|
||||
// initialize 'Previews' tab
|
||||
PreviewsSettingsPage *previewsPage = new PreviewsSettingsPage(tabWidget);
|
||||
tabWidget->addTab(previewsPage, i18nc("@title:tab Previews settings", "Previews"));
|
||||
connect(previewsPage, &PreviewsSettingsPage::changed, this, &GeneralSettingsPage::changed);
|
||||
connect(previewsPage, &PreviewsSettingsPage::changed, this, &InterfaceSettingsPage::changed);
|
||||
|
||||
// initialize 'Context Menu' tab
|
||||
ConfirmationsSettingsPage *confirmationsPage = new ConfirmationsSettingsPage(tabWidget);
|
||||
tabWidget->addTab(confirmationsPage, i18nc("@title:tab Confirmations settings", "Confirmations"));
|
||||
connect(confirmationsPage, &ConfirmationsSettingsPage::changed, this, &GeneralSettingsPage::changed);
|
||||
connect(confirmationsPage, &ConfirmationsSettingsPage::changed, this, &InterfaceSettingsPage::changed);
|
||||
|
||||
// initialize 'Status Bar' tab
|
||||
StatusBarSettingsPage *statusBarPage = new StatusBarSettingsPage(tabWidget);
|
||||
tabWidget->addTab(statusBarPage, i18nc("@title:tab Status Bar settings", "Status Bar"));
|
||||
connect(statusBarPage, &StatusBarSettingsPage::changed, this, &GeneralSettingsPage::changed);
|
||||
// initialize 'Status & location bars' tab
|
||||
StatusAndLocationBarsSettingsPage *statusAndLocationBarsPage = new StatusAndLocationBarsSettingsPage(tabWidget, foldersTabsPage);
|
||||
tabWidget->addTab(statusAndLocationBarsPage, i18nc("@title:tab Status & Location bars settings", "Status && Location bars"));
|
||||
connect(statusAndLocationBarsPage, &StatusAndLocationBarsSettingsPage::changed, this, &InterfaceSettingsPage::changed);
|
||||
|
||||
m_pages.append(behaviorPage);
|
||||
m_pages.append(foldersTabsPage);
|
||||
m_pages.append(previewsPage);
|
||||
m_pages.append(confirmationsPage);
|
||||
m_pages.append(statusBarPage);
|
||||
m_pages.append(statusAndLocationBarsPage);
|
||||
|
||||
topLayout->addWidget(tabWidget, 0, {});
|
||||
}
|
||||
|
||||
GeneralSettingsPage::~GeneralSettingsPage()
|
||||
InterfaceSettingsPage::~InterfaceSettingsPage()
|
||||
{
|
||||
}
|
||||
|
||||
void GeneralSettingsPage::applySettings()
|
||||
void InterfaceSettingsPage::applySettings()
|
||||
{
|
||||
for (SettingsPageBase *page : qAsConst(m_pages)) {
|
||||
page->applySettings();
|
||||
}
|
||||
}
|
||||
|
||||
void GeneralSettingsPage::restoreDefaults()
|
||||
void InterfaceSettingsPage::restoreDefaults()
|
||||
{
|
||||
for (SettingsPageBase *page : qAsConst(m_pages)) {
|
||||
page->restoreDefaults();
|
||||
}
|
||||
}
|
||||
|
||||
#include "moc_generalsettingspage.cpp"
|
||||
#include "moc_interfacesettingspage.cpp"
|
|
@ -3,8 +3,8 @@
|
|||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
#ifndef GENERALSETTINGSPAGE_H
|
||||
#define GENERALSETTINGSPAGE_H
|
||||
#ifndef INTERFACESETTINGSPAGE_H
|
||||
#define INTERFACESETTINGSPAGE_H
|
||||
|
||||
#include "settings/settingspagebase.h"
|
||||
|
||||
|
@ -14,21 +14,20 @@ class QUrl;
|
|||
class SettingsPageBase;
|
||||
|
||||
/**
|
||||
* @brief Page for the 'General' settings of the Dolphin settings dialog.
|
||||
* @brief Page for the 'Interface' settings of the Dolphin settings dialog.
|
||||
*
|
||||
* The general settings include:
|
||||
* - Behavior
|
||||
* The interface settings include:
|
||||
* - Folders & Tabs
|
||||
* - Previews
|
||||
* - Context Menu
|
||||
* - Status Bar
|
||||
*/
|
||||
class GeneralSettingsPage : public SettingsPageBase
|
||||
class InterfaceSettingsPage : public SettingsPageBase
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
GeneralSettingsPage(const QUrl &url, QWidget *parent);
|
||||
~GeneralSettingsPage() override;
|
||||
InterfaceSettingsPage(QWidget *parent);
|
||||
~InterfaceSettingsPage() override;
|
||||
|
||||
/** @see SettingsPageBase::applySettings() */
|
||||
void applySettings() override;
|
128
src/settings/interface/statusandlocationbarssettingspage.cpp
Normal file
128
src/settings/interface/statusandlocationbarssettingspage.cpp
Normal file
|
@ -0,0 +1,128 @@
|
|||
/*
|
||||
* SPDX-FileCopyrightText: 2023 Dimosthenis Krallis <dimosthenis.krallis@outlook.com>
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
|
||||
#include "statusandlocationbarssettingspage.h"
|
||||
#include "dolphinmainwindow.h"
|
||||
#include "dolphinviewcontainer.h"
|
||||
#include "settings/interface/folderstabssettingspage.h"
|
||||
|
||||
#include <KLocalizedString>
|
||||
|
||||
#include <QCheckBox>
|
||||
#include <QFormLayout>
|
||||
|
||||
#include <QRadioButton>
|
||||
#include <QSpacerItem>
|
||||
|
||||
StatusAndLocationBarsSettingsPage::StatusAndLocationBarsSettingsPage(QWidget *parent, FoldersTabsSettingsPage *foldersPage)
|
||||
: SettingsPageBase(parent)
|
||||
, m_editableUrl(nullptr)
|
||||
, m_showFullPath(nullptr)
|
||||
, m_showStatusBar(nullptr)
|
||||
, m_showZoomSlider(nullptr)
|
||||
, m_showSpaceInfo(nullptr)
|
||||
{
|
||||
// We need to update some urls at the Folders & Tabs tab. We get that from foldersPage and set it on a private attribute
|
||||
// foldersTabsPage. That way, we can modify the necessary stuff from here. Specifically, any changes on locationUpdateInitialViewOptions()
|
||||
// which is a copy of updateInitialViewOptions() on Folders & Tabs.
|
||||
foldersTabsPage = foldersPage;
|
||||
|
||||
QFormLayout *topLayout = new QFormLayout(this);
|
||||
|
||||
// Status bar
|
||||
m_showStatusBar = new QCheckBox(i18nc("@option:check", "Show status bar"), this);
|
||||
m_showZoomSlider = new QCheckBox(i18nc("@option:check", "Show zoom slider"), this);
|
||||
m_showSpaceInfo = new QCheckBox(i18nc("@option:check", "Show space information"), this);
|
||||
|
||||
topLayout->addRow(i18nc("@title:group", "Status Bar: "), m_showStatusBar);
|
||||
topLayout->addRow(QString(), m_showZoomSlider);
|
||||
topLayout->addRow(QString(), m_showSpaceInfo);
|
||||
|
||||
topLayout->addItem(new QSpacerItem(0, Dolphin::VERTICAL_SPACER_HEIGHT, QSizePolicy::Fixed, QSizePolicy::Fixed));
|
||||
|
||||
// Location bar
|
||||
m_editableUrl = new QCheckBox(i18nc("@option:check Startup Settings", "Make location bar editable"));
|
||||
topLayout->addRow(i18n("Location bar:"), m_editableUrl);
|
||||
|
||||
m_showFullPath = new QCheckBox(i18nc("@option:check Startup Settings", "Show full path inside location bar"));
|
||||
topLayout->addRow(QString(), m_showFullPath);
|
||||
|
||||
loadSettings();
|
||||
|
||||
locationUpdateInitialViewOptions();
|
||||
|
||||
connect(m_editableUrl, &QCheckBox::toggled, this, &StatusAndLocationBarsSettingsPage::locationSlotSettingsChanged);
|
||||
connect(m_showFullPath, &QCheckBox::toggled, this, &StatusAndLocationBarsSettingsPage::locationSlotSettingsChanged);
|
||||
|
||||
connect(m_showStatusBar, &QCheckBox::toggled, this, &StatusAndLocationBarsSettingsPage::changed);
|
||||
connect(m_showStatusBar, &QCheckBox::toggled, this, &StatusAndLocationBarsSettingsPage::onShowStatusBarToggled);
|
||||
connect(m_showZoomSlider, &QCheckBox::toggled, this, &StatusAndLocationBarsSettingsPage::changed);
|
||||
connect(m_showSpaceInfo, &QCheckBox::toggled, this, &StatusAndLocationBarsSettingsPage::changed);
|
||||
}
|
||||
|
||||
StatusAndLocationBarsSettingsPage::~StatusAndLocationBarsSettingsPage()
|
||||
{
|
||||
}
|
||||
|
||||
void StatusAndLocationBarsSettingsPage::applySettings()
|
||||
{
|
||||
GeneralSettings *settings = GeneralSettings::self();
|
||||
|
||||
settings->setEditableUrl(m_editableUrl->isChecked());
|
||||
settings->setShowFullPath(m_showFullPath->isChecked());
|
||||
|
||||
settings->setShowStatusBar(m_showStatusBar->isChecked());
|
||||
settings->setShowZoomSlider(m_showZoomSlider->isChecked());
|
||||
settings->setShowSpaceInfo(m_showSpaceInfo->isChecked());
|
||||
|
||||
settings->save();
|
||||
}
|
||||
|
||||
void StatusAndLocationBarsSettingsPage::onShowStatusBarToggled()
|
||||
{
|
||||
const bool checked = m_showStatusBar->isChecked();
|
||||
m_showZoomSlider->setEnabled(checked);
|
||||
m_showSpaceInfo->setEnabled(checked);
|
||||
}
|
||||
|
||||
void StatusAndLocationBarsSettingsPage::restoreDefaults()
|
||||
{
|
||||
GeneralSettings *settings = GeneralSettings::self();
|
||||
settings->useDefaults(true);
|
||||
loadSettings();
|
||||
settings->useDefaults(false);
|
||||
}
|
||||
|
||||
void StatusAndLocationBarsSettingsPage::locationSlotSettingsChanged()
|
||||
{
|
||||
// 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);
|
||||
|
||||
// Enable and disable home URL controls appropriately
|
||||
locationUpdateInitialViewOptions();
|
||||
Q_EMIT changed();
|
||||
}
|
||||
|
||||
void StatusAndLocationBarsSettingsPage::locationUpdateInitialViewOptions()
|
||||
{
|
||||
foldersTabsPage->m_homeUrlBoxLayoutContainer->setEnabled(foldersTabsPage->m_homeUrlRadioButton->isChecked());
|
||||
foldersTabsPage->m_buttonBoxLayoutContainer->setEnabled(foldersTabsPage->m_homeUrlRadioButton->isChecked());
|
||||
}
|
||||
|
||||
void StatusAndLocationBarsSettingsPage::loadSettings()
|
||||
{
|
||||
m_editableUrl->setChecked(GeneralSettings::editableUrl());
|
||||
m_showFullPath->setChecked(GeneralSettings::showFullPath());
|
||||
m_showStatusBar->setChecked(GeneralSettings::showStatusBar());
|
||||
m_showZoomSlider->setChecked(GeneralSettings::showZoomSlider());
|
||||
m_showSpaceInfo->setChecked(GeneralSettings::showSpaceInfo());
|
||||
|
||||
onShowStatusBarToggled();
|
||||
}
|
||||
|
||||
#include "moc_statusandlocationbarssettingspage.cpp"
|
55
src/settings/interface/statusandlocationbarssettingspage.h
Normal file
55
src/settings/interface/statusandlocationbarssettingspage.h
Normal file
|
@ -0,0 +1,55 @@
|
|||
/*
|
||||
* SPDX-FileCopyrightText: 2009 Peter Penz <peter.penz19@gmail.com>
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
#ifndef STATUSANDLOCATIONBARSSETTINGSPAGE_H
|
||||
#define STATUSANDLOCATIONBARSSETTINGSPAGE_H
|
||||
|
||||
#include "dolphin_generalsettings.h"
|
||||
#include "folderstabssettingspage.h"
|
||||
#include "settings/settingspagebase.h"
|
||||
|
||||
#include <QUrl>
|
||||
|
||||
class QCheckBox;
|
||||
class QLineEdit;
|
||||
class QLabel;
|
||||
class QRadioButton;
|
||||
|
||||
/**
|
||||
* @brief Tab page for the 'Behavior' settings of the Dolphin settings dialog.
|
||||
*/
|
||||
class StatusAndLocationBarsSettingsPage : public SettingsPageBase
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
StatusAndLocationBarsSettingsPage(QWidget *parent, FoldersTabsSettingsPage *foldersPage);
|
||||
~StatusAndLocationBarsSettingsPage() override;
|
||||
|
||||
/** @see SettingsPageBase::applySettings() */
|
||||
void applySettings() override;
|
||||
|
||||
/** @see SettingsPageBase::restoreDefaults() */
|
||||
void restoreDefaults() override;
|
||||
|
||||
private Q_SLOTS:
|
||||
void locationSlotSettingsChanged();
|
||||
void locationUpdateInitialViewOptions();
|
||||
|
||||
private:
|
||||
void loadSettings();
|
||||
void onShowStatusBarToggled();
|
||||
|
||||
private:
|
||||
FoldersTabsSettingsPage *foldersTabsPage;
|
||||
QCheckBox *m_editableUrl;
|
||||
QCheckBox *m_showFullPath;
|
||||
|
||||
QCheckBox *m_showStatusBar;
|
||||
QCheckBox *m_showZoomSlider;
|
||||
QCheckBox *m_showSpaceInfo;
|
||||
};
|
||||
|
||||
#endif
|
|
@ -6,9 +6,10 @@
|
|||
|
||||
#include "kcmdolphingeneral.h"
|
||||
|
||||
#include "settings/general/behaviorsettingspage.h"
|
||||
#include "settings/general/confirmationssettingspage.h"
|
||||
#include "settings/general/previewssettingspage.h"
|
||||
#include "settings/interface/confirmationssettingspage.h"
|
||||
#include "settings/interface/folderstabssettingspage.h"
|
||||
#include "settings/interface/interfacesettingspage.h"
|
||||
#include "settings/interface/previewssettingspage.h"
|
||||
|
||||
#include <KLocalizedString>
|
||||
#include <KPluginFactory>
|
||||
|
@ -30,10 +31,10 @@ DolphinGeneralConfigModule::DolphinGeneralConfigModule(QWidget *parent, const QV
|
|||
|
||||
QTabWidget *tabWidget = new QTabWidget(this);
|
||||
|
||||
// initialize 'Behavior' tab
|
||||
BehaviorSettingsPage *behaviorPage = new BehaviorSettingsPage(QUrl::fromLocalFile(QDir::homePath()), tabWidget);
|
||||
tabWidget->addTab(behaviorPage, i18nc("@title:tab Behavior settings", "Behavior"));
|
||||
connect(behaviorPage, &BehaviorSettingsPage::changed, this, &DolphinGeneralConfigModule::markAsChanged);
|
||||
// initialize 'Folders & Tabs' tab
|
||||
FoldersTabsSettingsPage *foldersTabsPage = new FoldersTabsSettingsPage(tabWidget);
|
||||
tabWidget->addTab(foldersTabsPage, i18nc("@title:tab Behavior settings", "Behavior"));
|
||||
connect(foldersTabsPage, &FoldersTabsSettingsPage::changed, this, &DolphinGeneralConfigModule::markAsChanged);
|
||||
|
||||
// initialize 'Previews' tab
|
||||
PreviewsSettingsPage *previewsPage = new PreviewsSettingsPage(tabWidget);
|
||||
|
@ -44,7 +45,7 @@ DolphinGeneralConfigModule::DolphinGeneralConfigModule(QWidget *parent, const QV
|
|||
ConfirmationsSettingsPage *confirmationsPage = new ConfirmationsSettingsPage(tabWidget);
|
||||
tabWidget->addTab(confirmationsPage, i18nc("@title:tab Confirmations settings", "Confirmations"));
|
||||
connect(confirmationsPage, &ConfirmationsSettingsPage::changed, this, &DolphinGeneralConfigModule::markAsChanged);
|
||||
m_pages.append(behaviorPage);
|
||||
m_pages.append(foldersTabsPage);
|
||||
m_pages.append(previewsPage);
|
||||
m_pages.append(confirmationsPage);
|
||||
|
||||
|
|
|
@ -1,48 +0,0 @@
|
|||
/*
|
||||
* SPDX-FileCopyrightText: 2009 Peter Penz <peter.penz19@gmail.com>
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
|
||||
#include "kcmdolphinnavigation.h"
|
||||
|
||||
#include "settings/navigation/navigationsettingspage.h"
|
||||
#include <kconfigwidgets_version.h>
|
||||
|
||||
#include <KPluginFactory>
|
||||
|
||||
#include <QVBoxLayout>
|
||||
|
||||
K_PLUGIN_CLASS_WITH_JSON(DolphinNavigationConfigModule, "kcmdolphinnavigation.json")
|
||||
|
||||
DolphinNavigationConfigModule::DolphinNavigationConfigModule(QWidget *parent, const QVariantList &args)
|
||||
: KCModule(parent, args)
|
||||
, m_navigation(nullptr)
|
||||
{
|
||||
setButtons(KCModule::Default | KCModule::Help | KCModule::Apply);
|
||||
|
||||
QVBoxLayout *topLayout = new QVBoxLayout(this);
|
||||
topLayout->setContentsMargins(0, 0, 0, 0);
|
||||
|
||||
m_navigation = new NavigationSettingsPage(this);
|
||||
connect(m_navigation, &NavigationSettingsPage::changed, this, &DolphinNavigationConfigModule::markAsChanged);
|
||||
topLayout->addWidget(m_navigation, 0, {});
|
||||
}
|
||||
|
||||
DolphinNavigationConfigModule::~DolphinNavigationConfigModule()
|
||||
{
|
||||
}
|
||||
|
||||
void DolphinNavigationConfigModule::save()
|
||||
{
|
||||
m_navigation->applySettings();
|
||||
}
|
||||
|
||||
void DolphinNavigationConfigModule::defaults()
|
||||
{
|
||||
m_navigation->restoreDefaults();
|
||||
}
|
||||
|
||||
#include "kcmdolphinnavigation.moc"
|
||||
|
||||
#include "moc_kcmdolphinnavigation.cpp"
|
|
@ -1,32 +0,0 @@
|
|||
/*
|
||||
* SPDX-FileCopyrightText: 2009 Peter Penz <peter.penz19@gmail.com>
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
|
||||
#ifndef KCMDOLPHINNAVIGATION_H
|
||||
#define KCMDOLPHINNAVIGATION_H
|
||||
|
||||
#include <KCModule>
|
||||
|
||||
class NavigationSettingsPage;
|
||||
|
||||
/**
|
||||
* @brief Allow to configure the Dolphin navigation.
|
||||
*/
|
||||
class DolphinNavigationConfigModule : public KCModule
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
DolphinNavigationConfigModule(QWidget *parent, const QVariantList &args);
|
||||
~DolphinNavigationConfigModule() override;
|
||||
|
||||
void save() override;
|
||||
void defaults() override;
|
||||
|
||||
private:
|
||||
NavigationSettingsPage *m_navigation;
|
||||
};
|
||||
|
||||
#endif
|
|
@ -1,63 +0,0 @@
|
|||
{
|
||||
"KPlugin": {
|
||||
"Icon": "preferences-desktop-navigation",
|
||||
"Name": "Navigation",
|
||||
"Name[ar]": "التّنقّل",
|
||||
"Name[az]": "Naviqasiya",
|
||||
"Name[be]": "Навігацыя",
|
||||
"Name[bg]": "Навигация",
|
||||
"Name[ca@valencia]": "Navegació",
|
||||
"Name[ca]": "Navegació",
|
||||
"Name[cs]": "Navigace",
|
||||
"Name[da]": "Navigation",
|
||||
"Name[de]": "Navigation",
|
||||
"Name[en_GB]": "Navigation",
|
||||
"Name[eo]": "Navigado",
|
||||
"Name[es]": "Navegación",
|
||||
"Name[et]": "Liikumine",
|
||||
"Name[eu]": "Nabigatzea",
|
||||
"Name[fi]": "Selaus",
|
||||
"Name[fr]": "Navigation",
|
||||
"Name[gl]": "Navegación",
|
||||
"Name[he]": "ניווט",
|
||||
"Name[hi]": "संचालन",
|
||||
"Name[hu]": "Navigálás",
|
||||
"Name[ia]": "Navigation",
|
||||
"Name[id]": "Navigasi",
|
||||
"Name[ie]": "Navigation",
|
||||
"Name[is]": "Skoðun",
|
||||
"Name[it]": "Navigazione",
|
||||
"Name[ja]": "ナビゲーション",
|
||||
"Name[ka]": "ნავიგაცია",
|
||||
"Name[ko]": "탐색",
|
||||
"Name[lt]": "Naršymas",
|
||||
"Name[lv]": "Navigācija",
|
||||
"Name[ml]": "നാവിഗേഷന്",
|
||||
"Name[my]": "လမ်းညွှန်",
|
||||
"Name[nb]": "Navigasjon",
|
||||
"Name[nl]": "Navigatie",
|
||||
"Name[nn]": "Navigasjon",
|
||||
"Name[pa]": "ਨੇਵੀਗੇਸ਼ਨ",
|
||||
"Name[pl]": "Poruszanie się",
|
||||
"Name[pt]": "Navegação",
|
||||
"Name[pt_BR]": "Navegação",
|
||||
"Name[ro]": "Navigare",
|
||||
"Name[ru]": "Навигация",
|
||||
"Name[se]": "Navigašuvdna",
|
||||
"Name[sk]": "Navigácia",
|
||||
"Name[sl]": "Krmarjenje",
|
||||
"Name[sr@ijekavian]": "Навигација",
|
||||
"Name[sr@ijekavianlatin]": "Navigacija",
|
||||
"Name[sr@latin]": "Navigacija",
|
||||
"Name[sr]": "Навигација",
|
||||
"Name[sv]": "Navigering",
|
||||
"Name[ta]": "உலாவல்",
|
||||
"Name[tr]": "Dolaşım",
|
||||
"Name[uk]": "Навігація",
|
||||
"Name[vi]": "Điều hướng",
|
||||
"Name[x-test]": "xxNavigationxx",
|
||||
"Name[zh_CN]": "导航",
|
||||
"Name[zh_TW]": "導覽"
|
||||
},
|
||||
"X-DocPath": "dolphin/configuring-dolphin.html#preferences-dialog-navigation"
|
||||
}
|
|
@ -1,82 +0,0 @@
|
|||
/*
|
||||
* SPDX-FileCopyrightText: 2009 Peter Penz <peter.penz19@gmail.com>
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
|
||||
#include "navigationsettingspage.h"
|
||||
|
||||
#include "dolphin_generalsettings.h"
|
||||
#include "global.h"
|
||||
|
||||
#include <KLocalizedString>
|
||||
|
||||
#include <QButtonGroup>
|
||||
#include <QCheckBox>
|
||||
#include <QFormLayout>
|
||||
#include <QRadioButton>
|
||||
|
||||
NavigationSettingsPage::NavigationSettingsPage(QWidget *parent)
|
||||
: SettingsPageBase(parent)
|
||||
, m_openArchivesAsFolder(nullptr)
|
||||
, m_autoExpandFolders(nullptr)
|
||||
, m_openNewTabAfterLastTab(nullptr)
|
||||
, m_openNewTabAfterCurrentTab(nullptr)
|
||||
{
|
||||
QFormLayout *topLayout = new QFormLayout(this);
|
||||
|
||||
// Tabs properties
|
||||
m_openNewTabAfterCurrentTab = new QRadioButton(i18nc("option:radio", "After current tab"));
|
||||
m_openNewTabAfterLastTab = new QRadioButton(i18nc("option:radio", "At end of tab bar"));
|
||||
QButtonGroup *tabsBehaviorGroup = new QButtonGroup(this);
|
||||
tabsBehaviorGroup->addButton(m_openNewTabAfterCurrentTab);
|
||||
tabsBehaviorGroup->addButton(m_openNewTabAfterLastTab);
|
||||
topLayout->addRow(i18nc("@title:group", "Open new tabs: "), m_openNewTabAfterCurrentTab);
|
||||
topLayout->addRow(QString(), m_openNewTabAfterLastTab);
|
||||
|
||||
topLayout->addItem(new QSpacerItem(0, Dolphin::VERTICAL_SPACER_HEIGHT, QSizePolicy::Fixed, QSizePolicy::Fixed));
|
||||
|
||||
m_openArchivesAsFolder = new QCheckBox(i18nc("@option:check", "Open archives as folder"));
|
||||
m_autoExpandFolders = new QCheckBox(i18nc("option:check", "Open folders during drag operations"));
|
||||
topLayout->addRow(i18nc("@title:group", "General: "), m_openArchivesAsFolder);
|
||||
topLayout->addRow(QString(), m_autoExpandFolders);
|
||||
|
||||
loadSettings();
|
||||
|
||||
connect(m_openArchivesAsFolder, &QCheckBox::toggled, this, &NavigationSettingsPage::changed);
|
||||
connect(m_autoExpandFolders, &QCheckBox::toggled, this, &NavigationSettingsPage::changed);
|
||||
connect(m_openNewTabAfterCurrentTab, &QRadioButton::toggled, this, &NavigationSettingsPage::changed);
|
||||
connect(m_openNewTabAfterLastTab, &QRadioButton::toggled, this, &NavigationSettingsPage::changed);
|
||||
}
|
||||
|
||||
NavigationSettingsPage::~NavigationSettingsPage()
|
||||
{
|
||||
}
|
||||
|
||||
void NavigationSettingsPage::applySettings()
|
||||
{
|
||||
GeneralSettings *settings = GeneralSettings::self();
|
||||
settings->setBrowseThroughArchives(m_openArchivesAsFolder->isChecked());
|
||||
settings->setAutoExpandFolders(m_autoExpandFolders->isChecked());
|
||||
settings->setOpenNewTabAfterLastTab(m_openNewTabAfterLastTab->isChecked());
|
||||
|
||||
settings->save();
|
||||
}
|
||||
|
||||
void NavigationSettingsPage::restoreDefaults()
|
||||
{
|
||||
GeneralSettings *settings = GeneralSettings::self();
|
||||
settings->useDefaults(true);
|
||||
loadSettings();
|
||||
settings->useDefaults(false);
|
||||
}
|
||||
|
||||
void NavigationSettingsPage::loadSettings()
|
||||
{
|
||||
m_openArchivesAsFolder->setChecked(GeneralSettings::browseThroughArchives());
|
||||
m_autoExpandFolders->setChecked(GeneralSettings::autoExpandFolders());
|
||||
m_openNewTabAfterLastTab->setChecked(GeneralSettings::openNewTabAfterLastTab());
|
||||
m_openNewTabAfterCurrentTab->setChecked(!m_openNewTabAfterLastTab->isChecked());
|
||||
}
|
||||
|
||||
#include "moc_navigationsettingspage.cpp"
|
|
@ -1,41 +0,0 @@
|
|||
/*
|
||||
* SPDX-FileCopyrightText: 2009 Peter Penz <peter.penz19@gmail.com>
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
#ifndef NAVIGATIONSETTINGSPAGE_H
|
||||
#define NAVIGATIONSETTINGSPAGE_H
|
||||
|
||||
#include "settings/settingspagebase.h"
|
||||
|
||||
class QCheckBox;
|
||||
class QRadioButton;
|
||||
|
||||
/**
|
||||
* @brief Page for the 'Navigation' settings of the Dolphin settings dialog.
|
||||
*/
|
||||
class NavigationSettingsPage : public SettingsPageBase
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit NavigationSettingsPage(QWidget *parent);
|
||||
~NavigationSettingsPage() override;
|
||||
|
||||
/** @see SettingsPageBase::applySettings() */
|
||||
void applySettings() override;
|
||||
|
||||
/** @see SettingsPageBase::restoreDefaults() */
|
||||
void restoreDefaults() override;
|
||||
|
||||
private:
|
||||
void loadSettings();
|
||||
|
||||
private:
|
||||
QCheckBox *m_openArchivesAsFolder;
|
||||
QCheckBox *m_autoExpandFolders;
|
||||
QRadioButton *m_openNewTabAfterLastTab;
|
||||
QRadioButton *m_openNewTabAfterCurrentTab;
|
||||
};
|
||||
|
||||
#endif
|
|
@ -6,6 +6,7 @@
|
|||
|
||||
#include "contentdisplaytab.h"
|
||||
#include "dolphin_contentdisplaysettings.h"
|
||||
#include "dolphin_generalsettings.h"
|
||||
|
||||
#include <KFormat>
|
||||
#include <KLocalizedString>
|
||||
|
@ -18,6 +19,9 @@
|
|||
|
||||
ContentDisplayTab::ContentDisplayTab(QWidget *parent)
|
||||
: SettingsPageBase(parent)
|
||||
, m_naturalSorting(nullptr)
|
||||
, m_caseSensitiveSorting(nullptr)
|
||||
, m_caseInsensitiveSorting(nullptr)
|
||||
, m_numberOfItems(nullptr)
|
||||
, m_sizeOfContents(nullptr)
|
||||
, m_recursiveDirectorySizeLimit(nullptr)
|
||||
|
@ -29,6 +33,19 @@ ContentDisplayTab::ContentDisplayTab(QWidget *parent)
|
|||
{
|
||||
QFormLayout *topLayout = new QFormLayout(this);
|
||||
|
||||
// Sorting Order
|
||||
m_naturalSorting = new QRadioButton(i18nc("option:radio", "Natural"));
|
||||
m_caseInsensitiveSorting = new QRadioButton(i18nc("option:radio", "Alphabetical, case insensitive"));
|
||||
m_caseSensitiveSorting = new QRadioButton(i18nc("option:radio", "Alphabetical, case sensitive"));
|
||||
|
||||
QButtonGroup *sortingOrderGroup = new QButtonGroup(this);
|
||||
sortingOrderGroup->addButton(m_naturalSorting);
|
||||
sortingOrderGroup->addButton(m_caseInsensitiveSorting);
|
||||
sortingOrderGroup->addButton(m_caseSensitiveSorting);
|
||||
topLayout->addRow(i18nc("@title:group", "Sorting mode: "), m_naturalSorting);
|
||||
topLayout->addRow(QString(), m_caseInsensitiveSorting);
|
||||
topLayout->addRow(QString(), m_caseSensitiveSorting);
|
||||
|
||||
#ifndef Q_OS_WIN
|
||||
// Sorting properties
|
||||
m_numberOfItems = new QRadioButton(i18nc("option:radio", "Number of items"));
|
||||
|
@ -95,6 +112,9 @@ ContentDisplayTab::ContentDisplayTab(QWidget *parent)
|
|||
connect(m_useSymbolicPermissions, &QRadioButton::toggled, this, &SettingsPageBase::changed);
|
||||
connect(m_useNumericPermissions, &QRadioButton::toggled, this, &SettingsPageBase::changed);
|
||||
connect(m_useCombinedPermissions, &QRadioButton::toggled, this, &SettingsPageBase::changed);
|
||||
connect(m_naturalSorting, &QRadioButton::toggled, this, &SettingsPageBase::changed);
|
||||
connect(m_caseInsensitiveSorting, &QRadioButton::toggled, this, &SettingsPageBase::changed);
|
||||
connect(m_caseSensitiveSorting, &QRadioButton::toggled, this, &SettingsPageBase::changed);
|
||||
|
||||
loadSettings();
|
||||
}
|
||||
|
@ -106,7 +126,7 @@ void ContentDisplayTab::applySettings()
|
|||
settings->setDirectorySizeCount(m_numberOfItems->isChecked());
|
||||
settings->setRecursiveDirectorySizeLimit(m_recursiveDirectorySizeLimit->value());
|
||||
#endif
|
||||
|
||||
setSortingChoiceValue();
|
||||
settings->setUseShortRelativeDates(m_useRelatetiveDates->isChecked());
|
||||
|
||||
if (m_useSymbolicPermissions->isChecked()) {
|
||||
|
@ -137,6 +157,38 @@ void ContentDisplayTab::loadSettings()
|
|||
m_useSymbolicPermissions->setChecked(settings->usePermissionsFormat() == ContentDisplaySettings::EnumUsePermissionsFormat::SymbolicFormat);
|
||||
m_useNumericPermissions->setChecked(settings->usePermissionsFormat() == ContentDisplaySettings::EnumUsePermissionsFormat::NumericFormat);
|
||||
m_useCombinedPermissions->setChecked(settings->usePermissionsFormat() == ContentDisplaySettings::EnumUsePermissionsFormat::CombinedFormat);
|
||||
loadSortingChoiceSettings();
|
||||
}
|
||||
|
||||
void ContentDisplayTab::setSortingChoiceValue()
|
||||
{
|
||||
auto settings = GeneralSettings::self();
|
||||
using Choice = GeneralSettings::EnumSortingChoice;
|
||||
if (m_naturalSorting->isChecked()) {
|
||||
settings->setSortingChoice(Choice::NaturalSorting);
|
||||
} else if (m_caseInsensitiveSorting->isChecked()) {
|
||||
settings->setSortingChoice(Choice::CaseInsensitiveSorting);
|
||||
} else if (m_caseSensitiveSorting->isChecked()) {
|
||||
settings->setSortingChoice(Choice::CaseSensitiveSorting);
|
||||
}
|
||||
}
|
||||
|
||||
void ContentDisplayTab::loadSortingChoiceSettings()
|
||||
{
|
||||
using Choice = GeneralSettings::EnumSortingChoice;
|
||||
switch (GeneralSettings::sortingChoice()) {
|
||||
case Choice::NaturalSorting:
|
||||
m_naturalSorting->setChecked(true);
|
||||
break;
|
||||
case Choice::CaseInsensitiveSorting:
|
||||
m_caseInsensitiveSorting->setChecked(true);
|
||||
break;
|
||||
case Choice::CaseSensitiveSorting:
|
||||
m_caseSensitiveSorting->setChecked(true);
|
||||
break;
|
||||
default:
|
||||
Q_UNREACHABLE();
|
||||
}
|
||||
}
|
||||
|
||||
void ContentDisplayTab::restoreDefaults()
|
||||
|
|
|
@ -6,6 +6,8 @@
|
|||
#ifndef GENERALTAB_H
|
||||
#define GENERALTAB_H
|
||||
|
||||
#include "dolphin_contentdisplaysettings.h"
|
||||
#include "dolphin_generalsettings.h"
|
||||
#include "settings/settingspagebase.h"
|
||||
|
||||
class QRadioButton;
|
||||
|
@ -25,6 +27,12 @@ public:
|
|||
|
||||
private:
|
||||
void loadSettings();
|
||||
void setSortingChoiceValue();
|
||||
void loadSortingChoiceSettings();
|
||||
|
||||
QRadioButton *m_naturalSorting;
|
||||
QRadioButton *m_caseSensitiveSorting;
|
||||
QRadioButton *m_caseInsensitiveSorting;
|
||||
|
||||
QRadioButton *m_numberOfItems;
|
||||
QRadioButton *m_sizeOfContents;
|
||||
|
|
133
src/settings/viewmodes/generalviewsettingspage.cpp
Normal file
133
src/settings/viewmodes/generalviewsettingspage.cpp
Normal file
|
@ -0,0 +1,133 @@
|
|||
/*
|
||||
* SPDX-FileCopyrightText: 2006 Peter Penz (peter.penz@gmx.at) and Patrice Tremblay
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
|
||||
#include "generalviewsettingspage.h"
|
||||
#include "dolphin_generalsettings.h"
|
||||
#include "dolphinmainwindow.h"
|
||||
#include "views/viewproperties.h"
|
||||
|
||||
#include <KLocalizedString>
|
||||
|
||||
#include <QButtonGroup>
|
||||
#include <QCheckBox>
|
||||
#include <QFormLayout>
|
||||
#include <QVBoxLayout>
|
||||
|
||||
GeneralViewSettingsPage::GeneralViewSettingsPage(const QUrl &url, QWidget *parent)
|
||||
: SettingsPageBase(parent)
|
||||
, m_url(url)
|
||||
, m_localViewProps(nullptr)
|
||||
, m_globalViewProps(nullptr)
|
||||
, m_showToolTips(nullptr)
|
||||
, m_showSelectionToggle(nullptr)
|
||||
, m_renameInline(nullptr)
|
||||
{
|
||||
QFormLayout *topLayout = new QFormLayout(this);
|
||||
|
||||
// Display style
|
||||
m_globalViewProps = new QRadioButton(i18nc("@option:radio", "Use common display style for all folders"));
|
||||
m_localViewProps = new QRadioButton(i18nc("@option:radio", "Remember display style for each folder"));
|
||||
m_localViewProps->setToolTip(i18nc("@info", "Dolphin will create a hidden .directory file in each folder you change view properties for."));
|
||||
|
||||
QButtonGroup *viewGroup = new QButtonGroup(this);
|
||||
viewGroup->addButton(m_globalViewProps);
|
||||
viewGroup->addButton(m_localViewProps);
|
||||
topLayout->addRow(i18nc("@title:group", "Display style: "), m_globalViewProps);
|
||||
topLayout->addRow(QString(), m_localViewProps);
|
||||
|
||||
topLayout->addItem(new QSpacerItem(0, Dolphin::VERTICAL_SPACER_HEIGHT, QSizePolicy::Fixed, QSizePolicy::Fixed));
|
||||
|
||||
// Browsing
|
||||
m_openArchivesAsFolder = new QCheckBox(i18nc("@option:check", "Open archives as folder"));
|
||||
m_autoExpandFolders = new QCheckBox(i18nc("option:check", "Open folders during drag operations"));
|
||||
topLayout->addRow(i18nc("@title:group", "Browsing: "), m_openArchivesAsFolder);
|
||||
topLayout->addRow(QString(), m_autoExpandFolders);
|
||||
|
||||
topLayout->addItem(new QSpacerItem(0, Dolphin::VERTICAL_SPACER_HEIGHT, QSizePolicy::Fixed, QSizePolicy::Fixed));
|
||||
|
||||
#if HAVE_BALOO
|
||||
// 'Show tooltips'
|
||||
m_showToolTips = new QCheckBox(i18nc("@option:check", "Show tooltips"));
|
||||
topLayout->addRow(i18nc("@title:group", "Miscellaneous: "), m_showToolTips);
|
||||
#endif
|
||||
|
||||
// 'Show selection marker'
|
||||
m_showSelectionToggle = new QCheckBox(i18nc("@option:check", "Show selection marker"));
|
||||
#if HAVE_BALOO
|
||||
topLayout->addRow(QString(), m_showSelectionToggle);
|
||||
#else
|
||||
topLayout->addRow(i18nc("@title:group", "Miscellaneous: "), m_showSelectionToggle);
|
||||
#endif
|
||||
|
||||
// 'Inline renaming of items'
|
||||
m_renameInline = new QCheckBox(i18nc("option:check", "Rename inline"));
|
||||
topLayout->addRow(QString(), m_renameInline);
|
||||
|
||||
loadSettings();
|
||||
|
||||
connect(m_localViewProps, &QRadioButton::toggled, this, &GeneralViewSettingsPage::changed);
|
||||
connect(m_globalViewProps, &QRadioButton::toggled, this, &GeneralViewSettingsPage::changed);
|
||||
|
||||
connect(m_openArchivesAsFolder, &QCheckBox::toggled, this, &GeneralViewSettingsPage::changed);
|
||||
connect(m_autoExpandFolders, &QCheckBox::toggled, this, &GeneralViewSettingsPage::changed);
|
||||
#if HAVE_BALOO
|
||||
connect(m_showToolTips, &QCheckBox::toggled, this, &GeneralViewSettingsPage::changed);
|
||||
#endif
|
||||
connect(m_showSelectionToggle, &QCheckBox::toggled, this, &GeneralViewSettingsPage::changed);
|
||||
connect(m_renameInline, &QCheckBox::toggled, this, &GeneralViewSettingsPage::changed);
|
||||
}
|
||||
|
||||
GeneralViewSettingsPage::~GeneralViewSettingsPage()
|
||||
{
|
||||
}
|
||||
|
||||
void GeneralViewSettingsPage::applySettings()
|
||||
{
|
||||
GeneralSettings *settings = GeneralSettings::self();
|
||||
ViewProperties props(m_url); // read current view properties
|
||||
const bool useGlobalViewProps = m_globalViewProps->isChecked();
|
||||
settings->setGlobalViewProps(useGlobalViewProps);
|
||||
#if HAVE_BALOO
|
||||
settings->setShowToolTips(m_showToolTips->isChecked());
|
||||
#endif
|
||||
settings->setShowSelectionToggle(m_showSelectionToggle->isChecked());
|
||||
settings->setRenameInline(m_renameInline->isChecked());
|
||||
settings->setAutoExpandFolders(m_autoExpandFolders->isChecked());
|
||||
settings->save();
|
||||
if (useGlobalViewProps) {
|
||||
// Remember the global view properties by applying the current view properties.
|
||||
// It is important that GeneralSettings::globalViewProps() is set before
|
||||
// the class ViewProperties is used, as ViewProperties uses this setting
|
||||
// to find the destination folder for storing the view properties.
|
||||
ViewProperties globalProps(m_url);
|
||||
globalProps.setDirProperties(props);
|
||||
}
|
||||
}
|
||||
|
||||
void GeneralViewSettingsPage::restoreDefaults()
|
||||
{
|
||||
GeneralSettings *settings = GeneralSettings::self();
|
||||
settings->useDefaults(true);
|
||||
loadSettings();
|
||||
settings->useDefaults(false);
|
||||
}
|
||||
|
||||
void GeneralViewSettingsPage::loadSettings()
|
||||
{
|
||||
const bool useGlobalViewProps = GeneralSettings::globalViewProps();
|
||||
m_openArchivesAsFolder->setChecked(GeneralSettings::browseThroughArchives());
|
||||
m_autoExpandFolders->setChecked(GeneralSettings::autoExpandFolders());
|
||||
#if HAVE_BALOO
|
||||
m_showToolTips->setChecked(GeneralSettings::showToolTips());
|
||||
#endif
|
||||
m_showSelectionToggle->setChecked(GeneralSettings::showSelectionToggle());
|
||||
m_renameInline->setChecked(GeneralSettings::renameInline());
|
||||
|
||||
m_localViewProps->setChecked(!useGlobalViewProps);
|
||||
m_globalViewProps->setChecked(useGlobalViewProps);
|
||||
}
|
||||
|
||||
#include "moc_generalviewsettingspage.cpp"
|
|
@ -3,11 +3,11 @@
|
|||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
#ifndef BEHAVIORSETTINGSPAGE_H
|
||||
#define BEHAVIORSETTINGSPAGE_H
|
||||
#ifndef GENERALVIEWSETTINGSPAGE_H
|
||||
#define GENERALVIEWSETTINGSPAGE_H
|
||||
|
||||
#include "dolphin_generalsettings.h"
|
||||
#include "settings/settingspagebase.h"
|
||||
#include <qradiobutton.h>
|
||||
|
||||
#include <QUrl>
|
||||
|
||||
|
@ -16,15 +16,15 @@ class QLabel;
|
|||
class QRadioButton;
|
||||
|
||||
/**
|
||||
* @brief Tab page for the 'Behavior' settings of the Dolphin settings dialog.
|
||||
* @brief Tab page for the 'View tab' settings of the Dolphin settings dialog.
|
||||
*/
|
||||
class BehaviorSettingsPage : public SettingsPageBase
|
||||
class GeneralViewSettingsPage : public SettingsPageBase
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
BehaviorSettingsPage(const QUrl &url, QWidget *parent);
|
||||
~BehaviorSettingsPage() override;
|
||||
explicit GeneralViewSettingsPage(const QUrl &url, QWidget *parent);
|
||||
~GeneralViewSettingsPage() override;
|
||||
|
||||
/** @see SettingsPageBase::applySettings() */
|
||||
void applySettings() override;
|
||||
|
@ -34,26 +34,17 @@ public:
|
|||
|
||||
private:
|
||||
void loadSettings();
|
||||
void setSortingChoiceValue(GeneralSettings *settings);
|
||||
void loadSortingChoiceSettings();
|
||||
|
||||
private:
|
||||
QUrl m_url;
|
||||
|
||||
QRadioButton *m_localViewProps;
|
||||
QRadioButton *m_globalViewProps;
|
||||
|
||||
QCheckBox *m_showToolTips;
|
||||
QLabel *m_configureToolTips;
|
||||
QCheckBox *m_showSelectionToggle;
|
||||
|
||||
QRadioButton *m_naturalSorting;
|
||||
QRadioButton *m_caseSensitiveSorting;
|
||||
QRadioButton *m_caseInsensitiveSorting;
|
||||
|
||||
QCheckBox *m_renameInline;
|
||||
QCheckBox *m_useTabForSplitViewSwitch;
|
||||
QCheckBox *m_closeActiveSplitView;
|
||||
QCheckBox *m_openArchivesAsFolder;
|
||||
QCheckBox *m_autoExpandFolders;
|
||||
};
|
||||
|
||||
#endif
|
|
@ -7,14 +7,14 @@
|
|||
#include "viewsettingspage.h"
|
||||
|
||||
#include "contentdisplaytab.h"
|
||||
#include "generalviewsettingspage.h"
|
||||
#include "viewsettingstab.h"
|
||||
|
||||
#include <KLocalizedString>
|
||||
|
||||
#include <QTabWidget>
|
||||
#include <QVBoxLayout>
|
||||
|
||||
ViewSettingsPage::ViewSettingsPage(QWidget *parent)
|
||||
ViewSettingsPage::ViewSettingsPage(const QUrl &url, QWidget *parent)
|
||||
: SettingsPageBase(parent)
|
||||
, m_tabs()
|
||||
{
|
||||
|
@ -23,6 +23,11 @@ ViewSettingsPage::ViewSettingsPage(QWidget *parent)
|
|||
|
||||
tabWidget = new QTabWidget(this);
|
||||
|
||||
// General View tab
|
||||
GeneralViewSettingsPage *generalViewPage = new GeneralViewSettingsPage(url, tabWidget);
|
||||
tabWidget->addTab(generalViewPage, QIcon::fromTheme(QStringLiteral("description")), i18nc("@title:tab General View settings", "General"));
|
||||
connect(generalViewPage, &GeneralViewSettingsPage::changed, this, &ViewSettingsPage::changed);
|
||||
|
||||
// Content Display Tab
|
||||
contentDisplayTab = new ContentDisplayTab(tabWidget);
|
||||
tabWidget->addTab(contentDisplayTab,
|
||||
|
|
|
@ -24,7 +24,7 @@ class ViewSettingsPage : public SettingsPageBase
|
|||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit ViewSettingsPage(QWidget *parent);
|
||||
explicit ViewSettingsPage(const QUrl &url, QWidget *parent);
|
||||
~ViewSettingsPage() override;
|
||||
|
||||
/** @see SettingsPageBase::applySettings() */
|
||||
|
|
Loading…
Reference in New Issue
Block a user