File indexing completed on 2024-05-12 17:24:10

0001 // SPDX-FileCopyrightText: 2023 Carl Schwan <carl@carlschwan.eu>
0002 // SPDX-License-Identifier: LGPL-2.0-or-later
0003 
0004 #pragma once
0005 
0006 #include <QAbstractListModel>
0007 
0008 class PlantImageModel : public QAbstractListModel
0009 {
0010     Q_OBJECT
0011     Q_PROPERTY(QString customImage READ customImage WRITE setCustomImage NOTIFY customImageChanged)
0012 
0013 public:
0014     PlantImageModel(QObject *parent = nullptr);
0015 
0016     enum Roles {
0017         UrlRole = Qt::UserRole + 1,
0018     };
0019 
0020     QString customImage() const;
0021     void setCustomImage(const QString &customImage);
0022 
0023     int rowCount(const QModelIndex &parent)const override;
0024     QHash<int, QByteArray> roleNames()const override;
0025     QVariant data(const QModelIndex& index, int role) const override;
0026 
0027     Q_INVOKABLE int urlToIndex(const QString &url) const;
0028 
0029 Q_SIGNALS:
0030     void customImageChanged();
0031 
0032 private:
0033     QStringList m_urls;
0034     QString m_customImage;
0035 };