Provide a fallback for QT_STAT_LNK on windows

In most cases, _S_IFLNK isn't defined, but ensure that we still have a
QT_STAT_LNK that works, for example for use around archive files
(zip/tar) that can contain symlinks

Change-Id: I9881e524b79845ce6b474b9a86e5fb25aaa31820
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: David Faure <david.faure@kdab.com>
QWindowPrivate: add virtual function 'clearFocusObject'

On mobile platforms, a line edit should only have keyboard focus
when the virtual keyboard is open. As it stands, the only way to
clear focus when the user hides the keyboard, is to deactivate the
whole window. This is a bit too much, since Qt still expects the
window in front to be active/focused. What we need is a way to
remove focus from the current focus object without disturbing
the state of the window.

QWindow has a virtual function 'focusObject' from before. We now
add a virtual function 'clearFocusObject' to QWindowPrivate
that can be overridden by QWidgetWindowPrivate and
QQuickWindowPrivate. That way we can remove focus from current
focus object when the virtual keyboard is closed from the
platform plugins.

Change-Id: Ica4ec76f8a69cd6107236a8000ff8bd742e988b5
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
iOS: clear focus object when resigning first responder status

Instead of deactivating the window when we resign first
responder status, we now leave it focused, and
tell it to clear its focus object instead.
This will work better with the rest of Qt, which expects
a window to have focus when its in front.

Change-Id: I6fcc232467af306b791a834f4843bfd2786b206f
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
iOS: bugfix touch events when not using alien

It seems that 130ee40b broke touch handling for
non-alien QWindows. For those cases, a QWindow that is a
child of another QWindow will get its own UIView to
back it up. The current code did not take this into
account when calculating the global coordinates of
touch events. Instead we need to search for the
top level QWindow it might be inside before we find the
view that acts as the "desktop" for it.

Change-Id: Ie3c19bf86c92fa3f247a0764116830e91b8322d2
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Don't build ANGLE while xcompile for QNX

Change-Id: Iacc0f4bb776943b21a94b52417a77112facad20f
Reviewed-by: Wolfgang Bremer <wbremer@blackberry.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Cocoa: Improve cursor setting.

Implement cursor setting in terms of [NSCursor set]
and [NSView cursorUpdate] using the window tracking
area.

Refactor cursor conversion into QCocoaCursor::
convertCursor. Rename QCoocaWindow::m_underMouseWindow
to m_enterLeaveTargetWindow since it's set according
to spesific enter/leave logic. Add m_windowUnderMouse
which tracks mouseEntered/mouseExited state.

Task-number: QTBUG-33961
Change-Id: Id5e12594f5db365e09c9926a4c08d748a9afb935
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Android: Handle virtual keyboard visibility changes.

emitInputPanelVisibleChanged when virtual keyboard visibility is changed.

Task-number: QTBUG-34347

Change-Id: Iab7374db42ff8ce6f33dcc793b23f84d3c8692d5
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
Doc: Fixed footer style and information for offline builds.

-footer is left aligned and smaller text.
-footer contains fewer <div> which were not used.
-CSS rules for footer changed to accommodate new specifications.
-information not relevant in offline builds taken out.

Task-number: QTBUG-33802
Change-Id: Icc57bad9ead8ce812d5df8e72a7bac8c22831b5f
Reviewed-by: Sami Makkonen <sami.makkonen@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
Remove unused field.

Fix crash on Android 4.4

Change-Id: Ibee584c0154b0b116af58477302e7e8385f0290d
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Android: implement a simple cache mechanism for assets dirs.

AAssetManager_openDir is a pretty slow operation, so we are caching the most used dir contents.

Task-number: QTBUG-34464

Change-Id: If198f7dae0d6961291c992e6eb46839ba5455819
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Android: Avoid re-creating Random objects.

We where re-creating a Java Random object each time the seed was set,
this causes unnecessary overhead as the old objects becomes  subject
for garbage collection.

Change-Id: I7aa48f5380f86d6c0d57eaeadc71b9b2b146034d
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Android: Check for null pointer before calling ANativeWindow_release()

Calling ANativeWindow_release() with a null pointer will cause
a SIGSEGV.

Task-number: QTBUG-33955
Change-Id: If7d1afa3baea04360507eec5042b4e18a0272527
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
Fix stability issues in tst_qwidget with VERIFY_COLOR

The grabbing always grabbed the desktop. This caused it to also grab
tooltips, siderbars etc that could overlap the window which again
caused the pixmap comparison to obviously fail.

This will currently only fix it on windows. If needed, it should also
be fixed for other platforms.

Task-number: QTBUG-30566
Change-Id: I5cee8651e1d94dedded0acae8b19f351acd976c4
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
qdoc: Include internal types in the index files

Internal types can be inherited. Documentation is not created for
internal types, but if an internal type is abstract, its properties
must be listed on the documentation page of each subtype that inherits
the internal type. This fix includes internal types in the index file.

Task-number: QTBUG-33814
Change-Id: Ib6ef7cbd92804b3c605009802ddb15d35b32692c
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Nico Vertriest <nico.vertriest@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
qdoc:headers and sources paths are canonicalized

This eliminates the possibility that the same file could
appear in the file list twice causing qdoc to parse it twice.

Task-number: QTBUG-34002
Change-Id: Iab63d778c9f955076515a8ae2f1bd9560099b13d
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Nico Vertriest <nico.vertriest@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
qdoc: Snippets files no longer parsed by qdoc

The files in the doc/snippets subdirectory of each example
subdirectory are no longer parsed by qdoc as source files.
They continue to be used as snippets files.

This fix also ensures that there are no duplicates in the
list of files to be parsed.

Task-number: QTBUG-34003
Change-Id: Icec1a2a539237f24ee6bae89c6401f0dc81826d1
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Nico Vertriest <nico.vertriest@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
qdoc: Internal QML Types no longer marked public

When a QML type marked with \internal is read from an index file,
it is given private access instead of public access.

Task-number: QTBUG-34010
Change-Id: If9270372cf4db835dca9731bce8c446a2fa4e140
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Nico Vertriest <nico.vertriest@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
qdoc: Part 2 of fix for inheriting abstract QML types

This fix not only gets the property lists correct
but also creates correct links to the property docs.
A side effect is that QML properties, methods, and
signals whose names begin with "__" are automatically
treated as if they are marked \internal. This had been
agreed earlier but had not been implemented. It is also
required to fix this bug so it is included here.

Task-number: QTBUG-33814
Change-Id: I57de1e49774db47cb57c042f181ccc8edec62d13
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Nico Vertriest <nico.vertriest@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
qdoc: Corrected error in QDocDatabase::findQmlType()

It was still using the QML module version number as
part of the search key. e.g. it tried to find the
type node for QtQuick.Controls::Button using
QtQuick.Controls2.Button, but now it searches without
the 2.

Task-number: QTBUG-34173
Change-Id: Ibc8b6d9ef4ceebb20c1be00ec3bc9190c51bcdf3
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Nico Vertriest <nico.vertriest@digia.com>
qdoc: Update qdoc's QML parser

Because qdoc is part of qtbase/src/tools, it is not allowed to depend
on anything outside of qtbase. But qdoc uses the QML parser from
qtdeclarative, so qdoc has its own copy of the QML parser sources. The
QML parser has been updated to the current version for Qt 5.2.

Task-number: QTBUG-34269
Change-Id: I5ac9c8ff08a3494d5c35a0014a437be88f2dc31d
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Nico Vertriest <nico.vertriest@digia.com>