File indexing completed on 2024-06-23 04:42:36

0001 // SPDX-FileCopyrightText: 2021 Claudio Cambra <claudio.cambra@gmail.com>
0002 // SPDX-License-Identifier: LGPL-2.1-or-later
0003 
0004 #pragma once
0005 
0006 #include <QAbstractListModel>
0007 #include <QVector>
0008 #include <QQmlEngine>
0009 
0010 class TimeZoneListModel : public QAbstractListModel
0011 {
0012     Q_OBJECT
0013     QML_ELEMENT
0014 public:
0015     enum Roles { IdRole = Qt::UserRole + 1 };
0016     Q_ENUM(Roles);
0017 
0018     explicit TimeZoneListModel(QObject *parent = nullptr);
0019     ~TimeZoneListModel() override = default;
0020 
0021     QVariant data(const QModelIndex &idx, int role) const override;
0022     QHash<int, QByteArray> roleNames() const override;
0023     int rowCount(const QModelIndex &parent = {}) const override;
0024 
0025     Q_INVOKABLE int getTimeZoneRow(const QByteArray &timeZone);
0026 
0027 private:
0028     QVector<QByteArray> m_timeZones;
0029 };