QVistaHelper::drawTitleBar() used the font returned by
QApplication::font("QMdiSubWindowTitleBar")
(typically "MS Shell Dlg 2",16) to calculate the
bounding rectangle of the title text. However, if the window
is a toplevel QVistaHelper::drawTitleText() uses the theme font
obtained for WIZ_TMT_CAPTIONFONT (typically "Segoe UI",11.25)
to draw the title (since it is a window title). This causes the
font to be cropped when changing the application font or spurious
black rectangles to occur.
Fix this by exposing QWindowsFontDatabase::LOGFONT_to_QFont() via
QWindowsNativeInterface, and creating a QFont from the LOGFONT
obtained for WIZ_TMT_CAPTIONFONT and using that for the
bounding rectangle in the case of toplevel windows.
Split up the HFONT QVistaHelper::getCaptionFont(HANDLE hTheme)
into static LOGFONT getCaptionLogFont(HANDLE hTheme) and use
that to obtain the HFONT in drawTitleText() or QFont in
static QFont getCaptionQFont(), respectively.
Task-number: QTBUG-46360
Change-Id: I9069b403f7f948b6738eec452cb7584be45b8a29
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
The -fPIE option is now accepted when using GCC 4, which means it
is available for backward compatibility for clients using
CMake 2.8.11 or older which makes use of the
POSITION_INDEPENDENT_CODE feature.
Conditionally use that feature for old versions of cmake with
GCC 4. Restore the tests for those versions, and clarify the
situation in the ChangeLog.
Change-Id: I5a06b155dda7db559d86841a2b34fd8ed95acbd0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Commit 3eca75de67 introduced the #error
nagging about use of -fPIE, but it makes the transition quite difficult
for people using other buildsystems. So let's give people a grace period
and enforce only for GCC >= 5.
Clang is affected, but differently. The problem only happens with -flto
-- that is, it happens when the linker detects that it's creating a
final executable. Maybe -Wl,-pie would fix it.
Change-Id: If4d5ac8db0ed4a84a3eaffff13e275edc29a72b7
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Reviewed-by: Dmitry Shachnev <mitya57@gmail.com>
We take some shortcuts still because we know that with ANGLE the header
with the extension constants is always available. A proper implementation
would not rely on the constants being available and would dynamically
check for the extension and would take care of defining the constants if
not available. However, just getting the extension list to check if the
functions needed to get the display are available is already a chicken-egg
problem so we won't go there.
Using eglGetProcAddress properly solves the issues with static builds too
since this always works.
Task-number: QTBUG-46284
Change-Id: Iff23669ebacaffa0c5f76fd2c928af689307874f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Gunnar Roth
Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
Old implementation had complexity O(oldSectionCount); replace it with
O(hiddenSectionCount) algorithm. This boosts performance in case of the
vertical headers for models with big row count.
Change-Id: I7bb02f5579ce83fbdecf5f8c3aa7dcc0ac60dd40
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
This is a follow-up change to commit 3eca75de67
to mention changes required to CMakeLists.txt for users of Qt.
Change-Id: I1c9ed162427cdc620f998ccf266d59886901c28d
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Must not add -L without a directory path, so check that
QMAKE_LIBDIR_EGL actually has a directory to add.
Change-Id: I81920e3427f348739ced045a83f53265d72b261a
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
EGLFS backend does not use global sharing context. WebEngineWidgets was
failing to access textures created by WebEngineChromium and textures
were ending up as black rectangles.
This fix initialises window surface context with shared context and
fixes the bug.
Change-Id: I97189c06ee593ba55f353f44c23233175ebd3cba
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
The symbol is simply renamed in static builds, allowing wrappers of the
library to still call the function if needed.
Task-number: QTBUG-46209
Change-Id: I5d4ad2df59f206a3794b99364d122f9d0f12f8c6
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Tim Blechmann <tim@klingt.org>
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
In order to ensure that the same text will be used in both QDateTimeParser
and QDateTimeEdit, use the QDateTimeParser context for the AM and PM
strings.
Task-number: QTBUG-251
Change-Id: I89b0809825251181440bf19cbe5828024a43acfb
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
After commit 3eca75de67 the use of
<Module>_EXECUTABLE_COMPILE_FLAGS becomes mandatory for 2.8.11 or older.
Therefore use it in test_use_modules - that's supposed to work with all
cmake versions it seems - and bump test_interface to require 2.8.12.
Change-Id: I7cfb6c6f1e8a97be916d372b9d9148490926693c
Reviewed-by: Lisandro Damián Nicanor Pérez Meyer <perezmeyer@gmail.com>
Reviewed-by: Stephen Kelly <steveire@gmail.com>
Fixed regression from Qt4 that close button could't be disabled
from the tool window. With this patch buttons are hidden before
using button hints like it's on Windows.
Change-Id: I00f03ff9528ccae3b1136312404452b9415953b4
Task-number: QTBUG-45971
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
This involves deinlining some private class stuff to keep things
readable and maintainable.
Task-number: QTBUG-46002
Change-Id: Ie2888aa6c16a6f5182b61fbaa43288cfcc96cbc4
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
The connection to the deviceListChanged() signal may be queued. To make it
work our custom types have to be registered.
The problem is only visible with input backends like evdevtouch that live
on their own thread.
Task-number: QTBUG-46069
Change-Id: I4c03e8031e4337b5e711a3bd2cf405d15d6ce214
Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
Two (?) tests can fail: what they actually try to test is that our application
quits on the second single shot timer (2 s. timeout) and not on the first one
(timeout 1 s.) - on the first timeout we either ignore event, or we still have another
window and should not quit yet, on the second timeout we actually do quit the app.
The test checks this in a quite fragile way, counting the number of timeouts for the third 100 ms
timer. It looks like on OS X (VM-only) there is some delay (~500-600 ms) before we receive the
first timeout so the count is always 14 or less, making the test to fail.
Change-Id: I9e8728e6c956025d91528f4195982767a5d3d320
Task-number: QTBUG-46164
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
On OS X 10.7 and earlier, waitid() never sets si_pid, even when using
P_PID. So on OS X, check if waitid() works, and if not, use the same
codepath as if HAVE_WAITID were not defined.
Change-Id: I64331a090f9358bb01f435954d3dfd3ab430a96c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
baselineexample.pro is missing CONFIG += testcase, so,
make check succeeds without doing anything. The test seems
to connect to some network server to retrieve baseline images,
but that infrastructure apparently no longer exists.
Change-Id: I98f4fe5ef8a508fda90e408df2781a944eb99a60
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
QTreeViewPrivate::updateScrollBars depends on a correctly set up
viewItems vector. If a delayed layout is pending, we must call
QTreeViewPrivate::executePostedLayout before accessing any stored model
indices.
Task-number: QTBUG-45697
Change-Id: I55fcbaf81f225b26181c2cf739283740b85dd16a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Now its maximum size is QByteArray::MaxSize not INT_MAX.
Change-Id: Id548b3cb94f910a3212665182280a3a2948dd93e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Commit 083c9269 (Try to ensure that -fPIC is used in CMake
builds, 2015-05-11) added a raw -fPIC to the INTERFACE_COMPILE_OPTIONS
of Qt5::Core, which affects all consuming compilers.
Use the qmake variable $$QMAKE_CXXFLAGS_APP instead, which at least
currently contains only the -fPIC variable or harmlessly expands to
nothing. If the content of that qmake variable changes in the
future, a $$QMAKE_CXXFLAGS_APP_PIC variable should be extracted in
qmake and used here.
Don't use the POSITION_INDEPENDENT_CODE feature of CMake. That adds
the -fPIE flag for executables, which is explicitly what qglobal.h
forbids since commit 3eca75de (Make qglobal.h complain if you
use -fPIE, 2015-05-11). The current behavior of that CMake feature is
tracked here:
http://public.kitware.com/Bug/view.php?id=15570
Change-Id: I5c5bcc40fe4b310b55a681a3505f45c50adfa054
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Do not try to automatically register the meta type for Q_GADGET that
are not default constructible.
This fixes a source incompatibility in the function pointer syntax
of QObject::connect when such types are used as an argument of a signal.
Task-number: QTBUG-45721
Change-Id: I3065f6d57bc1f37e16988d2dee99118de250ca56
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
The Qt TestLib examples are just tutorials so updated
the qdocconf to use the default thumbnail in the
Qt Creator welcome screen.
Task-number: QTBUG-41996
Change-Id: Ia04a42a92e414c97a426b6095a62621a348e7de0
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
Check for a valid license not only in configure, but also in qmake.
To limit the runtime overhead we cache the day of the last run in
a .stash file. This allows us to run licheck only for the top-level
qmake call, and only once per day.
This requires an updated licheck executable that supports the new
check mode.
[ChangeLog][Tools][qmake] For commercial builds, qmake now checks for
a valid Qt license. This requires setting up a Qt Account (or
.qt-license file) on the development machine.
Change-Id: I2c2a05a4602cc661560568b76ddf520cb8134769
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
In the unix commercial packages, licheck so far has been a shell
script that redirected to the 'right' licheck. To simplify things
we now resolve the right executable path in configure itself.
Change-Id: I1183d000a11bf42729f3e0405a0bc1d4b618933c
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
When timers are used in connection with widgets, it is possible that
additional events occur (e.g. deferred deletions). If these happen, the
event dispatcher also has to handle timers after handling these events
as timer events might not be handled at all otherwise. So instead of
returning early, we check whether timer events happened and might
return afterwards.
Task-number: QTBUG-46299
Change-Id: I3ef0fb23b3ae9a1e13e42497bcfb0976cf4e1b91
Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
Remove the insignificant_tests CONFIG option in favor of a BLACKLIST
file. The tests blacklisted have been found using CI builds logs.
Change-Id: Iffc9043654a9dcd97d55e262011c8daff6f4e60f
Task-number: QTBUG-25300
Task-number: QTBUG-45502
Task-number: QTBUG-46325
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
This allows creation of applications for
- x86
- x64
- arm
While the arm build theoretically also allows to launch on
a mobile, it currently asserts on runtime. Either we will
create a new mkspec for Windows 10 Mobile in the future,
or do runtime checks for the environment. That also depends
on whether there will be a separate SDK by Microsoft.
Change-Id: I510bfc88410a5b5a1eb7c37f7f43888d1e5dda0d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
To cover the situation that the process ID got reused, the current
process name is compared to the name of the process that corresponds
to the process ID from the lock file.
If the process names differ, the lock file is considered stale.
[ChangeLog][QtCore][QLockFile] Detection of stale lock files got more
robust and takes the name of the process that belongs to the stored
PID into account.
Task-number: QTBUG-45497
Change-Id: Ic3c0d7e066435451203e77b9b9ce2d70bfb9c570
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: David Faure <david.faure@kdab.com>
Do the correction of top level window flags also in case
Qt::Window|Qt::WindowFullscreenButtonHint is passed,
since it is not supported by the platform anyways.
Task-number: QTBUG-31111
Change-Id: If035d7086e48174873b6b91acf90f730ea40b5a8
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
This function was introduced alongside the support for Unix file
descriptors, so it's a good indicator of whether Unix FDs are
supported. Ever since dbus_minimal_p.h, however, DBUS_TYPE_UNIX_FD may
be defined even if the system libs don't support it.
In order to fix this issue, I had to fix what was apparently a merge
conflict resolution mistake and remove the #ifdef around the test. Doing
the latter is a good idea due to moc being unable to find <dbus/dbus.h>.
This was tested with both linked and dynamically-loaded libdbus-1.
Task-number: QTBUG-46199
Change-Id: I66a35ce5f88941f29aa6ffff13dfb4b5438613a3
Reviewed-by: Jani Vähäkangas <jani.vahakangas@theqtcompany.com>
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
This fixes a problem with the margins not being correctly respected as the
functions introduced previously would set a different property to what was
being queried in this case.
Change-Id: I3458c8e46239276a296d17aa80da7330c85fcf0a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Google scan play store apps for the openssl version string which leads
to false positives since we record the version we were compiled against
even though we don't link it directly.
Task-number: QTBUG-46265
Change-Id: Iefd0e0954149c17350d49f57f9f374938124d7b8
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Otherwise the type is registered with the wrong name
Change-Id: I68ec3a05e2528816626e648b46ccc9d70b004866
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
ABS_MT_TOUCH_MAJOR is given in surface units rather than in finger units.
Also it's not the width of the touch rect but the length of the major axis
of the contact. Currently we don't support the orientation of touch rects,
so report square rects with side length of ABS_MT_TOUCH_MAJOR.
Change-Id: I16c861f30128438ec4a1cae983700f8da4b7b4b7
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
The result doesn't look good when you paint with the MinimumDiameter (3 px).
Also don't paint released touch points, because we can't get neither the
touch rect not the pressure for them.
Change-Id: I8d17c4884ae41545b2cd3f208afa73262133456c
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Clear bytesFromSocket when the socket is not open instead of
reading in QFtpDTP::socketConnectionClosed(), which is connected
to QTcpSocket::disconnected().
Task-number: QTBUG-46112
Change-Id: I0e5e47448f88601eb5c62fe9ba92e1a461323364
Reviewed-by: Timur Pocheptsov <Timur.Pocheptsov@digia.com>
Include class name, object name and file name when available.
For the bug in question:
QIODevice::read: device not open
becomes
QIODevice::read (QTcpSocket, "QFtpDTP Passive state socket"): device not open
Adding a static function also makes it easier to set a breakpoint
and find the culprit.
Task-number: QTBUG-46112
Change-Id: Ic181d8ab292912d1acbcc3cb84d9679fe4842ca0
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Alex Trotsenko <alex1973tr@gmail.com>
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
qwindowsdirect2dpaintengine.cpp(365): warning C4838: conversion from 'const qreal' to 'FLOAT' requires a narrowing conversion
qwindowsdirect2dpaintengine.cpp(928): warning C4838: conversion from 'const qreal' to 'FLOAT' requires a narrowing conversion
qwindowsdirect2dpaintengine.cpp(928): warning C4838: conversion from 'int' to 'UINT32' requires a narrowing conversion
qwindowsdirect2dpaintengine.cpp(1398): warning C4838: conversion from 'qreal' to 'FLOAT' requires a narrowing conversion
qwindowsdirect2dpaintengine.cpp(1426): warning C4838: conversion from 'double' to 'FLOAT' requires a narrowing conversion
qwindowsdirect2dbitmap.cpp(78): warning C4838: conversion from 'int' to 'UINT32' requires a narrowing conversion
qwindowsdirect2dwindow.cpp(166): warning C4838: conversion from 'double' to 'BYTE' requires a narrowing conversion
Change-Id: I6992260ed2696fa4c47c1c0dd666f448f115879a
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
since commit 22edeb3f4 (private; anno 2002), the generator would extract
-prebind and translate it into a PREBINDING property in the pbx file.
the writeout to the pbx file got lost in the rewrite for Xcode 3.2
(commit 66f6e5b1; anno 2012).
this isn't particularly bad, as prebinding is obsolete since OS X 10.3.4.
we now go the last mile and remove the handling of the flag. that means
that remaining projects which still use it (meaninglessly) will get a
warning from Xcode, which is kinda what we want.
QMAKE_LFLAGS should have never been part of the library iteration loop.
it was added there in the prebind handling commit, so we can get rid of
it again now.
Change-Id: Id7dee2b1e248bb2bd7aa7a3e66f82057921afffd
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>