summaryrefslogtreecommitdiffstats
path: root/src/corelib/global
Commit message (Collapse)AuthorAgeFilesLines
* QtGlobal: (new) qEnvironmentVariableIs{Set,Empty}()Marc Mutz2012-08-092-0/+59
| | | | | | | | | | | | | These functions are a faster version of {,!}qgetenv().is{Null,Empty}(), a common pattern in Qt code. Their main advantage is that they don't need to allocate memory, so they can be used in noexcept functions, or dynamic initialisation of namespace-scope statics, because throwing in these contexts invokes std::terminate(). Change-Id: I651c5bd72f450b5d7df76590f8791572fe992af5 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Logging: mark qt_assert()/qt_assert_x()/qFatal() as nothrowMarc Mutz2012-08-094-7/+55
| | | | | | | | | | | | | | | | | | | | | | These functions are not supposed to return, not even by exception. qt_message() _can_ throw, but we're fine with the compiler calling std::terminate() then, since the backtrace will still include the assertion location. This behaviour is ensured by a new macro, QT_TERMINATE_ON_EXCEPTION, which expands to something like try { expr; } catch(...) { std::terminate(); } if the compiler doesn't support Q_DECL_NOEXCEPT (but maybe Q_DECL_NOTHROW), and to something like just expr; otherwise (including in the QT_NO_EXCEPTION case). The real macro preserves scopes in all cases, and aims to work even if <exception> isn't included in the TU it's used in, so is a little bit more complex than that. Change-Id: Ie6a2b7776e6aa77e57bd9aea6e184e5fa1cec81c Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Remove unnecessary extra indentation in the EXPORT macrosThiago Macieira2012-08-091-23/+22
| | | | | Change-Id: I54585fa7e38ea1984018c5cbff9bc4626016bace Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* Remove the Q_xxx_EXPORT macros of other modules from qglobal.hThiago Macieira2012-08-091-31/+0
| | | | | | | The macros have been moved to their respective modules. Change-Id: I653668b608cd3b79824a25b0e7b1c238330c0007 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* Q_DECL_NOTHROW: stronger and more widely available version of Q_DECL_NOEXCEPTMarc Mutz2012-08-072-4/+73
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 1adca807 defined Q_DECL_NOEXCEPT to be the same as throw() for the Microsoft compiler. However, the two are not equivalent: - C++11 noexcept is defined to call std::terminate() if a noexcept function nevertheless encounters an exception. - MSVC throw() has essentially undefined behaviour in this situation: http://msdn.microsoft.com/en-us/library/wfa0edys%28v=vs.100%29 "Due to code optimizations that might be performed by the C++ compiler [...] if a function does throw an exception, the program may not execute correctly." So define two macros: 1. Q_DECL_NOEXCEPT/Q_DECL_NOEXCEPT_EXPR always have C++11 behaviour. This is expected to be the more efficient implementation if the function can actually throw. 2. Q_DECL_NOTHROW means that the function gives the nothrow guarantee. It is stronger than noexcept, but not all functions that can be marked Q_DECL_NOEXCEPT can be marked Q_DECL_NOTHROW. In general Q_DECL_NOTHROW functions need to use a try/catch block in order to prevent exceptions from leaving the functions, unless you can proove that none of the operations can throw. For the caller, both macros are equivalent: it can be relied on that no exception leaves the function. Change-Id: I32f822a82e06a31cb71d38db438387aee5ec3334 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
* QMessageLogger: mark default ctor as constexpr, tooMarc Mutz2012-08-071-2/+2
| | | | | | Change-Id: I6f92f4a01e43dbe811b11b3e8d9b8a02a31463c5 Reviewed-by: Laszlo Papp <lpapp@kde.org> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Remove extra Q_COMPILER_xxx defines from the MSVC section.Thiago Macieira2012-08-061-11/+0
| | | | | | | | Those are defined below, after the list that describes the macros and the papers. Change-Id: I1f2df0e33c84eb17ebbb0147662f560defed182c Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
* MSVC's throw() behaviour matches the C++11 noexcept, so use itThiago Macieira2012-08-061-1/+5
| | | | | | | | | | | | This allows code using methods marked Q_DECL_NOEXCEPT to benefit from optimisations before MSVC supports the C++11 keyword. Even MSVC 2012 doesn't have it yet. Using throw() in other compilers is not a good idea because they might actually be implementing the C++ standard -- which is broken. Change-Id: Id07ab4fe40a641583d5285d5abb536998bc419ba Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
* Logging: mark qEmergencyOut() noexceptMarc Mutz2012-08-061-1/+1
| | | | | | | | This function is called in OOM situations and when other exceptions are still in flight, so it really shouldn't throw, indeed. Change-Id: I50cda699ffd74f3710c3bafd15af356ff410bc47 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* Fix order of QT_END_NAMESPACE and QT_END_HEADER macrosSergio Ahumada2012-08-031-1/+1
| | | | | Change-Id: I798311bdacaac341210626489410740c130f8724 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* string.h is needed for memcpy()Oswald Buddenhagen2012-08-021-0/+2
| | | | | | | | ... which is used by some template code. apparently, the glibc on my rather recent system removed some implicit includes again. Change-Id: I9f85362e54a42cccc1e743f2b27bcdb6a90162e3 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix some syncqt warnings.Lars Knoll2012-08-011-0/+6
| | | | | Change-Id: I6f432ee991f4bde217fa27d4004ef318f1d480e0 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Mark the QFlag and QIncompatibleFlag as primitive.Stephen Kelly2012-07-281-0/+3
| | | | | | Change-Id: I7dab4d029e7840fe4778a750a8dd7367675d7a27 Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Introduce QTypeInfoMerger.Jędrzej Nowacki2012-07-271-0/+32
| | | | | | | | | | | | QTypeInfoMerger class was created to allow "inheriting" QTypeInfo traits. The class implementation was based on the QTypeInfo<QPair<>> specialization, therefore the specialization was refactored to use the new class. Change-Id: I4ff3e5eac1d55da086dad84274cce2b2c0a721be Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix q_check_ptr typo in QtGlobal documentation.Mitch Curtis2012-07-231-1/+1
| | | | | | Task-number: QTBUG-24093 Change-Id: Ia6b4ef49e07910ceddd826b3b7cc81ca41f33d01 Reviewed-by: Jerome Pasion <jerome.pasion@nokia.com>
* Logging: Simplify message handler logic for windowsKai Koehne2012-07-211-24/+13
| | | | | | | Incorporate the functionality of qWinMessageHandler in qDefaultMessageHandler. Change-Id: Iec5b19e187c0d2e3d8d0874280ba57f6fb21d7b4 Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* QFlags: complete constexpr'ifcationMarc Mutz2012-07-211-4/+4
| | | | | | Change-Id: Ie7c33bc1e3abaa9100093a84e65bee5f3b80fe0f Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* fix "No such ..." doc error for Qt::WindowType WindowOverridesSystemGesturesJeremy Katz2012-07-191-1/+1
| | | | | | | Is this a typo in the documentation, or in the enum? Change-Id: I58ba12d74694b26ec0bf76226b56337a12e0756e Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* fix "No such ..." error in qnamespace.qdocJeremy Katz2012-07-191-3/+0
| | | | | | | | RIP Qt::ClipOperation UniteClip See 01b72952c38b9193138eabdab6bdab632cd75ebd for details Change-Id: I8cfd5f6d008374741bea4f6a85827545ddb8ae86 Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* Make the QIncompatibleFlag constexpr.Stephen Kelly2012-07-181-3/+3
| | | | | | Change-Id: If99b43b45cc667449dbe7c487b56885c6ce9b1c7 Reviewed-by: Laszlo Papp <lpapp@kde.org> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* undocument enums as part of Qt3Support removalJeremy Katz2012-07-161-124/+1
| | | | | | | | | Lots of enums in the Qt namespace used to be hidden or documented as obsolete. These have been removed entirely, as they result in qdoc errors. Change-Id: I67726d7358f4e71a0c8fc5181388b1cf8fd4e4bd Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* Undocument Qt::AnchorAttributeJeremy Katz2012-07-161-12/+0
| | | | | | | AnchorAttribute was removed as part of the Qt3Support cleanup. Change-Id: I58d8e471d4bc1af420ec8eaab6d34c1718b30382 Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* remove QT_NO_SIGNALMAPPER from featuresTasuku Suzuki2012-07-122-10/+0
| | | | | | | QSignalMapper is a small and extremely low-level interface. Change-Id: I7e799673c6fe559178739fbc58385141ae3f0789 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* Fix some spelling errorsSergio Ahumada2012-07-111-1/+1
| | | | | | Change-Id: I19d3b2e9a5180b13deb828b55195404ef20be295 Reviewed-by: Daniel Teske <daniel.teske@nokia.com> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* Use Q_DECL_CONSTEXPR for the QFlag's inline constructorLaszlo Papp2012-07-101-2/+2
| | | | | Change-Id: I8f9c7bf0fddb79c6c0937e415c427a0547a5cab0 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Speed up QCoreApplication construction a bitHarald Fernengel2012-07-101-1/+1
| | | | | | | | Remove all QString conversions during QCoreApplication construction on Linux. Saves multiple mallocs. Change-Id: Ia8ba071a750dd6a08dcf14ef3ecc424f70a3098d Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Q_DECLARE_SHARED: mark the type movableMarc Mutz2012-07-101-0/+1
| | | | | | | | | | All implicitly shared classes are by definition movable, so this patch adds Q_DECLARE_TYPEINFO(Type, Q_MOVABLE_TYPE) to Q_DECLARE_SHARED. Change-Id: Idf8989ae1a7ed6d1ac13fccb7eaef7395a875350 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* QNX: QtGlobal: compile as a C header againMarc Mutz2012-07-091-1/+3
| | | | | | | | | | | <utility> is a C++ header, only execute the check for the Dinkumware standard library if we're compiling under a C++ compiler. Change-Id: I1b24e76f20bfc03b70a330f9da96b4f815106e61 Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Remove Library dependency on SettingsTasuku Suzuki2012-07-094-14/+6
| | | | | | | | made QLibraryInfo available with QT_NO_SETTINGS. QKdeTheme is removed when QT_NO_SETTINGS is defined. Change-Id: I63d619bb305e6c23985d9ea50c72d39a697b7a4b Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* Q_DECLARE_SHARED: fix docs; require and use member-swapMarc Mutz2012-07-061-5/+5
| | | | | | | | | | | | | | | By requiring a member-swap, this macro becomes applicable to a wider range of types (e.g. QFont, which has another member besides 'd'), while at the same time avoiding the encapsulation leak that is data_ptr(). There have been concerns over breaking existing users of this macro, but for some time now, Q_DECLARE_SHARED only works within QT_BEGIN_NAMESPACE anyway, so its a safe bet that all users of this macro are in-tree. Change-Id: I7fdd9dba204554af8d3f9768b97bb42847a5acf4 Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QNX: fix compilation with C++11 enabledMarc Mutz2012-07-031-0/+12
| | | | | | | | | | | | | | | | | | | | QNX uses GCC, but by default not libstdc++ as the standard library, but 'libcpp', a Dinkumware-derived implementation that doesn't sport many of the C++11 features, yet. Thus, the compiler detection sets Q_COMPILER_INITIALIZER_LIST, which is true, in a way, but we're lacking stdlib support, so the next \#include <initializer_list> will fail. So, simply don't define Q_COMPILER_INITIALIZER_LIST if we're on QNX and detect a Dinkumware signature (taken from Boost.Config). This is a hot-fix. I'm also preparing a more comprehensive solution (qstdlibdetection.h). Change-Id: Ieeb147251c2935517faba61f75d1580a9e1649c4 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* buildsystem: Remove SXE from the configure and qconfig-*.h filesHolger Hans Peter Freyther2012-07-022-6/+0
| | | | | | | The SXE feature was used with Qtopia but is long gone. Clean it up. Change-Id: I55fba97b6382300ba63e94f3a6c415227f571e37 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* Fix MinGW-w64 compilationJonathan Liu2012-07-021-1/+1
| | | | | | Task-number: QTBUG-24699 Change-Id: If6210315926f0266045766bb5d3b00a6d0bdf703 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* Add detection for C++11 noexceptThiago Macieira2012-06-291-0/+13
| | | | | | | | | | | | | | | | | The Q_COMPILER_NOEXCEPT feature indicates whether this compiler has support for noexcept. Note that the GCC C++11 status page does not list this feature, but investigation into the source code as well as testing reveals it's supported since GCC 4.6. Also add Q_DECL_NOEXCEPT, to be used to declare that a function throws no exceptions, and Q_DECL_NOEXCEPT_EXPR(x), which declares that the function throws no exceptions if x evaluates to true. In C++98 mode, these macros expand to empty -- the old C++98 and C++03 exception specification is deprecated and considered harmful. Change-Id: Ic84901d13eceb06dcc7f025a4b7fc8b250769be9 Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Clean up the EXPORT macros in qglobal.h.Thiago Macieira2012-06-291-56/+3
| | | | | | | | | | | | | | | | | | | | QtPlatformSupport is a static library. It should never export anything, so Q_PLATFORMSUPPORT_EXPORT is unnecessary. QtSql, QtXml, QtDBus, QtOpenGL and QtPrintSupport now have the macros on their own source trees. It's possible these modules might be separated out from qtbase in the future. For QtDBus, the macros are moving back to where they used to be. This also leaves qglobal.h only creating the macros for QtCore, QtGui, QtWidgets and QtNetwork, the core libraries. Q_CANVAS_EXPORT, Q_OPENVG_EXPORT and Q_COMPAT_EXPORT aren't used anywhere in the Qt sources, so simply delete them. And the Q_QUICK1_EXPORT macro in the static section was wrong, so remove it too. Change-Id: I50bdf86e783338f814903b25979721f788a7becf Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* Update the macros for shared/DLL and static buildsThiago Macieira2012-06-281-80/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Up until now, we had a mess of different macros used for building DLLs, for building shared libraries on Unix systems and for building static libraries. Some of the macros were contradictory and did not work. From now on, there shall be only: - QT_STATIC: indicates that it's a static Qt build and the export macros should expand to empty - QT_SHARED: indicates that it's a shared / dynamic Qt build and the export macros should expand to Q_DECL_EXPORT or Q_DECL_IMPORT, depending on whether the macro corresponds to the current module being built (the QT_BUILD_XXXX_LIB macro comes from the module's .pro file) QT_BOOTSTRAPPED implies QT_STATIC since the bootstrapped tools link statically to some source code. QT_STATIC is recorded in qconfig.h by configure when Qt is configured for static builds. Nothing is recorded for a shared / dynamic build, so QT_SHARED is implied if nothing is defined. This allows for the existence of a static_and_shared build: with nothing recorded, defining QT_STATIC before qglobal.h causes the export macros to be that of the static form. Linking to the static libraries is out of the scope of this change (something for the buildsystem and linker to figure out). From this commit on, the proper way of declaring the export macros for a module called QtFoo is: #ifndef QT_STATIC # ifdef QT_BUILD_FOO_LIB # define Q_FOO_EXPORT Q_DECL_EXPORT # else # define Q_FOO_EXPORT Q_DECL_IMPORT # endif #else # define Q_FOO_EXPORT #endif The type of the Qt build is recorded in QT_CONFIG (in qconfig.pri) so all Qt modules build by default the same type of library. The keywords are "static" and "shared", used in both QT_CONFIG and CONFIG. The previous keyword of "staticlib" is deprecated and should not be used. Discussed-on: http://lists.qt-project.org/pipermail/development/2012-April/003172.html Change-Id: I127896607794795b681c98d08467efd8af49bcf3 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* define QT_NO_ICONV if QT_NO_TEXTCODECJeremy Katz2012-06-202-10/+25
| | | | | | | | | | | | This also updates qfeatures.h with various other things that have been neglected. Run $QTSRCDIR/util/scripts/make_qfeatures_dot_h after changing qfeatures.txt Task-number: QTBUG-24816 Change-Id: I18b71fcec71efa9cfe3425fb1a7833456ec411b9 Reviewed-by: Tasuku Suzuki <tasuku.suzuki@nokia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* Merge "Merge branch 'buildsystem'" into refs/staging/masterOswald Buddenhagen2012-06-202-9/+59
|\
| * introduce /get property variantsOswald Buddenhagen2012-06-192-9/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | properties are now split into a write location $$[FOO] and a read location $$[FOO/get]. the write locations are hard-coded and configurable via qt.conf/Paths as before, while the read locations are configured via qt.conf/EffectivePaths. this finally provides a clean solution to the problem that during the qt build itself tools and libraries need to be taken from somewhere else than they are installed to. Change-Id: I956c43bd082afd465e690fe75d0bee3c2c0f7c25 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com> Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
| * clean up path normalization in configure.exe and QLibraryInfoOswald Buddenhagen2012-06-191-0/+2
| | | | | | | | | | | | | | | | | | always use normalized path separators, except when running native commands or printing (note however that the qmake -query output will now be consistently normalized). Change-Id: I6ae920c3bc656cb517d1f4e4e5518cf79e002169 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* | Fix compile-time error macro when building with -fPIEGabor Ballabas2012-06-201-1/+1
| | | | | | | | | | | | | | | | This macro causes a compile-time error using LLVM with Clang when the target that includes qglobal.h is built with -fPIE. Change-Id: I2e82e1a8feed9009c814f187b06501b26ea3b3b7 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Add qMove macro to support std::moveOlivier Goffart2012-06-202-0/+14
|/ | | | | Change-Id: I373e07f479c11b172dab35ed7e5b62724aa50a1a Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Make qurlinfo private, now that QFtp is private.David Faure2012-06-142-12/+2
| | | | | | Change-Id: I0bb641b397b7087c89009f92d9973e0922dce653 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* disable codecs for asian language when QT_NO_BIG_CODECS definedTasuku Suzuki2012-06-142-4/+6
| | | | | Change-Id: I45025b13bacc5f63946b02a87c742beff1946c0b Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* Remove unused static functions from qlogging.cpp, qstring.cpp.Friedemann Kleint2012-06-121-9/+0
| | | | | Change-Id: I4e9642b5e7fb57ac56511ae06af6ce416d0401ec Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Export qMemSet and qMemCopy properlyThiago Macieira2012-06-122-2/+5
| | | | | | | | | | Commit d839564c94a73e3dd2816a8c2196e612e1f5cb79 was incomplete. It added the Q_CORE_EXPORT macro to qmalloc.cpp, but the qMemSet and qMemCopy function bodies are in qglobal.cpp. Change-Id: I24ee44f04365d8dbdf3f1c0f22b6a72cae9f96bb Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com> Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
* Logging: Remove outdated QMessageHandlerKai Koehne2012-06-102-24/+0
| | | | | | | | Commit d9a1c2dff replaced QMessageHandler with QtMessageHandler. However, the old signature was still supported for a grace period. Change-Id: I3141499efdc749460b77de1ceec82f312e904bec Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix endian detection for winceAndreas Holzammer2012-06-041-1/+1
| | | | | | | | | | | As the qsystemdetection.h is not included so Q_OS_WINCE is not defined here, so use the define from the mkspec. Change-Id: Ic170725d0da89f0c0e675c62bd2aa5c58803de9f Reviewed-by: Björn Breitmeyer <bjoern.breitmeyer@kdab.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* Unconditionally enable Q_OF_ELF for any ELF platformPino Toscano2012-06-011-3/+1
| | | | | | | Just enable ELF stuff on any platform which uses ELF format, instead of a selected subsets of those. Change-Id: I0753c020c718bc67b4b50c3957fe8dc10afd2c61 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QtPrintSupport: Add CUPS printsupport pluginJohn Layt2012-05-311-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move CUPS code around to create a new CUPS printsupport plugin, this fixes QPrinterInfo for CUPS which depends on the plugin to work. It QT_NO_CUPS is defined then the plugin is not built and only Print to PDF is supported under Linux. * Move unused genericiunixprintersupport plugin to start new CUPS printsupport plugin * Split QPdfPrintEngine to create QCupsPrintEngine * Remove LPR related code from QPdfPrintEngine * Move CUPS specific code from plugin base class to derived CUPS class * Remove forcing CUPS print engine to use PDF mode as PDF is now Native * Move qt_getCupsPrinterPaperSizes from qprinterinfo_unix to QCUPSSupport * Remove qprinterinfo_unix as no longer used * Remove all QT_NO_LPR uses There is now no CUPS specific code left in printsupport/kernel except QCUPSSupport which is needed for the dialogs. Task-number: QTBUG-23060 Change-Id: Ie8fa4512a2424edc8943068e0fa9fb714cc42db9 Reviewed-by: Teemu Katajisto <teemu.katajisto@digia.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com> Reviewed-by: John Layt <jlayt@kde.org>