Since the backend is async, the settings will not be ready to read/write
instantly as on other platforms, but only be ready after the
filesystem has been synced to the sandbox. This takes at least 250 to
500 ms. The QSettings status() or isWritable() can be used to discern when the
settings are ready for use.
This also fixes a crash in threaded wasm
Task-number: QTBUG-70002
Change-Id: I080bdb940aa8e9a126d7358b524f32477db151b6
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Future versions of emscripten will remove the timestamp, so we need to
replace this with the current timestamp
See a7f058a1e6 (diff-9a5d68085dc7db2938b37a2b7b05c1f5)
Change-Id: I8379d1adee1df1084461fddb1dd2e71684de9657
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
DISABLE_DEPRECATED_FIND_EVENT_TARGET_BEHAVIOR is now on by default, which
means that functions like emscripten_set_keydown_callback() now expects
CSS selectors (e.g. "#canvas_id" instead of "canvas_id").
In addition, Module.canvas is no more. Add a deprecation warning in case
someone is setting it and expects Qt to use it. (qtloader.js sets
qtCanvasElements instead).
This bumps the minimum supported emsdk version to 1.39.5.
Change-Id: I38abb2a191076ea04581c29552657ee3e0b87dbc
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Parse them into color profiles, they are a simple subset with just a
single TRC and a whitepoint.
Change-Id: I300537d488feb3e907a1acff928b2519ffa75088
Fixes: QTBUG-81830
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
The idea is to reserve device() to return a pointer to a QInputDevice
in the future, which is in sync with QQuickPointerEvent::device()
and with QTouchEvent::device().
Change-Id: Ifda6e8aea72d5121955b31bdcbd91bf1bfa4cec4
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Help porting connections over by printing the connection statements.
[ChangeLog][QtCore][QObject] A logging category
qt.core.qmetaobject.connectslotsbyname was added, which will
produce about the connections made by QMetaObject::connectSlotsByName().
Task-number: QTBUG-76375
Change-Id: I9a57cae574156fc8ae5a4fb8e960c2f9a47a5e47
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Flip broken check for Qt::MSWindowsFixedSizeDialogHint.
Amends a611c632bb.
Fixes: QTBUG-82191
Change-Id: Iada62271a2084d7482b634189f77e520dfcbe817
Reviewed-by: André de la Rocha <andre.rocha@qt.io>
Allow Qt to use native file dialog to open (file, multiple files,
directory) and save a file.
Due to changes in file permission in Android 10, proper permissions
tokens are granted after selecting a file or directory.
[ChangeLog][Android] Use native file dialog by default for open and save
operations.
Task-number: QTBUG-82120
Fixes: QTBUG-75484
Change-Id: I92c9d08e0f214a57c4b3880fbd948adbabe39694
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
This is required because opening a Uri with no permissions can cause
crashes.
Some exceptions were not handled at all.
Change-Id: I2e8f9505879b9fc4c1c47bdfa1bf173b39ada3ea
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
This test fails sporadically on OpenSUSE, with the widget receiving
multiple resize events. Assuming that window management kicks in at
unpredictable moments and changes the geometry of the managed widget
possibly in several steps, we try to turn off all window management
on X11.
Change-Id: I7d2120c02eb870040b2ee94986a2ac5608d5a423
Fixes: QTBUG-66345
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
For graphs like this one:
Input ----> Function1 ----> Output
\
---> Function2
(unbound output)
We would have generated only 2 statements, for Function1 and Output.
This change fixes this by treating Function2 like an output.
Therefore it generates 4 statements: Input, Function1, Output and
Function2.
Change-Id: Iaada40b9b949d771806dd47efad4f7ef2a775b48
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
We do not have dlopen, harfbuzz seems to try and load the thai
plugin using dlopen when just iterating through the language
selector in virtualkeyboard..
Fixes: QTBUG-78825
Change-Id: Iee064a1d9a628784e3ce46d641cd157a69bcb696
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
This fixes windows build and detection of c++ version
Task-number: QTBUG-80610
Change-Id: I5196e83f9aad6663aea47c31ae4a2da4c4d74e94
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
QUtf32::convertToUnicode() was forgetting to set headerdone when it
dealt with the header (for contrast, Utf16::convertToUnicode() does).
Fixes: QTBUG-62011
Change-Id: Ia254782ce0967a6cf9ce0e81eb06d41521150eed
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
One constructor deprecated since 5.4, and two convenience variants of
a method deprecated in 5.0.
Change-Id: Ib1bba9ad529b3065461b86f80c9ec8dfc95f9ae1
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Mirror the behavior in unixmake.cpp and do actually install
/uninstall files in target.targets. This fixes the installation of
.debug files on MinGW for a Qt with -force-debug-info
-separate-debug-info.
[ChangeLog][qmake] Install/uninstall rules are now generated for
target.targets on Windows. This mirrors the behavior on Unix.
Fixes: QTBUG-81354
Change-Id: Ie9366f132ebd8e18680f32f2e52cec64dbd87e9a
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
If a model is empty, there is no index (0, 0); requesting it
is undefined behavior.
Rather than protecting the calls with checks on rowCount/columnCount,
remove the Q_ASSERTs altogether: they're trying to do some
basic sanity checks on the model, something that doesn't belong
to a view (but, say, to QAbstractItemModelTester).
Change-Id: I0ea25604fdcf524a10f5922a03a4d0700447f6a7
Reviewed-by: Andre Somers <andre.somers@kdab.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
This can be used to set the pixmap format, and needs to be defined to
something sane even if there is no primary screen.
Task-number: QTBUG-81671
Change-Id: Ic0d41cec31ac71309123aa8bb8b840fa4a4122bb
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
Qt Quarterly 31 was the last edition of Qt Quarterly to be
published exclusively as a PDF. We cannot fix the typo in the
PDF. As the content is >10 years old an in an unmaintained
archive section, remove the reference to it from this example.
Fixes: QTBUG-81972
Change-Id: I41a82487ff89dbe8ea5701c02c51e7f7c79bf73d
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
What I originally thought NLM_CONNECTIVITY_IPV*_SUBNET meant turns out
to be what NLM_CONNECTIVITY_IPV*_LOCALNETWORK is, leaving me to wonder
when *_SUBNET is actually used. Anyway we now also check *_LOCALNETWORK
to make sure we're not unnecessarily denying certain connections to be
made.
At the same time check for link-local connections where both local and
remote are link-local, in this case even NLM_CONNECTIVITY_IPV*_NOTRAFFIC
is valid. Unfortunately this check cannot be done in
QNetworkStatusMonitor, so QNAM will likely not allow these connections.
Task-number: QTBUG-80947
Change-Id: Ieb96ce9f4a478eef0c3ea47f2471f701c102b4d4
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
The implementation of the check has been moved to a single helper
function. The reason for doing this check in QWidgetPrivate as well,
when it's already done in QObjectPrivate, is to catch incompatible
libraries where QtWidgets is the odd one out, e.g.:
QtSomeModule 5.15.0 -> QtWidget 5.15.1 -> QtCore 5.15.0
Technically any non-final subclass of QObjectPrivate should have
this check.
Change-Id: Ia74064ad27de7335040a6d6b37d11574f818c878
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This makes no difference for the IA-64 C++ ABI nor for MSVC until MSVC
2019 16.6. But it does with 16.6, where the std::atomic constructor
becomes non-trivial, which makes QtPrivate::RefCount non-trivial, which
makes QLinkedListData non-trivial.
Before this change:
User code \ Qt MSVC <=16.5 MSVC >=16.6
MSVC <=16.5 works works
MSVC >=16.6 fails works
With this change, they should all work. The list of symbols exported
should not change either, so linking against a Qt compiled with MSVC
<=16.5 should continue to work.
[ChangeLog][MSVC] Fixed a compatibility issue found when linking code
compiled with version 16.6 to a Qt compiled with 16.5.
Fixes: QTBUG-81727
Change-Id: If79a52e476594446baccfffd15ee771397467f8b
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Apple changed on macOS 10.14 (Mojave). Windows has always allowed.
Fixes: QTBUG-81905
Change-Id: I572733186b73423b89e5fffd15f12fee3f03c055
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
The comment in QNativeSocketEnginePrivate::fetchConnectionParameters()
talked about IPv6 v4-mapped addresses. However, toIPv4Address also
converts the unspecified address (::), which resulted in QAbstractSocket
saying that it had bound to QHostAddress::Any instead of
QHostAddress::AnyV6
Change-Id: I572733186b73423b89e5fffd15f138579c5c0c50
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
The command string parsing covers only simple quoting
patterns, while users tend to expect something that is in line with
their shell.
The overloads that take a QStringList are the recommended APIs to use
anyway, so exposing the splitting method as a static function for
which we document the exact behavior allows callers to post-process
the QStringList, before calling the preferred overloads.
[ChangeLog][QtCore][QProcess] Overloads of start/execute/startDatached
that parse a single command string into program and arguments have
been marked as deprecated. A static helper splitCommand has
been added to construct a QStringList from a command string.
Change-Id: Ie91fcfb5eae6a52e5065efc60d2d9e068d20869d
Fixes: QTBUG-80640
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
Change b274f656b8 enabled the use of a
response file for application building specifically needed when building
an application for Android on Windows. The same cause can happen when
building a library too with a lot of object files, so the command for
the link step can be too long. So we expand the functionality to be
used for libraries too.
Task-number: QTBUG-71940
Change-Id: Ia6d1943bf33f6decb53f6e71a8dc65310d2f20a1
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Adding support to the IsDialog property within the UI Automation code.
This property allows dialog windows to be identified as such, which
may be used by screen readers to better describe them.
Fixes: QTBUG-82019
Change-Id: I6f5478dd30f63f152cba75886a9e0eb38772037a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
not to have arrows under some conditions. NSPopUpButton had a needed
color, except it also has arrow(s). Which looks quite confusing on an
inactive window on a tab button.
Fixes: QTBUG-82122
Change-Id: I40c57abe9ccae48fa906d592169c412f5f89f712
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
The static self pointer of QGuiApplicationPrivate was not reset at
destruction (in constrast to the corresponding
QGuiApplication::self). This could cause crashes when calling Qt API
after QGuiApplication destruction.
Fixing this revealed an issue with QGuiApplication::font(), which
would assert QGuiApplicationPrivate::self. But the QApplication
autotest actually calls this function with no QApplication
instance. That autotest passes only coincidentally, since another
QApplication instance has been created and deleted already, and
the dangling self pointer of that instance was never reset.
To improve the robustness of the api, replace the assert/crash with
just a warning and return an "empty" QFont.
(The assert was added for 5.0 for QTBUG-28306 in order to give a nicer
warning when mixing QWidget and QtCore/GuiApplication. However it
never got that effect in practice, since that issue was fixed at the
same time by another, better patch for the duplicate bug QTBUG-28076).
Fixes: QTBUG-81954
Change-Id: I3fa6cad1625a3e70631b5170d53119d63492b534
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
So far, objects had no identification, and both gadgets and namespaces
were called "gadget". qmltyperegistrar, however, is especially
interested in the distinction between namespaces and anything else.
Task-number: QTBUG-68796
Change-Id: Ic5739727bdef7766de6e535c6568920198fadb2b
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
We don't have a -relocatable configure switch. Move the documentation to
the right place (configure -list-features).
The correct configure switches to turn the feature on/off are
-feature-relocatable and -no-feature-relocatable.
Task-number: QTBUG-80928
Change-Id: I96df0f44f12b2efe5a64132e9006d4b73de41255
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Tasuku Suzuki <tasuku.suzuki@kdab.com>
Reviewed-by: Yuhang Zhao <2546789017@qq.com>
In a case where a connection is refused, then it is possible for it to
fail at the time that the QHttpNetworkReply is being created and
therefore after the connections have been made it would have already
emitted the signal to indicate it was finished with an error.
To account for this, then it checks if there is an error code set on
the reply and if there is then it will call the relevant slot right away.
Fixes: QTBUG-57799
Change-Id: I4e73e5c82092c09f825343d18db40b47c3cdb9ac
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
We observe this happening on macOS in the CI system, and it might happen
if a VM doesn't get CPU cycles for long enough time so that two timers
time out. Then event processing will process two timer events, and we
overwrite the timerIdFromEvent with the second event.
Instead, skip the test when this happens.
This is an ammendment to 5c520f4b0a
Change-Id: Ibc1169b5458c8dce9d4fe9ce715f49c396e17b86
Fixes: QTBUG-71751
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Menu items with submenus should implement the Expand/Collapse UI Automation
pattern in order to allow screen readers to say whether they are expandable
items.
Fixes: QTBUG-80550
Change-Id: I4f72d30172f76f028be5cbdeb1fd85fca6b07acf
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
...and merge the two overloads of getDouble() in Qt6
Change-Id: I55faa2ff222b41e48889a0ef14dd00a6da691c36
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Store and pass canvases as emscripten::val instead of
a QString containing the element id.
This simplifies code which interacts with the canvas
using the emscripten::val API, by removing the need to
look up with getElementById.
The Emscripten C event API does not accept emscripten::val,
and using the element id is still needed here.
emscripten::val does not provide a hash key suitable
for use with QHash, but does provide an equality-compare
in the form of val::equals(). Change the canvas->screen
mapping code to use a QVector instead of a QHash.
Change-Id: I1dbdbbc8fb06bb869031f1500e83ae2d64780a7f
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
Since the enum names are "the same", the comment seems to suggest to
change the enum value of Canvas to 0x401. I don't see any benefit to
that really.
In addition, we are today using UIA in favor of MSAA, and the closest
matching role (controlTypeId) seems to be for a static image
(UIA_ImageControlTypeId), which is quite different from the semantic of
IA2_ROLE_CANVAS.
For the record, here's a list of similar roles for different a11y APIs:
IA2:
IA2_ROLE_CANVAS An object that can be drawn into and to manage
events from the objects drawn into it. Also
refer to IA2_ROLE_FRAME, IA2_ROLE_GLASS_PANE,
and IA2_ROLE_LAYERED_PANE.
MSAA:
ROLE_SYSTEM_DIAGRAM The object represents a graphical image that is
used to diagram data.
UIA:
UIA_ImageControlTypeId Identifies the _Image_ control type.
atspi:
ATSPI_ROLE_CANVAS Object that can be drawn into and is used to
trap events.
Change-Id: Ic2ead0dc40be0ae2e798f49285eb6a392cc29142
Reviewed-by: André de la Rocha <andre.rocha@qt.io>
filterAcceptsColumn always returns true unconditionally and must be
reimplemented (overridden) by user code to achieve the described
behavior. Change the documentation to reflect this fact.
Fixes: QTBUG-81654
Change-Id: I0dade63294598238d2ad54ab251b4c1b27c72cdf
Reviewed-by: Sze Howe Koh <szehowe.koh@gmail.com>