diff options
author | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2018-12-15 03:03:05 +0100 |
---|---|---|
committer | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2018-12-15 03:03:05 +0100 |
commit | d8f3fb7438bbbe0b807b124f26fe3204ce50c1ec (patch) | |
tree | 0a08a13c7e6aeed42fa26f2825ddd317a1f2470d /src | |
parent | 9c3f0688a549c0e57c08d4715b277e05e35849d9 (diff) | |
parent | 5e2dfd09b3ace43c2f3dc75c56933c7c723b50fb (diff) | |
download | qtquickcontrols-d8f3fb7438bbbe0b807b124f26fe3204ce50c1ec.tar.gz |
Merge remote-tracking branch 'origin/5.12' into dev
Change-Id: Ia98756445b50decfd50f6bdeb94a004fa90d3a05
Diffstat (limited to 'src')
-rw-r--r-- | src/controls/Private/qquickcontrolsettings.cpp | 2 | ||||
-rw-r--r-- | src/controls/Private/qquicktreemodeladaptor.cpp | 13 | ||||
-rw-r--r-- | src/controls/Styles/styles.pri | 3 | ||||
-rw-r--r-- | src/controls/controls.pro | 1 | ||||
-rw-r--r-- | src/controls/doc/qtquickcontrols1.qdocconf | 4 | ||||
-rw-r--r-- | src/controls/plugin.cpp | 49 |
6 files changed, 65 insertions, 7 deletions
diff --git a/src/controls/Private/qquickcontrolsettings.cpp b/src/controls/Private/qquickcontrolsettings.cpp index 95c656b2..d06f931a 100644 --- a/src/controls/Private/qquickcontrolsettings.cpp +++ b/src/controls/Private/qquickcontrolsettings.cpp @@ -161,7 +161,7 @@ QQmlComponent *QQuickControlSettings1::styleComponent(const QUrl &styleDirUrl, c styleFileUrl = makeStyleComponentUrl(controlStyleName, m_styleMap.value(QStringLiteral("Base")).m_styleDirPath); } - return new QQmlComponent(qmlEngine(control), styleFileUrl); + return new QQmlComponent(qmlEngine(control), styleFileUrl, this); } static QString relativeStyleImportPath(QQmlEngine *engine, const QString &styleName) diff --git a/src/controls/Private/qquicktreemodeladaptor.cpp b/src/controls/Private/qquicktreemodeladaptor.cpp index 495abc9c..287b388f 100644 --- a/src/controls/Private/qquicktreemodeladaptor.cpp +++ b/src/controls/Private/qquicktreemodeladaptor.cpp @@ -283,6 +283,8 @@ QItemSelection QQuickTreeModelAdaptor1::selectionForRowRange(const QModelIndex return QItemSelection(); return QItemSelection(toIndex, toIndex); } + + to = qMax(to, 0); if (from > to) qSwap(from, to); @@ -360,8 +362,15 @@ void QQuickTreeModelAdaptor1::showModelChildItems(const TreeItem &parentItem, in if (start == 0) { startIdx = rowIdx; } else { - const QModelIndex &prevSiblingIdx = m_model->index(start - 1, 0, parentIndex); - startIdx = lastChildIndex(prevSiblingIdx) + 1; + // Prefer to insert before next sibling instead of after last child of previous, as + // the latter is potentially buggy, see QTBUG-66062 + const QModelIndex &nextSiblingIdx = m_model->index(end + 1, 0, parentIndex); + if (nextSiblingIdx.isValid()) { + startIdx = itemIndex(nextSiblingIdx); + } else { + const QModelIndex &prevSiblingIdx = m_model->index(start - 1, 0, parentIndex); + startIdx = lastChildIndex(prevSiblingIdx) + 1; + } } int rowDepth = rowIdx == 0 ? 0 : parentItem.depth + 1; diff --git a/src/controls/Styles/styles.pri b/src/controls/Styles/styles.pri index 67c1ab76..c29cebfd 100644 --- a/src/controls/Styles/styles.pri +++ b/src/controls/Styles/styles.pri @@ -108,6 +108,7 @@ STYLES_QML_FILES += \ $$PWD/Base/images/knob.png \ $$PWD/Base/images/needle.png -STYLES_QML_FILES += $$PWD/qmldir +AUX_QML_FILES += $$PWD/qmldir +static: QML_FILES += $$AUX_QML_FILES ios:static: include(iOS/iOS.pri) !qtquickcompiler|static: QML_FILES += $$STYLES_QML_FILES diff --git a/src/controls/controls.pro b/src/controls/controls.pro index 75871bf0..3119d33d 100644 --- a/src/controls/controls.pro +++ b/src/controls/controls.pro @@ -45,6 +45,7 @@ qtquickcompiler { } else { QML_FILES += $$CONTROLS_QML_FILES !static: CONFIG += qmlcache + else: CONTROLS_QML_FILES += qmldir } SOURCES += $$PWD/plugin.cpp diff --git a/src/controls/doc/qtquickcontrols1.qdocconf b/src/controls/doc/qtquickcontrols1.qdocconf index 29a01ae2..d2ea0c47 100644 --- a/src/controls/doc/qtquickcontrols1.qdocconf +++ b/src/controls/doc/qtquickcontrols1.qdocconf @@ -69,7 +69,9 @@ excludefiles += ../TableView.qml \ excludedirs += ../Styles/Desktop \ ../Styles/Android \ - ../Styles/iOS + ../Styles/iOS \ + ../Styles/WinRT + imagedirs += images \ ../../extras/doc/images diff --git a/src/controls/plugin.cpp b/src/controls/plugin.cpp index 8aca0c49..82eef800 100644 --- a/src/controls/plugin.cpp +++ b/src/controls/plugin.cpp @@ -73,10 +73,12 @@ QT_BEGIN_NAMESPACE -static const struct { +struct QmldirStruct { const char *type; int major, minor; -} qmldir [] = { +}; + +static const QmldirStruct qmldir [] = { { "ApplicationWindow", 1, 0 }, { "Button", 1, 0 }, { "Calendar", 1, 2 }, @@ -119,6 +121,43 @@ static const struct { { "Slider", 1, 6 } }; +static const QmldirStruct stylesQmldir [] = { + { "ApplicationWindowStyle", 1, 3 }, + { "ButtonStyle", 1, 0 }, + { "BusyIndicatorStyle", 1, 1 }, + { "CalendarStyle", 1, 1 }, + { "CheckBoxStyle", 1, 0 }, + { "ComboBoxStyle", 1, 0 }, + { "MenuStyle", 1, 2 }, + { "MenuBarStyle", 1, 2 }, + { "ProgressBarStyle", 1, 0 }, + { "RadioButtonStyle", 1, 0 }, + { "ScrollViewStyle", 1, 0 }, + { "SliderStyle", 1, 0 }, + { "SpinBoxStyle", 1, 1 }, + { "SwitchStyle", 1, 1 }, + { "TabViewStyle", 1, 0 }, + { "TableViewStyle", 1, 0 }, + { "TreeViewStyle", 1, 4 }, + { "TextAreaStyle", 1, 1 }, + { "TextFieldStyle", 1, 0 }, + { "ToolBarStyle", 1, 0 }, + { "StatusBarStyle", 1, 0 }, + { "CircularGaugeStyle", 1, 0 }, + { "CircularButtonStyle", 1, 0 }, + { "CircularTickmarkLabelStyle", 1, 0 }, + { "CommonStyleHelper", 1, 0 }, + { "DelayButtonStyle", 1, 0 }, + { "DialStyle", 1, 1 }, + { "GaugeStyle", 1, 0 }, + { "HandleStyle", 1, 0 }, + { "HandleStyleHelper", 1, 0 }, + { "PieMenuStyle", 1, 3 }, + { "StatusIndicatorStyle", 1, 1 }, + { "ToggleButtonStyle", 1, 0 }, + { "TumblerStyle", 1, 2 } +}; + QtQuickControls1Plugin::QtQuickControls1Plugin(QObject *parent) : QQmlExtensionPlugin(parent) { } @@ -172,6 +211,12 @@ void QtQuickControls1Plugin::registerTypes(const char *uri) #ifdef QT_WIDGETS_LIB qmlRegisterType<QQuickStyleItem1>(private_uri, 1, 0, "StyleItem"); #endif + + const char *styles_uri = "QtQuick.Controls.Styles"; + const QString baseStyleLocation = filesLocation + "/Styles/Base"; + for (int i = 0; i < int(sizeof(stylesQmldir)/sizeof(stylesQmldir[0])); i++) + qmlRegisterType(QUrl(baseStyleLocation + "/" + stylesQmldir[i].type + ".qml"), styles_uri, + stylesQmldir[i].major, stylesQmldir[i].minor, stylesQmldir[i].type); } void QtQuickControls1Plugin::initializeEngine(QQmlEngine *engine, const char *uri) |