File indexing completed on 2024-05-12 17:18:55
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 "viewsettingspage.h" 0008 0009 #include "contentdisplaytab.h" 0010 #include "generalviewsettingspage.h" 0011 #include "viewsettingstab.h" 0012 #include <KLocalizedString> 0013 0014 #include <QTabWidget> 0015 #include <QVBoxLayout> 0016 0017 ViewSettingsPage::ViewSettingsPage(const QUrl &url, QWidget *parent) 0018 : SettingsPageBase(parent) 0019 , m_tabs() 0020 { 0021 QVBoxLayout *topLayout = new QVBoxLayout(this); 0022 topLayout->setContentsMargins(0, 0, 0, 0); 0023 0024 tabWidget = new QTabWidget(this); 0025 tabWidget->setDocumentMode(true); 0026 0027 // General View tab 0028 GeneralViewSettingsPage *generalViewPage = new GeneralViewSettingsPage(url, tabWidget); 0029 tabWidget->addTab(generalViewPage, QIcon::fromTheme(QStringLiteral("description")), i18nc("@title:tab General View settings", "General")); 0030 connect(generalViewPage, &GeneralViewSettingsPage::changed, this, &ViewSettingsPage::changed); 0031 0032 // Content Display Tab 0033 contentDisplayTab = new ContentDisplayTab(tabWidget); 0034 tabWidget->addTab(contentDisplayTab, 0035 QIcon::fromTheme(QStringLiteral("view-choose")), 0036 i18nc("@title:tab how file items columns are displayed", "Content Display")); 0037 connect(contentDisplayTab, &SettingsPageBase::changed, this, &ViewSettingsPage::changed); 0038 0039 // Initialize 'Icons' tab 0040 ViewSettingsTab *iconsTab = new ViewSettingsTab(ViewSettingsTab::IconsMode, tabWidget); 0041 tabWidget->addTab(iconsTab, QIcon::fromTheme(QStringLiteral("view-list-icons")), i18nc("@title:tab", "Icons")); 0042 connect(iconsTab, &ViewSettingsTab::changed, this, &ViewSettingsPage::changed); 0043 0044 // Initialize 'Compact' tab 0045 ViewSettingsTab *compactTab = new ViewSettingsTab(ViewSettingsTab::CompactMode, tabWidget); 0046 tabWidget->addTab(compactTab, QIcon::fromTheme(QStringLiteral("view-list-details")), i18nc("@title:tab", "Compact")); 0047 connect(compactTab, &ViewSettingsTab::changed, this, &ViewSettingsPage::changed); 0048 0049 // Initialize 'Details' tab 0050 ViewSettingsTab *detailsTab = new ViewSettingsTab(ViewSettingsTab::DetailsMode, tabWidget); 0051 tabWidget->addTab(detailsTab, QIcon::fromTheme(QStringLiteral("view-list-tree")), i18nc("@title:tab", "Details")); 0052 connect(detailsTab, &ViewSettingsTab::changed, this, &ViewSettingsPage::changed); 0053 0054 m_tabs.append(generalViewPage); 0055 m_tabs.append(contentDisplayTab); 0056 m_tabs.append(iconsTab); 0057 m_tabs.append(compactTab); 0058 m_tabs.append(detailsTab); 0059 0060 topLayout->addWidget(tabWidget, 0); 0061 } 0062 0063 ViewSettingsPage::~ViewSettingsPage() 0064 { 0065 } 0066 0067 void ViewSettingsPage::applySettings() 0068 { 0069 for (SettingsPageBase *tab : std::as_const(m_tabs)) { 0070 tab->applySettings(); 0071 } 0072 } 0073 0074 void ViewSettingsPage::restoreDefaults() 0075 { 0076 for (SettingsPageBase *tab : std::as_const(m_tabs)) { 0077 if (tabWidget->currentWidget() == tab) { 0078 tab->restoreDefaults(); 0079 return; 0080 } 0081 } 0082 } 0083 0084 #include "moc_viewsettingspage.cpp"