when embedding a QWindow into a native win32 window hierarchy, dragndrop
is not working, as RegisterDragDrop is not called.
the parent HWND is wrapped via QWindow::fromWinId(), which is topLevel, but
a Qt::ForeignWindow. it's children are not topLevel.
we therefore add a conditon to call RegisterDragDrop on non-topLevel windows
whose parent is a Qt::ForeignWindow
Change-Id: Id2bfa1130857c21566feae9cb10b62b648d86a72
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
QColor always uses unpremultiplied alpha, but the new QImage methods
were based on the QRgb versions which might be either. This patches fixes
the two new methods so they treat QColor alpha correctly.
Change-Id: I78a5b875ad4e78ad7fde3b811c6187482b4f6d15
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
The special case was needed for INTEGRITY 5, but select support has
since long been added.
Change-Id: Ice25c5becc9d7dcdf6c5bc9eeac36b70e1b94df3
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Louai Al-Khanji <louai.al-khanji@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
The variables were always intended to be located inside the #ifdef
Q_OS_INTEGRITY.
Change-Id: I5e223ff8b5b2a686e4b45e2b8eb731e8406a199f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
More specifically, equivalent declarations to this BSD header are
defined implicitly on INTEGRITY, and the header does not exist.
Change-Id: Ib0bd4b22742ef403c83dab0d72c268c1571b8250
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Some systems, like INTEGRITY, may support Posix/unix but lack system()
in certain configurations.
Change-Id: I8ef09fac03f8d16d791cdf1073f32b1c7c911776
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
cpuid and cpuidex are available as intrinsics, but the GNU-style
assembly is needed for xgetbv.
Change-Id: Ib9f280ac6b69b7ffb9c39289b52fa4af5e2de9ba
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
The GHS toolchain needs names for enumerations that are used for
template instantiation.
Change-Id: I4e184cd77074fd7ece89f21317536e6006ab257d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Using single-process mode of INTEGRITY, there is no notion of user,
so no notion of home directory or tilde expansion.
Change-Id: Ia128b8cd2c7392ba9cf201b74a5118b94d79b4c5
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This avoids several warnings with the GHS toolchain, in the form:
warning #111-D: statement is unreachable
This is because the sizeof() equality test is statically determined,
but the following code is not discarded automatically. It is when
using an explicit else clause.
Change-Id: Ic0584aafc72f70badcf5285ab635f9d99eac161a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
On INTEGRITY, the header does not exist and is not needed for compilation.
Change-Id: I7e473c30d23f213a31fc39ad4ef86c06db299f16
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Repeatedly calling QVector::erase(it) (via QMutableVectorIterator::remove())
results in quadratic runtime.
Use std::stable_partition, which does exactly what the old code tried to do,
except in linear time.
Change-Id: I6e5911ee781071bbb84d72449c969e3b9907da51
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
The capacity of 'result' is reserved, but QVector::clear() always
deallocates. Fix by using resize(int) instead, which at least
preserves capacity when it has been reserve()d.
Change-Id: I198d532661f4f767588c4ce244c2454eb8823e54
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Repeatedly calling QList::erase(it) (via QMutableListIterator::remove())
results in quadratic runtime.
Use std::remove_if, which does exactly what the old code tried to do,
except in linear time.
Change-Id: I682e5e05f04953ae1c8788e5d66335241de39fee
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Repeatedly calling QVector::erase(it) (via QMutableVectorIterator::remove())
results in quadratic runtime.
Separate the removal of expired objects from the sending of the event to
the remaining objects, so we can use QVector::removeAll() for the former,
which does exactly what the old code tried to do, except in linear time.
Use range-for for the sending-loop. This could cause detaches, but since
we modify the container two lines before, and we don't copy it anymore,
anywhere, detaches are impossible.
Change-Id: I9aa6427e3646c8ad92b673fe42a86a0dfe79ee80
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
- Remove Qt::WindowContextHelpButtonHint.
- Make the server label interactive (enable copy).
- Introduce new connection syntax.
- Remove unneeded member variables.
- Use constructor initialization where appropriate.
- Adapt the layout to fullscreen platforms by wrapping it
into a QGroupBox.
Change-Id: I6e397ad082f22ba1e99fc5a17440b2be1f9584f6
Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
Introduce QVERIFY2() to get some information when exactly it fails.
Change-Id: Icaddf2ecae434d0bafc90c18458c5ee067dfd506
Reviewed-by: Edward Welbourne <edward.welbourne@theqtcompany.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
Environment variable storage implementations on Windows Runtime and CE are
very similar. For better maintainability have just one implementation.
Change-Id: I12ec38f7bde3fcc0bcc56face88d5f19cf3b3504
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
This reverts commit d0f57439d0.
This commit had introduced a wrong statement about the sorting.
Change-Id: I2f6ea6f7cfb318bca7bd44c686956ba135b65b20
Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
Previously, lists containing one empty string were returned for the
unimplemented functions.
Change-Id: Ia64b53325420e32076f2bacf22c48885d7121df0
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
QAbstractItemModel::rowCount() is a potentially expensive
operation, so cache its value whereever possible.
Change-Id: Ib2829b20a0fedcbf091a535945b88db323b53fbe
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
KMS and backends using the default logicalDpi() implementation
(EGLDevice for instance) did not correctly check if the physical width
and height are greater than zero. The result is a NaN dpi on systems
where the drivers report a zero size. This in turn breaks font
rendering and various other things.
isValid() is changed to !isEmpty(). This way we check for width and
height > 0 instead of >= 0.
Change-Id: I8cdcf93a116379ae33c65599ad792a3b712518a3
Reviewed-by: Louai Al-Khanji <louai.al-khanji@theqtcompany.com>
Due to kerning and other OpenType features, it's possible
that the advances from the shaping process are fractional, but
this gives uneven glyph positioning for font engines that don't
support subpixel positioning (since the glyph will not match the
expected position, some gaps will look too large and some
too small). To match how e.g. GDI renders this, we round the
advances before setting the glyph positions for engines that
do not support subpixel positions.
[ChangeLog][Windows] Fixed uneven kerning for some fonts.
Task-number: QTBUG-48546
Change-Id: Ic00dc402abf7149aab6bf9b05b42827b805c1a15
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Symmetric text rendering seems to be the equivalent to no hinting
at all since it does subpixel antialiasing in both horizontal and vertical
directions. Let people select non-symmetric, natural rendering as well,
by setting vertical hinting on the font. This is the mode used for many
UI elements in newer versions of Windows (like the title bar of windows
etc.)
[ChangeLog][Windows] Added differentiation between vertical hinting and
no hinting in DirectWrite font engine.
Task-number: QTBUG-48546
Change-Id: I2f75ae2d16fdf26706587d92da43daf29afbbcf2
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
When a fallback font is selected, we need to copy out the
properties from the main font which can be synthesized
by the font engine. In particular, this is weight > normal,
and oblique style.
This is the DirectWrite equivalent of
a856c4a902.
Change-Id: I5d1215c66a433c8a8029c06e7a3dcee287f3f76f
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
This is convenient when we you want to check which permissions the
application has been granted at run-time. On Android device running
Android 6.0 or newer the permissions might be changed by the user,
so there are cases where this will be needed to determine what
APIs are available. On older devices or if the application is built
for an older SDK version, the old behavior is used, that is, the
permissions from the manifest is the permissions the application has.
Change-Id: I17ad588b35b26dd7ab26fa4b749764c1602c6854
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
This follows up 130c2baa93.
Change-Id: I2f6c9b4f995af427cec9a2162b782039debf8564
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
Intrinsics headers are associated with compilers, not OS's. This
change fixes a broken MinGW build triggered by
29bc68cf16.
Change-Id: Ib9e4ea3e25bf49d38a754a246b9433bc078bbb18
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
cmd.exe uses a different set of characters to split arguments on, which
is not compatible with CommandLineToArgvW().
See https://technet.microsoft.com/en-us/library/bb490880.aspx.
Task-number: QTBUG-49641
Change-Id: Ic90fe6b1cbe84978a02fffff141b8f961a43ad28
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
When configure.exe doesn't know what -platform to use, its message is
poorly-formatted (and unhelpful). This at least fixes the formatting.
Change-Id: I0f9fa3106a86606255ba05e80730031f1548faec
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
no idea why it was limited to linux. the variable is already empty on
platforms which don't support it anyway. also, for plugins, it's
consistently enforced as well.
Change-Id: I117f4988a2e301ca98cdc088188d6f8c44ea0ba5
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
DirectWrite is not supported on Windows XP.
Task-number: QTBUG-49711
Change-Id: Ie1df6250814226d53fe4fb3a1c6bd024f6018796
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Restore the condition for deciding what a private header is from
fe383e04 to not check *_pch.h files and third party headers.
This amends commit eddb938c.
Change-Id: Idc55269478e7f2c98fb7debceef8a53c3cb5c657
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Previously, one had to skip 1300 lines of documentation before
seeing the actual code in this file.
Task-number: QTBUG-38890
Change-Id: I5a375cbe6b62575f6040e952a0931ac8ea2dd557
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>