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 }