File indexing completed on 2024-04-28 15:39:41

0001 // SPDX-FileCopyrightText: 2014-2022 Jesper K. Pedersen <blackie@kde.org>
0002 //
0003 // SPDX-License-Identifier: GPL-2.0-or-later
0004 
0005 #ifndef REMOTECONTROL_IMAGEDETAILS_H
0006 #define REMOTECONTROL_IMAGEDETAILS_H
0007 
0008 #include "RemoteCommand.h"
0009 #include <QObject>
0010 namespace RemoteControl
0011 {
0012 
0013 class ImageDetails : public QObject
0014 {
0015     Q_OBJECT
0016     Q_PROPERTY(QString fileName MEMBER m_fileName NOTIFY updated)
0017     Q_PROPERTY(QString date MEMBER m_date NOTIFY updated)
0018     Q_PROPERTY(QString description MEMBER m_description NOTIFY updated)
0019     Q_PROPERTY(QStringList categories READ categories NOTIFY updated)
0020 
0021     // This is just a dummy property to ensure that categories are updated too when changed.
0022     Q_PROPERTY(QString dummy READ dummy NOTIFY updated)
0023 
0024 public:
0025     static ImageDetails &instance();
0026     QStringList categories() const;
0027 
0028 public Q_SLOTS:
0029     void clear();
0030     void setData(const ImageDetailsResult &data);
0031     QStringList itemsOfCategory(const QString &category);
0032     QString dummy() const { return {}; }
0033     QString age(const QString &category, const QString &item);
0034 
0035 Q_SIGNALS:
0036     void updated();
0037 
0038 private:
0039     ImageDetails() = default;
0040     QString m_fileName;
0041     QString m_date;
0042     QString m_description;
0043     QMap<QString, CategoryItemDetailsList> m_categories;
0044 };
0045 
0046 } // namespace RemoteControl
0047 
0048 #endif // REMOTECONTROL_IMAGEDETAILS_H