Active X controls may cause WM_SETFOCUS/WM_KILLFOCUS to be sent to
native child windows. Ensure the focus widget is set correctly in
these cases.
Task-number: QTBUG-37126
Change-Id: I2a4cbb148eab48e47ca3f37b2076020c95d213a5
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Added checks if item is already expanded/collapsed to
QTreeView::expand/collapse since the following computations
can be quite expensive. (This is useful when saving/restoring a
lot of item expansion state e.g. after a model reset.)
Task-number: QTBUG-35939
Change-Id: I82c4489f9fe0b8ac61994652a60312e34c46f628
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
These tests seem to fail because denormalized numbers are not
supported on QNX yet, so marking them as expected failures.
- floatDistance(denormal)
- floatDistance_double(denormal)
Task-number: QTBUG-37094
Change-Id: I79dbc78da6e9bef8466264fd2cab4af0ee8b868f
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
These tests seem to fail because denormalized numbers are not
supported on QNX yet, so marking them as expected failures.
- testNumbers_2()
- toJsonLargeNumericValues()
- parseNumbers()
Task-number: QTBUG-37066
Change-Id: Ifec95b936fb70253395dee4d1ca18e85870486a3
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
SPDY is currently assuming it will only receive RST_STREAM messages on
active steams. This is however not always a safe assumption.
Task-number: QTBUG-37100
Change-Id: Ied89a68a209891992ad72daa513066efc1d7c421
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
let the syncqt + qt_module_header.prf pair handle generation of
forwarding headers.
in qtbase this is ineffective to some degree, as the need to create
QtCore's forwarding headers early for QtBootstrap requires qtbase.pro
already doing the real work, but at least we get the verification that
nothing breaks.
Other Modules (TM) will need the full functionality.
Change-Id: Ifd3dfa05c4c8a91698a365160edb6dabc84e553f
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
less platform-specific code. the qfeatures.h generation is already here.
Change-Id: Ied69fb431eed5816fbff63b33be431ee913c2bc8
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
since ever we've thrown out the phonon hack, each header is synced to
only one location (CamelCase headers notwithstanding).
Change-Id: Idfef33db9410908aefe309bc7a3edeae5fc5a671
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
no need to have two mechanisms for the same thing.
the values of %classnames can be comma-separated lists now, so one
header can have multiple classes assigned. conversely, if an extracted
class name reverse-maps to a different file name, it is omitted.
Change-Id: Ia0a35d64764b6376f33b77bbfe59e1df70a3cf1a
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
This has apparently never worked for any negative value. That's because
the compiler sign-extends the incoming expectedValue to fill the 32-bit
register, instead of zero-extending it, and it also expects any returned
values to also be sign-extended.
Task-number: QTBUG-37031
Change-Id: I836eddba7b1acc56bb0ac1d41de7001d06255b9b
Reviewed-by: Sergio Ahumada <sahumada@blackberry.com>
Similary to QWidget's windowTitleChanged, QWindow should also have a
windowTitleChanges signal that's emitted when the title changed and declared
as notify signal for the title property, so that QML bindings can be written
against it.
Change-Id: I6f107c6f0b43d6a959bc2ef96492e1f3e4c28bfe
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
The source was never set for OS-synthesized events, causing duplicated
touch clicks to occur in Quick 2 applications.
Task-number: QTBUG-31386
Change-Id: Ib6d1405815dfb8e57d6446c72a7d6e2a044281ea
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Make the range for detecting relative (mouse mode) configureable
using -platform windows:tabletabsoluterange=50
Task-number: QTBUG-36937
Change-Id: I44f928e53cb41b246c44554ec7f71bfbdf03c147
Reviewed-by: Arthur Krebsbach <Arthur.Krebsbach@Wacom.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
ARM and x86 platform defines are identical, so they can be kept in a
common file.
Change-Id: I6f79cadb2e5ce265e4a5a7a0806379dc8793e539
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Wolfgang Bremer <wbremer@blackberry.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
when the event comes from the windowing system
Task-number: QTBUG-31117
Change-Id: Id136ad8c39c9284cbd6ad126ee71ac655f8f91ef
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
QSharedPointers here are passed by value - good, since it enabled C++11 move semantics,
transparently.
However, when passing such parameters on to assignment operators or other functions,
copies were made where moves would have been sufficient. Thus, add some qMove()s.
Change-Id: Ied1a5edf1bfbb16108dfeefbe85e58ab3d4ef92f
Reviewed-by: Richard J. Moore <rich@kde.org>
xcb atoms are uint32s, so a QList of them wastes 50% memory on 64-bit
platforms. Other parts of the code already store xcb_atom_t's in QVector,
so use QVector everywhere (also leads to less code expansion).
Change-Id: Ib4afb35e499577a7509d04a18b830d9b31f6abd0
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
The Transaction type is larger than a void*, so better use
a vector to hold them.
Change-Id: Ie2c00d053f67addbce6fd8107f659c56ccdd37aa
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
The code populated two QSets with some x and y coordinates and went
on to get the values as a list. Since QSet is unordered_set, those
lists were not sorted, so the code did that manually. It then went
and created the cross product of the two lists as a list of QPoints.
Since QSet is a node-based container and not even an ordered one,
the code pays a hefty price just for ensuring uniqueness of values
prior to sorting.
The new code just cramms everything into vectors, duplicates and all,
then sorts the vectors and only then removes duplicates using
std::unique. Since the sizes of all containers involved are known
ahead of time, make liberal use of reserve() to trim the whole
container business down to three memory allocations.
Change-Id: I7004b1b90b3142acb12d7bb12bcd0014d54e6e02
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
A QList<QRect> is horribly inefficient, and this is private API, so we're free to
change it.
Change-Id: I26c2be51393f883d160b86ed1414f801f211df39
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
QList<QRectF> is horribly inefficent, and this is just implementation,
so we're free to change it.
Change-Id: I7b28a2093efb5826b55c172f48a81cb9c2472e5a
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
SPDY sends multiple header values for the same header key by null-byte
separating them.
This patch maps the multiple values the same way
qnetworkreplyhttpimpl.cpp
does. With this patch applied we can now log on to GMail using SPDY.
Change-Id: I03656ad1695d13b5c3ed252794dc6c89c67c7b97
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
Popup window positions where offset on retina MacBooks
with an connected external monitor.
Fix this by cleaning up the coordinate conversion
functions:
Remove the qt_mac_flipRect overload which tries
to position the window according screen size. This
functionality does not belong inside a coordinate/
type conversion function. Also, it was using the windows's
screen instead of the main screen which is incorrect.
"Y flipping": Use the height of the first screen in
[NSScreen screens], which is documented to always
be the screen that contains the coordinate system
origin. Remove the usages of QApplication::primaryScreen()
("Don't use Qt to implement Qt").
Task-number: QTBUG-36672
Change-Id: I2354d31361f5a4c2c80035cf4c7def939218406f
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Improvements
* Cursor atlas has been recreated using 32x32 cursors which avoids
artifacts introduced from downscaling of the busy cursor
* A white outline has been added to the cursors to improve visibility
on black backgrounds
* Hot spot positions have been tweaked; in particular,
Qt::PointingHandCursor now has a correct hot spot at the tip of the
index finger instead of the center
The assert which checks that the number of hot spots equals the number
of cursors had an off-by-one error as the first cursor is
Qt::ArrowCursor which has an enum value of 0. To determine the number
of cursors, 1 needs to be added to Qt::LastCursor.
Change-Id: I266b6d4cc47d42219854aa5b7e2d8344eb3a920a
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Make sure QPlatformWindow::setGeometry is called for
the QWindow::fromWinId() case where there is no
QNSView.
Change-Id: I72dd11a0eb0f3cfbd09b87ffeac86f2a826e0192
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Qt warns on all touchpad evens when running in a VM.
This appears to be harmless. Remove the warning.
Also, qWarnings are ideally messages to the application
developer about incorrect use of Qt API. In this case
there is nothing the application developer can do
and a qWarning is not really appropriate.
Task-number: QTBUG-36484
Change-Id: I8a50f5a15010f1f064509b83ef4f239b008e0f2b
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Prevent errors when building Qt statically with RTTI enabled:
warning C4743: 'const std::ios_base::failure::`vftable'' has different size in 'qtbase\src\3rdparty\angle\src\libGLESv2\Context.cpp' and '(...)': 16 and 12 bytes
Task-number: QTBUG-36951
Change-Id: Ie0501b986be8610c8293cd5c1aa42b502d7c27a1
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Native text rendering is now functional on core profile too,
as long as the driver allows compiling GL2-style shaders.
Task-number: QTBUG-36993
Change-Id: I83f3cafae714427dda807921ee79e5a64e55cc64
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
It is not going to work with core profile otherwise.
This fixes one of the several problems that make native
text rendering in Quick impossible with OpenGL core profile.
The GL2 paint engine path is not changed, that continues to use
client side pointers.
Task-number: QTBUG-36993
Change-Id: Icfbd6efc894a79a3a84568fb792c1cb6692469cb
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Add comments to explain the magic placeholders for default
permissions and features, and move the INTERNET and
WRITE_EXTERNAL_STORAGE permissions from the manifest so that
we use the same mechanism for all default permissions.
Change-Id: Ia62dd4314c1c10eb201b5203772ffe88b1ce7a04
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
This provides a way for androiddeployqt to pregenerate the
entry list cache for the assets file engine, greatly improving
performance the first time a directory is read. If the file
is not present, the cache will operate as before.
Some numbers from testing on Samsung Galaxy 2, doing
QDir::entryList() on a directory inside the assets folder:
10 files
--------
Before:
280 ms for first read,
5 ms for subsequent reads
After:
2 ms for reading pregenerated cache
5 ms for first read
5 ms for subsequent reads
2000 files
----------
Before:
1000 ms for first read,
150 ms for subsequent reads
After:
5 ms for reading pregenerated cache
150 ms for first read
150 ms for subsequent reads
4000 files
----------
Before:
3000 ms for first read
300 ms for subsequent reads
After:
8 ms for reading pregenerated cache
300 ms for first read
300 ms for subsequent reads
[ChangeLog][Android] Speed up first time directory listing
in assets by using pregenerated entry list.
Task-number: QTBUG-33704
Change-Id: I3973a1d823b8b38e88a2cc7843326cbe885f8bc2
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
This is more consistent with e.g. qt.conf, where section names also
start with an upper case character.
Change-Id: I9ddaf72baeb9334d081807412512242d5d46cbbf
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Improve the sharing of the devMode between the QPrintEngine and the
print dialogs, in particular start to change the dialogs from directly
accessing the QPrintEngine internals.
Change-Id: Ieb4649c19b936433c85207297a0b6e59356c3880
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
The use of the driver name and port name in the DEVNAMES structure
is no longer required within the Windows print engine and dialogs.
The CreateDC docs clearly state any driver value passed in for a
printer is ignored. The PRINTDLGEX docs also state only the name
is actually used. The use of the port name is not required as the
DeviceCapabilities api works fine with just the printer name and
the FILE: port can be manually handled.
Change-Id: I7765d73d4a31b1a3c5dab55ee4cfd3580bcf9ad7
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Bump the ANGLE version and remove the extra info not required by
universal binaries.
Change-Id: I59983d28e1936fb42aa2def4ca785219b0c38996
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
As a safety precaution, ANGLE writes the commit hash, optimization level,
and adapter ID to its binary format. However, this hurts portability
between systems by making shader pre-compilation/caching artificially
system-specific.
The shader compiler doesn't take the target adapter into account, and the
optimization level information discarded by ANGLE anyway. So, allow ANGLE
to bypass these checks on systems where precompilation is required (i.e.
WinRT). The default mechanism still applies unless
ANGLE_ENABLE_UNIVERSAL_BINARY is passed as a define.
Change-Id: Iec6d833fd7010ed163978557238f00e7ac6ae416
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
This brings Qt's copy of ANGLE up to ANGLE master, which contains a number
of bugfixes as well as restructuring for the upcoming ES 3.0 support. This
version brings considerable stability improvements to the D3D11 renderer.
The static translator project files have been merged to align with the
ANGLE source tree.
Two new patches have been applied to fix errors in upstream ANGLE:
- 0011-ANGLE-Fix-compilation-error-on-MinGW-caused-by-trace.patch
The event trace header in ANGLE's third_party directory has an unused
template which causes a compilation error on MinGW. Disable this part
of the code.
- 0012-ANGLE-fix-semantic-index-lookup.patch
The sorted semantic index table was returning a direct mapping to the
new indices, instead of the old indices. This caused a mismatch in the
GL type lookup for the translated attribute.
All other patches have been rebased, removed if no longer needed,
and renamed to clear up the application order:
- 0001-Fix-compilation-for-MSVC-2008-and-std-tuple.patch
No changes.
- 0001-Fix-compilation-with-MinGW-mingw-tdm64-gcc-4.8.1.patch
No changes. Renamed to 0002.
- 0001-Fix-compilation-with-MinGW-gcc-64-bit.patch
No changes. Renamed to 0003.
- 0001-Make-it-possible-to-link-ANGLE-statically-for-single.patch
Modified patch to adapt to new DLL loading structure. Renamed to 0004.
- 0005-Fix-build-when-SSE2-is-not-available.patch
No changes.
- 0011-Fix-compilation-of-libGLESv2-with-older-MinGW-w64-he.patch
No changes. Renamed to 0006.
- 0006-Make-DX9-DX11-mutually-exclusive.patch
Made the patch less invasive by allowing D3D9 code to run unless
explicitly disabled (e.g. on WinRT, where it doesn't compile). This
makes the patch smaller and allows Desktop Windows to compile both
D3D9 and D3D11 codepaths. Renamed to 0007.
- 0015-ANGLE-Dynamically-load-D3D-compiler-from-a-list-of-k.patch
No changes. Renamed to 0008.
- 0012-ANGLE-Support-WinRT.patch
Made D3D11_level9 initialization only possible if D3D9 is disabled.
This makes sure Desktop PCs use the old D3D9 codepath instead of
the less-tested D3D11_level9 codepath. Renamed to 0009.
- 0013-Enable-D3D11-for-feature-level-9-cards.patch
Conveniently smaller patch due to buffer implementation improvements
upstream. Renamed to 0010.
- 0014-ANGLE-D3D11-Alwayls-execute-QueryInterface.patch
This was a fix for patch 0009, so was integrated there. Removed.
- 0016-ANGLE-D3D11-Fix-build-on-desktop-Windows.patch
This was a fix for patch 0009, so it was integrated there. Removed.
- 0001-ANGLE-Fix-compilation-with-MSVC2013.patch
Fixed upstream. Removed.
- 0007-ANGLE-Fix-typedefs-for-Win64.patch
Fixed upstream. Removed.
- 0004-Fix-black-screen-after-minimizing-OpenGL-window-with.patch
The issue has been fixed in Qt itself. Removed.
- 0008-DX11-Prevent-assert-when-view-is-minimized-or-.patch
The cause of the problem was the same as patch 0004, but for the
D3D11 codepath. Removed.
Change-Id: Id69484ab3a3e013050741c462fb1b06dfb0fd112
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>