summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Fix QRgba64 rgbBlendAllan Sandfeld Jensen2017-02-161-2/+3
| | | | | | | | | | | The subpixel RGB alpha values were not converted from host endian to RGBA order before being used as RGBA ordered. Task-number: QTBUG-58619 Change-Id: I18e1c9df902c7e9001a0e511f06fc953dd7afa3e Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* Don't fetch destination in RGB64 mode when not necessaryAllan Sandfeld Jensen2017-02-161-20/+21
| | | | | | | | | | | | | Extends the short-cut of not fetching destination to also apply to the RGB64 painting. This saves reading and converting destination pixels when they will be fully replaced with source pixels. Since ARGB32 was switched to using the RGB64 drawhelpers, and ARGB32 is particularly expensive to read, this change is important to avoid performance regression. Change-Id: If3a2439140d6364e8429783cfa786bd000cfab45 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* macOS: Rewrite window state handlingTor Arne Vestbø2017-02-166-110/+208
| | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of relying on specific notifications to change the window state we now evaluate the state based on the current window state. This allows us to get rid of windowShouldZoom in the window delegate, making window state handling work for foreign windows as well, and also allows us to re-evaluate the state in more places, such as when moving a window, which may bring it out of maximized state. The full screen state is tracked by a helper category that doesn't just rely on the styleFlag, but also on the full screen notifications. This is needed as macOS will complain if you try to go in or out of fullscreen while a transition is in effect. The differentiation between performFoo: and foo: has been removed, as the latter works in both cases and doesn't rely on the button being visible/enabled. These changes fixes many observed quirks in the window state handling that also resulted in making it hard to write tests that relied on the fullscreen/maximized operations always working. Change-Id: I0538c42d9223a56f20ec9156f4939288e0750552 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Use native support for fp16 where availableAllan Sandfeld Jensen2017-02-161-0/+19
| | | | | | | | | | Use F16C or ARM FP16 if available at compile time. Configure check added because older clang compilers have F16C defines and flags but not all the intrinsics. Change-Id: I71f358b8fd003e70ab8fcf35097414591e485112 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Android: De-duplicate vtables of exported private classesMarc Mutz2017-02-162-7/+19
| | | | | | | | | | | | | | | | | | | | By making the destructor (usually the first non-inline, non-pure, virtual function, and therefore the trigger for most compilers to emit the vtable and type_info structures for the class in that TU) out-of-line, vtables and, more importantly, type_info structures for the class are pinned to a single TU. This prevents false-negative dynamic_cast and catch evaluation. Since the classes are already exported, users of these classes are unaffected by the change, and since it's private API, we don't need to avoid adding code to the out-of-line destructor until Qt 6. While at it, de-inline also the empty default implementations of virtual (non-dtor) functions. Task-number: QTBUG-45582 Change-Id: I3e6f37eab1dee0db445f6c13638a43ca3bf6ac62 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QWindow: prevent window reparenting into Qt::Desktop windowsTor Arne Vestbø2017-02-152-15/+22
| | | | | | | | | | | | Qt::Desktop exists to support QDesktopWidget, which predates the QScreen API. QWidget internally has checks that prevents you from reparenting a QWidget into a QDesktopWidget, so we should have the same limitations on the QWindow level. This allows platform plugins to implement Qt::Desktop as simple (possibly shared) wrappers around QScreen without having to allocate native window resources for each desktop window. Change-Id: Ia1bac506febd3d827a6e0b8ad3bfd95be0cc7f9d Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Clean up QStringLiteral definitionMarc Mutz2017-02-151-28/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We require lambda support in the compiler since Qt 5.7, so drop the guard macro. Apart from MSVC 2013, all our supported compiler also support char16_t: - VxWorks uses GCC 4.8, which supports char16_t since 4.5. - ICC supports char16_t since v12.1; we require v14+. - ONX uses a GCC which supports char16_t in the compiler, but is equipped with a stdlib that does not sport char16_t support, which is why we revoke its Q_C_UNICODE_STRINGS in qcompilerdetection.h. But we don't need stdlib support, we only need the core language feature. This is the only platform where this patch actually changes something. It removes the, rather unfair, pessimization of the platform which could have supported the static-storage- duration implementation of QStringLiteral instead of the fallback, which uses dynamic memory (QString::fromUtf8()). - GCC and Clang support char16_t since 4.5 and 3.0, resp., which is far below our minimum compiler requirements in effect since Qt 5.7. - On Windows, MSVC supports char16_t since 2015 only, and we still support 2013, but on Windows, wchar_t is the same size as char16_t, so instead of u"str" we can fall back to L"str". So simplify the implementation of QStringLiteral by assuming that all these feature are present, adding noexcept to the lambda to make noexcept() queries return true. This allows us to guarantee: [ChangeLog][QtCore] QStringLiteral is now guaranteed to be evaluated at compile-time. The last platform (QNX) to use the QString::fromUtf8() fallback has been ported to allocate the string data statically, too. Change-Id: I7920d7a77001e5c5550e7c7d57ceb7c51c9eb443 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Make some atomic counters zero-basedMarc Mutz2017-02-159-21/+48
| | | | | | | | | | | | | | A variable of static storage duration that is not zero-initialized takes up space in the DATA segment of the executable. By making the counters start at zero and adding the initial value afterwards, we move them over to the BSS segment, which does not take up space in the executable. Wrap atomics used across function boundaries into small functions, to avoid code duplication and to increase readability. Change-Id: Ida6ed316ecb8fe20da62a9577161349e14de5aed Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QString(Ref): make toLatin1()/toLocal8Bit() null handling consistentMarc Mutz2017-02-153-6/+12
| | | | | | | | | | | | | | | | | | | | | Systematic testing in tst_QStringApiSymmetry revealed a bug in QStringRef::toLatin1(): a null input did not result in a null output, but an empty one. This is fixed, for consistency with QString::toLatin1(), and QString(Ref)::toUtf8(), which behaved correctly already. The same bug was found in QString(Ref)::toLocal8Bit(), which is particularly hideous, as it's documented to fall back to toLatin1(), which preserves null inputs. Fixed, too. [ChangeLog][QtCore][QString] toLocal8Bit() now preserves nullness of the input QString (outputs null QByteArray). [ChangeLog][QtCore][QStringRef] toLocal8Bit() and toLatin1() now preserve nullness of the input QStringRef (output null QByteArrays). Change-Id: I7026211922c287e03d07e89edbad2987aa646e51 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Correct \since for QStorageInfo::subvolume()Thiago Macieira2017-02-151-1/+1
| | | | | | | | 3e9db01a2e4be5034d10d6eeafd65d0a8609615b entered dev after the 5.8 branch. Change-Id: I4139d5f93dcb4b429ae9fffd14a349e85e62a298 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* macOS: Don't hide NSWindowZoomButton when window can go into fullscreenTor Arne Vestbø2017-02-151-1/+2
| | | | | | | | | | | | | | | The button in the title bar is used both for going into full screen and maximizing (zooming) the window. We can't hide/disable it unless both Qt::WindowFullscreenButtonHint and Qt::WindowMaximizeButtonHint are off. This means that when Qt::WindowMaximizeButtonHint is off, it's still going to be possible to Option-click the button to maximize the window, but this is less of a concern than hiding the full screen button when Qt::WindowFullscreenButtonHint is set. Change-Id: I70dbe27b3197fe22c1781277f8bf9a818d71d04d Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Fix minor typos in apidocFrederik Schwarzer2017-02-152-2/+2
| | | | | Change-Id: I5ce9599a60ea336b469807df075e491f0e6df680 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
* qpa: Let platform plugins report old state for window state changesTor Arne Vestbø2017-02-154-6/+11
| | | | | | | | | | The previous logic relied on QPlatformWindow::setWindowState() being synchronous and delivering the QPA event before returning to QWindow, in which case window->windowState() would still refer to the old state. Async platforms can now report the previous state correctly. Change-Id: Ib9148fe23fb62be55b7e3a0ccf63d32c71dc2ad3 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* Windows QPA: Use the native algorithm to find out the window's screenOlivier Goffart2017-02-153-4/+12
| | | | | | | | | QPlatformWindow::screenForGeometry uses the screen where the center of the window is, but native application use the one which intersects with the bigger area. It might not be the same. Change-Id: I831a5fcaea0e293e9f0f93ef5e562cce57fae2f4 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Fix is_iec559 assert on GHS compilerKimmo Ollila2017-02-151-0/+13
| | | | | | | | | | | GHS compiler is not fully compliant with iec559. Therefore we need to replace is_iec559 assertion with separate checks to build quint16. Change-Id: I88c57e394b8d4e7899ee7d4a13cbfbac9436b2fc Reviewed-by: Rolland Dudemaine <rolland@ghs.com> Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QElfParser: Fix plural form in error messageFriedemann Kleint2017-02-151-4/+6
| | | | | | | | Amends change dcec1420ea9d7e90bbd7f37be15d8e61eaf35d23. Change-Id: I54c7db012d87a55c310141debac19118e7cb284a Reviewed-by: Robert Loehning <robert.loehning@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Merge remote-tracking branch 'origin/5.8' into 5.9Liang Qi2017-02-1429-178/+256
|\ | | | | | | Change-Id: I2bd2e61bae1eab4fc74fa6accd741ed9ae1f0669
| * Doc: Updated doc QSqlDatabaseNico Vertriest2017-02-131-28/+51
| | | | | | | | | | Change-Id: I914e9bdbf6137f0e3858a57b0f59fc550fc7e317 Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
| * Windows QPA: Include GL header depending on presence of dynamic GLFriedemann Kleint2017-02-131-1/+5
| | | | | | | | | | | | | | | | Amends change 7780ee9e5f20f80ab9e053058d0b6d92586cf876. Task-number: QTBUG-58178 Change-Id: I0b6e064dfdbdafb7fba9c20c56cfd873fa594c44 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
| * announce 'temporaryfile' feature in bootstrap libraryOswald Buddenhagen2017-02-131-0/+1
| | | | | | | | | | | | | | | | qmldevtools refers to it. Task-number: QTBUG-58819 Change-Id: Id88265bb17e4d2e9c61f77409c4163eacc4a13f3 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| * Add the new NVIDIA specific calls to qeglstreamconvenienceDominik Holland2017-02-132-0/+18
| | | | | | | | | | | | | | | | | | NVIDIA 370 introduced new calls needed to work with eglstreams in the wayland window system Task-number: QTBUG-58299 Change-Id: I606b143d3016f365b0d5ca4bc163b99289afbea1 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
| * Fix QLibrary::isLibrary on Apple platformsFilipe Azevedo2017-02-121-21/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add proper support for 'so' and 'bundle' suffixes. Qt wrongly assumes .so libraries are not versioned on Apple platforms, which is wrong. Also, the shared library .bundle which is what Apple recommends instead of .so, are also versioned (not to be confound with the different Core Foundation bundles, which are directory hierarchy). For more info, see http://docstore.mik.ua/orelly/unix3/mac/ch05_03.htm. Especially the part that reads: "Loadable modules, called bundles in Mac OS X, have the file type MH_BUNDLE. Most Unix-based software ports usually produce bundles with a .so extension, for the sake of consistency across platforms. Although Apple recommends giving bundles a .bundle extension, it isn't mandatory." Task-number: QTBUG-50446 Change-Id: Iacd5136397a12d65d83821434f332eb602550b4b Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| * Update the __xxx__ macros due to MSVC and ICC not defining them allThiago Macieira2017-02-121-1/+31
| | | | | | | | | | | | | | | | And if __AES__ or __PCLMUL__ is defined, then we expect wmmintrin.h to exist. Change-Id: I445bb15619f6401494e8fffd149db77dc513e071 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
| * Use QBasicMutex in qthread_win.cppThiago Macieira2017-02-111-2/+2
| | | | | | | | | | | | | | | | It's QtCore, so we're fine. Change-Id: Ifaee7464122d402991b6fffd14a0d7ad9c09e2f2 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
| * Improve QIODevice::peek() performance on buffered devicesAlex Trotsenko2017-02-092-45/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Since 5.7, QIODevice::peek() implementation is based on transaction mechanism. While technically it's correct, seeking backward on a buffered random-access device clears the internal buffer that affects the performance of reading. To solve the problem, this patch implements peek mode directly inside the reading procedure. Task-number: QTBUG-56032 Change-Id: Ic5269f76e44c491a0309e13aba87fa7cf7b9259f Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
| * Refactor QIODevice::read()Alex Trotsenko2017-02-092-36/+51
| | | | | | | | | | | | | | | | | | Move device-dependent part of the code into the private function for further reusing by peek() procedure. Task-number: QTBUG-56032 Change-Id: Iedceafe4b0bab109ca5c64ad274d779efe87c27b Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
| * rename qvector.cpp => qvector.qdocOswald Buddenhagen2017-02-093-2/+0
| | | | | | | | | | | | | | | | | | | | the file contains no code. this avoids complaints from ar/ranlib in static/bootstrapped builds. Change-Id: Iee22ffc61a5f9ea8c25f5455b7e8e017ac521624 Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| * make libinput axis api feature depend on libinputOswald Buddenhagen2017-02-091-1/+1
| | | | | | | | | | | | | | amends b4085e56. Change-Id: Id18a7de6496e8e9164cb247426aba1293aa4ea2e Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
| * refuse to build EGLFS on android, darwin, and windowsOswald Buddenhagen2017-02-091-2/+1
| | | | | | | | | | | | | | | | ... instead of merely defaulting it to off on android and windows. this reflects actual reality. Change-Id: I880254138bedd07124aa00096a06dd6e1803feb9 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
| * Merge several Q_GLOBAL_STATICs in qresource.cpp into oneThiago Macieira2017-02-091-4/+18
| | | | | | | | | | | | | | | | | | Since they are all used in a typical application, this reduces the number of memory allocations (thus, the overhead) as well as the state-keeping in the libc atexit() functions. Change-Id: Ifaee7464122d402991b6fffd14a0e59457ad9cb7 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
| * Avoid unnecessary creation of some Q_GLOBAL_STATICThiago Macieira2017-02-092-12/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If these lists weren't created in the first place, then they are empty. We don't need to create it in order to conclude that. Unlike most Q_GLOBAL_STATICS, these are almost never used and yet they were always created due to where they were checked. Since we're calling exists() before, there are two consequences: first, since the list already exists, we're not allocating memory so it cannot throw std::bad_alloc when being accessed. Second, since we've just checked it exists, we can use QGlobalStatic's operator*(), which is slightly faster than operator()(). The weird &(*list) syntax is only to avoid changing the rest of the code that used a pointer Change-Id: Ifaee7464122d402991b6fffd14a0e44f533dc3d9 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
| * make freetype & fontconfig dependencies private againOswald Buddenhagen2017-02-083-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | exporting the freetype dependency caused qtwayland to break with -qt-freetype, as the helper libraries' module pri files are not installed (for good reasons) after f9a80e06a, no actual user of FontDatabaseSupport needs access to the transitive dependencies anyway (one of the headers has a fontconfig dependency, but it's not used outside the module itself), so hiding them again is just fine. this partially reverts ec774500f. Task-number: QTBUG-56666 Change-Id: I9e68a7e0725a92833b856c9ffdbec61c8aa5fed2 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
| * move qfontengine_ft.* from gui to platformsupportOswald Buddenhagen2017-02-0810-17/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | that's where the files are actually used nowadays. also removes an obsolete (and bogus) gui export. Change-Id: I4551aad798acb6ce8c0abe43a2fcb8e5ac64a2d4 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
| * QFormLayout: take the correct row in takeRow()Marc Mutz2017-02-081-9/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I didn't even try to understand what the old code was trying to do; once you're told by a user that the code is wrong, you see that it is. Fixed by just using the row as passed to takeRow() instead of trying to do some storage-index calculations. The m_matrix indexing operator does it all for us. Added a test that checks that the expected field widget gets returned. Fixed expected test data that was wrong, and just checking that the implementation behaves as implemented, instead of as documented. Amends change 8fbae648db3bc51bafacfe1f88e40561d357e60a. [ChangeLog][QtWidget][QFormLayout] The functions takeRow() and removeRow(), new in 5.8.0, now take and remove the correct row. Task-number: QTBUG-58693 Task-number: QTBUG-15990 Change-Id: I7185ccbc6c03e2579741cad5c0c821d3ed165474 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* | Windows styles/wizard: Do not invoke winId() of desktop windowsFriedemann Kleint2017-02-132-13/+4
| | | | | | | | | | | | | | | | | | | | | | Call the Win32 API GetDesktopWindow() to obtain a HWND of the desktop instead of calling QApplicationPrivate::getHWNDForWidget() for desktop windows. This allows for lazily creating desktop platform windows. Observed in some tests where no window is visible. Change-Id: I97074f69606b3d74f3fbc90acb4a077d52eeb84d Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* | Respect QWindow::screen() when computing QPlatformWindow::initialGeometry()Tor Arne Vestbø2017-02-131-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Calling setScreen() on a QWindow doesn't move the window to that screen unless the new screen is a separate virtual desktop, as the window geometry is what determines the position of the window within each virtual desktop. But when mapping a QWindow that doesn't have a position explicitly set by the user, we try to resolve a reasonable position for it. In that case we should take the QWindow screen into account, as setting it to a non-primary screen is a good indication that the user wants the window to end up on that screen. If that's the case, it should override the logic of using the transient parent or the cursor position to choose which screen to place the window on. Change-Id: I591d872a93913173b20eb3da19aa63118fcf6b12 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* | Don't create platform window for QWindows when calling setVisible(false)Tor Arne Vestbø2017-02-131-2/+5
| | | | | | | | | | | | | | We can defer the creation until the window is shown. Change-Id: I3d5b45ae59ee0925996cf12cd46dd574c8c6ef95 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* | qimage_conversions.cpp: keep shared copies of gray and alpha color tablesMarc Mutz2017-02-131-19/+20
| | | | | | | | | | | | | | | | | | | | Since QVector is implicitly shared, don't re-generate the same two color tables all over again, but create them once and keep them around in a Q_GLOBAL_STATIC. Change-Id: I9a8d32021d8cc327264f2818a23beaae67fe3ee8 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* | QCollatorSortKey: add some std::moveMarc Mutz2017-02-135-6/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | All implementations of QCollator::sortKey() can benefit from moving their CollatorKeyType into the QCollatorSortKeyPrivate on construction. So make the QCollatorSortKeyPrivate ctor a perfect forwarder for its m_key member, and add std::move() calls where they were missing (in all but one case, lvalues were passed). Make the ctor explicit, as it should have been from the beginning. Change-Id: I2a1cdda5fd23990ace019b963df895c621a1fa85 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | QThreadPool: replace a QSet with a QListMarc Mutz2017-02-132-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QThreadPool maintains three containers of QThreadPoolThread*: - allThreads, a QSet - waitingThreads, a QQueue - expiredThreads, also a QQueue None of the operations on allThreads make use of QSets fast lookup. The only functions called on it are isEmpty(), count(), insert(), and swap(). Since therefore QSet adds nothing but overhead, causes indeterminism (e.g. when deleting threads in Private::reset()) and code bloat, use the same container for allThreads that underlies QQueue: QList. Port insert() to append(). Add an assert to verify that we're not running into an ABA problem here (but this should never fire, since we're never deleting threads except in Private::reset(), where we do remove them from allThreads), just in case. Saves ~0.5KiB in text size on optimized Linux AMD64 GCC 7.0 builds. Change-Id: I53a4d5ef2c204420f7c8852f1e72ab3d6ea43d08 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | macOS: Don't try to cast foreign windows to QNSViewTor Arne Vestbø2017-02-112-3/+4
| | | | | | | | | | Change-Id: I08a4d76310a689c3c855d4c8306f9d7aa5cecadc Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* | macOS: Handle window state changes directly in QCocoaWindowTor Arne Vestbø2017-02-116-31/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | Now that notification callbacks are delivered directly to QCocoaWindow, it doesn't make sense to then send them to QPA via QNSView. By skipping the QNSView roundtrip we also enable window state notifications for foreign windows. As an optimization we no longer flush all window system events, but use the new synchronous API to deliver the window state change event. Change-Id: I529b625fbe22e664c34a51bcd4448d1bf0392e6b Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* | evdevtouch: Add missing we mean it noteLaszlo Agocs2017-02-101-0/+11
| | | | | | | | | | Change-Id: If703a4d8542cb98fd1966f8ca959938709731452 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* | egl: Expose direct function pointers on INTEGRITYLaszlo Agocs2017-02-102-11/+355
| | | | | | | | | | | | Change-Id: I4f7df9abcd580297a40fd9dd16a26f5f93e1c4c7 Reviewed-by: Jesus Fernandez <Jesus.Fernandez@qt.io> Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* | Fix compilation on iOSEskil Abrahamsen Blomfeldt2017-02-101-0/+2
| | | | | | | | | | | | | | | | | | The function is only used from inside the #ifndef ES2 blocks, causing it to fail compilation with a default configuration on iOS (where warnings are errors). Change-Id: I4f76c6371bd9125c7d1c919685df4a870eeb62f0 Reviewed-by: Paolo Angelelli <paolo.angelelli@qt.io>
* | moc: error out when the Q_PLUGIN_METADATA file can't be openedOlivier Goffart2017-02-101-1/+6
| | | | | | | | | | | | Task-number: QTBUG-56045 Change-Id: Ib058791036a2728dcd6215009a4ff206278bed14 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Don't include qfloat.h in the QtCore master includeThiago Macieira2017-02-091-0/+1
| | | | | | | | | | | | | | | | | | | | | | We have observed that MSVC 2013 gets lost with the overloads that this header adds, causing compilation bugs. This is believed to be a compiler bug, but it's not something we can work around. Task-number: QTBUG-58555 Change-Id: I536c32a88bff44dab37afffd14a1bad1d31dc16d Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Glen Mabey <Glen.Mabey@swri.org>
* | Add QDataStream streaming operator for QFlagsThiago Macieira2017-02-092-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | We're already using it, for example in qpaintengine_pic.cpp:502: d->s << p << ti.text() << fnt << ti.renderFlags() << [...] ^ [ChangeLog][QtCore][QFlags] Added operator<< and operator>> for streaming QFlags into and out of QDataStreams. Change-Id: I33dc971f005a4848bb8ffffd1478e79d6102d1bc Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* | Blacklist Intel HD Graphics IronLake (Arrandale) on WindowsAndy Nichols2017-02-091-1/+13
| | | | | | | | | | | | | | | | | | | | More poor quality Intel OpenGL drivers causing issues when using OpenGL in Qt. Change-Id: I76ad023a1f1e92d57dc0b081c665a3b066206068 Task-number: QTBUG-53888 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* | Prevent Qt::ForeignWindow from propagating into QWidget for non-toplevelsTor Arne Vestbø2017-02-091-0/+2
| | | | | | | | | | | | | | | | | | | | | | Qt::ForeignWindow implies Qt::Window, which QtWidgets interprets as a top level window, but this is not the case on a QtGui level. A foreign window can be a child window as well, so we have to make sure the QWindow state is not propagated to QWidget, which would result in the QWidget becoming top level. Change-Id: Ie0c2d769ce92e6988a4d62da46f5fc2da74bdf08 Reviewed-by: Lars Knoll <lars.knoll@qt.io>