summaryrefslogtreecommitdiffstats
path: root/src/printsupport/dialogs
Commit message (Collapse)AuthorAgeFilesLines
* a11y: Align visual and focus order in print dialog's "Page" tabMichael Weghorn2025-11-241-20/+20
| | | | | | | | | | | | | | By default, the tab focus order matches the order in which widgets are created. While that could manually be overriden, just define the widgets in the .ui file in their visual order, to ensure that the combobox to set the unit to use receives focus before the "Page Size" combobox below it when using the Tab key to navigate through the dialog. Change-Id: Ib6130b71c80048019e7874e695a7767225da7cfa Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* a11y: Set buddies in print properties dialog's "Advanced" tabMichael Weghorn2025-11-241-0/+1
| | | | | | | | | | | | | Set the comboboxes for the advanced PPD options in the "Advanced" tab of the printer properties dialog as the labels' buddies, which also makes sure that the accessible relations between the label and the widgets are set. This makes screen readers like Orca on Linux announce the label text when the combobox receives focus, so the meaning/context becomes clear. Change-Id: I1b2b9f4ba682577673d97de66f5ad2fb0cc6ce83 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* a11y: Set buddies in print properties dialog's "Page" tabMichael Weghorn2025-11-241-2/+8
| | | | | | | | | | | | | Set the comboboxes labelled by the "Pages per sheet" and "Page order" labels as their buddies, which also makes sure that the accessible relations between the label and the combobox are set. This makes screen readers like Orca on Linux announce the label text when the combobox receives focus, so the meaning of the combobox becomes clear. Change-Id: Ibf0df6970d7f80f047751be29cbe01ab796a377b Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* a11y: Set buddy in print dialog's "Copies" panelMichael Weghorn2025-11-241-3/+6
| | | | | | | | | | | | Set the combobox labelled by the "Page Set" label as its buddy, which also makes sure that the accessible relations between the label and the combobox are set. This makes screen readers like Orca on Linux announce the label text when the combobox receives focus, so the meaning of the combobox becomes clear. Change-Id: I7f82b07e741b743268c4b6817ceed671ee2657c6 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Doc: Add alt text for QMake, QtOpenGl, and QtPrintSupportEren Bursali2025-11-181-2/+4
| | | | | | | | Adding alt texts for \image tags that were needed for qdoc Pick-to: 6.10 Change-Id: I71166238a7f7810e3c41ae944edda8d184836465 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Add security headers for src\printsupportSadegh Taghavi2025-09-2511-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | As defined in QUIP 23, security critical files should be marked with Qt-Security score:critical. This change also marks all non-critical files as significant (the default) to make it clear that all files have been considered. As all printing to the device using the input data falls under the responsibility of other modules, such as parsing a document and painting it to the device. There are no direct network access or parsing operations in the printing subsystem other than wrapping around the native APIs. Then we cannot mark anything here as Critical. There are some parsing functions like QPrintUtils::parsePpdResolution, QCUPSSupport::findPpdOption, and QCocoaPrintDevice::defaultColorMode(), but all rely on the native ppd APIs. Fixes: QTBUG-134646 Pick-to: 6.10 6.9 6.8 Change-Id: Ic02a81051f4a03f9caf188f091dcbf29f8094ed1 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* QPrintPreviewDialog: Improve i18n for percent valueEmir SARI2025-04-031-3/+10
| | | | | | | | | This fixes the initial percent value being in the wrong format for languages that have a different format set. Also enables locale-aware decimals separator. Change-Id: I77db487635284e58ed47ed3807fe4390d8d97123 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* rely on CUPS for multiple page ranges in unix version of QPrintDialogAlexander Stippich2025-03-231-4/+2
| | | | | | | | | | | | | | | | | | | Since the introduction of QPageRanges with Qt6, multiple/arbitrary page ranges are broken in the unix implementation of QPrintDialog due to a possible double application of the page ranges: on the application side and on the server side with CUPS. Reason for this is that the QPrinter::PrintRange is set to PageRange instead of AllPages. The latter is needed when relying on the CUPS server-side page range. However, the server-side page range is always applied later on. Restore the behavior of Qt5 and set the PrintRange to AllPages for multiple/arbitrary page ranges and rely on the server-side filtering with CUPS. Pick-to: 6.9 6.8 Change-Id: I1b85552a8cf2509b11a81db028f957584043f3ee Reviewed-by: Albert Astals Cid <aacid@kde.org> Reviewed-by: David Faure <david.faure@kdab.com>
* Unix printing: Check for a valid page range before accepting dialogJonathan Marten2024-12-041-7/+10
| | | | | | | | | | | | | | | | | | QPrintDialog::accept() checks for valid page ranges if the "Pages" option is selected, but it did that before calling setupPrinter() to read the settings from the user input. The page ranges would not yet have been parsed at this point, so giving the error message whenever this option is used even if a valid page range string is entered. Perform an equivalent check before the dialog is accepted: that is, that the entered page range string is not empty and that it can be parsed to a valid QPageRanges. Pick-to: 6.8 Fixes: QTBUG-112346 Change-Id: Idc1a3154055a425967596d66f26477e41b0b138b Reviewed-by: Albert Astals Cid <aacid@kde.org> Reviewed-by: David Faure <david.faure@kdab.com>
* iOS: Enable the Qt Print Support moduleTor Arne Vestbø2024-05-294-8/+8
| | | | | | | | | | | | | | | | | | | | | | | The print support module was disabled for the initial port of Qt for iOS due to the lack of a native print backend and native print dialogs, as we have on macOS. However, even lacking these we should be able to offer the print to PDF feature, with widget based print dialogs. We can do so by opting in to the generic Unix print dialogs and backends, as these do not have a hard dependency on CUPS. Longer term we should adopt UIPrintInteractionController, UIPrinterPickerController, and UIPrinter, but that's a bigger task. [ChangeLog[iOS] The Qt Print Support module is now enabled, allowing printing to PDF. Printing to system provided printers are not yet supported. Fixes: QTBUG-125581 Change-Id: I5bc143e47c7277b3cea52760672ac4d0c8a7a898 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Emit QPrintDialog::accepted(QPrinter*) before QDialog::finishedTor Arne Vestbø2024-05-271-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | As part of d8bbb5ee0e60d44a70d29306e607a59caf7fe5bc the order of QDialog::accepted/rejected and QDialog::finished was changed so that the latter came last. This has been the behavior now for the entire Qt 6 series. QPrintDialog didn't pick up on this new behavior, and was emitting the QPrintDialog::accepted(QPrinter*) signal after calling the dialog's done() method, which resulted in emitting finished before the QPrintDialog printer-specific accepted signal. Clients such as the textedit example, who would "clean up" in finished() would then crash when processing the accepted signal. We now emit QPrintDialog::accepted(QPrinter*) at the same time as the dialog's accepted signal. The natural place to do this would be the QPrintDialog constructor, but that's spread out and duplicated between all the platform specific print dialog implementations, so we do it via a single shot connect instead in QPrintDialog::done. [ChangeLog[Print support] QPrintDialog::accepted(QPrinter*) is now emitted before QDialog::finished, in line with QDialog::accepted. Pick-to: 6.7 6.5 Change-Id: Idade32b667bdf7b81845025b8d83f08a551d32bb Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
* print: Clamp margins entered by the user in the page setup dialogJarkko Koivikko2024-04-251-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The current functionality discards all margins if any values fall outside the minimum or maximum limits. This can confuse and frustrate users since the Windows native page setup dialog doesn't enforce minimum values. Introduce a new parameter outOfBoundsPolicy for the set margins functions in the QPageLayout: - OutOfBoundsPolicy::Reject The old behavior rejecting out of bounds values. - OutOfBoundsPolicy::Clamp The new behavior for clamping the values. The OutOfBoundsPolicy is applied only in StandardMode to maintain backwards compatibility in FullPageMode, where all margins are accepted. Use the new Clamp policy in the printsupport where the clamping is necessary. Maintain binary compatibility by putting the declaration of the old symbols without policy parameter behind QT_GUI_REMOVED_SINCE, and implement them in removed_api.cpp to call the new versions. Task-number: QTBUG-122410 Change-Id: I06aee292c1daff2863502f471b03798dafbcd81b Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* QWin32PrintEnginePrivate: Properly initialize flags and fields of DEVMODEFriedemann Kleint2023-11-221-0/+1
| | | | | | | | | | | | | | | | | | - Set the respective flags of dmFields in QWin32PrintEngine::setProperty() - Properly initialize newly allocated structs This is merely for completeness, the allocation code paths are not currently hit since the DEVMODE from the current printer is used, which also has most dmFields bits set. Pick-to: 6.6 Task-number: QTBUG-114604 Change-Id: I880d9faef9b1d491db4accd53d0d75b718f7f244 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Wladimir Leuschner <wladimir.leuschner@qt.io>
* QWin32PrintEnginePrivate: Brush up the codeFriedemann Kleint2023-11-221-6/+7
| | | | | | | | | | | | - Use nullptr - Use member initialization - Remove C-style casts Pick-to: 6.6 Task-number: QTBUG-114604 Change-Id: I6f9519010bfbd7c5afa07d9a8752b40c3b29673e Reviewed-by: Wladimir Leuschner <wladimir.leuschner@qt.io> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Use Desktop Handle in case of no valid app HWND for QPrintDialogWladimir Leuschner2023-11-081-1/+6
| | | | | | | | | | | | | The call Win32 API PrintDlgEx needs in the PRINTDLGEX struct a valid window handle for hwndOwner to show up. In case there is no window created, as seen in the example, the call to PrintDlgEx fails with COM error code E_HANDLE. Using the Desktop HWND, in case of no valid app HWND creates a valid call to PrintDlgEx with showing up the dialog. Pick-to: 6.6 Fixes: QTBUG-118899 Change-Id: Ie7009c8e6e8285a0b6312e310b3d065c532f9e17 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* print: Use transient parent for native print dialog if providedJarkko Koivikko2023-10-261-13/+16
| | | | | | Pick-to: 6.6 Change-Id: I6703784d57dab732e5d501cec0d1231b564a065e Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Include what you need: <QPointer>Marc Mutz2023-10-122-0/+4
| | | | | | | | | | | | | | | | | | | | | | | All these TUs relied on transitive includes of qpointer.h, maybe to a large extent via qevent.h, though, given that qevent.h is more or less the only public QtBase header that includes qpointer.h, something else seems to be at play here. Said qevent.h actually needs QPointer in-name-only, so a forward declaration would suffice. Prepare for qevent.h dropping the include. The algorithm I used was: If the TU mentions 'passiveGrabbers', the name of the QEvent function that returns QPointers, and the TU doesn't have qpointer.h included explicitly, include it. That may produce False Positives, but better safe than sorry. Otherwise, in src/, add an include to all source and header files which mention QPointer. Exception: if foo.h of a foo.cpp already includes it, don't include again. Task-number: QTBUG-117670 Change-Id: I3321cccdb41ce0ba6d8a709cea92427aba398254 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* printsupport: use string view types moreAnton Kudryavtsev2023-09-121-3/+3
| | | | | | | | sizeof(QStringView) == 16 sizeof(QString) == 24 Change-Id: I3edf0d6869e92c47472980e5f99b9bf9c8a3b7cd Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* QPrintDialog on macOS: Don't crash when parent is not a windowVolker Hilsheimer2023-09-051-2/+3
| | | | | | | | | | | The test case is an incomplete version of the test that will be added to verify the fix for the referenced bug report. The test crashes already when showing the dialog without this fix. Task-number: QTBUG-116277 Pick-to: 6.6 6.5 6.2 Change-Id: I969a723157f6453b78bafae5cb24a6b37b1eea50 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Fix build with -no-feature-messageboxTasuku Suzuki2023-01-171-2/+2
| | | | | | Pick-to: 6.5 Change-Id: I4c34f6aa2106afc528f182d7925442acf82b7000 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* QtPrintSupport: Disambiguate static functionsFriedemann Kleint2023-01-122-4/+4
| | | | | | | | | They cause clashes in CMake Unity (Jumbo) builds. Task-number: QTBUG-109394 Pick-to: 6.5 Change-Id: If3029d5b99499fd0e216fc080ade9842c2d11ea4 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* macOS: Stop using the deprecated [NSWorkspace openFile:] APITor Arne Vestbø2023-01-021-1/+1
| | | | | | | | | We can use openURL instead, which also opens local files in the associated application. Pick-to: 6.5 Change-Id: Ieddc6fb68d6b9e64195ed261953b9fffb6b0b73e Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Port from container.count()/length() to size()Marc Mutz2022-10-041-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is semantic patch using ClangTidyTransformator: auto QtContainerClass = expr(hasType(namedDecl(hasAnyName(<classes>)))).bind(o) makeRule(cxxMemberCallExpr(on(QtContainerClass), callee(cxxMethodDecl(hasAnyName({"count", "length"), parameterCountIs(0))))), changeTo(cat(access(o, cat("size"), "()"))), cat("use 'size()' instead of 'count()/length()'")) a.k.a qt-port-to-std-compatible-api with config Scope: 'Container'. <classes> are: // sequential: "QByteArray", "QList", "QQueue", "QStack", "QString", "QVarLengthArray", "QVector", // associative: "QHash", "QMultiHash", "QMap", "QMultiMap", "QSet", // Qt has no QMultiSet Change-Id: Ibe8837be96e8d30d1846881ecd65180c1bc459af Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Move QMacAutoReleasePool from qglobal.h to qcore_mac_p.hSona Kurazyan2022-09-011-0/+2
| | | | | | | | And include qcore_mac_p.h where needed. Task-number: QTBUG-99313 Change-Id: Idb1b005f1b5938e8cf329ae06ffaf0d249874db2 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* macOS: set print dialog up with page attributes when no printer is installedVolker Hilsheimer2022-06-171-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | When the print dialog is opened without a printer installed, then the printer's output format is PDF rather than native. In this case, we need to set the NSPrintInfo with some page atttributes explicitly, and not default to the application-wide NSPrintInfo.sharedPrintInfo. Otherwise, the print dialog will show the wrong page size and orientation, and the printer will not have the previously set values when the dialog returns. The dialog always shows the wrong values for the page margins (only available through the presets dialog), but the printer's values are not overridden. Also, the print range is taken care of correctly by the code further down in this function, irrespective of the printer's output format. Note: this cannot be unit tested as we need to open the native print dialog on a system without printer installed, and compare the values we set on the printer before opening the dialog with the values after the dialog was successfully finished via PDF->Save as PDF. Fixes: QTBUG-100188 Pick-to: 6.4 6.3 6.2 Change-Id: I8f1561e054f6a867b131111845c9b061778e4eb0 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Fix typos in docs and commentsKai Köhne2022-06-152-2/+2
| | | | | | | | | Found by codespell Pick-to: 6.4 Change-Id: Ie3e301a23830c773a2e9aff487c702a223d246eb Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Use SPDX license identifiersLucie Gérard2022-05-1617-634/+34
| | | | | | | | | | | | | Replace the current license disclaimer in files by a SPDX-License-Identifier. Files that have to be modified by hand are modified. License files are organized under LICENSES directory. Task-number: QTBUG-67283 Change-Id: Id880c92784c40f3bbde861c0d93f58151c18b9f1 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* QtPrintSupport: includemocsMarc Mutz2022-04-292-0/+4
| | | | | | | | | | | Including moc files directly into their classes' TU tends to improve codegen and enables extended compiler warnings, e.g. about unused private functions or fields. Pick-to: 6.3 6.2 5.15 Task-number: QTBUG-102886 Change-Id: Ic8ceebfa270d0831a8598f98aa255acfc17e953b Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Printsupport: replace remaining uses of QL1String with QL1StringViewSona Kurazyan2022-04-191-1/+1
| | | | | | Task-number: QTBUG-98434 Change-Id: Ibeb9608d3ebc3c0c2e7ea93561e24cb24c601fec Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Printsupport: use _L1 for for creating Latin-1 string literalsSona Kurazyan2022-04-195-32/+42
| | | | | | Task-number: QTBUG-98434 Change-Id: I415132ed381c25313e7fcccd050e522667eb6c22 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Printsupport: stop using QL1Char constructor for creating char literalsSona Kurazyan2022-04-192-10/+9
| | | | | | | | Required for porting away from QLatin1Char/QLatin1String in scope of QTBUG-98434. Change-Id: Ia186ed178239796bdf19db5b35a36ea606baf937 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Unix: Correctly update options pane for PDF printerAlexander Volkov2022-03-151-2/+2
| | | | | | | | | | Update printer and m_currentPrintDevice before calling QPrintDialogPrivate::selectPrinter() to show values for PDF printer instead of the previously selected printer. Pick-to: 6.3 6.2 5.15 Change-Id: Iacc34ca4460ec4de0b4b373cd875628733df01bd Reviewed-by: Albert Astals Cid <albert.astals.cid@kdab.com>
* QPrintDialog/win: Fix use of deprecated QMessageBox::warningMårten Nordheim2022-03-051-3/+3
| | | | | | | | by using the new one Pick-to: 6.3 6.2 Change-Id: I8779107079c4e3d4b1d48c05b6fbfef1b6e98b99 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Fix UI mismatch when QPrinter::setDuplexZhang Hao2022-02-181-3/+4
| | | | | | | | | | | | | | | | | | Amends fa854f214a3c812e5548ff55d179dd07ef99053b. If user call QPrinter::setDuplex method, the QPrintDialog explicitDuplexMode value won't update. Fix this by: 1) handle device-specific default and value set in QPrinter in QCupsPrintEngine(Private) 2) handle the explicitly user-selected value in QPrintDialog(Private) Done-with: Michael Weghorn <m.weghorn@posteo.de> Pick-to: 5.15 6.2 6.3 Fixes: QTBUG-99504 Change-Id: I1a471a8554e83aa4bec8bb95fcc95f9135b0ac8c Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Sync QPrinter orientation when PageSetup Orientation selectedZhang Hao2022-02-181-0/+1
| | | | | | | | | | | | QPrinter orientation will not effect when PageSetup Orientation selected Fix this by sync PageSetup orientation property to QPrinter. Fixes: QTBUG-100261 Pick-to: 5.15 6.2 6.3 Change-Id: I264852ea18317308dfcfb58c880f5e8ad8d299bd Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Remove unused .qrc filesJoerg Bornemann2022-01-171-38/+0
| | | | | | | | Task-number: QTBUG-94446 Change-Id: I136d8b4ab070a832866aa50b5701fc6bd863df8a Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Windows: Read page size and orientation from setup dialogVolker Hilsheimer2021-06-161-3/+28
| | | | | | | | | | | | | | | | | | PAGESETUPDLG's hDevMode reports the page size and orientation selection of the user, so read that data to get accurate results. Otherwise, the page size of a landscape page wouldn't match any known page format, and we'd end up with a custom size that would not be valid for the preview, breaking the preview UI's orientation state. Reuse the helper from QPageSize to map Windows page size ID to our own enum. Fixes: QTBUG-93764 Pick-to: 6.2 6.1 5.15 Change-Id: Ib9a848619e3ba8780264ad76ed43c4fffae6b07f Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* Use icon themes in QPrintPreviewDialog [if they exist]Albert Astals Cid2021-06-0514-19/+19
| | | | | | | | | | | I've renamed a few of the qrc icons to the names most common icon themes use for similar actions (the action themselves are not part of the icon naming spec https://specifications.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html since it's not been updated in a while). Task-number: QTBUG-85879 Change-Id: I23bb300dbf4e953517516c97b8af118859aeb6fa Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Make sure _q_printerChanged is called even if only pdf printer is availableAlbert Astals Cid2021-05-211-0/+2
| | | | | | | | Otherwise things like the pagesRadioButton don't get properly disabled Change-Id: Idc0693b6747f13da5afb22e2187af310a5b454f8 Pick-to: 6.1 5.15 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* Silence warning in QPrintDialogSzabolcs David2021-05-013-8/+8
| | | | | | | | | | | | | | | | Selecting "Print all" at page range options and accepting the dialog prints a warning message: "QPageRanges::addRange: 'from' and 'to' must be greater than 0" This happens because QPrintDialog tries to clear the printer's range collection by setting 'from' and 'to' to zero - which is an invalid page number. Avoid the validation method by setting QPageRanges directly to a clean instance. Pick-to: 6.1 Change-Id: I23b66a97b36aa23506904e93688cb60a9d496bfb Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Add nullptr checkOliver Eftevaag2021-03-161-1/+2
| | | | | | | | Adding a nullptr check before dereferencing in case q is null. Pick-to: 6.0 6.1 Change-Id: Ia440e2ed41cbaf06a5919930c2e1615bb3916ff3 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Remove the qmake project filesJoerg Bornemann2021-01-071-46/+0
| | | | | | | | | | | | | | | | Remove the qmake project files for most of Qt. Leave the qmake project files for examples, because we still test those in the CI to ensure qmake does not regress. Also leave the qmake project files for utils and other minor parts that lack CMake project files. Task-number: QTBUG-88742 Change-Id: I6cdf059e6204816f617f9624f3ea9822703f73cc Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* Rename QRangeCollection to QPageRanges, make it a proper value typeVolker Hilsheimer2020-11-081-5/+7
| | | | | | | | | | | | | | | | | | | | | | | The type is specific about printing, so give it a name in line with QPageLayout and QPageSize. As per API review comment, it's not clear why this type should not be a regular, copyable and movable value type. It stores a list of intervals. Give it value-type semantics, as an implicitly shared class. Convert the parse method into a static factory function. Add a Range type and use it instead of the semantic-free QPair. Move QPrinter getter into QPagedPainteDevice, make it return a copy rather than a pointer, and add a setter. Extend test case to cover all members and more merge cases. Fix bugs found that way. Fixes: QTBUG-88113 Change-Id: If17ea4d410d49f16b097e88b7979db5d72add820 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Doc: Fix documentation warnings for Qt Print SupportTopi Reinio2020-10-301-1/+1
| | | | | | Task-number: QTBUG-86295 Change-Id: I8121f7c127896e57ec2e7636828af36bb83acfe3 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Windows: Build print support plugin directly into QtPrintSupportFriedemann Kleint2020-09-242-2/+2
| | | | | | Task-number: QTBUG-83259 Change-Id: I23042e1eb89d407692a96bfb2d6c4efdddbfb50f Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Remove obsolete APIs and comments from QAbstractPrintDialogVolker Hilsheimer2020-09-104-89/+26
| | | | | | | | | | | | | Merging QAbstractPrintDialog with QPrintDialog, as proposed in the removed comment, seems to have little value, given that the platform specific implementations rely on the current abstraction. Adjust examples and tests; with the QAbstractPrintDialog test now testing the QPrintDialog::options API, the corresponding test function can be removed from the QPrinter test. Change-Id: Ia8906627898332e8590ea9b27e3d71dfcc6e8d71 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Remove deprecated QPrinter and QPagedPaintDevice APIsVolker Hilsheimer2020-09-042-3/+3
| | | | | | | | | | | Adjusting the QPrinter test case - some use cases no longer exist, or are already tested in QPageSize and QPageLayout tests. Adjust examples and manual tests. Change-Id: I01cbc65f3d8031aea2dac86dd942126ba708b111 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Mark obsolete QPrinter functions as deprecated from 5.15 onVolker Hilsheimer2020-09-031-1/+1
| | | | | | | | | | | Some of the methods are overrides of virtuals in QPagedPaintDevice, so document and mark those as obsolete as well. Adjust code that calls those APIs to use the recommended replacement. Change-Id: I3cd1980609ea20808d17379a5f97ca595e869875 Pick-to: 5.15 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Move QFileSystemModel into QtGuiVolker Hilsheimer2020-08-251-1/+1
| | | | | | | | | | | | | | This requires a QAbstractFileIconProvider in QtGui, as the standard QFileIconProvider depends on QStyle, and cannot be moved out of QtWidgets. QAbstractFileIconProvider returns strings for file types, but returns no icons yet. Support for a default icon set might be added in a follow-up commit. Change-Id: Ib9d095cd612fdcf04db62f2e40709fcffe3dc2b7 Fixes: QTBUG-66177 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Automatically register comparison operators in QMetaTypeFabian Kosmale2020-07-081-3/+0
| | | | | | | | | | | | | | | | | This removes the fully manual registration of comparison operators in QMetaType and replaces it with an automatic registration through Q_DECLARE_METATYPE(). [ChangeLog][QMetaType] The QMetaType::registerComparator() and QMetaType::registerEqualsComparator() have been removed. Q_DECLARE_METATYPE() now automatically registers any operator==() and/or operator<() for a type visible where it is used on that type, as part of declaring its meta-type. Change-Id: I3df451b652b735c093533838bf32f3cc785439f8 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>