]> cloud.milkyroute.net Git - dolphin.git/blob - src/settings/interface/interfacesettingspage.cpp
SVN_SILENT made messages (.desktop file) - always resolve ours
[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 #if HAVE_BALOO
15 #include "panelsettingspage.h"
16 #endif
17
18 #include <KLocalizedString>
19
20 #include <QTabBar>
21 #include <QTabWidget>
22 #include <QVBoxLayout>
23
24 InterfaceSettingsPage::InterfaceSettingsPage(QWidget *parent)
25 : SettingsPageBase(parent)
26 , m_pages()
27 {
28 QVBoxLayout *topLayout = new QVBoxLayout(this);
29 topLayout->setContentsMargins(0, 0, 0, 0);
30
31 QTabWidget *tabWidget = new QTabWidget(this);
32 tabWidget->setDocumentMode(true);
33 tabWidget->tabBar()->setExpanding(true);
34
35 // initialize 'Folders & Tabs' tab
36 FoldersTabsSettingsPage *foldersTabsPage = new FoldersTabsSettingsPage(tabWidget);
37 tabWidget->addTab(foldersTabsPage, i18nc("@title:tab Folders & Tabs settings", "Folders && Tabs"));
38 connect(foldersTabsPage, &FoldersTabsSettingsPage::changed, this, &InterfaceSettingsPage::changed);
39
40 // initialize 'Previews' tab
41 PreviewsSettingsPage *previewsPage = new PreviewsSettingsPage(tabWidget);
42 tabWidget->addTab(previewsPage, i18nc("@title:tab Previews settings", "Previews"));
43 connect(previewsPage, &PreviewsSettingsPage::changed, this, &InterfaceSettingsPage::changed);
44
45 // initialize 'Context Menu' tab
46 ConfirmationsSettingsPage *confirmationsPage = new ConfirmationsSettingsPage(tabWidget);
47 tabWidget->addTab(confirmationsPage, i18nc("@title:tab Confirmations settings", "Confirmations"));
48 connect(confirmationsPage, &ConfirmationsSettingsPage::changed, this, &InterfaceSettingsPage::changed);
49
50 #if HAVE_BALOO
51 // initialize 'Panel' tab
52 PanelSettingsPage *panelPage = new PanelSettingsPage(tabWidget);
53 tabWidget->addTab(panelPage, i18nc("@title:tab Panels settings", "Panels"));
54 connect(panelPage, &PanelSettingsPage::changed, this, &InterfaceSettingsPage::changed);
55 #endif
56
57 // initialize 'Status & location bars' tab
58 StatusAndLocationBarsSettingsPage *statusAndLocationBarsPage = new StatusAndLocationBarsSettingsPage(tabWidget, foldersTabsPage);
59 tabWidget->addTab(statusAndLocationBarsPage, i18nc("@title:tab Status & Location bars settings", "Status && Location bars"));
60 connect(statusAndLocationBarsPage, &StatusAndLocationBarsSettingsPage::changed, this, &InterfaceSettingsPage::changed);
61
62 m_pages.append(foldersTabsPage);
63 m_pages.append(previewsPage);
64 m_pages.append(confirmationsPage);
65
66 #if HAVE_BALOO
67 m_pages.append(panelPage);
68 #endif
69
70 m_pages.append(statusAndLocationBarsPage);
71
72 topLayout->addWidget(tabWidget, 0, {});
73 }
74
75 InterfaceSettingsPage::~InterfaceSettingsPage()
76 {
77 }
78
79 void InterfaceSettingsPage::applySettings()
80 {
81 for (SettingsPageBase *page : std::as_const(m_pages)) {
82 page->applySettings();
83 }
84 }
85
86 void InterfaceSettingsPage::restoreDefaults()
87 {
88 for (SettingsPageBase *page : std::as_const(m_pages)) {
89 page->restoreDefaults();
90 }
91 }
92
93 #include "moc_interfacesettingspage.cpp"