]> cloud.milkyroute.net Git - dolphin.git/blob - src/settings/general/statusbarsettingspage.cpp
0d5be04bfcec97d46ea71d0cd7c96d30cdb28c40
[dolphin.git] / src / settings / general / statusbarsettingspage.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 "statusbarsettingspage.h"
8
9 #include "dolphin_generalsettings.h"
10
11 #include <KLocalizedString>
12
13 #include <QCheckBox>
14 #include <QVBoxLayout>
15
16 StatusBarSettingsPage::StatusBarSettingsPage(QWidget *parent)
17 : SettingsPageBase(parent)
18 , m_showStatusBar(nullptr)
19 , m_showZoomSlider(nullptr)
20 , m_showSpaceInfo(nullptr)
21 {
22 m_showStatusBar = new QCheckBox(i18nc("@option:check", "Show status bar"), this);
23 m_showZoomSlider = new QCheckBox(i18nc("@option:check", "Show zoom slider"), this);
24 m_showSpaceInfo = new QCheckBox(i18nc("@option:check", "Show space information"), this);
25
26 QVBoxLayout *topLayout = new QVBoxLayout(this);
27 topLayout->addWidget(m_showStatusBar);
28 topLayout->addWidget(m_showZoomSlider);
29 topLayout->addWidget(m_showSpaceInfo);
30 topLayout->addStretch();
31
32 loadSettings();
33
34 connect(m_showStatusBar, &QCheckBox::toggled, this, &StatusBarSettingsPage::changed);
35 connect(m_showStatusBar, &QCheckBox::toggled, this, &StatusBarSettingsPage::onShowStatusBarToggled);
36 connect(m_showZoomSlider, &QCheckBox::toggled, this, &StatusBarSettingsPage::changed);
37 connect(m_showSpaceInfo, &QCheckBox::toggled, this, &StatusBarSettingsPage::changed);
38 }
39
40 StatusBarSettingsPage::~StatusBarSettingsPage()
41 {
42 }
43
44 void StatusBarSettingsPage::onShowStatusBarToggled()
45 {
46 const bool checked = m_showStatusBar->isChecked();
47 m_showZoomSlider->setEnabled(checked);
48 m_showSpaceInfo->setEnabled(checked);
49 }
50
51 void StatusBarSettingsPage::applySettings()
52 {
53 GeneralSettings *settings = GeneralSettings::self();
54 settings->setShowStatusBar(m_showStatusBar->isChecked());
55 settings->setShowZoomSlider(m_showZoomSlider->isChecked());
56 settings->setShowSpaceInfo(m_showSpaceInfo->isChecked());
57 settings->save();
58 }
59
60 void StatusBarSettingsPage::restoreDefaults()
61 {
62 GeneralSettings *settings = GeneralSettings::self();
63 settings->useDefaults(true);
64 loadSettings();
65 settings->useDefaults(false);
66 }
67
68 void StatusBarSettingsPage::loadSettings()
69 {
70 m_showStatusBar->setChecked(GeneralSettings::showStatusBar());
71 m_showZoomSlider->setChecked(GeneralSettings::showZoomSlider());
72 m_showSpaceInfo->setChecked(GeneralSettings::showSpaceInfo());
73
74 onShowStatusBarToggled();
75 }