Commit Graph

34562 Commits (72205c829b63736e016f4fc2bb0f8fc4bb2fee5e)

Author SHA1 Message Date
Edward Welbourne 72205c829b QQueue: purge deprecated API, swap(i, j)
Was deprecated in 5.14 although the relevant annotations won't show up
until 5.15.1.

Change-Id: I5b88bd109b9785d8170c616c619d478969536bbf
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-08-14 09:57:21 +02:00
Allan Sandfeld Jensen d4a73d4255 Another round of using noexcept instead of pre-C++11 defines
A few new files were added with old-school defines.

Change-Id: Ieb2c71e094e55102f3f39fb9551823f36863f5f4
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2020-08-13 19:58:40 +02:00
Frederik Gladhorn d12afeff40 Set default redirect policy to NoLessSafeRedirectPolicy
Not following redirects is not a feature, but just a hastle for everyone.

The main issue with switching this default is that applications that
actually do manual redirect handling will break in various ways.

FollowRedirectsAttribute was removed as it no longer serves any
purpose beyond duplicating the default value.

[ChangeLog][Network] QNetworkAccessManager now follows redirects by
default with the NoLessSafeRedirectPolicy.
[ChangeLog][Potentially Source-Incompatible Changes]
QNetworkRequest::FollowRedirectsAttribute was removed and has been
superseded by QNetworkRequest::RedirectsPolicyAttribute

Fixes: QTBUG-85901
Change-Id: Ic5b776180a4b84ac4fc895158bb5a66a3c91a042
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2020-08-13 19:58:19 +02:00
Mårten Nordheim 09e22c6c32 QNAM: Don't error out if the server doesn't support any ALPN we request
If we ask for HTTP/2 or 1.1 and the server doesn't list either then we
should still try to connect using HTTP/1(.1) just in case, to keep
compatibility.

Task-number: QTBUG-85902
Change-Id: I6ff2e38ac9d767e482a19ee4c81d101be37d3fab
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2020-08-13 19:58:16 +02:00
Mårten Nordheim 1a8627cf19 QNAM: Don't close the connection due to not having a layer preference
This seems to only be happening when we have a single channel because
otherwise it will try IPv4 in one channel and IPv6 in the second.

Change-Id: I0d513e25fefffeabfc733e895827aa12da335ef9
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2020-08-13 19:58:14 +02:00
Mårten Nordheim 7e55642c87 QNAM: HTTP/2: Set user-agent for the HTTP proxy's header
The user-agent should be propagated to the proxy as well or else we
get our default one.

Change-Id: Id2283a8f2ade1a32f7fcf3d691be8d380d334b50
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2020-08-13 19:58:13 +02:00
Mårten Nordheim 5ecc6eb363 QNAM: Fix proxy auth handling when requesting but not yet changed to h2
In some cases (i.e. with SOCKS) we don't have a HTTP/2 request ready
yet so it would just error out.

Change-Id: I6449de5fb52f5208d5641062c5906c3baff18b77
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2020-08-13 19:58:11 +02:00
Andre de la Rocha c808bd0b60 Windows QPA: Fix omitted Drop event
In some rare cases, when a mouse button was released while the mouse was
static, a drag and drop operation would not be completed until the mouse
was moved. Probably due to a Windows bug, the mouse button state
supplied through the arguments of the IDropSource callbacks, called from
the internal DoDragDrop() loop, would not reflect the actual mouse
button state in this case. This change makes the callback implementation
use the actual mouse button state provided by GetAsyncKeyState().

Fixes: QTBUG-85300
Pick-to: 5.15
Change-Id: I3405bdf7076ddc46415cd274a502434bdc0d2f3f
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2020-08-13 14:47:00 -03:00
Alexandru Croitor 48dbcefe57 CMake: Allow specifying a sysconfdir that's outside the prefix
Also use the value to actually write it into qconfig.cpp so that qmake
reports the right information.

Change-Id: Icc4bf36b0dc6ad75d93ac16f39e5b361c0ce52b4
Fixes: QTBUG-81289
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-08-13 19:45:33 +02:00
Alex Trotsenko 707d29d5d7 De-inline QIODevice::write(const QByteArray &)
Since QRingBuffer is used as a temporary store for data to be written
to a buffered device, we can implement a "zero-copy" strategy between
the user-space code and QIODevice's internal write buffer. As a first
step, we should have an entry point, where we can implement a possible
solution.

Change-Id: I1c658c13accc98c65a802be943688359cc9f9917
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-08-13 20:37:50 +03:00
Sona Kurazyan 1df02b5f98 Fix conversions to JSON from QVariant
After reimplementing Qt JSON support on top of CBOR, there were
unintended behavior changes when converting QVariant{, List, Map} to
QJson{Value, Array, List} due to reusing the code for converting
QVariant* types to CBOR types, and from CBOR types to corresponding JSON
types. In particular, conversions from QVariant containing QByteArray to
JSON has been affected: according to RFC 7049, when converting from
CBOR to JSON, raw byte array data must be encoded in base64url when
converting to a JSON string. As a result QVariant* types containing
QByteArray data ended up base64url-encoded when converted to JSON,
instead of converting using QString::fromUtf8() as before.

There were also differences when converting QRegularExpression.

Reverted the behavior changes by adding a flag to internal methods for
converting CBOR to JSON, to distinguish whether the conversion is done
from QVariant* or CBOR types. These methods now will fall back to the old
behavior, if the conversion is done using QJson*::fromVariant*().

Additionally fixed QJsonValue::fromVariant conversion for NaN and
infinities: they should always convert to QJsonValue::Null. This works
correctly when converting from variant to QJsonArray/QJsonObject, but has
been wrong for QJsonValue.

Added more tests to verify the expected behavior.

[ChangeLog][Important Behavior Changes] Restored pre-5.15.0 behavior
when converting from QVariant* to QJson* types. Unforeseen consequences
of changes in 5.15.0 caused QByteArray data to be base64url-encoded; the
handling of QRegularExpression was also unintentionally changed. These
conversions are now reverted to the prior behavior. Additionally fixed
QJsonValue::fromVariant conversions for NaN and infinities: they should
always convert to QJsonValue::Null.

Fixes: QTBUG-84739
Change-Id: Iaee667d00e5363906eedbb67948b7b39c9d0bc78
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-08-13 19:36:58 +02:00
Lars Knoll 048debe8f9 Restrict QVariant::isNull() behavior
isNull() would forward to the contained type and check that type's
isNull() method for some of the builtin types. Remove that behavior
and only return true in isNull(), if the variant is invalid, doesn't
contain data or contains a null pointer.

In addition, implement more consistent behavior when constructing
a QVariant using the internal API taking a copy from a void *.
isNull() should return true in both cases. This mainly changes behavior
for some corner cases and when using our internal API.

[ChangeLog][Important Behavior Changes] QVariant::isNull()
no longer returns true when the variant contains an object of some
type with an isNull() method, that returns true for the object;
QVariant::isNull() now only returns true when the variant contains
no object or a null pointer.

Change-Id: I3125041c4f8f8618a04aa375aa0a56b19c02dcf5
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2020-08-13 08:48:32 +02:00
Lars Knoll 4a69cd7f72 Restrict comparison of variants
Comparing two variants will not try to convert the types
of the variant anymore. Exceptions are when both types are
numeric types or one type is numeric and the other one a
QString. The exceptions are there to keep compatibility with
C++ and to not completely break QSettings (which needs automatic
conversions from QString to numeric types).

[ChangeLog][Important Behavior Changes] Comparing two
variants in Qt 6 will not try attempt any type conversions before
comparing the variants anymore. Instead variants of different type
will not compare equal, with two exceptions: If both types are numeric
types they will get compared according to C++ type promotion rules. If
one type is a QString and the other type a numeric type, a conversion
from the string to the numeric tpye will be attempted.

Fixes: QTBUG-84636
Change-Id: I0cdd0b7259a525a41679fb6761f1e37e1d5b257f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-08-13 08:48:19 +02:00
Lars Knoll 50c96c17b6 Use the new support for comparisons in QMetaType for QVariant
Remove the compare method in the QVariant::Handler struct. Rely
on the generic support provided by QMetaType instead.

[ChangeLog][Important Behavior Changes][QVariant] QVariant will now use builtin support in
QMetaType to compare its content. This implies a behavioral change
for some graphical types like QPixmap, QImage and QIcon that will
never compare equal in Qt 6 (as they do not have a comparison
operator).

Change-Id: I30a6e7116c89124d11ed9052537cecc23f78116e
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2020-08-13 08:48:03 +02:00
Thorbjørn Lund Martsum 2002158a13 QHeaderView: create virutal initStyleOptionForIndex function
The paintSection was very long and thus difficult to override.
This change makes it far more easy to do custom section painting
or styling in the headerview.

[ChangeLog][QtWidgets][QHeaderView] Introduced QHeaderView::initStyleOptionForIndex
to make it easier to reimplement custom styling and painting of sections.

Change-Id: I99e5fe8d70485a4650ab33e3d3eb4a46d6468326
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2020-08-13 06:06:51 +02:00
Thiago Macieira 99ce02f692 QCborValue: add support for QCOMPARE string output
Change-Id: Ibdc95e9af7bd456a94ecfffd16066c47ea9766d0
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2020-08-12 21:05:06 -07:00
Volker Hilsheimer e635568985 QFileSystemModel: use the QFileInfo from the model as much as possible
If the file system already stores a QFileInfo, then it will have the
information cached, which avoids costly roundtrips to the file system.

Task-number: QTBUG-41373
Change-Id: I830a39fe0e20ebf07abde4438a87f7572f608d66
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2020-08-12 23:06:36 +02:00
Volker Hilsheimer 99aefbb4c0 QFileDialog: fix warning message when navigating to "My Computer"
The mapping between model indexes, QUrl, and QDir in QFileDialog
resulted in QFileSystemEngine methods being called on empty
strings, which results in a warning from QFileSystemEngine.

When QFileDialog gets an empty string as the new path, then we
know that it's the "My Computer" location, so handle that case
separately. This makes sure we don't call any QFileSystemEngine
methods with an empty string.

Change-Id: I421d3d76b053379c216c41a72fb783d1bad176cb
Pick-to: 5.15
Fixes: QTBUG-67866
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2020-08-12 23:06:36 +02:00
Volker Hilsheimer 5382bf4220 QFileDialog: reduce number of times a file is stat'ed
When opening a QFileDialog with an initial directory that lives on a
disconnected network drive, repeatedly testing that directory consumes
a significant amount of time during which the UI is blocked.

To reduce the amount of file accesses, refactor the initialization code
to allow sharing of a QFileInfo for the default case of operating on a
local and absolute file system. This reduces the amount of stat calls
significantly during startup time, and in case of a disconnected
network shaves of 10-15 seconds of blocked UI, if Windows has already
noticed that the file system is disconnected.

Pick-to: 5.15
Fixes: QTBUG-6039
Change-Id: Ie082e447db214033291455bef2087cd05f366806
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2020-08-12 23:06:36 +02:00
Cristian Adam 6b488d8950 Configure.json: Do not link to pthread on Android on feature testing
pthread has been removed from the NDK and the cxx11_feature detection
fails.

Fixes: QTBUG-72330
Change-Id: I22a97814b7e95011ad3944327f02343348c72b91
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-08-12 16:12:48 +02:00
Konstantin Ritt 95946222e6 QtFontStyle: Add missing const to non-mutable operators
and once I touch these lines anyways, either add noexcept ;)
Fixes-up 8bdbb7f226

Change-Id: Ibfaedcff82c041293220408ab7ae739b3cbd2a4f
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2020-08-12 16:13:15 +03:00
Alexandru Croitor bc0f5f5d1a CMake: Expose public info about whether Qt is a shared lib build
We expose it in the private QtBuildInternals package, but we need it
also as public information for consumption in qt_import_qml_plugins()
to decide whether it should do anything.

Change-Id: If135ae596b4edaf8e2c458f6a2518b968c6d01c4
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-08-12 14:20:44 +02:00
Robert Loehning 3e3fdbe831 QXmlStreamReader: Don't resize readBuffer to a size it already has
Resizing it to 0 will cause it to allocate memory. This will then
cause append() to copy the data from the other string instead of
using copy on write.

Task-number: oss-fuzz-24347
Pick-to: 5.12 5.15
Change-Id: I581bd109f9b973e1c70b7b41b1f610a2ad5725b8
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-08-12 14:18:30 +02:00
Edward Welbourne ca034e4e50 Inline two macros in the unicode tables
They were only used by one function each, in unicodetables.cpp, so
don't need to be macros.

Change-Id: I3e7f9f661568862d0a0d265bb8f657a8e0782b13
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-08-12 13:47:56 +02:00
Kai Koehne e6ac26ea60 Windows: Remove method not existing in base class
Change-Id: Ifd016eabb07849fb3f310593ebe5301d3a9b09c1
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2020-08-12 12:52:55 +02:00
Mårten Nordheim 27b1d1a1b2 HTTP/2: Don't handle Remote Disconnected if we haven't switched yet
In that case we haven't created the h2 handler yet, so it will
crash when trying to access various members.

Task-number: QTBUG-85902
Change-Id: Id0699ff06ef67748a16622703f731db0b0867771
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2020-08-12 11:38:00 +02:00
Samuli Piippo 7448884bb4 QNX: fix build
Remove unused argument and use default contructor for the flags.

Change-Id: I09d319bc58199ed713333055a2fdd519c249f831
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
Reviewed-by: James McDonnell <jmcdonnell@blackberry.com>
2020-08-12 12:17:16 +03:00
Samuli Piippo b92ea7db49 QNX: register mouse input device
Use the new QWSI APIs that take a registered input device.

Task-number: QTBUG-85852
Change-Id: Iefb8239a60ff819172ba64f35f120cdc6975257f
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
Reviewed-by: James McDonnell <jmcdonnell@blackberry.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2020-08-12 12:17:10 +03:00
Ulf Hermann 3e25d09b08 QDecompressHelper: Change order of encodings
Before the introduction of QDecompressHelper gzip was preferred over
deflate. The change seems to be accidental. Amends commit
7b76379a89.

Change-Id: I70f33d551912465d63f49ea3db1ac3575d19a92d
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2020-08-12 08:27:09 +00:00
Eirik Aavitsland 4db44bc32f Allow smooth curve stroking for very wide lines
The earlier limit set on the curve threshold turned out to be too
strict, leading to visibly bad rendering in reasonable use cases.
Ref. 5322998a0b

As a drive-by, add a missing fixed-to-real conversion. (This is a
no-op in a default build, where qfixed==qreal.)

Fixes: QTBUG-85193
Pick-to: 5.15 5.12
Change-Id: I7cc3543d7aa4e90643b275686372400879decef2
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2020-08-12 07:10:23 +02:00
Paul Wicking 7bd965258e Doc: Remove outdated documentation
We don't have this class in Qt anymore.
Drop the related snippet as well.

Pick-to: 5.15
Change-Id: I5149e2f9da483b9ad678a6d414a278cb7e107f10
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2020-08-12 05:04:56 +02:00
Andy Shaw 295e98915d Introduce maximumIdentifierLength to return database limits for names
Since Interbase/Firebird has a limit for column and table names then
this function can be used by QSqlRelationalTableModel to make sure that
the aliases created are within that limit.

Change-Id: I0cb1c65b34befcb3690ccad3f081556dd2691344
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-08-11 22:13:13 +02:00
Thiago Macieira e790af0e0a QJsonDocument: fix comparison of valid vs default
[ChangeLog][QtCore][QJsonDocument] Fixed a bug that caused
QJsonDocument's equality operator to crash if one of the operands was
default-constructed and the other wasn't.

Pick-to: 5.15
Fixes: QTBUG-85969
Change-Id: I5e00996d7f4b4a10bc98fffd1629f835f570ef6b
Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
2020-08-11 13:00:47 -07:00
Edward Welbourne d5ef011b73 Document how keyboard tracking can prevent use of a date/time editor
This follows up on commit 580e9eedf783ccbdcb67baa3d1a9dcdd53922f86; if
the allowed range is narrower than some time interval whose end it
straddles, users can only access the later part of the range if
keyboard tracking is disabled.

Pick-to: 5.15
Task-number: QTBUG-65
Change-Id: Ie8882bd65bda603133abaa82ad83eb1cdd91f175
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
2020-08-11 21:46:25 +02:00
Alex Trotsenko 8f53d66e3e Introduce QIODevice::skipData()
QIODevice::skip() called a virtual QIODevicePrivate::skip() to
implement an efficient skipping on I/O devices for the internal
subclasses. The user subclasses cannot inherit QIODevicePrivate, so
this functionality was not externally accessible.

This patch replaces QIODevicePrivate::skip() with a virtual protected
QIODevice::skipData(). While the basic implementation simply discards
the data by reading into a dummy buffer, users can reimplement this
function to improve the performance in their subclasses.

[ChangeLog][QtCore][QIODevice] Added virtual protected skipData().
Now, subclasses can implement device-specific skipping of data.

Change-Id: I9522f7f7ab9d03ac06e972a525f8ec2fa909a617
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-08-11 17:21:45 +03:00
Laszlo Agocs a99cee1c7b Remove old CBOR-based format from QShader
We only support version 4 and 5 in Qt 6.0. 1 and 2 are already gone
(due to being based on binary JSON), now we remove 3 as well.

Task-number: QTBUG-81346
Change-Id: I3627dcc0587f1e36f11e93edf7172889e911d64e
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2020-08-11 13:45:09 +02:00
Edward Welbourne 72d14fe32f Fix handling of last second in 1969
Due to a limitation of mktime(), we would have declared it invalid.
Tidied up qt_mktime() slightly in the process.

Change-Id: I25469e314afee6e0394e564bc69a98883005d4ec
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-08-11 11:20:43 +02:00
Edward Welbourne 1f96709fdb Tidy up use of local variables and add an assertion
Petty tidy-up, narrowing the scopes and asserting that localtime_r()'s
return, when non-null, is the pointer we gave it.

Change-Id: I6c0959524260028ca9b234f6d33eae78f27c1412
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-08-11 11:19:44 +02:00
Morten Johan Sørvig 1b4a5af63f wasm: detect canvas resize using ResizeObserver API
The ResizeObserver API is now available on the major
desktop browsers (Safari, Chrome, Firefox), and can
be used to handle canvas resize.

(Previously, we got a callback on viewport resize
only)

Pick-to: 5.15
Change-Id: I8737285416bef70641f90da793c85efcb24f3623
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
2020-08-11 06:43:18 +00:00
Giuseppe D'Angelo d7205a7cae Add degree<->radians conversions for long double and integral types
For long double: they're just missing, so add them for completeness.

For integral types: follow the advice of C11's trigonometric
functions; first convert the angle to double, then do the actual
conversion. This is offered only for the degree->radians conversions,
as someone may legitimately want to call e.g. qDegreesToRadians(90).

On the other hand, it seems extremely unlikely that someone may
want to do a radians->degree conversion starting from integral
datatypes, so I'm not adding it for the moment being (instead,
I'm leaving a note).

[ChangeLog][QtCore][QtMath] qDegreesToRadians now also accepts
long double and integral types. A value of integral type will be
casted to double before the conversion to radians.

[ChangeLog][QtCore][QtMath] qRadiansToDegrees now also accepts
long double.

Change-Id: Ib1576be5193ae09bb6cb4a70d7a31702955df2c5
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-08-11 04:24:12 +02:00
Lorn Potter 20db9a0d7f wasm: fix natural scrolling on mac
Pick-to: 5.15
Change-Id: Icc41b2c54a2e8d0da11ba5068bdde1a0c20686e0
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2020-08-11 10:26:30 +10:00
Andy Shaw 6379b697a6 Interbase: Don't call toUpper() on the names as they are escaped
Interbase is case sensitive when tables/fields are escaped so we should
ensure that we pass the value as is.

Pick-to: 5.15
Change-Id: Ia6c4edc9c1e675bd95913c85d47bf22c418d2113
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2020-08-10 18:51:11 +00:00
Giuseppe D'Angelo 7406a8b45a QMultiMap: add constructors from QMap
We can provide those. They don't lose information, do not have the
problem we face at offering ranged constructors (namely the order of
duplicate keys), and have a distinct advantage over ranged constructors:
a non-shared rvalue QMap can be "upgraded" to a QMultiMap without
allocating memory for the multimap.

Change-Id: Ic23c83927c05a210bc1f0050006c9f26365d3916
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-08-10 16:35:59 +02:00
Giuseppe D'Angelo 046ad5a442 Improve QMultiMap docs a bit
Change-Id: I170dc5de15dac61620aaed94f32226c158092dce
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2020-08-10 16:35:53 +02:00
Volker Hilsheimer 3657405fe7 QFileInfo: make stat method public
Forcing the reading of all file system attributes is generally useful in
multi-threaded applications, and has at least one more use case in Qt.

Using it in QFileSystemWatcher on Windows avoids several file system
accesses.

Task-number: QTBUG-41373
Change-Id: Ib3c3243fd083142393ad46d62f49cb4f7bfda17c
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2020-08-10 13:17:01 +02:00
Michael Weghorn 3e09c28101 Filechooser portal: Implement "current_filter"
This adds supports for setting and retrieving the selected
MIME and name filter for 'QXdgDesktopPortalFileDialog'.

For preselecting a filter [1]:

> current_filter (sa(us))
>
>     Request that this filter be set by default at dialog creation. If
>     the filters list is nonempty, it should match a filter in the list
>     to set the default filter from the list. Alternatively, it may be
>     specified when the list is empty to apply the filter
>     unconditionally.

The "current_filter" return value was added in xdg-desktop-portal
commit [2].

[1] https://flatpak.github.io/xdg-desktop-portal/portal-docs.html#gdbus-org.freedesktop.portal.FileChooser
[2] 35fca7fae8

Fixes: QTBUG-85658
Pick-to: 5.15
Change-Id: I8651c1a8942dfd358895b7826730729c4d22e680
Reviewed-by: Jan Grulich <jgrulich@redhat.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-08-10 12:33:10 +02:00
Alexandru Croitor ecc72bc63d CMake: pro2cmake: Specify library versions for 3rd party libs part 2
Embed package versions into the qt_find_package calls for various
Linux specific packages.

Task-number: QTBUG-82917
Change-Id: I5d1cb623f81932dfae4658b8a3a89eedb71ea3af
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-08-10 11:56:54 +02:00
Alexandru Croitor 3c52f8af9d CMake: pro2cmake: Specify library versions for 3rd party libraries
If certain 3rd party libraries have a version that's not suitable for
Qt, the configure summary should say so, rather than use them and fail
at build time.

With the current situation, we have to duplicate the version
information from the configure.json files in helper.py, by assigning
the version number as an extra find_package variable.

Rerunning configurejson2cmake then embeds this version info into the
qt_find_package calls in configure.cmake.

Some of the Find modules are rewritten to take the  specified version
into account when looking for the libraries.
This involves moving around the code for creating a target, after
calling find_package_handle_standard_args() so we know if a good
enough version was found.

Task-number: QTBUG-82917
Change-Id: I139748d8090e0630cda413362760034dc3483e11
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-08-10 11:56:54 +02:00
Giuseppe D'Angelo 7e7796fb00 QLayout: minor tidy in the docs
Change-Id: Ifc2aa62a9c9480c85cc36f60941411e920066db8
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
2020-08-10 11:56:54 +02:00
Kai Koehne 177f040c6c Fix build with mingw gcc 9 and -Wsuggest-override
Change-Id: I780b0761a7f6b19022116b738efa7aca1378b715
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2020-08-10 11:56:54 +02:00