]> cloud.milkyroute.net Git - dolphin.git/blob - src/settings/navigation/navigationsettingspage.cpp
3b38e52e77a7cfc00b1d62ba5cdad49a241dcba3
[dolphin.git] / src / settings / navigation / navigationsettingspage.cpp
1 /*
2 * SPDX-FileCopyrightText: 2009 Peter Penz <peter.penz19@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
7 #include "navigationsettingspage.h"
8
9 #include "dolphin_generalsettings.h"
10 #include "global.h"
11
12 #include <KLocalizedString>
13
14 #include <QButtonGroup>
15 #include <QCheckBox>
16 #include <QFormLayout>
17 #include <QRadioButton>
18
19 NavigationSettingsPage::NavigationSettingsPage(QWidget *parent)
20 : SettingsPageBase(parent)
21 , m_openArchivesAsFolder(nullptr)
22 , m_autoExpandFolders(nullptr)
23 , m_openNewTabAfterLastTab(nullptr)
24 , m_openNewTabAfterCurrentTab(nullptr)
25 {
26 QFormLayout *topLayout = new QFormLayout(this);
27
28 // Tabs properties
29 m_openNewTabAfterCurrentTab = new QRadioButton(i18nc("option:radio", "After current tab"));
30 m_openNewTabAfterLastTab = new QRadioButton(i18nc("option:radio", "At end of tab bar"));
31 QButtonGroup *tabsBehaviorGroup = new QButtonGroup(this);
32 tabsBehaviorGroup->addButton(m_openNewTabAfterCurrentTab);
33 tabsBehaviorGroup->addButton(m_openNewTabAfterLastTab);
34 topLayout->addRow(i18nc("@title:group", "Open new tabs: "), m_openNewTabAfterCurrentTab);
35 topLayout->addRow(QString(), m_openNewTabAfterLastTab);
36
37 topLayout->addItem(new QSpacerItem(0, Dolphin::VERTICAL_SPACER_HEIGHT, QSizePolicy::Fixed, QSizePolicy::Fixed));
38
39 m_openArchivesAsFolder = new QCheckBox(i18nc("@option:check", "Open archives as folder"));
40 m_autoExpandFolders = new QCheckBox(i18nc("option:check", "Open folders during drag operations"));
41 topLayout->addRow(i18nc("@title:group", "General: "), m_openArchivesAsFolder);
42 topLayout->addRow(QString(), m_autoExpandFolders);
43
44 loadSettings();
45
46 connect(m_openArchivesAsFolder, &QCheckBox::toggled, this, &NavigationSettingsPage::changed);
47 connect(m_autoExpandFolders, &QCheckBox::toggled, this, &NavigationSettingsPage::changed);
48 connect(m_openNewTabAfterCurrentTab, &QRadioButton::toggled, this, &NavigationSettingsPage::changed);
49 connect(m_openNewTabAfterLastTab, &QRadioButton::toggled, this, &NavigationSettingsPage::changed);
50 }
51
52 NavigationSettingsPage::~NavigationSettingsPage()
53 {
54 }
55
56 void NavigationSettingsPage::applySettings()
57 {
58 GeneralSettings *settings = GeneralSettings::self();
59 settings->setBrowseThroughArchives(m_openArchivesAsFolder->isChecked());
60 settings->setAutoExpandFolders(m_autoExpandFolders->isChecked());
61 settings->setOpenNewTabAfterLastTab(m_openNewTabAfterLastTab->isChecked());
62
63 settings->save();
64 }
65
66 void NavigationSettingsPage::restoreDefaults()
67 {
68 GeneralSettings *settings = GeneralSettings::self();
69 settings->useDefaults(true);
70 loadSettings();
71 settings->useDefaults(false);
72 }
73
74 void NavigationSettingsPage::loadSettings()
75 {
76 m_openArchivesAsFolder->setChecked(GeneralSettings::browseThroughArchives());
77 m_autoExpandFolders->setChecked(GeneralSettings::autoExpandFolders());
78 m_openNewTabAfterLastTab->setChecked(GeneralSettings::openNewTabAfterLastTab());
79 m_openNewTabAfterCurrentTab->setChecked(!m_openNewTabAfterLastTab->isChecked());
80 }
81
82 #include "moc_navigationsettingspage.cpp"