Just in case we have "win32-g++-32" in the future, when MinGW-w64 is
able to build 32-bit executables with just the -m32 switch.
Change-Id: I4ae0f684ebc55465702652b2798f754575b62849
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
If QT_NO_LIBRARY isn't set we cannot test QCoreApplication's library
path functions and none of the plugin and library related tests are
applicable. Also, examples that rely on dynamic plugin loading for
their core functionality obviously don't work.
Change-Id: I2d381ee1bc8d944e1181557895a7e92a364fd778
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
'none' is a valid value specified in CSS standard. In combination
with '-qt-list-indent: 0' it allows for using lists in Qt for better
structuring text
Change-Id: I1dd324a3ea81b26e21a9d4d9f93ef9b5edcf3e93
Task-number: QTBUG-6501
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
It is possible to create a frameless QMdiSubWindow to customize its title,
but currently we can not minimize it because it disappears in result.
This fix turn on minimizing of frameless MDI subwindows and exclude
hiding of base widget in this case, so we can display shaded window correctly.
Change-Id: I62c417b24e8528cf033fe5edce163d2eb46a4994
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
QMdiSubWindow should not reset parent of base widget
if it has been already changed before.
Task-number: QTBUG-47993
Change-Id: I43e3a28481e9ba3026a93850a8cc1246a359852a
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
If we add some view as a child into another view, make sure it's removed from
the previous superview.
Change-Id: I8c9f373907ded8e3ff75b1f2357401b308628125
Task-number: QTBUG-42059
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
It can happen that we create a new window and make it visible during a modal
session. In this case making a window into the new key window looks quite
strange and misleading - since we're in a modal session, this window is completely
inactive/useless. Use orderFront instead.
Change-Id: Ic091e263508b452be4b5adf799a06017b044e441
Task-number: QTBUG-46304
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
This allows setting of variables, like FOO=bar.
Change-Id: Ib306f8f647014b399b87ffff13f1d9e6a10fa2f8
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Touch screens without the "Abs MT Position X" but "Abs X" capability
weren't detected correctly so far. This patch fixes the detection and
enables these tochscreens.
Change-Id: I32fdb4d56c106717c90904a6632c2838bd55a255
Task-number: QTBUG-48279
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
Use the presence of a platform window to detect
if the QWindow has already been closed.
Change-Id: Ieedf231cc5b805ed6383e55a82ca137087805a4f
Task-number: QTBUG-43344
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
Before deleting the children of an Aggregate, we must clear its
internal collections first. This prevents removeChild() (called
from ~Node) from accessing already deleted siblings.
Change-Id: Ic657b1d57fe4c766daa2bd4b791c3840099de709
Task-number: QTBUG-47751
Reviewed-by: Martin Smith <martin.smith@digia.com>
Normally, disconnectNotify() is called at the end of QObject::disconnect
and all the locks have been dropped. That is not the case for the
QObject destructor, so we need to deal with the fact that it there may
be some locks held.
I didn't catch this issue during testing because it depends on the
pointer addresses of the object being destroyed and that of the
QDBusAbstractInterface sender object, as we use one global, non-
recursive mutex pool. For the same reason, this patch is not testable.
The fix is simple: we don't need to remove the relay rules immediately.
It's ok for them to happen later, since the worst case scenario is that
we'll receive a few more signals than we have objects to deliver them
to. If that happens, we'll do a little more work than we have to. But in
the normal case, the amount of work is the same and we get the benefit
of returning more quickly from the destructor. What's more, if the
QDBusAbstractInterface object also gets destroyed, the events are
deleted and QDBusConnectionPrivate will clean everything up.
Task-number: QTBUG-48410
Change-Id: I42e7ef1a481840699a8dffff1406b789ba5217b3
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Using a power of 2 instead of power of 10 means the result of the
division can be accurately represented as a floating point instead of
being an approximation that could lead to rounding errors.
Change-Id: I8910c06113ec6b69c60ff95d59894bfb56133186
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
Need to survive having screens detached/reattached on X11.
Task-number: QTBUG-42985
Change-Id: I81cf9721f0cb61a29180c60d44d588063266e651
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
It was working at some point, but not in 5.5.0.
Task-number: QTBUG-48370
Change-Id: I8a0e09d4dfa9ace3d69c10c5f88129958d226a9a
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
For people with non-empty QT_MESSAGE_PATTERNS, the multiple lines would
be unreadable.
This is what it showed for me when starting Qt Creator:
[1442136.587] qtcreator(82762 82762)(?libQt5Gui.so.5?|QGuiApplicationPrivate::createPlatformIntegration|QGuiApplicationPrivate::createEventDispatcher|QCoreApplication::init|QCoreApplication::QCoreApplication|QGuiApplication::QGuiApplication|QApplication::QApplication|?qtcreator?|?qtcreator?|__libc_start_main):
Warning: QT_DEVICE_PIXEL_RATIO is deprecated. Instead use:
[1442136.592] qtcreator(82762 82762)(?libQt5Gui.so.5?|QGuiApplicationPrivate::createPlatformIntegration|QGuiApplicationPrivate::createEventDispatcher|QCoreApplication::init|QCoreApplication::QCoreApplication|QGuiApplication::QGuiApplication|QApplication::QApplication|?qtcreator?|?qtcreator?|__libc_start_main):
QT_AUTO_SCREEN_SCALE_FACTOR to enable platform plugin controlled per-screen factors.
[1442136.592] qtcreator(82762 82762)(?libQt5Gui.so.5?|QGuiApplicationPrivate::createPlatformIntegration|QGuiApplicationPrivate::createEventDispatcher|QCoreApplication::init|QCoreApplication::QCoreApplication|QGuiApplication::QGuiApplication|QApplication::QApplication|?qtcreator?|?qtcreator?|__libc_start_main):
QT_SCREEN_SCALE_FACTORS to set per-screen factors.
[1442136.593] qtcreator(82762 82762)(?libQt5Gui.so.5?|QGuiApplicationPrivate::createPlatformIntegration|QGuiApplicationPrivate::createEventDispatcher|QCoreApplication::init|QCoreApplication::QCoreApplication|QGuiApplication::QGuiApplication|QApplication::QApplication|?qtcreator?|?qtcreator?|__libc_start_main):
QT_SCALE_FACTOR to set the application global scale factor.
(and imagine it line-broken in a terminal 140 columns wide)
Change-Id: I42e7ef1a481840699a8dffff1406f73dc4d44a41
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
These variables were defined but never used in the respective qmake
features. Utilizing them allows more control over the output file name.
Change-Id: I5ba96c5cd330b18dc060f563186992fe3bd27b49
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
The glColorMask call was troublesome. In addition, the Qt::WA_TranslucentBackground
was misinterpreted and recommended misleadingly in the documentation. The hellogl2
example's --transparent argument was disfunctional in practice.
Replace glColorMask with glBlendFuncSeparate. The hellogl2 example and the docs are
now corrected wrt enabling semi-transparency in a QOpenGLWidget that is not a top-level
(which is the most common case).
Task-number: QTBUG-47276
Change-Id: I6f40e732d455f5efcf158649ac9a52ff9f240e85
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
The code relied on QStringList::split() returning a list
consisting of one empty string when passing an enpty string.
Add a check to prevent the plugin loader from trying to load
in this case.
Change-Id: Iadb418d32fdea1d472d6c00726ad039b4afbf409
Reviewed-by: Andy Shaw <andy.shaw@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
QDoc has the ability to accept parameters for macros but it was
never documented.
Change-Id: Iaf9a629c906fbe1552717c7444a0fd52b5655a3f
Reviewed-by: Martin Smith <martin.smith@digia.com>
We generally assume that for every mouse press we also get a mouse
release eventually. The event filter installed by QBasicDrag broke this
assumption as it didn't take care of filtering mouse press and mouse
release events symmetrically. We cannot immediately pass on the release
event as that would mean a release event is generated from a press
event (via the blocking drag call), which breaks assumptions in other
places.
Change-Id: If7e48c7dc0ef5265bed4f9a9366a7606ec875d93
Task-number: QTBUG-46361
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
QDateTime values with a UTC offset are not correctly serialized with
QDataStream::Qt_4_0. So use a newer QDataStream format for this type and
mark it with "@DateTime" instead of "@Variant".
Task-number: QTBUG-46551
Change-Id: I211c89e8cd0211c949ec993e6ffd5192d0eebbb3
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Left and right were swapped which caused invalid selection ranges to be
emitted through selectionChanged.
Task-number: QTBUG-48402
Change-Id: I18692c2b50c49ab39065f9b360b37b7615227ee9
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
Use case insensitive comparison and static invocation
of QGuiApplication::platformName().
Change-Id: I8c197c7b4f0669f71c019fbcee09a0f03dfab399
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
The arguments for the width and precision parameters, that is. There's
no reason to crash if a user sets e.g. a precision of -2.
Task-number: QTBUG-46838
Change-Id: I4afc004a1b8aa1306fd996360b16117b2b643640
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
qtextstream.cpp:2825: warning: Can't link to 'left()'
qtextstream.cpp:2825: warning: Can't link to 'right()'
qtextstream.cpp:2797: warning: Can't link to 'right()'
qtextstream.cpp:2797: warning: Can't link to 'center()'
qtextstream.cpp:2811: warning: Can't link to 'left()'
qtextstream.cpp:2811: warning: Can't link to 'center()'
Change-Id: I613354ca8137030c9f121cb976fe3bc35e1a415b
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
The explanation is in the code comment. Ever since QDBusConnections
began being processed in a separate thread, we were relying on the fact
that the main thread didn't begin processing its event queue until the
second event got posted (the event loop only exits after it has finished
processing all pending events). We had a race between the main thread
starting its processing, at which point it decides which is the last
event it will process, and the QDBusConnectionManager thread posting the
second event.
This is very fragile code, since it depends on the behavior of
QDBusConnectionPrivate (how it stores the signal relays in a hash) and
that of QHash with duplicate keys. This only works because the hash
key between the two connections is the same (it's only dependent on the
method name and interface name). If we ever begin using something that
isn't the same between "control" and "p", then with QHash's randomness,
we'll be racy again.
Change-Id: I42e7ef1a481840699a8dffff1406c3a4674ec3a6
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
The test assumed that an event loop can be tested for emptiness
multiple times, which is wrong because an event can be delivered any
time.
Change-Id: Ic44245321eeed2091b640ada2c83d205b83a1cc2
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
This test when running on Windows has a race condition since in qthread_win.cpp the
finished signal is emitted before everything is cleaned up.
Change-Id: I3c03d9a245e297e8f79b2be2c34398bf7bac9bae
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
The methods are supported on Windows Phone since 8.1 so that the
simplified Windows Phone code isn't needed any more.
Task-number: QTBUG-48140
Change-Id: I21c488fe1a1322e85bbe088fb47e81893fd12d40
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
The current behavior has been observed to irritate a lot of users, for
instance in the Qt online installer and the Boot2Qt flashing wizard.
Change-Id: Icd7b819a0cbc9fd04b86b4777c5b9e829045d6df
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
According to MSDN, a maximum icon size is 256 pixels.
http://blogs.msdn.com/b/oldnewthing/archive/2010/10/18/10077133.aspx
Change-Id: Id87c89a20c9cba6ef041b49f93f84c5e9c3eb79f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: aavit <eirik.aavitsland@theqtcompany.com>
We only need to merge the rectangles into a region if we are painting
a non-opaque a primitive with alpha.
Performance measurements QT_print_speed_bug.zip:
Excluding patch: 244686 ms
Including patch: 5070 ms
This is an improvement of 48x (for debug build)
Task-number: QTBUG-48334
Change-Id: I03684c6e7d8a5fb039ea6477ed1a860f09e1b08c
Reviewed-by: Andy Shaw <andy.shaw@theqtcompany.com>
This ensures that the values and signals reported by QInputDeviceManager
for touch devices always have corresponding entries in the list returned
by QTouchDevice::devices().
It also adds proper QTouchDevice unregistration when the underlying
input device gets removed by the evdevtouch QPA plugin.
Change-Id: I7bdf2f7435c775d15bddce8ba1e731afdc1d948a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Most processors have carry flags which they set on addition overflow, so
it's a good idea to access them whenever possible. Most of them also
have widening multiply instructions that can be used to detect overflow
of the non-widening version.
Tested to compile on:
Architecture Compiler
x86 GCC 4.9, GCC 5*, Clang 3.6*, ICC 16 beta
x86-64 GCC 4.9, GCC 5*, Clang 3.6*, ICC 16 beta
x86-64 ILP32 GCC 4.9, GCC 5*, Clang 3.6*
IA-64 LP64 GCC 4.8
ARMv7-A GCC 4.9, Clang 3.6*
AArch64 Clang 3.6*
MIPS GCC 4.9, Clang 3.6*
MIPS64 GCC 4.9, Clang 3.6*
PowerPC GCC 4.9, Clang 3.6*
PowerPC 64 GCC 4.9, Clang 3.6*
SPARC Clang 3.6*
SPARCv9 Clang 3.6*
[*] supports the intrinsics
If the compiler does not offer a way to detect an overflow, we do it by
hand. For unsigned additions, that's easy, since the C++ language
specifies the behavior of the overflow. That's also the reason why this
code is implemented only for unsigned integers.
For the multiplication, if the compiler does not support widening
multiplications, we do it with a division instead. This is necessary for
GCC < 4.5 and compilers not compatible with GCC or MSVC.
Change-Id: I049a653beeb5454c9539ffff13e637de0f1338c1
Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com>
Reviewed-by: Alex Trotsenko <alex1973tr@gmail.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
If you don't deleteLater and more won't work
Change-Id: I47cbb24f8e22a7f269a0297410e4163878819f82
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>