Since Android native file manager supports mimeTypes, I use
QMimeDatabase to get the correct mime type for the nameFilter
used with the file dialog.
[ChangeLog][Android] Support setting mimetypes and and namefilters for
Android native file dialog.
Task-number: QTBUG-83089
Change-Id: I46545576dc9b51aa872bb37dbf4fe12b2533bdd9
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
Use :/i18n/, because this is the place where translations are stored
by default if using qmake's CONFIG += lrelease embed_translations.
Also revert change of app.exec() done in 16da0b2cf8. First of all,
both QGuiApplication and QApplication feature overloads of exec(),
so using QCoreApplication::exec() might miss functionality.
Anyhow, while it's true that all of them are static member functions,
the vast majority of our examples and templates call them with
class member access syntax, so let's try to be consistent.
Finally, the example since a while uses QCoreApplication::translate,
not tr(), so let's not mention it in the description.
Change-Id: Ic6e5d91cf04d3f0d1a4296c5c09e790773e6fc62
Reviewed-by: Miłosz Kosobucki <milosz@kosobucki.pl>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
QNetworkAccessCacheBackend didn't override the virtual start() function
which then deferred to QNetworkAccessBackend::start() which conditions
its success on whether or not a network session is available.
Override the function and reimplement it without the network session
check.
Fixes: QTBUG-83205
Change-Id: I45d98a6f5da8ad04bb9da551a131f109e83074d7
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
We hope this shall avoid some flaky failures noticed in quick tests,
e.g. tst_QQuickMenu::Material::subMenuPosition(cascading,flip) was
recently seen failing with 3.88e-11 != 0. This required some revision
to test data in the testlib selftest for floats; the resulting
expected output differs in details but not in which tests pass or
fail. QEMU, naturally, made life difficult, requiring special-case
code in the test-driver.
[ChangeLog][QtTestLib][QCOMPARE] QCOMPARE() now treats its values as
equal when qFuzzyIsNull() is true for both of them.
Change-Id: Icc6ad5164b609937eddbe39cc69120f0abf0f3b4
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
QUrl will reject invalid URLs for us, so we don't get normalization. The
original junk should be retrievable, of course.
Change-Id: Ibdc95e9af7bd456a94ecfffd160610f5b2c8e1a2
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
We rely on QDateTime::fromString being proper, so this is not extensive
testing.
Change-Id: Ibdc95e9af7bd456a94ecfffd160610cdac5d62e1
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
By QCborValue design, we store the textual representation in ISO format,
equivalent of CBOR tag 0, which isn't allowed to have negative years or
beyond year 10000.
Change-Id: Ibdc95e9af7bd456a94ecfffd16060ccff359c296
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
QDateTime::fromSecsSinceEpoch() multiplies by 1000 but does not check
for overflow. That means we must do so in QCborValue validation. We
can't use mul_overflow<qint64> on 32-bit platforms, so we do a compare-
and-branch there. For 64-bit platforms, we prefer to do the
multiplication with checked overflow, as the common case is that it will
not overflow and we'll need the multiplication anyway.
Change-Id: Ibdc95e9af7bd456a94ecfffd16060cba6f1c86b8
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
If a warning is outputted before Qt has had a chance to initialize the
logging rules then it will cause it to hang as it will be stuck trying
to initialize but can't continue because it needs to output the warning
which triggered during that initialization. Therefore the warning should
not be outputted to avoid this from happening.
Change-Id: I202752c377bf69def2f7fb76be71b78d00ad3fd5
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
For now we just fill out the system palette, and react to the system
changing theme from dark to light. A further improvement would be to
fill in the control-specific palettes.
Change-Id: I764db4415f5b55ccb193dae43e9f4386c765b30b
Fixes: QTBUG-42944
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
We should have foreseen the need for customizing this menu in 2014 when
Controls 1 needed it, but here we are: Qt 5 is "done", this still wasn't
done, and it's too late for new enum values in 5.15. So the workaround is
to add a property on the focus object that the iOS plugin can query, and
give us a menu that has Copy instead of Paste.
Task-number: QTBUG-83811
Change-Id: Id8d18260002952fe7aa77aa5608cf7d0e440dacb
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
QCocoaTouch sneakily updated the list of active touches in the
destructor, causing problems when we switched from Q_FOREACH
to ranged-for.
Fixes: QTBUG-83876
Change-Id: If7ec9e9116b7eb581580b461ae12ad70c739906d
Reviewed-by: Simon Hausmann <hausmann@gmail.com>
It appears the hack was not needed when we have several
tabs (popup button works as expected). Otherwise, this button
suddenly has a different size: it's bigger when selected and
smaller if not (and the holes clipped under the tab shape are
becoming quite visible in the dark mode to the left and right
of a tabbar). For the single tab we need some adjustment in
the size not to have visible difference between inactive/selected
tab.
Fixes: QTBUG-83216
Change-Id: I52511e610ae7b36f261e0218b7e432e747bc9491
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
It seems it was defaulting to the indexdb filesystem, but it is not mounted.
Fixes: QTBUG-83827
Change-Id: I1f81d790e5786fe41b59c0f41ca7f6025732c9b2
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
With the introduction of the \typealias command to QDoc, QDoc generates
a standardized line for aliased types.
This patch removes duplication caused by the change in QDoc.
Change-Id: I1a01c378f85b0decb7c0400a3b21146f0898c6ec
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
When a configuration is static and has builtin_testdata defined, it was
possible that the "testdata" resource that is generated in testcase.prf was
used for a qmlimportscan directly. This generated test data resource is no
file though. It's a "qmake struct" that contains files and a base folder
so that we should add every file from the "file list" of that struct.
It is possible, that the generated resource has a base, but no files. Thus
we need two loops or we can end up with a command line that ends with
"-qmldir". If qmlimportscanner decided to warn/error out in this case in
the future this feature could be broken and the point of breakage might
not be obvious.
Change-Id: I2111f594f7d5cf40521b8fe9236a8be9e2ed1b07
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Commit 836a2fb8 changed the contentBorderThickness
property to also include the title bar height, in
order to position sheets correctly when unified toolbar
mode is enabled. As an accidental side effect this made
Qt stop drawing the toolbar separator line.
Account for the added title bar height also in
testContentBorderAreaPosition().
Task-number: QTBUG-78110
Change-Id: I4ecfd010a6784bbb592646affc676d8cbfd9b6da
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
For compatibility with the bearer functionality.
Change-Id: I26ba6bad046b3f99c8ee13e709a26ddcbd868e25
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Since TARGET at this point contains the path to where the target will
be then it can include ".." as part of it which will cause problems when
building for Android on Windows. Therefore, QMAKE_TARGET should be used
as an identifier here as the path is not needed.
Change-Id: Idb8babd0459c65cbcfd64fe47baeac4303a3fd87
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Due to QChar being convertible from almost any integral type,
the old code actually called QString::remove(QChar).
Fix by using QString::chop() instead.
Change-Id: I345b018aa137ecff608a130e69ade5d37ef0805c
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
We've seen submenus opening on different screens in different scenarios,
but probably there's never a sensible reason to do that.
QWidgetPrivate::setScreenForPoint() can often give incorrect results
in multi-screen desktop configurations; this is a way of avoiding that.
Task-number: QTBUG-76162
Change-Id: I895696c6858ad953258c84b21117beea4c4fc01d
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
Do not continue if the conversion to 32bit int would cause an overflow.
Change-Id: I8a198dce5962e7ebd248b9baa92aba8730bfd3b0
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Copy line by line when bytes per line doesn't match between input and
output.
Fixes: QTBUG-83777
Change-Id: I44ca75963df6188c1de76196d9c12fd8bb081688
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
9d5ae9f26c98 introduced a warning when a matching icon engine was not
found for a given file suffix, under the assumption that all formats
would go through icon engine plugins. Unfortunately QIcon itself falls
back to a direct use of QPixmapIconEngine when no icon engine plugin
is found, which would lead to the warning being emitted for built in
formats such as PNG.
Until this code can be moved properly into QPixmapIconEngine we'll
remove it.
Change-Id: I14d1d33a0f0c29e4b4604ef3b53c05cb8e02f867
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Apps on the iOS app store are required to use storyboards for their
launch screens from June 30th 2020.
Change-Id: Iae34042294fb167a2c893542c57dfaacaf1e929c
Fixes: QTBUG-83512
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
If it is null then it has nothing to grab, so a null QImage and QRect
is added to the lists so that there is still a representation in some
form for that display. This additionally ensures that it does take
up space for the display in the final image too.
Fixes: QTBUG-63086
Change-Id: I6e80ecc1170642025f6930e2211017c114e25c16
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
The internal removeAt(index) method was implemented as taking cbor
indexes directly, in contrast to the other ...At(index) methods.
Fixes: QTBUG-83695
Change-Id: I16597eb6db1cf71e1585c041caa81bf8f7a75303
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
configure -no-compile-examples means that the examples won't be
compiled, but processed by qmake to generate install targets. So we
shouldn't do any substitution (like it is done for CMake targets), or
extra compilers / copies (like it is done for qmltypes).
Also install the qmldir files that some qml examples need.
Fixes: QTBUG-83375
Fixes: QTBUG-83704
Change-Id: I6a9393bd914d98a5d85f4089205510e49a435842
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Fixes
error C2124: divide or mod by zero
when compiling the test code (enabled by
713cd83200).
Pick-to: 5.15
Change-Id: I2ae39426fc0012f79714ff3d6484d792cab4bd92
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
It previously applied to dates and date-times, but was documented as
applying to times (and date-times then included it by reference).
It's only meaningful for a date-time.
Change-Id: Id9e8e8cb987b03e5ddc77b05c581b9b6944065fc
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
The old code got a QMap serialized as a QString and parsed it to
re-create the same map.
Just copy the map.
Change-Id: Ic71b9fa9d822eab53fe37dfb4d76223cd69ac057
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Comparing the layer contents to the backingstore surface doesn't make
sense when we're single buffered since we're always using the same
surface.
And once Core Animation has picked up on the surface it's not enough to
just keep drawing to it, we also need to tell Core Animation that the
contents has changed.
Change-Id: I517a0b7a3ba7e9d96033465c9bd5a192985643ac
Fixes: QTBUG-81071
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Change-Id: Ibdc95e9af7bd456a94ecfffd16061db982ad3fa7
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>