The change would remove the noexception hint on MSVC versions that
doesn't support noexcept but supports their older 'throw()' hint.
Change-Id: Ie5163f2413522f427279f59c8562c0ce4769bc82
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
There is no ApplicationsLocation on iOS (at least not one that
is public API). NSApplicationDirectory just points to a non-existing
write-protected path inside the app sandbox. Rather than returning something
we know is wrong, it's better to return an empty string.
Change-Id: I2ebc151f15509ed5699af05def5c708a56eeaf31
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
NSDesktopDirectory points to a non-existing write-protected path inside
the app sandbox. According to QSP documentation, we should fall back to
use the home directory instead.
Change-Id: I2c370af7758ac043eddcff84aa287eacc754ae38
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
This was completely broken until now because the ranges were assumed to be
from the OS/2 header map. These are actual unicode ranges from the cmap,
so they need to be matched by looping over the values and checking if they
fall within a given writing system range.
Task-number: QTBUG-44155
Done-with: Peng Wu <peng.wu@intopalo.com>
Change-Id: I933429627c4dbf3377f41c9281df5a801057698f
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
Moves some of them to the .rodata section, the rest at least to
.data.rel.ro[.local].
Change-Id: I85676ddf22b0c0097f3f0dce4c3dc018dc29d045
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
QGraphicsWidgetPrivate::init had a special code path for setting
the item's parent. For some reason that code path caused the
ItemChildAddedChange notification not to be sent to the parent
element, which is wrong. Instead use the "normal" path, which is
what the QGraphicsItem constructor does anyhow.
Change-Id: Iad84cae05d797022a45977d35ca00c80c17c306a
Task-number: QTBUG-45867
Reviewed-by: Andreas Aardal Hanssen <andreas@hanssen.name>
...by dropping the use of qIsNull(), which, in Qt 4, distinguished
between -0.0f and +0.0f.
But mathematically, whether x, y, z are ±0 doesn't change the fact
that the result is the identity element (x, y, z should contain the
identity element for addition and w the one for multiplication), or
the null element (additive identity).
So using qIsNull() was wrong even in Qt 4. In Qt 5, qIsNull() returns
true for both ±0, so we can just as well compare to 0.0f instead,
which allows to mark these functions constexpr (qIsNull() can't be).
Do so.
Change-Id: I78b1fa7890036dd3cb4de7f90b75d439f9835e73
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
currently when adding an event it is not possible to know when processing
it has finished.
In particular if the event is ignored no method is called.
Adding virtual methods to the private implementation (binary compatibility).
These methods allow for extended automatic testing of the state machines.
(cherry picked from commit e7feb95628)
Change-Id: Iaa48fb9d7f6a6cde1a8a7a2bece7b4df55c147e8
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
The behavior of "external" and "internal" transitions is identical,
except in the case of a transition whose source state is a compound
state and whose target(s) is a descendant of the source. In such a case,
an internal transition will not exit and re-enter its source state,
while an external one will.
[ChangeLog][State machine] Added support for internal transitions.
Change-Id: I9efb1e7368ee52aa2544eb84709a00ae3d5350d3
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
As nothing changes in the state machine when selecting transitions for
events and then calculating the exit- and entry-sets, some calculations
can be cached.
The exit set for a transition was calculated multiple times. First in
removeConflictingTransitions, where the two loops would each calculate
them multiple times. Then secondly in microstep(), which would calculate
the exit set for all transitions.
Transition selection, exit set calculation, and entry set calculation
all calculate the transition domain and effective target states for
transitions.
Change-Id: I217328a73db2f71e371eb5f60a0c7b222303f0ca
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
Add the noexcept attribute to all move constructors and assignment
operators in QtGui that didn't already have it.
Change-Id: Idcdf79ae8349b8793e7394b5ae7c08e6111fbc9a
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
It's undefined behavior to left or right-shift a signed integer such
that the sign changes. Since SymbolCsbBit is 31, make sure we use
unsigned numbers.
Found by ICC
qplatformfontdatabase.cpp(614): error #68: integer conversion resulted in a change of sign
Change-Id: Idf715b895bac4d56b4afffff13da78d294b1248e
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Don't remove ampersands when setting the text: they will be removed when
the text is displayed. This fixes double removal of ampersands.
[ChangeLog][QtWidgets][QToolButton] Fix double removal of ampersands
Task-number: QTBUG-23396
Change-Id: I56bf50eb24aae32a81d614824aca0b63363587c8
Reviewed-by: Timur Pocheptsov <Timur.Pocheptsov@digia.com>
Always accept drag enter events if the mime type and the drop actions
matches. Whether the drop can actually happen on the currently hovered
index will be decided in the following drag move event.
Change-Id: I27e865cb65513dfe3f57ad3f1bc8cebf4c29a692
Task-number: QTBUG-45037
Reviewed-by: David Faure <david.faure@kdab.com>
Make it clear (just like the other methods) that the indexes refer
to the source model, not the proxy model. There was already a note
in the documentation, but it was at the end of it; instead, change
the formal arguments names.
Change-Id: Ia9592f2b080ff276a62de1713a9623e0f3a50cf6
Reviewed-by: Tobias Koenig
Reviewed-by: Sérgio Martins <sergio.martins@kdab.com>
Reviewed-by: David Faure <david.faure@kdab.com>
There is no any sense in detecting the encoding of an empty string ;)
Change-Id: I1c7af07bd7c3e7e7cf67421a2cb3a1123ca57650
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
The init()/cleanup() code in tst_qfiledialog and tst_qfiledialog2
currently differs and fails to clean up the settings file
since it only removes the legacy settings under the Qt group
and instantiates a new QFileDialog while the QSettings class
is still in scope. Also, it has no means of clearing the
setLastVisitedDirectory(), which causes the
tst_QFiledialog::completer() and tst_QFiledialog::history() tests
to interfere, leaving the settings in an invalid state.
tst_qfiledialog2 does not use QStandardPaths::setTestModeEnabled(().
- Ensure the last visited URL is always clean by
making QFileDialogPrivate::setLastVisitedDirectory()
static and calling it from init().
- Introduce a cleanupSettingsFile() function to the tests that
cleans both groups and call it from initTestCase() and cleanup()
to ensure a clean state.
- Add QStandardPaths::setTestModeEnabled() to tst_qfiledialog2.
Fixes sporadic test fails when executing
tst_QFiledialog::completer() and tst_QFiledialog::history()
in a sequence.
Task-number: QTBUG-45764
Change-Id: I24de3caabf77be067b385d64ff11b7a07fe12b72
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
This one has not been unsed for ages (since Qt3?).
Change-Id: Iaf514db1b698b34a303f34c150b72db989eb176c
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Many times set but never used.
Change-Id: I297f21d4b9878e5f9559a2dfdb2d3de34107bb7d
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
1. Checking if `db->count == 0` inside the
`for (int x = 0; x < db->count; ++x)` loop makes absolutely no sense;
2. The family gets loaded just a line above (ensurePopulated()).
Change-Id: I72dbd42565c4f5a5d9ff8879f10ee0ece7298fa7
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
There is no sense in comparing fonts with different resolve_mask-s.
Change-Id: Icfdaf494fce8a59b7138d96fdf7354cc0514ca6a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
When resolve_mask is 0, the font inherits just everything, and there is
no need in checking for any resolved attributes;
the resolved font always inherits dpi, so do not check it either.
Change-Id: Ie5d7ced0859d46a9237447e29051a22569480a51
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
In Android 5.1 the field name for the inset state member in
InsetDrawable changed from mInsetState to mState.
Task-number: QTBUG-45714
Change-Id: I0ebada1ef90954013e5357cbd10df925f8f05295
Reviewed-by: BogDan Vatra <bogdan@kde.org>
Completes the inplace converters so that we can rely on inplace
conversions to succede as long as the image depth is the same.
Change-Id: Ia1ae34b5de1bc16e87ff5403bdacfcae44a22791
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
Some inplace conversions would not set the requested image format in
the returned image, due to the same conversion being used for several
destination formats.
This patch ensures all inplace conversions return the right format,
and adds testing infrastructure to easily test iterate over all formats
so that they all can be tested.
Change-Id: I68ab17a713ddb2aa8ed6aaf0a0a1ec8bbcb56090
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
- Introduce QDebugStateSaver for all debug operators.
- Remove the "Flags=" from enumerations since their type is now output
by default.
- Added some spaces since the previous formatting relied on space=true
as a result of some debug operators erroneously returning debug.space(),
which is now fixed in qtbase.
- Fixed formatting, added noquote() where necessary, added some newlines,
used stream modifiers instead of QString::number(n, 16) to output
hex numbers.
- Fix indentation.
Change-Id: I64123a4262916e21448cda2aa61ae1100f07291a
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
The one converters from RGB30 was misplaced in the method table, and
the unpremultiplication from A2RGB30 to RGB30 had an underflow mistake
when alpha was 2.
Change-Id: I92c11ede28611a3dbdce72aca1898845c120c209
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
X server may return an empty physical screen size, for example
on VNC, Xephyr or some not very well supported hardware.
In this case it's possible to use the size of the virtual desktop,
but until now it was done only in the QXcbScreen constructor.
Move it to QXcbScreen::updateGeometry() and calculate physical screen
size using the DPI of the virtual desktop.
Task-number: QTBUG-45564
Change-Id: I6b757818a2fcefdd7b2c0aa31b840a88d625d6ae
Reviewed-by: Daniel Vrátil <dvratil@redhat.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
Due to a behavior change.
This reverts commit 9157087334.
This reverts commit 16c32c6dfb.
Task-number: QTBUG-37946
Task-number: QTBUG-45552
Task-number: QTBUG-43563
Change-Id: Idf8df7d8f22465e8f6b51acb68993ac97208b184
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
Changed state in MouseRelease so that QTreeView
does not end up in wrong state if drag is started
but not completed.
Task-number: QTBUG-44773
Change-Id: I0b665d2944f2b696bc4b7e79689d110aefa3f194
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
There is no reason to use the more expensive ARGB32 conversions when
there is no alpha channel involved.
Change-Id: Ifcb325352b8c806ef755db385121a2939c5825b2
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
Done by using in-place removal from the list of transitions using
iterators.
Change-Id: I6dced4b214b49b3dcd3ba19ca4cd81a601f81bb6
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
Fixed issue that text/uri-list mimedata got from QMimeData::data()
was corrupted after setting it back via QMimeData::setData()
Change-Id: I2377523a9286519402ab9127ed7f3fa66e39a679
Task-number: QTBUG-45486
Reviewed-by: David Faure <david.faure@kdab.com>
Some QImage methods were not preserving image metadata, or only
preserving some of it. This adds the missing parts and adds a test for
metadata.
Change-Id: Ib5892a23e49dfde5ea26074d3deaa887fa930c6b
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
In certain situations, when reading a large amount of data from
sequential devices with QIODevice::readAll(), content was lost when
passing a qint64 value > QByteArray::MaxSize into QByteArray::resize(),
which takes an int. The result of the conversion to int is either negative or
calculated mod 2^32. In any case, it will at some point be < QByteArray::size(),
which prompts QByteArray to truncate, losing already-read content.
Fix by adding an explicit size check before calling QByteArray::resize().
This shows once more that an API that uses int for sizes is dangerous.
Esp. on 64-bit platforms.
Change-Id: I30fbfad0bf37476c34141b6f3786e7e0fc8e1e74
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Swap title and message parameters in the QBalloonTip::showBalloon() call.
It was wrong in f277c07467 on xcb platform.
Task-number: QTBUG-43428
Change-Id: I18e354703d9fa9c196b2789e6df263debdb7ce06
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
This enables rendering of Emoji symbols.
Task-number: QTBUG-45811
Change-Id: I7cb128dab717870929e02ea9ec253f36fef29804
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
The foreign window implementation was trying to handle parent/child
relationships, but it's not supported by the platform implementation
and was therefore causing more problems then it was solving. E.g.,
even simple use cases, such as the parent moving or re-sizing its
geometry would not be handle correctly.
With this change the parent/child relationship is removed and the
geometry of the foreign window will always expect the geometry to
be in the global coordinate system.
Task-number: QTBUG-43391
Change-Id: I02a1f9cb9eb9fb5ace9b7e912c523bda7c5bfd5c
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
As per GL_EXT_swap_control this results in BadWindow.
Task-number: QTBUG-45705
Change-Id: Ia3e3f66f326d8f6145d82f33f964b0d6996f0959
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
For classes declared in a namespace, QDoc needs to take account
the fact that its base classes typically are not qualified with
the namespace name if those base classes are from the same
namespace.
There already was code for this, but it was disabled by a macro.
This change re-enables it, and adds an additional check to
restart the search in valid namespaces only.
Change-Id: Ia07dcb783b59de5fc9ddcfd43000a63c6c74ebe1
Reviewed-by: Martin Smith <martin.smith@digia.com>
Since Qt 5.0 (commit 09dd19df) sign is ignored when testing
whether a QPointF or QSizeF is null.
This updates the documentation accordingly.
Change-Id: I3de1c748f3caa63b8bd8990006de5ba572eac83e
Task-number: QTBUG-45669
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
When QDoc constructs the full path to a documentation node, it
must construct a clean anchor reference. Intra-page links use
a different code path, so the links e.g. from Member Functions
list to their detailed descriptions always work, but using the
link command to link to functions with certain characters (such
as 'operator==') failed because the node name was used as-is and
not sanitized ('operator-eq-eq').
This change moves HtmlGenerator::cleanRef() static function to
its parent class, Generator, and takes it into use in
Generator::fullDocumentLocation().
Change-Id: Ic939ffa3ae0f4495ef2a30eff0d4a1de65ea3e8f
Task-number: QTBUG-45629
Reviewed-by: Martin Smith <martin.smith@digia.com>
Use QWidget::move() to position floating dock widgets.
Add a test for QMainWindow::restoreDockWidget().
Task-number: QTBUG-45780
Change-Id: I945917728a663916e8c225b9d3d2a75fa508d68f
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
...and port to the remaining one.
Can't do the same for QMatrix4x4, because that class is exported.
Change-Id: I5448921af9e9194532be1b9f8d739b5c418a5e0b
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
The compiler-generated one is just fine.
Change-Id: Iaacc56d4224c69b66823cc64640a00117c44d3cc
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
recent change ad03511256 made r be
arbitrary, not just -1, 0, +1, and now it doesn't make sense to have two
unneeded unconditional branches in the sort-by-size case
Change-Id: I9d80210846e89e3e8c574f0c32e04b05202b8a5b
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Even with SSE4 optimized unpremultiply it is still significantly faster
to skip the calculation on alpha values 0 and 255.
Change-Id: Iafe658fea8eacf35a857f292952b0c1ee056139c
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
The QImage inplace mirroring method, failed to handle the middle line
when mirroring both ways (rotate 180). In both other mirroring cases
the middle can be left untouched, but in this case it needs to be
mirrored half way.
To make the logic simpler, double mirroring will now mirror half the
lines instead of half of every line.
Change-Id: Iaa1f1e1c3f7dedfb78891fc93207f6d0c64bcafe
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
For the property to take effect, the button must have its
parent set. This might not be the case when a container like
for example QTabWidget is involved. Move the setting of the
property to the bottom of setupUi.
Task-number: QTBUG-44406
Change-Id: Ic2013865a020986475fa28f2e3805c63d4de8ed0
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Return QLockFile::PermissionError when file does not exist, preventing
the stale file detection logic from triggering.
Add Windows-only autotest trying to create a lock file in
a system folder guarded with checks for elevated processes
and UAC virtualization.
Task-number: QTBUG-45631
Change-Id: I1790f8f925660f6bf1df94c2ced901e6ec57cbb0
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
QGuiApplicationPrivate::lastCursorPosition is initialized to qInf(),
qIn(). Under some circumstances, this is passed to dispatchEnterLeave()
which causes an FPE in QPointF::toPoint().
Move the invocation of QPointF::toPoint() to the if-branch handling the
enter list, which already fixes the FPE. To be extra sure, clamp to
QWIDGETSIZE_MAX.
Task-number: QTBUG-45501
Change-Id: I2d1407415e6360196730d23ee319d1ee6981d1f5
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Could causedSSE4 instructions to be used on non SSE4 machines
in cases when qUnpremultiplywas not inlined.
This reverts commit 964ccc5853.
Change-Id: Ic676ade8f75129e8d37c4d96cbfb2bdb5b794919
Task-number: QTBUG-45741
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
It is missing in MinGW and causes warnings like:
src/corelib/global/qsystemdetection.h:109:24: error: "WINAPI_FAMILY_PHONE_APP" is not defined [-Werror=undef]
in QtScript and headersclean failures in Active Qt.
Task-number: QTBUG-45666
Change-Id: I167d9d5b33faddfbbcf44bdcce5e86fb43614fa9
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Replaced by -convertRectToScreen:.
Change-Id: I38e2b5918a5ee528d6ce65f676e542e365d610a3
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
/Users/erik/dev/qt5-stable/qtbase/src/plugins/platforms/cocoa/qcocoaapplication.mm:137:18: warning: case value not in enumerated type 'NSEventSubtype'
[-Wswitch]
case QtCocoaEventSubTypePostMessage:
^
Change-Id: Ib496e61a6939f021c90234fef3689b1643003ddd
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
This error message was a result of calling *_randr_* functions
in QXcbWindow::updateGeometry without checking if the X server
provides the XRandR extension.
Change-Id: I165f201c32ca0f4976f9ff9b9f17323098940511
Task-number: QTBUG-45624
Task-number: QTBUG-45388
Task-number: QTBUG-45312
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Jan Kundrát <jkt@kde.org>
Document that fact that for non-create()'ed windows this is the
same as QGuiApplication::devicePixelRatio() which is the highest
dpr in the system. This has consequences when running with multiple
displays so application developer's have to be aware of this.
Change-Id: Ic05a18732ff021659da04428cb49421ac3453870
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
QCocoaWindow::syncWindowState incorrectly sets m_effectivelyMaximized as !m_effectivelyMaximized
after calling zoom. But zoom can trigger windowDidEndLiveResize, which also can set m_effectivelyMaximized,
so double negation results in ... the previous value. Fixed.
Change-Id: Iea974132a1854a258e27635e8779d7d8c02bfc0c
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
When making a QNetworkAccessManager query, don't require a network
session in case of file:/ queries, like we do when "localhost" is the
hostname or a loopback device.
Change-Id: I4faab7cf356ee53e6e13ab55b152365680af9446
Reviewed-by: Albert Astals Cid <albert.astals@canonical.com>
Reviewed-by: Richard J. Moore <rich@kde.org>
This patch fixes several upload corruptions if the server closes the connection
while/before we send data into it. They happen inside multiple places in the HTTP
layer and are explained in the comments.
Corruptions are:
* The upload byte device has an in-flight signal with pending upload data, if
it gets reset (because server closes the connection) then the re-send of the
request was sometimes taking this stale in-flight pending upload data.
* Because some signals were DirectConnection and some were QueuedConnection, there
was a chance that a direct signal overtakes a queued signal. The state machine
then sent data down the socket which was buffered there (and sent later) although
it did not match the current state of the state machine when it was actually sent.
* A socket was seen as being able to have requests sent even though it was not
encrypted yet. This relates to the previous corruption where data is stored inside
the socket's buffer and then sent later.
The included auto test produces all fixed corruptions, I detected no regressions
via the other tests.
This code also adds a bit of sanity checking to protect from possible further
problems.
[ChangeLog][QtNetwork] Fix HTTP(s) upload corruption when server closes connection
Change-Id: I54c883925ec897050941498f139c4b523030432e
Reviewed-by: Peter Hartmann <peter-qt@hartmann.tk>
This caused reverse order of session items in qt creator. Introduced
in ba287c55ef.
Change-Id: I5c37ca6a1ef4753b6449eb9e87b4def5ea858677
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
The byte array serialization needed versioning, whereas a collection
of separate settings is more robust and accessible.
Task-number: QTBUG-36888
Change-Id: I790b1d7574707261923a7a33ccd8bcc596a69de5
Reviewed-by: David Faure <david.faure@kdab.com>
In order to obey a palette set globally on QApplication, an application
attribute for checking if it's set at all is added.
Task-number: QTBUG-39800
Change-Id: I26b965e6e18e0e1ca4df03cf343b3527df3636b2
Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Signals marked with QPrivateSignal had the QPrivateSignal marker
ifdefed out for qdoc. This is no longer necessary, so the #ifdefs
are removed.
Change-Id: Idb334ed311c6ed6883d7b7b5a3fcdede60c4a1f8
Task-number: QTBUG-45535
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
The former way of timer handling caused heap corruptions
as the timer callbacks tried to access the event dispatcher
after it was freed.
So instead of accessing the timers inside the callbacks
we use native events to signal their expiration and also
to cancel them.
Task-number: QTBUG-44973
Change-Id: Ib9348651c0545cc4393f0396601f9a5bb183c996
Reviewed-by: Andrew Knight <qt@panimo.net>
When the global monitor was used it did not get the right position for
the mouse event and as a result it caused context menus to appear and
disappear instantly when right clicking over a non active window. This
ensures that the events are sent correctly with the right position and
button information.
Task-number: QTBUG-45015
Change-Id: I9b17a725e656c716c4e22117b4513e64c357b266
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
If the user selects to Save as PDF in the native print dialog, then let
OSX generate the PDF. Primarily this is to fix QTBUG-38820 where by
setting the output mode to PdfFormat we prevent the native print dialog
from being called again. This was a regression in 5.1. It also allows
for smaller, better quality PDFs with the ability to select text until
QTBUG-13826 / QTBUG-10094 fixes the font rendering. Once QTBUG-36112 is
also fixed we can consider changing back to Qt's internal PDF support.
See also QTBUG-36687 and QTBUG-26054 which are related.
Task-number: QTBUG-38820
Change-Id: I74bd885902860ac70068ab25e95765c7f0ee911c
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Test each include file directly, instead of doing a large #include. This
verifies that each header is compilable on its own. One big advantage of
doing it via a special compiler in qmake is that we skip pre-compiled
headers, which has hidden build errors in the past.
This solution is implemented by making syncqt produce a second list of
headers. This list is the same as the list of headers in the source
code to be installed, minus the headers that declare themselves to be
unclean, via the pragma:
#pragma qt_sync_skip_header_check
This mechanism is applied only for public libraries (skipping
QtPlatformSupport, an internal_module).
This test is enabled only for -developer-builds of Qt because it
increases the compilation time.
On QtTest: the library only links to QtCore, but it has two headers that
provide inline-only functionality by including QtGui and QtWidgets
headers (namely, qtest_gui.h and qtest_widget.h). If those two modules
aren't getting compiled due to -no-gui or -no-widgets to configure, we
need to remove the respective headers from the list of headers to be
checked. If they are being built, then we need to make QtTest's build
wait for the headers to be generated and that happens when qmake is
first run inside the src/gui and src/widgets directories.
Change-Id: I57d64bd697a92367c8464c073a42e4d142a9a15f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Merges the SSE4 specific unpremultiply with the normal version, and
adds a SSE2 fallback. There was no reason to split the two since
compile time options will ensure the right version is inlined.
Also adds short-cut for 0 and 255 values.
Change-Id: Ie5aa262f6964219fd3062d4a498f697cf79a4595
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Performance optimization from 1aab68648 revealed
that "composeValueEnd" needs adjustment for compose
sequences that result in a quotation mark, for example:
<dead_diaeresis> <space> : "\"" quotedbl # REVERSE SOLIDUS
Change-Id: I66bf83fbe62727f1ee245aae90f8d0eb53dea6d4
Task-number: QTBUG-45538
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Use the QByteArray overload, which no longer calls strlen(),
but uses the QByteArray length.
No danger of embedded NULs, because environment variables
cannot contain NULs.
Change-Id: I33fe479adfce2624c7042608e8e0a5c5b54a85db
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Whether menu items are enabled or not is not set via NSMenuItem's
enabled property but depends on the return value of CocoaMenu's
validateMenuItem.
Change-Id: I5673da18ab9eb3510b773e0ab520e5382a160844
Task-number: QTBUG-42511
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
warning: 'this' pointer cannot be null in well-defined C++ code
The code tries to be smart but compilers warn about this unfortunately.
Change-Id: Ifb8deafe8834d580beef829a3079ae9222acfa8f
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
This will be essential on Linux, especially Embedded where PCI IDs are
not that useful.
Change-Id: I2fa8ca07236e8aae203e21fe629d12aab092c7fd
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
As per spec, both for OpenGL and OpenGL ES. No wrap mode is
applied unless setWrapMode() is called so the default values
should be initialized to match OpenGL's default.
Correct the copy-paste mistake in the warning messages.
Change-Id: I094cc511dc7de4a214da61faadb1fc362270b2d4
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Add a missing mapping for the X11 media key AudioPause.
Change-Id: I2888854a021192942c7e8d47d581d834e1f39736
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
In rare cases the I/O operation was still running after the destructor
was running, which then modified free'd memory and caused a malformed
heap. To prevent this, we ensure that QWindowsPipeReader::stop() cancels
a running I/O operation and sets the readSequenceStarted flag correctly.
Also, we prevent the start of a new read operation after we called stop().
Change-Id: If8a28bdf23a39a0e88c1770a6f66e2b24ea426bb
Task-number: QTBUG-45601
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
There's exactly one caller for this private method, and future code
will be a bit simpler after moving the code to the calling site.
Change-Id: Ibc65f91c770f9f29b317ceddb39a67d52106da33
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>