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 #pragma once
0008 
0009 #include <QVariantHash>
0010 
0011 #include <KConfigSkeleton>
0012 
0013 class TouchpadParametersBase : public KCoreConfigSkeleton
0014 {
0015 public:
0016     explicit TouchpadParametersBase(const QString &configname = QString(), QObject *parent = nullptr);
0017 
0018     QVariantHash values() const;
0019     void setValues(const QVariantHash &);
0020 
0021     static void setSystemDefaults();
0022     static QVariant systemDefault(const QString &name, const QVariant &hardcoded = QVariant());
0023     template<typename T>
0024     static T systemDefault(const QString &name, const T &hardcoded = T())
0025     {
0026         return qvariant_cast<T>(systemDefault(name, QVariant(hardcoded)));
0027     }
0028 
0029     template<typename T>
0030     static T systemDefaultEnum(const QString &name, const T &hardcoded = T())
0031     {
0032         return static_cast<T>(systemDefault(name, static_cast<int>(hardcoded)));
0033     }
0034 };