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