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>
The leak has been there since the beginnings of Qt 5.0.
Change-Id: I238181dcc63cb4cf8a60b5c565b184d8278d0315
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
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>
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>
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>
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>
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>
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>
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>
It would crash if there is no screen at 0,0.
Change-Id: Ic84d75b3d8b917fe3696530cbe843e82923ba676
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
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>
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>
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>
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>
Do not reset the isSubWindowsTiled flag if the hide/show event is an
external (spontaneous) system window event, i.e. we should instead
reset this flag when the subwindow itself is directly hidden or
shown. This change ensures that tiling will be performed during the
resizeEvent after an application window minimize (hide) and then
restore (show).
Change-Id: Ib37f52f1162b493be3413fc59951be2f30701439
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
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>
Some tests were fixed and others were skipped/blacklisted.
Task-number: QTBUG-63152
Change-Id: Ica7df555f8d152ee589865911130525101d4b941
Reviewed-by: Liang Qi <liang.qi@qt.io>
Most of our containers do not require a default constructor for
the template argument. Of course some operations (such as reserve)
still need it.
Change-Id: If080c422a1ffc13b8cb5e0915cee9a7adee81adc
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>
This will be the only options for Qt 6, so make sure the code compiles now.
Change-Id: I23f791d1efcbd0bd33805bb4563d40460954db43
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
+ 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>
The CONFIG value precompile_header_c was ignored in the VS project
generator. Add a member VcprojGenerator::pchIsCFile that is set to
true if precompile_header_c is active.
The code in modifyPCHstage had to be rearranged to separate the three
parts for stable.h, stable.cpp and other files.
Task-number: QTBUG-62821
Change-Id: I340eb165baa22cafcb64815cf223ce9a21aca558
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Merge two nested if blocks.
This reduces the diff size for a subsequent commit.
Change-Id: If60938077169fc6686329cc5c30ebc97ada013a1
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
There's no point in having it, and this will reduce the diff of a
subsequent commit.
Change-Id: I3d27d6808c585b87a44df2499f2fcea4331befbb
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Those names are a better fit as we want to support C precompiled
headers in a subsequent commit.
Change-Id: Ie3f852da945b9b2cf0e363c81f1a4b3063f27372
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Add a tri-state setter logic similar to the other properties.
Fixes: QTBUG-71471
Change-Id: Iddb5be18a037634a53ad8725bddb91c12fb33fed
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
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>
Using similar techniques as used for QRgb qPremultiply and friends
Change-Id: I4be68cb01dc3b634cf370323884e824674205998
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
The hasBorderInFullScreen only has an effect when set before
the window is shown or switched to fullscreen. This is currently
not possible in the QML case since the window is only accessible
after all properties (including visibility) have been set.
Add a function to set a default value.
[ChangeLog][QtPlatformHeaders][QWindowsWindowFunctions] Add a default
setting for hasBorderInFullScreen
Task-number: QTBUG-47247
Task-number: QTBUG-71855
Change-Id: I3952e3f34bc4eb134cf1c5265b4489fc74112688
Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
When using Q_DISABLE_COPY, clang-tidy reports:
warning: class 'Foo' defines a non-default destructor, a copy constructor
and a copy assignment operator but does not define a move constructor or a
move assignment operator [cppcoreguidelines-special-member-functions]
Add convenience macros to suppress move constructor/assignment
as well.
[ChangeLog][QtCore] Added macros Q_DISABLE_MOVE and Q_DISABLE_COPY_MOVE
complementing Q_DISABLE_COPY.
Change-Id: I0b07495ef4ef06c714f7368c706168613c3fe7bc
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
This is necessary to provide details for the key too,
when the server is using DHE-RSA-AESxxx-SHAxxx.
Amends 7f77dc84fb.
Change-Id: I8ab15b6987c17c857f54bc368df3c6c1818f428c
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
keyboardInputInterval() is 400ms by default which slows down the
testcase without a good reason.
Set it to 100ms which speeds up the testcase from 20s to 10s on my
system.
Change-Id: Ib883c5d3f09f8e896ae56a8fc8df2233be63de01
Reviewed-by: David Faure <david.faure@kdab.com>
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>
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>
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>
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>
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>