| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
| |
No critical security level found for these reviewed files.
QApplication, QWidget and QSizePolicy files are reviewed in separate
patches.
QUIP: 23
Fixes: QTBUG-135741
Pick-to: 6.10 6.8
Change-Id: Iee10987c9a99606bc0a4c1faeeed354be53076bb
Reviewed-by: Volker Hilsheimer <[email protected]>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
\brief is for properties and setSizeConstraints is not the setter of the
sizeConstraint property, it's just a convenience wrapper.
Also, clean up the documentation style, we don't prefix each line of
documentation with '*'.
Amends 5b33c4e84ce23f1d7720306f4f01e771ac8be2e3.
Pick-to: 6.10
Change-Id: I3eda0f195d14bff68b6dd08ae9dfeb82f75c56e2
Reviewed-by: Thorbjørn Lund Martsum <[email protected]>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In most situations the simple setSizeConstraint is
sufficient to get the sizeConstaint the user wants.
However in certain other situations the QLayout size constraint
demanding same vertical and horizontal behavior could simply
be extremely annoying.
This patch fixes a design-flaw as it makes perfectly sense
to have a fixed sized or minimum size constraint in one
orientation and having it something else (e.g minMax) in
the another.
Likely the old logic was that the user could use
setMinimumWidth and setMaximumWidth on the widget itself
(and similar for height) to get this behavior, but on 2+ monitor
systems with different DPR that is not really an option
(at least not a good one).
[ChangeLog][QWidgets][QLayout] Introduced a vertical and horizontal
size constraint in layout as the size constraint behavior can depend on
the orientation.
Fixes: QTBUG-17730
Change-Id: I8aefcd2b4df228494604b41e8ab7319e9f599d07
Reviewed-by: Richard Moe Gustavsen <[email protected]>
|
| |
|
|
|
|
|
|
| |
Remove some unused includes in source files.
Pick-to: 6.9
Change-Id: I5c43fd10fa1a179664ad8cbf4988f9bdb96d8af8
Reviewed-by: Axel Spoerl <[email protected]>
|
| |
|
|
|
|
|
|
|
|
| |
Even though the member is named 'menuBar', it's a plain QWidget. Also
the setter are not guarded so the functionality should not be guarded
too.
Pick-to: 6.9
Change-Id: I5fa19ab955d9794aa3d344ba0cfc8a0a3d22b61e
Reviewed-by: Axel Spoerl <[email protected]>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QLayout::widgetEvent() returned early, when the layout was disabled.
That suppressed ChildRemoved events and lead to a crash, when the
layout was enabled again.
Don't return early on ChildRemoved events.
Add an autotest in tst_layout::removeWidget().
Fixes: QTBUG-124151
Pick-to: 6.7 6.5 6.2
Change-Id: Ib0a0bb73978d9fc2c9777d300cf38a8c4496b702
Reviewed-by: Volker Hilsheimer <[email protected]>
Reviewed-by: Chris René Lerner <[email protected]>
|
| |
|
|
|
|
|
|
|
| |
To aid readability.
Task-number: QTBUG-121398
Pick-to: 6.7
Change-Id: I3cb231584c2b7aee72e9f01c669fed1e01fbe475
Reviewed-by: Axel Spoerl <[email protected]>
|
| |
|
|
|
|
| |
Pick-to: 6.5 6.6
Change-Id: I81a6e9d52e858c3f733d4c527c70408772813b56
Reviewed-by: Volker Hilsheimer <[email protected]>
|
| |
|
|
|
|
|
|
|
|
| |
The method has been named expandingDirections() since the very
initial git commit for Qt 4.8 ... So high time to fix the
documentation.
Pick-to: 6.5 6.6
Change-Id: If5d7189ebbe439bd0b0e95d51e77c08ee52c3471
Reviewed-by: Andreas Eliasson <[email protected]>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since objectName() isn't always set, the className() makes it slightly
easier to find and fix the issue.
Also unify some wording "produce a warning", which is generic enough to
fit:
print warning in terminal
print warning in logviewer (if you're unlucky and have to use Windows?)
print warning in system journal (if you're unlucky have to use binary
systemd journal logs)
Pick-to: 6.4
Change-Id: I7522d65666cb5829c33c45039b8646dd535e21ea
Reviewed-by: Volker Hilsheimer <[email protected]>
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Replace the current license disclaimer in files by
a SPDX-License-Identifier.
Files that have to be modified by hand are modified.
License files are organized under LICENSES directory.
Task-number: QTBUG-67283
Change-Id: Id880c92784c40f3bbde861c0d93f58151c18b9f1
Reviewed-by: Qt CI Bot <[email protected]>
Reviewed-by: Lars Knoll <[email protected]>
Reviewed-by: Jörg Bornemann <[email protected]>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QWidget and QWindow use bits in QObjectPrivate to provide for a couple
of shortcuts -- one in qobject_cast, and another in the isWidgetType() /
isWindowType() functions in QObject. These can be optimized by simply
looking at the bits, without actually doing more expensive runtime
casts.
These bits were set on construction, but not unset on destruction. The
result was for instance that destroying a QWidget would report that the
object was still a QWidget when ~QObject was reached.
Fix this
1) by setting the bits only when QWidget / QWindow constructors start;
2) by resetting the bits once ~QWidget / ~QWindow are completed.
Technically speaking this is not 100% correct in the presence of data
members, but luckily those classes don't have any.
Amend an existing test for QWidget (whose comment said exactly the
opposite of what the test actually did) and add a test for QWindow.
Some other code was wrongly relying on isWidgetType() returning true
for destroyed QWidgets; amend it as needed.
[ChangeLog][QtCore][QObject] Using qobject_cast on partially constructed
or destroyed QWidget/QWindow instances now yields correct results.
Similarly, using the convenience isWidgetType() / isWindowType()
functions now correctly return false on such instances. Before,
qobject_cast (and the convenience functions) would erroneously report
that a given object was a QWidget (resp. QWindow) even during that
object's construction (before QObject's constructor had completed) or
destruction (after QWidget's (resp. QWindow's) destructors had been
completed). This was semantically wrong and inconsistent with other ways
of gathering runtime type information regarding such an object (e.g.
dynamic_cast, obj->metaObject()->className() and so on).
Pick-to: 6.3
Change-Id: Ic45a887951755a9d1a3b838590f1e9f2c4ae6e92
Reviewed-by: Qt CI Bot <[email protected]>
Reviewed-by: Marc Mutz <[email protected]>
Reviewed-by: Tor Arne Vestbø <[email protected]>
|
| |
|
|
|
|
|
|
|
|
|
| |
child->widget() returns null if the layout item is not a widget.
Thus, calling removeWidget(nullptr) will remove all non-widget items
such as layouts or strechers.
Change-Id: I772c1158d0f7e8e2850b6e571b0405a2896f09b8
Pick-to: 6.0 6.1 5.15
Reviewed-by: Tor Arne Vestbø <[email protected]>
Reviewed-by: David Faure <[email protected]>
|
| |
|
|
|
|
|
|
|
| |
This also aligns the implementation with QWidgetItem::heightForWidth()
Fixes: QTBUG-92599
Pick-to: 5.15 6.1
Change-Id: I0de68c61ec37a16a8c338575d07ff9e8168a0b98
Reviewed-by: Paul Olav Tvete <[email protected]>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Once user-defined margins are set on a layout, there's no way
to unset them, except by abusing setContentsMargins and passing
-1, which is a total API abuse (does a negative margin mean that
contents *overflow* the layout?). Add a proper function.
[ChangeLog][QtWidgets][QLayout] Added unsetContentsMargins().
Change-Id: I089788a7470f9649a8f00e42914dafb7242f12cd
Reviewed-by: Samuel Gaist <[email protected]>
|
| |
|
|
|
|
| |
Change-Id: Ice081c891ff7f4b766f49dd4bd5cf18c30237acf
Reviewed-by: Allan Sandfeld Jensen <[email protected]>
Reviewed-by: hjk <[email protected]>
|
| |
|
|
|
|
|
|
|
|
|
| |
Drive-by, make QLayout constructor explicit, as it should have
always been.
[ChangeLog][QtWidgets][QLayout] The QLayout constructor taking
a QWidget pointer is now explicit.
Change-Id: If6accfb2e7e810fa08adacea9e674c99121f6bc6
Reviewed-by: Richard Moe Gustavsen <[email protected]>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Stop relying on the "magic" of itemAt returning nullptr for out of
bounds. Just use count().
Unfortunately, QMainWindowLayout breaks the API contract by NOT
implementing count() properly. So, make its count() crash if called;
and move the itemAt implementation there.
Change-Id: I120686a834bab15dd537598a56bd93d6a5924aa5
Reviewed-by: Richard Moe Gustavsen <[email protected]>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Try to fix an API mistake there: there is no reason why these
functions should take pointers to non-const widgets, as that
actually preventing reasonable code (e.g. finding out the index
of "this" inside a const method of a QWidget subclass).
Unfortunately, indexOf(QWidget*) is also virtual, meaning that
changing its signature is an API break. Hopefully, there are
only few users that override this method (Woboq says 0).
[ChangeLog][Potentially Source-Incompatible Changes]
The QLayout::indexOf(QWidget *) virtual function has changed
signature, becoming QLayout::indexOf(const QWidget *).
This is source incompatible, although the fix (for the few
users that do override indexOf() in their layouts) is
straightforward.
Change-Id: Id2183f5ecd9dc7e2a37c7355266e8494ef7929f2
Reviewed-by: Richard Moe Gustavsen <[email protected]>
|
| |
|
|
|
| |
Change-Id: Ifc2aa62a9c9480c85cc36f60941411e920066db8
Reviewed-by: Leena Miettinen <[email protected]>
|
| |
|
|
|
| |
Change-Id: If256609a1f561b957378010d88120f5aaf94a45e
Reviewed-by: Paul Olav Tvete <[email protected]>
|
| |
|
|
|
|
|
|
| |
Cleaning up those that are trivial to remove because they have direct
replacements.
Change-Id: Ie8ac02c3d6273110f1f11e17fdeae496bc66321f
Reviewed-by: Shawn Rutledge <[email protected]>
|
| |
|
|
|
|
|
|
|
|
|
| |
Move away from using 0 as pointer literal.
Done using clang-tidy. This is not complete as
run-clang-tidy can't handle all of qtbase in one go.
Change-Id: I1076a21f32aac0dab078af6f175f7508145eece0
Reviewed-by: Friedemann Kleint <[email protected]>
Reviewed-by: Lars Knoll <[email protected]>
|
| |
|
|
|
|
|
|
|
| |
This was used to support QFlags f = 0 initialization, but with 0 used
as a pointer literal now considered bad form, it had been changed many
places to QFlags f = nullptr, which is meaningless and confusing.
Change-Id: I4bc592151c255dc5cab1a232615caecc520f02e8
Reviewed-by: Thiago Macieira <[email protected]>
|
| |
|
|
|
|
|
|
|
|
|
| |
The menu bar size calculation didn't take into account the margin of the
layout content which makes said menu bar sticking out of the widget.
This patch includes the margin to ensure the menu bar has the correct
size.
Fixes: QTBUG-76585
Change-Id: Ia2c163137fa2889f4028ee3b31766b2747d97b72
Reviewed-by: Christian Ehrlicher <[email protected]>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Apply fixits by Creator and results of manual search focusing on
QCore/Gui/Applicaton(Private) methods and variables to prepare for
splitting out some classes.
Task-number: QTBUG-69478
Task-number: QTBUG-76497
Task-number: QTBUG-76493
Change-Id: Iaf468166793e0cabb514b51c827b30317bf45a2d
Reviewed-by: Oliver Wolff <[email protected]>
|
| |\
| |
| |
| |
| |
| |
| | |
Conflicts:
src/corelib/tools/qstring.cpp
Change-Id: I81dbf90fc936c9bf08197baefa071117bddb1c63
|
| | |
| |
| |
| |
| |
| |
| |
| | |
Try to replace all wordings like '.. to 0' with '.. to \nullptr'. Also
checked for 'null pointer' and similar.
Change-Id: I73341f59ba51e0798e816a8b1a532c7c7374b74a
Reviewed-by: Edward Welbourne <[email protected]>
|
| |/
|
|
|
|
|
|
| |
It should effectively leave the layout untouched
Fixes: QTBUG-69706
Change-Id: I4d8232895bf1d1ae0d1b73156ef6ec6001d8968a
Reviewed-by: Thorbjørn Lund Martsum <[email protected]>
|
| |
|
|
|
|
|
| |
Replace null and '\c nullptr' with \nullptr in the documentation.
Change-Id: I58934eea06943309ba895833f1991629870ab45b
Reviewed-by: Friedemann Kleint <[email protected]>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Mark some long obsolete functions as deprecated so the can be removed
with Qt6:
- QLayout::margin()/setMargin()
- QComboBox::autoCompletion()/setAutoCompletion()
- QComboBox::autoCompletionCaseSensitivity()
- QComboBox::setAutoCompletionCaseSensitivity()
- QTextStream& operator<<(QTextStream&, const QSplitter&)
- QTextStream& operator>>(QTextStream&, QSplitter&);
Change-Id: Ic16b36bf647413b5b3ea2d9105981b95370b3178
Reviewed-by: Friedemann Kleint <[email protected]>
Reviewed-by: Richard Moe Gustavsen <[email protected]>
|
| |
|
|
|
|
|
|
|
| |
Replace 0 with \nullptr in the documentation.
As a drive-by also replace some 0 with nullptr in the corresponding
code.
Change-Id: I5e5bc1ae892f270d7c3419db1c179053561f1b26
Reviewed-by: Paul Wicking <[email protected]>
|
| |
|
|
|
|
|
|
|
|
|
| |
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 <[email protected]>
Reviewed-by: Venugopal Shivashankar <[email protected]>
|
| |\
| |
| |
| | |
Change-Id: Ia082e20e2eb4b76afd4c1a1584ff4e5514655d7a
|
| | |
| |
| |
| |
| |
| |
| |
| | |
Move declaration of pick/perp helpers up the dependency chain
Change-Id: I7084ed829a057a0c45d60445c416fb07f2cb5624
Reviewed-by: Paul Olav Tvete <[email protected]>
Reviewed-by: Oswald Buddenhagen <[email protected]>
|
| |/
|
|
|
|
|
|
|
|
|
|
| |
This was the missing counter-part to indexOf(QWidget *), which is
sometimes implemented in user code.
Not sure why the original code doesn't use a for-loop and instead accesses
an out-of-bounds element, but I'll preserve the behavior of very old working code.
Change-Id: I7d7fa56b56a4626789774c15c23fdfef41d723e7
Reviewed-by: David Faure <[email protected]>
Reviewed-by: Jan Arve Sæther <[email protected]>
|
| |
|
|
|
| |
Change-Id: I6c256c6c5cdfed6ceb45758d708fdc8f74d2939f
Reviewed-by: Leena Miettinen <[email protected]>
|
| |
|
|
|
| |
Change-Id: Ieac4ae1f0b8b84e943c00da9903346a44e57138c
Reviewed-by: Oswald Buddenhagen <[email protected]>
|
| |
|
|
|
| |
Change-Id: Idbd4978852fa280dd18a5684469d499da3892126
Reviewed-by: Oswald Buddenhagen <[email protected]>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We can't just static_cast a child to QLayout, because the child might
not be a QLayout, and even if it was, we might be called from the
QObject destructor so we would not be a layout anymore.
Instead we can just qobject_cast the deleted object to a QLayout and
remove it from the layout with removeItem.
This would not take in account the case where we would be called because
the QLayout gets destroyed, so we handle this case from ~QLayout by
removing ourself from the parent.
Note that the comment in ~QLayout was wrong, as the layout gets destroyed
explicitly from ~QWidget, not from ~QObject.
Change-Id: I49c6f17a76f207b9d750b6e5d987469498b96b31
Reviewed-by: Marc Mutz <[email protected]>
|
| |
|
|
|
|
| |
Change-Id: I58573d769897c956144604d51d38cad1c121f751
Reviewed-by: Tasuku Suzuki <[email protected]>
Reviewed-by: Paul Olav Tvete <[email protected]>
|
| |
|
|
|
|
| |
Change-Id: Ic8dc0aee7f3fc0d8218ba709352b1378078c6070
Reviewed-by: Oswald Buddenhagen <[email protected]>
Reviewed-by: Lars Knoll <[email protected]>
|
| |\
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
mkspecs/features/uikit/xcodebuild.mk
tests/auto/other/lancelot/tst_lancelot.cpp
tests/auto/widgets/widgets/qmdisubwindow/tst_qmdisubwindow.cpp
tests/auto/widgets/widgets/qmenubar/tst_qmenubar.cpp
Change-Id: Ia0ae2de86094120281abd445138877c2cc3e882c
|
| | |\
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/widgets/dialogs/qcolordialog.cpp
src/widgets/dialogs/qfiledialog.cpp
tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp
Change-Id: I34bc8a990f8f526889a95a5c7099ef557b9681ad
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Found by UBSan:
qlayout.cpp:612:50: runtime error: downcast of address 0x7ffcd4c39a70 which does not point to an object of type 'QWidget'
0x7ffcd4c39a70: note: object is of type 'QObject'
00 00 00 00 b0 43 4c 7b f5 2a 00 00 70 c9 28 02 00 00 00 00 08 93 9a 77 f5 2a 00 00 00 00 c3 d4
^~~~~~~~~~~~~~~~~~~~~~~
vptr for 'QObject'
#0 0x2af56f189960 in QLayout::widgetEvent(QEvent*) qlayout.cpp:612
#1 0x2af56f037660 in QApplicationPrivate::notify_helper(QObject*, QEvent*) qapplication.cpp:3732
#2 0x2af56f06ae5b in QApplication::notify(QObject*, QEvent*) qapplication.cpp:3704
#3 0x2af57989e383 in QCoreApplication::notifyInternal2(QObject*, QEvent*) qcoreapplication.cpp:988
#4 0x2af5799c1696 in QCoreApplication::sendEvent(QObject*, QEvent*) qcoreapplication.h:231
#5 0x2af5799c1696 in QObjectPrivate::setParent_helper(QObject*) qobject.cpp:2043
#6 0x2af5799c4823 in QObject::~QObject() qobject.cpp:1095
#7 0x2af56f2d205d in QWidget::~QWidget() qwidget.cpp:1549
#8 0x2af56f9c1366 in QFrame::~QFrame() qframe.cpp:262
#9 0x2af56f9e76cb in QLabel::~QLabel() qlabel.cpp:247
#10 0x458077 in tst_QStyleSheetStyle::emptyStyleSheet() tst_qstylesheetstyle.cpp:1400
Fix by not casting at all (or, to be precise, casting implicitly up
instead of explicitly down).
Change-Id: Ic19fd29e0cabd1aee5b1c93ca4c0fc70bc7a5927
Reviewed-by: Thiago Macieira <[email protected]>
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
It doesn't allocate memory, so cannot throw and is a lot faster
than qgetenv().
Change-Id: I355cd4ce9d0e1a56f1b40a340953d6a4b4a58629
Reviewed-by: hjk <[email protected]>
|
| |/ /
| |
| |
| |
| |
| |
| |
| |
| | |
Remove Windows CE-specific files, #ifdef sections for Q_OS_WINCE and wince
.pro file clauses in library, examples and tests.
Task-number: QTBUG-51673
Change-Id: I102745aaca9d9737f2108fe7618111743d5ae980
Reviewed-by: Marc Mutz <[email protected]>
|
| |\|
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/widgets/styles/qgtkstyle_p.cpp
tests/auto/corelib/io/qtextstream/test/test.pro
tests/auto/corelib/plugin/plugin.pro
Change-Id: I512bc1b36acf3933ed2b96c00f476ee3819c1f4b
|
| | |
| |
| |
| |
| |
| |
| |
| | |
A very simple way to save ~3KiB in test size and 440b in
data size on GCC 5.3 Linux AMD64 release builds.
Change-Id: I6619148cc497116b9772a00e1bc30d573a2b2534
Reviewed-by: Olivier Goffart (Woboq GmbH) <[email protected]>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
From Qt 5.7 -> LGPL v2.1 isn't an option anymore, see
http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/
Updated license headers to use new LGPL header instead of LGPL21 one
(in those files which will be under LGPL v3)
Change-Id: I046ec3e47b1876cd7b4b0353a576b352e3a946d9
Reviewed-by: Lars Knoll <[email protected]>
|