Commit Graph

38096 Commits

Author SHA1 Message Date
Giuseppe D'Angelo
2a494875b8 OpenSSL: also try the "1.0.2" soname
Turns out that also Debian patches OpenSSL 1.0, changing its soname to "1.0.2".
Therefore, try also to load that one.

Amends 2708c6c11d.

Task-number: QTBUG-68156
Change-Id: I37cc060e90422779a6c29a324ab900f0fb99cfa7
Reviewed-by: Lisandro Damián Nicanor Pérez Meyer <perezmeyer@gmail.com>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2018-11-29 08:18:44 +00:00
Allan Sandfeld Jensen
1f998e040e Fix crash in qmake parsing
The read from a QHash needs to be protected too if other threads are
writing.

sync-up with qtc, no actual effect on qmake itself.

Fixes: QTCREATORBUG-21416
Change-Id: I75e5634e11b10056d6dbb6fdceef482ca2222ca1
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
(cherry picked from qtcreator/5f79b5d2e5e33321cdcd00362f0d6d9442a73ec2)
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2018-11-29 07:46:02 +00:00
Tor Arne Vestbø
09e3457541 macOS: Share code for resolving CGImage bitmapInfor for a QImage
Removes assumptions about QImage format in a few places.

Change-Id: I515701be53190429a48956c31986fa0804806406
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2018-11-28 23:59:17 +00:00
Tor Arne Vestbø
5fd6f4d882 CoreText: Use QCFType instead of manual release/retain
Change-Id: I4925ec0e563e784f542fd44706a214771c6abd2b
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2018-11-28 23:59:17 +00:00
Tor Arne Vestbø
17cdb28ed5 macOS: Fix use of deprecated enum value
Change-Id: Ibf979837e1adcadcbb100d059b06b1a48157eab6
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2018-11-28 23:59:17 +00:00
Tor Arne Vestbø
d3ec5a2b09 CoreText: Use QCFType to track CoreFoundation member variables
The operator T() function of QAppleRefCounted should be const so
that the underlying type can be accessed from const member functions
just like the naked underlying type could.

Change-Id: I0819c5795d28442a6ff4db2732e211b183574f9f
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2018-11-28 23:59:16 +00:00
Tor Arne Vestbø
61a94d2d04 CoreText: Share code by using delegate constructor
Change-Id: If3d5d533f98552335517ef61cb748d0117fe3053
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2018-11-28 23:59:16 +00:00
Tor Arne Vestbø
9dd2048c1a CoreText: Simplify and share code for loading glyph advances
The function doesn't need the flags argument, nor does it need the
ctfont or fontdef arguments if it's a normal const member function.

It can also be used from QCoreTextFontEngine::stringToCMap(), instead
of duplicating the code. This was originally the case before b4aa5d97
which improved surrogate pair handling, but for some reason the change
introduced the duplicate code instead of just changing the arguments
in the function call slightly.

The use of 0xff000000 to skip certain glyphs looks dubious, and is
probably related to QFontEngineMulti's use of the high byte to
indicate which engine the glyph came from, but the multi engine
strips this away before calling out to the concrete engine so
it could potentially be removed in a later patch.

Change-Id: I6c693595616da1b69fdbe3d7a31e392a8443369d
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2018-11-28 23:59:16 +00:00
Tor Arne Vestbø
b22c4e593b CoreText: Localize getTraitValue helper function
It's only used in a single function (twice), so let's keep it
closer to the call site.

Change-Id: I7f8ceadc380171237eef3fa6b03ccd6bc89e99af
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2018-11-28 23:59:15 +00:00
Kirill Burtsev
bd989d1652 xcb: free leaking clipboard events
The leak has been there since the beginnings of Qt 5.0.

Change-Id: I238181dcc63cb4cf8a60b5c565b184d8278d0315
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2018-11-28 11:19:36 +00:00
Kirill Burtsev
030b17ecc0 QDBusConnection: prevent leaking connection/server on destroy
Amends fix 68964b1023

Change-Id: I05816f4b4d2128ed0b669e124d9c9eef92122ec0
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-11-28 11:19:34 +00:00
Kirill Burtsev
4213f23936 xcb: Fix leaking events on destroy
This patch amends 243c3044b6

Change-Id: Ieeebb1e2b94d7c191bf80a1f439c826c406a0c08
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2018-11-28 11:19:31 +00:00
Tor Arne Vestbø
9e1cb252e0 Destroy QWindowContainer's fake parent window when not needed
Keeping the fake parent window around in a created state means we're
wasting system resources such as native platform views/windows, and
makes it harder to debug the lifetime of these resources.

The fake window will be re-created if re-parented into at a later
point.

Change-Id: Ib82560e7e565af19d58afe121fd087669a6ffb95
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2018-11-28 10:11:08 +00:00
Friedemann Kleint
f4a84ac966 QWindowContainer: Fix warning triggered by QT_ASCII_CAST_WARN
Amends 52bd707f0d.

Change-Id: Icc42edc7a943099b36bfa92fe7cd1a92db344991
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-11-28 10:10:24 +00:00
Kevin Funk
49d63057e3 qobject_p.h: Use nullptr everywhere
Change-Id: I605e44607cc09775548c1e6b781d476c1627c9c7
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2018-11-28 09:47:33 +00:00
Allan Sandfeld Jensen
ae8389e19c Ensure alignment of image-data
Instead of relying on the return value of malloc having the correct
alignment, use proper non-throwing new[] operators.

Change-Id: I06c6c619e21c848f3d184bdb7cef8c5589c1c7ab
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-11-28 09:11:28 +00:00
Thiago Macieira
d8962144b4 Fix calculation of the string tab size in QElfParser
First of all, we were using the wrong size variable: instead of the size
of the section, found in the section header, we were using the size of
each section entry in the section table. Since that's usually smaller,
we weren't hitting a problem.

Second, if the string table is the last thing in the file and there's
nothing else after it, not even padding, then offset + section_size can
be equal to the file size. In fact, the .shstrtab section is usually the
last one, as it contains the section names themselves, so it stands to
reason that it's the second to last thing written.

For generic linkers, the last data in the file is the section table
itself, so usually the file is larger by at least a kilobyte, which is
why we haven't hit this bug. It could only manifest as deciding that
certain specially-crafted but valid ELF files were invalid. I can't
think of a way to trick it into thinking an invalid ELF is valid.

That's another reason why this code needs to be rewritten with more
modern coding styles and actually using <elf.h>

Fixes: QTBUG-71443
Change-Id: I1bd327aeaf73421a8ec5fffd156162f2df5557b8
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2018-11-28 04:37:43 +00:00
Thiago Macieira
dba6067670 Optimize QSharedPointer::getAndRef with the three-operand testAndSet
Originally QAtomicPointer didn't have the three-operand version,
resulting in code like:
  if (!atomic.testAndSetXxx(expected, newvalue))
       expected = atomic.load();

The three-operand version gives us the current value of the atomic in
case the test failed and it's free in all architectures, unlike the
extra load.

I have to use testAndSetOrdered here because I need the failing load to
use the Acquire memory order, even though that has an extra Acquire for
the successful case we don't need. QAtomicPointer does not have
testAndSetReleaseAcquire.

Change-Id: I1bd327aeaf73421a8ec5fffd1560fe30d3bfd9b8
Reviewed-by: Romain Pokrzywka <romain.pokrzywka@gmail.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>
2018-11-28 04:37:10 +00:00
Friedemann Kleint
4447db4465 Active Qt Servers: Fix midl warning about unknown option
Remove the option from msvc-desktop.conf, which duplicates
the /nologo option in idcidl.prf.

Fixes: QTBUG-72046
Change-Id: I906097e0611f4578c307616b3f9ebecdfc4d8812
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2018-11-27 15:24:57 +00:00
Richard Moe Gustavsen
f1812aad89 QFocusFrame: protect it from being moved around by accident
If a focus frame is set around a widget that exist inside a
QAbstractItemView, both the focus frame and the widget will
be scrolled when the table is scrolled (since the focus frame
is a child of the view). The result is that after the widget
has been scrolled (which will move the focus frame to the
correct position as well), the focus frame will be scrolled
next, and therefore away from the widget.

This patch will catch this case by always adjusting the
focus frame position when someone tries to move it. Trying
to move the focus frame away from the widget it tracks
will anyway be flaky.

Fixes: QTBUG-63877
Change-Id: Ic2aacc4fafc219280e32092c258a7539d0db9cd0
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2018-11-27 14:59:52 +00:00
Shawn Rutledge
a5e32f9375 Re-enable the QScroller tests on macOS
Maybe they aren't flaky anymore... let's find out.

Task-number: QTBUG-29950
Task-number: QTBUG-30133
Change-Id: I1a2a3ef7facac5b6e59588d7c6b1b28b40a788ea
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-11-27 14:57:35 +00:00
Tor Arne Vestbø
7f6497e623 Ensure QOpenGLWidget FBO is always initialized
QOpenGLWidget uses an FBO internally, that is glCleared whenever
recreated. But for the clear to be visible across shared contexts
we must also issue a glFlush.

QOpenGLWidget defers this flush until the compositing step, in
QOpenGLWidgetPrivate::beginCompose(), based on a flushPending
variable.

This variable is set either after invoking the user's paintGL()
function, or when opening a QPainter on the QOpenGLWidget, via
QOpenGLWidgetPaintDevice::ensureActiveTarget().

Unfortunately, if QOpenGLWidget::paintEvent() is overridden or
intercepted (meaning we will not end up calling paintGL()), but
the overridden paint event does not open a QPainter, we end up
never setting flushPending to true, and end up composing an
uninitialized FBO.

This can lead to rendering issues, or even kernel panics with
some unfortunate GL drivers.

The fix is to ensure the glClear is always flushed before
composing, by forcing a pending flush whenever the FBO is
recreated.

Fixes: QTBUG-70921
Change-Id: I72b596c09dcf54bd0f37668062daaad2d6f7f4bd
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2018-11-27 14:55:17 +00:00
Allan Sandfeld Jensen
d1f924bbce Fix tst_QStyleSheetStyle crash on uncommon multi-screen setup
It would crash if there is no screen at 0,0.

Change-Id: Ic84d75b3d8b917fe3696530cbe843e82923ba676
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-11-27 14:46:08 +00:00
Edward Welbourne
4e01b85115 QDateTimeEdit: fix setDate() if time is in a spring-forward
If the time the widget is set to use falls in the gap skipped by a
spring-forward, setting the date to the day of the spring-forward
turned a valid date into an invalid date-time.  So use the usual trick
to map the "draft" date-time to a valid one.

Fixes: QTBUG-64485
Fixes: QTBUG-58947
Change-Id: Ib8f0f092cd5d6dce3da31eb52cd42150ca0d1fcb
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
2018-11-27 14:23:25 +00:00
Friedemann Kleint
d41879db38 Documention: Use const-ref in the snippets for qOverload()
This makes it clearer that const-ref needs to be specified in
the template arguments of qOverload() and related.

Change-Id: I527c8ca853be159af8665e9759d9549df10573b3
Reviewed-by: Martin Smith <martin.smith@qt.io>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2018-11-27 14:04:31 +00:00
Liang Qi
61373dff50 tst_QNetworkReply: Blacklist getFromHttp:success-external
Task-number: QTBUG-71953
Change-Id: Ib69754b169dd4d5e78f566ce817608b2349c8ae0
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
(cherry picked from commit 46076f7333)
Reviewed-by: Liang Qi <liang.qi@qt.io>
2018-11-27 07:53:54 +00:00
Timur Pocheptsov
05892bca9b Fix build errors in OpenSSL 1.1 backend
SSL_CTX_set_ciphers is new in 1.1.1.

Task-number: QTBUG-71983
Change-Id: If0ae9f95dcc867c62ed0d3a6a60c22c7f5e1cc9f
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
(cherry picked from commit 36f3eeaf3e)
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2018-11-27 07:53:46 +00:00
Tor Arne Vestbø
2aef845c03 macOS: Don't link to debug versions of frameworks unless requested
The failure mode of this behavior is worse than the surprises that the
non-explicit library dependency chain has, so it should be opt-in.

This reverts back to the behavior in Qt 5.11, but lets our tests
opt in to the feature.

Fixes: QTBUG-71724
Change-Id: Iede11f02d978b637324ddf71d29e7c99fe3ee99f
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2018-11-27 07:53:42 +00:00
Qt Forward Merge Bot
1b5bbacdb0 Merge remote-tracking branch 'origin/5.11' into 5.12
Change-Id: I12bcee17e349edd0dd4fd08da76361d1ffb1a727
2018-11-27 01:00:09 +01:00
Vitaly Fanaskov
ba13c6c08f Fix calculation of text margin if line edit contains side widgets
The previous implementation leads to infinite chain of showing/hidden
line edit under circumstances described in QTBUG-54676. We basically got
the situation when size hint were calculated differently depending on
the line edit visibility state. In this case toolbar layout have to
show/hide extension button and line edit a lot of times and can never
leave this "loop" (please note, that the chain is much more complicated
in reality):
Resize toolbar -> Set layout geometry -> Size is OK to display line edit
-> Set layout geometry -> Hide extension button -> Set layout geometry
(wrong size is calculated here, so "run out of space") -> Hide line edit
-> Set layout geometry -> Show extension button -> Set layout geometry -
> Size is OK to display line edit ... And we're in the "loop"

Clear button is hidden if there is no text in a line edit.
In the previous implementation, the button was always visible, only
opacity was changing in order to "hide" the button. It resulted to
incorrect size hints (regular and minimum).
In the current implementation the button is really hidden/shown, and
size hints calculated correctly.
Also updated unit test for line edit.

Remove code duplication in functions for calculation text margin

Fixes: QTBUG-54676
Change-Id: I4549c9ea98e10b750ba855a07037f6392276358b
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2018-11-26 16:03:33 +00:00
Sami Nurmenniemi
71bd06d516 Make developer build tests pass for boot2qt
Some tests were fixed and others were skipped/blacklisted.

Task-number: QTBUG-63152
Change-Id: Ica7df555f8d152ee589865911130525101d4b941
Reviewed-by: Liang Qi <liang.qi@qt.io>
2018-11-26 07:06:59 +00:00
Antti Kokko
08de243eaa Add changes file for Qt 5.11.3
+ 059b10f295 Doc: Check before including the \snippet from a .pro file
+ 7f0cc35d9c Examples: Fix minor bug in Tree Model Completer Example
+ 244c7bd193 Avoid conversion over RGBA64 for RGB32 LCD text blending
+ a381ba4220 Document version number of pixman
+ ff2a71e310 Doc: Move the literal code blocks to a separate file
+ 20ac20bcea Windows QPA: Fix missing accessibility info with WebEngineView
+ 689a1e186b QString: Fix snippet explaining "non-spaced numbered place markers"
+ 85f127cb04 Revise an incorrect QVulkanWindow doc note
+ 3bac18da8e Document SLJIT part of pcre2
+ 621ab8ab59 bmp image handler: check for out of range image size
+ e04b85b026 Doc: improve Mandelbrot example
+ bff307ab93 Fix XCB on endian mismatched client and server with SHM off
+ 45c1473847 Detect when we are at the sentence boundary
+ 49efea26a5 sqlite: Fix QSqlError handling when opening/closing database
+ 1511bfef52 Disable RGB64 backend for ARGB32 when it will be very slow
+ cb5c24fa26 Fix integer overflow in very long sections in ELF objects
+ 12c357bebb Document IAccessible2 version
+ 8aa9bb6d3f Clarify docs regarding the states of a QFutureWatcher with no future set
+ 4fc4f7b0ce Export qt_open64 from QtCore
+ 4b7ff8e98c Protect HSTS code for no-feature-settings build
+ 6948bf20a7 QSslContext: Use 0 instead of TLS_MAX_VERSION
+ e226b0f94a Modernize the "textdate" feature
+ b26cd68bf6 Modernize the "datestring" feature
+ 02663718a9 QHeaderView: Don't unhide hidden sections on layoutChanged()
+ f99e956d65 Add QT_REQUIRE_CONFIG(ssl) to pre-shared key authenticator
+ 5e64957ee4 Fix QCompleter popups preventing the application from exiting
+ 555a6b5d5d Modernize the "filesystemwatcher" feature
+ 857a0d4c51 Fix the /J option for MSVC project generation
+ 3ed8dc3788 Android: fix log output pattern
+ ef4ba0285f SSL: Don't write to closed socket or write to deallocated buffer
+ 94884246d4 QCommandLineParser: Ensure that an option text ends with a newline
+ caa598c843 Fix QUrl::matches for when removing authority parts (other than host)
+ b2b32d3147 fix HTML subset documentation is not very readable on smaller screens
+ c958fb8b48 zlib: Fix spelling of license
+ 5a295a1009 Scale seconds by a thousand to get milliseconds
+ ced34cb3d5 QDateTimeParser: avoid using an invalid hour by default
+ d8817ddde6 Use update() instead of repaint() when displaying a new message
+ 18ec0a8b09 Windows QPA: Fix WM_NCHITTEST not being sent to QAbstractNativeEventFilter
+ 04aeffbe8f Doc: Describe behavior of QSslConfiguration::caCertificates() on iOS
+ 92f42caff1 Fix ICE on QNX 6.6
+ 7146c9075c Fix DejaVu fonts URL
+ 836a2fb887 [macOS] Fix position of sheets when using unifiedTitleAndToolBarOnMac
+ ba0ff45109 Update the DNS public suffix list from publicsuffix.org
+ 4dc251879c Ssl: Fix contrived crash when calling resume
+ 091a386eaf Use native visual ID when creating GBM surfaces for KMS
+ dc5f9d0c31 Only use a translucent background if there is support for alpha
+ 0d7c049e44 Update bundled libpng to version 1.6.35
+ 0509383cf2 Bump copyright year in executable metadata
+ c593492d16 Modernize the "animation" feature
+ 4e7b58629a Modernize the "big_codecs" feature
+ 9c8ca26a48 Modernize the "codecs" feature
+ 3eebadc173 Modernize the "mimetype" feature
+ b7887f9b4f Linux: Remove our use of syscall() for statx(2) and renameat2(2)
+ fc4b0769a5 Fix pdf printing in static builds
+ 1cd2955173 Fix enum passed to QFontDatabase::findFont
+ 2624676b57 qmake: Remove the extra space before -MT
+ 7f60940fbe Re-disable statx() on Android
+ 6599c1f758 QPicture: fix crash for malformed picture
+ 44eeeb8e81 Upgrade PCRE2 to 10.32
+ 948f8ce2ec QWinEventNotifier: fix crash on application shutdown
+ 2708c6c11d OpenSSL: force the "1.0.0" soname when loading OpenSSL 1.0
+ 0cb44e2cfb Fix stylesheet example for QLineEdit:read-only code example
+ 72bedd49bf [cocoa] Disable offline renderers for dual AMD FirePro GPU
+ 509d566ec0 Don't block mouse events if the window is a Tooltip type
+ 38afa46c47 macOS: Only detect changes to the SDK version within the same developer dir
+ d2e0e416d4 Fix leaking QTabletEventPrivate instance
+ d4e937a628 xcb: Don't get initial screen rotation
+ 3b8075de3b Fix deleting of QSharedPointer internals in case QPointer loses the race
+ 1b9af84c1b Don't create an offscreen surface when not on the GUI thread
+ c9d18d4a9c eglfs_kms: initialize m_deviceListener
+ 67c66c4ea4 windows: Give up on SwitchableComposition
+ 033cc3403a mkspecs: use cross compile tools with LTCG
+ 9f2216667a Fix memory copy in QGIFFormat::disposePrevious()
+ b5d249f953 Update the floppy disk icon (save) to be physically correct
+ 825f988156 Modernize the "textcodec" feature
+ 9933511838 Fix typo in define. s/GL_FRAMEBUFFER_SRB/GL_FRAMEBUFFER_SRGB
+ 38b87cc4bb Doc: Clarify what samples() returns if not explicitly set
+ bdebc90c28 Bump version
+ dec7961709 QSyntaxHighlighter: Delay all highlights until first rehighlight
+ 9137691e74 Windows QPA: Fix crash showing QSystemTrayIcon's context menu with PROCESS_DPI_UNAWARE

Change-Id: Id50872011aff4f604d7444d7aa4799c1c61b45f6
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-11-25 12:51:11 +00:00
Liang Qi
c05080102f tst_QNetworkReply: Blacklist getFromHttp:success-external
Task-number: QTBUG-71953
Change-Id: I59566d1994dd80e7fef78f3b22ae34db9d2ad2cc
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
(cherry picked from commit 46076f7333)
Reviewed-by: Liang Qi <liang.qi@qt.io>
2018-11-25 12:50:56 +00:00
Friedemann Kleint
70d131af33 Windows: Fix embedded application not getting focus after clicking outside
Amend the check introduced by bde6a04949
to not apply to embedded windows and plugin applications.

Fixes: QTBUG-71991
Task-number: QTBUG-7081
Change-Id: I80b3dc0fa20ee3447a4bc4bbb41e66d4d90ab726
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2018-11-24 11:38:18 +00:00
Timur Pocheptsov
36f3eeaf3e Fix build errors in OpenSSL 1.1 backend
SSL_CTX_set_ciphers is new in 1.1.1.

Task-number: QTBUG-71983
Change-Id: If0ae9f95dcc867c62ed0d3a6a60c22c7f5e1cc9f
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2018-11-23 13:45:18 +00:00
Friedemann Kleint
76dafc9b94 Add translator's comment to the copyright note
State the policy that so far only exists in the localization wiki
and is currently not followed by all translators.

Task-number: QTBUG-57697
Change-Id: I2aa9f1bbd244b53e48e59f625520a7f86d2df347
Reviewed-by: Vitaly Fanaskov <vitaly.fanaskov@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2018-11-23 13:25:18 +00:00
Edward Welbourne
d8b401959f Recognize E along with e as exponent character in asciiToDouble
Fixed a misguided condition in the check for bogus texts in the sscanf
branch of the decoder; it checked for 'e' but neglected 'E', which is
just as valid.

Change-Id: I9236c76faea000c92df641930e401bce445e06c8
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2018-11-23 10:05:33 +00:00
Edward Welbourne
ce159d1a3e Fix toFloat()s between float and double ranges and document
Revised some toFloat()s to be consistent with the matching
toDouble()s; previously, they would return infinity if toDouble() did
but return 0 if toDouble() got a finite value outside float's range.
That also applied to values that underflowed float's range, succeeding
and returning 0 as long as they were within double's range but failing
if toDouble() underflowed.  Now float-underflow also fails.  Amended
their documentation to reflect this more consistent reality.
Added some tests of out-of-range values, infinities and NaNs.

[ChangeLog][QtCore][toFloat] QString, QByteArray and QLocale returned
an infinity on double-overflow (since 5.7) but returned 0 on a finite
double outside float's range, while setting ok to false; this was at
odds with their documented behavior of returning 0 on any failure.
They also succeeded, returning zero, on underflow of float's range,
unless double underflowed, where they failed.  Changed the handling of
values outside float's range to match that of values outside double's
range: fail, returning an infinity on overflow or zero on underflow.
The documentation now reflects the revised behavior, which matches
toDouble().

Change-Id: Ia168bcacf7def0df924840d45d8edc5f850449d6
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2018-11-23 10:05:24 +00:00
Edward Welbourne
a992367403 Change documentation of some toDouble()s to reflect reality
They actually return infinity if conversion overflows, while still
setting ok to false; they were documented to return 0 on failure, with
no mention of this special handling of overflow.  Documented reality
rather than changing the behavior.  Gave underflow as an example of
failure other than overflow (toDouble()s do indeed fail on it).
Added some tests of out-of-range values, infinities and NaNs.

[ChangeLog][QtCore][toDouble] QString, QByteArray and QLocale return
an infinity on overflow (since 5.7), while setting ok to false; this
was at odds with their documented behavior of returning 0 on failure.
The documentation now reflects the actual behavior.

Fixes: QTBUG-71256
Change-Id: I8d7e80ba1f06091cf0f1480c341553381103703b
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2018-11-23 10:05:06 +00:00
Edward Welbourne
704137f8de tst_QLocale: Add tests for toFloat()
Mirror those for toDouble().

Change-Id: Ide0ef3cd99528d575f6a578ef19547f3b1119c5d
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2018-11-23 10:04:56 +00:00
Edward Welbourne
108c9015b9 Implement transient locale as instantiating a class
A couple of QLocale tests were using setlocale twice to provide a
transient locale tweak in tests; however, if the test in between
fails, that can leave the program running in the "transient" locale
after.  So implement a proper class whose destructor ensures the
transient is tidied away.  Also change the locale in use by one of
these transient changes: it purported to be checking things didn't
depend on locale, but was using the same local as most of the
test-cases for its test.

Change-Id: I0d954edcc96019a8c2eb12b7a7c568e8b87a41d5
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2018-11-23 10:04:46 +00:00
Edward Welbourne
6dcc13d402 Make QCOMPARE()'s handling of non-finite float match double
The qCompare() implementation for double was handling infinities and
NaN the way tests need, but the one for float didn't; it has just the
same need, so apply the same fix.  Extends 79493a3ee1.

Change-Id: I8425026acb61d535e449f579b77fdcd609157f7c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-11-23 10:04:20 +00:00
Frederik Gladhorn
bc1678c618 macOS accessibility: fix crash for NSAccessibilityVisibleCharacterRangeAttribute
VoiceOver or other tools may query this property even when there is no text
interface. Make sure not to crash by verifying that the interface is supported.
Found while using AccessibilityInspector to verify other changes.

Change-Id: If7ee21b7616f091b71e86bab03a871ddbabe9200
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
2018-11-23 09:50:00 +00:00
Tor Arne Vestbø
736dfc3c63 Remove unused inRepaint member of QWidgetPrivate
The code that used it was removed in 55fa3c189f 6 years ago.

Change-Id: I76e42f147342feb1bda9bc2c5aa882af62757812
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2018-11-23 00:52:06 +00:00
Tor Arne Vestbø
52bd707f0d Improve logging of QWindowContainer operations
By explicitly identifying the fake window created for the window
container.

Change-Id: Id67a6e22588d04e68f5ede09bc078bb387c12e0b
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2018-11-23 00:51:59 +00:00
Tor Arne Vestbø
1931aedcf8 macOS: Track changes to our NSView's superview and window properties
As a start, we just log the changes, but going forward we can use this
to report parent changes to QPA or get rid of old QNSWindows.

Change-Id: Id3625fb0b7608d85240f58bdecc70a5892075da3
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2018-11-23 00:51:54 +00:00
Tor Arne Vestbø
5f49788e33 macOS: Allow raising and lowering child windows
Change-Id: Ic598d200e2f774ced489a37c33b7a02767db4402
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-11-23 00:51:48 +00:00
Christian Ehrlicher
794140fb86 QGraphicsProxyWidget: Don't crash within setWidget() when a child proxy has no assigned widget
QGraphicsProxyWidget::setWidget() is checking if the newly assigned
widget is already assigned to a child proxy widget without checking if
the child has a widget assigned at all which lead to a nullptr reference
if it is not the case.
Therefore check if the assigned widget is a valid pointer.

Fixes: QTBUG-15442
Change-Id: I006877f99895ca01975bdcad071cfcf90bea22ad
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2018-11-22 16:43:38 +00:00
Dmitry Shachnev
d0fadae79f qnetworkinterface_unix: Use qstrncpy instead of strlcpy
strlcpy is not available on some UNIX platforms, such as GNU/kFreeBSD.

qstrncpy is available everywhere and has similar semantics (in addition
it fills the rest of buffer size with NULL bytes, but that does not
cause extra work as our buffer sizes are small).

Change-Id: I76c5905eba248fd9fbc1f63f05e88e0617f8407a
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-11-22 16:42:09 +00:00
Michal Klocek
4538dd7ec4 Remove need for glXGetProcAddressARB
We do already require glXGetProcAddress in line 241.

Fixes: QTBUG-71488
Change-Id: Id0f3bc256a71097241b99d2dcba927c1165e980e
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2018-11-22 15:20:40 +00:00