#ifndef APICOUNTRYMODEL_H #define APICOUNTRYMODEL_H #include #include class ApiCountryModel : public QAbstractListModel { Q_OBJECT public: enum Roles { CountryNameRole = Qt::UserRole + 1, CountryCodeRole }; explicit ApiCountryModel(QObject *parent = nullptr); int rowCount(const QModelIndex &parent = QModelIndex()) const override; QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; Q_PROPERTY(int currentIndex READ getCurrentIndex WRITE setCurrentIndex NOTIFY currentIndexChanged) public slots: void updateModel(const QJsonArray &data, const QString ¤tCountryCode); int getCurrentIndex(); void setCurrentIndex(const int i); signals: void currentIndexChanged(const int index); protected: QHash roleNames() const override; private: QJsonArray m_countries; int m_currentIndex; }; #endif // APICOUNTRYMODEL_H