aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@qt.io>2017-10-22 22:18:32 +0200
committerJ-P Nurmi <jpnurmi@qt.io>2017-10-22 22:20:46 +0200
commitd1990ff285a8a265fc41d193179ce8fb6746f7b3 (patch)
treed4e78a873de079a04d2b4d64d81e4a4af84b3ae7 /src
parent309170a7f97759aa3f2e25a6c5202a6438a8bf4f (diff)
parent53c4bc2d1004fe963759b4009508bbc3e3fbca3e (diff)
Merge remote-tracking branch 'origin/5.9' into 5.10
Diffstat (limited to 'src')
-rw-r--r--src/imports/controls/doc/snippets/qtquickcontrols2-tooltip-slider.qml8
-rw-r--r--src/quicktemplates2/qquickcontainer.cpp40
-rw-r--r--src/quicktemplates2/qquickcontainer_p.h2
-rw-r--r--src/quicktemplates2/qquickcontainer_p_p.h1
-rw-r--r--src/quicktemplates2/qquickdialogbuttonbox.cpp4
-rw-r--r--src/quicktemplates2/qquicktooltip.cpp2
6 files changed, 40 insertions, 17 deletions
diff --git a/src/imports/controls/doc/snippets/qtquickcontrols2-tooltip-slider.qml b/src/imports/controls/doc/snippets/qtquickcontrols2-tooltip-slider.qml
index de872300..9e5d991a 100644
--- a/src/imports/controls/doc/snippets/qtquickcontrols2-tooltip-slider.qml
+++ b/src/imports/controls/doc/snippets/qtquickcontrols2-tooltip-slider.qml
@@ -1,7 +1,7 @@
/****************************************************************************
**
** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
+** Contact: https://www.qt.io/licensing/
**
** This file is part of the documentation of the Qt Toolkit.
**
@@ -11,8 +11,8 @@
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
**
** GNU Free Documentation License Usage
** Alternatively, this file may be used under the terms of the GNU Free
@@ -20,7 +20,7 @@
** Foundation and appearing in the file included in the packaging of
** this file. Please review the following information to ensure
** the GNU Free Documentation License version 1.3 requirements
-** will be met: http://www.gnu.org/copyleft/fdl.html.
+** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
** $QT_END_LICENSE$
**
****************************************************************************/
diff --git a/src/quicktemplates2/qquickcontainer.cpp b/src/quicktemplates2/qquickcontainer.cpp
index a62de655..07fe04d2 100644
--- a/src/quicktemplates2/qquickcontainer.cpp
+++ b/src/quicktemplates2/qquickcontainer.cpp
@@ -324,6 +324,24 @@ void QQuickContainerPrivate::removeItem(int index, QQuickItem *item)
updatingCurrent = false;
}
+void QQuickContainerPrivate::reorderItems()
+{
+ Q_Q(QQuickContainer);
+ if (!contentItem)
+ return;
+
+ QList<QQuickItem *> siblings = effectiveContentItem(contentItem)->childItems();
+
+ int to = 0;
+ for (int i = 0; i < siblings.count(); ++i) {
+ QQuickItem* sibling = siblings.at(i);
+ if (QQuickItemPrivate::get(sibling)->isTransparentForPositioner())
+ continue;
+ int index = contentModel->indexOf(sibling, nullptr);
+ q->moveItem(index, to++);
+ }
+}
+
void QQuickContainerPrivate::_q_currentIndexChanged()
{
Q_Q(QQuickContainer);
@@ -347,18 +365,11 @@ void QQuickContainerPrivate::itemParentChanged(QQuickItem *item, QQuickItem *par
void QQuickContainerPrivate::itemSiblingOrderChanged(QQuickItem *)
{
- // reorder the restacked items (eg. by a Repeater)
- Q_Q(QQuickContainer);
- QList<QQuickItem *> siblings = effectiveContentItem(contentItem)->childItems();
+ if (!componentComplete)
+ return;
- int to = 0;
- for (int i = 0; i < siblings.count(); ++i) {
- QQuickItem* sibling = siblings.at(i);
- if (QQuickItemPrivate::get(sibling)->isTransparentForPositioner())
- continue;
- int index = contentModel->indexOf(sibling, nullptr);
- q->moveItem(index, to++);
- }
+ // reorder the restacked items (eg. by a Repeater)
+ reorderItems();
}
void QQuickContainerPrivate::itemDestroyed(QQuickItem *item)
@@ -737,6 +748,13 @@ QQuickItem *QQuickContainer::currentItem() const
return itemAt(d->currentIndex);
}
+void QQuickContainer::componentComplete()
+{
+ Q_D(QQuickContainer);
+ QQuickControl::componentComplete();
+ d->reorderItems();
+}
+
void QQuickContainer::itemChange(ItemChange change, const ItemChangeData &data)
{
Q_D(QQuickContainer);
diff --git a/src/quicktemplates2/qquickcontainer_p.h b/src/quicktemplates2/qquickcontainer_p.h
index 5ac585c2..d8773684 100644
--- a/src/quicktemplates2/qquickcontainer_p.h
+++ b/src/quicktemplates2/qquickcontainer_p.h
@@ -100,6 +100,8 @@ Q_SIGNALS:
protected:
QQuickContainer(QQuickContainerPrivate &dd, QQuickItem *parent);
+ void componentComplete() override;
+
void itemChange(ItemChange change, const ItemChangeData &data) override;
void contentItemChange(QQuickItem *newItem, QQuickItem *oldItem) override;
diff --git a/src/quicktemplates2/qquickcontainer_p_p.h b/src/quicktemplates2/qquickcontainer_p_p.h
index 54fc5c60..7791b69c 100644
--- a/src/quicktemplates2/qquickcontainer_p_p.h
+++ b/src/quicktemplates2/qquickcontainer_p_p.h
@@ -74,6 +74,7 @@ public:
void insertItem(int index, QQuickItem *item);
void moveItem(int from, int to, QQuickItem *item);
void removeItem(int index, QQuickItem *item);
+ void reorderItems();
void _q_currentIndexChanged();
diff --git a/src/quicktemplates2/qquickdialogbuttonbox.cpp b/src/quicktemplates2/qquickdialogbuttonbox.cpp
index 7c2f17c4..45924139 100644
--- a/src/quicktemplates2/qquickdialogbuttonbox.cpp
+++ b/src/quicktemplates2/qquickdialogbuttonbox.cpp
@@ -238,8 +238,8 @@ void QQuickDialogButtonBoxPrivate::updateLayout()
const int valign = alignment & Qt::AlignVertical_Mask;
QVector<QQuickAbstractButton *> buttons;
- const qreal maxItemWidth = (contentItem->width() - qMax(0, count - 1) * spacing) / count;
- const qreal maxItemHeight = contentItem->height();
+ const qreal maxItemWidth = ((contentItem ? contentItem->width() : q->availableWidth()) - qMax(0, count - 1) * spacing) / count;
+ const qreal maxItemHeight = contentItem ? contentItem->height() : q->availableHeight();
for (int i = 0; i < count; ++i) {
QQuickItem *item = q->itemAt(i);
diff --git a/src/quicktemplates2/qquicktooltip.cpp b/src/quicktemplates2/qquicktooltip.cpp
index 1aeb9914..f0bc6ffc 100644
--- a/src/quicktemplates2/qquicktooltip.cpp
+++ b/src/quicktemplates2/qquicktooltip.cpp
@@ -36,6 +36,7 @@
#include "qquicktooltip_p.h"
#include "qquickpopup_p_p.h"
+#include "qquickpopupitem_p_p.h"
#include "qquickcontrol_p_p.h"
#include <QtCore/qbasictimer.h>
@@ -172,6 +173,7 @@ QQuickToolTip::QQuickToolTip(QQuickItem *parent)
Q_D(QQuickToolTip);
d->allowVerticalFlip = true;
d->allowHorizontalFlip = true;
+ d->popupItem->setHoverEnabled(false); // QTBUG-63644
}
/*!