File indexing completed on 2024-05-12 17:18:54

0001 /*
0002  * SPDX-FileCopyrightText: 2006 Peter Penz <peter.penz@gmx.at>
0003  *
0004  * SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 
0007 #include "interfacesettingspage.h"
0008 
0009 #include "confirmationssettingspage.h"
0010 #include "folderstabssettingspage.h"
0011 #include "previewssettingspage.h"
0012 #include "statusandlocationbarssettingspage.h"
0013 
0014 #include <KLocalizedString>
0015 
0016 #include <QTabWidget>
0017 #include <QVBoxLayout>
0018 
0019 InterfaceSettingsPage::InterfaceSettingsPage(QWidget *parent)
0020     : SettingsPageBase(parent)
0021     , m_pages()
0022 {
0023     QVBoxLayout *topLayout = new QVBoxLayout(this);
0024     topLayout->setContentsMargins(0, 0, 0, 0);
0025 
0026     QTabWidget *tabWidget = new QTabWidget(this);
0027     tabWidget->setDocumentMode(true);
0028 
0029     // initialize 'Folders & Tabs' tab
0030     FoldersTabsSettingsPage *foldersTabsPage = new FoldersTabsSettingsPage(tabWidget);
0031     tabWidget->addTab(foldersTabsPage, i18nc("@title:tab Folders & Tabs settings", "Folders && Tabs"));
0032     connect(foldersTabsPage, &FoldersTabsSettingsPage::changed, this, &InterfaceSettingsPage::changed);
0033 
0034     // initialize 'Previews' tab
0035     PreviewsSettingsPage *previewsPage = new PreviewsSettingsPage(tabWidget);
0036     tabWidget->addTab(previewsPage, i18nc("@title:tab Previews settings", "Previews"));
0037     connect(previewsPage, &PreviewsSettingsPage::changed, this, &InterfaceSettingsPage::changed);
0038 
0039     // initialize 'Context Menu' tab
0040     ConfirmationsSettingsPage *confirmationsPage = new ConfirmationsSettingsPage(tabWidget);
0041     tabWidget->addTab(confirmationsPage, i18nc("@title:tab Confirmations settings", "Confirmations"));
0042     connect(confirmationsPage, &ConfirmationsSettingsPage::changed, this, &InterfaceSettingsPage::changed);
0043 
0044     // initialize 'Status & location bars' tab
0045     StatusAndLocationBarsSettingsPage *statusAndLocationBarsPage = new StatusAndLocationBarsSettingsPage(tabWidget, foldersTabsPage);
0046     tabWidget->addTab(statusAndLocationBarsPage, i18nc("@title:tab Status & Location bars settings", "Status && Location bars"));
0047     connect(statusAndLocationBarsPage, &StatusAndLocationBarsSettingsPage::changed, this, &InterfaceSettingsPage::changed);
0048 
0049     m_pages.append(foldersTabsPage);
0050     m_pages.append(previewsPage);
0051     m_pages.append(confirmationsPage);
0052     m_pages.append(statusAndLocationBarsPage);
0053 
0054     topLayout->addWidget(tabWidget, 0, {});
0055 }
0056 
0057 InterfaceSettingsPage::~InterfaceSettingsPage()
0058 {
0059 }
0060 
0061 void InterfaceSettingsPage::applySettings()
0062 {
0063     for (SettingsPageBase *page : std::as_const(m_pages)) {
0064         page->applySettings();
0065     }
0066 }
0067 
0068 void InterfaceSettingsPage::restoreDefaults()
0069 {
0070     for (SettingsPageBase *page : std::as_const(m_pages)) {
0071         page->restoreDefaults();
0072     }
0073 }
0074 
0075 #include "moc_interfacesettingspage.cpp"