]> cloud.milkyroute.net Git - dolphin.git/blob - src/settings/interface/interfacesettingspage.cpp
6a3fc8c905dd6636d6e684d3be18bfe7e843f891
[dolphin.git] / src / settings / interface / interfacesettingspage.cpp
1 /*
2 * SPDX-FileCopyrightText: 2006 Peter Penz <peter.penz@gmx.at>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
7 #include "interfacesettingspage.h"
8
9 #include "confirmationssettingspage.h"
10 #include "folderstabssettingspage.h"
11 #include "previewssettingspage.h"
12 #include "statusandlocationbarssettingspage.h"
13
14 #include <KLocalizedString>
15
16 #include <QTabWidget>
17 #include <QVBoxLayout>
18
19 InterfaceSettingsPage::InterfaceSettingsPage(QWidget *parent)
20 : SettingsPageBase(parent)
21 , m_pages()
22 {
23 QVBoxLayout *topLayout = new QVBoxLayout(this);
24 topLayout->setContentsMargins(0, 0, 0, 0);
25
26 QTabWidget *tabWidget = new QTabWidget(this);
27
28 // initialize 'Folders & Tabs' tab
29 FoldersTabsSettingsPage *foldersTabsPage = new FoldersTabsSettingsPage(tabWidget);
30 tabWidget->addTab(foldersTabsPage, i18nc("@title:tab Folders & Tabs settings", "Folders && Tabs"));
31 connect(foldersTabsPage, &FoldersTabsSettingsPage::changed, this, &InterfaceSettingsPage::changed);
32
33 // initialize 'Previews' tab
34 PreviewsSettingsPage *previewsPage = new PreviewsSettingsPage(tabWidget);
35 tabWidget->addTab(previewsPage, i18nc("@title:tab Previews settings", "Previews"));
36 connect(previewsPage, &PreviewsSettingsPage::changed, this, &InterfaceSettingsPage::changed);
37
38 // initialize 'Context Menu' tab
39 ConfirmationsSettingsPage *confirmationsPage = new ConfirmationsSettingsPage(tabWidget);
40 tabWidget->addTab(confirmationsPage, i18nc("@title:tab Confirmations settings", "Confirmations"));
41 connect(confirmationsPage, &ConfirmationsSettingsPage::changed, this, &InterfaceSettingsPage::changed);
42
43 // initialize 'Status & location bars' tab
44 StatusAndLocationBarsSettingsPage *statusAndLocationBarsPage = new StatusAndLocationBarsSettingsPage(tabWidget, foldersTabsPage);
45 tabWidget->addTab(statusAndLocationBarsPage, i18nc("@title:tab Status & Location bars settings", "Status && Location bars"));
46 connect(statusAndLocationBarsPage, &StatusAndLocationBarsSettingsPage::changed, this, &InterfaceSettingsPage::changed);
47
48 m_pages.append(foldersTabsPage);
49 m_pages.append(previewsPage);
50 m_pages.append(confirmationsPage);
51 m_pages.append(statusAndLocationBarsPage);
52
53 topLayout->addWidget(tabWidget, 0, {});
54 }
55
56 InterfaceSettingsPage::~InterfaceSettingsPage()
57 {
58 }
59
60 void InterfaceSettingsPage::applySettings()
61 {
62 for (SettingsPageBase *page : std::as_const(m_pages)) {
63 page->applySettings();
64 }
65 }
66
67 void InterfaceSettingsPage::restoreDefaults()
68 {
69 for (SettingsPageBase *page : std::as_const(m_pages)) {
70 page->restoreDefaults();
71 }
72 }
73
74 #include "moc_interfacesettingspage.cpp"