bool QLandmarkFileHandlerLmx::writeLandmarkCollection(const QList<QLandmark> &landmarkCollection)
{
    m_writer->writeStartElement(m_ns, "landmarkCollection");

    for (int i = 0; i < m_landmarks.size(); ++i) {
        if(m_cancel && (*m_cancel) == true) {
            m_errorCode = QLandmarkManager::CancelError;
            m_error = "Export of lmx file was canceled";
            return false;
        }

        if (!writeLandmark(m_landmarks.at(i)))
            return false;
    }

    m_writer->writeEndElement();

    return true;
}
Ejemplo n.º 2
0
bool QLandmarkFileHandlerLmx::writeLmx()
{
    // LMX files must contain at least one landmark
    if (m_landmarks.size() == 0)
        return true;

    QString nsLmx = "http://www.nokia.com/schemas/location/landmarks/1/0/";
    QString nsXsi = "http://www.w3.org/2001/XMLSchema-instance";

    if (!m_nsPrefix.isEmpty())
        m_ns = nsLmx;
    else
        m_ns = "";

    m_writer->writeStartDocument();

    if (m_nsPrefix.isEmpty())
        m_writer->writeDefaultNamespace(nsLmx);
    else {
        m_writer->writeNamespace(nsLmx, m_nsPrefix);
    }

    m_writer->writeStartElement(m_ns, "lmx");
    m_writer->writeNamespace(nsXsi, "xsi");
    m_writer->writeAttribute(nsXsi, "schemaLocation", "http://www.nokia.com/schemas/location/landmarks/1/0/ lmx.xsd");

    if (m_landmarks.size() > 1) {
        if(!writeLandmarkCollection(m_landmarks))
            return false;
    } else {
        if(!writeLandmark(m_landmarks.at(0)))
            return false;
    }

    m_writer->writeEndElement();
    m_writer->writeEndDocument();

    return true;
}