Wireshark 5.1.0
The Wireshark network protocol analyzer
Loading...
Searching...
No Matches
theme_parser.h
Go to the documentation of this file.
1
9
10#ifndef THEME_PARSER_H
11#define THEME_PARSER_H
12
15
16#include <QCoreApplication>
17#include <QFont>
18#include <QHash>
19#include <QJsonObject>
20#include <QList>
21#include <QString>
22
37class ThemeParser
38{
39 Q_DECLARE_TR_FUNCTIONS(ThemeParser)
40public:
45 struct Result {
46 ThemeInfo info;
47 QHash<ThemeManager::ThemeToken, ThemeColorPair> colors;
48 QList<ThemeColorPair> graphColors;
54 };
55
56 ThemeParser(const QHash<QString, ThemeSectionInfo> &sections,
57 const QHash<QString, ThemeManager::ThemeToken> &roleCache);
58
69 bool parse(const QString &internalName,
70 const QString &resourcePath,
71 Result &out,
72 QString *errorString = nullptr);
73
88 bool parseData(const QString &internalName,
89 const QByteArray &raw,
90 Result &out,
91 QString *errorString = nullptr);
92
98 static QString fontDescriptor(const ThemeFontHint &hint);
99
100private:
101 static QColor parseColor(const QString &colorStr);
102 static ThemeColorPair parseColorPair(const QJsonObject &obj);
103 void parseSection(const QJsonObject &root,
104 const QString &sectionName,
105 const ThemeSectionInfo &sectionInfo,
106 const ThemeInfo &info,
107 Result &result);
108 void checkColorPair(const QJsonObject &obj,
109 const QString &path,
110 const QString &section,
111 const QString &key,
112 Result &out);
113 static QString withLine(int line, const QString &message);
114 static void parseFonts(const QJsonObject &fontsObj, Result &out);
115 static ThemeFontHint fontHint(const QJsonObject &obj);
116
117 ThemeManager::ThemeToken stringToToken(const QString &token) const;
118
119 const QHash<QString, ThemeSectionInfo> &sections_;
120 const QHash<QString, ThemeManager::ThemeToken> &roleCache_;
121 JsoncDocument jsonc_;
122};
123
124#endif /* THEME_PARSER_H */
Definition jsonc_document.h:27
bool parse(const QString &internalName, const QString &resourcePath, Result &out, QString *errorString=nullptr)
Definition theme_parser.cpp:38
bool parseData(const QString &internalName, const QByteArray &raw, Result &out, QString *errorString=nullptr)
Definition theme_parser.cpp:55
static QString fontDescriptor(const ThemeFontHint &hint)
Definition theme_parser.cpp:267
Definition theme_manager.h:47
Definition theme_manager.h:72
Definition theme_manager.h:31
Definition theme_manager.h:87
Definition theme_parser.h:45
ThemeParseReport report
non-fatal findings, filled by parseData()
Definition theme_parser.h:53
QString regularFontName
theme's declared regular font descriptor; empty if unset
Definition theme_parser.h:49
ThemeFontHint monospaceFont
monospace font as family/size; unset when the theme declares none
Definition theme_parser.h:52
ThemeFontHint regularFont
regular font as family/size; unset when the theme declares none
Definition theme_parser.h:51
QString monospaceFontName
theme's declared monospace font descriptor; empty if unset
Definition theme_parser.h:50
Definition theme_manager.h:42
Definition file-pcapng.h:57