diff options
| author | Orangerot <purple@orangerot.dev> | 2024-08-16 15:40:37 +0200 | 
|---|---|---|
| committer | Orangerot <purple@orangerot.dev> | 2024-08-16 15:40:37 +0200 | 
| commit | 3d19fd72716561a0322ba0acc5c94aac9f161e9d (patch) | |
| tree | ef99fce2c021d2c5f38eaa2d62be6493fa940dd1 /src/model | |
| parent | 573403247538c50e1fb2133f73d8939532ee36fa (diff) | |
feat(Sport): select Discipline
Diffstat (limited to 'src/model')
| -rw-r--r-- | src/model/Sport.cpp | 20 | ||||
| -rw-r--r-- | src/model/Sport.h | 10 | 
2 files changed, 24 insertions, 6 deletions
| diff --git a/src/model/Sport.cpp b/src/model/Sport.cpp index 8c4902b..a21e21d 100644 --- a/src/model/Sport.cpp +++ b/src/model/Sport.cpp @@ -22,7 +22,7 @@  #include <QString>  namespace { -  const QString &k_requestUrl = "https://sph-s-api.olympics.com/summer/schedules/api/ENG/schedule/discipline/ARC"; +  const QString &k_requestUrl = "https://sph-s-api.olympics.com/summer/schedules/api/ENG/schedule/discipline/";  }  SportModel::SportModel(QObject *parent) : QAbstractListModel(parent) { @@ -58,8 +58,18 @@ QHash<int, QByteArray> SportModel::roleNames() const {    return names;  } -void SportModel::request() { -  m_reply = m_networkManager.get(QNetworkRequest( k_requestUrl )); +QString SportModel::discipline() const { +  return m_discipline; +} + +void SportModel::setDiscipline(const QString &discipline) { +  m_discipline = discipline; +} + + +void SportModel::request(QString discipline) { +  m_discipline = discipline; +  m_reply = m_networkManager.get(QNetworkRequest( k_requestUrl + m_discipline));    qDebug() << m_reply;    connect(m_reply, &QNetworkReply::finished, this, &SportModel::parseData);  } @@ -68,8 +78,8 @@ void SportModel::parseData() {      if (m_reply->error() == QNetworkReply::NoError) {        beginResetModel(); -      // qDeleteAll(m_sportList); -      // m_sportList.clear(); +      qDeleteAll(m_sportList); +      m_sportList.clear(); diff --git a/src/model/Sport.h b/src/model/Sport.h index be74a51..01798fb 100644 --- a/src/model/Sport.h +++ b/src/model/Sport.h @@ -3,6 +3,7 @@  #include <QAbstractListModel>  #include <QNetworkAccessManager> +#include <qcontainerfwd.h>  #include <set>  #include <QJsonObject> @@ -15,6 +16,8 @@ using namespace std;  class SportModel : public QAbstractListModel {    Q_OBJECT +  Q_PROPERTY(QString discipline READ discipline WRITE setDiscipline); +    public:       enum Role {        EventName = Qt::UserRole + 1, @@ -26,12 +29,17 @@ class SportModel : public QAbstractListModel {      virtual int rowCount(const QModelIndex &parent) const override;      virtual QVariant data(const QModelIndex &index, int role) const override;      virtual QHash<int, QByteArray> roleNames() const override; + + +    QString discipline() const; +    void setDiscipline(const QString &discipline);    public slots: -    void request(); +    void request(QString discipline);      void parseData();    private:      QList<EventInfo*> m_sportList; +    QString m_discipline;      QNetworkAccessManager m_networkManager;      QNetworkReply *m_reply = nullptr;  }; | 
