summaryrefslogtreecommitdiffstats
path: root/src/widgets/kernel
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2018-10-25 07:21:05 +0200
committerLiang Qi <liang.qi@qt.io>2018-10-25 07:21:53 +0200
commite28e91ae99b8c3859899e04cc9370534c7c7b86d (patch)
treecca81b1e745be4f25aab78e8e917c2324594e539 /src/widgets/kernel
parent5ea233ca6782eb27adf596515cb66ef3dadc1d5e (diff)
parentebfad73b4e44fe6db8059200da105b4b87888718 (diff)
Merge remote-tracking branch 'origin/5.12' into dev
Conflicts: src/corelib/animation/qpropertyanimation.cpp src/gui/image/qicon.cpp tests/auto/widgets/itemviews/qtableview/tst_qtableview.cpp Change-Id: I3698172b7b44ebb487cb38f50fd2c4a9f8a35b21
Diffstat (limited to 'src/widgets/kernel')
-rw-r--r--src/widgets/kernel/qformlayout.cpp48
-rw-r--r--src/widgets/kernel/qtooltip.cpp17
-rw-r--r--src/widgets/kernel/qwidget.cpp23
-rw-r--r--src/widgets/kernel/qwidget_p.h1
4 files changed, 26 insertions, 63 deletions
diff --git a/src/widgets/kernel/qformlayout.cpp b/src/widgets/kernel/qformlayout.cpp
index 595ff3eb6e..66e8858e21 100644
--- a/src/widgets/kernel/qformlayout.cpp
+++ b/src/widgets/kernel/qformlayout.cpp
@@ -1435,13 +1435,7 @@ static void clearAndDestroyQLayoutItem(QLayoutItem *item)
up one row and the freed vertical space is redistributed amongst the remaining rows.
You can use this function to undo a previous addRow() or insertRow():
- \code
- QFormLayout *flay = ...;
- QPointer<QLineEdit> le = new QLineEdit;
- flay->insertRow(2, "User:", le);
- // later:
- flay->removeRow(2); // le == nullptr at this point
- \endcode
+ \snippet code/src_gui_kernel_qformlayout.cpp 3
If you want to remove the row from the layout without deleting the widgets, use takeRow() instead.
@@ -1467,13 +1461,7 @@ void QFormLayout::removeRow(int row)
up one row and the freed vertical space is redistributed amongst the remaining rows.
You can use this function to undo a previous addRow() or insertRow():
- \code
- QFormLayout *flay = ...;
- QPointer<QLineEdit> le = new QLineEdit;
- flay->insertRow(2, "User:", le);
- // later:
- flay->removeRow(le); // le == nullptr at this point
- \endcode
+ \snippet code/src_gui_kernel_qformlayout.cpp 4
If you want to remove the row from the layout without deleting the widgets, use takeRow() instead.
@@ -1499,13 +1487,7 @@ void QFormLayout::removeRow(QWidget *widget)
up one row and the freed vertical space is redistributed amongst the remaining rows.
You can use this function to undo a previous addRow() or insertRow():
- \code
- QFormLayout *flay = ...;
- QPointer<QVBoxLayout> vbl = new QVBoxLayout;
- flay->insertRow(2, "User:", vbl);
- // later:
- flay->removeRow(layout); // vbl == nullptr at this point
- \endcode
+ \snippet code/src_gui_kernel_qformlayout.cpp 5
If you want to remove the row from the form layout without deleting the inserted layout,
use takeRow() instead.
@@ -1532,13 +1514,7 @@ void QFormLayout::removeRow(QLayout *layout)
up one row and the freed vertical space is redistributed amongst the remaining rows.
You can use this function to undo a previous addRow() or insertRow():
- \code
- QFormLayout *flay = ...;
- QPointer<QLineEdit> le = new QLineEdit;
- flay->insertRow(2, "User:", le);
- // later:
- QFormLayout::TakeRowResult result = flay->takeRow(2);
- \endcode
+ \snippet code/src_gui_kernel_qformlayout.cpp 6
If you want to remove the row from the layout and delete the widgets, use removeRow() instead.
@@ -1583,13 +1559,7 @@ QFormLayout::TakeRowResult QFormLayout::takeRow(int row)
After this call, rowCount() is decremented by one. All following rows are shifted
up one row and the freed vertical space is redistributed amongst the remaining rows.
- \code
- QFormLayout *flay = ...;
- QPointer<QLineEdit> le = new QLineEdit;
- flay->insertRow(2, "User:", le);
- // later:
- QFormLayout::TakeRowResult result = flay->takeRow(widget);
- \endcode
+ \snippet code/src_gui_kernel_qformlayout.cpp 7
If you want to remove the row from the layout and delete the widgets, use removeRow() instead.
@@ -1628,13 +1598,7 @@ QFormLayout::TakeRowResult QFormLayout::takeRow(QWidget *widget)
After this call, rowCount() is decremented by one. All following rows are shifted
up one row and the freed vertical space is redistributed amongst the remaining rows.
- \code
- QFormLayout *flay = ...;
- QPointer<QVBoxLayout> vbl = new QVBoxLayout;
- flay->insertRow(2, "User:", vbl);
- // later:
- QFormLayout::TakeRowResult result = flay->takeRow(widget);
- \endcode
+ \snippet code/src_gui_kernel_qformlayout.cpp 8
If you want to remove the row from the form layout and delete the inserted layout,
use removeRow() instead.
diff --git a/src/widgets/kernel/qtooltip.cpp b/src/widgets/kernel/qtooltip.cpp
index 8c5573d3a3..2e6575c163 100644
--- a/src/widgets/kernel/qtooltip.cpp
+++ b/src/widgets/kernel/qtooltip.cpp
@@ -229,12 +229,17 @@ void QTipLabel::updateSize(const QPoint &pos)
++extra.rheight();
QSize sh = sizeHint();
if (wordWrap()) {
- const QRect screenRect = QGuiApplication::screenAt(pos)->geometry();
- if (sh.width() > screenRect.width()) {
- // Try to use widely accepted 75chars max length or 80% of the screen width else.
- // See https://en.wikipedia.org/wiki/Line_length
- sh.setWidth(qMin(fm.averageCharWidth() * 75, static_cast<int>(screenRect.width() * .8)));
- sh.setHeight(heightForWidth(sh.width()));
+ QScreen *screen = QGuiApplication::screenAt(pos);
+ if (!screen)
+ screen = QGuiApplication::primaryScreen();
+ if (screen) {
+ const qreal screenWidth = screen->geometry().width();
+ if (sh.width() > screenWidth) {
+ // Try to use widely accepted 75chars max length or 80% of the screen width else.
+ // See https://en.wikipedia.org/wiki/Line_length
+ sh.setWidth(qMin(fm.averageCharWidth() * 75, static_cast<int>(screenWidth * .8)));
+ sh.setHeight(heightForWidth(sh.width()));
+ }
}
}
resize(sh + extra);
diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp
index ca4f958c14..1bca3fc119 100644
--- a/src/widgets/kernel/qwidget.cpp
+++ b/src/widgets/kernel/qwidget.cpp
@@ -1580,9 +1580,6 @@ QWidget::~QWidget()
d->gestureContext.clear();
#endif
- // force acceptDrops false before winId is destroyed.
- d->registerDropSite(false);
-
#ifndef QT_NO_ACTION
// remove all actions from this widget
for (int i = 0; i < d->actions.size(); ++i) {
@@ -3466,11 +3463,6 @@ void QWidget::setAcceptDrops(bool on)
}
-void QWidgetPrivate::registerDropSite(bool on)
-{
- Q_UNUSED(on);
-}
-
/*!
Disables widget input events if \a disable is true; otherwise
enables input events.
@@ -10099,20 +10091,24 @@ void QWidget::hideEvent(QHideEvent *)
which are passed in the \a message parameter.
In your reimplementation of this function, if you want to stop the
- event being handled by Qt, return true and set \a result.
- If you return false, this native event is passed back to Qt,
- which translates the event into a Qt event and sends it to the widget.
+ event being handled by Qt, return true and set \a result. The \a result
+ parameter has meaning only on Windows. If you return false, this native
+ event is passed back to Qt, which translates the event into a Qt event
+ and sends it to the widget.
- \note Events are only delivered to this event handler if the widget is
- has a native Window handle.
+ \note Events are only delivered to this event handler if the widget
+ has a native window handle.
\note This function superseedes the event filter functions
x11Event(), winEvent() and macEvent() of Qt 4.
+ \sa QAbstractNativeEventFilter
+
\table
\header \li Platform \li Event Type Identifier \li Message Type \li Result Type
\row \li Windows \li "windows_generic_MSG" \li MSG * \li LRESULT
\row \li macOS \li "NSEvent" \li NSEvent * \li
+ \row \li XCB \li "xcb_generic_event_t" \li xcb_generic_event_t * \li
\endtable
*/
@@ -11206,7 +11202,6 @@ void QWidget::setAttribute(Qt::WidgetAttribute attribute, bool on)
break;
}
case Qt::WA_DropSiteRegistered: {
- d->registerDropSite(on);
for (int i = 0; i < d->children.size(); ++i) {
QWidget *w = qobject_cast<QWidget *>(d->children.at(i));
if (w && !w->isWindow() && !w->testAttribute(Qt::WA_AcceptDrops) && w->testAttribute(Qt::WA_DropSiteRegistered) != on)
diff --git a/src/widgets/kernel/qwidget_p.h b/src/widgets/kernel/qwidget_p.h
index c8eaabf8e2..0c7a5b1944 100644
--- a/src/widgets/kernel/qwidget_p.h
+++ b/src/widgets/kernel/qwidget_p.h
@@ -484,7 +484,6 @@ public:
void _q_showIfNotHidden();
void setEnabled_helper(bool);
- void registerDropSite(bool);
static void adjustFlags(Qt::WindowFlags &flags, QWidget *w = 0);
void updateFrameStrut();