diff --git a/examples/pdf/multipage/main.cpp b/examples/pdf/multipage/main.cpp index 7b766d77ea384315a84f6aea235e665eb05c3155..35aaa8c64cf625f58859a2fafdbf8ee0dce13e35 100644 --- a/examples/pdf/multipage/main.cpp +++ b/examples/pdf/multipage/main.cpp @@ -64,7 +64,10 @@ int main(int argc, char* argv[]) if (app.arguments().count() > 1) { QUrl toLoad = QUrl::fromUserInput(app.arguments().at(1)); engine.rootObjects().first()->setProperty("source", toLoad); + } else { + engine.rootObjects().first()->setProperty("source", QStringLiteral("resources/test.pdf")); } + return app.exec(); } diff --git a/examples/pdf/multipage/multipage.pro b/examples/pdf/multipage/multipage.pro index 5fff58fe111c131faf872072cea5c2c442b40915..5df9e653d1f29781df391271c447bdd4b94d14f9 100644 --- a/examples/pdf/multipage/multipage.pro +++ b/examples/pdf/multipage/multipage.pro @@ -1,6 +1,6 @@ TEMPLATE = app -QT += qml quick pdf widgets +QT += qml quick pdf widgets svg SOURCES += main.cpp diff --git a/examples/pdf/multipage/resources/test.pdf b/examples/pdf/multipage/resources/test.pdf new file mode 100644 index 0000000000000000000000000000000000000000..a9dc1bc292c0b3adb7d0835c891b7790dc32392f Binary files /dev/null and b/examples/pdf/multipage/resources/test.pdf differ diff --git a/examples/pdf/multipage/viewer.qml b/examples/pdf/multipage/viewer.qml index ba54065b7a1d20dd069880027b4385eb992b0eb6..ac6d2cd9a00f3b6f9002514121abd11f4737d19f 100644 --- a/examples/pdf/multipage/viewer.qml +++ b/examples/pdf/multipage/viewer.qml @@ -62,7 +62,7 @@ ApplicationWindow { color: "lightgrey" title: document.title visible: true - property alias source: document.source // for main.cpp + property string source // for main.cpp header: ToolBar { RowLayout { @@ -221,6 +221,7 @@ ApplicationWindow { PdfDocument { id: document + source: Qt.resolvedUrl(root.source) onStatusChanged: { if (status === PdfDocument.Error) errorDialog.open() view.document = (status === PdfDocument.Ready ? document : undefined) diff --git a/examples/pdf/multipage/viewer.qrc b/examples/pdf/multipage/viewer.qrc index 9698a2689322a587a90bf65f5909d5ed708e68f3..1b6fa52f78735693db2f74d009921bfcdcf9090d 100644 --- a/examples/pdf/multipage/viewer.qrc +++ b/examples/pdf/multipage/viewer.qrc @@ -1,6 +1,7 @@ <RCC> <qresource prefix="/pdfviewer"> <file>viewer.qml</file> + <file>resources/document-open.svg</file> <file>resources/edit-clear.svg</file> <file>resources/edit-copy.svg</file> <file>resources/go-down-search.svg</file> @@ -9,11 +10,11 @@ <file>resources/go-up-search.svg</file> <file>resources/rotate-left.svg</file> <file>resources/rotate-right.svg</file> + <file>resources/test.pdf</file> <file>resources/zoom-in.svg</file> <file>resources/zoom-fit-best.svg</file> <file>resources/zoom-fit-width.svg</file> <file>resources/zoom-original.svg</file> <file>resources/zoom-out.svg</file> - <file>resources/document-open.svg</file> </qresource> </RCC> diff --git a/examples/pdf/pdfviewer/main.cpp b/examples/pdf/pdfviewer/main.cpp index 639b1182564bfcc9b1e56bb5cfe06f5caa55e826..5f65e306155b701953817c5fea5c8bb188596034 100644 --- a/examples/pdf/pdfviewer/main.cpp +++ b/examples/pdf/pdfviewer/main.cpp @@ -64,6 +64,8 @@ int main(int argc, char* argv[]) if (app.arguments().count() > 1) { QUrl toLoad = QUrl::fromUserInput(app.arguments().at(1)); engine.rootObjects().first()->setProperty("source", toLoad); + } else { + engine.rootObjects().first()->setProperty("source", QStringLiteral("resources/test.pdf")); } return app.exec(); diff --git a/examples/pdf/pdfviewer/pdfviewer.pro b/examples/pdf/pdfviewer/pdfviewer.pro index 697349cee53002a3335272275ab0aa809240e070..b8817c9bec22ba66d46dc4d2d9e44bc7fb4e6b61 100644 --- a/examples/pdf/pdfviewer/pdfviewer.pro +++ b/examples/pdf/pdfviewer/pdfviewer.pro @@ -1,6 +1,6 @@ TEMPLATE = app -QT += qml quick pdf widgets +QT += qml quick pdf widgets svg SOURCES += main.cpp diff --git a/examples/pdf/pdfviewer/resources/test.pdf b/examples/pdf/pdfviewer/resources/test.pdf new file mode 100644 index 0000000000000000000000000000000000000000..a9dc1bc292c0b3adb7d0835c891b7790dc32392f Binary files /dev/null and b/examples/pdf/pdfviewer/resources/test.pdf differ diff --git a/examples/pdf/pdfviewer/viewer.qml b/examples/pdf/pdfviewer/viewer.qml index 586a822a0431be6597aae45d3e26db4d53db675d..a2bccab445ca1a5b83bd3cc94d67ab79fc720220 100644 --- a/examples/pdf/pdfviewer/viewer.qml +++ b/examples/pdf/pdfviewer/viewer.qml @@ -63,7 +63,7 @@ ApplicationWindow { color: "lightgrey" title: document.title visible: true - property alias source: document.source // for main.cpp + property string source // for main.cpp property real scaleStep: Math.sqrt(2) header: ToolBar { @@ -204,6 +204,7 @@ ApplicationWindow { x: searchDrawer.position * searchDrawer.width // TODO binding gets broken during centering document: PdfDocument { id: document + source: Qt.resolvedUrl(root.source) onStatusChanged: if (status === PdfDocument.Error) errorDialog.open() } searchString: searchField.text diff --git a/examples/pdf/pdfviewer/viewer.qrc b/examples/pdf/pdfviewer/viewer.qrc index 9698a2689322a587a90bf65f5909d5ed708e68f3..1b6fa52f78735693db2f74d009921bfcdcf9090d 100644 --- a/examples/pdf/pdfviewer/viewer.qrc +++ b/examples/pdf/pdfviewer/viewer.qrc @@ -1,6 +1,7 @@ <RCC> <qresource prefix="/pdfviewer"> <file>viewer.qml</file> + <file>resources/document-open.svg</file> <file>resources/edit-clear.svg</file> <file>resources/edit-copy.svg</file> <file>resources/go-down-search.svg</file> @@ -9,11 +10,11 @@ <file>resources/go-up-search.svg</file> <file>resources/rotate-left.svg</file> <file>resources/rotate-right.svg</file> + <file>resources/test.pdf</file> <file>resources/zoom-in.svg</file> <file>resources/zoom-fit-best.svg</file> <file>resources/zoom-fit-width.svg</file> <file>resources/zoom-original.svg</file> <file>resources/zoom-out.svg</file> - <file>resources/document-open.svg</file> </qresource> </RCC> diff --git a/src/pdf/qpdfdocument.cpp b/src/pdf/qpdfdocument.cpp index 42cd2492d8230500eda9d9ed3ead9f1558290127..1e8a0f5273b4fe5b278d18cd35ac84b5d81bebc1 100644 --- a/src/pdf/qpdfdocument.cpp +++ b/src/pdf/qpdfdocument.cpp @@ -420,6 +420,8 @@ QPdfDocument::~QPdfDocument() QPdfDocument::DocumentError QPdfDocument::load(const QString &fileName) { + qCDebug(qLcDoc) << "loading" << fileName; + close(); d->setStatus(QPdfDocument::Loading); @@ -761,7 +763,7 @@ QPdfSelection QPdfDocument::getSelection(int page, QPointF start, QPointF end) return QPdfSelection(text, bounds); } - qDebug(qLcDoc) << page << start << "->" << end << "nothing found"; + qCDebug(qLcDoc) << page << start << "->" << end << "nothing found"; return QPdfSelection(); } diff --git a/src/pdf/quick/qquickpdfdocument.cpp b/src/pdf/quick/qquickpdfdocument.cpp index 6eb9d3ae4d489b0a28a001cfd044efb17a0853cc..1cfd9a9afc3dd1ee43ea57e6b88d34e5f1a45ae8 100644 --- a/src/pdf/quick/qquickpdfdocument.cpp +++ b/src/pdf/quick/qquickpdfdocument.cpp @@ -91,7 +91,10 @@ void QQuickPdfDocument::setSource(QUrl source) m_source = source; emit sourceChanged(); - m_doc.load(source.path()); + if (source.scheme() == QLatin1String("qrc")) + m_doc.load(QLatin1Char(':') + source.path()); + else + m_doc.load(source.path()); } /*!