bool DirtyListExecutor::updatePoint(Node* Pt) { Progress->setValue(++Done); qDebug() << QString("UPDATE trackpoint %1").arg(Pt->id().numId); Progress->setLabelText(tr("UPDATE trackpoint %1").arg(Pt->id().numId) + userName(Pt)); QEventLoop L; L.processEvents(QEventLoop::ExcludeUserInputEvents); // QString URL("/api/0.3/node/%1"); // URL = URL.arg(stripToOSMId(Pt->id())); QString URL = theDownloader->getURLToUpdate("node",stripToOSMId(Pt->id())); QString DataIn, DataOut; DataIn = wrapOSM(exportOSM(*Pt, ChangeSetId), ChangeSetId); if (sendRequest("PUT",URL,DataIn,DataOut)) { Pt->setLastUpdated(Feature::OSMServer); int NewVersion = DataOut.toInt(); if (NewVersion <= Pt->versionNumber()) NewVersion = Pt->versionNumber()+1; Pt->setVersionNumber(NewVersion); if (!g_Merk_Frisius) { Pt->layer()->remove(Pt); document()->getUploadedLayer()->add(Pt); } Pt->setUploaded(true); Pt->setDirtyLevel(0); return EraseFromHistory; } return false; }
bool DirtyListExecutor::eraseRoad(Way *R) { Progress->setValue(++Done); qDebug() << QString("REMOVE road %1").arg(R->id().numId); Progress->setLabelText(tr("REMOVE road %1").arg(R->id().numId) + userName(R)); QEventLoop L; L.processEvents(QEventLoop::ExcludeUserInputEvents); // QString URL("/api/0.3/way/%1"); // URL = URL.arg(stripToOSMId(R->id())); QString URL = theDownloader->getURLToDelete("way",stripToOSMId(R->id())); QString DataIn, DataOut; DataIn = wrapOSM(exportOSM(*R, ChangeSetId), ChangeSetId); if (sendRequest("DELETE",URL,DataIn,DataOut)) { R->setLastUpdated(Feature::OSMServer); if (!g_Merk_Frisius) { R->layer()->remove(R); document()->getUploadedLayer()->add(R); } R->setUploaded(true); R->setDirtyLevel(0); return EraseFromHistory; } return false; }
bool DirtyListExecutor::updateRoad(Way* R) { Progress->setValue(++Done); qDebug() << QString("UPDATE road %1").arg(R->id().numId); Progress->setLabelText(tr("UPDATE road %1").arg(R->id().numId) + userName(R)); QEventLoop L; L.processEvents(QEventLoop::ExcludeUserInputEvents); QString URL = theDownloader->getURLToUpdate("way",stripToOSMId(R->id())); QString DataIn, DataOut; DataIn = wrapOSM(exportOSM(*R, ChangeSetId), ChangeSetId); if (sendRequest("PUT",URL,DataIn,DataOut)) { R->setLastUpdated(Feature::OSMServer); int NewVersion = DataOut.toInt(); if (NewVersion <= R->versionNumber()) NewVersion = R->versionNumber()+1; R->setVersionNumber(NewVersion); if (!g_Merk_Frisius) { R->layer()->remove(R); document()->getUploadedLayer()->add(R); } R->setUploaded(true); R->setDirtyLevel(0); return EraseFromHistory; } return true; }
bool TrackNode::toGPX(QXmlStreamWriter& stream, QProgressDialog * progress, QString element, bool forExport) { bool OK = true; if (isVirtual()) return OK; if (!tagValue("_waypoint_","").isEmpty() ||!sizeParents()) stream.writeStartElement("wpt"); else stream.writeStartElement(element); if (!forExport) stream.writeAttribute("xml:id", xmlId()); stream.writeAttribute("lon",COORD2STRING(BBox.topRight().x())); stream.writeAttribute("lat", COORD2STRING(BBox.topRight().y())); stream.writeTextElement("time", time().toString(Qt::ISODate)+"Z"); QString s = tagValue("name",""); if (!s.isEmpty()) { stream.writeTextElement("name", s); } if (elevation()) { stream.writeTextElement("ele", QString::number(elevation(),'f',6)); } if (speed()) { stream.writeTextElement("speed", QString::number(speed(),'f',6)); } s = tagValue("_comment_",""); if (!s.isEmpty()) { stream.writeTextElement("cmt", s); } s = tagValue("_description_",""); if (!s.isEmpty()) { stream.writeTextElement("desc", s); } // OpenStreetBug s = tagValue("_special_",""); if (!s.isEmpty() && id().type & IFeature::Special) { stream.writeStartElement("extensions"); QString sid = stripToOSMId(id()); stream.writeTextElement("id", sid); stream.writeEndElement(); } stream.writeEndElement(); if (progress) progress->setValue(progress->value()+1); return OK; }