Especially with the newer QML accessibility we
can end up with events for objects that cannot
instantiate a QAccessibleInterface.
Let's not crash in that case.
Change-Id: Ie5d38315f32d30540eb4adcb74a7b3bfa667f03f
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Symbols in dlldata.c conflict with symbols defined in ActiveQt
when linking Windows platform plugin statically into same binary.
Fixed by not building dlldata.c when building static library.
Task-number: QTBUG-28645
Change-Id: Ibc5928124ad6e1fde2a1fa761ada4f345eb65a20
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
qtypeinfo.h is included by qglobal.h, so it needs to include that before
the #ifdef. Otherwise, we get a circular dependency problem with
qflags.h:
./QtCore/../../src/corelib/global/qflags.h:60:27: error: "Q_PRIMITIVE_TYPE" has not been declared
Also, take the opportunity to fix the other headers that are included
from qglobal.h to avoid similar problems in the future.
Change-Id: I99a56f42775c24bdcc796995b06509c1ca0cb849
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
The keyboard mode is shared between applications.
You can reproduce this bug by clicking on a spin box,
it will open a number only keyboard, then close the application
and run an application that shows a text edit: a number only
keyboard will appear.
PPS keyboard already does this.
Change-Id: Ia22e96ce13ad0cec1fd3b43fcdf4d03abfc25134
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
When the print panel was closed then it would clean up the printinfo
and if it was requested for the same QPrinter then it would not be
recreated in time. Therefore we check if it is initalized and if not
we re-initalize it.
Task-number: QTBUG-28657
Change-Id: I7dc9011b80e03cfa3eae8fee2fcf6cc8021a8566
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
When disconnect()ing through a QMetaObject::Connection, if the
QObjectPrivate::Connection contains a slot object, deref it, so
that it will be destroyed before the next run of cleanConnectionList.
Previously, a copy of the functor passed to connect() was kept until
QObjectPrivate::cleanConnectionLists was called (by adding a new signal,
or the sender was destroyed), even after a successful call to
disconnect(). That is, we were keeping that copy allocated without
any good reason.
Change-Id: Ie6074ea797df1611cb995dec07c5b5a742360833
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
The QObjectPrivate::Connection refcount was not decreased
when disconnect()ing, therefore it was kept alive by the
owning QMetaObject::Connection object.
This removes a leak in case the QMetaObject::Connection
survives the sender object, after a successful disconnect().
Change-Id: Ie2ea59b269a0e589ae23c1457df7533be77c0797
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
qt is already added by spec_pre.prf, warn_on and depend_includepath by
default_pre.prf.
Change-Id: Ic00e0ba496d698ed9659c476f2ca99fc0f86a093
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
It appears this method has been copied from ActiveQt. When building
Qt statically, linking Windows platform plugin into any application
that also uses ActiveQt will cause error about duplicate symbol.
Renamed QVariantToVARIANT to QVariant2VARIANT to avoid conflicts.
Renaming is done here rather than ActiveQt, as that symbol is in
exported header in ActiveQt.
Task-number: QTBUG-28645
Change-Id: Id0d7fc51d4455b463515e7c6178798ad61217c35
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
Makes tst_qgraphicsitem::tst_focusProxyDeletion not crash.
valgrind reported the error when running tst_qgraphicsitem. The crash
was very real; when deleting an item that has another item as a focus
proxy, the proxy still had a reference to the deleted item's focusProxy
pointer. I'm not a huge fan of whitebox testing but thought this crash
justifies a modification of the test to make it fail, instead of just
passing silently with a warning only given by valgrind and friends.
FTR the reason the test doesn't crash hard is that the memory is freed
but not reused within the scope of the test. So the access to the
pointer d_ptr->focusProxy succeeds, it just accesses memory that might
as well have been reclaimed. But this is quite undefined...
Task-number: QTBUG-28321
Change-Id: I2624631f5e5c2a8aa8bd4efe1fc128eba6c61f56
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
Building ANGLE with MinGW results in too many symbols being exported in
the DLLs. Always use DEF_FILE on Windows to limit the symbols exported
and eliminate symbol conflicts when libEGL/libGLESv2 is linked by other
libraries that include their own version of ANGLE (e.g. QtWebKit).
Change-Id: I7bb1f90d9996eabf30095323e9399efa1c23e3a1
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Check if the accessibility element is valid before
calling childAt.
Change-Id: Id63c11f18b262c3c3a839db8ee2d11c0d7adc822
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
This makes it possible to use accessibility with
QQuickWindow.
Change-Id: I5fccd5f25021c4953b03e146705f48a198dbaaa7
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
Modified AtSpiAdaptor::notify to handle enabling and disabling widgets.
Change-Id: I9a23f74d891aaf123d7fc094bdf63e384e1d65fe
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
Adding a new private method to simplify notifying that the state has
changed as it is something that is frequently done in AtSpiAdaptor::notify
Change-Id: Idf21715b5d20212adb301ae9bca05f1edfc19946
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
For moc, rcc and uic, then it's friendly for tools like ccache.
ccache is using md5 to check file modification, but the different
timestamp info will cause different md5 for same meaningful
contents, it will disabled ccache.
Updated the autotest for uic and rcc.
Task-number: QTBUG-26589
Change-Id: I9f1dcf6cd826ad9603af6e183757bcd748c32bd1
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
The first branch is required to MSVC. The bitfield isn't large enough to
represent all possible enum values of Virtualness for MSVC.
In addition, using bitfield is a premature optimisation in this case.
So remove them.
Change-Id: I4c5f85271d2bca1411426e6a321a795a7e783aff
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
On Mac it was not starting the dialog with the specified directory when
one was present. If a filename was given as well then it would start up
fine.
Task-number: QTBUG-28161
Change-Id: I7cce0d065dd57e6433ce62380d4263d6e20b6e7c
Reviewed-by: Liang Qi <liang.qi@digia.com>
The enum was already deprecated but the documentation still listed it
so now it is correctly obsoleted.
Change-Id: I9d64fe58a5e70de7161928da2d09b4532d450274
Reviewed-by: Liang Qi <liang.qi@digia.com>
We need to do bounds comparison on the actual offset we're going to use
with _mm_load_si128 to read 16 bytes from memory (even though we won't
use the trailing bytes in the end).
Task-number: QTBUG-28324
Change-Id: Id0d6094da796ca67338d8ad225fa6b2f309bbe6e
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
This only effects compilation with DEBUG_QSHORTCUTMAP.
Change-Id: I184e644f2165049336cee8a6ac63a3301cf4c849
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
- The qdoc pages were related to qtcore and they were
referring to snippets inside the qtcore module boundary.
- Fixed the exampledirs for QtCore to include the examples
that are referred by the \snippet instances in the
moved qdoc pages work.
Change-Id: Ibb6dbb131920ea8692a203f6145863e5012e4602
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Delete the interface if it's not returned.
Change-Id: Ia1e1f94d14584ab3af1b89a0baac5d343ffdd1f4
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
Autorelease ("delete later") the created attribute
name array.
Change-Id: I2d7af9eb1fd899f04c8acb90204600a2dd43fa20
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
Fix off-by-one error. QAccessibleInterface::child()
is 0-based, start the iteration at childCount() - 1.
Change-Id: I0c841b692adab0aae4e8ac44c7d308cd7a176ac8
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
The function is massively ineffective on deep hierarchies
and not strictly needed. (It's supposed to filter out
"Ignored" children - VoiceOver will do that anyway based
on accessibilityIsIgnored())
Change-Id: I9a74b5f5e9b7880e0d46d5330f7192472eac7a36
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
Corrected in qkeysequence.cpp
Link from external-sites not working
So, entered hardcoded url.
Task-number: QTBUG-27512
Change-Id: I5b8d25d2b1f4f4fb0d57d2306de7f1b7c3dc40e3
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Font styleName support was disconnected since Qt switched to QPA
fontdatabase. Now add the code from Qt 4.8 back to enable this in
QPA.
Change-Id: Iab2cbfd5468f87542183348c2123ca4b2c270692
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Use localized family name and style name when selecting font with
non-English locale
Task-number: QTBUG-27415
Change-Id: Ie81507ed011fc096e0f5edad146e97c392e86494
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
QGLTextureCache::remove(qint64 key) locks the QGLContextGroupList mutex
before removing a texture. Removing the texture might cause the
QGLShareContextScope construct to be invoked, which calls
QGLContext::currentContext(), which will wrap a current QOpenGLContext
in a newly created QGLContext. That also triggers the creation of a
QGLContextGroup object, which will register itself with the
QGLContextGroupList, an operation that again will lock the
QGLContextGroupList mutex. To prevent this from deadlocking we make the
mutex recursive. The whole QGLShareContextScope approach is really
broken and should be replaced, but for now it's what we have in QtOpenGL
(QtGui has the replacement QOpenGLSharedResource).
Change-Id: Id1ff69035af3f31b690892c03f74748d052a278b
Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
The QX11Info class needs this.
This required adding the missing nativeResourceFunctionForScreen
in QPlatformNativeInterface.
Change-Id: I2c6e91c7f122f3ecdf769a177deafd2aa3896e2f
Reviewed-by: Richard J. Moore <rich@kde.org>
Reviewed-by: Alberto Mardegan <mardy@users.sourceforge.net>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
This increases consistency a lot: all windows and dialogs from a Qt
application will show the app display name in the caption, on Windows and X11.
This helps identifying which app a dialog belongs to, which is especially
useful when the dialog is very generic and shows up unexpectedly.
For compatibility reasons, the app name is added to the caption only
if setApplicationDisplayName() was called -- or if the caption would be
completely empty. The standard Qt4 case (setWindowTitle + no display name)
is unchanged.
Change-Id: Ib284c62c1f4c0bc923e5bc2d10247d95e9aa76c1
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>