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 }