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"