pdfdocumentitem.h 1,3 КБ
Newer Older
OMP Education's avatar
OMP Education включено в состав коммита
1
2
// SPDX-FileCopyrightText: 2022 Open Mobile Platform LLC <community@omp.ru>
// SPDX-License-Identifier: BSD-3-Clause
OMP Education's avatar
OMP Education включено в состав коммита
3
4
5
6
7
8
9
10

#ifndef PDFDOCUMENTITEM_H
#define PDFDOCUMENTITEM_H

#include <QObject>
#include <QSharedPointer>
#include <QHash>
#include <QSet>
OMP Education's avatar
OMP Education включено в состав коммита
11
#include <QVector>
OMP Education's avatar
OMP Education включено в состав коммита
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

#include "basedocument.h"
#include "pdfpageitem.h"

class PdfPage;
class PdfDocument;
class PdfDocumentItem : public BaseDocument
{
    Q_OBJECT

public:
    explicit PdfDocumentItem(QObject *parent = nullptr);
    ~PdfDocumentItem();

    QString path() const override;
    QSizeF pageSize(int pageNumber) const override;
    int count() const override;
    QSharedPointer<BasePage> loadPage(int pageIndex) override;
OMP Education's avatar
OMP Education включено в состав коммита
30
31
    void startLoadBookmarks() const override;
    QVector<BaseBookmark *> bookmarks() const override;
OMP Education's avatar
OMP Education включено в состав коммита
32
    int fileVersion() const override;
OMP Education's avatar
OMP Education включено в состав коммита
33
    bool saveDocumentAs(const QString &path) const override;
OMP Education's avatar
OMP Education включено в состав коммита
34
35
36
37
38
39
40
41
42

public slots:
    void setPath(const QString &path) override;

private:
    QSharedPointer<PdfDocument> m_pdfiumDocument;
    QHash<int, QSizeF> m_pageSizes;
    QHash<int, QSharedPointer<BasePage>> m_loadedPages;
    QSet<int> m_pagesInProcess;
OMP Education's avatar
OMP Education включено в состав коммита
43
    QVector<BaseBookmark *> m_baseBookmarks;
OMP Education's avatar
OMP Education включено в состав коммита
44
45

    void onPagePreloaderDone(int loadedPageIndex, PageLoadStatus loadStatus);
OMP Education's avatar
OMP Education включено в состав коммита
46
47
48
};

#endif // PDFDOCUMENTITEM_H