File indexing completed on 2024-05-05 05:00:09
0001 /* 0002 main.cpp 0003 0004 SPDX-FileCopyrightText: 1999 Matthias Hoelzer-Kluepfel <hoelzer@kde.org> 0005 SPDX-FileCopyrightText: 2000 Daniel Molkentin <molkentin@kde.org> 0006 0007 Requires the Qt widget libraries, available at no cost at 0008 http://www.troll.no/ 0009 0010 SPDX-License-Identifier: GPL-2.0-or-later 0011 */ 0012 0013 // Own 0014 #include "main.h" 0015 0016 0017 // Qt 0018 #include <QTabWidget> 0019 #include <QVBoxLayout> 0020 #include <QDBusConnection> 0021 #include <QDBusMessage> 0022 0023 // KDE 0024 #include <kaboutdata.h> 0025 #include <KPluginFactory> 0026 #include <KSharedConfig> 0027 #include <KConfigGroup> 0028 #include <KLocalizedString> 0029 0030 // Local 0031 #include "jsopts.h" 0032 #include "javaopts.h" 0033 #include "appearance.h" 0034 #include "htmlopts.h" 0035 #include "filteropts.h" 0036 #include "generalopts.h" 0037 0038 KJSParts::KJSParts(QObject *parent, const KPluginMetaData &md, const QVariantList &) 0039 : KCModule(parent, md) 0040 { 0041 mConfig = KSharedConfig::openConfig(QStringLiteral("konquerorrc"), KConfig::NoGlobals); 0042 0043 QVBoxLayout *layout = new QVBoxLayout(widget()); 0044 tab = new QTabWidget(widget()); 0045 layout->addWidget(tab); 0046 0047 // ### the groupname is duplicated in KJSParts::save 0048 java = new KJavaOptions(mConfig, QStringLiteral("Java/JavaScript Settings"), widget()); 0049 tab->addTab(java->widget(), i18n("&Java")); 0050 #if QT_VERSION_MAJOR < 6 0051 connect(java, QOverload<bool>::of(&KJavaOptions::changed), this, &KJSParts::markAsChanged); 0052 #else 0053 connect(java, &KJavaOptions::needsSaveChanged, this, &KJSParts::needsSaveChanged); 0054 #endif 0055 0056 javascript = new KJavaScriptOptions(mConfig, QStringLiteral("Java/JavaScript Settings"), widget()); 0057 tab->addTab(javascript->widget(), i18n("Java&Script")); 0058 #if QT_VERSION_MAJOR < 6 0059 connect(javascript, QOverload<bool>::of(&KJavaScriptOptions::changed), this, &KJSParts::markAsChanged); 0060 #else 0061 connect(javascript, &KJavaScriptOptions::needsSaveChanged, this, &KJSParts::needsSaveChanged); 0062 #endif 0063 } 0064 0065 void KJSParts::load() 0066 { 0067 javascript->load(); 0068 java->load(); 0069 KCModule::load(); 0070 } 0071 0072 void KJSParts::save() 0073 { 0074 javascript->save(); 0075 java->save(); 0076 0077 // delete old keys after they have been migrated 0078 if (javascript->_removeJavaScriptDomainAdvice 0079 || java->_removeJavaScriptDomainAdvice) { 0080 mConfig->group("Java/JavaScript Settings").deleteEntry("JavaScriptDomainAdvice"); 0081 javascript->_removeJavaScriptDomainAdvice = false; 0082 java->_removeJavaScriptDomainAdvice = false; 0083 } 0084 0085 mConfig->sync(); 0086 0087 // Send signal to konqueror 0088 // Warning. In case something is added/changed here, keep kfmclient in sync 0089 QDBusMessage message = 0090 QDBusMessage::createSignal(QStringLiteral("/KonqMain"), QStringLiteral("org.kde.Konqueror.Main"), QStringLiteral("reparseConfiguration")); 0091 QDBusConnection::sessionBus().send(message); 0092 KCModule::save(); 0093 } 0094 0095 void KJSParts::defaults() 0096 { 0097 javascript->defaults(); 0098 java->defaults(); 0099 0100 #if QT_VERSION_MAJOR > 5 0101 setRepresentsDefaults(true); 0102 #endif 0103 }