summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Vulkan: share library loading implementationMorten Johan Sørvig2018-05-148-36/+22
| | | | | | | | The macOS, Windows, and XCB implementations are identical and can be moved to QBasicPlatformVulkanInstance. Change-Id: Id84b27ffd87f86afe3798c4ad2743ba05e6190d3 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Vulkan: Share destroySurface() implementationMorten Johan Sørvig2018-05-148-52/+15
| | | | | | | | The macOS, Windows, and XCB implementations are identical and can be moved to QBasicPlatformVulkanInstance. Change-Id: I1380b2bd03080710084a1458bdce3a362ba5c287 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* QTableWidgetItem: pass role to dataChanged() signalChristian Ehrlicher2018-05-123-10/+16
| | | | | | | | | | QAbstractItemModel::dataChanged() gained an optional role parameter with Qt5 which was not filled within QTableWidgetItem setData() function Task-number: QTBUG-48295 Change-Id: I82289b6db78eeef09d586da267046032984952da Reviewed-by: Samuel Gaist <samuel.gaist@edeltech.ch> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* QStyleSheet: fix typo in propertyNameForStandardPixmap for discardChristian Ehrlicher2018-05-121-1/+1
| | | | | | | | | The property name for SP_DialogDiscardButton is missing the 'dialog-' prefix to match the property described in knownStyleHints. Task-number: QTBUG-58674 Change-Id: Ie5b7412765e19defb3644d7cac2fe08bf8119a8d Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Doc: add explanation of return format of QImage::transformed()Eirik Aavitsland2018-05-111-0/+14
| | | | | | | | | | QImage::transformed() can sometimes return an image with a different image format than the original. This might be unexpected, so explain it in the doc. Task-number: QTBUG-50087 Change-Id: I165fc7b44439b770b542be52d3108fd70bf0ae99 Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
* macOS: Add QSurfaceType::MetalSurfaceMorten Johan Sørvig2018-05-114-9/+17
| | | | | | | | | | | | | | | | | | | | Add API to activate previously added Metal layer implementation. This provides minimal support, and unlike VulkanSurface there is no separate QWindow subclass. What this does do is configure the QWindow to use a Metal layer, and to send expose/update events when the layer content should be redrawn. Qt will also update the layer’s drawableSize and contentsScale when needed. Application code can make use of this by accessing the QWindow layer, which will be a CAMetalLayer: CAMetalLayer *metalLayer = reinterpret_cast<CAMetalLayer *>( reinterpret_cast<NSView *>(window->winId()).layer); Change-Id: I514f5186133c3e610fd4e53ca91fe9c85c6d016e Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* QWindowsCARootFetcher: fix compile with QSSLSOCKET_DEBUGMårten Nordheim2018-05-111-0/+5
| | | | | | | | Didn't compile with it when I was moving it out. Change-Id: I3645af71ea3295a61f20000a6bc4716b6e996ce5 Reviewed-by: Jesus Fernandez <Jesus.Fernandez@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* QHeaderView: reset cached size hint on reset()Christian Ehrlicher2018-05-101-0/+2
| | | | | | | | | QHeaderView::reset() did not reset the cached size hint which could lead to wrong geometries when the model was reset. Task-number: QTBUG-67927 Change-Id: I5100b28a741cc816133a229c422f9abf83f2187e Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
* cups: Fix UI mismatch when a default printer option choice is not availableAlbert Astals Cid2018-05-091-14/+27
| | | | | | | | | | | | | | | | It can happen that the user sets a default printer option choice, using lpoptions or similar, and that is a mistake since that choice is not available because it needs an installable option that is not in the printer. We need to check that and set the internal ppd option not to the value the user gave to lpoptions but to something sane Also rename foundMarkedOption to foundMarkedChoice since we're going through all the choices of a given option in that loop Change-Id: Ic9362d9b4fba33025c4d45eed8ddd203c95836bf Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* Revert "qbasicdrag: temporary restore obsolete APIs"Gatis Paeglis2018-05-091-4/+2
| | | | | | | | | This reverts commit 0b815aa2f83ca30a3d32b2276c2b39d224b233b1. Inter-module compile issues have been resolved now, see qtwayland/44f3b888a3f88ac8097ff65aec0101dbe6a369ef. Change-Id: I7f9ed4f9d5f0d6431493a8f47ffe8a85141f0e50 Reviewed-by: Liang Qi <liang.qi@qt.io>
* Merge "Merge remote-tracking branch 'origin/5.11' into dev" into ↵Liang Qi2018-05-0816-64/+122
|\ | | | | | | refs/staging/dev
| * Merge remote-tracking branch 'origin/5.11' into devLiang Qi2018-05-0816-64/+122
| |\ | | | | | | | | | | | | | | | | | | | | | Conflicts: src/plugins/sqldrivers/sqlite/qsql_sqlite.cpp tests/auto/corelib/io/qresourceengine/qresourceengine_test.pro Change-Id: I3169f709cc2a1b75007cb23c02c4c79b74feeb04
| | * qlalr: Fix startup crash in static buildsFriedemann Kleint2018-05-086-51/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replace the global variables qout, qerr by a functions to delay the initialization. Task-number: QTBUG-68166 Change-Id: Ib023da1bccc7eabc6e633ccb8945e5f209c5765e Reviewed-by: Kevin Funk <kevin.funk@kdab.com> Reviewed-by: Brett Stottlemyer <bstottle@ford.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
| | * QtGui: Enable synchronous delivery for QWSysIf:::WindowScreenChangedEventFriedemann Kleint2018-05-082-2/+4
| | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-67777 Change-Id: I6d52b650fb33283010ef06259da83cdb2fd3483f Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
| | * Fix building with -no-feature-shortcutJoni Poikelin2018-05-083-0/+12
| | | | | | | | | | | | | | | Change-Id: I7576055a6d81d6a7a075ebff16ca6b0ced4e984e Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
| | * Fix build without features.timezoneTasuku Suzuki2018-05-082-0/+6
| | | | | | | | | | | | | | | Change-Id: I3f8421103afa61baf415636b4dc8cf93fb477bcc Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
| | * QShortcutMap: print ambiguous shortcuts when DEBUG_QSHORTCUTMAP is definedMitch Curtis2018-05-071-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is useful to see why shortcuts (in Qt Widgets and Qt Quick) are not behaving as expected. For example: The following shortcuts are about to be activated ambiguously: - QKeySequence("Esc") (belonging to QQuickShortcut(0x7fcd4c8e6a70, name = "exploreViewBackOrCloseShortcut")) - QKeySequence("Esc") (belonging to QQuickPopupItem(0x7fcd4c8e5110)) Change-Id: Id20a3017d69cfe417c2286dccf46b3d5ff0b31b2 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
| | * TestLib: Fix license headers in qabstractitemmodeltester.*Kai Koehne2018-05-072-10/+32
| | | | | | | | | | | | | | | Change-Id: Ide05bcdd30cd5f672949aacd5564a4a73c38366d Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | | configure: change convention of passing libraries to config testsOswald Buddenhagen2018-05-081-7/+0
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | instead of pre-resolving them and passing the final LIBS to qmake, pass raw QMAKE_*_LIBS* assignments and a QMAKE_USE stanza. the immediate benefit of that is that it centralizes the debug/release lib handling, which makes build variant overrides available to all libraries, not just a few selected ones. note that this removes the CONFIG+=build_all from the test projects. turns out that this was ineffective to start with, as config tests are built with an explicit CONFIG-=debug_and_release. we might re-instate it in a non-broken way later on. Change-Id: I2117c5b36937e8230bd571dcee83231515cbe30b Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | macOS: Transition to new QPA dag-and-drop APIMikhail Svetkin2018-05-084-25/+105
| | | | | | | | | | | | | | | | | | | | The new API allows us to pass the mouse buttons and keyboard modifiers along with the QWSI event. Task-number: QTBUG-57168 Change-Id: Ic54c012d1593d922e7dcd31facab2f2c630c7996 Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* | macOS: Experimental Vulkan support via MoltenVKMorten Johan Sørvig2018-05-089-7/+259
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add support for QSurface::VulkanSurface and QVulkanWindow. Usage: 1) Build MoltenVK according to instructions 2) Configure Qt: ./configure -I /path/to/MoltenVK/Package/Release/MoltenVK/include 3) export QT_VULKAN_LIB=/path/to/MoltenVK/Package/Release/MoltenVK/macOS/libMoltenVK. Implement support for QSurface::VulkanSurface by enabling layer mode for QNSView and then creating a CAMetalLayer, which the MoltenVK translation layer can run on. MoltenVK provides an implementation of the Vulcan API, which means that the platform integration is similar to other platforms: implement a QCocoaVulkanInstance where we pass the QNSView instance to the vkCreateMacOSSurfaceMVK Vulkan surface constructor function. Using Vulkan directly without QVulkanWindow is possible, but not tested. We currently load libMoltenVK at run-time and use the existing QT_VULKAN_LIB environment variable to set its path. For deployment purposes it would be better to link against MoltenVK.frameworkm, but this Task-number: QTBUG-66966 Change-Id: I04ec6289c40b199dca9fed32902b5d2ad4e9c030 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* | qbasicdrag: temporary restore obsolete APIsGatis Paeglis2018-05-081-2/+4
| | | | | | | | | | | | | | | | | | | | | | ... that were removed in 10b3286313c78fa380b5fe676a7c14f3ae84f017. This is needed so we can properly resolved inter module dependencies (update qtwayland to use the new API). Task-number: QTBUG-68151 Change-Id: If9c3b42f76bd2c1d8fc86304cfcc22c18bad9e27 Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* | Windows QPA: Improve debug output of keyboard shortcut handlingFriedemann Kleint2018-05-081-16/+59
| | | | | | | | | | | | | | | | Add a debug operator for KeyboardLayoutItem and output keys in QWindowsKeyMapper::possibleKeys(). Change-Id: I28215f44da2a9c08a27541ef0e906d37be2bad72 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Get rid of argb32->argb32pm routines in qimageAllan Sandfeld Jensen2018-05-076-355/+10
| | | | | | | | | | | | | | | | We already have better optimized versions in drawhelper. Removing these versions is a performance gain. Change-Id: I431c74e440529648d9bc5e22c0e700a72d376934 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* | Optimize intermediate_adder_avx2Allan Sandfeld Jensen2018-05-071-6/+7
| | | | | | | | | | | | | | | | Use 16-bit multiplication as it is twice as fast as 32-bit multiplication. Change-Id: I64b529eaaed4ce2c59c64a0120e93cd132724156 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Optimize direct argb32 blend functionsAllan Sandfeld Jensen2018-05-071-8/+8
| | | | | | | | | | | | | | | | They were slower than the long path version due to working too hard. This also unduplicates code by using the blend_pixel function. Change-Id: Ibf84b8f749cf40d4c852b459dc76860afd850d32 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* | rcc: don't drop entries with missing files in -list modeOswald Buddenhagen2018-05-072-13/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | the files may not exist _yet_. this change allows dynamically generating the resource contents. the ignoreErrors parameter is renamed to listMode and made less aggressive, to better reflect the actual usage. Change-Id: I2f6a75a23f1ef903f0d957f9a09f4df0ce2a2b35 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* | Move default implementation of update requests to QPlatformWindowTor Arne Vestbø2018-05-0712-46/+50
| | | | | | | | | | Change-Id: I4cbb8d2023068288e298ab21f5cd8bc258825c77 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Windows QPA: Use new QPA Dnd APIFriedemann Kleint2018-05-051-29/+22
| | | | | | | | | | | | | | Task-number: QTBUG-57168 Task-number: QTBUG-56244 Change-Id: I84cf811d9e886369a659ecb33ce1778207660922 Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
* | qsimd: add support for new x86 CPU featuresThiago Macieira2018-05-054-328/+393
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds detection for: VAES, GFNI, AVX512VBMI2, AVX512VNNI, AVX512BITALG, AVX512VPOPCNTDQ, AVX512_4NNIW, AVX512_4FMAPS. These features were found in the "Intel® Architecture Instruction Set Extensions and Future Features" manual, revision 30. This commit also adds support for RDPID (already in the main manual) and the Control-flow Enforcement Technology, which appears in a separate Intel paper. This new support was done by adding a new generator script so we don't have to maintain two tables in sync, one in qsimd.cpp with the feature names, and the other in qsimd_p.h. Since we now need a lot more bits, it's no longer worth keeping the two halves of the qt_cpu_features variable mostly similar to the main two CPUID results. This commit goes back to keeping things in order, like we used to prior to commit 6a8251a89b6a61258498f4af1ba7b3d5b7f7096c (Qt 5.6) At the time of this commit, GCC 8 has macros for AVX512VPOPCNTDQ, AVX512_4NNIW, AVX512_4FMAPS, AVX512VBMI2 and GFNI. Change-Id: I938b024e38bf4aac9154fffd14f7afae50faaa96 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | qsimd: remove support for systems without 64-bit atomicsThiago Macieira2018-05-052-17/+7
| | | | | | | | | | | | | | | | We had that as a concession for early toolchains that failed to include the necessary libraries. They must now be up-to-date. Change-Id: I938b024e38bf4aac9154fffd14f7a630ef160cd5 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Merge remote-tracking branch 'origin/5.11' into devQt Forward Merge Bot2018-05-0512-233/+183
|\| | | | | | | Change-Id: Ib58433da04bffb5dfab5486b80f17f39cc4145fa
| * macOS + FreeType: Properly distinguish memory fonts from file fontsTor Arne Vestbø2018-05-041-6/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In recent macOS versions the descriptor created from the function CTFontManagerCreateFontDescriptorFromData() will contain the NSCTFontFileURLAttribute with a value such as: file://iNmEmOrYcGfOnT_0x101d3c3a0#postscript-name=New Which means we can't use the presence of the kCTFontURLAttribute to determine that we're dealing with a file font. Instead we check for our custom kQtFontDataAttribute first, which is only set for memory fonts. Task-number: QTBUG-68044 Change-Id: Ie87d06b5a9e0e251305200b717f18ef68ccc6abc Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
| * QAbstractEventDispatcher: add a note about the timer range for Qt 6Thiago Macieira2018-05-041-0/+1
| | | | | | | | | | | | Task-number: QTBUG-67383 Change-Id: I00ccecb71c774bb9b86cfffd15205b4f38088764 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| * Fix Clang 6 warning about comparing different enumsThiago Macieira2018-05-041-1/+1
| | | | | | | | | | | | | | | | | | qdialogbuttonbox.cpp:862:14: error: comparison of two values with different enumeration types in switch statement ('QDialogButtonBox::ButtonRole' and 'QPlatformDialogHelper::ButtonRole') [-Wenum-compare-switch] Change-Id: I3840d727dee443318644fffd1529350b81678712 Reviewed-by: André Hartmann <aha_1980@gmx.de> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| * Generate more Windows/Linux-like Qt keyboard eventsJames McDonnell2018-05-042-198/+122
| | | | | | | | | | | | | | | | | | | | | | The QKeyEvent::key values were significantly different on QNX and some QKeyEvent::text values were also different/missing. Also makes it possible to enter numbers via the numeric keypad. Change-Id: Ifcf6284b99a893a87974d37ec6d6976f88241e61 Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com> Reviewed-by: Dan Cape <dcape@qnx.com>
| * Avoid to fail to close stream on exceptionAndré Klitzing2018-05-041-15/+43
| | | | | | | | | | | | | | | | Move .close() to finally block. Found by spotbugs. Change-Id: I1d11f52c79e805082f05801e4ef0ec94c6dc4e6e Reviewed-by: BogDan Vatra <bogdan@kdab.com>
| * Fix crash in qsslsocket_opensslMårten Nordheim2018-05-041-3/+1
| | | | | | | | | | | | | | | | We were using the wrong free function in a path which was hit in an edge case (PKCS#12 certificate without a private key attached). Change-Id: I5335b5dea7a926b242bed0fd9b989b681a5828d8 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
| * QJsonDocument: Validate also zero-length objectsJüri Valdmann2018-05-041-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The added test case is the binary JSON equivalent of {"a":{"š":null}} with two modifications. First, the length of the string "š" has been corrupted to 0xFFFFFF00. Second and more import, the Base::size field of the inner object has been reset to 0. On its own the first modification would normally trigger a validation error. However, due to the second modification the Value::usedStorage for the inner object evaluates to 0, completely disabling all further validation of the object's contents. Attempting to convert this binary JSON into standard JSON will lead to the JSON writer trying to construct a QString of length 0xFFFFFF00. Fixed by validating also objects with usedStorage == 0. Task-number: QTBUG-61969 Change-Id: I5e59383674dec9be89361759572c0d91d4e16e01 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| * QJsonDocument: Reject objects containing themselves in binary JSONJüri Valdmann2018-05-041-3/+3
| | | | | | | | | | | | | | | | | | | | The added test case is a binary JSON file describing an array which contains itself. This file passes validation even though attempting to convert it to plain JSON leads to an infinite loop. Fixed by rejecting it in validation. Task-number: QTBUG-61969 Change-Id: Ib4472e9777d09840c30c384b24294e4744b02045 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| * Fix encoding of freetype/LICENSE.txt to utf-8Kai Koehne2018-05-041-1/+1
| | | | | | | | | | | | | | The previous encoding was ISO-8859-1. Change-Id: Id13bf1936120fb8b3630ba671ca92f285fa80dec Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
| * QJsonDocument::fromRawData: Fix out-of-bounds accessJüri Valdmann2018-05-042-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This method takes a pointer+size pair, but begins reading through the pointer without first checking the size parameter. Fixed by checking the size parameter. A new test case is added with an empty binary json file. Although the test does not fail under normal conditions, the problem can be detected using valgrind or AddressSanitizer. Task-number: QTBUG-61969 Change-Id: Ie91cc9a56dbc3c676472c614d4e633d7721b8481 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| * Fix the enabling of AES with ICC and MSVC on some low-end processorsThiago Macieira2018-05-041-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | GCC and Clang assume that all Sandybridge (2nd generation) and newer Intel Core™ processors have AES, which I used as a source of information for this code. However, there are a few low-end parts that miss this feature, like Intel Core™ i3-2350M, i3-3130M, i3-4000M. [1] https://ark.intel.com/products/series/75025/4th-Generation-Intel-Core-i3-Processors Task-number: QTBUG-67705 Change-Id: If90a92b041d3442fa0a4fffd1525b9afbcb6e524 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | QNX: Add screen-context-capabilities platform parameterJames McDonnell2018-05-041-2/+21
| | | | | | | | | | | | | | | | | | | | Specifies the flags value for the screen_context_create call allowing the Qt application to take on additional screen capabilities via the Qt screen context. Change-Id: Ic7aa478227e64afe2d1d7d04ec58c11ad68b9f22 Reviewed-by: Janne Koskinen <janne.p.koskinen@qt.io> Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
* | QNX: Move screen event retrieval to the GUI threadJames McDonnell2018-05-045-115/+103
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of retrieving screen events itself, the screen event thread now turns screen event notification into a Qt signal. In response to the signal, the GUI thread processes screen events. Eliminates the need to coordinate access to a screen event queue. Also prepares the way for getting rid of the screen event thread. This could be done if the QNX event dispatcher were switched from poll to MsgReceive (dispatch). Change-Id: If5892466d04d67f00828fddaea38b20da5fb18a3 Reviewed-by: Janne Koskinen <janne.p.koskinen@qt.io> Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
* | Accessibility: Fix leaking cached interfacesFrederik Gladhorn2018-05-042-0/+7
| | | | | | | | | | | | | | | | | | When the application closes, we should clear the cache to not run into memory sanitizers claiming that we leak. Change-Id: Ibf9fcda107be6b7f3ed414d7651080aa1f61a3a5 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io> Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
* | qpa: improve API to support DnDs from other processesGatis Paeglis2018-05-0412-58/+197
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ... instead of using a hack of directly accessing QGuiApplication members. The current QPA API was bad for two reasons: 1) It expects platform plugin authors to know about internals of Qt Gui, particularly that QGuiApplication uses QGuiApplication::{mouseButtons,keyboardModifiers} to construct QDragMoveEvent and QDropEvent events. Which results in the second reason why this is bad. 2) Platform plugins should not directly access member variables of QGuiApplication, just to make sure that QDragMoveEvent and QDropEvent events contain correct state. Platform plugins should instead use QWindowSystemInterface to communicate with Qt Gui (which is also the solution here). The solution is to extend QWindowSystemInterface::handle{Drag,Drop} to require mouse/keyboard state. We already do this for some of the other methods, so it is nothing extraordinary. This type of interface is also _required_ to support drag-n-drops from other processes. We can't use QGuiApplication::{mouseButtons,keyboardModifiers} when the drag originates from another process, instead we need to query mouse/keyboard state from the system. This patch fixes drag-n-drops from others processes on XCB platform plugin. Task-number: QTBUG-57168 Change-Id: I3f8b0d2f76e9a32ae157622fef801829d629921d Reviewed-by: Mikhail Svetkin <mikhail.svetkin@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* | Port placeholder rendering to palette placeholder color roleFilipe Azevedo2018-05-043-6/+3
| | | | | | | | | | Change-Id: I7671d4b55677866b61627cc55a3029a3848f455d Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* | Add a QPalette color role for placeholder textsFilipe Azevedo2018-05-042-3/+44
| | | | | | | | | | | | | | This allow to customize easily placeholders in QLineEdit by example. Change-Id: I2bb379164376e1d88b42d6c86c2e5b8df99fbc56 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* | QFileSystemModel: remove unused function naturalCompare()Christian Ehrlicher2018-05-041-2/+0
| | | | | | | | | | | | | | | | The implementation of the private function naturalCompare was removed with 197da3d220f but the declaration was forgotten. Change-Id: I14b44e3aeccac2c428e509f115ea93c4ba2a7c9b Reviewed-by: Lars Knoll <lars.knoll@qt.io>