File indexing completed on 2024-05-12 05:35:54

0001 /*
0002     SPDX-FileCopyrightText: 2013 Alexander Mezin <mezin.alexander@gmail.com>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #include "touchpadparametersbase.h"
0008 #include "touchpadbackend.h"
0009 
0010 namespace
0011 {
0012 KConfigGroup &systemDefaults()
0013 {
0014     static KSharedConfig::Ptr p(KSharedConfig::openConfig(".touchpaddefaults", KConfig::SimpleConfig, QStandardPaths::TempLocation));
0015     static KConfigGroup group(p->group(QStringLiteral("parameters")));
0016     return group;
0017 }
0018 
0019 }
0020 
0021 TouchpadParametersBase::TouchpadParametersBase(const QString &configname, QObject *parent)
0022     : KCoreConfigSkeleton(configname, parent)
0023 {
0024     if (!systemDefaults().exists()) {
0025         setSystemDefaults();
0026     }
0027 }
0028 
0029 QVariantHash TouchpadParametersBase::values() const
0030 {
0031     QVariantHash r;
0032     const auto itemList = items();
0033     for (const KConfigSkeletonItem *skel : itemList) {
0034         r[skel->name()] = skel->property();
0035     }
0036     return r;
0037 }
0038 
0039 void TouchpadParametersBase::setValues(const QVariantHash &v)
0040 {
0041     for (QVariantHash::ConstIterator i = v.begin(); i != v.end(); ++i) {
0042         KConfigSkeletonItem *j = findItem(i.key());
0043         if (j) {
0044             j->setProperty(i.value());
0045         }
0046     }
0047 }
0048 
0049 void TouchpadParametersBase::setSystemDefaults()
0050 {
0051     TouchpadBackend *backend = TouchpadBackend::implementation();
0052     if (!backend) {
0053         return;
0054     }
0055     QVariantHash v;
0056     backend->getConfig(v);
0057 
0058     for (QVariantHash::ConstIterator i = v.constBegin(); i != v.constEnd(); ++i) {
0059         systemDefaults().writeEntry(i.key(), i.value());
0060     }
0061     systemDefaults().sync();
0062 }
0063 
0064 QVariant TouchpadParametersBase::systemDefault(const QString &name, const QVariant &hardcoded)
0065 {
0066     return systemDefaults().readEntry(name, hardcoded);
0067 }