File indexing completed on 2024-04-28 16:06:18
0001 /* AUDEX CDDA EXTRACTOR 0002 * SPDX-FileCopyrightText: Copyright (C) 2007 Marco Nelles 0003 * <https://userbase.kde.org/Audex> 0004 * 0005 * SPDX-License-Identifier: GPL-3.0-or-later 0006 */ 0007 0008 #ifndef PARAMETERS_HEADER 0009 #define PARAMETERS_HEADER 0010 0011 #include <QList> 0012 #include <QMap> 0013 #include <QMapIterator> 0014 #include <QObject> 0015 #include <QString> 0016 #include <QVariant> 0017 #include <QDebug> 0018 0019 #include <KLocalizedString> 0020 0021 typedef QList<QString> KeyList; 0022 0023 class Parameters 0024 { 0025 public: 0026 Parameters(); 0027 Parameters(const Parameters &other); 0028 Parameters(const QString &string, const QChar &sep = ','); 0029 Parameters &operator=(const Parameters &other); 0030 ~Parameters(); 0031 0032 void fromString(const QString &string, const QChar &sep = ','); 0033 const QString toString(const QChar &sep = ','); 0034 0035 void fromBase64(const QByteArray &bytearray); 0036 const QByteArray toBase64(); 0037 0038 inline void setValue(const QString &key, const QVariant &value) 0039 { 0040 p_parameters.insert(key.toLower(), value); 0041 } 0042 0043 inline const QVariant value(const QString &key, const QVariant &def = QVariant()) const 0044 { 0045 return p_parameters.value(key.toLower(), def); 0046 } 0047 0048 bool contains(const QString &key) const; 0049 const KeyList keys() const; 0050 bool isEmpty() const; 0051 0052 inline bool error() const { 0053 return !p_error_string.isEmpty(); 0054 } 0055 0056 inline const QString errorString() const { 0057 return p_error_string; 0058 } 0059 0060 private: 0061 QMap<QString, QVariant> p_parameters; 0062 QString p_error_string; 0063 0064 void p_insert_value(const QString& key, const QString& value, const bool is_quoted); 0065 0066 }; 0067 0068 #endif