If a platform window is created from a QWindow without setting a valid
size or position on the QWindow, the platform window is expected to
apply sane defaults. We use the baseclass initialGeometry() function
for this, similar to other platform plugins.
The default geometry unless otherwise set and/or calculated based on
size hints is that of the screen's available geometry.
An improvement to this is to detect whenever we apply the screen
geometry, and also apply the appropriate window state, but that
needs more testing.
Change-Id: I02b12064ce6d55c04fe0cc2cd1d2816ca1113f40
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
When sending expose events to Qt, Qt will ask us if we're exposed,
and we need to tell it that we're not, so that clients will not try
to makeCurrent on a CA layer that has a zero width and/or height.
Note that this only works because we flush expose events.
Change-Id: Idfbe03a2f35681084061376a3c650a8da027fda4
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Make QJsonObject::const_iterator() part of the same doc
group as the non-const variant. Also add a \since
command with the correct value.
Task-number: QTBUG-33052
Change-Id: I97fa2cc44dae93decf2b99a1384e37579b7dac46
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
QtAndroid::findClass uses loadClass methods to find Qt's java classes.
The documentation says that we should use a binary name.
Change-Id: I2146789235435b7052827cde58b7719b7d62dc1d
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
it's bogus in the first place that the meta files contain windows paths,
but straightening that out is a prohibitive effort. so instead generate
additional s/// commands which take care of these paths.
fwiw, the generated s///i command is a gnu extension. but as we are
doing this on windows only where we are using our built-in sed command
anyway, this should be fine.
Task-number: QTBUG-33794
Change-Id: I46fcc598db12816ee56b5371ab184f6277eb3a22
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
for in-source builds, we end up attempting to install the modules-inst
dir in case we re-run qmake after some modules have been built.
Change-Id: I50d4d394bfd6f48b9a5f5faa584919710a03dea9
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
And that connectNotify and disconnectNotify might be called from
another thread
Task-number: QTBUG-34829
Change-Id: Id118b97b92e9aa085a1d4368282294f90cfb1706
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
This is a consequence of us wanting to show the OS X transient scrollbars
as soon as the user touches the trackpad with two fingers.
Task-number: QTBUG-35120
Change-Id: Icf63b0ec8c32ac66108822804bb06a0762547ef1
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
For example QIcon can return pixmaps with non-integer devicePixelRatio,
if there is no pixmap that exactly matches the requested size.
Task-number: QTBUG-35125
Change-Id: I76bfa2766979a454c24b1abcf9e18930f5671c1e
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
In some cases the classLoader is not able to resolve fully-qualified
names that contains forward slashes. Unlike FindClass() which expects
the fully-qualified name to contain slashes, the classLoader expects
the binary name, i.e., with '.' as separator.
This caused a crash in QtMultimedia when accessing a nested class.
Task-number: QTBUG-35298
Change-Id: I77728352fbab930ae1914bc1cb2189e458e179e2
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Reviewed-by: BogDan Vatra <bogdan@kde.org>
Currently there is no way to always hide the statusbar
on iOS other than showing a window in fullscreen. This
patch will check if the statusbar is (initially) hidden
from the Info.plist, and respect that in the application.
SubAttack is an example of an app that (because
of styling issues with MainWindow margins) manually
sets the geometry larger than fullsreen, and calls
showNormal(). In that case we still want the statusbar to be
hidden.
Change-Id: Ia365d14971978360d0b39621ff0f8f82f74b57e2
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Going through the platform window failed when the parent wasn't created
yet. We can still get the window state of an yet-to-be-created top level
window.
Change-Id: Iaa61ddc50df037ac0bd2fd0884884c2bfce1dd9a
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
This reverts commit 2eb1e28a90,
which makes several of the OpenGL examples crash on startup.
(textures, hellogl_es2)
Change-Id: Id47d2df6f57b2396c333e478b3c062f4cb4becb5
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Qt defaults to creating a QWindow as offscreen surface
if QPlatformIntegration::createPlatformOffscreenSurface
returns 0. Using an offscreen surface is often done
in a background thread, which is problematic, since then
a QIOSWindow will also be created in a background thread.
According to Apple docs, working with a UIView from other
threads than the main thread should not be done. In our
case, we instead hit an assert in QApplication that
checks for the same.
As a quick fix for Qt 5.2, we remove the offending call that
causes the assert, since we anyway will call the same function
lazily when becoming first responder.
Task-number: QTBUG-35378
Change-Id: Id35462f99783a9748c688b163f6497de9bfff73e
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
The drag and drop event filters do not play nicely with touch events
or virtual keyboards.
Task-number: QTBUG-35348
Change-Id: Id4d079ae72882f48750d394f13e10700d60e4532
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Prevent the cocoa platform plugin from sending expose
events for windows that are off-screen or has invalid
geometry.
Differentiate between initial exposes and geometry
update exposes, in order that e.g. geometry updates
that happen before setVisible() don't trigger expose
events. After the initial expose geometry updates
to and from invalid geometry will trigger obscure
and expose events.
Task-number: QTBUG-35143
Task-number: QTBUG-35091
Change-Id: Ibbff20c69974f098ea7635e9ca38620597840a05
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
A QMenu with no actions gets a size of (0, 0) on OS X.
With the new stricter expose event behavior this
is considered invalid geometry and the platform plugin
won't send an expose event, causing the qWaitForWindowExposed
test to fail.
Add a menu entry since the layoutDirection test is
not really interested in testing the special case of
empty menus.
Change-Id: I5221dc3f0472ac13edf821df08bacc3a4eb5cd9d
Reviewed-by: Simo Fält <simo.falt@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Set dynamically the buffer size when reading pps objects since a pps file
size is not always fix.
Change-Id: I48f80389161bfbce3342e53ceec0b13bb7df0e4c
Reviewed-by: Tony Van Eerd <tvaneerd@blackberry.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Suppress warnings like:
QFontDatabase: Cannot find font directory '...' - is Qt installed correctly?
occurring for example when using qmlplugindump.
Add option flags (similar to Windows plugin) to the integration
class to be used for QT_DEBUG_BACKINGSTORE and other functionality.
Add a dummy font database with empty populate() function to be
used unless the debug flag for the backing store is used.
Task-number: QTBUG-33674
Task-number: QTCREATORBUG-10685
Change-Id: I7eaff3025de12e6b0471a3430f986b0cd810e22c
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
Qt applications require the "hardwareAccelerated" flag set on
some devices or Android versions. The symptoms that this was missing
was problems when handling orientation changes. When the target
SDK version is >= 14, it is true by default, but for lower versions
it is not. There is no reason to set this to false for a Qt
application, since we don't use any of the unsupported 2D drawing
operations in the documentation, so lets just set it to true for
all applications.
Task-number: QTBUG-35293
Change-Id: Ie131a52a2a3fc5a520d0c5dd5d64f79269e9b6b5
Reviewed-by: BogDan Vatra <bogdan@kde.org>
It turns out we cannot rely on QGuiApplication::focusWindow() to
be non-zero at all times (e.g when pop-ups are closing etc).
So instead use m_focusView.qwindow which points to a
valid QWindow. This window is the same as QGuiApplication::focusWindow
most of the time, except when a focus window closes.
For those cases we get a new call to scrollRootView immediately
after with m_focusView updated to reflect the new focusWindow.
Task-number: QTBUG-35339
Change-Id: Icb3a8d3140af1f1904495a9289c8c26ab79e70f6
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
An application will sometimes crash if the keyboard
is told to hide while the application is about to
quit. This patch will ensure that we set m_qioswindow
(and [UIView qwindow]) to 0 when the window is destroyed.
We also check this pointer before telling QUIView to
resign first responder when closing the keyboard. The
latter will fix the crash.
Task-number: QTBUG-35356
Change-Id: I934088beb7e877c5b33d96225cb215a8ffd4dbb2
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
qdoc intends to prepend all html files related to QML with
a 'qml-' prefix. This doesn't work for basic QML types, as
those nodes do not have valid qml module name information.
This change fixes the issue by removing the requirement
for a qml module name, thereby always using the qml
prefix for a qml (basic) type.
Task-number: QTBUG-35229
Change-Id: If61572b2dc8a39be08140c37aa59646b88e99b29
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
QStyleAnimation automatically stopped for hidden QWidgets, but didn't
know anything about QQuickItems and kept animating regardless of their
visibility. This change ensures that style animations stop as soon as
the animation target no longer accepts the animation update eg. it has
become hidden or the window was minimized.
Task-number: QTBUG-35319
Change-Id: Ie48191fd918c626c0d9afe2e7d2390c495efb071
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Move the EGL initialization code outside of the XLib ifdefs, so it
can be enabled for non-XLib builds as well
Change-Id: Ie025551e4e99bb0b365f025356bd9725f4283b82
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
d34cae51 introduced a new configuration parameter, xcb-xlib, but did not
remember to set the internal variable after the config test was run,
resulting in a potentially incorrect reporting of the option.
Change-Id: I979589d9aad2eb5e0fac069dfcd5b329a51ae059
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
For enum types that have QFlags versions, qdoc was
outputting the documentation with a hard-coded link
to qflags.html, which only workjed in the single
directory mode. When qdoc outputs modular documentation,
the href for the link should be "../qtcore/qflags.html" .
Now qdoc computes this href correctly before it writes
the docs. The href is no longer hard-coded.
Task-number: QTBUG-35209
Change-Id: Ibdf5b11dbd063726eb77048de78f8874c65752ca
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
QIOSInputContext controls QUIViews first responder status
based on whether or not the keyboard should be open.
But since QGuiApplication updates focusObject before
focusWindow (when e.g a popup closes), we sometimes ended up
activating the old window upon a call to becomeFirstResponder.
This in turn led the application to hang because of
recursive dependencies in qioscontext when the focus window
changed.
So the solution for now is to avoid activating the window
when the view becomes first responder. This should be
fine since we now activate the window from
QIOSWindow::requestActivateWindow (ref: 6272a816d1)
Task-number: QTBUG-35340
Change-Id: I3068c14fec18d84d4b0b348a043c4c054e366c75
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
The cursor() test was missing a QTest::moveMouse() before sending of the
mouse event (as all the following subtests do). When run on a desktop with
the panel on the left side of the screen, the mouse pointer would land over
the left item instead of in between them, as assumed by the subtest, and
the following QCOMPARE failed.
Change-Id: Ib74fdf0cfbfbc8ecb79a906610a2da5cb50c89d0
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Generating the dSYM file takes a long time due to our relatively large
static libraries, and is not really useful for a debug build where you
are likely to have the object files and Qt libraries available on your
host system for debugging anyways.
Change-Id: Ie7549975f271de8c56ca04bd28b29e6ed65f16cb
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
the change is wrong for multiple reasons:
- it is possible to build qt (the offscreen plugin) with xlib but
without xcb, which was impossible after the change
- the check was built in a way that if xcb is auto-detected but xlib is
missing, configure would abort (instead of disabling xcb), which is
unreasonable (cf. linked task)
- it should be possible to build the xcb plugin without xlib - it's
testing for xcb-xlib and should have the correct #ifdefs. if these are
broken, they should be fixed. if this is unrealistic, the build system
should be adjusted to this fact ... differently.
This reverts commit 683451e7c7.
Task-number: QTBUG-34382
Change-Id: I1c5811e2fb1f09b084b6aeb7350e5f376e1b9b82
Reviewed-by: Nicolás Alvarez <nicolas.alvarez@gmail.com>
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
This is a workaround for letting qdoc to successfully
generate documentation for the Qt namespace. qdoc
doesn't properly handle multiple declarations for the
same namespace spread across multiple modules.
Task-number: QTBUG-35230
Change-Id: I449b17e1171d1a4481b9cf07cd48c803feed5be9
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Use QTest::qWaitForWindowExposed() and QTRY_COMPARE() instead of
hardcoded timeout.
Task-number: QTBUG-35308
Change-Id: I27eee9932dd3b6087db4ad13b1a4fb184a487f57
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
This patch tells the window system that it should create a mouse enter
event if a window was activated when the mouse was inside. This wasn't
working and was a regression.
Task-number: QTBUG-35109
[ChangeLog][Cocoa] Fix enterEvent not being called on activate.
Change-Id: I4e4662b4a4c58dafa8d0a2c09458ab88f678d243
Reviewed-by: Liang Qi <liang.qi@digia.com>
Otherwise the 'Wrapper' destination of the PBXCopyFilesBuildPhase
will be empty, and the files end up outside of the application
bundle.
Task-number: QTBUG-34457
Change-Id: I799db28185a6c5d3d940602914fd8ba14c538bf2
Reviewed-by: Caroline Chao <caroline.chao@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
We can't use latest anymore because the qreal change
is not back compatible and all the apps that used latest
will stop to run when Ministro will upgrade the libs.
Change-Id: I5286e72eccf86b4dead773a637aa28e29d120605
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>