Commit Graph

21643 Commits

Author SHA1 Message Date
Laszlo Agocs
9981f521d9 libinput: Fix high dpi scaling support
Bring it onto the level of evdevtouch.

Task-number: QTBUG-55182
Change-Id: Iaba58234fa6289870d60f0fcc351d4b97655f3e2
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2016-08-10 09:05:06 +00:00
Laszlo Agocs
e9fe0a15a8 eglfs: Fix rotation support with the DRM backends
The change in QEglFSScreen::geometry() was not reflected in the
advanced backends that subclass it.

Change-Id: I6494a96f0b9afaea3722c61035d4b46bf2473897
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2016-08-10 09:05:03 +00:00
Laszlo Agocs
9ab5c329bf eglfs: Add basic support for controlling how the virtual desktop is formed
Choose between horizontal (default) and vertical.

Task-number: QTBUG-55188
Change-Id: Ibc490b0ad8c60b66db785455c57987eb8afdad0d
Reviewed-by: Dominik Holland <dominik.holland@pelagicore.com>
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2016-08-10 09:04:54 +00:00
Laszlo Agocs
7de7f981dc eglfs: Add physicalWidth and height overrides to KMS config
Task-number: QTBUG-55188
Change-Id: I751b8c3c4b6f7a33b08ec23fd16cd025a5792ba6
Reviewed-by: Dominik Holland <dominik.holland@pelagicore.com>
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2016-08-10 09:04:51 +00:00
Laszlo Agocs
b305702d1e eglfs: Support virtual desktops in the OpenGL cursor
The GBM-based hardware cursor already has this. Let's implement it
in the commonly used OpenGL cursor too. The main user will be the
EGLDevice backend which does not currently have a hardware cursor
but supports multiple screens.

This also means QEglFSCursor must be capable of operating on different
contexts (and what's more, non-sharing contexts).

Task-number: QTBUG-55161
Change-Id: Ie23bba1e6aab34b04d689f26a84c19a2bde518da
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2016-08-10 09:04:47 +00:00
Laszlo Agocs
e930425228 eglfs: Fix QT_QPA_EGLFS_ROTATION with the KMS/DRM screeen
It overrides geometry().

Change-Id: I93c607567d7cb688221d200dcd47c1a6ba23b26b
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2016-08-10 09:04:42 +00:00
Laszlo Agocs
af7b4e3f55 eglfs: Enable virtual desktop with EGLDevice as well
Not clear why separateScreen was overridden to true. The GBM-based backend
goes with the default of false, leading to setting up the screens as virtual
siblings and reporting the correct virtual desktop geometry.

The difference currently lies in the OpenGL mouse cursor, which, unlike the
GBM hardware cursor, does not yet support virtual desktops. Its behavior
is not affected of the flag however.

Task-number: QTBUG-54151
Task-number: QTBUG-55161
Task-number: QTBUG-55188
Change-Id: I888ffc43ed4add66065a2f7c606c9b3a2d56a9ab
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
Reviewed-by: Dominik Holland <dominik.holland@pelagicore.com>
2016-08-10 09:04:38 +00:00
Liang Qi
22e96c4d34 Merge remote-tracking branch 'origin/5.7' into dev
Change-Id: I36e6b890b65d12bf6931757540bcc9c553b5eb8f
2016-08-09 17:59:51 +02:00
Ulf Hermann
fa95eb0554 QHeaderView: Reset lastSectionLogicalIdx on clear()
Otherwise we can fail to stretch the last section when adding new
sections.

Task-number: QTBUG-52446
Change-Id: I7eb5267ac500bf4246e57c3e3a43268bb65ef1f7
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
2016-08-09 08:08:30 +00:00
Marc Mutz
7305b3e828 QNetworkManagerEngine: port away from Java-style iterators
They are slower, more annoying, and not safer than
their STL counterparts.

Port to C++11 range-for, or to "auto it, end" for
loops in cases where the key was also accessed.

Change-Id: Ib27608ddbe9c0775092a1c6495731ad324727d3e
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-08-09 07:12:57 +00:00
Marc Mutz
3400e7ee7f QNetworkManagerEngine: add override keywords
Change-Id: Ie926119ee58d330e415634f93eb334c6befeede1
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-08-09 07:12:52 +00:00
Marc Mutz
ccfd699b85 QNetworkManagerEngine: fix const-correctness
Change-Id: I058617315e7cf2c6fa49f1ed0d16cb5e2a78dd72
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-08-09 07:12:47 +00:00
Marc Mutz
4101ecdb0e QColor: mark as movable (except for QList)
Unbelievable that this has survived for so long...

Change-Id: Icff6ecc56de773fa6054d5b96e421299a48bdbde
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2016-08-09 07:11:35 +00:00
Thiago Macieira
6f275a4beb Make sure QDBusConnection::connect() returns false if already connected
QDBusConnection::connect() behaves like QObject::connect with a
connection type of Qt::UniqueConnection | Qt::QueuedConnection. So
return false if it's already connected.

[ChangeLog][QtDBus][QDBusConnection] Fixed a bug that would cause
QDBusConnection::connect() to return true if a slot was already
connected to the same D-Bus signal. QtDBus does not support multiple
connections.

Change-Id: I87e17314d8b24ae983b1fffd1453aef5a7c9ad0b
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2016-08-09 02:41:22 +00:00
Thiago Macieira
e24f89f266 Fix build with clang-cl and the Intel compiler on Windows
Neither clang-cl nor the Intel compiler are able to parse the MSVC code
in a constexpr environment. For Clang, we can just use the __builtin
functions, which it does make available on Windows. For the Intel
compiler, there's no alternative, so we just don't use the _BitScanXxx
functions. It will produce slower code, though.

qalgorithms.h(587,19) :  error: variables defined in a constexpr function must be initialized
qalgorithms.h(635,12) :  note: non-constexpr function '__popcnt' cannot be used in a constant expression

etc.

Change-Id: I149e0540c00745fe8119fffd14627ded43807000
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-08-09 02:41:19 +00:00
J-P Nurmi
30eecdf6d8 Fix QGtk3Menu::removeMenuItem()
The if-condition was broken, so items weren't removed from
the container as appropriate. Accessing such dangling items
caused a crash later on exit.

Task-number: QTBUG-54432
Task-number: QTBUG-54462
Change-Id: I98fd9f29a93d72e3e4a8f0fb6bac40ad4728ba6f
Reviewed-by: Heikki Halmet <heikki.halmet@qt.io>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
2016-08-08 14:14:31 +00:00
Rainer Keller
a8390bb197 Doc: Fix saturation graphic for HSV color model
The text is correctly describing the gradient from gray to blue but the
picture shows white to blue.  Additionally including the SVG sources for
creating the pictures.

Change-Id: I608a239f4de9c2d3761196c44db024cc31ce441a
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
2016-08-08 12:26:08 +00:00
Kai Koehne
149023c02d Remove unused legal.qdoc file
This is most likely a left over from Qt 4.

Change-Id: I5a13d31e815cf2047bcc064e9418c061ee82e58b
Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
2016-08-08 06:15:28 +00:00
Marc Mutz
009f1f2812 QString: fix regression comparing null QString with null const char *
Commit 4a40c717f3 optimized
QString::compare_helper(QChar*, int, char*, int), but got
the case wrong where the rhs is null, but the lhs is empty,
not null (which is the case even with a null QString, as
QString().constData() != nullptr). The correct result in
this case is 0, since in Qt empty and null strings compare
equal.

Fix by checking the length of lhs, not its pointer.

Task-number: QTBUG-55154
Change-Id: I3ec2cd25d9bdca90cf3f5568a875b1e52c779979
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-08-05 18:52:16 +00:00
Eskil Abrahamsen Blomfeldt
121b7b7a3c Windows: Fix Adobe/Mozilla format color fonts after Windows update
After the Anniversary update of Windows 10 (update 1607), color fonts
using the Adobe/Mozilla format with embedded SVGs are detected as
color fonts by DirectWrite, but they do not contain any colored layers.
The result of this was that we would no longer draw these fonts using
the pen color, but we would also not support the colored glyphs in the
fonts. In order to still support using these fonts as regular
monochromatic fonts, we check if there is actually a palette in the
font file before registering it as a color font.

[ChangeLog][QtGui][Windows] Fixed rendering Adobe/Mozilla format
color fonts with other colors than black after Windows 10 Anniversary
update.

Task-number: QTBUG-55097
Change-Id: I8d74787e49530d1167b9f2533ffdf7ab814c3358
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-08-05 15:30:24 +00:00
Christian Kandeler
4b63ab9a93 QJsonValue::toVariant(): Differentiate between null and invalid
Both were mapped to QVariant() before. Instead, use a null pointer
QVariant for a null JSON value.

[ChangeLog][QtCore][QJsonValue] QJsonValue(Null).toVariant() now returns
a QVariant of type QMetaType::Nullptr instead of an invalid QVariant.

Task-number: QTBUG-43077
Change-Id: Ife611f418583dbff542210bc8c5cd65201212a6e
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-08-05 14:53:33 +00:00
Friedemann Kleint
7f66289f9d Windows QPA: Introduce command line options for DirectWrite
Add option "nodirectwrite" to turn off DirectWrite fonts
and "nocolorfonts" to turn off DirectWrite for colored fonts.

Task-number: QTBUG-55096
Task-number: QTBUG-55097
Change-Id: If12133fbd20dc7657b3616eff833a8e8c116e070
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2016-08-05 14:34:58 +00:00
Liang Qi
ac9d19c986 Merge "Merge remote-tracking branch 'origin/5.6' into 5.7" into refs/staging/5.7 2016-08-05 16:02:50 +00:00
Andreas Wilhelm
ebde32ae3d qdbusxml2cpp: Ported to QCommandLineParser
Change-Id: I8a91a376ba60b110fff9eb84e1b02e3c6e8c5e30
Reviewed-by: Rolf Eike Beer <eb@emlix.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-08-05 10:00:51 +00:00
Friedemann Kleint
2cd2cba086 QtPlatformSupport: Add QAbstractFileIconEngine
Move the code from QtWidgets/QFileIconEngine into a new class with
virtuals in QtPlatformSupport so that platforms can reuse it.

Prototypically use the class in the Windows and macOS QPA plugins.

Remove QPlatformTheme::fileIconPixmap() and change the type
of the hint QPlatformTheme::IconPixmapSizes from QList<int>
to QList<QSize> so that it fits better with the icon code.

Change-Id: I580e936f3507218757565ca099272cd575b3a779
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2016-08-05 08:06:21 +00:00
Liang Qi
69ef0481fc Merge remote-tracking branch 'origin/5.6' into 5.7
Conflicts:
	tests/auto/widgets/itemviews/qtreeview/tst_qtreeview.cpp

Change-Id: I6f3878b204464313aa2f9d988d3b35121d4d9867
2016-08-05 08:58:48 +02:00
Andy Shaw
9b3a7ece47 Re-add the space character as a document terminator
With change 208496091d the space character
was replaced with a visual document terminator character. However this
meant that if the whitespace was visualized without the document
terminator character visualized then clicking after the text would cause
it to be positioned off by one.

By bringing back the space character when the terminator is not being
visualized then it will correctly place the cursor at the end of the
text.

Change-Id: I335c1773a37a654f3196bd350562e8f92ffd5369
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2016-08-05 05:56:18 +00:00
David Faure
91a2c8630b QUrl::resolved: keep treating file:name.txt as relative for now
8a33077 made QUrl::resolved() follow its documentation ("If relative
is not a relative URL, this function will return relative directly.",
where relative means scheme is empty).
However there is much code out there (e.g. qtdeclarative) which relies
on QUrl::fromLocalFile("fileName.txt") to be treated as relative, so
for now, we still allow this (in Qt 5.6.x). For Qt 5.8, this commit will
be reverted.

[ChangeLog][QtCore][QUrl] [EDITORIAL: replaces 8a33077] QUrl::resolved()
no longer treats a URL with a scheme as a relative URL if it matches
this URL's scheme. For now it still treats "file:name.txt" as relative
for compatibility, but be warned that in Qt 5.8 it will no longer
consider those to be relative. Both isRelative() and RFC 3986 say that
such URLs are not relative, so starting from Qt 5.8, resolved() will
return them as is.

Change-Id: Iff01e5b470319f6c46526086d765187e2259bdf5
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-08-04 19:55:30 +00:00
Anton Kudryavtsev
9c8a8e90a6 QString: fix append(const QStringRef &str)
Use QStringRef::isNull instead of QStringRef::string()
for validation. Non-NULL str.string() may yet leave us
with a useless str.unicode(), which is the actual problem here;
whereas !str.isNull() does really confirm that str.unicode()
is sensible.

Such test prevents situation like:

const QString a;
QString b;
b.append(a); // b.isNull() == true
b.append(QStringRef(&a)); // b.isNull() == false

Auto test updated: create QStringRef from QString directly, without
any condition.

Change-Id: I082cd58ef656d8a53e3c1223aca01feea82fffb9
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2016-08-04 19:55:04 +00:00
Kai Pastor
35117590c8 Remove unneeded ';' after some macros
The unneeded ';' triggered warnings in pedantic compilation mode.

Change-Id: Id2324823e138560bb25234306601253d7bbd713e
Reviewed-by: Richard J. Moore <rich@kde.org>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2016-08-04 19:52:18 +00:00
Anton Kudryavtsev
955b2bdfc0 QString: de-duplicate code of variants of lastIndexOf()
Re-use methods of QStringRef.

Change-Id: I0f79ee6767653c694ac6a342263c046a5f5f3baa
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2016-08-04 15:46:12 +00:00
Alex Trotsenko
595c6abf9d QLocalSocket/Tcp: open device before making a connection
According to QLocalSocket's documentation, connectToServer() must
initiate a connection attempt after opening the device. Otherwise, if
a connection succeeds immediately, connected() signal will be emitted
on closed device. So, this patch ensures that TCP-based implementation
behaves correctly.

Change-Id: I4cc9474815e091a1491a429a6dc17f9cf0154f58
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-08-04 15:25:39 +00:00
charlycha
457d91bb07 raspberry pi: manage eglfs display id with env var
Specify the display to use by setting environment variable
QT_QPA_EGLFS_DISPMANX_ID Possible values are :
0: MAIN LCD
1: AUX LCD
2: HDMI
3: SDTV
4: FORCE LCD
5: FORCE TV
6: FORCE OTHER

Change-Id: I146db9a7f423bd4c6c1716c64d3df4d2388e85f9
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2016-08-04 15:23:09 +00:00
Friedemann Kleint
46ea82188e Add XDG file icon support for UNIX themes
Add helper class XdgFileIconHelper using the icon theme engine
to implement QPlatformTheme::fileIconPixmap().

[ChangeLog][QtPlatformSupport] KDE/Gnome themes now implement
QPlatformTheme::fileIconPixmap(), showing file icons.

Change-Id: I32a948ece08305053ebadb3ace6cbc6fbd339946
Reviewed-by: David Faure <david.faure@kdab.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2016-08-04 14:31:20 +00:00
Friedemann Kleint
40bb2d29b9 Add QPlatformTheme::fileIcon()
Add a way to return an icon instead of a pixmap of a specific size for a
file for usage by QFileIconProvider, etc.
Fall back to fileIconPixmap() if fileIcon() returns a null icon.

This allows for supporting XDG theme icons and Qt Quick applications
accessing file icons.

Change-Id: I9ffbd6602e1a6a490c0046d950636447c5127474
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2016-08-04 14:31:15 +00:00
Allan Sandfeld Jensen
b643d6f347 Fix 64-bit bilinear scaled image sampling
A constraint ensuring we do not sample beyond the current scan-line
was missing in the SSE2 optimized sampling.

Discovered with lancelot.

Change-Id: Ib0ece8f8bfaa034733873dc5b8baaaad5d4c0380
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
2016-08-04 12:01:04 +00:00
BogDan Vatra
bc4ce55fff Don't call virtual functions with data from an old model
Change-Id: I4f1ec56ce722110042f72761bbc2976e580b7149
Reviewed-by: David Faure <david.faure@kdab.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2016-08-04 11:48:51 +00:00
Marc Mutz
2079081dcf QPolygon: prepare boundingRect() to be extracted as an algorithm
That basically involves reformatting the loop to use iterators.

Change-Id: Ie8e80e7f32b386eae50ab4520c62219e18d2a1bd
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
2016-08-04 10:46:11 +00:00
Timur Pocheptsov
2d1f137173 Revert "Implement protocol upgrade for HTTP/2 enabled requests"
This reverts commit 12d71f4ea2.
This change is breaking a build + incomplete as my test revealed.
Will have to re-try later.

Change-Id: I7ea089093a832aa5822caaaac56e62f5fda4df17
Reviewed-by: Liang Qi <liang.qi@qt.io>
2016-08-04 10:21:24 +00:00
Marc Mutz
4a40c717f3 Optimize QString::compare_helper(QChar*, int, char*, int, cs)
... by using the recently-added QUtf8::convertToUnicode()
and a QVarLengthArray instead of QString::fromUtf8().

Like elsewhere in QString, use a QVarLengthArray<ushort>
instead of the more natural <QChar> to avoid instantiating
another QVLA.

Assume that length2 is usually set to a non-negative value.
Not because that's necessarily the frequent case, but
because a negative length2 leads to an expensive strlen,
that usually dwarfs the additional branch cost.

Check for data2 == nullptr early to avoid having to check
it later twice.

Change-Id: I04bda44ed857451efdf04c3283b5726480dd8c0d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-08-04 09:28:41 +00:00
Jędrzej Nowacki
31520c4fc0 Add missing include in qeventloop_p.h
The code depends on qApp to be visible in the scope

Change-Id: Ibeb54c90f5a65f441e9eb90b848952b955c71f0d
Reviewed-by: Jesus Fernandez <jesus.fernandez@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-08-04 08:47:52 +00:00
Jędrzej Nowacki
33ec04d299 Cleanup QDBusVirtualObjectPrivate
The class doesn't exist and should not be forward declared nor declared
as private of QDBusVirtualObject

Change-Id: Icf3ca2b2be5ae0a8111785af485a0b6601002a25
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-08-04 08:47:40 +00:00
Allan Sandfeld Jensen
a9a61d7e0b Fix grayscale painting regression in 64-bit raster engine
A new define for better vectorized compositioning had a mistake that
caused some sources to be converted to grayscale when composited.

Added two 10 bit per channel formats to the lancelot test to catch
regressions in the future.

Change-Id: I1c468e6b93d68185e517fc0d44c6c927f9f7135f
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
2016-08-03 15:35:28 +00:00
Timur Pocheptsov
12d71f4ea2 Implement protocol upgrade for HTTP/2 enabled requests
Without ALPN/NPN (== without OpenSSL) we can negotiate HTTP/2
using the protocol upgrade procedure as described by RFC7540.
Since there is no TLS handshake, after our http channel was connected
we first send an 'augmented' HTTP/1.1 request - its header
contains additional 'HTTP2-Settings' and 'Upgrade' (to 'h2c') fields.
If we receive reponse 101 (switch protocol) we re-create a protocol
handler and switch to HTTP/2.

Task-number: QTBUG-50955
Change-Id: I36e9985e06ba76edaf7fdb22bb43770f8d593c61
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2016-08-03 15:31:20 +00:00
Kai Koehne
f200d5e824 Doc: Fix references to Control, Meta key enums
Also make use of qdoc's \note command.

Change-Id: I276300cfcfde06e82b04793dbf25df8ec73e9838
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
2016-08-03 13:45:00 +00:00
Marc Mutz
ed38f516bf QStringListModel: begin/endResetModel() are no signals
... so don't use emit on them.

Just confuses readers.

Change-Id: I24365fc533b5b35f8942d6014dbc68387aa23e22
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2016-08-03 12:10:00 +00:00
Friedemann Kleint
dbfd7f304c Windows QPA: Add missing parameter to qWarning()
The warning printed when wrapping foreign windows is
missing a parameter. Amends change
f2ef587906.

Task-number: QTBUG-41186
Change-Id: Iefbd174c1acc42e87fd1a764d96452b1745aa4c0
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2016-08-03 11:53:32 +00:00
Jędrzej Nowacki
d7132c6c6d Add std::nullptr_t as builtin type in QMetaType
Change-Id: If6c484bc89a2610c6a9e3e7bd54ef85ef40a783f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
2016-08-03 11:49:28 +00:00
Alex Blasche
958bc5793f Add QtAndroidPrivate::context()
This simplifies the retrieval of the correct Context object.

Task-number: QTBUG-55102
Change-Id: I303bc5393a7900ceb4bde36e711938f3f49075c1
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2016-08-03 11:49:27 +00:00
Konstantin Shegunov
5dd907bf63 Save QFont's style name if present
Font style names are quite irregular and the simplistic matching
implemented in QFontDatabase::styleString(const QFont &) is unable to
properly resolve the style name when font is recreated from a string.
This causes the fonts before and after serialization to be considered
different, even though they are not. The from/toString methods were
made to write and respect the exact font style.

[ChangeLog][QtGui][Important Behavior Changes] QFont::toString() and
QFont::key() were modified to save the font's style name if one is
set, invalidating any stored font identifiers. QFont::fromString()
was also adjusted to accommodate the change.

Task-number: QTBUG-54936
Change-Id: Ibc7c54119acdd8f0950d6049cc89f859bf981504
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-08-03 11:47:58 +00:00