File indexing completed on 2024-05-12 15:54:50

0001 /*
0002  * SPDX-FileCopyrightText: (C) 2014 Vishesh Handa <vhanda@kde.org>
0003  * SPDX-FileCopyrightText: (C) 2017 Atul Sharma <atulsharma406@gmail.com>
0004  *
0005  * SPDX-License-Identifier: LGPL-2.1-or-later
0006  */
0007 
0008 #ifndef IMAGETIMEMODEL_H
0009 #define IMAGETIMEMODEL_H
0010 
0011 #include <QAbstractListModel>
0012 #include <QStringList>
0013 
0014 #include "types.h"
0015 
0016 class ImageTimeModel : public QAbstractListModel
0017 {
0018     Q_OBJECT
0019     Q_PROPERTY(Types::TimeGroup group READ group WRITE setGroup NOTIFY groupChanged)
0020 public:
0021     explicit ImageTimeModel(QObject *parent = nullptr);
0022 
0023     QHash<int, QByteArray> roleNames() const override;
0024     QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
0025     int rowCount(const QModelIndex &parent = QModelIndex()) const override;
0026 
0027     Types::TimeGroup group() const;
0028     void setGroup(Types::TimeGroup group);
0029 
0030 signals:
0031     void groupChanged();
0032 
0033 private slots:
0034     void slotPopulate();
0035 
0036 private:
0037     Types::TimeGroup m_group;
0038     QList<QPair<QByteArray, QString>> m_times;
0039 };
0040 
0041 #endif