void OsmObjectAttributeWriter::writeAttributes( const OsmPlacemarkData& osmData, GeoWriter &writer ) { writer.writeAttribute( "id", QString::number( osmData.id() ) ); writer.writeOptionalAttribute( "action", osmData.action() ); writer.writeOptionalAttribute( "changeset", osmData.changeset() ); writer.writeOptionalAttribute( "timestamp", osmData.timestamp() ); writer.writeOptionalAttribute( "uid", osmData.uid() ); writer.writeOptionalAttribute( "user", osmData.user() ); writer.writeOptionalAttribute( "version", osmData.version() ); writer.writeOptionalAttribute( "visible", osmData.isVisible() ); }
void OsmRelationManagerWidget::addRelation( QAction *relationAction ) { // The QAction::text() adds a '&' for some reason QString relationText = relationAction->text().remove( '&' ); if ( relationText == tr( "New Relation" ) ) { OsmPlacemarkData relationData; QPointer<OsmRelationEditorDialog> relationEditor = new OsmRelationEditorDialog( &relationData ); if ( relationEditor->exec() == QDialog::Rejected ) { return; } delete relationEditor; QTreeWidgetItem *newRelationItem = new QTreeWidgetItem(); newRelationItem->setText( Column::Name, relationData.tagValue( "name" ) ); newRelationItem->setText( Column::Type, relationData.tagValue( "type" ) ); newRelationItem->setData( Column::Name, Qt::UserRole, relationData.id() ); d->m_currentRelations->addTopLevelItem( newRelationItem ); // Make the user complete the role column newRelationItem->setFlags( newRelationItem->flags() | Qt::ItemIsEditable ); d->m_currentRelations->editItem( newRelationItem, Column::Role ); // This tells the annotate plugin to add the new relation to its list emit relationCreated( relationData ); } else { qint64 id = relationAction->data().toLongLong(); OsmPlacemarkData relationData = d->m_allRelations->value( id ); QTreeWidgetItem *newRelationItem = new QTreeWidgetItem(); newRelationItem->setText( Column::Name, relationData.tagValue( "name" ) ); newRelationItem->setText( Column::Type, relationData.tagValue( "type" ) ); newRelationItem->setData( Column::Name, Qt::UserRole, relationData.id() ); d->m_currentRelations->addTopLevelItem( newRelationItem ); // Make the user complete the role column newRelationItem->setFlags( newRelationItem->flags() | Qt::ItemIsEditable ); d->m_currentRelations->editItem( newRelationItem, Column::Role ); } }