File indexing completed on 2024-04-28 05:45:22

0001 /*
0002  * SPDX-FileCopyrightText: 2020 Elvis Angelaccio <elvis.angelaccio@kde.org
0003  *
0004  * SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 
0007 #include "settingsdatasource.h"
0008 #include "dolphin_generalsettings.h"
0009 #include "dolphinmainwindow.h"
0010 
0011 #include <KLocalizedString>
0012 #include <KUserFeedback/Provider>
0013 
0014 #include <QApplication>
0015 #include <QVariant>
0016 
0017 SettingsDataSource::SettingsDataSource()
0018     : KUserFeedback::AbstractDataSource(QStringLiteral("settings"), KUserFeedback::Provider::DetailedSystemInformation)
0019 {
0020 }
0021 
0022 QString SettingsDataSource::name() const
0023 {
0024     return i18nc("name of kuserfeedback data source provided by dolphin", "Settings");
0025 }
0026 
0027 QString SettingsDataSource::description() const
0028 {
0029     return i18nc("description of kuserfeedback data source provided by dolphin", "A subset of Dolphin settings.");
0030 }
0031 
0032 QVariant SettingsDataSource::data()
0033 {
0034     if (!m_mainWindow) {
0035         // This assumes there is only one DolphinMainWindow per process.
0036         const auto topLevelWidgets = QApplication::topLevelWidgets();
0037         for (const auto widget : topLevelWidgets) {
0038             if (qobject_cast<DolphinMainWindow *>(widget)) {
0039                 m_mainWindow = static_cast<DolphinMainWindow *>(widget);
0040                 break;
0041             }
0042         }
0043     }
0044 
0045     QVariantMap map;
0046 
0047     if (m_mainWindow) {
0048         map.insert(QStringLiteral("informationPanelEnabled"), m_mainWindow->isInformationPanelEnabled());
0049         map.insert(QStringLiteral("foldersPanelEnabled"), m_mainWindow->isFoldersPanelEnabled());
0050     }
0051 
0052     map.insert(QStringLiteral("tooltipsEnabled"), GeneralSettings::showToolTips());
0053     map.insert(QStringLiteral("browseArchivesEnable"), GeneralSettings::browseThroughArchives());
0054 
0055     return map;
0056 }