summaryrefslogtreecommitdiffstats
path: root/src/plugins
Commit message (Collapse)AuthorAgeFilesLines
* macOS: Avoid modifying hash while iterating itTor Arne Vestbø2020-04-301-1/+4
| | | | | | | | | | QCocoaTouch sneakily updated the list of active touches in the destructor, causing problems when we switched from Q_FOREACH to ranged-for. Fixes: QTBUG-83876 Change-Id: If7ec9e9116b7eb581580b461ae12ad70c739906d Reviewed-by: Simon Hausmann <hausmann@gmail.com>
* Cocoa: If the grabRect is null then add in a null image for the areaAndy Shaw2020-04-261-1/+10
| | | | | | | | | | | If it is null then it has nothing to grab, so a null QImage and QRect is added to the lists so that there is still a representation in some form for that display. This additionally ensures that it does take up space for the display in the final image too. Fixes: QTBUG-63086 Change-Id: I6e80ecc1170642025f6930e2211017c114e25c16 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Merge 5.15 into 5.15.0Alexandru Croitor2020-04-231-2/+4
|\ | | | | | | Change-Id: Ib5251a8cb59693f076da7f75b86bfb6767bdf958
| * macOS: Don't optimize out aggressive backingstore flushes when single-bufferedTor Arne Vestbø2020-04-221-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Comparing the layer contents to the backingstore surface doesn't make sense when we're single buffered since we're always using the same surface. And once Core Animation has picked up on the surface it's not enough to just keep drawing to it, we also need to tell Core Animation that the contents has changed. Change-Id: I517a0b7a3ba7e9d96033465c9bd5a192985643ac Fixes: QTBUG-81071 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* | Merge remote-tracking branch 'origin/5.15' into 5.15.0Qt Forward Merge Bot2020-04-218-14/+14
|\| | | | | | | Change-Id: I9d9f9e0955144241fcee6148fc78c4501e2ffcea
| * Merge remote-tracking branch 'origin/5.14' into 5.15Liang Qi2020-04-201-1/+1
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: mkspecs/features/qt_common.prf src/network/ssl/qsslsocket_openssl_symbols.cpp src/network/ssl/qsslsocket_openssl11_symbols_p.h src/network/ssl/qsslsocket_opensslpre11_symbols_p.h src/plugins/platforms/wasm/qwasmeventdispatcher.cpp Done-With: Timur Pocheptsov <timur.pocheptsov@qt.io> Change-Id: I04fb3139a0e2efd4bc2f0959f131679f192fa0f8
| | * wasm: do not try to resume main thread if mainloop has not started yetLorn Potter2020-04-141-1/+2
| | | | | | | | | | | | | | | | | | | | | (cherry picked from commit d928beb024c240b37d35d2c53f25648c99a484b4) Fixes: QTBUG-83293 Change-Id: Ibd891629d1d023e47d196dd60821cc5c583a178d Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
| * | Introduce QSocketNotifier::activate(QSocketDescriptor, QSN::Type)Mårten Nordheim2020-04-167-13/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The pre-existing overload passes an int, but this can mean the descriptor gets truncated in compilations where the descriptor is 64-bit. The old overload with int is visible when querying the metaobject system so string-based connects still work as before, and connecting to it will produce a deprecation warning in the output. At the same time the PMF-based connect will, on recompile, pick the QSocketDescriptor overload. As an added improvement it also comes with the notification type, removing the need for separate slots where the code would be mostly shared anyway. The QSocketDescriptor type can be implicitly converted to and from qintptr to ensure existing code still compiles. It can also be constructed from Qt::HANDLE on Windows. In this same patch I also update the existing string-based connects in this module, which then includes updating the parameters for some slots as well. [ChangeLog][QtCore][QSocketNotifier] Added QSocketNotifier::activated(QSocketDescriptor, QSocketNotifier::Type). This replaces the activated(int) signal which in 64-bit environments could truncate the socket descriptor. If you use "activated" with the string-based connect() then you need to update the parameter type of the signal and slot if it had one. If you use it with the pointer to member function based connect() then all you need to do is update your slot's parameter type if it has one. If you need to compile your source code with multiple versions of Qt then connect() to this function using pointer to member function and update the slot's parameter type if needed. Task-number: QTBUG-70441 Change-Id: Ic43d6bc4c5bcb4040867b2ffad8d36fb01eed8af Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* | | macOS: Restore fallback sizes when setting application or window iconsTor Arne Vestbø2020-04-202-4/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We removed this logic in 059c3ae66a under the assumption that the icon would always provide a set of sizes, but for SVG icons this is not the case. Change-Id: Ib3cc5740bca32cf4068a71baf99b52fa536da2ca Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* | | macOS: Support [NSPanel becomesKeyOnlyIfNeeded]Tor Arne Vestbø2020-04-171-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We don't set this flag ourselves, but clients may do via winId(). If set, the panel will only activate if a view with needsPanelToBecomeKey is clicked. We do not implement needsPanelToBecomeKey in QNSView, which we ideally should, by e.g. looking at the IME hints. This still works as expected, as QtWidgets will make sure to activate the window as part of the normal focus handling. For other use-cases the user will have to catch the mouse event and activate the window manually. Change-Id: I4bacdd44b2f7df5920c6334806303bb5eb502b48 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* | | macOS: Activate non-modal windows during modal session if they support itTor Arne Vestbø2020-04-171-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 593ab638609e ensured that non-modal windows would not be activated during a modal session, which makes sense for windows that can't be interacted with. But some windows can, and we should activate them as normal. Task-number: QTBUG-46304 Change-Id: I4a9b7ec53157b042d4d6e9535336fa3254f41e0e Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* | | macOS: Rework worksWhenModal and update on modal session changeTor Arne Vestbø2020-04-172-11/+83
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of basing the worksWhenModal property on the window type, which will include both windows inside the current modal session (as intend), but also windows below the current modal session (wrongly), we check to see if the window is a transient child of the current top level modal window. Going via NSApp.modalWindow means we also catch cases where the top level modal session is run by a native window, not part of the modal session stack in the Cocoa event dispatcher. The new logic relies on windows such as popups, dialogs, etc to set the correct transient parent, but this seems to be the case already. To ensure the window tag is also updated, we call setWorksWhenModal on modal session changes. We could change worksWhenModal into e.g. shouldWorkWhenModal and always use the setter, but that would mean the initial window tag update in [NSWindow _commonAwake] would pick up the incorrect value. And if the window tag is not updated after that due to the workaround in [QNSPanel setWorksWhenModal:] being compiled out, the window would not be possible to order front, which is worse than being able to order front a window with worksWhenModal=NO. Fixes: QTBUG-76654 Task-number: QTBUG-71480 Change-Id: I38b14422d274dcc03b4c7d5ef87066e282ed9111 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* | macOS: Remove a bunch of dead (forward) declarationsTor Arne Vestbø2020-04-1519-270/+25
| | | | | | | | | | Change-Id: I402668a17b48c164658f775bacd832615a6d2587 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | macOS: Clean up header includes to use quotes or brackets as appropriateTor Arne Vestbø2020-04-1512-47/+50
| | | | | | | | | | | | | | | | The includes can be sorted and unified even more, but that's left for another rainy day. Change-Id: I4d5670d6d8389f69d2631b83b8f421d1f685a0f9 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* | Windows QPA: Fix geometry when firing a full exposeFriedemann Kleint2020-04-152-4/+10
| | | | | | | | | | | | | | | | | | | | | | | | There are several places in the code where a full expose event is fired, but the geometry in logical coordinates is used (pre-dating High DPI scaling). Fix by introducing a helper function for it. Task-number: QTBUG-83449 Change-Id: Ie8bb306de0b9b2b85306ed1bb6ba71181b76a958 Reviewed-by: André de la Rocha <andre.rocha@qt.io> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* | Windows QPA: Fix showing translucent windows maximized/full screenFriedemann Kleint2020-04-151-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | Translucent (layered) windows require an additional expose event. This was sent with the wrong size since the order of handleGeometryChange(), handleWindowStateChange() in handleResized was wrong. Fixes: QTBUG-83449 Change-Id: Iafd3fa8c0893aa28079201f73b7eb529087ba079 Reviewed-by: André de la Rocha <andre.rocha@qt.io> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* | Windows QPA: Fix restoring from fullscreen in High DPI setupsFriedemann Kleint2020-04-151-2/+4
| | | | | | | | | | | | | | | | | | | | The logic for checking whether the saved geometry (native pixels) is still within a screen compared them against logical coordinates. Work with the platform screen geometry instead. Fixes: QTBUG-83448 Change-Id: Ib68f967d1a33a490f88a7bec6dcc788788a10389 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* | Fix deprecation warnings in QCocoaCursorVolker Hilsheimer2020-04-142-9/+9
| | | | | | | | | | | | | | | | | | | | | | Explicitly use the Qt APIs that return QPixmap and QBitmap by value, and fix the API taking those to use const references rather than pointers or const values. Change-Id: I2bb7ad1edb3b65f806f0475fca383e5b9bdb61f3 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io> (cherry picked from commit b61ea367a5f8d07afda36b49b039b2375142d7f4) Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* | macOS: Replace foreach with ranged for loopsTor Arne Vestbø2020-04-149-10/+12
| | | | | | | | | | Change-Id: I9d0dbb60e05e4ef85219740465bb941ef8d8eb0f Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | macOS: Move translations to their respective source filesTor Arne Vestbø2020-04-147-192/+74
| | | | | | | | | | | | | | | | | | | | lupdate can deal with Objective-C++ sources nowadays, most likely due to appending them to SOURCES instead of the deprecated OBJECTIVE_SOURCES. Task-number: QTBUG-30125 Change-Id: Ifc6b06f13e0f679a011d999f11c2e6d25dcf27ed Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* | Minimal platform: fix leaking QMinimalScreen instanceShawn Rutledge2020-04-082-5/+7
| | | | | | | | | | | | | | | | | | | | | | This caused false alarms in fuzzing tests. The lifetime of the screen is the same as that of QMinimalIntegration. But failure to call handleScreenRemoved() also causes a warning; so as on "normal" platforms, the screen has to be separately allocated. Change-Id: Iad0cc53b8d09687400ced28bc2353b7500b01110 Reviewed-by: Robert Loehning <robert.loehning@qt.io>
* | qpa: Remove references to lighthouseTor Arne Vestbø2020-04-0327-71/+3
| | | | | | | | | | Change-Id: I37646113f626c878883cff49f4e186ec71bcfa15 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | Merge remote-tracking branch 'origin/5.14' into 5.15Qt Forward Merge Bot2020-03-272-25/+68
|\| | | | | | | | | | | | | Conflicts: src/corelib/serialization/qcborvalue.cpp Change-Id: I539d8cae5fd413b8a6c9c5d8a6364c79c8133a0a
| * macOS: Flush sublayers via separate IOSurface backingstoresTor Arne Vestbø2020-03-252-25/+68
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Flushing sublayers via QImage copies of the root IOSurface was causing performance regressions due to the constant allocations of new images each frame. We now re-use the QCALayerBackingStore implementation for sublayers, which gives a dynamic swap-chain. We're still paying the CPU cost of the copy from the root backingstore to the layered backingstores, as well as the memory cost, but at least improves the situation. We do not try to be smart and paint directly into the sublayers, as that would leave the root backingstore stale, potentially causing glitches when views are repositioned. Investigating this is left for future work. Fixes: QTBUG-82986 Change-Id: I758a3d8e1e40e2ed4fe6bc590a4a5a988d87a3a7 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> (cherry picked from commit ce2d68ebe1aefeae78ff2fd8ec5ff7e20790ef69)
* | Windows QPA: Enable Toggle UIA pattern for all checkable controlsAndre de la Rocha2020-03-261-4/+2
| | | | | | | | | | | | | | | | | | This change allows the checked/unchecked state to be detected by screen readers for all controls with a checkable state. Task-number: QTBUG-81919 Change-Id: I604151397b4ae21297009c274ffe634723ebe783 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* | wasm: add braces around multiline else caseMorten Johan Sørvig2020-03-261-2/+3
| | | | | | | | | | | | | | | | | | | | | | From clang warning: qwasmcompositor.cpp:335:13: warning: misleading indentation; statement is not part of the previous 'if' [-Wmisleading-indentation] offset += (delta +delta); Change-Id: Id372dfdd8fda1c705c61a24c26843dfb33fba40c Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
* | wasm: Add OpenGL version checkMorten Johan Sørvig2020-03-242-4/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | QtQuick3D probes for the supported OpenGL level by testing multiple OpenGL versions in descending order. Context creation must fail for versions not supported by WebGL. It does not appear that Emscripten does this for the 3.x minor versions, at least. Add version check which allows OpenGL (ES) 3.0 and 2.0. Change-Id: Ide8745dd79e69af86812a8d6f5d6cc16ecdd099a Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
* | Merge remote-tracking branch 'origin/5.14' into 5.15Liang Qi2020-03-244-7/+118
|\| | | | | | | | | | | | | Conflicts: src/plugins/platforms/xcb/qxcbdrag.cpp Change-Id: I0b47324b70b0b4894e54b21aa3e7a5041f9bd5e3
| * xcb: Add support for XdndActionList propertyAlexander Volkov2020-03-234-7/+118
| | | | | | | | | | | | | | | | | | | | This allows to pass and receive possible drop actions from other processes, including GTK applications. Fixes: QTBUG-75744 Change-Id: I944edc6fa00f8801a25912e70eb104a647a9fc0e Reviewed-by: JiDe Zhang <zccrs@live.com> Reviewed-by: Liang Qi <liang.qi@qt.io>
* | QXcbCursor: Replace deprecated QCursor APISze Howe Koh2020-03-241-6/+6
| | | | | | | | | | | | | | | | Align with e79a6253813cd67954e371805da547c48ea32d3d in qtbase. Task-number: QTBUG-48701 Change-Id: Ia3ca2de6bbf4e9c1738f77193351dd95a14dd2dc Reviewed-by: Liang Qi <liang.qi@qt.io>
* | Deprecation warnings: replace qrand with QRandomGeneratorVolker Hilsheimer2020-03-232-2/+6
| | | | | | | | | | Change-Id: I80fe6f611b367c6c8a1b77e82dc791493f88929b Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* | Merge remote-tracking branch 'origin/5.14' into 5.15Mitch Curtis2020-03-201-0/+1
|\| | | | | | | Change-Id: Ib2a2e3a292af43be3a980c2ccc943c08f4bbf72f
| * Merge remote-tracking branch 'origin/5.14.2' into 5.14Mitch Curtis2020-03-191-0/+1
| |\ | | | | | | | | | Change-Id: I34ca28c75b88e882c3f35f182bf01acb22b77637
| | * Merge 5.14 into 5.14.2Kari Oikarinen2020-03-105-5/+25
| | |\ | | | | | | | | | | | | Change-Id: Ib4b26bad47a850cde6253fb3422aae34b2cf622b
| | * | Windows QPA: Do not play sound for QMessageBox::NoIconFriedemann Kleint2020-03-061-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Amends 2f366a63b20a943ae3099605c2cdb34009ca5602. Task-number: QTBUG-82682 Task-number: QTBUG-81342 Change-Id: I30f465bf432e27828db460f6dbbb59eee0cca8f2 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> Reviewed-by: André de la Rocha <andre.rocha@qt.io>
* | | | Merge remote-tracking branch 'origin/5.14' into 5.15Qt Forward Merge Bot2020-03-186-22/+44
|\| | | | | | | | | | | | | | | Change-Id: Iaab37b633a8286c2c21425aaac34d30529a3ea82
| * | | WinRT: Open the URLs via the XAML thread to enable them to be openedAndy Shaw2020-03-141-12/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | UWP expects these functions to be opened via the XAML thread, so we ensure this is done by running those functions on that thread. Change-Id: I57ae3a7d9b45d0b1a00ac23b103386bd34b65c6d Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
| * | | Windows QPA: Fix broken frame geometry when moving windows with native menusFriedemann Kleint2020-03-135-10/+23
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QWindowsWindow::updateFullFrameMargins() which is called from the screen changed handling does not take native menus into account. Since the size of the menu is not known when using EnableNonClientDpiScaling(), obtaining the correct frame size requires triggering a WM_NCCALCSIZE message. Extract the helper forceNcCalcSize() from QWindowsMenu and use that from updateFullFrameMargins() in case menus are present. Amends d2fd9b1b9818b3ec88487967e010f66e92952f55. Fixes: QTBUG-82580 Change-Id: I306f1faf84e26c88608cb22ffd42eccc848905c3 Reviewed-by: André de la Rocha <andre.rocha@qt.io>
* | | wasm: remove uneeded platform plugins from buildLorn Potter2020-03-161-2/+2
| | | | | | | | | | | | | | | | | | | | | Wasm does not use minimal, offscreen or qvnc platform plugins. Change-Id: I3a1919a260280ffdff33b68502d488f71f2b0c13 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* | | wasm: do not move or resize Popup windowsLorn Potter2020-03-161-1/+4
| | | | | | | | | | | | | | | | | | Fixes: QTBUG-81771 Change-Id: I1595ade444222160ac05c4564dad5b61f10a050f Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* | | QMySQL: return QVariant::ByteArray for POINT columnChristian Ehrlicher2020-03-151-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | qDecodeMYSQLType() did not handle FIELD_TYPE_GEOMETRY and therefore the type for a POINT column was incorrectly treated as QVariant::String. Even the type can not (yet) be properly decoded to a QPoint, treating it as QVariant::ByteArray is the better option here. Fixes: QTBUG-72140 Change-Id: I12e75b326ae3acb75cb36f2e650464528bd43c0e Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* | | macOS: Ensure GL symbols are resolved from the OpenGL frameworkLucas Wang2020-03-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The app or its dependencies may link against X11's libGL.1.dylib from XQuarz, to support GLX on macOS. Doing so may place libGL earlier in the load order than Apple's OpenGL framework, which results in dlsym picking symbols from libGL when using the RTLD_DEFAULT lookup strategy, breaking Qt's OpenGL support in various ways: QOpenGLShaderProgram: could not create shader program Warning: "" failed to compile! To fix this we use RTLD_NEXT, which looks up the symbol in dependency order of the image that called dlsym, rather than the global load order. Change-Id: I1ec3055a4ab0bb96566c7e196d301b30785f2dc0 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* | | Add native iOS file dialogHarald Meyer2020-03-145-6/+182
| | | | | | | | | | | | | | | | | | | | | | | | This patch adds native iOS file open and directory picking support for the QFileDialog using the iOS UIDocumentPickerViewController class. Change-Id: Ia724a59742650a01c62067aed3477f82ab1fd546 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* | | macOS: Modernize QCocoaSystemTrayIconTor Arne Vestbø2020-03-142-200/+97
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The code had not been touched in a very long time and was overgrown with weeds from pre-QPA times. We no longer maintain an indirection through QSystemTrayIconSys, which was a remnant from Qt 4 times. The Objective-C helper class used for callbacks has been slimmed down to just a simple delegate, with the actual work done in the QCocoaSystemTrayIcon implementation, further reducing indirection. We no longer use a custom NSView for the status bar item, something that has been deprecated for a long time. Instead we set properties on the NSStatusItem's button. This gives us automatic support for drawing the icon with the right highlight, including in dark mode. Finally, the code has been updated to modern Objective-C syntax. Change-Id: I59706081f6b179035b8216a7a6ebc08a47cec127 Fixes: QTBUG-77189 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* | | Make it possible to set the EGL_DEFAULT_DISPLAYAndy Nichols2020-03-131-1/+3
| | | | | | | | | | | | | | | Change-Id: I564f1ce72501bc12b960c87c953343fd64ee9011 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* | | macOS: Pass on QCursor pixmap with original scaleTor Arne Vestbø2020-03-121-11/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There's no need to scale the cursor down to 1x, since we're now passing the correct device pixel ratio on to the NSImage by setting its size. Letting macOS deal with the scaling produces a higher resolution cursor. Change-Id: Icdb3d59998f9a32094c2973c3b222cf22b6398ac Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* | | macOS: Pass on QIcon as NSImage if possible, instead of going via QPixmapTor Arne Vestbø2020-03-122-14/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The QIcon can be turned into a NSImage directly, with all the supported representations that the icon contains. This allows macOS to choose the best representation for whatever context it's rendering the NSImage in, and will likely do a better job of scaling it if none of the sizes fit target context. This fixes e.g. application window icons not taking retina screens into account. Change-Id: Idbd97cae4ef50cc0dd3f38c355cfceec007e0d19 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* | | macOS: Streamline QIcon to NSImage conversionTor Arne Vestbø2020-03-122-13/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The conversion uses NSBitmapImageRep and correctly sets the display pixel ratio and size of the resulting image, reducing the need for clients to deal with this. It also propagates the isMask property of the icon to the NSImage. The function returns an auto-released object, as is customary for class-functions like these. Change-Id: If97f3d383959cd0f58a0d1249f5c26e52c1da9cd Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* | | macOS: Streamline QImage to NSImage conversionTor Arne Vestbø2020-03-126-26/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The conversion uses NSBitmapImageRep and correctly sets the display pixel ratio and size of the resulting image, reducing the need for clients to deal with this. The function returns an auto-released object, as is customary for class-functions like these. Change-Id: I5124d1d8145a7f5266921b22fda1987798771ec1 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* | | macOS: Log occlusion state changesTor Arne Vestbø2020-03-121-1/+3
| | | | | | | | | | | | | | | Change-Id: I5a0a3a96a59a1eae42fa94f2f9f406f22807a354 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>