- Fix the case when we erroneously handled stream ID == 0 in a GOAWAY frame as
an invalid stream ID.
- _q_receivedReply: convert do{}while() loop into to while(){} to prevent
it from handling any frames after GOAWAY frame received and all active frame
finished.
- sendRequest - if we received GOAWAY, also clear spdyRequests in the connection
channel, otherwise it keeps re-trying to send requests!
- Http network connection channel never resets a protocolHandler in _q_encrypted/
_q_connected, which is BAD for HTTP/2, since HTTP/2 has unique per-connection
compression context and must be reset - now we recreate the protocol handler in
_q_encrypted or _q_connected (https/http).
- Update autotest.
Task-number: QTBUG-57600
Change-Id: Ib864ce52287bab23334ff43a83ba4b0b7cb52c60
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Updating the focus child means the focus object of the window has changed.
We need to report this to QtGui immediately so that it can e.g. inform the
input context of the new focus object, before widgets reacting to the focus
events start calling update() on the input method.
Change-Id: Ie3f7b835591e71519e3f384c2abdad53242c9736
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
... so other modules (qtwebengine) can query it in a modular build.
Change-Id: I849947339e91db44be9280ead75fb423c62957e3
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Michal Klocek <michal.klocek@qt.io>
Initial support for INTEGRITY to build QtBase
Change-Id: I18f36b4dea9107f01e1c281e4b62880590c777a1
Reviewed-by: Tuukka Turunen <tuukka.turunen@theqtcompany.com>
Reviewed-by: Nikola Velinov <nvelinov@ghs.com>
Reviewed-by: Risto Avila <risto.avila@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Honor the rule of five. Copy assignment was already disabled.
Disable also copy construction, but re-enable the move special
member functions.
This requires making the container non-const; to avoid detaches
and keep compatibility with containers that only have begin/end
(but not cbegin/cend), use qAsConst. This requires moving qAsConst
definition a bit up in the file.
Change-Id: I19cd74437cf69baceada9483920a21e96d7b1727
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This new function does the same as newRow(), except that it has a less confusing
name (in line with _add_Column()), and accepts printf-style arguments to avoid
the need to newRow(qPrintable(QString::asprintf())), a common pattern in client
code. It uses qvsnprintf() under the hoods, avoiding the need for the QString
const char* round-trip.
Port all in-tree users of newRow(qPrintable(QString::asnprintf())) to the new
function.
Change-Id: Icd5de9b7ea4f6759d98080ec30f5aecadb8bec39
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
The functionality was missing in IFileDialog. As of Windows 7;
IFileDialog can be queried for IFileDialog2, which provides it.
Task-number: QTBUG-44112
Change-Id: I0c0345d516bbc36f9bb519545f5eda1289c9ef23
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
The color components were not correctly shuffled to ARGB host-order
form.
Discovered and tested with tst_QPainter::blendARGBonRGB on ARM.
Change-Id: I2ef9b6129dd83f3c6be0b30c0a5e3684564e6b2f
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
Having the window on the last screen focused is inconvenient since the
main application UI is likely to be shown on the primary screen.
Change-Id: I2e7945a903cb432d3428c773ac89c662374632c9
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
- Clamp the position to the bounding rect of the device
- Send TouchRelease only once
Change-Id: I8776079dbc886612e6adfb1fef5ec7cf14a8af3b
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
A directory is empty when it doesn't contain files or folders.
We can exploit QDirIterator::hasNext() to check whether this is the
case. This is efficient since it doesn't list the whole folder (in the
non-empty case).
Test cases are added for both the empty and non-empty cases.
Change-Id: I0f7e26782c0f97f9c16f928dab6cae37927875d8
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
The documentation still stated that the Qt standard font dialog was
used.
Task-number: QTBUG-47572
Change-Id: Iff4262869efde2d9fefb38264b2f6f8a9d2f7483
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
clangqdoc can't parse platform dependent source files
because they try to include platform dependent system
include files. e.g., When clangqdoc is run on macOS,
the Windows system include files are not available.
This change adds all the platform dependent .cpp files
to the excludefiles config variable. This means that
qdoc comments are no longer allowed in the excluded
files. There shouldn't be any documentation in these
files anyway. Platform dependent documentation should
be in .qdoc files or in generic .cpp files that do not
try to include platform dependent include files.
Note that .m and .mm files are excluded programatically
in qdoc.
Change-Id: I8f93fe9f5604e558b3df8c8cc8ee723010bf885d
Reviewed-by: Martin Smith <martin.smith@qt.io>
In clangqdoc, we no longer define platform-specific
macros, because they make clang try to include too
much include stuff. Instead, when we have something
like #if defined(Q_OS_XXX) surrounding something we
want clangqdoc to see, we add the Q_CLANG_QDOC macro
like this: #if defined(Q_OS_XXX) || defined(Q_CLANG_QDOC).
This should not be done everywhere Q_OS_XXX is used, but
only where there is some platform-specific things we want
to document.
Change-Id: I97bb57e9b0c044899fa45b0beb02702906d5c89a
Reviewed-by: Martin Smith <martin.smith@qt.io>
The qdoc 'defines' config variable lists values
that contain '*' to represent wildcards, but clang
doesn't accept them. This change adds a new config
variable called 'clangdefines' which explicitly
lists all the defines that match the wildcards.
It also lists several Qt defines for C++11 stuff,
because when clangqdoc comes into use, all the
supported compilers for Qt will support C++11
constructs.
There might be a few defines listed in clangdefines
that are unnecessary and maybe a few that we really
should not include, but we can adjust the list as
needed.
The clangqdoc code that reads this new config variable
will be added in a separate change. This change will
not affect the non-clang qdoc, because qdoc will just
ignore the clangdefines variable.
This change also adds Q_CLANG_QDOC to 'defines' and
to 'clangdefine'. Q_CLANG_QDOC is meant to be used
in the sources the way Q_QDOC is used. It indicates
that a particular use of Q_QDOC has been reviewed and
is still required for clangqdoc.
Change-Id: I3b00b18ec726196eda5cfa8411cd3e87433fec59
Reviewed-by: Martin Smith <martin.smith@qt.io>
The docs for QPrinter contained a use of Q_QDoc to
declare an enum representing paper sizes for different
printers, but this special declaration for qdoc was
no longer needed, so it was removed. The real declaration
is in QPagedPaintDevice, which is the public base class
of QPrinter, and it is documented there. A few other
uses of Q_QDOC were examined and either removed or
upgraded to Q_CLANG_QDOC. One use of Q_OS_WIN was
changed to also be included for Q_CLANG_QDOC.
Change-Id: If6d810c624aa8d659fd0e3e753ba666d4d42ef83
Reviewed-by: Martin Smith <martin.smith@qt.io>
qmutex.h is updated to let clangqdoc document the threads case,
because the no-threads case is not interesting, and clang can
handle everything declared in qmutex.h. This change required
that a few minor qdoc errors be corrected in qmutex.cpp as well.
Change-Id: Icb4122f2179d6aad39dc68376498364820143297
Reviewed-by: Martin Smith <martin.smith@qt.io>
... And refactor to use it for drawing CE_MenuItem.
This removes a couple calls to HITheme. Instead, we
use CoreText to render the checkmark character. Notice
that this is what we were doing with HITheme for
CE_MenuItem. Drawing PE_IndicatorMenuCheckMark was
done manually, and in a way that has not been updated.
Notice also that the choice of color from the palette
has also been fixed to look for the State_Selected state
instead of the State_On state, in accordance with
QCommonStyle. In fact, on macOS, the checkmark is never
rendered when the State_On bit is clear. Moreover, we
systematically pick the checkmark color from the style
option palette.
[ChangeLog][QtWidgets][QMacStyle] PE_IndicatorMenuCheckMark
looks for State_On instead of the State_Selected to set its
highlighted state. Its color is picked from the style option
palette.
Change-Id: Ib033df357fd83080cb4320c43949f75bb079c8a5
Task-number: QTBUG-57470
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
We are using QPlatformBackingStore::composeAndFlush, which allocates
textures on our behalf using the context that we pass in, so we need
to keep the context alive (and make it current) for the duration of
the QPlatformBackingStore destructor, otherwise we're leaking textures
every time a window (dialog e.g.) is closed.
Change-Id: I1450fa0ff7a170d13ec59920566e4401b50cd513
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
The cursor rectangle is translated into screen coordinates, and compared
against the screen geometry after subtracting the future keyboard rect
(which is already in screen coordinates). If the two do not overlap
completely, the root view is shifted accordingly so that the cursor
rectangle is placed in the center of the available space.
A future improvement would be to first check if centering the input
item's clip rectangle would bring the cursor within the available
geometry, before falling back to using the cursor rectangle. This
would look better for multi-line text inputs where the cursor is
not in the center.
Task-number: QTBUG-46747
Change-Id: If9b551b4d297e2a1f6d7f84b81628fa65c08edfd
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
This patch improves the handling of mime type filters in QFileDialog.
The main change is in selectMimeTypeFilter(), which was just falling back
unconditionally on selectNameFilter(). Instead, mime type filters should
have an higher priority than name filters.
This patch also adds a new selectedMimeTypeFilter() method, which is used in the unit test.
Change-Id: Ice8bb08f5ff46e4a942d539f6001424eca878f74
Reviewed-by: David Faure <david.faure@kdab.com>
We only need the FirstResponderCandidate for the duration of the call to
[super becomeFirstResponder]. Keeping it around longer means that when
emitting window activation events, which may result in changing the
first responder again, we may wrongly conclude that we're not allowed
to change the responder due to the FirstResponderCandidate still being
alive.
Change-Id: I8203e795cdde4128776283fe63a1907eb6ebc151
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
- port Q_FOREACH to C++11 range-for
- port uses of inefficient QLists to QVector or C arrays
- port uses of dynamic containers with static content, to constexpr
C arrays
- fix algorithmic mistakes:
* use adjacent_find with greater<> to emulate C++11 std::is_sorted
instead of sorting the range and comparing it with the original
(and not even using stable_sort to do this).
* use std::unique == end() to detect absence of duplicates instead
of poplulating a QSet and comparing its size with that of the
original range.
* use a simple QCOMPARE instead of populating a QSet with statically-
known content, removing known options to be able to check that the
remaining options are unknown
Fixes errors pointed out by my tree's static checks.
Change-Id: I935dbc21d56b55889d96aaf6ec179624c6ce9047
Reviewed-by: David Faure <david.faure@kdab.com>
Most of these involved moving or removing extraneous
aide-memoir comments left by programmers between qdoc
comments and their functions. There were also some
cases where Q_CLANG_QDOC had to be tested to make
something visible to clangqdoc. And there were a few
functions that should not have been documented at all.
Change-Id: I3bf7c397a9e5ddbffc40cc1fee7f19cad71a1ae7
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
They were preventing clangqdoc from matching two
qdoc comments with the functions they are meant
to document.
Change-Id: Idfe9d0ab328e938d66e5da75d065974329be616d
Reviewed-by: Martin Smith <martin.smith@qt.io>
They were preventing clangqdoc from matching two
qdoc comments with the functions they are meant
to document.
Change-Id: I51fea7957debc6fbfc89eb1a531ba8f39a34410a
Reviewed-by: Martin Smith <martin.smith@qt.io>
Instead of falling back to createPlatformMenu() in client code.
Change-Id: Ia257449200f5c71f5e164072adce13d1137b1d87
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
The function was doing two things, both checking window ancestry and
whether or the window was a direct child of non-Qt window. The former
has now been split of in a QPlatformWindow::isAncestorOf(), which
simplifies the code in e.g. QApplicationPrivate::isWindowBlocked().
Change-Id: I259a190e03ef8def23356005474eeeee74c9ae89
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Split out the fast paths of fetchTransformedBilinearARGB32PM, so each
can be more easily read on its own, and to prepare for future AVX2
versions.
Change-Id: I1e9842a8928689823bf6d7d8a352625ed4b4b6c5
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
Some member functions of a class declared in a cpp
file were documented, but they should not have been
documented.
Change-Id: I9ce621bd858ebf1ad916beaf217d1c4d9feabbce
Reviewed-by: Martin Smith <martin.smith@qt.io>
They were simply not postioned correctly relative
to the functions they were meant to document.
Change-Id: I6eef94b291ae4ffe343d2728cc32477f55b2a871
Reviewed-by: Martin Smith <martin.smith@qt.io>
Removed qdoc comment marker from two comments for
static function defined in the cpp file. Tbey are
not known globally.
Change-Id: I485fa06142879b6c732b6865d264395deafade33
Reviewed-by: Martin Smith <martin.smith@qt.io>
Instead of returning 0, instantiate QPlatformAccessibility which
delegates the handling of accessibilty to accessibilitybridge plugins.
This makes it possible to implement entirely custom handling of the
accessibility events, making it possible to write for example in-process
screen readers.
Change-Id: I7bcfd83b769af8ca2689fb38add1345719cf804f
Reviewed-by: Jesus Fernandez <jesus.fernandez@qt.io>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
It's useful to upload textures storred in .KTX files without dividing the layers.
It's also more efficient than uploading layer by layer.
Change-Id: I92d93c57514e2a3637d1202cb83bd72b8d277edf
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
We model each TouchPoint contact patch as an ellipse now, which is
consistent with Android APIs.
Change-Id: I4edfbebfb5e1ab6686dba0ec924bfcfbbd6ff0f4
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
[ChangeLog][Third-Party Code] Sqlite was updated to version 3.16.1.
Change-Id: I9a19fcb6bbc95991ecf4699f2f7acf4b904eb4af
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
Doing it when hiding the dialog (which happens when closing it) makes no
sense, and messes with the focus object for no reason.
Change-Id: I4831d4a9b3c22248594f52bfa3b14dc73db110b7
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Results in 'Attempt to set a screen on a child window' warning from
QWindow.
Change-Id: Ib421bada07d2085c33a4dcb62e705b2c8e2ba1c4
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
This update undefines Q_GADGET when clangqdoc is running.
With Q_GADGET defined, clangqdoc expects documentation for
QtGadgetHelper in each class where Q_GADGET is used.
Note that the documentation for the Q_GADGET macro is still
generated.
Change-Id: I3e6e6644c2c537c00c44ae77664892e125046daa
Reviewed-by: Martin Smith <martin.smith@qt.io>
Commit 9ca635482d renamed the configure
feature from pcre to pcre2, which unfortunately means that people would
have to change their build scripts to pass -qt-pcre2 instead of
-qt-pcre. As the configure check already verifies the correct PCRE
version for use (when using the system library), it seems more
convenient for our users to retain compatibility and call the configure
feature "pcre" again.
Change-Id: If26e7888814d8204d43baf7298d9916a4f856a48
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
The macOS and iOS version bumps were already proposed, and bumping
up tvOS and watchOS by one version since all original devices that
ran tvOS 9 and watchOS 1 can run the latest versions and given
the upgrade cycles and TP status of these platforms in 5.8, there
is not much point supporting any older version.
Change-Id: Ib01035054291f5bcd18d15a4f27ad33922076851
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
Ensure that the point QPushButtonPrivate::adjustedMenuPosition() returns
is on the same screen with the button
Task-number: QTBUG-57689
Change-Id: If611d41fff4c72ae16369fd95bc5159f398894e9
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Added isObsolete and setObsolete functions to QUndoCommand that signifies
a command is not functional. This is useful for when two commands are
merged in such a way that the merged command does nothing. Another
particular use is with networking commands in which the command fails
due to connection issues. The command is considered obsolete because the
undo/redo functions do nothing since the connection failed.
This property is checked in QUndoStack::push(), QUndoStack::undo(),
QUndoStack::redo(), and QUndoStack::setIndex(). The obsolete flag is
checked after QUndoCommand::undo(), QUndoCommand::redo(), and
QUndoCommand::mergeWith() is called where applicable. This allows the
user to set the obsolete flag within the QUndoCommand class and it will
be deleted directly afterwards.
Task-number: QTBUG-54970
Change-Id: Ia8e962ff3aa16515e8f9e2180aee5e1d726d5ba3
Reviewed-by: David Faure <david.faure@kdab.com>