Коммит 8b58bebf создал по автору OMP Education's avatar OMP Education Зафиксировано автором k.sagalakova
Просмотр файлов

[View] Rename the name of the document entity interface.



	When we run docviewer and call print, there is a problem with
the document preview (the document is converted to pdf format).
This happens because docviewer registers the interface name "BaseDocument",
and tiny-pdf-viewer does too.
 	The main reason for the renaming is that the interface type is
 registered globally. (without uri) qmlRegisterInterface<BaseDocument>("BaseDocument"))
 	And it is not enough to just change the register name, because
 PdfView has a property that uses a pointer of type BaseDocument, so we decide to rename it

Co-Authored-By: default avatarKira Sagalakova <k.sagalakova@omp.ru>
владелец 8a822f0a
...@@ -23,7 +23,7 @@ Module { ...@@ -23,7 +23,7 @@ Module {
"Sailfish.Silica.private 1.0" "Sailfish.Silica.private 1.0"
] ]
Component { Component {
name: "BaseDocument" name: "BasePdfDocument"
prototype: "QObject" prototype: "QObject"
Enum { Enum {
name: "DocumentStatus" name: "DocumentStatus"
...@@ -90,7 +90,7 @@ Module { ...@@ -90,7 +90,7 @@ Module {
Property { name: "itemScale"; type: "float" } Property { name: "itemScale"; type: "float" }
Property { name: "annotationsPaint"; type: "bool" } Property { name: "annotationsPaint"; type: "bool" }
Property { name: "notesPaint"; type: "bool" } Property { name: "notesPaint"; type: "bool" }
Property { name: "documentProvider"; type: "BaseDocument"; isPointer: true } Property { name: "documentProvider"; type: "BasePdfDocument"; isPointer: true }
Property { name: "pdfPath"; type: "string" } Property { name: "pdfPath"; type: "string" }
Property { name: "pageRange"; type: "string" } Property { name: "pageRange"; type: "string" }
Property { name: "pageNumberComponent"; type: "QQmlComponent"; isPointer: true } Property { name: "pageNumberComponent"; type: "QQmlComponent"; isPointer: true }
...@@ -105,7 +105,7 @@ Module { ...@@ -105,7 +105,7 @@ Module {
Property { name: "fitToPage"; type: "bool" } Property { name: "fitToPage"; type: "bool" }
Property { name: "centering"; type: "bool" } Property { name: "centering"; type: "bool" }
Property { name: "pageSpacing"; type: "float" } Property { name: "pageSpacing"; type: "float" }
Property { name: "status"; type: "BaseDocument::DocumentStatus"; isReadonly: true } Property { name: "status"; type: "BasePdfDocument::DocumentStatus"; isReadonly: true }
Property { name: "contentTopMargin"; type: "float"; isReadonly: true } Property { name: "contentTopMargin"; type: "float"; isReadonly: true }
Property { name: "bookmarksModel"; type: "BookmarksModel"; isReadonly: true; isPointer: true } Property { name: "bookmarksModel"; type: "BookmarksModel"; isReadonly: true; isPointer: true }
Property { name: "fileVersion"; type: "int"; isReadonly: true } Property { name: "fileVersion"; type: "int"; isReadonly: true }
...@@ -180,7 +180,7 @@ Module { ...@@ -180,7 +180,7 @@ Module {
} }
Signal { Signal {
name: "documentProviderChanged" name: "documentProviderChanged"
Parameter { name: "documentProvider"; type: "BaseDocument"; isPointer: true } Parameter { name: "documentProvider"; type: "BasePdfDocument"; isPointer: true }
} }
Signal { Signal {
name: "pdfPathChanged" name: "pdfPathChanged"
...@@ -240,7 +240,7 @@ Module { ...@@ -240,7 +240,7 @@ Module {
} }
Signal { Signal {
name: "statusChanged" name: "statusChanged"
Parameter { name: "status"; type: "BaseDocument::DocumentStatus" } Parameter { name: "status"; type: "BasePdfDocument::DocumentStatus" }
} }
Signal { Signal {
name: "contentTopMarginChanged" name: "contentTopMarginChanged"
...@@ -307,7 +307,7 @@ Module { ...@@ -307,7 +307,7 @@ Module {
} }
Method { Method {
name: "setDocumentProvider" name: "setDocumentProvider"
Parameter { name: "documentProvider"; type: "BaseDocument"; isPointer: true } Parameter { name: "documentProvider"; type: "BasePdfDocument"; isPointer: true }
} }
Method { Method {
name: "setPdfPath" name: "setPdfPath"
...@@ -372,7 +372,7 @@ Module { ...@@ -372,7 +372,7 @@ Module {
} }
Component { Component {
name: "PdfDocumentItem" name: "PdfDocumentItem"
prototype: "BaseDocument" prototype: "BasePdfDocument"
exports: ["ru.omp.amberpdf/PdfDocument 1.0"] exports: ["ru.omp.amberpdf/PdfDocument 1.0"]
exportMetaObjectRevisions: [0] exportMetaObjectRevisions: [0]
Method { Method {
......
...@@ -145,7 +145,7 @@ void DocumentMapper::forceUpdate() ...@@ -145,7 +145,7 @@ void DocumentMapper::forceUpdate()
_mapPages(); _mapPages();
} }
void DocumentMapper::setDocumentProvider(BaseDocument *documentProvider) void DocumentMapper::setDocumentProvider(BasePdfDocument *documentProvider)
{ {
if (documentProvider == nullptr) if (documentProvider == nullptr)
return; return;
...@@ -174,6 +174,7 @@ void DocumentMapper::setDocumentProvider(BaseDocument *documentProvider) ...@@ -174,6 +174,7 @@ void DocumentMapper::setDocumentProvider(BaseDocument *documentProvider)
auto pageHeight = !isNeedeRecalcWidth && !m_fitToPage ? pageSize.width() auto pageHeight = !isNeedeRecalcWidth && !m_fitToPage ? pageSize.width()
: pageSize.height(); : pageSize.height();
m_originalPagesMap.pages.append({originalPageStartX, m_originalPagesMap.pages.append({originalPageStartX,
originalPageStartY, originalPageStartY,
originalPageStartX + pageWidth, originalPageStartX + pageWidth,
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
#define SPACING_DEFAULT_VALUE 20 #define SPACING_DEFAULT_VALUE 20
class BaseDocument; class BasePdfDocument;
class DocumentMapper : public QQuickItem class DocumentMapper : public QQuickItem
{ {
Q_OBJECT Q_OBJECT
...@@ -47,7 +47,7 @@ public: ...@@ -47,7 +47,7 @@ public:
bool fitToPage() const; bool fitToPage() const;
public slots: public slots:
void setDocumentProvider(BaseDocument *documentProvider); void setDocumentProvider(BasePdfDocument *documentProvider);
void setOrientation(Qt::Orientation orientation); void setOrientation(Qt::Orientation orientation);
void setSpecialPageIndexes(const std::map<int,int> &specialRangeIndexes, void setSpecialPageIndexes(const std::map<int,int> &specialRangeIndexes,
const std::set<int> &specialIndexes); const std::set<int> &specialIndexes);
...@@ -68,7 +68,7 @@ private slots: ...@@ -68,7 +68,7 @@ private slots:
void _updateSize(); void _updateSize();
private: private:
BaseDocument *m_documentProvider; BasePdfDocument *m_documentProvider;
PagesMap m_originalPagesMap; PagesMap m_originalPagesMap;
QHash<int, PagePosition> m_actualPagesCoordinates; QHash<int, PagePosition> m_actualPagesCoordinates;
Qt::Orientation m_orientation; Qt::Orientation m_orientation;
......
// SPDX-FileCopyrightText: 2022 Open Mobile Platform LLC <community@omp.ru> // SPDX-FileCopyrightText: 2022-2024 Open Mobile Platform LLC <community@omp.ru>
// SPDX-License-Identifier: BSD-3-Clause // SPDX-License-Identifier: BSD-3-Clause
#include <QMetaType> #include <QMetaType>
#include "basedocument.h" #include "basedocument.h"
BaseDocument::BaseDocument(QObject *parent) : QObject(parent) BasePdfDocument::BasePdfDocument(QObject *parent)
: QObject(parent)
{ {
qRegisterMetaType<PageLoadStatus>(); qRegisterMetaType<PageLoadStatus>();
} }
BaseDocument::~BaseDocument() = default; BasePdfDocument::~BasePdfDocument() = default;
BaseDocument::DocumentStatus BaseDocument::status() const BasePdfDocument::DocumentStatus BasePdfDocument::status() const
{ {
return m_status; return m_status;
} }
QString BaseDocument::path() const QString BasePdfDocument::path() const
{ {
return m_path; return m_path;
} }
// SPDX-FileCopyrightText: 2022-2023 Open Mobile Platform LLC <community@omp.ru> // SPDX-FileCopyrightText: 2022-2024 Open Mobile Platform LLC <community@omp.ru>
// SPDX-License-Identifier: BSD-3-Clause // SPDX-License-Identifier: BSD-3-Clause
#ifndef BASEDOCUMENT_H #ifndef BASEDOCUMENT_H
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
class BasePage; class BasePage;
class BaseBookmark; class BaseBookmark;
class BaseDocument : public QObject class BasePdfDocument : public QObject
{ {
Q_OBJECT Q_OBJECT
...@@ -33,8 +33,8 @@ public: ...@@ -33,8 +33,8 @@ public:
}; };
Q_ENUM(PageLoadStatus) Q_ENUM(PageLoadStatus)
explicit BaseDocument(QObject *parent = nullptr); explicit BasePdfDocument(QObject *parent = nullptr);
virtual ~BaseDocument(); virtual ~BasePdfDocument();
DocumentStatus status() const; DocumentStatus status() const;
......
// SPDX-FileCopyrightText: 2022-2023 Open Mobile Platform LLC <community@omp.ru> // SPDX-FileCopyrightText: 2022-2024 Open Mobile Platform LLC <community@omp.ru>
// SPDX-License-Identifier: BSD-3-Clause // SPDX-License-Identifier: BSD-3-Clause
#include "interface/basedocument.h" #include "interface/basedocument.h"
...@@ -57,13 +57,13 @@ QHash<int, QByteArray> PagesWithNotesModel::roleNames() const ...@@ -57,13 +57,13 @@ QHash<int, QByteArray> PagesWithNotesModel::roleNames() const
}; };
} }
void PagesWithNotesModel::setNewData(BaseDocument *provider) void PagesWithNotesModel::setNewData(BasePdfDocument *provider)
{ {
if (provider == nullptr || provider == m_documentProvider) if (provider == nullptr || provider == m_documentProvider)
return; return;
m_documentProvider = provider; m_documentProvider = provider;
connect(m_documentProvider, &BaseDocument::pageLoaded, this, &PagesWithNotesModel::_addPage); connect(m_documentProvider, &BasePdfDocument::pageLoaded, this, &PagesWithNotesModel::_addPage);
beginResetModel(); beginResetModel();
endResetModel(); endResetModel();
} }
......
// SPDX-FileCopyrightText: 2022-2023 Open Mobile Platform LLC <community@omp.ru> // SPDX-FileCopyrightText: 2022-2024 Open Mobile Platform LLC <community@omp.ru>
// SPDX-License-Identifier: BSD-3-Clause // SPDX-License-Identifier: BSD-3-Clause
#ifndef PAGESWITHNOTESMODEL_H #ifndef PAGESWITHNOTESMODEL_H
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
#include <QAbstractListModel> #include <QAbstractListModel>
class BaseDocument; class BasePdfDocument;
class NotesModel; class NotesModel;
class PagesWithNotesModel : public QAbstractListModel class PagesWithNotesModel : public QAbstractListModel
{ {
...@@ -27,7 +27,7 @@ public: ...@@ -27,7 +27,7 @@ public:
QVariant data(const QModelIndex &index, int role) const override; QVariant data(const QModelIndex &index, int role) const override;
QHash<int, QByteArray> roleNames() const override; QHash<int, QByteArray> roleNames() const override;
void setNewData(BaseDocument *newData); void setNewData(BasePdfDocument *newData);
public slots: public slots:
void preLoadAllNotes(); void preLoadAllNotes();
...@@ -36,7 +36,7 @@ private slots: ...@@ -36,7 +36,7 @@ private slots:
void _addPage(int pageIndex); void _addPage(int pageIndex);
private: private:
BaseDocument *m_documentProvider = nullptr; BasePdfDocument *m_documentProvider = nullptr;
QMap<int, NotesModel *> m_notesModels; QMap<int, NotesModel *> m_notesModels;
}; };
......
// SPDX-FileCopyrightText: 2022-2023 Open Mobile Platform LLC <community@omp.ru> // SPDX-FileCopyrightText: 2022-2024 Open Mobile Platform LLC <community@omp.ru>
// SPDX-License-Identifier: BSD-3-Clause // SPDX-License-Identifier: BSD-3-Clause
#include <QMutexLocker> #include <QMutexLocker>
...@@ -21,7 +21,7 @@ PagePreloader::~PagePreloader() = default; ...@@ -21,7 +21,7 @@ PagePreloader::~PagePreloader() = default;
void PagePreloader::run() void PagePreloader::run()
{ {
if (!m_document || m_document->status() != PdfDocument::Success) { if (!m_document || m_document->status() != PdfDocument::Success) {
emit done(m_pageIndex, BaseDocument::PageLoadStatus::Fail); emit done(m_pageIndex, BasePdfDocument::PageLoadStatus::Fail);
return; return;
} }
...@@ -34,9 +34,9 @@ void PagePreloader::run() ...@@ -34,9 +34,9 @@ void PagePreloader::run()
auto pageFuture = m_document->page(m_pageIndex + i); auto pageFuture = m_document->page(m_pageIndex + i);
pageFuture.waitForFinished(); pageFuture.waitForFinished();
if (pageFuture.isFinished() && !pageFuture.isCanceled()) if (pageFuture.isFinished() && !pageFuture.isCanceled())
emit done(m_pageIndex + i, BaseDocument::PageLoadStatus::Success); emit done(m_pageIndex + i, BasePdfDocument::PageLoadStatus::Success);
else else
emit done(m_pageIndex + i, BaseDocument::PageLoadStatus::Fail); emit done(m_pageIndex + i, BasePdfDocument::PageLoadStatus::Fail);
} }
} }
......
// SPDX-FileCopyrightText: 2022-2023 Open Mobile Platform LLC <community@omp.ru> // SPDX-FileCopyrightText: 2022-2024 Open Mobile Platform LLC <community@omp.ru>
// SPDX-License-Identifier: BSD-3-Clause // SPDX-License-Identifier: BSD-3-Clause
#ifndef PAGEPRELOADER_H #ifndef PAGEPRELOADER_H
...@@ -24,7 +24,7 @@ public: ...@@ -24,7 +24,7 @@ public:
void cancel(); void cancel();
signals: signals:
void done(int, BaseDocument::PageLoadStatus); void done(int, BasePdfDocument::PageLoadStatus);
private: private:
QSharedPointer<PdfDocument> m_document; QSharedPointer<PdfDocument> m_document;
......
// SPDX-FileCopyrightText: 2022-2023 Open Mobile Platform LLC <community@omp.ru> // SPDX-FileCopyrightText: 2022-2024 Open Mobile Platform LLC <community@omp.ru>
// SPDX-License-Identifier: BSD-3-Clause // SPDX-License-Identifier: BSD-3-Clause
#include <QFile> #include <QFile>
...@@ -18,7 +18,8 @@ ...@@ -18,7 +18,8 @@
#include "pdfdocumentitem.h" #include "pdfdocumentitem.h"
PdfDocumentItem::PdfDocumentItem(QObject *parent) : BaseDocument(parent) PdfDocumentItem::PdfDocumentItem(QObject *parent)
: BasePdfDocument(parent)
{ {
qRegisterMetaType<QHash<int, QSizeF>>(); qRegisterMetaType<QHash<int, QSizeF>>();
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
class PdfPage; class PdfPage;
class PdfDocument; class PdfDocument;
class PdfDocumentItem : public BaseDocument class PdfDocumentItem : public BasePdfDocument
{ {
Q_OBJECT Q_OBJECT
......
...@@ -68,7 +68,7 @@ PdfView::PdfView(QQuickItem *parent) ...@@ -68,7 +68,7 @@ PdfView::PdfView(QQuickItem *parent)
m_timer = new QTimer(this); m_timer = new QTimer(this);
m_timer->setSingleShot(true); m_timer->setSingleShot(true);
emit statusChanged(BaseDocument::DocumentStatus::Null); emit statusChanged(BasePdfDocument::DocumentStatus::Null);
m_bookmarksModel = new BookmarksModel(this); m_bookmarksModel = new BookmarksModel(this);
} }
...@@ -211,7 +211,7 @@ bool PdfView::notesPaint() const ...@@ -211,7 +211,7 @@ bool PdfView::notesPaint() const
return m_notesPaint; return m_notesPaint;
} }
BaseDocument *PdfView::documentProvider() const BasePdfDocument *PdfView::documentProvider() const
{ {
return m_documentProvider; return m_documentProvider;
} }
...@@ -389,9 +389,10 @@ qreal PdfView::pageAspectRatio() const ...@@ -389,9 +389,10 @@ qreal PdfView::pageAspectRatio() const
return m_pageAspectRatio; return m_pageAspectRatio;
} }
BaseDocument::DocumentStatus PdfView::status() const BasePdfDocument::DocumentStatus PdfView::status() const
{ {
return m_documentProvider == nullptr ? BaseDocument::DocumentStatus::Null : m_documentProvider->status(); return m_documentProvider == nullptr ? BasePdfDocument::DocumentStatus::Null
: m_documentProvider->status();
} }
void PdfView::setContentY(qreal contentY) void PdfView::setContentY(qreal contentY)
...@@ -559,7 +560,7 @@ void PdfView::setNotesPaint(bool notesPaint) ...@@ -559,7 +560,7 @@ void PdfView::setNotesPaint(bool notesPaint)
emit notesPaintChanged(m_notesPaint); emit notesPaintChanged(m_notesPaint);
} }
void PdfView::setDocumentProvider(BaseDocument *documentProvider) void PdfView::setDocumentProvider(BasePdfDocument *documentProvider)
{ {
if (m_documentProvider == documentProvider) if (m_documentProvider == documentProvider)
return; return;
...@@ -585,7 +586,7 @@ void PdfView::setDocumentProvider(BaseDocument *documentProvider) ...@@ -585,7 +586,7 @@ void PdfView::setDocumentProvider(BaseDocument *documentProvider)
m_contentHeight = -1; m_contentHeight = -1;
emit contentHeightChanged(m_contentHeight); emit contentHeightChanged(m_contentHeight);
emit statusChanged(BaseDocument::DocumentStatus::Null); emit statusChanged(BasePdfDocument::DocumentStatus::Null);
if (m_pagesWithNotesModel != nullptr) { if (m_pagesWithNotesModel != nullptr) {
m_pagesWithNotesModel->deleteLater(); m_pagesWithNotesModel->deleteLater();
...@@ -595,57 +596,63 @@ void PdfView::setDocumentProvider(BaseDocument *documentProvider) ...@@ -595,57 +596,63 @@ void PdfView::setDocumentProvider(BaseDocument *documentProvider)
m_pagesWithNotesModel = new PagesWithNotesModel(this); m_pagesWithNotesModel = new PagesWithNotesModel(this);
emit pagesWithNotesModelChanged(m_pagesWithNotesModel); emit pagesWithNotesModelChanged(m_pagesWithNotesModel);
connect(m_documentProvider, &BaseDocument::pageLoaded, this, [&](int pageIndex, BaseDocument::PageLoadStatus loadStatus) { connect(m_documentProvider,
if (!m_pages.contains(pageIndex)) &BasePdfDocument::pageLoaded,
return; this,
[&](int pageIndex, BasePdfDocument::PageLoadStatus loadStatus) {
if (!m_pages.contains(pageIndex))
return;
auto page = qobject_cast<PdfPageContainer *>(m_pages.value(pageIndex)); auto page = qobject_cast<PdfPageContainer *>(m_pages.value(pageIndex));
if (page == nullptr) if (page == nullptr)
return; return;
if (!page->source() || loadStatus != BaseDocument::PageLoadStatus::Success) { if (!page->source() || loadStatus != BasePdfDocument::PageLoadStatus::Success) {
auto baseDocument = qobject_cast<BaseDocument *>(m_documentProvider); auto baseDocument = qobject_cast<BasePdfDocument *>(m_documentProvider);
page->setPageSource(baseDocument->loadPage(pageIndex)); page->setPageSource(baseDocument->loadPage(pageIndex));
} }
}); });
connect(m_documentProvider, &BaseDocument::bookmarksLoaded, this, [this]() { connect(m_documentProvider, &BasePdfDocument::bookmarksLoaded, this, [this]() {
m_bookmarksModel->setNewData(m_documentProvider->bookmarks()); m_bookmarksModel->setNewData(m_documentProvider->bookmarks());
emit bookmarksModelChanged(m_bookmarksModel); emit bookmarksModelChanged(m_bookmarksModel);
}); });
connect(m_documentProvider, &BaseDocument::statusChanged, this, [this](BaseDocument::DocumentStatus status) { connect(m_documentProvider,
if (status == BaseDocument::DocumentStatus::Ready) { &BasePdfDocument::statusChanged,
m_mapper->setSpacing(m_pageSpacing); this,
m_mapper->setPageAspectRatio(m_pageAspectRatio); [this](BasePdfDocument::DocumentStatus status) {
m_mapper->setFitToPage(m_fitToPage); if (status == BasePdfDocument::DocumentStatus::Ready) {
m_mapper->setDocumentProvider(m_documentProvider); m_mapper->setSpacing(m_pageSpacing);
m_count = m_documentProvider->count(); m_mapper->setPageAspectRatio(m_pageAspectRatio);
if (m_pageNumberComponent) { m_mapper->setFitToPage(m_fitToPage);
std::set<int> pageIndexes; m_mapper->setDocumentProvider(m_documentProvider);
std::map<int, int> indexIntervals; m_count = m_documentProvider->count();
if (m_count > 1) if (m_pageNumberComponent) {
indexIntervals = {std::pair(0, m_count - 1)}; std::set<int> pageIndexes;
else std::map<int, int> indexIntervals;
pageIndexes = {m_count - 1}; if (m_count > 1)
indexIntervals = {std::pair(0, m_count - 1)};
if (m_pageRange.isEmpty()) else
m_mapper->setSpecialPageIndexes(indexIntervals, pageIndexes); pageIndexes = {m_count - 1};
}
m_specialPagesCount = m_mapper->specialPagesCount(); if (m_pageRange.isEmpty())
m_documentProvider->startLoadBookmarks(); m_mapper->setSpecialPageIndexes(indexIntervals, pageIndexes);
m_pagesWithNotesModel->setNewData(m_documentProvider); }
emit countChanged(m_count); m_specialPagesCount = m_mapper->specialPagesCount();
emit specialPagesCountChanged(m_specialPagesCount); m_documentProvider->startLoadBookmarks();
emit maxPageIndexChanged(m_mapper->maxSpecialIndex()); m_pagesWithNotesModel->setNewData(m_documentProvider);
emit minPageIndexChanged(m_mapper->minSpecialIndex()); emit countChanged(m_count);
} emit specialPagesCountChanged(m_specialPagesCount);
emit maxPageIndexChanged(m_mapper->maxSpecialIndex());
emit minPageIndexChanged(m_mapper->minSpecialIndex());
}
_calculateVisible(); _calculateVisible();
emit statusChanged(status); emit statusChanged(status);
}); });
connect(m_documentProvider, &BaseDocument::fileVersionChanged, this, [this](int fileVersion) { connect(m_documentProvider, &BasePdfDocument::fileVersionChanged, this, [this](int fileVersion) {
if (fileVersion > 0) if (fileVersion > 0)
emit fileVersionChanged(m_documentProvider->fileVersion()); emit fileVersionChanged(m_documentProvider->fileVersion());
}); });
...@@ -1165,7 +1172,7 @@ void PdfView::_loadDocument() ...@@ -1165,7 +1172,7 @@ void PdfView::_loadDocument()
if (m_documentProvider == nullptr) if (m_documentProvider == nullptr)
return; return;
emit statusChanged(BaseDocument::DocumentStatus::Loading); emit statusChanged(BasePdfDocument::DocumentStatus::Loading);
m_documentProvider->setPath(m_pdfPath); m_documentProvider->setPath(m_pdfPath);
} }
...@@ -1235,7 +1242,7 @@ void PdfView::_preparePages() ...@@ -1235,7 +1242,7 @@ void PdfView::_preparePages()
if (m_paintedPages.isEmpty()) if (m_paintedPages.isEmpty())
return; return;
auto baseDocument = qobject_cast<BaseDocument *>(m_documentProvider); auto baseDocument = qobject_cast<BasePdfDocument *>(m_documentProvider);
bool needPositioning = false; bool needPositioning = false;
for (const auto &pageIndex : m_paintedPages) { for (const auto &pageIndex : m_paintedPages) {
......
...@@ -31,10 +31,11 @@ class PdfView : public QQuickItem ...@@ -31,10 +31,11 @@ class PdfView : public QQuickItem
Q_PROPERTY(qreal itemScale READ itemScale WRITE setItemScale NOTIFY itemScaleChanged) Q_PROPERTY(qreal itemScale READ itemScale WRITE setItemScale NOTIFY itemScaleChanged)
Q_PROPERTY(bool annotationsPaint READ annotationsPaint WRITE setAnnotationsPaint NOTIFY annotationsPaintChanged) Q_PROPERTY(bool annotationsPaint READ annotationsPaint WRITE setAnnotationsPaint NOTIFY annotationsPaintChanged)
Q_PROPERTY(bool notesPaint READ notesPaint WRITE setNotesPaint NOTIFY notesPaintChanged) Q_PROPERTY(bool notesPaint READ notesPaint WRITE setNotesPaint NOTIFY notesPaintChanged)
Q_PROPERTY(BaseDocument* documentProvider READ documentProvider WRITE setDocumentProvider NOTIFY documentProviderChanged) Q_PROPERTY(BasePdfDocument *documentProvider READ documentProvider WRITE setDocumentProvider
NOTIFY documentProviderChanged)
Q_PROPERTY(QString pdfPath READ pdfPath WRITE setPdfPath NOTIFY pdfPathChanged) Q_PROPERTY(QString pdfPath READ pdfPath WRITE setPdfPath NOTIFY pdfPathChanged)
Q_PROPERTY(QString pageRange READ pageRange WRITE setPageRange NOTIFY pageRangeChanged) Q_PROPERTY(QString pageRange READ pageRange WRITE setPageRange NOTIFY pageRangeChanged)
Q_PROPERTY(BaseDocument::DocumentStatus status READ status NOTIFY statusChanged) Q_PROPERTY(BasePdfDocument::DocumentStatus status READ status NOTIFY statusChanged)
Q_PROPERTY(qreal contentTopMargin READ contentTopMargin NOTIFY contentTopMarginChanged) Q_PROPERTY(qreal contentTopMargin READ contentTopMargin NOTIFY contentTopMarginChanged)
Q_PROPERTY(BookmarksModel* bookmarksModel READ bookmarksModel NOTIFY bookmarksModelChanged) Q_PROPERTY(BookmarksModel* bookmarksModel READ bookmarksModel NOTIFY bookmarksModelChanged)
Q_PROPERTY(int fileVersion READ fileVersion NOTIFY fileVersionChanged) Q_PROPERTY(int fileVersion READ fileVersion NOTIFY fileVersionChanged)
...@@ -74,12 +75,12 @@ public: ...@@ -74,12 +75,12 @@ public:
qreal itemScale() const; qreal itemScale() const;
bool annotationsPaint() const; bool annotationsPaint() const;
bool notesPaint() const; bool notesPaint() const;
BaseDocument* documentProvider() const; BasePdfDocument *documentProvider() const;
QString pdfPath() const; QString pdfPath() const;
QString pageRange() const; QString pageRange() const;
bool grayScaleRendering() const; bool grayScaleRendering() const;
qreal pageAspectRatio() const; qreal pageAspectRatio() const;
BaseDocument::DocumentStatus status() const; BasePdfDocument::DocumentStatus status() const;
qreal contentTopMargin() const; qreal contentTopMargin() const;
BookmarksModel *bookmarksModel() const; BookmarksModel *bookmarksModel() const;
int fileVersion() const; int fileVersion() const;
...@@ -115,7 +116,7 @@ public slots: ...@@ -115,7 +116,7 @@ public slots:
void clicked(const QPointF &point); void clicked(const QPointF &point);
void setAnnotationsPaint(bool annotationsPaint); void setAnnotationsPaint(bool annotationsPaint);
void setNotesPaint(bool notesPaint); void setNotesPaint(bool notesPaint);
void setDocumentProvider(BaseDocument* documentProvider); void setDocumentProvider(BasePdfDocument *documentProvider);
void setPdfPath(QString pdfPath); void setPdfPath(QString pdfPath);
void setPageRange(const QString &pageRange); void setPageRange(const QString &pageRange);
void setPageNumberComponent(QQmlComponent *pageNumberComponent); void setPageNumberComponent(QQmlComponent *pageNumberComponent);
...@@ -147,10 +148,10 @@ signals: ...@@ -147,10 +148,10 @@ signals:
void clickedGoToPage(int pageNumber, QPointF coordinateOnPage) const; void clickedGoToPage(int pageNumber, QPointF coordinateOnPage) const;
void notesPaintChanged(bool notesPaint); void notesPaintChanged(bool notesPaint);
void noteActivated(QString noteText, QString author, int pageIndex); void noteActivated(QString noteText, QString author, int pageIndex);
void documentProviderChanged(BaseDocument* documentProvider); void documentProviderChanged(BasePdfDocument *documentProvider);
void pdfPathChanged(QString pdfPath); void pdfPathChanged(QString pdfPath);
void pageRangeChanged(QString pageRange); void pageRangeChanged(QString pageRange);
void statusChanged(BaseDocument::DocumentStatus status); void statusChanged(BasePdfDocument::DocumentStatus status);
void contentTopMarginChanged(qreal contentTopMargin); void contentTopMarginChanged(qreal contentTopMargin);
void bookmarksModelChanged(BookmarksModel *bookmarksModel); void bookmarksModelChanged(BookmarksModel *bookmarksModel);
void fileVersionChanged(int fileVersion); void fileVersionChanged(int fileVersion);
...@@ -210,7 +211,7 @@ private: ...@@ -210,7 +211,7 @@ private:
qreal m_itemScale; qreal m_itemScale;
bool m_annotationsPaint; bool m_annotationsPaint;
bool m_notesPaint; bool m_notesPaint;
BaseDocument* m_documentProvider; BasePdfDocument *m_documentProvider;
QString m_pdfPath; QString m_pdfPath;
QString m_pageRange; QString m_pageRange;
qreal m_contentTopMargin; qreal m_contentTopMargin;
......
// SPDX-FileCopyrightText: 2022 Open Mobile Platform LLC <community@omp.ru> // SPDX-FileCopyrightText: 2022-2024 Open Mobile Platform LLC <community@omp.ru>
// SPDX-License-Identifier: BSD-3-Clause // SPDX-License-Identifier: BSD-3-Clause
#include <QQmlExtensionPlugin> #include <QQmlExtensionPlugin>
...@@ -32,7 +32,7 @@ public: ...@@ -32,7 +32,7 @@ public:
qmlRegisterType<BookmarksModel>(uri, 1, 0, "BookmarksModel"); qmlRegisterType<BookmarksModel>(uri, 1, 0, "BookmarksModel");
qmlRegisterType<PagesWithNotesModel>(uri, 1, 0, "PagesWithNotesModel"); qmlRegisterType<PagesWithNotesModel>(uri, 1, 0, "PagesWithNotesModel");
qmlRegisterType<PageWithNotesSortModel>(uri, 1, 0, "PageWithNotesSortModel"); qmlRegisterType<PageWithNotesSortModel>(uri, 1, 0, "PageWithNotesSortModel");
qmlRegisterInterface<BaseDocument>("BaseDocument"); qmlRegisterInterface<BasePdfDocument>("BasePdfDocument");
} }
}; };
......
Поддерживает Markdown
0% или .
You are about to add 0 people to the discussion. Proceed with caution.
Сначала завершите редактирование этого сообщения!
Пожалуйста, зарегистрируйтесь или чтобы прокомментировать