File indexing completed on 2024-12-01 11:19:37
0001 // clang-format off 0002 /* 0003 * KDiff3 - Text Diff And Merge Tool 0004 * 0005 * SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de 0006 * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com 0007 * SPDX-License-Identifier: GPL-2.0-or-later 0008 */ 0009 // clang-format on 0010 0011 #ifndef COMMON_H 0012 #define COMMON_H 0013 0014 #include <algorithm> 0015 #include <map> 0016 0017 #include <QAtomicInt> 0018 #include <QString> 0019 #include <QStringList> 0020 0021 class QFont; 0022 class QColor; 0023 class QSize; 0024 class QPoint; 0025 class QTextStream; 0026 0027 class ValueMap 0028 { 0029 private: 0030 std::map<QString, QString> m_map; 0031 0032 public: 0033 ValueMap(); 0034 virtual ~ValueMap(); 0035 0036 void save(QTextStream& ts); 0037 void load(QTextStream& ts); 0038 QString getAsString(); 0039 0040 virtual void writeEntry(const QString&, const QFont&); 0041 virtual void writeEntry(const QString&, const QColor&); 0042 virtual void writeEntry(const QString&, const QSize&); 0043 virtual void writeEntry(const QString&, const QPoint&); 0044 virtual void writeEntry(const QString&, qint32); 0045 virtual void writeEntry(const QString&, bool); 0046 virtual void writeEntry(const QString&, const QStringList&); 0047 virtual void writeEntry(const QString&, const QString&); 0048 virtual void writeEntry(const QString&, const char*); 0049 0050 QString readEntry(const QString& s, const QString& defaultVal); 0051 QString readEntry(const QString& s, const char* defaultVal); 0052 QFont readEntry(const QString& s, const QFont& defaultVal); 0053 QColor readEntry(const QString& s, const QColor defaultVal); 0054 QSize readEntry(const QString& s, const QSize defaultVal); 0055 QPoint readEntry(const QString& s, const QPoint defaultVal); 0056 bool readEntry(const QString& s, bool bDefault); 0057 qint32 readEntry(const QString& s, qint32 iDefault); 0058 QStringList readEntry(const QString& s, const QStringList& defaultVal); 0059 0060 private: 0061 virtual QFont readFontEntry(const QString&, const QFont* defaultVal); 0062 virtual QColor readColorEntry(const QString&, const QColor* defaultVal); 0063 virtual QSize readSizeEntry(const QString&, const QSize* defaultVal); 0064 virtual QPoint readPointEntry(const QString&, const QPoint* defaultVal); 0065 virtual bool readBoolEntry(const QString&, bool bDefault); 0066 virtual qint32 readNumEntry(const QString&, qint32 iDefault); 0067 virtual QStringList readListEntry(const QString&, const QStringList& defaultVal); 0068 virtual QString readStringEntry(const QString&, const QString&); 0069 }; 0070 0071 QStringList safeStringSplit(const QString& s, char sepChar=';', char metaChar='\\' ); 0072 QString safeStringJoin(const QStringList& sl, char sepChar=';', char metaChar='\\' ); 0073 0074 #endif