Warning, file /utilities/daykountdown/src/importexport.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 /* 0002 * SPDX-FileCopyrightText: (C) 2021 Claudio Cambra <claudio.cambra@gmail.com> 0003 * 0004 * SPDX-LicenseRef: GPL-3.0-or-later 0005 */ 0006 0007 #pragma once 0008 0009 #include <KIO/Job> 0010 #include <KMessageBox> 0011 #include <KLocalizedString> 0012 #include <QSaveFile> 0013 #include <QFileDialog> 0014 #include <QQmlApplicationEngine> 0015 #include <QtQml> 0016 #include <QUrl> 0017 0018 // This kountdown struct eases the process of importing parsed kountdowns 0019 // Contains the relevant properties for QML code to read 0020 typedef struct kountdown { 0021 Q_GADGET 0022 Q_PROPERTY(int index MEMBER index); 0023 Q_PROPERTY(QString name MEMBER name); 0024 Q_PROPERTY(QString description MEMBER description); 0025 Q_PROPERTY(QString date MEMBER date); 0026 Q_PROPERTY(QString colour MEMBER colour); 0027 0028 public: 0029 int index; 0030 QString name; 0031 QString description; 0032 QString date; 0033 QString colour; 0034 } kountdown; 0035 0036 class ImportExport : public QObject 0037 { 0038 Q_OBJECT 0039 // Q_PROPERTY macro exposes this item in QML 0040 // QVariantList is flexible and can convert certain types, useful when dealing with QML 0041 Q_PROPERTY(QVariantList Kountdowns READ kountdownPopulator) 0042 0043 public: 0044 explicit ImportExport(QObject *parent = nullptr); 0045 virtual ~ImportExport() override = default; 0046 QVariantList Kountdowns; 0047 QVariantList kountdownPopulator(); 0048 Q_INVOKABLE void fetchKountdowns(); 0049 Q_INVOKABLE void exportFile(); 0050 0051 private: 0052 //QVectors are dynamic arrays which can store data structures of your choosing 0053 QVector<kountdown> _kountdownArray; 0054 QJsonDocument _createJson(); 0055 };