File indexing completed on 2024-05-19 05:00:54

0001 /*
0002     kcookiesmain.cpp - Cookies configuration
0003 
0004     First version of cookies configuration:
0005         SPDX-FileCopyrightText: Waldo Bastian <bastian@kde.org>
0006     This dialog box:
0007         SPDX-FileCopyrightText: David Faure <faure@kde.org>
0008 */
0009 
0010 // Own
0011 #include "kcookiesmain.h"
0012 
0013 // Local
0014 #include "kcookiesmanagement.h"
0015 #include "kcookiespolicies.h"
0016 
0017 // Qt
0018 #include <QTabWidget>
0019 #include <QtGlobal>
0020 
0021 // KDE
0022 #include <KLocalizedString>
0023 #include <KPluginFactory>
0024 
0025 KCookiesMain::KCookiesMain(QObject *parent, const KPluginMetaData &md, const QVariantList &)
0026     : KCModule(parent, md)
0027 {
0028     management = nullptr;
0029 
0030     QVBoxLayout *layout = new QVBoxLayout(widget());
0031     tab = new QTabWidget(widget());
0032     layout->addWidget(tab);
0033 
0034     policies = new KCookiesPolicies(widget(), md);
0035     tab->addTab(policies->widget(), i18n("&Policy"));
0036     management = new KCookiesManagement(widget(), md);
0037     tab->addTab(management->widget(), i18n("&Management"));
0038 
0039 #if QT_VERSION_MAJOR < 6
0040     connect(policies, QOverload<bool>::of(&KCModule::changed), this, QOverload<bool>::of(&KCModule::changed));
0041     connect(management, QOverload<bool>::of(&KCModule::changed), this, QOverload<bool>::of(&KCModule::changed));
0042 #else
0043     connect(policies, &KCModule::needsSaveChanged, this, &KCookiesMain::updateNeedsSave);
0044     connect(management, &KCModule::needsSaveChanged, this, &KCookiesMain::updateNeedsSave);
0045 #endif
0046 }
0047 
0048 KCookiesMain::~KCookiesMain()
0049 {
0050 }
0051 
0052 void KCookiesMain::updateNeedsSave()
0053 {
0054     setNeedsSave(policies->needsSave() || management->needsSave());
0055 }
0056 
0057 void KCookiesMain::save()
0058 {
0059     policies->save();
0060     if (management) {
0061         management->save();
0062     }
0063     KCModule::save();
0064 }
0065 
0066 void KCookiesMain::load()
0067 {
0068     policies->load();
0069     if (management) {
0070         management->load();
0071     }
0072     KCModule::load();
0073 }
0074 
0075 void KCookiesMain::defaults()
0076 {
0077     if (tab->currentWidget() == policies->widget()) {
0078         policies->defaults();
0079     } else if (management) {
0080         management->defaults();
0081     }
0082 
0083 #if QT_VERSION_MAJOR > 5
0084     setRepresentsDefaults(true);
0085 #endif
0086 }