pdfdocumentitem.h 1,4 КБ
Newer Older
OMP Education's avatar
OMP Education включено в состав коммита
1
// SPDX-FileCopyrightText: 2022-2024 Open Mobile Platform LLC <community@omp.ru>
OMP Education's avatar
OMP Education включено в состав коммита
2
// 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
#include <QPointer>
OMP Education's avatar
OMP Education включено в состав коммита
13
14
15

#include "basedocument.h"
#include "pdfpageitem.h"
OMP Education's avatar
OMP Education включено в состав коммита
16
#include "pagepreloader.h"
OMP Education's avatar
OMP Education включено в состав коммита
17
18
19
20
21
22
23
24
25
26
27
28
29

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

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

OMP Education's avatar
OMP Education включено в состав коммита
41
42
43
private:
    void onPagePreloaderDone(int loadedPageIndex, PageLoadStatus loadStatus);

OMP Education's avatar
OMP Education включено в состав коммита
44
45
46
47
48
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 включено в состав коммита
49
    QVector<BaseBookmark *> m_baseBookmarks;
OMP Education's avatar
OMP Education включено в состав коммита
50
    QPointer<PagePreloader> m_preloaderAllPage;
OMP Education's avatar
OMP Education включено в состав коммита
51
52
53
};

#endif // PDFDOCUMENTITEM_H