File indexing completed on 2024-04-28 16:49:40

0001 /*
0002  *  SPDX-FileCopyrightText: 2012 Alejandro Fiestas Olivares <afiestas@kde.org>
0003  *
0004  *  SPDX-License-Identifier: LGPL-2.1-or-later
0005  */
0006 
0007 #ifndef PARSER_H
0008 #define PARSER_H
0009 
0010 #include <QByteArray>
0011 #include <QPoint>
0012 #include <QRect>
0013 #include <QSize>
0014 #include <QString>
0015 #include <QVariant>
0016 
0017 #include "types.h"
0018 
0019 class Parser
0020 {
0021 public:
0022     static KScreen::ConfigPtr fromJson(const QByteArray &data);
0023     static KScreen::ConfigPtr fromJson(const QString &path);
0024     static bool validate(const QByteArray &data);
0025     static bool validate(const QString &data);
0026 
0027 private:
0028     static void qvariant2qobject(const QVariantMap &variant, QObject *object);
0029     static KScreen::ScreenPtr screenFromJson(const QMap<QString, QVariant> &data);
0030     static KScreen::OutputPtr outputFromJson(QMap<QString, QVariant> data /* sic */);
0031     static KScreen::ModePtr modeFromJson(const QVariant &data);
0032     static QSize sizeFromJson(const QVariant &data);
0033     static QRect rectFromJson(const QVariant &data);
0034     static QPoint pointFromJson(const QVariant &data);
0035 };
0036 
0037 #endif // PARSER_H