summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/linuxfb
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'origin/5.9' into 5.11Liang Qi2018-02-141-3/+3
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf src/corelib/animation/qvariantanimation.cpp src/corelib/global/qglobal.cpp src/corelib/global/qlogging.cpp src/corelib/io/qprocess_win.cpp src/corelib/json/qjsonarray.cpp src/corelib/tools/qsimd_p.h src/corelib/tools/qtimezoneprivate_p.h src/corelib/xml/qxmlstream_p.h src/gui/kernel/qsimpledrag.cpp src/gui/kernel/qsimpledrag_p.h src/plugins/generic/generic.pro src/plugins/platforms/cocoa/qcocoamenu.mm src/widgets/styles/qmacstyle_mac.mm tests/auto/concurrent/qtconcurrentmap/BLACKLIST tests/auto/corelib/io/qfileinfo/tst_qfileinfo.cpp tests/auto/corelib/tools/qdatetime/tst_qdatetime.cpp tests/auto/gui/kernel/qwindow/BLACKLIST tests/auto/widgets/dialogs/qmessagebox/BLACKLIST Change-Id: I508d686cf20f7f8cc6a7119b9bc7c3bbb505c58e
| * Support for Q_OS_ANDROID_EMBEDDED and android-embedded build flagsOtto Ryynänen2018-01-201-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | The Embedded Android build (Boot to Qt Android injection) is defined by having both Q_OS_ANDROID and Q_OS_ANDROID_EMBEDDED flags defined, as well as having Qt config android-embedded. This commit enables the possibility to build embedded Android builds. (i.e. Qt build for Android baselayer only, without JNI) Change-Id: I8406e959fdf1c8d9efebbbe53f1a391fa25f336a Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* | linuxfb/drm: Pick up the format from the config fileLaszlo Agocs2017-10-171-10/+66
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Like eglfs, linuxfb (when QT_QPA_FB_DRM=1) can be configured to use a buffer and fb of a format other than the default XRGB8888. Most notably, adding "mode": "rgb565" to the first output in the config file pointed to by QT_QPA_KMS_CONFIG will switch over to using 16 bpp dumb buffers and a QImage::Format_RGB16 wrapping QImage. Note that linuxfb/drm has no multiple output support atm, so only the first output is taken into account. The BGR variants (e.g. xbgr8888) are available but cause no difference when it comes to Qt's painting (still maps to RGB32 etc.). This may need to be revisited later. Has no effect on the regular (fbdev) path in linuxfb. Task-number: QTBUG-63272 Change-Id: Ie7d0b05e3449b336104332d9568dab60b4bedaa8 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* | Replace Q_DECL_OVERRIDE with override where possibleKevin Funk2017-09-192-10/+10
|/ | | | | | | | | | | | | | | | Remaining uses of Q_DECL_OVERRIDE are in: src/corelib/global/qcompilerdetection.h src/corelib/global/qglobal.cpp doc/global/qt-cpp-defines.qdocconf (definition and documentation of Q_DECL_OVERRIDE) tests/manual/qcursor/qcursorhighdpi/main.cpp (a test executable compilable both under Qt4 and Qt5) Change-Id: Ib9b05d829add69e98a86238274b6a1fcb19b49ba Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* Use correct DRM event context versionJonathan Liu2017-07-261-1/+1
| | | | | | | | | | | | | | Explicitly declare which DRM event context version we want to use, rather than just the latest one libdrm supports. New versions may change semantics, or extend the structure, in ways we're unaware of. Stick with version 2, which is the version that introduced page_flip_handler. Change-Id: I1d2066d5ab485ea571f016a8660829f435821c82 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Fix warning for -no-feature-evdevTasuku Suzuki2017-04-261-2/+3
| | | | | Change-Id: I95af276a6d21e67a980cce1d8c6e41900ece7f31 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* Fix build with libdrm >= 2.4.78Thiago Macieira2017-04-171-5/+5
| | | | | | | | | | drmEventContext has grown by one pointer, so the build fails with an error about a member without initialization. qeglfskmsgbmdevice.cpp:147:5: error: missing initializer for member ‘_drmEventContext::page_flip_handler2’ [-Werror=missing-field-initializers] Change-Id: I0e1a09998253489388abfffd14b6014b1ddc90e1 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* DRM/KMS config: add support for specifying the primary screenLaszlo Agocs2017-01-181-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Not having a way to say that a given output should be registered as the primary screen (meaning it comes first in the QGuiApplication::screens() list, emits primaryScreenChanged() signal etc.) can be a problem for some systems. The order of the outputs array in the JSON configuration file is not relevant in this respect since screens are registered either in the original DRM connector order, or, when the virtual desktop layout is specified via virtualIndex, in the order specified by virtualIndex. The primary screen status is independent from this. Therefore, add a new, optional boolean property: primary. For example, the following forces the QScreen corresponding to the VGA output to be the primary screen on the Renesas R-Car H2 board, even though by default it is the HDMI one that happens to be reported first by the system. { "device": "/dev/dri/card0", "outputs": [ { "name": "HDMI1", "mode": "1280x720" }, { "name": "VGA1", "mode": "1280x720", "primary": true }, { "name": "LVDS1", "mode": "off" } ] } In addition, improve the quality of the logging output. [ChangeLog][Platform Specific Changes] Added support for specifying the primary screen in the JSON config file in QT_QPA_EGLFS_KMS_CONFIG when running on DRM/KMS with eglfs. Task-number: QTBUG-57980 Change-Id: Iba490800dee3b7162c68c4d40b0822f3f6d81b69 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* linuxfb: add experimental support for DRM dumb buffersLaszlo Agocs2016-11-246-9/+505
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a QFbScreen implementation that uses DRM dumb buffers and page flipping, thus implementing a vsynced, double (triple) buffered plain software platform plugin. Besides better supporting systems that by now only do fbdev via (possibly buggy) emulation, this can also be an enabler for implementing certain types of 2D accelerated compositors e.g. for Wayland. Enable with QT_QPA_FB_DRM=1. Right now there is no good way to autodetect the support for dumb buffers early enough so the default is always the traditional fbdev path. Long-term this will also enable proper multi-display support like with eglfs' DRM backends. Multiple QScreens are not yet reported currently due to the single-screen limitations of fbconvenience. The generic DRM code is shared with eglfs, meaning configuration happens via the JSON file specified in QT_QPA_(EGLFS_)KMS_CONFIG. This allows changing the screen resolution, disabling outputs, etc. [ChangeLog][Platform Specific Changes][linuxfb] Added experimental support for DRM dumb buffers. Enable by setting the environment variable QT_QPA_FB_DRM to 1. Task-number: QTBUG-56306 Change-Id: I4bdcf16fff67412183220dffa0c4ea235c5cad3d Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Merge remote-tracking branch 'origin/5.8' into devLiang Qi2016-11-171-5/+7
|\ | | | | | | | | | | | | | | Conflicts: mkspecs/features/mac/default_post.prf mkspecs/features/uikit/default_post.prf Change-Id: I2a6f783451f2ac9eb4c1a050f605435d2dacf218
| * Merge remote-tracking branch 'origin/5.7' into 5.8Liang Qi2016-11-161-5/+7
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: mkspecs/common/linux-android.conf src/gui/opengl/qopengl.h src/network/socket/qnativesocketengine_winrt.cpp src/network/socket/qnativesocketengine_winrt_p.h src/plugins/platforms/cocoa/qcocoawindow.mm src/plugins/platforms/eglfs/api/qeglfsintegration.cpp src/plugins/platforms/linuxfb/qlinuxfbintegration.cpp sync.profile Change-Id: If70aaf2c49df91157b864cf0d7d9513546c9bec4
| | * Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-11-151-6/+8
| | |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: configure src/plugins/platforms/eglfs/qeglfsintegration.cpp src/plugins/platforms/linuxfb/qlinuxfbintegration.cpp Change-Id: Id2da7c775439adb62646d5b741ee7c638042b34b
| | | * Do not guard tslib with evdevLaszlo Agocs2016-11-101-6/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | That relation is incorrect. We can have tslib support without evdev. Task-number: QTBUG-54998 Change-Id: I2c09bad73210fa4a13000077480c70365d482e2e Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* | | | fb platforms: migrate to fbconvenience changesLaszlo Agocs2016-11-161-1/+1
|/ / / | | | | | | | | | | | | | | | Task-number: QTBUG-56306 Change-Id: Ia0f48e139ba2c1f8f2167afa145d808093cd3e83 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* | | rely on transitive library dependencies for freetype/fontconfigOswald Buddenhagen2016-10-151-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | so far, we have been delaying the linking, because we didn't want to make the monolithic platformsupport module pull in spurious dependencies. however, now that the module was split, there is no need to play such games any more. a nice effect of this is that the hideous qpa/*unixfontdatabase.prf files disappear, and finally freetype_dependency.pri also becomes trivial and is thus inlined. Change-Id: I255376d592625542310a31222eb6ac965943df99 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | | port to modularized platformsupport librariesOswald Buddenhagen2016-10-154-16/+22
| | | | | | | | | | | | | | | Change-Id: I20eb0e33abfd70b6a5240e7b6b0aa0425f2d2ee7 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | | linuxfb plugin: eradicate Q_FOREACH loopsMarc Mutz2016-08-272-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | ... by replacing them with C++11 range-for loops. Then mark the plugin as QT_NO_FOREACH. Change-Id: I80a18334b1e0c5bbd44dfe45eea80591d478a8d6 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | | Rework privateFeatureLars Knoll2016-08-191-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | privateFeature would add QT_NO_FEATURE to the DEFINES in the private .pri file, which was somewhat inelegant. Additionally, it would add the feature to the _public_ QT_CONFIG variable, which was plain wrong. Replace the implementation with the one just introduced for publicFeature, with the difference that the features are written to the private files instead. As this entirely disposes of the old system, all usages in the project files need to be replaced atomically as well. Change-Id: I506b5d41054410659ea503bc6901736cd5edec6e Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | | Merge remote-tracking branch 'origin/5.7' into devLiang Qi2016-05-231-0/+2
|\ \ \ | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: mkspecs/wince80colibri-armv7-msvc2012/qmake.conf qmake/generators/win32/msvc_vcproj.cpp src/corelib/global/qnamespace.h src/corelib/global/qnamespace.qdoc src/corelib/io/qfsfileengine_win.cpp src/corelib/tools/tools.pri src/network/ssl/qsslconfiguration_p.h src/plugins/platforms/linuxfb/qlinuxfbscreen.cpp src/plugins/platforms/windows/windows.pri src/src.pro src/tools/bootstrap/bootstrap.pro src/tools/uic/cpp/cppwriteinitialization.cpp src/widgets/dialogs/qfilesystemmodel.cpp tests/auto/testlib/selftests/expected_cmptest.teamcity tests/auto/testlib/selftests/expected_cmptest.txt Change-Id: I4d2ac78f0dcc97f008186bbbc769c6fe588ab0e5
| * | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-05-191-2/+5
| |\ \ | | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: configure src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp src/network/access/qnetworkaccessmanager.cpp src/plugins/platforms/cocoa/qcocoacolordialoghelper.mm src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmcursor.cpp src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmcursor.h src/widgets/widgets/qlineedit_p.cpp src/widgets/widgets/qlineedit_p.h src/winmain/winmain.pro tests/auto/corelib/io/qstorageinfo/tst_qstorageinfo.cpp tests/auto/dbus/qdbusconnection/tst_qdbusconnection.cpp tests/auto/dbus/qdbusconnection/tst_qdbusconnection.h tests/auto/testlib/selftests/expected_cmptest.teamcity tests/auto/testlib/selftests/expected_cmptest.txt tests/auto/widgets/itemviews/qtableview/tst_qtableview.cpp tools/configure/configureapp.cpp Change-Id: Ib9997b0d0f91946e4081d36c0c6b696c5c983b2a
| | * linuxfb: Support transparencyLaszlo Agocs2016-05-091-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Always clearing to opaque black makes it impossible to create semi-transparent overlays with linuxfb. Instead, behave like other platforms' backingstores: if the target image has an alpha channel, clear to transparent instead and set the correct composition mode. Task-number: QTBUG-52475 Change-Id: I2db4588e0112e200a3aa5eed49f806c37d7ca8b5 Reviewed-by: Louai Al-Khanji <louai.al-khanji@qt.io>
* | | Merge remote-tracking branch 'origin/5.7' into devLiang Qi2016-05-121-14/+12
|\ \ \ | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: config_help.txt configure src/corelib/io/qprocess_wince.cpp src/plugins/platforms/windows/qwindowstheme.cpp src/plugins/platforms/xcb/qxcbbackingstore.cpp tests/auto/corelib/tools/qtimezone/BLACKLIST tests/auto/network/socket/qudpsocket/tst_qudpsocket.cpp tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp Change-Id: I26644d1cb3b78412c8ff285e2a55bea1bd641c01
| * | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-05-061-14/+12
| |\ \ | | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: examples/qtestlib/tutorial5/containers.cpp examples/widgets/tools/tools.pro src/corelib/io/qprocess.cpp src/corelib/io/qprocess_unix.cpp src/corelib/io/qprocess_win.cpp src/network/kernel/qdnslookup_unix.cpp src/plugins/platforms/xcb/qxcbconnection_xi2.cpp src/testlib/qtestcase.cpp tools/configure/configureapp.cpp Change-Id: I838ae7f082535a67a4a53aa13a21ba5580758be8
| | * QLinuxFbScreen: fix uninitialized member warningsEdward Welbourne2016-05-031-17/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Prompted by Coverity CID 11720 (allegedly recently new in dev but long-standing in 5.6). Even assuming the class is used correctly - test initialize() and only use if that succeeded - the destructor would have passed uninitialized arguments to munmap() and ioctl(). Noticed a double close along the way: it's been fixed on dev but should have been fixed in 5.6, too. Documented why ioctl() failure in switchToGraphicsMode() should at least do no harm. Change-Id: Ie26a9eefa435b5ff5b1a02e03e29469b8db72d3c Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* | | Merge remote-tracking branch 'origin/5.7' into devLiang Qi2016-04-051-3/+3
|\ \ \ | |/ / | | | | | | | | | | | | | | | | | | | | | Conflicts: examples/corelib/ipc/ipc.pro src/plugins/platforms/xcb/qxcbbackingstore.cpp tests/auto/corelib/tools/qcommandlineparser/tst_qcommandlineparser.cpp Change-Id: Ia006e10ff1732fe78f90138c41f05b59b49486cf
| * | Remove the traces of the discontinued android-no-sdk platformEirik Aavitsland2016-03-301-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | Cleaning out the workarounds for the discontinued "Embedded Android" platform of Boot2Qt. Change-Id: I0ff9d770e82a43457fb7e5da0428f4597ead4038 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | | Merge remote-tracking branch 'origin/5.7' into devLiang Qi2016-03-221-5/+5
|\ \ \ | |/ / | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: configure mkspecs/common/wince/qplatformdefs.h src/plugins/platforms/directfb/qdirectfbbackingstore.cpp src/plugins/platforms/xcb/qxcbbackingstore.cpp Change-Id: Ied4d31264a9afca9514b51a7eb1494c28712793c
| * | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-03-111-5/+5
| |\ \ | | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change partially reverts 1bfc7f68 about QT_HAS_BUILTIN define and undef in src/corelib/tools/qsimd_p.h. This change is also squashed with "Fall back to c++11 standard compiler flag for host builds" which is done by Peter Seiderer. Conflicts: mkspecs/features/default_post.prf src/3rdparty/sqlite/0001-Fixing-the-SQLite3-build-for-WEC2013-again.patch src/3rdparty/sqlite/sqlite3.c src/corelib/tools/qsimd_p.h src/gui/kernel/qevent.cpp src/gui/kernel/qwindowsysteminterface.cpp src/gui/kernel/qwindowsysteminterface_p.h src/plugins/bearer/blackberry/blackberry.pro src/plugins/platforms/cocoa/qcocoasystemsettings.mm src/plugins/platformthemes/gtk2/gtk2.pro src/plugins/styles/bb10style/bb10style.pro src/sql/drivers/sqlite2/qsql_sqlite2.cpp tools/configure/configureapp.cpp Task-number: QTBUG-51644 Done-with: Peter Seiderer <ps.report@gmx.net> Change-Id: I6100d6ace31b2e8d41a95f0b5d5ebf8f1fd88b44
| | * consistently put {qt,qml}_{module,plugin} at the end of project filesOswald Buddenhagen2016-03-071-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | this fixes static builds by ensuring that all dependencies are exported. Task-number: QTBUG-51071 Change-Id: Icbce502dcbcb4d4b4d922c42679f44e2cc930bf3 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | | QtOpenGL/plugins/platformsupport: use new QRegion::begin()/end() instead of ↵Marc Mutz2016-03-021-3/+2
|/ / | | | | | | | | | | | | | | | | | | rect() Saves e.g. ~900b and ~2900b in text size in QtOpenGL and XcbQpa libs, resp., on optimized GCC 5.3 Linux AMD64 builds. Change-Id: Id904689164ca32df41118a23747c70048d8e6604 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* | Updated license headersJani Heikkinen2016-01-155-70/+100
| | | | | | | | | | | | | | | | | | | | | | From Qt 5.7 -> LGPL v2.1 isn't an option anymore, see http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/ Updated license headers to use new LGPL header instead of LGPL21 one (in those files which will be under LGPL v3) Change-Id: I046ec3e47b1876cd7b4b0353a576b352e3a946d9 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* | Fix double close.Frank Meerkoetter2015-12-261-3/+1
| | | | | | | | | | | | | | | | resetTty() already does close the fd. Fixes coverity CID89074. Change-Id: I2d5fe9bf40b03ed5c249713c64f1dc2ae58ea84b Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* | qevent.h: Add fixme comments to remove include directives for Qt 6.Friedemann Kleint2015-10-021-0/+1
|/ | | | | | | | Mark include directives in qevent.h for removal and preemptively add missing headers in code base. Change-Id: I81011d7bfad4a09d80deeda6d1bed67b5c0e63c2 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* linuxfb: Use libinput by default when availableLaszlo Agocs2015-08-181-0/+11
| | | | | | | | | | Can be overridden by setting QT_QPA_FB_NO_LIBINPUT. On systems where libinput is present it is usually a better choice to rely on it instead of evdev*. Change-Id: I8532c923bacd605434cfca1c7e314cb95d41b372 Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
* QPA plugins: Use _iid macros instead of strings in Q_PLUGIN_METADATA.Friedemann Kleint2015-05-131-1/+1
| | | | | | | | | This makes it easier to change the version numbers by changing the macros in QtGui. Task-number: QTBUG-46009 Change-Id: I94c9591ec6f7c9173a698df9e1fe8fd6a904caf4 Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
* evdevtouch: Add hotplug supportLaszlo Agocs2015-04-091-2/+2
| | | | | | | | | | | Follow the exact same structure as evdevmouse and keyboard. We must do monitoring via device discovery just like we do for keyboards and mice. Otherwise the usage of touchscreens that connect via USB or can be turned on/off independently from the board becomes troublesome. Change-Id: I2de3b519e8d617b0612e5df486e481bbc09b9c8c Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
* eglfs: Disable the blinking cursorLaszlo Agocs2015-03-231-7/+0
| | | | | | | | Make eglfs and linuxfb use the same code via QFbVtHandler. Task-number: QTBUG-45106 Change-Id: I876bbf5f13bab6d4a81f616c01f15f9c98edf5fc Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
* Support grabWindow() in linuxfbLaszlo Agocs2015-03-162-1/+30
| | | | | | Task-number: QTBUG-44465 Change-Id: Id4b0fcbcce3e005c1f147fa227ef987daac20fd5 Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
* Merge remote-tracking branch 'origin/5.4' into 5.5Frederik Gladhorn2015-02-242-0/+10
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: examples/xml/htmlinfo/simpleexample.html examples/xml/rsslisting/rsslisting.cpp qmake/generators/win32/msbuild_objectmodel.cpp src/3rdparty/harfbuzz-ng/src/hb-private.hh src/corelib/global/qlogging.cpp src/corelib/io/qstorageinfo_unix.cpp src/corelib/thread/qwaitcondition_unix.cpp src/gui/kernel/qguiapplication.cpp src/plugins/platforms/linuxfb/qlinuxfbintegration.cpp src/testlib/doc/src/qt-webpages.qdoc tests/auto/other/qaccessibility/tst_qaccessibility.cpp Change-Id: Ib272ff0bc30a1a5d51275eb3cd2f201dc82c11ff
| * Provide a native interface object from linuxfbLaszlo Agocs2015-02-112-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Recent code in font support started to use the platformNativeInterface() return value without checking for null. Most platform plugins, with the notable exception of linuxfb and the minimal ones, provide an object. Start providing a dummy object from linuxfb too. This is more sensible then adding null checks everywhere. This will prevent crashing with linuxfb on startup. Task-number: QTBUG-44414 Change-Id: I48912132e1f8ad52e2a94c3d765dacc7b16f309a Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
* | Update copyright headersJani Heikkinen2015-02-115-35/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Qt copyrights are now in The Qt Company, so we could update the source code headers accordingly. In the same go we should also fix the links to point to qt.io. Outdated header.LGPL removed (use header.LGPL21 instead) Old header.LGPL3 renamed to header.LGPL3-COMM to match actual licensing combination. New header.LGPL-COMM taken in the use file which were using old header.LGPL3 (src/plugins/platforms/android/extract.cpp) Added new header.LGPL3 containing Commercial + LGPLv3 + GPLv2 license combination Change-Id: I6f49b819a8a20cc4f88b794a8f6726d975e8ffbe Reviewed-by: Matti Paaso <matti.paaso@theqtcompany.com>
* | Unify input device hotplugging support for embeddedLaszlo Agocs2015-01-212-26/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On embedded the mouse cursor will now appear and reappear regardless of how the input handling code is loaded (via a generic plugin or compiled-in to the platform plugin). Instead of passing around QDeviceDiscovery instances that only works when compiling-in the code into the platform plugin, introduce a new internal central QInputDeviceManager. The single instance of this provides a place to store any future input device related signals and properties. Also introduce mouse hotplugging support to linuxfb. [ChangeLog][QtGui] The mouse cursor on Embedded Linux is now handling hotplugging correctly with eglfs and linuxfb regardless of how the input handling code is loaded (via a generic plugin or built in to the platform plugin). Change-Id: I147c1b04a193baf216598015264f2c06e1b20f84 Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
* | Compile in evdev code to linuxfbLaszlo Agocs2015-01-052-1/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make it compatible with eglfs. The behavior is the same: By default mouse, keyboard and touch will all be initialized and, when having libudev support, discovered automatically. The environment variables QT_QPA_FB_DISABLE_INPUT and QT_QPA_FB_TSLIB can be used to used to disable the built-in input handlers and to force tslib instead of evdev, respectively. This allows embedded systems and applications to easily fall back from eglfs to linuxfb on devices that are not rendering via OpenGL. Dynamic hiding/showing of the mouse cursor is to be done separately, here we provide the necessary device discovery hooks only. [ChangeLog][QtGui] The linuxfb platform plugin's input device handling is now compatible with eglfs. The evdev keyboard, mouse and touch code is compiled in by default. Change-Id: I44bc661c53ae78c39b0f30486a475b4e639ab2d6 Reviewed-by: Pasi Petäjäjärvi <pasi.petajajarvi@theqtcompany.com> Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
* | Add a function for QPA plugins to explicitly destroy QScreensGiulio Camuffo2014-12-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously QPlatformScreen was automatically deleting its QScreen in ~QPlatformScreen(). That means that we cannot use QScreen's methods when the screen is being removed, because doing so would call virtual methods of QPlatformScreen. By that point the QPlatformScreen subclass object does not exist anymore, and we call the default implementation instead of the subclassed one, or get a crash for the pure virtual methods. This happens for example when removing a screen which contains a QWindow with some QML item using QQuickScreenAttached. This patch adds a QPlatformIntegration::destroyScreen() function, which deletes the QScreen and later the QPlatformScreen. ~QPlatformScreen will still delete the QScreen if it was not deleted with destroyScreen(), so code not ported to the new approach will continue to work as before, with only a warning added. Task-number: QTBUG-41141 Change-Id: Ie4a03dee08ceb4c3e94a81875411f6f723273fe1 Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* | Add Q_DECL_OVERRIDE in the src subdirectoryOlivier Goffart2014-12-032-2/+2
|/ | | | | | | | | | Done automatically with clang-modernize on linux (But does not add Q_DECL_OVERRIDE to the function that are marked as inline because it a compilation error with MSVC2010) Change-Id: I2196ee26e3e6fe20816834ecea5ea389eeab3171 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Reorganize devicediscovery headerLaszlo Agocs2014-11-261-1/+0
| | | | | | | | | | | | | | | | As pointed out in 13b939c7f41bceb2061e549923eab242326e9bb5 the approach qdevicediscovery_p.h takes is just wrong. The defines it relies on will often be missing when the header is included from random places in qtbase. This results in different class layouts. It was working only because the interface of the class is very limited and the public part was matching regardless of having the macro defined. This is now corrected by introducing subclasses and a common, non-variated base class. QDEVICEDISCOVERY_UDEV is removed completely. Change-Id: I9c83b5b041440a3a6ea3a604eee4a325d4d74439 Reviewed-by: Louai Al-Khanji <louai.al-khanji@theqtcompany.com> Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
* Fix warning about QDeviceDiscovery violating ODR ruleThiago Macieira2014-11-231-0/+1
| | | | | | | | | | | | | | | | When compiling with GCC 4.9's LTO, the compiler realizes that the class looks different in two different compilation units and prints a warning. Adding the necessary #define will make sure that the warning isn't printed. It's possible the warning indicates a real problem, if the class actually got used in those two plugins. I wouldn't know. QtPlatformSupport/private/.../qdevicediscovery_p.h:66:7: warning: type ‘struct QDeviceDiscovery’ violates one definition rule .moc/.../qdevicediscovery_p.h:66:7: note: a type with the same name but different layout is defined in another translation unit Change-Id: I73ca8e553e392b8d368f0deaa318d3e6635d73e1 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* Update license headers and add new license filesMatti Paaso2014-09-245-95/+55
| | | | | | | | | - Renamed LICENSE.LGPL to LICENSE.LGPLv21 - Added LICENSE.LGPLv3 - Removed LICENSE.GPL Change-Id: Iec3406e3eb3f133be549092015cefe33d259a3f2 Reviewed-by: Iikka Eklund <iikka.eklund@digia.com>
* deprecate import_qpa_plugin and qpa_minimal_pluginOswald Buddenhagen2014-04-241-0/+1
| | | | | | | | they have been fully superseded by 4255ba40ab073afcf2a095b135883612859af4c2. Change-Id: If7ac14c8b7d3cf00fb0cb916036b62eb86c9cee0 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Fix up warnings in linuxfbLaszlo Agocs2014-03-251-7/+9
| | | | | | | | | | | Remove the warning about the graphics mode switch. In some environments it just pollutes the output since it will always fail. Change the errno-based warnings to qErrnoWarning. Change-Id: Ib7a7bfe64eda29996db288e52d369dcfad76c096 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>