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 };