#include "step.h" #include #include #include #include #include #include #include QString Step::getTitle() const { return title; } float Step::getLatitude() const { return latitude; } float Step::getLongitude() const { return longitude; } int Step::getResponse() const { return response; } void Step::setTitle(const QString &newTitle) { title = newTitle; } void Step::setResponse(int newResponse) { response = newResponse; } Step::Step() { latitude = 0.0; longitude = 0.0; response = 0; } QList Step::getPersonnage() const { return personnage; } QList Step::getTexte() const { return texte; } Step::Step( QJsonObject &in) { title = in["title"].toString(); response = in["reponse"].toInt(); QString gps = in["GPS"].toString(); QStringList parts = gps.split(" ", Qt::SkipEmptyParts); QChar latDir = parts[0][0]; int latDeg = parts[1].toInt(); float latMin = parts[2].toFloat(); setLatitude(latDeg, latMin, latDir); QChar lonDir = parts[3][0]; int lonDeg = parts[4].toInt(); float lonMin = parts[5].toFloat(); setLongitude(lonDeg, lonMin, lonDir); QJsonArray personnagetab = in["dialogue"].toArray(); for (const QJsonValue &val : personnagetab) { if (val.isObject()) { QJsonObject obj = val.toObject(); QString personnages = obj["personnage"].toString(); personnage.append(personnages); QString textes = obj["texte"].toString(); texte.append(textes); } } } void Step::setLatitude(int degree, float minute, QChar NS) { latitude = degree + minute / 60.0; if (NS.toUpper() == 'S') latitude = -latitude; } void Step::setLongitude(int degree, float minute, QChar EW) { longitude = degree + minute / 60.0; if (EW.toUpper() == 'W') longitude = -longitude; }