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

0001 /*
0002     SPDX-FileCopyrightText: 2008 Xavier Vello <xavier.vello@gmail.com>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 // Own
0008 #include "bookmarks.h"
0009 
0010 // Qt
0011 #include <QCheckBox>
0012 #include <QPushButton>
0013 
0014 // KDE
0015 #include <kconfig.h>
0016 #include <kpluginfactory.h>
0017 #include <KLocalizedString>
0018 #include <KConfigGroup>
0019 #include <kimagecache.h>
0020 
0021 K_PLUGIN_CLASS_WITH_JSON(BookmarksConfigModule, "kcm_bookmarks.json")
0022 
0023 BookmarksConfigModule::BookmarksConfigModule(QObject *parent, const KPluginMetaData &md, const QVariantList &)
0024     : KCModule(parent, md)
0025 {
0026     ui.setupUi(widget());
0027 }
0028 
0029 BookmarksConfigModule::~BookmarksConfigModule()
0030 {
0031 }
0032 
0033 void BookmarksConfigModule::clearCache()
0034 {
0035     KImageCache::deleteCache(QStringLiteral("kio_bookmarks"));
0036 }
0037 
0038 void BookmarksConfigModule::load()
0039 {
0040     KConfig *c = new KConfig(QStringLiteral("kiobookmarksrc"));
0041     KConfigGroup group = c->group("General");
0042 
0043     ui.sbColumns->setValue(group.readEntry("Columns", 4));
0044     ui.cbShowBackgrounds->setChecked(group.readEntry("ShowBackgrounds", true));
0045     ui.cbShowRoot->setChecked(group.readEntry("ShowRoot", true));
0046     ui.cbFlattenTree->setChecked(group.readEntry("FlattenTree", false));
0047     ui.cbShowPlaces->setChecked(group.readEntry("ShowPlaces", true));
0048     ui.sbCacheSize->setValue(group.readEntry("CacheSize", 5 * 1024));
0049 
0050     // Config changed notifications...
0051     connect(ui.sbColumns, QOverload<int>::of(&QSpinBox::valueChanged), this, &BookmarksConfigModule::configChanged);
0052     connect(ui.cbShowBackgrounds, &QAbstractButton::toggled, this, &BookmarksConfigModule::configChanged);
0053     connect(ui.cbShowRoot, &QAbstractButton::toggled, this, &BookmarksConfigModule::configChanged);
0054     connect(ui.cbFlattenTree, &QAbstractButton::toggled, this, &BookmarksConfigModule::configChanged);
0055     connect(ui.cbShowPlaces, &QAbstractButton::toggled, this, &BookmarksConfigModule::configChanged);
0056     connect(ui.sbCacheSize, QOverload<int>::of(&QSpinBox::valueChanged), this, &BookmarksConfigModule::configChanged);
0057 
0058     connect(ui.clearCacheButton, &QAbstractButton::clicked, this, &BookmarksConfigModule::clearCache);
0059 
0060     delete c;
0061     setNeedsSave(false);
0062 }
0063 
0064 void BookmarksConfigModule::save()
0065 {
0066     KConfig *c = new KConfig(QStringLiteral("kiobookmarksrc"));
0067     KConfigGroup group = c->group("General");
0068     group.writeEntry("Columns", ui.sbColumns->value());
0069     group.writeEntry("ShowBackgrounds", ui.cbShowBackgrounds->isChecked());
0070     group.writeEntry("ShowRoot", ui.cbShowRoot->isChecked());
0071     group.writeEntry("FlattenTree", ui.cbFlattenTree->isChecked());
0072     group.writeEntry("ShowPlaces", ui.cbShowPlaces->isChecked());
0073     group.writeEntry("CacheSize", ui.sbCacheSize->value());
0074 
0075     c->sync();
0076     delete c;
0077     setNeedsSave(false);
0078 }
0079 
0080 void BookmarksConfigModule::defaults()
0081 {
0082     ui.sbColumns->setValue(4);
0083     ui.cbShowBackgrounds->setChecked(true);
0084     ui.cbShowRoot->setChecked(true);
0085     ui.cbShowPlaces->setChecked(true);
0086     ui.cbFlattenTree->setChecked(false);
0087     ui.sbCacheSize->setValue(5 * 1024);
0088 }
0089 
0090 void BookmarksConfigModule::configChanged()
0091 {
0092     setNeedsSave(true);
0093 }
0094 
0095 #include "bookmarks.moc"