/* This file is part of the KDE project Copyright (C) 2005 David Faure <faure@kde.org> This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License version 2 as published by the Free Software Foundation. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ #ifndef KWOASISSAVER_H #define KWOASISSAVER_H #include <tqbuffer.h> #include <KoGenStyles.h> #include <KoOasisStore.h> class KWDocument; class KoSavingContext; class KoXmlWriter; class KoTextParag; class KoStore; template <class T> class TQValueList; /** * This is used to save a bunch of paragraphs into a oasis store in memory, * as some features do (e.g. sort text, or convert table to text) * * Note: this is NOT used for File/Save! */ class KWOasisSaver { public: /// @param doc only needed for the user-style-collection KWOasisSaver( KWDocument* doc ); ~KWOasisSaver(); /// Save a list of paragraphs void saveParagraphs( const TQValueList<const KoTextParag *>& paragraphs ); /// Save a paragraph void saveParagraph( const KoTextParag* parag ); /// Another way to save paragraphs is to use KoTextObject::saveOasisContent /// It needs a body writer and a saving context. KoXmlWriter& bodyWriter() { return *m_oasisStore->bodyWriter(); } KoSavingContext& savingContext() { return *m_savingContext; } /// You MUST call this after saving the paragraphs and before calling data() /// Return true on success bool finish(); /// Return the entire ZIP store as a byte array TQByteArray data() const; /// Helper function, also used by KWDocument. static void writeAutomaticStyles( KoXmlWriter& contentWriter, KoGenStyles& mainStyles, bool stylesDotXml ); static const char* selectionMimeType(); private: TQBuffer m_buffer; KoStore* m_store; KoOasisStore* m_oasisStore; KoGenStyles m_mainStyles; KoSavingContext* m_savingContext; KWDocument* m_doc; }; #endif