Commit Graph

37470 Commits

Author SHA1 Message Date
Thiago Macieira
b66357e3eb moc: Fix compilation of text strings containing non-ASCII
On platforms where char is signed, like x86, the following is an error
(narrowing conversion):

 unsigned char x[] = { '\xc3' };

Change-Id: I495bc19409f348069f5bfffd15518f9ef4e43faf
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-09-10 04:17:03 +00:00
Qt Forward Merge Bot
3d2832790a Merge remote-tracking branch 'origin/5.12' into dev
Change-Id: If1baf48f0f396fb223672d14f0e1847ac42ca1a6
2018-09-10 01:00:42 +02:00
Tor Arne Vestbø
c0e94fa0cd macOS: Use NSOpenGLContext's drawable directly to track active drawable
We don't need a separate QWindow pointer to keep track of the active
window, it's recorded already by the NSOpenGLContext's drawable.

And we don't need to juggle the drawable when the window is hidden,
the drawable is still valid after the window is re-shown, and we
call update on every frame (for now) anyways, which will reconfigure
the drawable if needed.

Change-Id: I199b6c027226dd239c13ecc4aba86986ca09a1eb
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-09-09 22:13:28 +00:00
Christian Ehrlicher
85917c4b72 Autotests/QItemView: re-enable tst_QItemView::indexAt()
tst_QItemView::indexAt() was disabled since Qt 5.0 (and maybe earlier)
maybe due to it's long runtime (15s on my machine).
Speed it up by checking only some special positions inside the visual
rect (borders, center) as it will likely not fail on other positions but
succeed for the ones which get tested.

Task-number: QTBUG-22470
Change-Id: I5c7135757049176f9daca4afc1b7f40c75b9ecd9
Reviewed-by: David Faure <david.faure@kdab.com>
2018-09-09 12:04:15 +00:00
Christian Ehrlicher
ef40cad3a9 QTableView: Fix PageUp not getting to top when first row is hidden
When the first row(s) of a QTableView is hidden, PageUp could not reach
the first visible row because logicalRow(0) is taken without checking
if the row is visible.

Task-number: QTBUG-70215
Change-Id: Ic7820352b8988accb685ea7d16908d3fa8bf2847
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Luca Beldi <v.ronin@yahoo.it>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Reviewed-by: David Faure <david.faure@kdab.com>
2018-09-09 12:03:55 +00:00
Christian Ehrlicher
cd499b7297 QLayout: Better document QLayout(QWidget *parent) behavior
QLayout(QWidget *parent) directly calls parent->setLayout(this) which
can lead to a runtime warning later on when someone tries to set the
layout on the parent again.

Task-number: QTBUG-69761
Change-Id: I21ef8895fd65f3e23e57527a6d38936e45417b63
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
2018-09-09 12:03:51 +00:00
Tor Arne Vestbø
8b3a6cfbfb Update QOpenGLContext::currentContext after QPlatformOpenGLContext::makeCurrent
Instead of doing it up front and then restoring the current context
if the makeCurrent call failed.

By delaying the update, QPlatformOpenGLContext::makeCurrent has the option
to check which context was current before the call.

Change-Id: I458f5c00d7c820acbe2f8552b0513fce99b9b683
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2018-09-09 11:10:38 +00:00
David Faure
c82ab86cea New proxy model: QConcatenateTablesProxyModel
It takes multiple source models and concatenates their rows into a single model.

With full unit tests.

[ChangeLog][QtCore] New class QConcatenateTablesProxyModel, to
concatenate the rows from multiple source models.

Change-Id: Iaf4f325473adef106f423677fdc5ee0e35e87d35
Reviewed-by: Luca Beldi <v.ronin@yahoo.it>
Reviewed-by: Sérgio Martins <sergio.martins@kdab.com>
2018-09-09 10:13:06 +00:00
Qt Forward Merge Bot
1f1e2aa57b Merge remote-tracking branch 'origin/5.11.2' into 5.11
Change-Id: I2fa26fa061cbf5d2bded203a299a19b7d1c31d0a
2018-09-09 12:13:02 +02:00
Thiago Macieira
1205f4a229 Moc: use QVector more often
It's more optimised and it vectorizes better, due to one level of
indirection fewer.

Change-Id: I495bc19409f348069f5bfffd1551e85092ed8dc2
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2018-09-09 05:23:08 +00:00
Thiago Macieira
2dca4ef19c CBOR: Add missing clear() methods to the two container classes
Change-Id: Id59bdd8f1a804b809e22fffd153fd5174b58014d
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2018-09-09 05:22:59 +00:00
Qt Forward Merge Bot
be27bf02f4 Merge remote-tracking branch 'origin/5.12' into dev
Change-Id: I36cda712b4cf960de70e497aef52fbc491099f1c
2018-09-09 01:00:10 +02:00
Richard Moe Gustavsen
8d3b9841e1 Cocoa: change background color of selected menu items
Change 582d221b29 caused a regression when drawing menu items in
e.g a QComboBox. After that change, QCocoaSystemSettings would set the
QPalette::Highlight color to [NSColor selectedMenuItemTextColor]. But
the Highlight color is the background color, not the text color. And we
also use [NSColor selectedMenuItemTextColor] as the QPalette::HighlightedText
color. The result is that highlighed menu items end up with the same
foreground and background color (white), which means that they "disappear".

The color that we used before the patch, alternateSelectedControlColor, could
be used, but has the downside that it doesn't follow the appearance color in
system settings (like it should, compared to native apps). And it's also slightly
to blue. But using keyboardFocusIndicatorColor seems like a perfect match.

Fixes: QTBUG-69500
Change-Id: I07f091a5130a7308525743948d2a435226658a6f
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-09-08 19:41:17 +00:00
Juan Jose Casafranca
5474f28c42 Graph loader can load prototypes stored in the graph
Change-Id: Ib0bbfe5b0257bf355e83cc5287fa52b1e0cc3ed6
Reviewed-by: Mike Krus <mike.krus@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2018-09-08 17:11:06 +00:00
Tor Arne Vestbø
be60b541ad Make QOpenGLContext::makeCurrent use early exit for all its flow
The case of the platform context failing makeCurrent is the exception.

Change-Id: I606e6fb379f84e886bff9e27355dda9b31ff9ebe
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2018-09-08 14:04:51 +00:00
Mikhail Svetkin
59fc64cfc5 QOffsetStringArray/msvc: fix compilation warnings C4100
C4100 - identifier' : unreferenced formal parameter
It happens when we call StaticStringBuilder::concatenate(StaticString<N>, StaticString<0>).
StaticString<0> is ignored.

Change-Id: Ic687bc865aa5d5e7425cbddbd614bde7dbb801df
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-09-07 08:29:22 +00:00
Tor Arne Vestbø
3baa9aa3cd macOS: Clear NSOpenGLContex's drawable when using offscreen surfaces
Otherwise the user might accidentally render to the previously active
window, if not explicitly using an FBO.

This will have an performance impact if doing makeCurrent on a real
window and an offscreen window back and forth with the same context,
but that's not really a common or recommended use of QOffscreenSurface,
as you can create FBOs with a normal window current as well. The use
case of QOffscreenSurface is when a real window is not available.

Change-Id: If93d04f82564523e15d5970429afea34c5cd31fe
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-09-07 07:25:37 +00:00
Qt Forward Merge Bot
f21330b749 Merge remote-tracking branch 'origin/5.12' into dev
Change-Id: I799e2ca2fefa140c8b73b73aa959c6ed8da6eae6
2018-09-07 01:00:48 +02:00
Qt Forward Merge Bot
295cd87c6d Merge remote-tracking branch 'origin/5.11' into 5.12
Change-Id: I66c7f18a2abd13601da0947919436f7da3549ae9
2018-09-07 01:00:21 +02:00
Friedemann Kleint
35ebdeb83e QTreeView: Fix expanding of spanning items
When using HeaderView::ResizeToContents and
QTreeWidgetItem::setFirstColumnSpanned(), it happens that the position
of the branch icon is no longer in the first column and thus trying to
expand the item results in a selection change. Check for spanning when
determining the position.

Task-number: QTBUG-41793
Change-Id: I14353127436fb0ebaafb0d50a31b920b8da67333
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
Reviewed-by: David Faure <david.faure@kdab.com>
2018-09-06 20:28:40 +00:00
Laszlo Agocs
2105f80169 cocoa: Fix build with MoltenVK
Change-Id: If92afa2d30d55e1dd2968f582350ba2cf16fe27b
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-09-06 17:10:06 +00:00
Mikhail Svetkin
e8dacba47a QOffsetStringArray: fix compilation error with MSVC15/17
MSVC 2015/2017 has a bug with constexpr.
It is internal compiler error when we are using QtPrivate::IndexSequence
with more than 1024 items.

Example:

template<int ... I>
void foo(QtPrivate::IndexSequence<I...>) { }

void bar() {
    foo(QtPrivate::makeIndexSequence<1024>()); // works
    foo(QtPrivate::makeIndexSequence<1025>()); // error: C1202: recursive type or function dependency context too complex
}

Workaround:

template<typename>
struct Foo;

template<int ... I>
struct Foo<QtPrivate::IndexSequence<I...>>{
    static constexpr void call() { }
};

void bar() {
    Foo<QtPrivate::makeIndexSequence<1025>>::call(); // works
}

Change-Id: Iedbf5291ac4a9f51f8b5f6b76b83baba920c092d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-09-06 13:20:28 +00:00
Friedemann Kleint
deab54f84f Fix crash when setting Qt::WA_StaticContents on a transient child
Bail out of QWidgetBackingStore::updateLists() when a
top level transient child is encountered, preventing from
adding children of other top level windows to its list.

Task-number: QTBUG-70085
Change-Id: Ibd748ab959af9bfe7fe0622494936b0c109ab25a
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2018-09-06 12:54:54 +00:00
Topi Reinio
f4d9dadabb Doc: Add a define for online and offline documentation templates
The browser backend for offline documentation has fewer capabilities
when it comes to CSS and JavaScript support. These defines allow us
to use \if conditionals when needed:

/*!
  \if defined(onlinedocs)
    <Content that is rendered in online documentation>
  \else
    <Fallback for offline docs>
  \endif
*/

Change-Id: Ia51acb937754f22f2ece2836b4fb1470bf9ade90
Reviewed-by: Martin Smith <martin.smith@qt.io>
2018-09-06 12:45:23 +00:00
Tor Arne Vestbø
d115196010 macOS: Use single call site for timer processing in event dispatcher
Makes it easier to add shared logic later on.

The call to maybeCancelWaitForMoreEvents() has been left out as it was
not called from all call sites.

Change-Id: Ibcb10ab4d788de80850b0e5a4286b4d49091cddb
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-09-06 12:42:17 +00:00
Tor Arne Vestbø
5ed48895b6 tst_qglthreads::swapInThread(): Acquire context before resizing widget
Otherwise the QGLWidget's context may be owned by and used by the swap
thread when the resize happens on the main thread.

Change-Id: Id415747572e6b988924618b1df0efdee5fcb1805
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-09-06 12:42:06 +00:00
Tor Arne Vestbø
367adc10de macOS: Rename QCocoaGLContext::setActiveWindow to setDrawable
Change-Id: I0be5125b434418c005f45f05c54b22f0418b46e4
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-09-06 12:30:13 +00:00
Christian Ehrlicher
6c088af0f9 QHeaderView: honor qss padding attribute
QStyleSheetStyle did not check if a border (which includes the padding)
is given and therefore the padding attribute given by css was ignored.
Only when another attribute was additionally set, the padding was used.

Task-number: QTBUG-59501
Change-Id: If3e691a23266ef6d0fb942a43053b29d65e40047
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2018-09-06 12:19:03 +00:00
Christian Ehrlicher
20be62da8c QHeaderView: remove dead code
The special handling when a font for a headerview is set became useless
after a4e6117c53 since it is now included
in branch four lines above.

Change-Id: I73bec48913ebca5f278128a124b58d1b6172e334
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-09-06 12:19:00 +00:00
Christian Ehrlicher
fbd21e1024 QHeaderView: Take padding/margin into account when eliding text
When QHeaderView has an elide mode set, the available width passed to
QFontMetrics::elidedText() was not adjusted when padding or margin was
set. This lead to a too long text displayed in the header.
Now QStyle::subElementRect(SE_HeaderLabel) is used to get the correct
rect.

Task-number: QTBUG-23203
Change-Id: I12fc646092470272bb91b3ffb7c7a51e239c7a35
Reviewed-by: David Faure <david.faure@kdab.com>
2018-09-06 12:18:56 +00:00
Kai Koehne
3bac18da8e Document SLJIT part of pcre2
src/sljit features the BSD-2-Clause license, not the BSD-3-Clause one.

[ChangeLog][Third-Party Components] Added documentation for the SLJIT
part of pcre2, which is available under the BSD-2-Clause license.

Change-Id: Ie1e981ef6eab2c8d2960919b66ac85b29450f919
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-09-06 12:09:31 +00:00
Friedemann Kleint
550d2a0a15 uic: Fix pixmap functions for QIcon
Task-number: QTBUG-8563
Change-Id: I69b16ac2327fee6dd6f26845bdda60ad4dde56fa
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
2018-09-06 11:58:40 +00:00
Luca Beldi
dc73a691bf Fix QSIM::itemData returning role 255
Before this fix, QStandardItemModel::itemData returns
a map containing role 255 which is used internally to store the flags.
This role is an undocumented implementation detail so it should
not be returned to the user.

[ChangeLog][QtGui][QStandardItemModel] itemData does not return role 255

Change-Id: Ibead3cba84cfe92b3c664bc8ce87508cbcbdc9bd
Reviewed-by: David Faure <david.faure@kdab.com>
2018-09-06 11:51:28 +00:00
Luca Beldi
37a1c6dc4c Reimplement QStringListModel::setItemData
Before this patch QStringListModel::setItemData emitted dataChanged
twice if the roles map contained both DisplayRole and EditRole.
This fixes the duplication.

Increased efficiency of QStringListModel::itemData

Task-number: QTBUG-67511
Change-Id: Ibaea17530f15627a3cb8003e5284e54001731ded
Reviewed-by: David Faure <david.faure@kdab.com>
2018-09-06 09:27:09 +00:00
Luca Beldi
fcdb459c06 Implement QListModel::moveRows
Implemented the virtual method moveRows to allow row movement.

[ChangeLog][QtWidgets][QListWidget] Implemented moveRows in model

Task-number: QTBUG-69807
Change-Id: I212b560b8778306a0315d9d5e4710efcc7dbbe44
Reviewed-by: David Faure <david.faure@kdab.com>
2018-09-06 09:26:58 +00:00
Luca Beldi
551e11c286 Implement clearItemData in common models
A virtual method clearItemData was added to QAIM for Qt6.
This patch implements that method to all Qt concrete models for which
it makes sense.

Task-number: QTBUG-69616
Change-Id: If980fcfc36f723128bc56ec4587c5c3a338dbbcc
Reviewed-by: David Faure <david.faure@kdab.com>
2018-09-06 09:26:51 +00:00
Laszlo Agocs
85f127cb04 Revise an incorrect QVulkanWindow doc note
Applying the transformation in question has no effect on the winding
order. Rewrite that section.

While all the examples are correct, clarify the rules for the geometry
they use since the winding order varies. Fix up the triangle example code
to use front=CCW for clarity (even though it does not matter much since
culling is off there).

Change-Id: Icb968c76cc9fa918a5608d3c66b4fccd5668175e
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
2018-09-06 09:17:53 +00:00
Andre Hartmann
689a1e186b QString: Fix snippet explaining "non-spaced numbered place markers"
The snippet tries to explain the advantage of

 str.arg("Hello", QString::number(20), QString::number(50));

over

 str.arg("Hello").arg(20).arg(50);

which only makes sense, if str contains the same formating sequence,
namely "%1%3%2". That also matches the belonging comment.

Amends 8481500f63

Task-number: QTBUG-44044
Change-Id: Ic2595107bc599c6d244ebf88184a5cc5569ed4f1
Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-09-06 09:07:01 +00:00
Olga Radko
c88305b68d QSortFilterProxyModel: add test for inserting via a QComboBox
This new test double-checks the bugfix for QSortFilterProxyModel::insertRows
in commit 70ba75519d. Previously, when using QComboBox on top of
QSortFilterProxyModel and calling QComboBox::addItem with row==rowCount(),
an empty item was inserted in one place, and then another item was modified
(instead of the inserted empty one). This test checks that the above bugfix
indeed fixes the behavior of QComboBox::addItem when used in this manner.

Task-number: QTBUG-69158
Change-Id: Id01345e0525694a57250c656222d626e2267aa8e
Reviewed-by: Luca Beldi <v.ronin@yahoo.it>
Reviewed-by: David Faure <david.faure@kdab.com>
2018-09-06 05:56:18 +00:00
Qt Forward Merge Bot
e5d0289413 Merge remote-tracking branch 'origin/5.12' into dev
Change-Id: I2f6e1c0f649c5098723b776c774a8a689bb60582
2018-09-06 01:00:33 +02:00
Mikhail Svetkin
40cd0f35ef Remove QConditional in favor of std::conditional/std::is_unsigned
Change-Id: I5e0b9f640eb49aa7f5afdd4f3f15e027659e78ea
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2018-09-05 14:11:15 +00:00
Erik Verbruggen
028727c20c ASAN: Disable SSE4.1 code in qstricmp because of heap-buffer-overflow
Although it is safe to slightly overread a string (provided it doesn't
cross page boundaries), ASAN is extremely picky about this kind of
behavior. So, do not run with this vectorized code when ASAN is
enabled.

Task-number: QTBUG-70269
Change-Id: I2b59b524d608afec8985227285feab55158d7247
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-09-05 13:14:47 +00:00
Andre de la Rocha
20ac20bcea Windows QPA: Fix missing accessibility info with WebEngineView
It seems when a WebEngineView is parented by a window its accessible
interface will not know its parent, which prevented the root of an
UI Automation fragment from being found, causing missing accessibility
info. This change adds a workaround to avoid this issue.

Task-number: QTBUG-70199
Change-Id: Ia7cfc9f410c4f0ef3b5f9d1700748a9a3e29b7c2
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2018-09-04 19:48:01 +00:00
Ulf Hermann
dd944136a2 QObject: Document order of events on destruction
Weak pointers are zeroed before destroyed() is emitted. This makes sense
because the signal is called "destroyed()", not "aboutToBeDestroyed()",
and the code has been like this for a long time.

Change-Id: Ic852fe354405e328d1922a75931e7eb7bf651b26
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2018-09-04 07:05:00 +00:00
Friedemann Kleint
42a68ee9dd Fix precompiled header detection for clang-cl
Do not unconditionally enable precompiled headers
for MSVC since clang-cl does not support it.

Task-number: QTBUG-63512
Change-Id: I95df7d3bb51647ecee8ddc3161421768313ab4a1
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2018-09-03 21:10:00 +00:00
Venugopal Shivashankar
ff2a71e310 Doc: Move the literal code blocks to a separate file
It's easier to override the code blocks this way.

Change-Id: I98d40626a94fdb70a95c50332c2da141e9277070
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2018-09-03 12:31:07 +00:00
Rolf Eike Beer
a3ee0b94da QWindowsStyle: respect rectangle when drawing PE_IndicatorViewItemCheck
This is a follow-up on commit 6553921dd5,
which fixed the drawing of the surrounding rectangle when used in item
views. This one now fixes the drawing of the check mark itself, for both
item views and standalone items.

Change-Id: I14f359e9d2ef33652cc68494b7d114e61110e5e0
Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2018-09-03 10:51:14 +00:00
Andy Shaw
69a2bc7a2a Doc: Explicitly state that QSqlTableModel only handles EditRole
Fixes: 5.12.0
Task-number: QTBUG-70234
Change-Id: I65c6aa60048182c5408dca2aa20098af363b10ec
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
2018-09-03 10:24:09 +00:00
Samuel Gaist
fe463dd422 QSFPM: cleanup QRegularExpression includes
Add feature guard around the include in the header and remove the one
from the implementation file.

Change-Id: I8dc133cce786ead6059cc66b40a0ffb6c420096f
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2018-09-03 09:42:58 +00:00
Kai Koehne
9273969107 Allow passing custom arguments to qmlplugindump
Add QMAKE_QMLPLUGINDUMP_FLAGS variable that allows plugins to set
qmlplugindump options like -app, -noforceqtquick.

The naming follows the example of e.g. QMAKE_LRELEASE_FLAGS.

Task-number: QTBUG-70264
Change-Id: I1d11b7f3b03fab79ab9e06188cecf31650789302
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2018-09-03 09:21:03 +00:00