File indexing completed on 2024-04-21 04:58:16
0001 /* This file is part of the KDE project 0002 SPDX-FileCopyrightText: 2000 Carsten Pfeiffer <pfeiffer@kde.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 // Own 0008 #include "konqhistorysettings.h" 0009 0010 // KDE 0011 #include <kconfig.h> 0012 #include <ksharedconfig.h> 0013 #include <kconfiggroup.h> 0014 0015 class KonqHistorySettingsSingleton { 0016 public: 0017 KonqHistorySettings self; 0018 }; 0019 0020 Q_GLOBAL_STATIC(KonqHistorySettingsSingleton, globalHistorySettings) 0021 KonqHistorySettings *KonqHistorySettings::self() 0022 { 0023 return &globalHistorySettings->self; 0024 } 0025 0026 KonqHistorySettings::KonqHistorySettings() 0027 : QObject(nullptr) 0028 { 0029 m_fontOlderThan.setItalic(true); // default 0030 0031 new KonqHistorySettingsAdaptor(this); 0032 const QString dbusPath = QStringLiteral("/KonqHistorySettings"); 0033 const QString dbusInterface = QStringLiteral("org.kde.Konqueror.SidebarHistorySettings"); 0034 QDBusConnection dbus = QDBusConnection::sessionBus(); 0035 dbus.registerObject(dbusPath, this); 0036 dbus.connect(QString(), dbusPath, dbusInterface, QStringLiteral("notifySettingsChanged"), this, SLOT(slotSettingsChanged())); 0037 0038 readSettings(false); 0039 } 0040 0041 KonqHistorySettings::~KonqHistorySettings() 0042 { 0043 } 0044 0045 void KonqHistorySettings::readSettings(bool reparse) 0046 { 0047 KSharedConfigPtr config = KSharedConfig::openConfig(); // read konquerorrc 0048 0049 if (reparse) { 0050 config->reparseConfiguration(); 0051 } 0052 0053 const KConfigGroup cg(config, "HistorySettings"); 0054 0055 int defaultAction = cg.readEntry("Default Action", 0); 0056 m_defaultAction = defaultAction <= static_cast<int>(Action::OpenNewWindow) ? static_cast<Action>(defaultAction) : Action::Auto; 0057 0058 m_valueYoungerThan = cg.readEntry("Value youngerThan", 1); 0059 m_valueOlderThan = cg.readEntry("Value olderThan", 2); 0060 0061 const QString days = QStringLiteral("days"); 0062 const QString metricY = cg.readEntry("Metric youngerThan", days); 0063 m_metricYoungerThan = (metricY == days) ? DAYS : MINUTES; 0064 const QString metricO = cg.readEntry("Metric olderThan", days); 0065 m_metricOlderThan = (metricO == days) ? DAYS : MINUTES; 0066 0067 m_fontYoungerThan = cg.readEntry("Font youngerThan", m_fontYoungerThan); 0068 m_fontOlderThan = cg.readEntry("Font olderThan", m_fontOlderThan); 0069 0070 m_detailedTips = cg.readEntry("Detailed Tooltips", true); 0071 m_sortsByName = cg.readEntry("SortHistory", "byDate") == QLatin1String("byName"); 0072 } 0073 0074 void KonqHistorySettings::applySettings() 0075 { 0076 KConfigGroup config(KSharedConfig::openConfig(), "HistorySettings"); // write to konquerorrc 0077 0078 config.writeEntry("Default Action", static_cast<int>(m_defaultAction)); 0079 0080 config.writeEntry("Value youngerThan", m_valueYoungerThan); 0081 config.writeEntry("Value olderThan", m_valueOlderThan); 0082 0083 const QString minutes = QStringLiteral("minutes"); 0084 const QString days = QStringLiteral("days"); 0085 config.writeEntry("Metric youngerThan", m_metricYoungerThan == DAYS ? days : minutes); 0086 config.writeEntry("Metric olderThan", m_metricOlderThan == DAYS ? days : minutes); 0087 0088 config.writeEntry("Font youngerThan", m_fontYoungerThan); 0089 config.writeEntry("Font olderThan", m_fontOlderThan); 0090 0091 config.writeEntry("Detailed Tooltips", m_detailedTips); 0092 config.writeEntry("SortHistory", m_sortsByName ? "byName" : "byDate"); 0093 0094 // notify konqueror instances about the new configuration 0095 emit notifySettingsChanged(); 0096 } 0097 0098 void KonqHistorySettings::slotSettingsChanged() 0099 { 0100 readSettings(true /*reparse*/); 0101 emit settingsChanged(); 0102 } 0103