Commit Graph

37842 Commits

Author SHA1 Message Date
Tor Arne Vestbø
3944f45c4d CoreText: Remove handling of the AppleAntiAliasingThreshold user default
The setting is not relevant for modern macOS applications, and none of
the applications shipped with macOS today are affected by it.

The only code path in macOS that picks it up is +[NSFont initialize] in
the UIFoundation framework, storing it for later so that -[NSFont screenFont]
and -[NSFont screenFontWithRenderingMode:] can use it, but these APIs are
deprecated and we don't use them in Qt.

Other NSFont code paths will not hit these APIs unless screen font
substitution is enabled, something it hasn't been since OSX 10.7.

 https://preview.tinyurl.com/yctpfnqp

Removing handling of this setting allows us to simplify the reasoning
for whether or not antialiasing and font smoothing is enabled for a given
engine.

Change-Id: Ie2809052a1a0815d9bddedd4a6236eb6c898f993
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2018-11-29 18:02:58 +00:00
Val Doroshchuk
2e86b652b7 Fix crash in QSimpleDrag when no platform window
No need to return top level window if it was not created.
It means no platform resources have been allocated.

Events might not be delivered if the wrong window is returned.

Fixes: QTBUG-70544
Change-Id: I43462974f70871470f7b7490dc2b3c08846f77b1
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2018-11-29 13:14:14 +00:00
Mikhail Svetkin
2a1c368c87 xcb: Use std::move and pass argument by rvalue reference
It will avoid a creation of temporary object and avoid copying.

Change-Id: Ifae5f6f9e36bcb07f4bacc31f151f8adcfa621a3
Reviewed-by: Anton Kudryavtsev <antkudr@mail.ru>
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2018-11-29 13:13:33 +00:00
Tor Arne Vestbø
ae1f749e9e CoreText: Rename argument to imageForGlyph to better reflect how it's used
The 'aa' argument doesn't unconditionally enabled antialiasing, it just overrides
the check that the pointSize is larger than the antialiasing threshold. If the
styleStrategy has QFont::NoAntialias we still end up without antialiasing.

Change-Id: I7130e7c68d883c2443756242e96790264f583b0f
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2018-11-29 12:03:44 +00:00
Tor Arne Vestbø
6b93b01ad6 CoreText: Add helper function to determine if a font has color glyphs
Makes for clearer code than looking at the glyph format.

Change-Id: Id6dd2a7851aac2a42cc27d9e2fb408ce9a5345d3
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2018-11-29 12:03:44 +00:00
Tor Arne Vestbø
d4e3442fdb CoreText: Modernize font smoothing and antialiasing threshold detection
The way macOS does font smoothing has changed in Mojave, and we need to
take both this new algorithm into account, as well as support users who
set legacy preferences to revert back to subpixel font smoothing.

As a followup to this patch we will tweak some of the existing logic
to take the new font smoothing algorithm into account, so this is
just a first step.

Change-Id: If37014c18515f406b8bb8194c9df7a75c2eb10fc
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2018-11-29 12:03:18 +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
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
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
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
Timur Pocheptsov
cbac5a1a6e QLocalSocket (windows) - remove broken setErrorString
We report two types of errors - those found by our code and errors
coming from the OS. setErrorString(), despite its name, does not just
set a string, but extracts a windows error code via GetLastError() and
then calls _q_winError(). This is wrong: some arbitrary error code (or
no error) can be reported when it was actually an error found by
Qt. Worse yet, string operations (allocations etc.) can potentially
clear the real error code. So remove setErrorString(), set errors
explicitly if it's the application code error or use _q_WinError
directly.

Task-number: QTBUG-71744
Change-Id: I67277d84006c4ad365f5636caf850e1f3ba4e1dc
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2018-11-22 14:28:29 +00:00