File indexing completed on 2024-05-12 16:28:30

0001 /* This file is part of the KDE project
0002    Copyright (C) 2012 Sven Langkamp <sven.langkamp@gmail.com>
0003 
0004    This library is free software; you can redistribute it and/or
0005    modify it under the terms of the GNU Library General Public
0006    License as published by the Free Software Foundation; either
0007    version 2 of the License, or (at your option) any later version.
0008 
0009    This library is distributed in the hope that it will be useful,
0010    but WITHOUT ANY WARRANTY; without even the implied warranty of
0011    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0012    Library General Public License for more details.
0013 
0014    You should have received a copy of the GNU Library General Public License
0015    along with this library; see the file COPYING.LIB.  If not, write to
0016    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
0017    Boston, MA 02110-1301, USA.
0018 */
0019 
0020 #ifndef OKULARODTGENERATOR_H
0021 #define OKULARODTGENERATOR_H
0022 
0023 #include "kookulargenerator_odt_export.h"
0024 
0025 #include <okular/core/generator.h>
0026 #include <okular/core/document.h>
0027 #include <okular/core/version.h>
0028 
0029 class KWDocument;
0030 
0031 class KOOKULARGENERATOR_ODT_EXPORT OkularOdtGenerator : public Okular::Generator
0032 {
0033     Q_OBJECT
0034     Q_INTERFACES( Okular::Generator )
0035 
0036 public:
0037     OkularOdtGenerator( QObject *parent, const QVariantList &args );
0038     ~OkularOdtGenerator();
0039 
0040     bool loadDocument( const QString &fileName, QVector<Okular::Page*> &pages );
0041 
0042     bool canGeneratePixmap() const;
0043     void generatePixmap( Okular::PixmapRequest *request );
0044 
0045     Okular::DocumentInfo generateDocumentInfo( const QSet<Okular::DocumentInfo::Key> &keys ) const;
0046     const Okular::DocumentSynopsis* generateDocumentSynopsis();
0047 
0048     bool canGenerateTextPage() const;
0049 
0050 protected:
0051     bool doCloseDocument();
0052     Okular::TextPage* textPage( Okular::Page *page );
0053 
0054 private:
0055     KWDocument* m_doc;
0056 
0057     Okular::DocumentInfo m_documentInfo;
0058     Okular::DocumentSynopsis m_documentSynopsis;
0059 
0060 };
0061 
0062 #endif