Commit Graph

49 Commits

Author SHA1 Message Date
Kai Köhne e31802fb15 documentviewer: Fix deployment for macOS, Windows, Linux
Adapt the logic to install and detect especially the
plugins libs:

* Do not just compile them into the app build folder, but
  keep the libs separate under the 'plugins' direcory
* At installation time, follow the logic of *deployqt
  for Qt plugins, and store them in CMAKE_INSTALL_PREFIX/plugins
  (Linux, Windows) or Document Viewer.app/Contents/Plugins
  (macOS).

Unfortunately, this all requires different look ups at runtime for
all operating systems. For macOS and Windows, we furthermore need
to check both for valid paths with an installed build, and an
un-installed build.

While at it, move the install logic to app/CMakeLists.txt, so that
there is less repetition.

An alternative approach would be to calculate the relative paths
at configure time, and either pass on command line or in a created
header file. Anyhow, the current approach is more compact.

Pick-to: 6.10
Fixes: QTBUG-138476
Change-Id: I467d3bd4e14ef6b8b747bceb7177837e2edd3b8c
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2025-07-15 16:49:02 +02:00
Kai Köhne 1bfe6b5f26 documentviewer: Remove support for Qt releases before 6.6
The toplevel CMakeLists.txt file already states we need Qt 6.8 minimum.

Pick-to: 6.10
Change-Id: Ic02179847c72c9d4ee967e4b9b4e9135a223163f
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
2025-07-13 15:37:35 +02:00
Kai Köhne 1a5a0e92e6 documentviewer: Use QT_CONFIG() where possible
QT_CONFIG() is easier to read than double navigation, and fails
for typos. So always prefer it over "ifndef QT_NO"

Pick-to: 6.10
Change-Id: I4e2324a999988fcc120a240193ba8f6bfd4baddc
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
2025-07-13 15:18:14 +02:00
Kai Köhne 0ef5057f45 documentviewer: Centralize projects
The included CMakeLists.txt files are _not_ standalone projects,
so remove any project() as well as duplicated find_package() calls.

Pick-to: 6.10
Change-Id: Ia56128e19588d38eb3c91fac7e9a188f82146515
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
2025-07-10 12:21:13 +00:00
Kai Köhne d2c0a7f76c documentviewer: Set include directory for abstractviewer target
This is a cleaner approach then manually tweaking the dependent targets
include directories.

Pick-to: 6.10
Change-Id: I8382f5556c950398e8a553a77f380922ed14ae9b
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
2025-07-10 14:21:06 +02:00
Kai Köhne 8f3d743da9 documentviewer: Clean up use of printsupport macro
* Do not use the QT_ prefix, as that is reserved for Qt itself,
  not client code (which an example is).
* Do not define the define on a global level, but as a PUBLIC
  target definition for the abstractviewer library.

Pick-to: 6.10
Change-Id: I01a001b0c0706e9f951118472fe1a62ff68a2e4e
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
2025-07-10 14:20:55 +02:00
Kai Köhne f98040d9a4 documentviewer: Add German translations also for pdfviewer
Remove redundant translations for <number>% and use QLocale::percent()
instead.

Pick-to: 6.10
Change-Id: I6ddeceda6f723aae0c2a7f8338ce2d436ea434e2
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
2025-07-09 16:15:01 +02:00
Kai Köhne 61d1494791 documentviewer: Remove tooltip
Adding a tooltip to only one of the action looks weird. As the
tooltip is not much better than the default text just remove.

Pick-to: 6.10
Change-Id: I26d76aa8c6ecdf9b8d9fadd8efa2afe4b898adac
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
2025-07-09 13:29:36 +00:00
Kai Köhne 9a5dfe759e documentviewer: Add retranslate() method to all plugins
Previously, only the imageviewer plugin had a retranslate() method,
which meant that when switching languages, UI texts in other plugins
(jsonviewer, txtviewer, pdfviewer) would not be updated.

This change adds retranslate() methods to all plugins that contain
translatable UI text:

- jsonviewer: Updates menu titles, toolbar titles, actions, tab titles,
  and bookmark tooltips
- txtviewer: Updates menu titles, toolbar titles, and action texts/tooltips
- pdfviewer: Updates toolbar title, action texts/tooltips, and tab titles

Each plugin now stores references to UI elements that need retranslation
and implements the retranslate() method to update all translatable text
when the language is changed.

Fixes: QTBUG-138344
Pick-to: 6.10
Change-Id: I9d294694a42c2c48e03b72e28e9c0f4015cd5c80
Reviewed-by: Masoud Jami <masoud.jami@qt.io>
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
2025-07-09 15:29:28 +02:00
Kai Köhne 55e418d6aa documentviewer: Remove shortcuts for expand, collapse
Using the 'New' shortcut in this context is misleading,
and assigning it twice to opposite actions doesn't make
much sense, either. Just remove.

Pick-to: 6.10
Change-Id: Ied88319d4f874008ceb2a83f12556cd1fc3e2c88
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
2025-07-09 14:30:11 +02:00
Kai Köhne f7bda9f2fa documentviewer: Remove search functionality for JSON
The toolbar was broken in that the pixmap path to magnifier.png was
wrong. With the path enabled, the magnifier looked alien between the
other icons that are retrieved from the system style.

While this could be fixed easily, the acutal search functionality
would've required much more work. As is, the search via
QTV::keybardSearch() is quite limited:
* Only the first columns with the JSON keys are searched
* The text is matched only to the beginning of the column
  text, you cannot search for texts in between or at the end of the
  key.
* Only expanded rows are searched.

All in all, this makes the search appear rather broken. Let's just
remove it.

Pick-to: 6.10
Change-Id: Ie58b88e2ff6327d703094f108eab94b083012e16
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
2025-07-09 14:29:47 +02:00
Masoud Jami 1c322a834c documentviewer demo: Fix SVG warnings
This patch replaces the SVG icons with Qt minimalistic icons and
resolves the warnings about the non-supported SVG properties.

Fixes: QTBUG-138169
Pick-to: 6.10 6.9 6.8
Change-Id: Ib290c15d1498945149ba4425062268619bfe2a33
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2025-07-07 13:43:36 +02:00
Kai Köhne 46aa07165f documentviewer: Make q3dviewer path capitalized
This fixes a cmake warning that the output path does not match

     The Q3DViewerModule target is a QML module with target path Q3DViewer.  It
     uses an OUTPUT_DIRECTORY of
     $HOME/dev/qt/dev/src/qtdoc/examples/demos/documentviewer/build/Qt_6_10_0_build-Debug/plugins/q3dviewer,
     which should end in the same target path, but doesn't.  Tooling such as
     qmllint may not work correctly.

Pick-to: 6.9
Change-Id: I33e402a52e3ee5747da428b9a74121e35345f63d
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2025-05-19 11:34:04 +02:00
Kai Köhne 8ccc066721 documentviewer: Simplify qt_add_translation setup
* Define i18n languages centrally
* Use canonical :/i18n directory (default)

Change-Id: I7e8d9c57512418c51843464622ec270dea1b3456
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2025-05-15 09:50:55 +02:00
Masoud Jami b743a98270 qtdoc: Extend documentviewer demo to use translations
This patch extends the documentviewer demo to use
text based translation for English and German, as follows:

- Add AbstractView::addTranslation(fileName) for inheriting
  plugin classes to optionally load own translations.

- Implement runtime translation switching. Provide option for
  plugins to benefit, if they implement their own runtime
  switching functionality.

Task-number: QTBUG-71856
Change-Id: Ic7782b7fa38d1121b140351f5eaa88ac027a6bcd
Reviewed-by: Kai Köhne <kai.koehne@qt.io>
2025-05-15 09:50:51 +02:00
Masoud Jami 600dfd439f qtdoc: Fix loading svg icons and txtviewer plugin in documentviewer demo
Apply a couple of fixes to load icons correctly and preventing seg fault
in loading txt files in the documentviewer demo.

Change-Id: I5c3e8694abe37140d73da8b40204bc05aaf37e9c
Pick-to: 6.9 6.8
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
2025-04-23 10:54:29 +00:00
Friedemann Kleint 09bc4a6861 documentviewer: Add simple image viewer
Since qtbase/b8f588bea74aae0a890e1af18b936b0bfbf8c237
removed the QtWidgets image viewer example, there
is no way to exercise the image plugins.
Re-add the code as documentviewer plugin.

Pick-to: 6.9
Change-Id: I0eb26d02a9c11cdb0fce315ffc6f7c662e98c924
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
2025-01-24 17:29:41 +01:00
Joerg Bornemann 663141e2ee CMake: Fix CMake warnings in txtviewer plugin example
The txtviewer plugin example is part of the documentviewer example but
at the same time a separate example with its own documentation page.
That means it appears on Qt Creator's Welcome Page and must be buildable
standalone.

Add the usual CMake stanza for standalone projects to the top of the
project file.

Pick-to: 6.8 6.9
Task-number: QTBUG-132738
Change-Id: Ib5aad765ec5dbc2406df6b1cca574a20448f6529
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2025-01-23 16:03:22 +01:00
Friedemann Kleint 88caeb3837 documentviewer demo: Fix edit actions
Use modern theme icons

Pick-to: 6.8
Change-Id: Id9613a1b7828a6059a163c1eb73919764987af12
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
2024-11-26 18:16:36 +01:00
Friedemann Kleint 1c75be5290 documentviewer demo: Fix zoom actions
Use modern theme icons. Add standard shortcuts to the PDF
viewer actions. Remove duplicated adding to the toolbar.

Pick-to: 6.8
Change-Id: I4cfe33c7b8fcc3c070f5c0542b821dd9393bfe2d
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
2024-11-26 09:17:53 +01:00
Axel Spoerl 94548822fe Documentviewer: Handle absence of QtQuick3D.AssetUtils
The documentviewer demo assumed, that Quick3D always comes with
AssetUtils installed. It attempted to create a RuntimeLoader instance
and asserted the result. This lead to a crash, when case AssetUtils were
not installed.

Don't assert, when no RuntimeLoader object can be instantiated. Return
an empty list of MIME types instead. Ignore plugins that don't support
any MIME types.

Fixes: QTBUG-128673
Pick-to: 6.8 6.8.0 6.7
Change-Id: Ib4771ba93dac2e0aab3a89b7e3cd7e64c97e4e5d
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2024-09-18 13:55:31 +02:00
Sami Shalayel 7b528c1723 documentviewer 3d plugin: use qt_add_qml_module
Use qt_add_qml_module for the document viewer demo 3d plugin.

Make the plugin qmllint clean by removing unused imports, unqualified
accesses and setting the ComponentBound behavior.

Use loadFromModule instead of setSource, and rename q3dViewer.qml to
Viewer.qml to be loadable. Same for queryMimeTypes.qml that is now
QueryMimeTypes.qml.

No doc or .pro files needed to be changed as the quick3d viewer plugin
has neither documentation nor qmake file.

Pick-to: 6.8
Task-number: QTBUG-100100
Change-Id: I723277d53ed4b7eb1353772928c6069919d0b4e9
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2024-07-10 08:45:45 +02:00
Alexandru Croitor cde9cfb96c CMake: Add deployment API to our examples
Projects were modified using the tool at:
https://git.qt.io/alcroito/cmake_refactor

Some examples had to be adapted manually, mostly those that build
additional qml modules / plugins.

documentviewer did not get the deployment api, because it's trickier.

Pick-to: 6.7
Task-number: QTBUG-101340
Task-number: QTBUG-102056
Task-number: QTBUG-102057
Change-Id: I76322185fc824c112d77e077ee39e7ccbc193a4c
Reviewed-by:  Alexey Edelev <alexey.edelev@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2024-05-13 09:44:04 +02:00
Lucie Gérard 8b36425fab Correct build system file license under example
According to QUIP-18 [1] all files under examples
should be licensed
LicenseRef-Qt-Commercial OR BSD-3-Clause

[1]: https://contribute.qt-project.org/quips/18

Pick-to: 6.7 6.7.0
Task-number: QTBUG-121787
Change-Id: Ia2e8f62af64a384196a9b0c02ac5b2fbf5404a8b
Reviewed-by: Kai Köhne <kai.koehne@qt.io>
2024-03-19 08:20:16 +01:00
Samuli Piippo 22315147d0 CMake: fix installation of demos projects
Projects need install instructions to be usable on embedded platforms.
Fix existing instructions to put files into correct places.

Fixes: QTBUG-112024
Pick-to: 6.7
Change-Id: I6a3d84edc1c67281d5497e99144c159faf0f783c
Reviewed-by:  Alexey Edelev <alexey.edelev@qt.io>
Reviewed-by: Kimmo Ollila <kimmo.ollila@qt.io>
2024-01-25 15:13:29 +02:00
Axel Spoerl 85ff73b5ff Documentviewer/Q3DViewer: pass correct bounds argument
displayModel.handleBoundsChanged() didn't take an argument and always
handled the bounds of the display model. If a RuntimeLoader was used,
the object was out of bounds.

Make the function take a bounds argument and pass the right bounds to
be handled.

Task-number: QTBUG-119176
Pick-to: 6.7
Change-Id: I8a9986d9ebea14dea2246f02937fe47bbcf95191
Reviewed-by: Christian Strømme <christian.stromme@qt.io>
2024-01-25 11:00:25 +01:00
Axel Spoerl 0e35a8eaf1 Plugin documentation: Refer to Document Viewer Demo
Update code snippets to use JsonViewer as an example.
Add a section about loading plugins.

Task-number: QTBUG-119981
Pick-to: 6.7
Change-Id: Ied3dcba02ad275d16535ab015c49ce03ec0a0e30
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2023-12-20 11:28:58 +01:00
Axel Spoerl 7a14d2ab93 Documentviewer demo / Quick3dViewer: Don't re-use quick view
The quick view used to display 3d files in a widgets application was
being re-used. If another viewer is launched and its contents become
visible in the main window scroll area, the quick view's window
container gets deleted, which causes deletion of the quick view as
well.

That makes the application crash, if an .obj file is viewed, followed
by another file type and then .obj again. The latter will crash.

=> Don't re-use the quick view any more.

Fixes: QTBUG-119175
Pick-to: 6.7 6.6
Change-Id: Ieea54f0a3377dfbc9ff3a07e5b99c80b472e5658
Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>
2023-12-13 17:17:22 +01:00
Axel Spoerl 504e818821 Documentviewer demo: Add quick3d plugin
Add a plugin to show 3d files in QtQuick3D.

Change-Id: I0dcb51f0508a8f677a39f31cdb50f13890a635e5
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2023-11-02 14:10:25 +00:00
Axel Spoerl 459e09b485 Documentviewer demo: Centralize disconnect
Viewer plugins may connect to the central back/forward buttons.
If they disconnect those explicitly in their cleanup methods, the
buttons are nullptr when the application is closed. This lead to a
warning.

Save the QMetaObject::Connection object in a list in Abstractviewer
and directly disconnect it from AbstractViewer::cleanup. That way,
QObject::disconnect is never called with a nullptr argument.

Amends 1f6505a0cf.

Pick-to: 6.6
Change-Id: I4fee76d507f3329fef31e6c9171694ea82914239
Reviewed-by: Santhosh Kumar <santhosh.kumar.selvaraj@qt.io>
2023-10-20 10:39:09 +02:00
Axel Spoerl 1f6505a0cf Documentviewer demo / PdfViewer: Disconnect forward/back buttons
Add missing disconnect statements in PdfViewer::cleanup().

Pick-to: 6.6
Change-Id: I48dbc14f7dc2105e6310f50e4d48afa66388aed4
Reviewed-by: Santhosh Kumar <santhosh.kumar.selvaraj@qt.io>
2023-10-09 17:30:16 +02:00
Axel Spoerl 16d096709f Documentviewer demo: Darwin fixes
Remove definitions of onActionOpenTriggered() and
onActionQuitTriggered(), the implementation of which has been removed.

Change the required binary directory from "macOS" to "MacOS", to find
plugins correctly.

Fixes: QTBUG-117694
Pick-to: 6.6
Change-Id: Iba7d7c07e2881d2e8c4dce4b58f34a6441e8b467
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2023-10-04 15:26:39 +02:00
Marc Mutz 8ca6cd6c97 PdfViewer: port to new QPdfPageSelector API
QPdfPageSelector changed from being a QSpinBox to just a QWidget that
has-a QSpinBox. This code shows why that was a good idea: users are
supposed to call setDocument(), not manipulate QSpinBox::maxiumum()
manually.

Pick-to: 6.6 6.6.0
Fixes: QTBUG-116987
Change-Id: I35ed7786b7e257c8c9aba70671d739db02d7589d
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2023-09-18 07:14:52 +00:00
Friedemann Kleint de79604a91 DocumentViewer demo: Remove code making the JSON model editable
It is a viewer after all, with no save functionality.

Pick-to: 6.6
Change-Id: I9a6f2c2809719abe33238b23a30cc9a06dc43c19
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
2023-07-05 11:57:26 +02:00
Friedemann Kleint 5e62422bcc DocumentViewer demo: Small polish of the PDF plugin
Apply a few fixes that were already done for the other plugins.

Pick-to: 6.6
Change-Id: I3b94547023f77952a670cb7c0385b15e7ddd03ce
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
2023-07-05 09:06:18 +02:00
Friedemann Kleint 843367eac0 DocumentViewer demo: Fix warnings about closed QIODevice when paging PDF
Apparently, QPdfViewer needs an open file.

Pick-to: 6.6
Change-Id: I891f6eeb5a96344bdfce483e77c67b80b1666676
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
2023-07-05 09:06:14 +02:00
Friedemann Kleint d19a179e75 DocumentViewer demo: Remove unused variables
Pick-to: 6.6
Change-Id: I4d94bb8126749468fb28daa593390f1da0da6a7c
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
2023-07-03 16:10:36 +02:00
Axel Spoerl c56673c241 Replace Application example by documentviewer's TxtViewer plugin
This patch adds a snippet based documentation of TxtViewer's code with
the target to replace the Application example in widgets.

Pick-to: 6.6
Change-Id: I25045c8f710ae110398e71099c276571cb32ecf3
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2023-06-26 16:06:31 +02:00
Friedemann Kleint 6536439d44 DocumentViewer demo: Use modern string literals
This unearthes that JSON should convert from UTF-8.

Pick-to: 6.6
Change-Id: If155b745cac0579232b927a3988588204c31d207
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
2023-06-21 15:04:51 +02:00
Axel Spoerl 3c4337653b Fix string literals, tr() usage and includes in PdfViewer
Re-order includes and replace const char * usage by tr() or string
literals.

Pick-to: 6.6
Change-Id: If8b21647c09621e4240bac63aafcae301a741367
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2023-06-21 00:50:04 +02:00
Friedemann Kleint a212b57f25 DocumentViewer demo: Fix tr() usage
Try to avoid concatenating translated texts and parameters; this may
not work in all languages. Use QDir::toNativeSeparators() for file
names.

Pick-to: 6.6
Change-Id: I00c058a91cab04c04580045229350ba3d9951d5e
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
2023-06-20 16:04:37 +02:00
Friedemann Kleint e00a8ad305 DocumentViewer demo: Reorder includes
Remove unused forward declarations and includes; reorder by module.

Pick-to: 6.6
Change-Id: Id9468d1fdb2685df44f2b4a9407c6b12ac2859f3
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
2023-06-20 16:04:26 +02:00
Friedemann Kleint c35c18ff2c DocumentViewer demo: Some modernization
Pick-to: 6.6
Change-Id: I2169e8a109f30b6e4f18a4e2bce9d529c0096a5a
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
2023-06-20 14:53:55 +02:00
Axel Spoerl 01b7e2d091 DocumentViewer demo: Make plugins re-usable
The DocumentViewer demo was originally developed as a self-contained
application. Its dependency to PdfWidgets has lead to splitting it up
into plugins: ba61af0bf3

The new architecture re-uses the viewer objects, but it doesn't reset
them properly. This is why viewer-specific UI-assets (menus, toolbars
and buttons) get duplicated.

This patch adds cleanup functionality and removes duplications.

Fixes: QTBUG-114615
Fixes: QTBUG-114617
Pick-to: 6.6
Change-Id: I4f123f8a69be978f992531603b15de71069d5a66
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2023-06-20 09:18:32 +02:00
Axel Spoerl c8b3c09355 Documentviewer Demo: Turn AbstractViewer class into static library
abstractviewer.cpp is compiled 3 times, once for each plugin.
That leads to duplicate symbol compiler warnings on macOS and makes
the demo unusable on macOS.

This patch turns the class in to a static library and links it into
the plugins.

Fixes: QTBUG-114370
Fixes: QTBUG-114618
Pick-to: 6.6
Change-Id: I7c785e4d463bc908c8df707f1a45301731c4da35
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2023-06-19 19:47:33 +02:00
Alexandru Croitor 54200de405 Fix build of documentviewer example
Due to a missing qt_standard_project_setup call, AUTOMOC was never
enabled which led to undefined symbol issues at link time.

Remove documentWasModified slot declaration because it didn't have a
definition, and it was not referenced by anything in the code.

Pick-to: 6.5 6.6
Fixes: QTBUG-114365
Change-Id: Ib6938163be1a1fdc0bb6f4a925878ec1b309d03e
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
2023-06-08 09:55:01 +02:00
Alexandru Croitor 6b722fd0a0 Fix documentviewer namespace build
Sprinkle some QT_BEGIN_NAMESPACE in the right places to avoid build
failures.

Pick-to: 6.5 6.6
Change-Id: I9cbfadb414881ef32405f0ad99c1009e89466490
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
2023-06-08 09:54:59 +02:00
Topi Reinio 311b17652d Document Viewer example: Add dependency check for pdfviewer plugin
The plugin requires Qt6::PdfWidgets.

Fixes: QTBUG-113377
Change-Id: I2a8b265ce16a5ee04f60140951a80246272b9c0f
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
2023-05-04 08:28:38 +00:00
Axel Spoerl ba61af0bf3 Migrate documentviewer example into plugin based architecture
This patch changes the document viewer example to a plugin based
architecture.
It adapts the documentation accordingly.

Change-Id: Ia24028aa27e21fb8ab36f5ef3a9953be60858b19
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2023-05-02 10:11:06 +02:00