00001 /* This file is part of the KDE project 00002 Copyright (C) 2005 David Faure <faure@kde.org> 00003 00004 This library is free software; you can redistribute it and/or 00005 modify it under the terms of the GNU Library General Public 00006 License version 2 as published by the Free Software Foundation. 00007 00008 This library is distributed in the hope that it will be useful, 00009 but WITHOUT ANY WARRANTY; without even the implied warranty of 00010 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00011 Library General Public License for more details. 00012 00013 You should have received a copy of the GNU Library General Public License 00014 along with this library; see the file COPYING.LIB. If not, write to 00015 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 00016 Boston, MA 02110-1301, USA. 00017 */ 00018 00019 #ifndef KOOASISLOADINGCONTEXT_H 00020 #define KOOASISLOADINGCONTEXT_H 00021 00022 class KoXmlWriter; 00023 class QDomElement; 00024 class KoDocument; 00025 class KoOasisStyles; 00026 class KoPictureCollection; 00027 class KoStore; 00028 00029 #include <QMap> 00030 #include <koffice_export.h> 00031 #include <QStringList> 00032 #include <KoStyleStack.h> 00033 #include <KoXmlReader.h> 00034 00040 class KOFFICECORE_EXPORT KoOasisLoadingContext 00041 { 00042 public: 00052 KoOasisLoadingContext( KoDocument* doc, KoOasisStyles& styles, KoStore* store ); 00053 ~KoOasisLoadingContext(); 00054 00055 KoDocument* koDocument() { return m_doc; } 00056 KoStore* store() { return m_store; } 00057 00058 KoOasisStyles& oasisStyles() { return m_styles; } 00059 KoStyleStack& styleStack() { return m_styleStack; } 00060 00061 const KoXmlDocument& manifestDocument() const { return m_manifestDoc; } 00062 00064 QString generator() const; 00065 00078 void fillStyleStack( const KoXmlElement& element, const char* nsURI, const char* attrName, const char* family ); 00079 00094 void addStyles( const KoXmlElement* style, const char* family, bool usingStylesAutoStyles = false ); 00095 00098 void setUseStylesAutoStyles( bool useStylesAutoStyles ) { m_useStylesAutoStyles = useStylesAutoStyles; } 00099 //bool useStylesAutoStyles() const { return m_useStylesAutoStyles; } 00100 00101 private: 00102 void parseMeta() const; 00103 00104 private: 00105 KoDocument* m_doc; 00106 KoStore* m_store; 00107 KoOasisStyles& m_styles; 00108 KoStyleStack m_styleStack; 00109 00110 mutable QString m_generator; 00111 mutable bool m_metaXmlParsed; 00112 bool m_useStylesAutoStyles; 00113 bool m_unused1; // padding, can be used later 00114 bool m_unused2; // padding, can be used later 00115 00116 KoXmlDocument m_manifestDoc; 00117 00118 class Private; 00119 Private *d; 00120 }; 00121 00122 #endif /* KOOASISLOADINGCONTEXT_H */ 00123