File indexing completed on 2024-05-12 16:06:43

0001 /*
0002     SPDX-FileCopyrightText: 2005 Albert Astals Cid <aacid@kde.org>
0003 
0004     Work sponsored by the LiMux project of the city of Munich:
0005     SPDX-FileCopyrightText: 2017 Klarälvdalens Datakonsult AB a KDAB Group company <info@kdab.com>
0006 
0007     SPDX-License-Identifier: GPL-2.0-or-later
0008 */
0009 
0010 #ifndef _OKULAR_GENERATOR_KIMGIO_H_
0011 #define _OKULAR_GENERATOR_KIMGIO_H_
0012 
0013 #include <core/document.h>
0014 #include <core/generator.h>
0015 
0016 #include <QImage>
0017 
0018 class KIMGIOGenerator : public Okular::Generator
0019 {
0020     Q_OBJECT
0021     Q_INTERFACES(Okular::Generator)
0022 
0023 public:
0024     KIMGIOGenerator(QObject *parent, const QVariantList &args);
0025     ~KIMGIOGenerator() override;
0026 
0027     // [INHERITED] load a document and fill up the pagesVector
0028     bool loadDocument(const QString &fileName, QVector<Okular::Page *> &pagesVector) override;
0029     bool loadDocumentFromData(const QByteArray &fileData, QVector<Okular::Page *> &pagesVector) override;
0030     SwapBackingFileResult swapBackingFile(QString const &newFileName, QVector<Okular::Page *> &newPagesVector) override;
0031 
0032     // [INHERITED] print document using already configured kprinter
0033     Okular::Document::PrintError print(QPrinter &printer) override;
0034 
0035     // [INHERITED] document information
0036     Okular::DocumentInfo generateDocumentInfo(const QSet<Okular::DocumentInfo::Key> &keys) const override;
0037 
0038 protected:
0039     bool doCloseDocument() override;
0040     QImage image(Okular::PixmapRequest *request) override;
0041 
0042 private:
0043     bool loadDocumentInternal(const QByteArray &fileData, const QString &fileName, QVector<Okular::Page *> &pagesVector);
0044 
0045 private:
0046     QImage m_img;
0047     Okular::DocumentInfo docInfo;
0048 };
0049 
0050 #endif