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