summaryrefslogtreecommitdiffstats
path: root/src/platformsupport
Commit message (Collapse)AuthorAgeFilesLines
* Support multiple desktop names in XDG_CURRENT_DESKTOPDmitry Shachnev2014-12-211-12/+17
| | | | | | | | | | | | | | | | | According to the Desktop Entry Specification, “If $XDG_CURRENT_DESKTOP is set then it contains a colon-separated list of strings”. For example, on GNOME Flashback session that variable is set to “GNOME-Flashback:GNOME”. The value returned by QGenericUnixServices::desktopEnvironment() is in most cases the uppercase variant of $XDG_CURRENT_DESKTOP variable. In qgenericunixthemes.cpp, we need to support multiple names in the return result of that function. If at least one part is in the list of Gtk+-based desktop environments, then we should use gtk2 platform theme. Change-Id: I0c9de68756d41b031e822be8cf100ca5c0b202ae Reviewed-by: David Faure <david.faure@kdab.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* Add libinput supportLaszlo Agocs2014-12-2010-0/+1099
| | | | | | | | | | | | | | Supports relative pointer, axis, keyboard and touch events. libinput support is only available in combination with libudev. libxkbcommon is required to perform key mapping. For now the default keymap is used always (selected when building xkbcommon). [ChangeLog][QtGui] Added a plugin to get mouse, keyboard and touch events via libinput. Change-Id: I469d8992c0cd3e79225cefaeb931697baf86a92b Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* Merge remote-tracking branch 'origin/5.4' into devSimon Hausmann2014-12-183-6/+6
|\ | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/global/qglobal.h src/platformsupport/platformcompositor/qopenglcompositor.cpp src/platformsupport/platformcompositor/qopenglcompositorbackingstore.cpp tests/auto/gui/kernel/qwindow/tst_qwindow.cpp Change-Id: I5422868500be695584a496dbbbc719d146bc572d
| * Prevent continuous painting with viewport QOpenGLWidgetLaszlo Agocs2014-12-182-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add the source widget to the texture list (may be null for custom compositor implementations that add textures not belonging to actual widgets). This allows us to do proper checks with the dirtyRenderToTextureWidgets list. As a result paint events are only sent to a QOpenGLWidget if (1) there was an update() for it or (2) it was actually marked dirty. (2) was previously behaving differently: the widget got a paint event when anything in the window has changed. This is fine for naive animating OpenGL code but less ideal for QGraphicsView. Bool properties like stacksOnTop are now stored in a flags value to prevent future explosion of texture list fields and parameters. Task-number: QTBUG-43178 Change-Id: I48cbcf93df72ac682c9b5d64982a8b648fe21ef3 Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com> Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
| * Change bugreports.qt-project.org -> bugreports.qt.ioAlex Blasche2014-12-181-1/+1
| | | | | | | | | | | | | | The Qt bug tracker URL changes as part of the qt.io transition Change-Id: Icb4ab198943b93639b5e3a8d99262303785c6459 Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
* | Drop modularization leftoversKonstantin Ritt2014-12-121-3/+0
| | | | | | | | | | Change-Id: I39c9e1fa44993fc024fed9309bea0da6f4534592 Reviewed-by: Pierre Rossi <pierre.rossi@theqtcompany.com>
* | Add QFont::Weight enum valuesPierre Rossi2014-12-125-78/+59
| | | | | | | | | | | | | | | | | | | | And try to make good use of them in order to match the QFont request more closely. Task-number: QTBUG-38482 Change-Id: I768dfa8828e370d77a1c17ecf4796d750b3edd9b Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
* | Make more font databases report fontsAlwaysScalable()Konstantin Ritt2014-12-092-0/+6
| | | | | | | | | | | | | | | | DirectWrite and CoreText supports scaling of non-scalable fonts. Change-Id: I910c6a35e3d94c31efa9b26dd89bcb027951ac99 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@theqtcompany.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
* | Add Q_DECL_OVERRIDE in the src subdirectoryOlivier Goffart2014-12-0313-44/+44
| | | | | | | | | | | | | | | | | | | | 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>
* | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-11-279-82/+256
|\| | | | | | | Change-Id: Id20053d261b4fbbcc0ac8ba49dd3ef2253fa4b95
| * Reorganize devicediscovery headerLaszlo Agocs2014-11-268-67/+235
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * Windows: Respect hinting preferences with FreeType engine.Sérgio Martins2014-11-251-15/+21
| | | | | | | | | | | | | | | | | | | | One of the fontEngine()'s methods was missing hinting. This bug only manifests on Windows because on Linux QFontConfigDataBase already sets hinting on both code paths. Task-number: QTBUG-42534 Change-Id: I3a66a9d4aaa5e390fee305a3d5aacfeba38a1fc3 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* | QFontconfigDatabase weight-matching refactoringPierre Rossi2014-11-271-19/+22
| | | | | | | | | | | | | | | | | | Factor out the piece-wise linear weight matching in an attempt to make it less error-prone to add new weights to the QFont::Weight enum. Change-Id: I5fefdba67a60a061f8b9104393194a27bc8c6e35 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
* | Add generic OpenGL compositor and backingstore bitsLaszlo Agocs2014-11-2612-212/+243
| | | | | | | | | | | | | | | | By removing the EGL(FS) dependencies we get classes that can be used by any platform plugin that runs without a windowing system. Change-Id: If99b42de5a4da02bbef80863609b6d92c6734613 Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
* | Merge QFontEngineMultiBasicImpl and QFontEngineMultiKonstantin Ritt2014-11-262-4/+4
| | | | | | | | | | | | | | Minor refactoring also improves the behavior and the code readability. Change-Id: Id89dd224f4132a4c0dfbc16f414ef42cc8d8a4da Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-11-245-11/+37
|\| | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/io/qiodevice.cpp src/plugins/bearer/linux_common/qofonoservice_linux.cpp src/plugins/bearer/linux_common/qofonoservice_linux_p.h src/plugins/platforms/android/qandroidplatformtheme.cpp src/tools/bootstrap/bootstrap.pro src/widgets/styles/qmacstyle_mac.mm Change-Id: Ia02aab6c4598ce74e9c30bb4666d5e2ef000f99b
| * OSX: implement QFontMetrics::maxWidth().David Faure2014-11-241-1/+4
| | | | | | | | | | | | | | | | | | | | | | CoreText doesn't seem to provide us with a "maximum advance" value, but 0 is really wrong, it leads to QLineEdit::minimumSizeHint() being 0 since it's based on maxWidth(). It even led to a negative min width with setTextMargins(-1, 0, -1, 0). Change-Id: I4faf8ecfb6d91e9dff66ec63651d003014503cb4 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
| * Merge remote-tracking branch 'origin/5.4.0' into 5.4Frederik Gladhorn2014-11-211-5/+26
| |\ | | | | | | | | | Change-Id: I95f235a66ce2e9b1fa435c0f911c6f7e811755f0
| | * eglfs: ifdef linux specific functionality from convenience functionsPasi Petäjäjärvi2014-11-131-5/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Because change a093204f07f276bc8e7b4fedf4af0e1369f55734 qeglfshooks_stub.cpp don't compile anymore on any other *nix platform than linux as those functions have been set linux specific only. Change-Id: I339672b1bf2745511076030cc1fe13dc7f2356ff Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
| * | Allow to use FT_Library_SetLcdFilter in bundled FreeType.Sérgio Martins2014-11-131-0/+1
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | For a default Qt build this change is a NOP, ftlcdfil.c is ifdefed by FT_CONFIG_OPTION_SUBPIXEL_RENDERING, which we don't define. But for users who changed ftoption.h, or are using 3rdparty/freetype/devel/ftoption.h instead of 3rdparty/freetype/include/freetype/config/ftoption.h they can now enable Subpixel rendering without getting a build error. Change-Id: I547e8a20514fcb97e4e56cb0100e9c2ed525f483 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
| * OS X: fix CFString leaks in mime classesDyami Caliri2014-10-301-4/+5
| | | | | | | | | | | | | | | | Some CFStringRefs created with CFStringCreate* methods were not being released. Using the QCFString helper class to perform auto release. Change-Id: I36d15c0d35118524089e99ea3cd53c41342d6308 Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
| * fontconfig: do not assume the path to a font file is Latin1-encodedShawn Rutledge2014-10-291-1/+1
| | | | | | | | | | | | | | Task-number: QTBUG-42249 Change-Id: Ie5d41ed26a69103991a5189c4f42aa37ac73de26 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
* | QGenericUnixTheme::xdgIconThemePaths: add /usr/share/pixmapsAntti Kaijanmäki2014-10-291-0/+5
| | | | | | | | | | | | Change-Id: Iebc21da5c0e5a0fccfb3a7ab2ad1d0ac0771fb43 Task-number: QTBUG-33123 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-10-274-5/+24
|\| | | | | | | | | | | | | Conflicts: src/gui/text/qfontdatabase.cpp Change-Id: I6ac1f55faa22b8e7b591386fb67f0333d0ea443d
| * Add support for more font weights internallyPierre Rossi2014-10-242-1/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We should have more font weights in QFont::Weight to allow for finer grained control. For the time being, we can simply use intermediate weights to better support the different font weights falling in between the ones defined in QFont::Weight. Also amend the documentation to clarify the fact that QFont supports and can return weights falling outside the predefined values, which is already the case (e.g. when using fontconfig). Done-with: Gabriel de Dietrich Change-Id: I693cdd48b8b77e7ed550cdf991227bcb819d8e7b Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
| * Respect NoSubpixelAntialias in QCoreTextFontEngine::imageForGlyphAllan Sandfeld Jensen2014-10-241-3/+4
| | | | | | | | | | | | | | | | | | | | Adding handling of the new QFont enum NoSubpixelAntialias in QCoreTextFontEngine::imageForGlyph. Task-number: QTBUG-40396 Change-Id: I421c38554360f5e2f822a18117190456c4d04b25 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com> Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
| * eglfs: Do not flush input events when updating the cursorLaszlo Agocs2014-10-221-1/+1
| | | | | | | | | | | | | | Task-number: QTBUG-42079 Change-Id: Ica806a090db74b4a1c34421334a28d7efd002b35 Reviewed-by: Jonathan Liu <net147@gmail.com> Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
* | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-10-205-152/+153
|\| | | | | | | Change-Id: If7e51514ed6832750e3ad967e4d322ccf920d2bb
| * CoreText font database: Use dynamic type on iOS to resolve theme fontsRichard Moe Gustavsen2014-10-191-5/+45
| | | | | | | | | | | | | | | | | | Use Dynamic Type to resolve theme fonts, so that we get the correct font sizes and styling based on user preferences in Settings app. Change-Id: I2222199a5ba21badb2e3696993eee503e720c476 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
| * Make font hinting and antialiasing size dependent when using FontConfigAlexander Volkov2014-10-171-0/+3
| | | | | | | | | | | | | | | | | | Add the pixel size of the font to the search pattern to get size dependent font settings. This patch allows to take into account KDE settings for font sizes which should be excluded from antialiasing. Change-Id: I8bd8b7b3d585009d0a39db631cd02b7970537f5c Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
| * Accessibility Linux: Make a full copy of a key eventAlexander Volkov2014-10-161-1/+3
| | | | | | | | | | | | | | | | Otherwise native values (scan code, modifiers, virtual key) of the key event will be lost if an event listener is registered. Change-Id: I5eebb1f91ad7de6801f7efb0bf0891c4430f9cf5 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
| * Reduce code duplication in QFontconfigDatabaseAlexander Volkov2014-10-162-146/+97
| | | | | | | | | | | | | | Extract common part from fontEngine() methods to setupFontEngine(). Change-Id: Id4aee43b2a477f9fd40dc564d96a2335bfde9e22 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
| * Print warning when unable to query physical screen sizeGatis Paeglis2014-10-101-0/+5
| | | | | | | | | | | | | | | | This warning was removed when re-factoring code in: 328f2f9c35f3cc5e7049a060a608c3f72876484a Change-Id: I5a9d7fbbf2b78e6e80a79478f4e9fb08ccaec431 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* | Simplify using tslib with eglfsLaszlo Agocs2014-10-173-4/+17
| | | | | | | | | | | | | | | | | | | | | | tslib support can now be built-in into eglfs, like evdev. Set QT_QPA_EGLFS_TSLIB to 1 to use tslib instead of evdevtouch. The input device can be controlled via TSLIB_TSDEVICE. Change-Id: Iff6bdbb4d133f73eca5528705844862236f8752b Reviewed-by: Andy Nichols <andy.nichols@digia.com>
* | Switch to categorized logging in all the input handlersLaszlo Agocs2014-10-166-137/+72
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use the rule qt.qpa.input (similarly to xcb). In addition, evdevkeyboard supports qt.qpa.input.keymap to enable keymap debug messages. For compatibility, evdevtouch retains the QT_QPA_EVDEV_DEBUG environment variable, this will simply turn on the associated logging rule. Change-Id: Ia038beb827346d2573ca9a2b69b8dcc53adcf0eb Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com> Reviewed-by: Risto Avila <risto.avila@digia.com> Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
* | Clean up tslib pluginLaszlo Agocs2014-10-164-0/+208
| | | | | | | | | | | | | | | | | | | | | | | | The code is now cleaned up, properly divided between platformsupport and the actual plugin (like evdev) and categorized logging is in use. This will allow us to use tslib as a built-in input handler in eglfs in the future. Change-Id: Ic87cdcfe8049bb98530e7f26ffa7a77611a8ede3 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Andy Nichols <andy.nichols@digia.com>
* | Avoid qCWarningLaszlo Agocs2014-10-161-7/+7
| | | | | | | | | | | | | | | | | | | | qCWarning messages are shown by default. This was not the intention. Switch to qCDebug since these are not necessarily errors, just debugging information. Change-Id: I15f114fd07887afb687e40342b289a6463e0c93a Reviewed-by: Andy Nichols <andy.nichols@digia.com>
* | eglconvenience/eglfs: Clean up warning messagesLaszlo Agocs2014-10-134-25/+21
| | | | | | | | | | | | | | | | | | | | | | | | Remove the last occurrence of ifdefed debug prints and replace it with categorized logging. Also clean up the warning texts for some of the serious errors, the old ones from Qt 4 times were somewhat messy. Change-Id: I2a3e48c393d56be2511d25c3003b1f2b74ac3c8c Reviewed-by: Louai Al-Khanji <louai.al-khanji@digia.com> Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
* | EGLFS: Add support for multiple displaysLouai Al-Khanji2014-10-102-14/+3
| | | | | | | | | | Change-Id: Id039e0ed2d99562eb2a5cfe1e7b34013c75ff3ac Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* | eglfs: Add support for systems without pbuffer supportLaszlo Agocs2014-10-102-16/+33
| | | | | | | | | | | | | | | | | | Use a small native window and window surface in case the hooks indicate that pbuffer support is not available. Change-Id: I6515309041f0e1e2f5321d59941f35d6ee16dca7 Reviewed-by: Louai Al-Khanji <louai.al-khanji@digia.com> Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
* | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-10-095-23/+24
|\| | | | | | | Change-Id: I05fcd8dc66d9ad0dc76bb7f5bae05c9876bfba14
| * Don't stream QStringLiterals into QDebugMarc Mutz2014-10-091-7/+7
| | | | | | | | | | | | | | | | Normal (C) string literals do just as well and use more than twice less space in the DATA section. Change-Id: Iafb0682a362c41dfd5b4d8b9137d88014d7992a2 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| * Don't use QStringLiteral in comparisonsMarc Mutz2014-10-093-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | For QLatin1String, operator== is overloaded, so comparing to a latin-1 (C) string literal is efficient, since strlen() is comparatively fast. OTOH, QStringLiteral, when not using RVO, litters the code with QString dtor calls, which are not inline. Worse, absent lambdas, it even allocates memory. So, just compare using QLatin1String instead. Change-Id: I7af3bf3a67c55dae33ffaf9922d004fa168a3f9c Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| * Don't use QByteArrayLiteral in comparisonsMarc Mutz2014-10-091-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For const char*s, operator== is overloaded, so comparing to a (C) string literal is efficient, since qstrcmp doesn't require the length of the strings to compare. OTOH, QByteArrayLiteral, when not using RVO, litters the code with QByteArray dtor calls, which are not inline. Worse, absent lambdas, it even allocates memory. So, just compare with a (C) string literal instead. Change-Id: Id3bfdc89558ba51911f6317a7a73c287f96e6f24 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| * Add Cinnamon to the list of Gtk+-based DEsDmitry Shachnev2014-10-071-0/+1
| | | | | | | | | | Change-Id: I6c2a374026fde30858f1a51f34fa195ef8f8fe37 Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
| * Clean up the CFTypes used in popuplateFamilyAndy Shaw2014-10-071-2/+2
| | | | | | | | | | Change-Id: Iabe127486c77ebb2afe7fe13ecccd70252a79031 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
| * Rename internal enum value to avoid clashing with XlibLaszlo Agocs2014-10-051-2/+2
| | | | | | | | | | | | Change-Id: I4926d1f75ece220d28abf9f2e7081e41f0aaf339 Reviewed-by: Jørgen Lind <jorgen.lind@digia.com> Reviewed-by: Martin Jansa <Martin.Jansa@gmail.com>
* | Do not assume QEGLPlatformCursor in the common egl bitsLaszlo Agocs2014-10-031-1/+1
| | | | | | | | | | | | | | The kms hook uses a custom QPlatformCursor. Change-Id: I4543df6314a45abfc20495cbffdd376aed8bbe93 Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
* | EGLFS: Fix plugin destruction (again)Louai Al-Khanji2014-10-032-9/+7
| | | | | | | | | | | | | | | | | | The previous patch was flawed since by the time the QEglPlatformIntegration destructor was called the virtual function table did not point to the methods in QEglFsPlatformIntegration any more. Change-Id: I310e5e3e734a22b44645ba912b579f193bcfae86 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* | EGLFS: Fix plugin destructionLouai Al-Khanji2014-10-012-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The proper init/destruction order is as follows: QEglFsHooks::platformInit() eglInitialize() eglTerminate() QEglFsHooks::platformDestroy() Prior to this patch platformDestroy() was called before eglTerminate(), leading to a crash on some platforms. Additionally we need to destroy the native windows before deleting the screen, otherwise the QEglFSWindow destructor ends up calling into the deallocated screen. Change-Id: Id08ccbac9bb44a778bcf1a55f73c0057e0a7b3af Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>