#include "path.h" #include "step.h" #include #include #include #include #include #include QString Path::getCity() const { return city; } int Path::getDepartement() const { return departement; } QString Path::getName() const { return name; } unsigned int Path::getDifficulty() const { return difficulty; } float Path::getDuration() const { return duration; } float Path::getLength() const { return length; } QString Path::getImage() const { return image; } QList Path::getStep() const { return step; } Path::Path(QFile *file){ if (!file->open(QIODevice::ReadOnly)) { qWarning() << "Could not open file:" << file->errorString(); return; } QByteArray data = file->readAll(); file->close(); QJsonDocument doc = QJsonDocument::fromJson(data); if (doc.isNull()) { qWarning() << "Failed to create JSON document"; return; } QJsonObject json = doc.object(); name = json["name"].toString(); city = json["city"].toString(); departement = json["departement"].toInt(); difficulty = json["difficulty"].toInt(); duration = json["duration"].toDouble(); length = json["length"].toDouble(); image = json["image"].toString(); QJsonArray stepsArray = json["steps"].toArray(); for (const QJsonValue &stepValue : stepsArray) { QJsonObject stepObj = stepValue.toObject(); step.append(Step(stepObj)); } } void Path::addStep(int indice){ if(indice==-1){ step.append(Step()); }else{ step.insert(indice, Step()); } }