Warning, file /system/dolphin/src/settings/kcm/kcmdolphinviewmodes.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 /*
0002  * SPDX-FileCopyrightText: 2008 Peter Penz <peter.penz19@gmail.com>
0003  *
0004  * SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 
0007 #include "kcmdolphinviewmodes.h"
0008 
0009 #include "settings/viewmodes/viewsettingstab.h"
0010 
0011 #include <KCModule>
0012 #include <KLocalizedString>
0013 #include <KPluginFactory>
0014 
0015 #include <QDBusConnection>
0016 #include <QDBusMessage>
0017 #include <QIcon>
0018 #include <QTabWidget>
0019 #include <QVBoxLayout>
0020 
0021 K_PLUGIN_CLASS_WITH_JSON(DolphinViewModesConfigModule, "kcmdolphinviewmodes.json")
0022 
0023 DolphinViewModesConfigModule::DolphinViewModesConfigModule(QObject *parent, const KPluginMetaData &data)
0024     : KCModule(parent, data)
0025     , m_tabs()
0026 {
0027     setButtons(KCModule::Default | KCModule::Help | KCModule::Apply);
0028 
0029     QVBoxLayout *topLayout = new QVBoxLayout(widget());
0030     topLayout->setContentsMargins(0, 0, 0, 0);
0031 
0032     QTabWidget *tabWidget = new QTabWidget(widget());
0033 
0034     // Initialize 'Icons' tab
0035     ViewSettingsTab *iconsTab = new ViewSettingsTab(ViewSettingsTab::IconsMode, tabWidget);
0036     tabWidget->addTab(iconsTab, QIcon::fromTheme(QStringLiteral("view-list-icons")), i18nc("@title:tab", "Icons"));
0037     connect(iconsTab, &ViewSettingsTab::changed, this, &DolphinViewModesConfigModule::viewModeChanged);
0038 
0039     // Initialize 'Compact' tab
0040     ViewSettingsTab *compactTab = new ViewSettingsTab(ViewSettingsTab::CompactMode, tabWidget);
0041     tabWidget->addTab(compactTab, QIcon::fromTheme(QStringLiteral("view-list-details")), i18nc("@title:tab", "Compact"));
0042     connect(compactTab, &ViewSettingsTab::changed, this, &DolphinViewModesConfigModule::viewModeChanged);
0043 
0044     // Initialize 'Details' tab
0045     ViewSettingsTab *detailsTab = new ViewSettingsTab(ViewSettingsTab::DetailsMode, tabWidget);
0046     tabWidget->addTab(detailsTab, QIcon::fromTheme(QStringLiteral("view-list-tree")), i18nc("@title:tab", "Details"));
0047     connect(detailsTab, &ViewSettingsTab::changed, this, &DolphinViewModesConfigModule::viewModeChanged);
0048 
0049     m_tabs.append(iconsTab);
0050     m_tabs.append(compactTab);
0051     m_tabs.append(detailsTab);
0052 
0053     topLayout->addWidget(tabWidget, 0, {});
0054 }
0055 
0056 DolphinViewModesConfigModule::~DolphinViewModesConfigModule()
0057 {
0058 }
0059 
0060 void DolphinViewModesConfigModule::save()
0061 {
0062     for (ViewSettingsTab *tab : std::as_const(m_tabs)) {
0063         tab->applySettings();
0064     }
0065     reparseConfiguration();
0066 }
0067 
0068 void DolphinViewModesConfigModule::defaults()
0069 {
0070     for (ViewSettingsTab *tab : std::as_const(m_tabs)) {
0071         tab->restoreDefaults();
0072     }
0073     reparseConfiguration();
0074 }
0075 
0076 void DolphinViewModesConfigModule::reparseConfiguration()
0077 {
0078     QDBusMessage message =
0079         QDBusMessage::createSignal(QStringLiteral("/KonqMain"), QStringLiteral("org.kde.Konqueror.Main"), QStringLiteral("reparseConfiguration"));
0080     QDBusConnection::sessionBus().send(message);
0081 }
0082 
0083 void DolphinViewModesConfigModule::viewModeChanged()
0084 {
0085     markAsChanged();
0086 }
0087 
0088 #include "kcmdolphinviewmodes.moc"
0089 
0090 #include "moc_kcmdolphinviewmodes.cpp"