... and remove the XCB_USE_XLIB define.
This patch also removes the unnecessary checks for xcb-xlib in:
- qxcbglxintegration.cpp as this files is build _only_ when
xcb-xlib is present. From gl_integrations.pro:
qtConfig(xcb-xlib):qtConfig(opengl):!qtConfig(opengles2) {
SUBDIRS += xcb_glx
}
This also would have been the right place where to define
XCB_USE_XLIB, instead of unconditional line in xcb_glx.pro:
DEFINES += XCB_USE_GLX XCB_USE_XLIB
- qxcbnativeinterface.cpp as this cpp file does not use any
Xlib APIs directly, there is no need to include Xlib.h.
Change-Id: I531b5f1e79606fcfd1c63810cf51b7d5e9dc58a7
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
... as it is a window, not widget. This matches the name from
cpp file: QXcbBackingStore::QXcbBackingStore(QWindow *window).
Change-Id: Ib9f69cbe80ea645bbce0e4f5ef24a8df8808b823
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
The code was introduced in 28c9c2ea50, but child NSWindows are no longer
supported, so we can simplify the code by removing it.
Change-Id: Ic98b8b0e0a84d5f2adba1840bd8318de2be031b6
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Fix developer build with GCC 7, which complains:
codecs\qgb18030codec.cpp:387:37: error: 'buf[1]' may be used uninitialized in this function [-Werror=maybe-uninitialized]
codecs\qgb18030codec.cpp:8908:17: error: 'buf[0]' may be used uninitialized in this function [-Werror=maybe-uninitialized]
codecs\qgb18030codec.cpp:536:37: error: 'buf[1]' may be used uninitialized in this function [-Werror=maybe-uninitialized]
codecs\qgb18030codec.cpp:535:37: error: 'buf[0]' may be used uninitialized in this function [-Werror=maybe-uninitialized]
Change-Id: I7e98355c625276c74792707f22d4318c0cc9be6a
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
We move the code forcing white text on the current tab to
QMacStyle. This removes the small encapsulation violation
even though we need to check for the tab text color in the
style and modify the palette.
Amends 2fbc143202.
Change-Id: If31dc11ae389ee5315e84ab03cf1c08540d81640
Reviewed-by: Błażej Szczygieł <spaz16@wp.pl>
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Like other QWindow properties we can just store it, and the platform
window should pick it up on creation like other properties.
[ChangeLog][QtGui][QWindow] setMask() no longer requires the window
to be created to have an effect; it can be set at any time.
Change-Id: I55b616363801b770bd61bda5325b443013b99866
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
Use the Q_XCB_REPLY() macro and let its unique_ptr<> take care of
free()ing the reply.
Change-Id: I32eb9c56ea0ba5632bf6ab39c77567d10f442995
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
Although [0] claims "This request does never generate any errors", it
seems I sometimes get back a NULL pointer from
xcb_randr_get_output_property_reply(), leading to a segfault (in the
qdatetimeedit auto-test). So check reply isn't NULL before
dereferencing it.
[0] https://www.systutorials.com/docs/linux/man/3-xcb_randr_get_output_property_reply/
Change-Id: Iadae835bb3017bf9bb40f180b75b0c391384f99b
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
Follow the pattern used to guard Private::sort() calls elsewhere in the
class.
Because QAbstractItemModel::sort() is not called in the unit test, the
content is not sorted after resetting.
[ChangeLog][QtCore][QSortFilterProxyModel] QSortFilterProxyModel
now does not emit an unnecessary layoutChanged() following a model
reset.
Change-Id: I0a36c7fbb172bdd06ecddb489c5595debbef6cb9
Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
All QWindow implementations must produce a frame before
returning from the expose event.
Change-Id: I5640809c47e948101879c1623c12230fa0a63c44
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Makes the qle_bitfield template more generic and moves it to qendian_p.h
It is also hardened to be more reliable.
Change-Id: I53214ec99cceee4f5e8934ae688c99e555a5fb42
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
They have a native maximize/zoom button in their titlebar, so there's no
reason for us to prevent the same action via the API. The only states
that are prevented are minimized and fullscreen.
Change-Id: I84fa48b31b243fa838c90ecdeee92a2f3448ee14
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Change-Id: Ia0eddcb385207ada8c3df59d49ff1de27a2aeb71
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
... as it does not add much value and is not widely used.
and cleanup code:
- where we repeatedly (for no good reason) call DISPLAY_FROM_XCB,
instead of storing display as a (member) variable.
- inconsistency where we (in the same function) alternatingly
use DISPLAY_FROM_XCB and variable holding pointer to Display
(when both refer to the same display).
In other places this patch replaces macros with code they would
translate to (or with minor adjustments to keep sensible line length).
Change-Id: Ieb2a3e055892dcf31f132891f83ed4a665e3fa6e
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
We should repeat it in 5.10 and 5.9 changelogs (until 5.11 is released).
Change-Id: Ibe46a7253188480890f9fffd14cad187ac091e79
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
This reverts commit c0e94dd093, as it
introduced a regression for applications that sets an installation
target (on Android), which a lot of our examples do. The installation
target for Android applications/libraries needs to be within in the
application bundle's directory tree, or it won't work.
Task-number: QTBUG-61635
Change-Id: I8c919ef3888d7679b0f9659796f5e590bc1faa57
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
[ChangeLog][QtCore][uic] Ignore old images embedded in ui files,
which were imported from Qt 3. uic will now behave consistently
with Qt Designer - both will ignore them.
Change-Id: Ib2dfd0bb28c0532463fdee2d46a8f0979c28c80c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Avoid the dimensions of the rounded QRect being off by more than one
pixel. This ensures the aligned containing rect also contains the
rounded rect.
Task-number: QTBUG-56420
Change-Id: Ib79110e51ab80de2dc83d01ea83fc5fbf3852e75
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
The key events and input method callbacks coming from Cocoa are targeted
at our specific NSView, so we should deliver them to the focus object of
the corresponding QWindow, not the global application focus object.
This means that we'll deliver key events to windows also when they are
not key (active), but this is intentional, as we would otherwise fail
to deliver input method events coming from e.g. the emoji/symbol picker,
which steals the key window when active.
Task-number: QTBUG-61359
Change-Id: I61326c08ad8bbd0c535b3cc8a67d0ceeec7ee910
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Task-number: QTBUG-60012
Change-Id: Id5291f768a4b9d8d9c77804cb697e0c9fb151012
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
QWinEventNotifiers were limited to 62 instances, because of
WaitForMultipleObject's limitation to MAXIMUM_WAIT_OBJECTS - 1 handles.
Use the RegisterWaitForSingleObject API which does not have this
restriction and executes waits in threads managed by the system. A
central manual reset event per event dispatcher is signaled in the
RegisterWaitForSingleObject callback and waited for in the event loop.
[ChangeLog][QtCore][QWinEventNotifier] QWinEventNotifier is not
restricted to 62 instances anymore.
Task-number: QTBUG-8819
Change-Id: I2c749951453a4b699cc50dada0d6017440b67a4a
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
qtreewidget.h:179:53: warning: 'search' may be used uninitialized in this function [-Wmaybe-uninitialized] ^~
tst_qtreewidget.cpp:1564:22: note: 'search' was declared here
QTreeWidgetItem *search;
tst_qtreewidget.cpp: In member function 'void tst_QTreeWidget::expandAndCallapse()':
tst_qtreewidget.cpp:2678:18: warning: 'p' may be used uninitialized in this function [-Wmaybe-uninitialized]
Change-Id: I19c9dc86aa12f36c26ae2475f1854ed17fad0638
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
This threw me for a loop:
Qt D-Bus ............................... yes
Qt D-Bus directly linked to libdbus .... yes
[...]
Note: Disabling Linux Accessibility Bridge: D-Bus is missing.
Also, this is not the Linux bridge, since I was running on FreeBSD.
Change-Id: I1d5a585d4af842f9a66ffffd14c99ab2a8d648de
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
Adds a bit of extra safeguard to ensure we don't accidentally fall into
the generic unix isEmpty(QMAKE_DEFAULT_{INC,LIB}DIRS) code-paths.
Change-Id: Id760b32cd29cb2b9db1390c174e1637e2dddaabc
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
qdeadlinetimer.cpp and qelapsedtimer_*.cpp are not part of the bootstrap
library. Instead of adding them there, just remove this entropy source
from bootstrapped builds (instead of just qmake).
To compensate, store all the bits instead of trying to combine them into
just one 32-bit word. We've got a few new sources from the stack and
libc, plus two more ELF auxvec values that the Linux kernel supplies
(inspired by OpenBSD's getentropy_linux.c, which is used in Bionic).
Task-number: QTBUG-61492
Change-Id: I1d5a585d4af842f9a66ffffd14c999ae8c44f46c
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
This reverts commit e147c3d413. There is
one symbol from QDeadlineTimer that isn't in qdeadlinetimer.cpp for
performance reasons. Anyway, QDeadlineTimer is no longer needed, as the
previous commit removed its need.
Change-Id: I9b79e7f052824a475ba8ab16fe8ad10874794b8c
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Currently a file with a .9.png extension will only have its @2x variant
found if it follows this format:
foo.9@2x.png
Since ".9" should be considered part of the file suffix, it should
ideally be able to look like this and still be picked up:
foo@2x.9.png
This patch makes qt_findAtNxFile() account for .9.* extensions.
This is needed for the image-based style support in Qt Quick Controls
2, which uses 9-patch images.
qmlbench benchmark results using
benchmarks\auto\creation\quick.image\delegates_image.qml with
QT_SCALE_FACTOR=2 show no difference in performance after this patch
is applied.
[ChangeLog][QtGui] High DPI variants of 9-patch images can now be
loaded using the following syntax: "foo@2x.9.png"
Change-Id: I6d1384113bef21b4fe85a104ee6b16869c93b077
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
[ChangeLog][QtNetwork][QNetworkProxy] Setting of network proxies is now
supported on UWP.
Task-number: QTBUG-45495
Change-Id: I71fed57910197760334f8e7d2aeac36c4e0d4f51
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
The return order of the keys is random, so let's sort both first, then
we can compare the lists. Should get rid of the test flakiness.
Change-Id: I2e89d3cc603da6a4667b3677350baa4d40d59b45
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Revert commit a1d4e4c9: We’re now using QWidgetWindow
API from QWidget code.
Add QWidgetPrivate::windowHandle() which returns
a QWidgetWindow pointer. Use this function to remove
casts where QWidgetWindow API is used.
Change-Id: Ie66a69b5c0461f297996118dc907e1d7b3d78df5
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
After d7a9e08f, calling QWindow::setVisible(true)
is a no-op if the widget is already visible.
Use QWidgetWindow::setNativeWindowVisibility() instead
to set visibility for the native window directly.
“Upgrading” widgets to be native widgets now works
again.
Change-Id: Id68dd8241f3afe00670c07e30e2b2ade9c150354
Task-number: QTBUG-61006
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Split into (internal) QTest::qInit(), qRun(), and qCleanup(), that
allow qtquickcontrols2 to initialize the test framework once, repeat
the tests for all built-in styles (Default, Material, Universal), and
finally cleanup things:
$ ./tst_qquickbutton text
********* Start testing of tst_QQuickButton *********
Config: Using QtTest library 5.10.0, Qt 5.10.0 (...)
PASS : tst_QQuickButton::Default::initTestCase()
PASS : tst_QQuickButton::Default::text()
PASS : tst_QQuickButton::Default::cleanupTestCase()
PASS : tst_QQuickButton::Material::initTestCase()
PASS : tst_QQuickButton::Material::text()
PASS : tst_QQuickButton::Material::cleanupTestCase()
PASS : tst_QQuickButton::Universal::initTestCase()
PASS : tst_QQuickButton::Universal::text()
PASS : tst_QQuickButton::Universal::cleanupTestCase()
Totals: 9 passed, 0 failed, 0 skipped, 0 blacklisted, 2215ms
********* Finished testing of tst_QQuickButton *********
Notice that QTest::qExec() cannot be called multiple times, because
it would print the headers/footers/results separately for each round.
Change-Id: Ibb24b694491d4e790db32e40837c3a5c6d9d2840
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
The private feature was only used by QToolBar to solve QTBUG-33082, but
the solution doesn't work, and complicates the macOS platform plugin
quite a bit.
A better solution is likely to use Core Animation layers, which is a
direction we're going in anyways. To make it easier to modernize the
macOS platform plugin, including moving to using layers, we remove the
child NSWindows codepaths for now.
Change-Id: I4b19464be3980fd84dd7af8316d4d5e85ba813b1
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>