diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2018-02-01 12:05:58 +0100 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2018-02-01 12:06:09 +0100 |
commit | 72abc4e94764b4a5592a9d153ff9991fe66d7395 (patch) | |
tree | 0d9aab78fa7e6c320a225dd1c69ff80ac8baaa2f /src | |
parent | 3323ca8e627db560665edb667e52d52233c05601 (diff) | |
parent | a73307c58cde0a4503a43be94f3892745f68500e (diff) |
Merge remote-tracking branch 'origin/5.11' into dev
Change-Id: I2322df58ae8d6a222e5cd87d6d493b14dce8d505
Diffstat (limited to 'src')
6 files changed, 45 insertions, 3 deletions
diff --git a/src/imports/controls/doc/src/includes/qquickimaginestyle.qdocinc b/src/imports/controls/doc/src/includes/qquickimaginestyle.qdocinc index 8acec2a8..f6fe5a97 100644 --- a/src/imports/controls/doc/src/includes/qquickimaginestyle.qdocinc +++ b/src/imports/controls/doc/src/includes/qquickimaginestyle.qdocinc @@ -8,6 +8,21 @@ \li Specifies the \l {imagine-path-attached-prop}{path} to the directory that contains the Imagine style assets. If not specified, the built-in assets are used. + For example, to specify a path to a directory stored in the + \l {The Qt Resource System}{resource system}: + + \badcode + [Imagine] + Path=:/imagine-assets + \endcode + + To specify a relative path to a local directory: + + \badcode + [Imagine] + Path=imagine-assets + \endcode + \note Due to a technical limitation, the path should not be named \e "imagine" if it is relative to the \c qtquickcontrols2.conf file. \endtable @@ -23,6 +38,19 @@ \li Specifies the path to the directory that contains the Imagine style assets. If not specified, the built-in assets are used. + For example, to specify a path to a directory stored in the + \l {The Qt Resource System}{resource system}: + + \badcode + QT_QUICK_CONTROLS_IMAGINE_PATH=:/imagine-assets + \endcode + + To specify a relative path to a local directory: + + \badcode + QT_QUICK_CONTROLS_IMAGINE_PATH=imagine-assets + \endcode + \note Due to a technical limitation, the path should not be named \e "imagine" if it is relative to the \c qtquickcontrols2.conf file. \endtable diff --git a/src/imports/controls/doc/src/qtquickcontrols2-customize.qdoc b/src/imports/controls/doc/src/qtquickcontrols2-customize.qdoc index eed9ff94..3ab07ae2 100644 --- a/src/imports/controls/doc/src/qtquickcontrols2-customize.qdoc +++ b/src/imports/controls/doc/src/qtquickcontrols2-customize.qdoc @@ -122,6 +122,9 @@ their actual counterparts in the Qt Quick Controls 2 module. You can repeat this process for any control that you wish to add. + An added benefit of these three methods is that it's not necessary to + implement the template from scratch. + \section1 Creating a Custom Style There are several ways to go about creating your own styles. Below, we'll @@ -130,12 +133,19 @@ \section2 Definition of a Style In Qt Quick Controls 2, a style is essentially an interchangeable set of - QML files within a single directory. There are two requirements for a style + QML files within a single directory. There are three requirements for a style to be \l {Using Styles in Qt Quick Controls 2}{usable}: \list \li At least one QML file whose name matches a control (for example, \c Button.qml) must exist. + \li Each QML file must contain the relevant type from the \l {Qt Quick Templates 2} + {QtQuick.Templates} import as the root item. For example, + Button.qml must contain a Button template as its root item. + + If we instead used the corresponding type from the \l {Qt Quick Controls 2} + {QtQuick.Controls} import as we did in the previous section, it would not work: + the control we were defining would try to derive from itself. \li The files must be in a directory in the filesystem or in the \l {The Qt Resource System}{resource system}. diff --git a/src/imports/controls/doc/src/qtquickcontrols2-styles.qdoc b/src/imports/controls/doc/src/qtquickcontrols2-styles.qdoc index 21eca464..a1a74ec9 100644 --- a/src/imports/controls/doc/src/qtquickcontrols2-styles.qdoc +++ b/src/imports/controls/doc/src/qtquickcontrols2-styles.qdoc @@ -137,6 +137,7 @@ \li \l {Imagine Style} \li \l {Material Style} \li \l {Universal Style} + \li \l {Customizing Qt Quick Controls 2} \li \l {Using File Selectors with Qt Quick Controls 2} \li \l {Deploying Qt Quick Controls 2 Applications} \li \l {Qt Quick Controls 2 Configuration File} diff --git a/src/quicktemplates2/qquickcombobox.cpp b/src/quicktemplates2/qquickcombobox.cpp index f1e05b7e..b4d9bead 100644 --- a/src/quicktemplates2/qquickcombobox.cpp +++ b/src/quicktemplates2/qquickcombobox.cpp @@ -1647,9 +1647,9 @@ void QQuickComboBox::componentComplete() { Q_D(QQuickComboBox); d->executeIndicator(true); + QQuickControl::componentComplete(); if (d->popup) d->executePopup(true); - QQuickControl::componentComplete(); if (d->delegateModel && d->ownModel) static_cast<QQmlDelegateModel *>(d->delegateModel)->componentComplete(); diff --git a/src/quicktemplates2/qquickcontrol.cpp b/src/quicktemplates2/qquickcontrol.cpp index 9bb122fe..bb5bf668 100644 --- a/src/quicktemplates2/qquickcontrol.cpp +++ b/src/quicktemplates2/qquickcontrol.cpp @@ -1446,6 +1446,7 @@ void QQuickControl::componentComplete() d->executeBackground(true); d->executeContentItem(true); QQuickItem::componentComplete(); + d->resizeBackground(); d->resizeContent(); if (!d->hasLocale) d->locale = QQuickControlPrivate::calcLocale(d->parentItem); diff --git a/src/quicktemplates2/qquickshortcutcontext.cpp b/src/quicktemplates2/qquickshortcutcontext.cpp index b491cab2..e94de722 100644 --- a/src/quicktemplates2/qquickshortcutcontext.cpp +++ b/src/quicktemplates2/qquickshortcutcontext.cpp @@ -76,14 +76,16 @@ bool QQuickShortcutContext::matcher(QObject *obj, Qt::ShortcutContext context) return true; case Qt::WindowShortcut: while (obj && !obj->isWindowType()) { - obj = obj->parent(); item = qobject_cast<QQuickItem *>(obj); if (item) { obj = item->window(); + break; } else if (QQuickPopup *popup = qobject_cast<QQuickPopup *>(obj)) { obj = popup->window(); item = popup->popupItem(); + break; } + obj = obj->parent(); } if (QWindow *renderWindow = QQuickRenderControl::renderWindowFor(qobject_cast<QQuickWindow *>(obj))) obj = renderWindow; |