- 17 Feb, 2017 - 1 commit
-
-
Friedemann Kleint authored
It was introduced by 07191423 (macOS QML fix) for apparently historical reasons and has been found to cause various problems: - Flicker when using QGLWidget in a QSplitter - (obscure) crashes due to flushing out input events in setVisible(). Task-number: QTBUG-38327 Task-number: QTBUG-39842 Change-Id: I18081da5f4645271774a51f1d6a88e778adbd6ac Reviewed-by:
Gabriel de Dietrich <gabriel.dedietrich@qt.io> Reviewed-by:
Joerg Bornemann <joerg.bornemann@qt.io>
-
- 16 Feb, 2017 - 12 commits
-
-
Tor Arne Vestbø authored
Allows the block in recreateWindowIfNeeded() that calls createNSWindow() to focus on how to (re)parent windows/views, while createNSWindow() takes care of how to set up the window. Dynamic properties that may change later on are handled in e.g. setWindowFlags(). Change-Id: Ice0e44d004bd2608b2b54e6dde0f404a1e07dc10 Reviewed-by:
Mike Krus <mike.krus@kdab.com>
-
Friedemann Kleint authored
When the flag is not set, custom background colors for QLineEdit will not work. Set the flag as does QWindowsXpStyle. Task-number: QTBUG-57862 Change-Id: I6e653c2cdc8cc523673e1629bf42f833c8504431 Reviewed-by:
Joerg Bornemann <joerg.bornemann@qt.io>
-
Marc Mutz authored
A default-constructed static QBasicAtomicInt at function scope will be dynamically initialized. It will still be zero-initialized, but at least GCC adds guard variables for such objects. When using aggregate initialization, the guard disappears. Amends 04d6495b . Change-Id: Id9335cffdd43094cafb231fdde2523d013abe1d6 Reviewed-by:
Thiago Macieira <thiago.macieira@intel.com>
-
Sergio Martins authored
Dock widgets with custom titlebar are frameless by default, so this isn't usually a problem. However, the user can override the default and make it non-frameless (by just removing the native title bar, not the frame). Task-number: QTBUG-58843 Change-Id: Iff7a2a719cb2f326f2f81bbfb1b53ba01a63f3e1 Reviewed-by:
Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
-
Olivier Goffart authored
That's what the MSDN documentation say one should do in the handler for WM_DPICHANGED [ChangeLog][QtGui][Windows] Windows are now automatically resized when they are moved on a screen to adapt to the new pixel ratio. Task-number: QTBUG-55510 Task-number: QTBUG-48242 Change-Id: I7688f12165f76585d75686e2e94b0fc562627be2 Reviewed-by:
Friedemann Kleint <Friedemann.Kleint@qt.io>
-
Tor Arne Vestbø authored
QDesktopWidget only needs a QWindow to access its screen, and has no use for the platform window. To keep old code working that may have called winId() on the QDekstopWidget we still ensure it gets created lazily, even if that will just create hidden fake windows on many platforms. Change-Id: I2d05b96dfeebeaf3f1278cfef6301ef4cb855a57 Reviewed-by:
Jan Arve Sæther <jan-arve.saether@qt.io>
-
Oswald Buddenhagen authored
Started-by:
Friedemann Kleint <Friedemann.Kleint@qt.io> Change-Id: I2c6fba0532549b952570ec50659934e14ea9cdd5 Reviewed-by:
Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by:
Topi Reiniö <topi.reinio@qt.io> Reviewed-by:
Oswald Buddenhagen <oswald.buddenhagen@qt.io>
-
Allan Sandfeld Jensen authored
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>
-
Allan Sandfeld Jensen authored
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>
-
Tor Arne Vestbø authored
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>
-
Allan Sandfeld Jensen authored
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>
-
Marc Mutz authored
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>
-
- 15 Feb, 2017 - 13 commits
-
-
Tor Arne Vestbø authored
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>
-
Marc Mutz authored
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>
-
Marc Mutz authored
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>
-
Marc Mutz authored
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>
-
Thiago Macieira authored
3e9db01a2e4be5034d10d6eeafd65d0a8609615b entered dev after the 5.8 branch. Change-Id: I4139d5f93dcb4b429ae9fffd14a349e85e62a298 Reviewed-by:
Friedemann Kleint <Friedemann.Kleint@qt.io>
-
Tor Arne Vestbø authored
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>
-
Frederik Schwarzer authored
Change-Id: I5ce9599a60ea336b469807df075e491f0e6df680 Reviewed-by:
Frederik Gladhorn <frederik.gladhorn@qt.io>
-
Tor Arne Vestbø authored
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>
-
Olivier Goffart authored
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>
-
Timur Pocheptsov authored
After it started to fail (somehow it's only OpenSUSE 42.1) again and again and after a quick re-evaluation it appears the logic testing SETTINGS|ACK is incorrect. We (client side) start by sending the preface and then continue to send our request(s). The other side (server) starts from sending its SETTINGS frame. These settings must be ACKed, but apparently it can happen, that server receives a requests and sends a reply before it receives SETTINGS|ACK, resulting in replyFinished (replyFinishedWithError) signal and event loop stopping. As a result - QVERIFY(serverGotSettingsACK) fails. Task-number: QTBUG-58758 Change-Id: I8184cf459b2b88f70c646171e0115c184237fad1 Reviewed-by:
Edward Welbourne <edward.welbourne@qt.io>
-
Kimmo Ollila authored
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>
-
Timur Pocheptsov authored
currencySymbol == "$" does not mean negative currency values will be formatted as "($value)". With all locales I have on my mac machines (10.11/10.12) the result is different from what this test expects. Also, the results are very different for different locales. Apparently, we never saw this problem before since in our CI "macs" we never have US Dollar/en_US selected in System Preferences. Task-number: QTBUG-58784 Change-Id: Ic2c3a3172bf1e715e99092ddee8f461b216d995a Reviewed-by:
Thiago Macieira <thiago.macieira@intel.com> Reviewed-by:
Edward Welbourne <edward.welbourne@qt.io>
-
Friedemann Kleint authored
Amends change dcec1420 . Change-Id: I54c7db012d87a55c310141debac19118e7cb284a Reviewed-by:
Robert Loehning <robert.loehning@qt.io> Reviewed-by:
Thiago Macieira <thiago.macieira@intel.com>
-
- 14 Feb, 2017 - 2 commits
-
-
Liang Qi authored
Change-Id: I2bd2e61bae1eab4fc74fa6accd741ed9ae1f0669
-
Marc Mutz authored
This test was determined to be flaky on the CI. Task-number: QTBUG-58741 Change-Id: I43196d3a27f726fb96b427f5071e726b571a0404 Reviewed-by:
Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by:
David Faure <david.faure@kdab.com>
-
- 13 Feb, 2017 - 12 commits
-
-
Friedemann Kleint authored
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>
-
Julien Gueytat authored
This is an old error of the gstrip binutils. The bug has been corrected and re-introduced. The command *elfdump -d xxx* on the ELF does bring lines like those : .SUNW_syminfo: invalid sh_info: 0 Task-number: QTBUG-58814 Change-Id: I330c4031dcf4ba64297df4b333b41cf0a003914f Reviewed-by:
Oswald Buddenhagen <oswald.buddenhagen@qt.io>
-
Tor Arne Vestbø authored
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>
-
Tor Arne Vestbø authored
We can defer the creation until the window is shown. Change-Id: I3d5b45ae59ee0925996cf12cd46dd574c8c6ef95 Reviewed-by:
Friedemann Kleint <Friedemann.Kleint@qt.io>
-
Marc Mutz authored
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>
-
Nico Vertriest authored
Change-Id: I914e9bdbf6137f0e3858a57b0f59fc550fc7e317 Reviewed-by:
Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
-
Joerg Bornemann authored
Linking with too many object files could lead to "LNK1170: line in command file contains 131071 or more characters". Do not write all .obj files into one line but respect a limit of 1000 characters. If the limit is reached the object files are separated by newlines instead of spaces. Task-number: QTBUG-58710 Change-Id: Ibae1f737d6b614a9624b4e00cdd21d3722d341e3 Reviewed-by:
Oswald Buddenhagen <oswald.buddenhagen@qt.io>
-
Friedemann Kleint authored
Amends change 7780ee9e . Task-number: QTBUG-58178 Change-Id: I0b6e064dfdbdafb7fba9c20c56cfd873fa594c44 Reviewed-by:
Joerg Bornemann <joerg.bornemann@qt.io>
-
Oswald Buddenhagen authored
qmldevtools refers to it. Task-number: QTBUG-58819 Change-Id: Id88265bb17e4d2e9c61f77409c4163eacc4a13f3 Reviewed-by:
Lars Knoll <lars.knoll@qt.io>
-
Dominik Holland authored
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>
-
Marc Mutz authored
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>
-
Marc Mutz authored
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>
-