An error similar to the one below would be emitted
by the compiler on the moc generated file:
error: assigning to 'QObject *' from incompatible type 'Gadget *'
if (_a[0]) *reinterpret_cast<QObject**>(_a[0]) = _r; } break;
Change-Id: I75ae7bd6c46d20db2d47a80eaa08aae302d7d6c8
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
The wiki will be linked to from the Qt Multimedia
index page.
Change-Id: I2b60c203f759494cdf12021659847817007639f1
Task-number: QTBUG-30381
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com>
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
A QNSView without a corresponding live QCocoaWindow
object is not in a valid state. Previously we would
call removeFromSuperview for child QWindows to avoid
having Cocoa send messages to the now invalid QNSView.
Do this for QWindows embedded in native Cocoa
hierarchies as well.
Change-Id: I49c6daef8ed061b3f40138fe9b4ce6be190f2fd0
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
Reviewed-by: Timur Pocheptsov <Timur.Pocheptsov@digia.com>
Including /usr/include and lib can cause cryptic failures if there is
already a Qt installed to /usr.
Having standard locations listed should not be necessary at all.
Change-Id: I08a15a064cc1aec126733f7e1962a2fa2ec38fcb
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
Expand Linux distribution detection to /etc/redhat-release and
/etc/debian_version to follow what /usr/bin/lsb_release script does.
If /usr/bin/lsb_release fails to extract the distribution information
from /etc/lsb-release, it then checks /etc/redhat-release and, as a last
fallback, /etc/debian_version.
Some Red Hat distributions have a /etc/lsb-release file that
does not provide the values we are looking for (DISTRIB_ID,
DISTRIB_RELEASE and DISTRIB_DESCRIPTION).
If both productType or productVersion are empty after reading
/etc/lsb-release, readEtcLsbRelease() will return false, allowing
further parsing of /etc/redhat-release. This scenario mimics what
the /usr/bin/lsb_release script does if /etc/lsb-release does not
contains enough information.
The productType and productVersion returned by QSysInfo after reading
/etc/redhat-release match the distributor id and release information
returned by the /usr/bin/lsb_release script.
For Debian Linux distributions where /etc/os-release, /etc/lsb-release
and /etc/redhat-release are not available nor usable, the
/usr/bin/lsb_release script also checks for the /etc/debian_version
file.
In this case, we also enable parsing of /etc/debian_version to retrieve a
fallback productVersion, the productType being set to Debian.
Change-Id: Ia20d513d78be8a8ee8c0410d0aaa052fde81a41d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
This test has been initially blacklisted. However it is racy by design
and cannot be fixed. Removing it.
Change-Id: I6c386a12e54d8a382f17c4fc033428f56eb03f02
Task-number: QTBUG-23837
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
Previously, for Qt::WindowModal dialogs we were creating modal sheet with beginSheetModalForWindow:
and later (from exec) calling -runModal, essentially making a window modal dialog into (now) application
modal sheet, which is not right- it's centered relative to desktop and the jump from window modal sheet's
position (centered relative to a window) to application modal was quite visible.
Now, instead of [panel runModal] (== [NSApp runModalForWindow:panel])
we call [NSApp runModalForWindow:theRequiredWindow].
Change-Id: I793dc72c7d1fe96497bb35754f4d0eac9a5e00e5
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
The default surface format on OS X is changed to RGBA since this
is most performant. You can request a different surface format to
change this. You can not request the default format without alpha
channel, though.
Change-Id: I4f44d0abe01515c98ba699c76a0dd5e37b873766
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
Fix doc error. This function is not used in Qt 5
and there is no definition for it.
Change-Id: Id7e4fe1ada54005f65a559ae1ab393d011c37480
Reviewed-by: Timur Pocheptsov <Timur.Pocheptsov@digia.com>
When passing Qt arguments followed by normal arguments,
a double deletion may occur due to Qt shifting argv.
For example:
argv[] = app -qwindowgeometry +50+50 some_arg <null>
becomes:
argv[] = app some_arg <null> some_arg <null>
Terminate deletion when encountering the null pointer.
Change-Id: I5279955b6bd463f5858d6e5e8e16a1f5d0945652
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Starting with Qt 5.5 qtconnectivity on iOS is supported
Change-Id: I30430ce351b7e2fc8031c5719bed5354ed234cc7
Task-number: QTBUG-45988
Reviewed-by: Timur Pocheptsov <Timur.Pocheptsov@digia.com>
Defaulting to absolute_library_soname on configure -rpath is no longer
necessary as now we support @rpath install name ids on OS X and iOS.
This also sets QMAKE_SONAME_PREFIX to @rpath for Qt modules when built
with rpath configuration.
This makes Qt libraries relocatable on OS X. Qt SDK is not yet
relocatable though, because plugin locations (including cocoa plugin)
are still resolved using absolute path (see QTBUG-14150). Also, there
are several absolute paths hardcoded in qmake mkspecs pri files.
Task-number: QTBUG-31814
Change-Id: I36b9384cd69ac609608acbe2b3d5e0512317e0d6
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
Prior to Qt 5.4.2 (commit 36d6eb721e), we
allowed it, but now we need to enforce that it is not used. Note that
-fPIE does define __PIC__, so we need this to catch the use of -fPIE.
[ChangeLog][Important Behavior Changes] On x86 and x86-64 systems with
ELF binaries (especially Linux), due to a new optimization in GCC 5.x in
combination with a recent version of GNU binutils, compiling Qt
applications with -fPIE is no longer enough. Applications now need to be
compiled with the -fPIC option if Qt's option "reduce relocations" is
active. Note that Clang is known to generate incompatible code even with
-fPIC if the -flto option is active.
Task-number: QTBUG-45755
Change-Id: I66a35ce5f88941f29aa6ffff13dd210e0aa2728f
Reviewed-by: Dmitry Shachnev <mitya57@gmail.com>
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Make casts from size_t to int explicit to avoid warnings like
warning C4267: '=' : conversion from 'size_t' to 'int', possible loss of data
Change-Id: Ib69c25519dadf8732b0c08412cc97887df00a2d4
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Swap subexpressions around so the expressions involving w
(the first member in memory order) execute first.
And no, compilers don't do that automatically. Well, GCC 4.9 doesn't.
Change-Id: I918ecc27a9ac9775fa91968c0548d182d7ad28e3
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
The methods are const but the member is mutable.
Spotted being detached a few times at app startup.
Strings were a few hundred chars big.
Change-Id: Iaa3dc42a4f01f819a3fc4f8d756e35d38ce0aa1b
Reviewed-by: David Faure <david.faure@kdab.com>
It may return null during program exit, due to QCoreGlobalData global
static already having been destroyed, or due to the codec name/mib being
unsupported by ICU. If that's the case, QTextStream needs to fall back
to Latin 1, like QString::toLocal8Bit and fromLocal8Bit already do.
Change-Id: Ia888243669e051e78e0dbe0bb1bc55a1c4f519d8
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
The cached list didn't take fontStyle, styleHint and script into account.
As long as QFontCache isn't explicitly disabled, loadEngine() rarely
called for the same family, foundry, style and size - so avoid caching
anything here at all.
Change-Id: I7779bf33fc074edc00799f9a39d67327f8c88ccc
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
QFontDatabase::load() is the only caller that passes non-null
QFontPrivate* to QFontDatabase::findFont(), to adjust the pointSize
with regards to the font's dpi; do that right in QFontDatabase::load().
The `multi` param's meaning is, in fact, an absence of the
QFont::NoFontMerging flag,
so prefer the latter and prevent ambiguity in the future.
Change-Id: Icc7751044e454ca438e7627364faa415287bf1ae
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
The logic this code was aimed for has been covered by a more complete
solution in QFontDatabase::load() years ago; simply drop the dead code.
Change-Id: Id8860353ff4f4d2f1529aa89810d6c5725e97d24
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
Add version guards to prevent compiler error:
'XITouchClass' was not declared in this scope
in systems having XInput version < 2.2.
Change-Id: Ib1308f29ef97288eb994ab8bdd668199ca2ee1d7
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Make it possible to read images with EXIF orientation automatically
applied. This was originally implemented without opt-out in Qt 5.4, but
reverted. Here it is implemented as opt-in for JPEG, and opt-out for TIFF
to keep behavioral consistency.
The EXIF support for JPEG was written by Rainer Keller.
[ChangeLog][QtGui][Image plugins] An option has been added to
QImageReader to enable automatic application of EXIF orientation.
This behavior was default in Qt 5.4.1, but reverted in Qt 5.4.2.
Task-number: QTBUG-37946
Task-number: QTBUG-43563
Task-number: QTBUG-45552
Task-number: QTBUG-45865
Change-Id: Iaafd2519b63ede66ecc1f8aa4c7118081312b8f5
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
The UNDER_NT define is useless as the include
already happens before in qfunctions...
Change-Id: I25fc23e169ce91d787331a7a86023aa7b424d687
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
mingw is not msvc, and nobody in their right mind would expect it to
behave like it.
[ChangeLog][Important Behavior Changes][qmake] Qt configure and qmake
used with a MinGW spec will no longer emulate MSVC by picking up the
INCLUDE and LIB environment variables. Use the -I/-L configure options
to pass additional paths, as you would under Unix.
Change-Id: I533bb97de34d14dcbd45e0416283a79f44096c67
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
It won't be functional otherwise with GLX when the QOpenGLWidget is targeting
a separate X screen.
Change-Id: Ibe5b89023f833039bb67d94b78b173de2e021ac9
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
Targeting a non-primary screen with a QOpenGLWindow requires (at least
with GLX) that the context is created with the same screen. Otherwise
the context cannot be used with the window (BadMatch due to different
X screens)
Change-Id: I64f38ad7317d39a164bb69bb1430692319fc49d4
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
It is fully possible to show a window on all the connected screens
even when the screens are not virtual siblings, i.e. they do not
form one big desktop. When X is configured to use a separate screen
for each physical screen, it becomes essential to do setScreen()
either directly or via QDesktopWidget in case of widgets. The original
code attempting to call QWindow::setScreen() cannot succeed since there
is no QWindow available before the widget is shown. This is easy to
work around.
The app now works identically in all cases.
Change-Id: I519ca0c0109c68aac2f2d4e6972d14b55767b403
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
The QWindow tends to get mouse releases on Windows when
maximizing the window for example. This is likely a problem
in the platform, but the example should be improved too to
be more robust and ignore such unwanted events.
Task-number: QTBUG-42842
Change-Id: Iecf916a2f753ed1b37d644721ee212ca7c728c49
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
When EGL is autodetected but -no-opengl is specified the backend
must be skipped, just like the GLX one.
Task-number: QTBUG-44998
Change-Id: I1ccbaf540f3777a1fc39aaf12bded4febf20faa0
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
The Nexus 6 device reports a GL_VERSION which is strictly not conformant
to what is expected from GL_VERSION, so a check is added for this case so
that it correctly detects the right OpenGL ES version.
Change-Id: I00297dd7c1e505dd7f9ab8a7fa480f514162b488
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Contrary to the comment, MSVC does support INFINITY, but
always prints a warning when it's used:
qpainterpath.cpp(3066) : warning C4756: overflow in constant arithmetic
Avoid this by using numeric_limits<T>::infinity.
Change-Id: Ie925b036b807378da5298a275fa108347c24519e
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
According to the documentation for QStandardPaths::standardLocations() and
QStandardPaths::writableLocation, they should return empty lists / strings
if the location cannot be determined. So remove the section in
qstandardpath_ios.mm that always sets a default path for undefined
locations.
Change-Id: I0c7fc0a1a0bbe2a5e0fb4e79e0f96f0280a647e2
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
The current caching strategy had a flaw in that it tried
to lazy-lock the mutex only if g_currentAssetData was non-zero.
For this to be somewhat reliable, g_currentAssetData would have
to be volatile. But that would still not be enough since
thread-unaware code optimizations might also happen on the CPU level.
Instead of complicating the current logic more, change it to
only do caching per thread. Since QThreadStorage will take ownership
of its data, we can't let it store a pointer to QIOSAssetData directly
since we need to control the life time of QIOSAssetData using deleteLater.
Change-Id: I2c3ffb3257ec2bdec8be71a3d63f666ab33b5277
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
When both scroll bar's policies are set to ScrollBarAsNeeded, make sure
the scroll bars are shown if needed and not show if not. Even the corner
case, where one scroll bar's visibility depends on the other, is handled
properly.
Task-number: QTBUG-45470
Change-Id: I11d6ccf7c0b51644a5ce2d5c3fc59e2e4812755d
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
Reviewed-by: Thorbjørn Lindeijer <bjorn@lindeijer.nl>
ItemIsTristate only makes sense in tree widgets, where it triggers the
auto-tristate behavior between parents and children.
Change-Id: Idfa8bb5d0b9c63fe450115fb58d088929e11c7ff
Reviewed-by: Jarek Kobus <jaroslaw.kobus@theqtcompany.com>
My commit 6c973dee2c broke the case where setApplicationName
is called before the QCoreApplication constructor.
Fixed and added autotest.
Task-number: QTBUG-45283
Change-Id: If7bdb0d82be50b50a95a04027f5f9d7143c1a7ac
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
As usual, user code connected to signals emitted from Qt may destroy
an object's internal status while a signal is being emitted.
Guard a bit QDialogButtonBox signal emissions to prevent
crashes in case the button or a dialog get deleted from a slot
connected to clicked(). Also, be sure to emit the corresponding
accepted/rejected/etc. signal.
Change-Id: I7b1888070a8f2f56aa60923a17f90fb5efef145c
Task-number: QTBUG-45835
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
... by making the conditional future-proof by inverting it.
Task-number: QTBUG-45972
Change-Id: I0bf8eac1b1095b9bf4dec0b82fc42e5a58d0499a
Reviewed-by: Andrew Knight <qt@panimo.net>
Reviewed-by: Gunnar Roth
there is no need to make exceptions for install targets now, so instead
of abusing qt_no_install_library, introduce a new header_module flag.
Change-Id: I4ad7e301d1b60938b17e1dea732b1dbe3ff88a1a
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
don't try to install the primary target, as it obviously doesn't exist.
however, we must not disarm bundle installation.
Change-Id: I3074150f749220d77c1210a4978e71aff9c9a3a9
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
In addition to BLACKLIST, Qt will now look for GPU_BLACKLIST too.
Test cases that are specified as disabled in the GPU blacklist
will be skipped. This is particularly relevant when running tests
on Embedded Linux devices.
For example, the following JSON would configure the test case
glxContextWrap to be skipped on drivers where GL_VENDOR contains
UnstableDriverVendor:
{
"entries": [ {
"gl_vendor": "UnstableDriverVendor",
"features": [ "disable_glxContextWrap" ]
} ]
}
In contrast to the regular blacklist, GPU-blacklisted test cases are
not run at all. This is because driver problems and instabilities
often lead to crashes.
Change-Id: I340cf5c0261a206109b78409774408981bba5c68
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>