summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/vnc
Commit message (Collapse)AuthorAgeFilesLines
* Add a platform capability indicating support for QRhi-based renderingLaszlo Agocs2021-01-041-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This attempts to reconcile a minor difference between Qt 5 and Qt 6: Running Qt Quick applications with a platform plugin such as vnc, led to an automatic fallback to the 'software' backend based on the OpenGL capability reported from the platform plugin. In Qt 6.0 this logic is gone from Qt Quick, because we do not have, and wish not to have, individual flags for each and every 3D API on this level. Therefore in Qt 6.0 a Qt Quick application running with the vnc (or linuxfb, or minimal) platform needs an explicit selection of the software backend via QT_QUICK_BACKEND or QQuickWindow::setGraphicsApi(). To keep migration for users of such platform plugins easier, we can still reintroduce a Qt 5-like logic: by having a high level Is-QRhi-Supported type of flag, we can make Qt Quick query that, and trigger the fallback to the software backend when it is reported as false by the platform plugin. As this is the minority case and a conscious choice by platform plugins, the flag can be opt-out (i.e. true by the default hasCapability implementation). When it comes to the existing OpenGL flag, that needs to stay for compatibility reasons, but it is worth noting that the new flag semantically falls in the exact same category: it does not indicate things will really work at run time, but rather serves as an opt-out, "do not even try" type of declaration the platform plugin can make, which then allows modules like Qt Quick to make early, upfront decisions about which rendering paths/backends to take. Change-Id: I8d6fddeb82ca6eece7b7abc1a5b64ebe6d8af29d Task-number: QTBUG-89561 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Fix the initial cursor state for the VNC pluginMagnaboscoL2020-10-171-1/+4
| | | | | | | | | Ensure that we show a cursor directly after a client connects. Fixes: QTBUG-85006 Pick-to: 5.15 Change-Id: Icb604beb1b0ca2e7efa42ac01c2aac0a3e002865 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* CMake: Regenerate projects to use new qt_internal_ APIAlexandru Croitor2020-09-232-2/+2
| | | | | | | | | | | Modify special case locations to use the new API as well. Clean up some stale .prev files that are not needed anymore. Clean up some project files that are not used anymore. Task-number: QTBUG-86815 Change-Id: I9947da921f98686023c6bb053dfcc101851276b5 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Properly deprecate Qt::MidButton in favor of Qt::MiddleButtonEdward Welbourne2020-08-221-1/+1
| | | | | | | | | | | | MidButton had its // ### Qt 5: remove me upgraded to Qt 6 at 5.0; but it dates back to 4.7.0 Replace the many remaining uses of MidButton with MiddleButton in the process. Pick-to: 5.15 Change-Id: Idc1b1b1816673dfdb344d703d101febc823a76ff Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Add ; to Q_UNUSEDLars Schmertmann2020-07-071-2/+2
| | | | | | | | This is required to remove the ; from the macro with Qt 6. Task-number: QTBUG-82978 Change-Id: I3f0b6717956ca8fa486bed9817b89dfa19f5e0e1 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Use QList instead of QVector in pluginsJarek Kobus2020-07-061-2/+2
| | | | | | Task-number: QTBUG-84469 Change-Id: Ic86f4a3000592a1c9ae62e4a83f4fe39832a6b24 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Move UNIX services into QtGuiFriedemann Kleint2020-06-184-4/+2
| | | | | | Task-number: QTBUG-83255 Change-Id: I95cd25c6e18ffb46955acc76d6cab551d1c8f5ae Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Move Unix font databases into QtGuiFriedemann Kleint2020-06-154-5/+2
| | | | | | Task-number: QTBUG-83255 Change-Id: Id85a1e0f3de371951783fe97485158c4a02e1f15 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Move the UNIX event dispatchers into QtGuiFriedemann Kleint2020-06-104-5/+2
| | | | | | Task-number: QTBUG-83255 Change-Id: I7d32eb1ec01784c9ed6bf5fc4913ffc5b3a34a49 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Move QAbstractFileIconEngine into QtGuiTor Arne Vestbø2020-06-032-2/+1
| | | | | | Task-number: QTBUG-83255 Change-Id: Iab502c51600b96f315113b08fa473ed28a5457fc Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* QVncScreen: fix crash on disconnect client did not request cursorRolf Eike Beer2020-05-251-0/+3
| | | | | | Change-Id: I758c79d87bd239b6fde9bae4e97c5b31450fa813 Pick-to: 5.15 5.12 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* QVncClient: fix an int -> QChar conversionMarc Mutz2020-05-091-1/+1
| | | | | | | | It was masked by all QChar ctors being made explicit, except the char16_t one, which was left as the only viable choice. Change-Id: I68da90730de0a7bdcd0825b4557b8534fbda2533 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* CMake: Regenerate projects to match updated plugin APILeander Beernaert2020-04-272-2/+2
| | | | | Change-Id: Iafe0a953e74d7f36ec48fa075b3725dd6466c5e3 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Make bytes-per-line safe for int overflowAllan Sandfeld Jensen2020-02-201-1/+1
| | | | | | | | Goes through the Qt code and make sure bytes-per-line calculations are safe when they are too big for 32bit integers. Change-Id: I88b2d74b3da82e91407d316aa932a4a37587c0cf Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Regenerate projects to correctly handle private dependenciesAlexandru Croitor2020-02-052-26/+10
| | | | | | | Change-Id: I7d84bc9962bff5c89a90367ae704974c6ce2ec89 Reviewed-by: Qt CMake Build Bot Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Regenerate plugin projects to get new target namesAlexandru Croitor2020-01-272-8/+8
| | | | | | | | | And also to get the original output names (qmake's "TARGET"), so that the plugin file names are as they were in Qt 5. Change-Id: I96a060d1a81693652847857372bec334728cb549 Reviewed-by: Qt CMake Build Bot Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Merge remote-tracking branch 'origin/dev' into merge-devLeander Beernaert2020-01-244-6/+5
|\ | | | | | | Change-Id: I31b761cfd5ea01373c60d02a5da8c33398d34739
| * Tidy nullptr usageAllan Sandfeld Jensen2019-12-064-5/+5
| | | | | | | | | | | | | | | | | | | | | | Move away from using 0 as pointer literal. Done using clang-tidy. This is not complete as run-clang-tidy can't handle all of qtbase in one go. Change-Id: I1076a21f32aac0dab078af6f175f7508145eece0 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| * Remove QFlags(0), QFlags() does the same and is not deprecatedAlbert Astals Cid2019-11-291-1/+0
| | | | | | | | | | Change-Id: I254d37d37f5583e0f7a76fb42b83d234afa29b77 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Regenerate src/*Alexandru Croitor2019-11-142-4/+4
| | | | | | | | | | | | Change-Id: I0314b4faa1e4860e86198eea4189987e527dfec2 Reviewed-by: Qt CMake Build Bot Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Regenerate everything under ./srcAlexandru Croitor2019-11-122-2/+0
| | | | | | | | | | | | | | Change-Id: Ibdbdc17f8c2ee41356f490dd839a47e1bcf4c586 Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Qt CMake Build Bot
* | Merge remote-tracking branch 'origin/wip/qt6' into wip/cmakeAlexandru Croitor2019-10-111-2/+11
|\| | | | | | | Change-Id: I3a1d7673c3c20019ab12a2ea0a60f1619920a34c
| * Update QPA mouse event handling in offscreen and VNC pluginsShawn Rutledge2019-08-301-2/+11
| | | | | | | | | | | | | | | | | | This is needed after a37785ec7638e7485112b87dd7e767881fecc114 deprecated the versions of QWindowSystemInterface::handleMouseEvent() that were in use here. Change-Id: Ib704ae2be905436f5a4a80ae6686b5fe3972d34c Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* | Regenerate platforms plugins part 5Alexandru Croitor2019-10-082-2/+52
| | | | | | | | | | | | Change-Id: I6d480372eb62ffff46ce3102d9adf3b4a6da1b7d Reviewed-by: Qt CMake Build Bot Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | cmake: implement default qpa plugin behavior for static buildsJean-Michaël Celerier2019-07-051-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is done by adding a DEFAULT_IF argument to add_qt_plugin, which accepts if-evaluated expressions. e.g. add_qt_plugin(myplugin DEFAULT_IF ${foo} STREQUAL ${bar} ... ) so that this mechanism can be reused later if necessary. Change-Id: I7eba9adaaa28e55a4f0f94cf206e868b990027e6 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | Re-generate the CMakeLists.txt and add the prev filesSimon Hausmann2019-06-051-11/+24
| | | | | | | | | | Change-Id: I93ea196bdd5807bccebf81e72332966288a35a4f Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | Merge commit 'dev' into 'wip/cmake-merge'Tobias Hunger2019-04-165-13/+12
|\| | | | | | | Change-Id: I176c40d031be26a1dd1cf08843e448a660598783
| * Merge remote-tracking branch 'origin/5.13' into devFriedemann Kleint2019-03-261-2/+3
| |\ | | | | | | | | | Change-Id: I38389a69411f4549fed432f1181dbe23398b34a2
| | * Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-03-201-2/+3
| | |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/gui/kernel/qplatformintegration.cpp src/gui/kernel/qplatformintegration.h src/plugins/platforms/wasm/qwasmintegration.cpp src/plugins/platforms/xcb/qxcbconnection_screens.cpp Change-Id: I15063d42e9a1e226d9d2d2d372f75141b84c5c1b
| | | * Move screen maintenance functions from QPlatformIntegration to QWSITor Arne Vestbø2019-03-191-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QWindowSystemInterface is the de facto API for any plumbing going from the platform plugin to QtGui. Having the functions as protected members of QPlatformIntegration was idiosyncratic, and resulted in awkward workarounds to be able to call the functions from outside of the QPlatformIntegration subclass. The functions in QPlatformIntegration have been left in, but deprecated so that platform plugins outside of qtbase have a chance to move over to the new QWSI API before they are removed. Change-Id: I327fec460db6b0faaf0ae2a151c20aa30dbe7182 Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
| * | | More nullptr usage in headersKevin Funk2019-03-142-4/+4
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Diff generated by running clang-tidy's modernize-use-nullptr checker on the CMake-based Qt version. Skipping src/3rdparty, examples/, tests/ Change-Id: Ib182074e2e2fd52f63093f73b3e2e4c0cb7af188 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| * / Add a few qAsConst() to range-for to prevent detachmentsSergio Martins2018-12-102-7/+5
| |/ | | | | | | | | | | | | | | | | | | | | places indicated by clazy As a drive-by, fixed minor styling issues in the affected lines. Change-Id: I88d3fc0c8573cde0e61f19a18dd9ea697ee40c34 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Luca Beldi <v.ronin@yahoo.it> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* / cmake: enable vnc platform pluginAlbert Astals Cid2019-02-121-0/+41
|/ | | | | Change-Id: I5015681aff3c9ceb5c0b72571bc8756f3ada104c Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* VNC plugin: explicitly cast int to uint16_t before calling htonsShawn Rutledge2018-05-231-3/+3
| | | | | | | | | Otherwise there is a -Werror=narrowing error on big-endian architectures (where htons does nothing). Task-number: QTBUG-68390 Change-Id: Idb204a81aaedb9f4fde1d5fae406da36c7a1953e Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* platform plugins: port away from QRegion::rects()Marc Mutz2017-12-061-4/+5
| | | | | | | Use begin()/end()/rectCount() instead. Change-Id: I5c642c4a2c64da65d3f37159396c86073818ca95 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* vnc: remove unused qlibinputhandler_p.h includeGatis Paeglis2017-09-051-3/+0
| | | | | | | | It has been there since the first commit 6d70e543aa64fb9d618d899977ce9a7c10967944 of VNC platform plugin, and it has never actually been used. Change-Id: I6a9c4e6a27de042e18650fa88728a1849a99b094 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Fix warning for -no-feature-cursorTasuku Suzuki2017-04-251-0/+4
| | | | | | Change-Id: I58a2bd715ff1767571d076a881872bd5eab2caec Reviewed-by: Stephan Binner <stephan.binner@basyskom.com> Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* Replace last occurrences of LGPL3, LGPL3-COMM headersKai Koehne2017-04-061-13/+16
| | | | | Change-Id: I0e967120d7bdfa00f110b49e6c65d8c6f9b329aa Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
* Merge remote-tracking branch 'origin/5.8' into 5.9Liang Qi2017-03-131-5/+5
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: examples/network/network.pro mkspecs/features/mac/default_post.prf src/corelib/io/qfilesystemengine_win.cpp src/corelib/io/qprocess.cpp src/corelib/io/qprocess.h src/corelib/io/qprocess_p.h src/corelib/io/qprocess_unix.cpp src/corelib/io/qprocess_win.cpp src/corelib/thread/qmutex.cpp src/platformsupport/fontdatabases/windows/windows.pri src/plugins/platforms/eglfs/eglfsdeviceintegration.pro tests/auto/corelib/io/io.pro Change-Id: I8a27e0e141454818bba9c433200a4e84a88d147e
| * put load(qt_plugin) at end of project fileOswald Buddenhagen2017-03-061-5/+5
| | | | | | | | | | | | | | amends a28364bc1. Change-Id: I8e6044abcbfffde8688d87cd3aa722c0c362534c Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* | Fix build with -no-feature-cursorPaul Olav Tvete2017-03-015-9/+19
| | | | | | | | | | Change-Id: I971dbe7827adf0cf06337348a0d011632c364725 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Merge remote-tracking branch 'origin/5.8' into 5.9Liang Qi2017-02-243-5/+10
|\| | | | | | | | | | | | | Conflicts: mkspecs/features/moc.prf Change-Id: Ia71c8e3b3185f7c999bf226d0675051b10b8740b
| * fix VNC platform plugin build on big-endian machinesShawn Rutledge2017-02-173-5/+10
| | | | | | | | | | | | | | Task-number: QTBUG-58734 Change-Id: I3e44ee4be5003acaba2f1b8ed2658a3ff1bd700e Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Dmitry Shachnev <mitya57@gmail.com>
* | vnc: Replace Q_DECL_OVERRIDE by overrideAlexander Volkov2017-01-093-14/+14
| | | | | | | | | | Change-Id: Id06dfc73d1ad41822b2f07b585f32e9e6e5d08f2 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* | vnc: Add missing overrideAlexander Volkov2017-01-062-4/+4
| | | | | | | | | | | | | | ... to fix build with clang. Change-Id: I1ddc1ed3c17f9c0b4ad0d983a28fe821a813e444 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* | Merge remote-tracking branch 'origin/5.8' into devLiang Qi2016-11-171-2/+6
|\| | | | | | | | | | | | | | | Conflicts: mkspecs/features/mac/default_post.prf mkspecs/features/uikit/default_post.prf Change-Id: I2a6f783451f2ac9eb4c1a050f605435d2dacf218
| * Fix build with -no-feature-cursorAndrew Knight2016-11-081-2/+6
| | | | | | | | | | Change-Id: I0644342c56facefab611f981690d0c7a2a460e7e Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* | fb platforms: migrate to fbconvenience changesLaszlo Agocs2016-11-162-5/+5
| | | | | | | | | | | | Task-number: QTBUG-56306 Change-Id: Ia0f48e139ba2c1f8f2167afa145d808093cd3e83 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* | linuxfb: Make first window fullscreen like eglfsLaszlo Agocs2016-11-092-0/+7
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ...unless the legacy behavior is requested via QT_QPA_FB_FORCE_FULLSCREEN=0 or the platform plugin overrides QFbScreen::flags() to return QFbScreen::DontForceFirstWindowToFullScreen. The long pending asymmetry between eglfs and linuxfb is going to end because with the increased focus on the integrated Qt Quick Software backend the expectation for launching apps with -platform linuxfb is to behave in the normal, eglfs style, embedded manner. Forcing every app to handle this manually in QML is silly. Widget applications also benefit since the old non-fullscreen main window approach is pretty much never what is wanted (considering there is no desktop and the content in the background is either garbage or whatever was on the terminal). However, not every fbconvenience-based platform wants this. For example, vnc should remain with the old way where window sizes are not altered. vnc therefore opts out via QFbScreen::flags(). bsdfb follows the linuxfb behavior. [ChangeLog][Important Behavior Changes] The linuxfb and bsdfb platform plugins now follow the behavior of eglfs by making the first window fullscreen. This provides consistency and avoids applications having to make their windows match the screen size manually. The new behavior can be disabled by setting the environment variable QT_QPA_FB_FORCE_FULLSCREEN=0. Task-number: QTBUG-48658 Task-number: QTBUG-56306 Change-Id: I63d917147ce37205e29cbd0c6f37f35c46d4509c Reviewed-by: Louai Al-Khanji <louai.al-khanji@qt.io> Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* Fix change-of-sign warnings caught by ICC 17Thiago Macieira2016-10-231-1/+2
| | | | | | | | error #68: integer conversion resulted in a change of sign Change-Id: I33dc971f005a4848bb8ffffd1475ee53d394acf6 Reviewed-by: Andrew Knight <andrew.knight@intopalo.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>