void OdfChartReader::readUnknownElement(KoXmlStreamReader &reader) { DEBUGSTART(); #if 0 // FIXME: Fix this if (m_context->isInsideParagraph()) { // readParagraphContents expect to have the reader point to the // contents of the paragraph so we have to read past the chart:p // start tag here. reader.readNext(); readParagraphContents(reader); } else { while (reader.readNextStartElement()) { readTextLevelElement(reader); } } #else reader.skipCurrentElement(); #endif DEBUGEND(); }
bool OdfReader::readContent(OdfReaderBackend *backend, OdfReaderContext *context) { debugOdfReader << "entering"; m_backend = backend; m_context = context; if (m_textReader) { m_textReader->setContext(context); } // ---------------------------------------------------------------- // Read the body from content.xml KoStore *odfStore = m_context->odfStore(); if (!odfStore->open("content.xml")) { errorOdfReader << "Unable to open input file content.xml" << endl; return false; } debugOdfReader << "open content.xml ok"; KoXmlStreamReader reader; prepareForOdfInternal(reader); reader.setDevice(odfStore->device()); bool foundContent = false; while (!reader.atEnd()) { reader.readNext(); if (reader.isStartElement() && reader.qualifiedName() == "office:document-content") { foundContent = true; break; } } if (!foundContent) { errorOdfReader << "Couldn't find the content in content.xml" << endl; } m_backend->elementOfficeDocumentcontent(reader, m_context); // <office:document-content> has the following children in ODF 1.2: // <office:automatic-styles> 3.15.3 // [done] <office:body> 3.3 // <office:font-face-decls> 3.14 // <office:scripts> 3.12. while (reader.readNextStartElement()) { QString tagName = reader.qualifiedName().toString(); if (tagName == "office:automatic-styles") { // We already have the styles in the context. No need to read them again. reader.skipCurrentElement(); } else if (tagName == "office:body") { // This is the big one. readElementOfficeBody(reader); } else if (tagName == "office:font-face-decls") { // FIXME: Not yet implemented reader.skipCurrentElement(); } else if (tagName == "office:scripts") { // FIXME: Not yet implemented reader.skipCurrentElement(); } else { reader.skipCurrentElement(); } } m_backend->elementOfficeDocumentcontent(reader, m_context); odfStore->close(); return true; }