File indexing completed on 2024-04-28 05:34:23

0001 /**
0002  * SPDX-FileCopyrightText: 2023 Arjen Hiemstra <ahiemstra@heimr.nl>
0003  *
0004  * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0005  */
0006 
0007 #pragma once
0008 
0009 #include <QCommandLineParser>
0010 #include <QObject>
0011 #include <QPointer>
0012 #include <qqmlregistration.h>
0013 
0014 #include <KAboutData>
0015 
0016 class CommandLineArguments : public QObject
0017 {
0018     Q_OBJECT
0019     Q_PROPERTY(QString pageId READ pageId CONSTANT)
0020     Q_PROPERTY(QString pageName READ pageName CONSTANT)
0021     Q_PROPERTY(QVariant aboutData READ aboutData CONSTANT)
0022     QML_ELEMENT
0023     QML_SINGLETON
0024 
0025 public:
0026     CommandLineArguments(QObject *parent = nullptr);
0027 
0028     QString pageId() const;
0029     QString pageName() const;
0030     QVariant aboutData() const;
0031 
0032     static void setCommandLineParser(std::shared_ptr<QCommandLineParser> parser);
0033 
0034 private:
0035     QString m_pageId;
0036     QString m_pageName;
0037 
0038     inline static std::shared_ptr<QCommandLineParser> s_commandLineParser;
0039 };