summaryrefslogtreecommitdiff
path: root/src/model
diff options
context:
space:
mode:
Diffstat (limited to 'src/model')
-rw-r--r--src/model/Sport.cpp20
-rw-r--r--src/model/Sport.h10
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;
};