File indexing completed on 2025-01-26 05:09:26
0001 /* 0002 * This file is part of the KDE wacomtablet project. For copyright 0003 * information and license terms see the AUTHORS and COPYING files 0004 * in the top-level directory of this distribution. 0005 * 0006 * This program is free software; you can redistribute it and/or 0007 * modify it under the terms of the GNU General Public License as 0008 * published by the Free Software Foundation; either version 2 of 0009 * the License, or (at your option) any later version. 0010 * 0011 * This program is distributed in the hope that it will be useful, 0012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 0013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 0014 * GNU General Public License for more details. 0015 * 0016 * You should have received a copy of the GNU General Public License 0017 * along with this program. If not, see <http://www.gnu.org/licenses/>. 0018 */ 0019 0020 #ifndef PROPERTYADAPTORMOCK_H 0021 #define PROPERTYADAPTORMOCK_H 0022 0023 #include "propertyadaptor.h" 0024 0025 #include <QMap> 0026 0027 namespace Wacom 0028 { 0029 /** 0030 * A property adaptor mock template class which can be used for 0031 * any kind of property that uses QString as its key type. 0032 */ 0033 template<class T> 0034 class PropertyAdaptorMock : public PropertyAdaptor 0035 { 0036 public: 0037 PropertyAdaptorMock() 0038 : PropertyAdaptor() 0039 { 0040 } 0041 0042 const QList<Property> getProperties() const override 0043 { 0044 return T::ids(); 0045 } 0046 0047 const QString getProperty(const Property &property) const override 0048 { 0049 if (!supportsProperty(property)) { 0050 return QString(); 0051 } 0052 0053 return m_properties.value(property.key()); 0054 } 0055 0056 bool setProperty(const Wacom::Property &property, const QString &value) override 0057 { 0058 if (!supportsProperty(property)) { 0059 return false; 0060 } 0061 0062 m_properties.insert(property.key(), value); 0063 return true; 0064 } 0065 0066 bool supportsProperty(const Property &property) const override 0067 { 0068 return (T::map(property) != NULL); 0069 } 0070 0071 QMap<QString, QString> m_properties; 0072 }; 0073 } 0074 #endif