...instead of rolling a new one on each use.
Effects on Linux GCC 4.9 stripped release builds:
text -156B
data +-0B
relocs +-0
Change-Id: I49e20ea859928d010990fc7a22545dbc1ef106ec
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Help the compiler by building the new status flags in a local
instead of a member variable. Enables value tracking for that
piece of data across several non-inline function calls, leading
to less redundant reads through this->.
Effects on Linux GCC 4.9 stripped release builds:
text -248B
data +-0B
relocs +-0
Change-Id: I2db21439464ad0fff8163a908de3b15df7c4ab6d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Apparently, determining that constant at compile time is a bit too much
work for GCC.
Effects on Linux GCC 4.9 stripped release builds:
text -276B
data +-0B
relocs +-0
Change-Id: I23144e64d57e3a2e1061e69b20f2b72575c273d8
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
The short month names all have length 3, so store them in a multi-
dimensional const char array instead of as a pointer table.
Effects on Linux GCC 4.9 stripped release builds:
text -196B
data -64B
relocs -12 (est., somehow relinfo.pl reports nonsense on QtCore)
Change-Id: If5f83e4f1eb5ba0b0f54b4144abec8b88fb8529f
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
On Haiku the '/' filesystem is a pure namespace to mount
in the actual root partition (/boot), and therefor returns
0 for free/available/total bytes.
Change-Id: I60d4786389e01ee271f6cd1aba6f96b19e6a828f
Reviewed-by: Augustin Cavalier <waddlesplash@gmail.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
Use Haiku's BVolumeRoster API to provide information
about available mount points in QStorageInfo.
Change-Id: I058bbb5f3f33372edc55d3e51079d3e16815f29f
Reviewed-by: Augustin Cavalier <waddlesplash@gmail.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
It has been only an accessor until now.
[ChangeLog][QtGui][QScreen] added devicePixelRatio property
Change-Id: I3b9d0aed437cc11a8ddb5b601dd8db6ed5ca9748
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
This operation is the exact opposite to QQuaternion::fromAxisAndAngle()
(so that it is a way to extract the axis and angle values suitable
to create the same quaternion via QQuaternion::fromAxisAndAngle()).
Change-Id: I41fda58f5fb2b867cccd6b2faf58ab671fa070da
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
This engine has been regarded "experimental" for a long time, but
it is in active use by some applications and rather stable.
While if may be replaced by FreeType at some point, if support
for Microsoft's colored fonts is introduced there, at this point
it really doesn't make sense to call it "experimental" anymore.
Change-Id: I038d71b121e90bd7b4dbc6d0afa7b14c9b824b08
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Windows+FreeType, Linux with -no-fontconfig and the forthcoming
OSX FreeType engine can now use sub pixel rendering.
The function to get the subpixel type is in QPlatformScreen because
we're moving to per screen font settings in the future.
This patch is safe, as no functionality is changed for existing users,
if one wants sub pixel rendering they'll still have to pass -DFT_CONFIG_OPTION_SUBPIXEL_RENDERING
to configure.
Task-number: QTBUG-44269
Change-Id: Ib6c22d48a1b7c7b85ee316d5d9e3b6eae0c1ecc0
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
It's moot to compare something with boolean semantics against 0.
Furthermore, it might even fail to compile, as seen in change request 105258
Change-Id: I8e491a67080b2d5a666858e8655e9f549fa6be4d
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
We've been setting the -Zm argument since the dawn of times (even before
the first git commit). Anyhow, MSDN from VS2008 onwards indicates
that this is not needed:
"In earlier versions of Visual C++, the compiler used several discrete
heaps, and each had a finite limit. Currently, the compiler dynamically
grows the heaps as necessary up to a total heap size limit, and requires a
fixed-size buffer only to construct precompiled headers. Consequently, the
/Zm compiler option is rarely necessary."
[ChangeLog][Compiler Specific Changes] Visual Studio: -Zm200 (an option to
specify the precompiled header memory allocation limit) is not added anymore
by qmake to the compiler calls. If you encounter an C1076 compiler error you
might need to re-add it in your .pro file.
Change-Id: Ia4bec7eba09d893a7d81886a1814602b9ce7563c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Enable certificate/trust validation when socket is in server mode.
Change-Id: I8fbba587a9484084495722219d83cca57973a3e6
Reviewed-by: Jeremy Lainé <jeremy.laine@m4x.org>
Reviewed-by: Richard J. Moore <rich@kde.org>
Reviewed-by: Timur Pocheptsov <Timur.Pocheptsov@digia.com>
QTextFormat::font{Weight,PointSize}() etc. return the font trait explicitly
set on the QTextFormat, while QTextFormat::font() returns font which also
uses the QTextDocument::defaultFont() as a default for any font traits not
explicitly set on the QTextFormat. Accessibility support for text attributes
used the former, which was wrong; this commit fixes it to use the latter.
Also includes tests to verify the fix.
Change-Id: Iab7f2be1b68adaad847d1f29c9e5af2195416035
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
People often complain that strcmp() like functions are confusing because they
return false on equality and true on difference. Rightfully, because strcmp()
like functions return three distinct values, not a boolean value. But I guess
dear reviewer, you already know that story...
Change-Id: Ie69093f61b55448010dc324d14c62faa27214238
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
Secure Transport relies on keychains, both client/server are constantly
updating default keychain and as a result tests are failing: when
verification is expected to fail, it succeeds; when the number of certificates
is expected to be 1 - it's 2 (Secure Transport can find certificates in a keychain).
This makes verifyClientCertificate test quite useless at the moment - QSKIP it.
Change-Id: I578398b4912a86dc60f585ac5a1bdd0098914005
Reviewed-by: Richard J. Moore <rich@kde.org>
[ChangeLog][QtCore] Classes with the Q_GADGET function can now have properties and
invokable methods. QMetaMethod and QMetaProperty have new overloads that can be used with
a pointer to a gadget. The QMetaType system also gained knowledge of types with the
Q_GADGET macro
Change-Id: I017475f3809181c64fdd66f899e461ad27f5ae47
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
QtWebEngine and QtWebKit uses the Qt config to detect if C++11
is enabled. Since it is always enabled on MSVC, we can safely
set the flag indicating it is a C++11 build when using a newer
MSVC version.
Change-Id: I2efb8d1a9b1cf1496481569403c00358d0cae365
Reviewed-by: Michael Brüning <michael.bruning@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Instead of leaving a note for Qt6 and then forget to do
the actual change once again, change APIs now inside
QT_VERSION >= QT_VERSION_CHECK(6,0,0) blocks.
Change-Id: Ifa769904e304358a9c2accfd6c9f86eeb342f9dc
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
...where passing them by value was not intentional.
Change-Id: Ifd5036d57b41fddeeacfbd3f5890881605b80647
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
There are many direct QImage conversions that doesn't need to be direct
but only are because they are faster than the generic conversion. This
patch optimizes the generic conversions and then removes all the direct
conversions that are now no faster than the generic.
Change-Id: I3dc5f44cc7f6358fd66420e9974eebaf2c7ca59c
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
There are more than 1000 new entries since the table has been
generated the last time.
Some auto tests needed to be adjusted, because some entries in
the TLD table were removed while others were added.
Change-Id: I4ceec392836d2031dfef49a0c5a857c31b36bb4c
Reviewed-by: Richard J. Moore <rich@kde.org>
Now we take into account also the subrole of the element.
Change-Id: I471e7c6620e704780cef48266ef302ec8b56466d
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
Not tested as I have no idea what VoiceOver uses it for (it seems to
never query this attribute during any operation I tested).
Change-Id: Ie5e2b765a9956bcf2be9b659b8914e393ed1ea90
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
This enables users with "Speak text under mouse after delay" set in
VoiceOver Utility > Verbosity > Announcements to hover mouse over text
in QTextEdit and have it spoken by VoiceOver. It also allows users with
Trackpad Commander on to interact with the text area (VO-Shift-arrow
down) and "touch-explore" the text while holding their finger on the
trackpad and moving it around.
[ChangeLog][QtWidgets][Accessibility][OS X] VoiceOver users of QTextEdit
can now use mouse and touch exploration on trackpad to point at text to
have spoken to them.
Change-Id: I6cfaa8b1ff2179cce027b22539ba9ee4f3ee7f3f
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
When returning a rect for AXBoundsForRange, we always incorporated one
more character. Along with this one more character being often either a
newline or the first character of new softline, visual bounds often got
wrongly and unnecessarily multiline when in fact only single line was
correct.
Also noticeable when moving character by character (VO-Shift-arrow
left/right) - now only one character is being shown (as opposed to two
before). Still due to VoiceOver bug, for bounds of width less than 8
points, it will draw bounds width with of 8 points (reported as
<rdar://problem/19370707>). But still this is an improvement for cases
with bounds of width more or equal to 8 points.
[ChangeLog][QtGui][Accessibility][OS X] Visual bounds returned by
QTextEdit were singificantly improved, this enables VoiceOver to draw
properly positioned VoiceOver cursor.
Change-Id: Idc50310f8016fbcc01b061d27b655c72922a4807
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
Add the NSOpenGLPFANoRecovery pixel format attribute.
This disables the software rendering fallback and
makes compositing OpenGL and raster NSViews using
Core Animation layers possible.
With QT_MAC_WANTS_LAYER enabled, native NSViews now
stack correctly with QWindows with OpenGL content.
One known limitation is that this mode currently
supports main-thread rendering only.
Change-Id: I2060cceda846b305b33b47f2eba3cb7cb838039c
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
The QWindow and QCocoaWindow may be deleted
before the QNSView (which Cocoa keeps a reference
to).
Clear pointers to the Qt windows on QCocoaWindow
destruction and add null-pointer check to QNView::isOpaque.
Change-Id: I71764886c27bf1d14fb4e684c15e7c72e1c0a17c
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
Adds conversion from QJsonArray and QJsonObject, and report missing
conversion failures for other QJsonValues.
Change-Id: Ic0c3a952657912401db877b068f7fcc3c08c94c2
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
We're documenting that this context exists, therefore applications
are allowed to assume that it exists. For the same reason, we
should expose it as public API -- an application should be allowed
to upload GL objects before creating or showing QOpenGLWidgets
that use them.
Change-Id: Iedbba7cd393018d93833fd2a6b02cce0639a89b4
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Don't use index-based iteration, but use iterators.
Change-Id: If8dabd56ff880191bb53861e31bfa6a007802c9c
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Instead of filling a QString with lots of temporaries in-between,
simply stream everything into QDebug directly.
Requires the use of #ifndef QT_NO_DEBUG_STREAM because of the
explicit mentioning of QDebug.
Further simplified it by removing the complicated trailing-comma
handling. The struct-like output can tolerate a trailing comma
which has been allowed in C/C++ since its inception.
Change-Id: I0393a37cd21a50e902c8cb9f8b752ebb946d1669
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
It is no longer required since registered enumerations now
have an output operator for QDebug.
Change-Id: Ib85be4b98f301993c6cda2638b84586d541af841
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
QPlatformTheme::keyBindings() performs a binary search
into an ordered list of StandardKey -> Key Sequence
mappings where each StandardKey can have multiple
key sequences.
Previously the order of the Key Sequences in the
returned list would be indeterministic and, except
for the designated pri-1 key sequence, would not
necessarily correspond to the list order. (The
ordering was dependent on where the binary search
"hits", which again depends on the size of the list.)
This caused trouble when adding mappings, since it
would change the order in the returned key sequence
list for existing mappings and confusingly cause
(apparently) unrelated test failures.
Fix this by replacing the manually coded binary search
with std::equal_range.
One test case needed to be fixed up because it had the
result in the wrong order (verified by looking at
QPlatformTheme::keyBindings).
Change-Id: I555ca2736b1a8e6454dc79645a8246f80119cfc2
Done-with: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
Make sure from{JulianDay,MSecsSinceStartOfDay}() are in a constexpr'able form
by introducing new private ctors that allow formulating these functions as
single expressions.
Change-Id: Iee98edb74e63c32e98781b885bbb2c5ef5867fd9
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Not that many, if any, uses of sprintf here were idiomatic Qt,
but that's for another commit.
Change-Id: Ic34470d9799942f786770ba9541b29c34d67c6f8
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This also enables NRVO in almost all callers (a macro
prevents it in one case), saving one default construction
and one (move) assignment per call.
Effects on Linux GCC 4.9 stripped release builds:
text -896B
data +-0B
relocs +-0
Change-Id: Id3cde01057baaa408c4cbf95d8d15eaeeeec1604
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>