19#include "KWOasisSaver.h"
21#include <KoOasisStore.h>
22#include <KoOasisContext.h>
23#include <KoXmlWriter.h>
24#include "KWDocument.h"
29 const TQCString mimeType = selectionMimeType();
30 m_store = KoStore::createStore( &m_buffer, KoStore::Write, mimeType );
32 Q_ASSERT( !m_store->bad() );
34 m_oasisStore = new KoOasisStore( m_store );
38 m_savingContext = new KoSavingContext( m_mainStyles, 0, false, KoSavingContext::Store );
40 KoXmlWriter* bodyWriter = m_oasisStore->bodyWriter();
47 for ( TQValueList<const KoTextParag *>::const_iterator it = paragraphs.begin(),
48 end = paragraphs.end();
57 KoXmlWriter* bodyWriter = m_oasisStore->bodyWriter();
58 parag->saveOasis( * bodyWriter, *m_savingContext, 0, parag->length()-2, true );
64 return const_cast<TQBuffer& >(m_buffer).buffer();
67KWOasisSaver::~KWOasisSaver()
71 delete m_savingContext;
76 KoXmlWriter* bodyWriter = m_oasisStore->bodyWriter();
80 KoXmlWriter* contentWriter = m_oasisStore->contentWriter();
81 Q_ASSERT( contentWriter );
83 m_savingContext->writeFontFaces( *contentWriter );
84 contentWriter->startElement( "office:automatic-styles" );
86 contentWriter->endElement();
88 m_oasisStore->closeContentWriter();
90 if ( !m_store->open( "styles.xml" ) )
93 m_doc->saveOasisDocumentStyles( m_store, m_mainStyles, *m_savingContext,
94 KWDocument::SaveSelected ,
96 if ( !m_store->close() )
99 delete m_oasisStore; m_oasisStore = 0;
100 delete m_store; m_store = 0;
107 TQValueList<KoGenStyles::NamedStyle> styles = mainStyles.styles( KoGenStyle::STYLE_AUTO, stylesDotXml );
108 TQValueList<KoGenStyles::NamedStyle>::const_iterator it = styles.begin();
109 for ( ; it != styles.end() ; ++it ) {
110 (*it).style->writeStyle( &contentWriter, mainStyles, "style:style", (*it).name, "style:paragraph-properties" );
113 styles = mainStyles.styles( KoGenStyle::STYLE_AUTO_LIST, stylesDotXml );
115 for ( ; it != styles.end() ; ++it ) {
116 (*it).style->writeStyle( &contentWriter, mainStyles, "text:list-style", (*it).name, 0 );
119 styles = mainStyles.styles( KWDocument::STYLE_FRAME_AUTO, stylesDotXml );
121 for ( ; it != styles.end() ; ++it ) {
122 (*it).style->writeStyle( &contentWriter, mainStyles, "style:style", (*it).name , "style:graphic-properties" );
125 styles = mainStyles.styles( KWDocument::STYLE_TABLE, stylesDotXml );
127 for ( ; it != styles.end() ; ++it ) {
128 (*it).style->writeStyle( &contentWriter, mainStyles, "style:style", (*it).name , "style:table-properties" );
131 styles = mainStyles.styles( KWDocument::STYLE_TABLE_COLUMN, stylesDotXml );
133 for ( ; it != styles.end() ; ++it ) {
134 (*it).style->writeStyle( &contentWriter, mainStyles, "style:style", (*it).name , "style:table-column-properties" );
137 styles = mainStyles.styles( KWDocument::STYLE_TABLE_CELL_AUTO, stylesDotXml );
139 for ( ; it != styles.end() ; ++it ) {
140 (*it).style->writeStyle( &contentWriter, mainStyles, "style:style", (*it).name , "style:table-cell-properties" );
143 styles = mainStyles.styles( KoGenStyle::STYLE_NUMERIC_DATE, stylesDotXml );
145 for ( ; it != styles.end() ; ++it ) {
146 (*it).style->writeStyle( &contentWriter, mainStyles, "number:date-style", (*it).name, 0 );
148 styles = mainStyles.styles( KoGenStyle::STYLE_NUMERIC_TIME, stylesDotXml );
150 for ( ; it != styles.end() ; ++it ) {
151 (*it).style->writeStyle( &contentWriter, mainStyles, "number:time-style", (*it).name, 0 );
155const char* KWOasisSaver::selectionMimeType()
157 return "application/vnd.oasis.opendocument.text";
KWOasisSaver(KWDocument *doc)
TQByteArray data() const Return the entire ZIP store as a byte array.
KoXmlWriter & bodyWriter() Another way to save paragraphs is to use KoTextObject::saveOasisContent It needs a body writer and a ...
void saveParagraph(const KoTextParag *parag) Save a paragraph.
bool finish() You MUST call this after saving the paragraphs and before calling data() Return true on success.
static void writeAutomaticStyles(KoXmlWriter &contentWriter, KoGenStyles &mainStyles, bool stylesDotXml) Helper function, also used by KWDocument.
void saveParagraphs(const TQValueList< const KoTextParag * > ¶graphs) Save a list of paragraphs.
|