diff --git a/kirigami.qrc b/kirigami.qrc index a58f2652..cdd992ad 100644 --- a/kirigami.qrc +++ b/kirigami.qrc @@ -1,74 +1,75 @@ src/controls/AbstractApplicationWindow.qml src/controls/ContextDrawer.qml src/controls/Action.qml src/controls/Page.qml src/controls/PageRow.qml src/controls/AbstractListItem.qml src/controls/Theme.qml src/controls/AbstractCard.qml src/controls/templates/AbstractCard.qml src/controls/Card.qml src/controls/CardsLayout.qml src/controls/CardsListView.qml src/controls/CardsGridView.qml + src/controls/ActionToolBar.qml src/controls/templates/InlineMessage.qml src/controls/InlineMessage.qml src/controls/ToolBarApplicationHeader.qml src/controls/private/PrivateActionToolButton.qml src/controls/private/RefreshableScrollView.qml src/controls/private/SwipeItemEventFilter.qml src/controls/private/PageActionPropertyGroup.qml src/controls/private/ActionIconGroup.qml src/controls/private/CornerShadow.qml src/controls/private/ActionButton.qml src/controls/private/DefaultListItemBackground.qml src/controls/private/BannerImage.qml src/controls/private/BannerGroup.qml src/controls/private/EdgeShadow.qml src/controls/Separator.qml src/controls/OverlayDrawer.qml src/controls/OverlaySheet.qml src/controls/GlobalDrawer.qml src/controls/templates/AbstractListItem.qml src/controls/templates/private/MenuIcon.qml src/controls/templates/private/GenericDrawerIcon.qml src/controls/templates/private/PassiveNotification.qml src/controls/templates/private/ContextIcon.qml src/controls/templates/private/ScrollView.qml src/controls/templates/private/BackButton.qml src/controls/templates/private/IconPropertiesGroup.qml src/controls/templates/private/ForwardButton.qml src/controls/templates/OverlayDrawer.qml src/controls/templates/OverlaySheet.qml src/controls/templates/SwipeListItem.qml src/controls/templates/ApplicationHeader.qml src/controls/templates/AbstractApplicationHeader.qml src/controls/Units.qml src/controls/SwipeListItem.qml src/controls/ApplicationWindow.qml src/controls/AbstractApplicationItem.qml src/controls/ApplicationItem.qml src/controls/ApplicationHeader.qml src/controls/Heading.qml src/controls/ScrollablePage.qml src/controls/Label.qml src/controls/BasicListItem.qml src/controls/AbstractApplicationHeader.qml src/controls/FormLayout.qml src/controls/ListItemDragHandle.qml src/styles/Material/AbstractListItem.qml src/styles/Material/Theme.qml src/styles/Material/SwipeListItem.qml src/styles/Material/Label.qml src/styles/org.kde.desktop/AbstractListItem.qml src/styles/org.kde.desktop/Theme.qml src/styles/org.kde.desktop/OverlayDrawer.qml src/styles/org.kde.desktop/Units.qml src/styles/org.kde.desktop/SwipeListItem.qml src/styles/org.kde.desktop/ApplicationWindow.qml src/styles/org.kde.desktop/AbstractApplicationHeader.qml src/controls/templates/FormLayout.qml diff --git a/src/controls/ActionToolBar.qml b/src/controls/ActionToolBar.qml new file mode 100644 index 00000000..243644d3 --- /dev/null +++ b/src/controls/ActionToolBar.qml @@ -0,0 +1,151 @@ +/* + * Copyright 2018 Marco Martin + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Library General Public License as + * published by the Free Software Foundation; either version 2, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Library General Public License for more details + * + * You should have received a copy of the GNU Library General Public + * License along with this program; if not, write to the + * Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +import QtQuick 2.6 +import QtQuick.Layouts 1.2 +import QtQuick.Controls 2.0 as Controls +import org.kde.kirigami 2.5 as Kirigami +import "private" + +/** + * This is a simple toolbar built out of a list of actions + * each action is represented by a ToolButton, those that won't fit + * the size will go in a menu under a button with the overflow ... icon + * + * @inherits Item + * @since 2.5 + */ +Item { + id: root + /** + * actions: list + * if the card should provide clickable actions, put them in this property, + * they will be put in the footer as a list of ToolButtons plus an optional + * overflow menu, when not all of them will fit in the available Card width. + */ + property list actions + + /** + * flat: bool + * Wether we want our buttons to have a flat appearance. Default: true + */ + property bool flat: true + + implicitHeight: actionsLayout.implicitHeight + + implicitWidth: { + var width = 0; + for (var i = 0; i < actionsLayout.children.length; ++i) { + if (actionsLayout.children[i].kirigamiAction && actionsLayout.children[i].kirigamiAction.visible) { + width += actionsLayout.children[i].implicitWidth + actionsLayout.spacing; + } + } + width += moreButton.width; + return width; + } + + RowLayout { + id: actionsLayout + anchors.fill: parent + //anchors.rightMargin: moreButton.width + + spacing: Kirigami.Units.smallSpacing + property var overflowSet: [] + + // TODO use Array.findIndex once we depend on Qt 5.9 + function findIndex(array, cb) { + for (var i = 0, length = array.length; i < length; ++i) { + if (cb(array[i])) { + return i; + } + } + return -1; + } + + Repeater { + model: root.actions + delegate: PrivateActionToolButton { + id: actionDelegate + flat: root.flat + readonly property bool fits: { + var minX = 0; + for (var i = 0; i < index; ++i) { + if (actionsLayout.children[i].visible) { + minX += actionsLayout.children[i].implicitWidth + actionsLayout.spacing; + } + } + return minX + implicitWidth < actionsLayout.width - moreButton.width + } + + visible: modelData.visible && fits + Layout.fillWidth: true + Layout.alignment: Qt.AlignVCenter + Layout.minimumWidth: implicitWidth + kirigamiAction: modelData + onFitsChanged: updateOverflowSet() + function updateOverflowSet() { + var index = actionsLayout.findIndex(actionsLayout.overflowSet, function(act) { + return act == modelData}); + + if ((fits || !modelData.visible) && index > -1) { + actionsLayout.overflowSet.splice(index, 1); + } else if (!fits && modelData.visible && index == -1) { + actionsLayout.overflowSet.push(modelData); + } + actionsLayout.overflowSetChanged(); + } + Connections { + target: modelData + onVisibleChanged: actionDelegate.updateOverflowSet(); + } + Component.onCompleted: { + actionDelegate.updateOverflowSet(); + } + } + } + Controls.ToolButton { + id: moreButton + + Layout.alignment: Qt.AlignRight + Kirigami.Icon { + anchors.fill: parent + source: "overflow-menu" + anchors.margins: 4 + } + + //checkable: true + checked: menu.visible + visible: actionsLayout.overflowSet.length > 0; + onClicked: menu.visible ? menu.close() : menu.open() + + ActionsMenu { + id: menu + y: -height + x: -width + moreButton.width + actions: root.actions + submenuComponent: Component { + ActionsMenu {} + } + itemDelegate: ActionMenuItem { + visible: actionsLayout.findIndex(actionsLayout.overflowSet, function(act) {return act == ourAction}) > -1 && (ourAction.visible == undefined || ourAction.visible) + } + } + } + } +} diff --git a/src/controls/Card.qml b/src/controls/Card.qml index d234868b..46cfdf4d 100644 --- a/src/controls/Card.qml +++ b/src/controls/Card.qml @@ -1,193 +1,104 @@ /* * Copyright 2018 Marco Martin * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Library General Public License as * published by the Free Software Foundation; either version 2, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details * * You should have received a copy of the GNU Library General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ import QtQuick 2.6 import QtQuick.Layouts 1.2 import QtQuick.Controls 2.0 as Controls -import org.kde.kirigami 2.4 as Kirigami +import org.kde.kirigami 2.5 as Kirigami import "private" /** * This is the standard layout of a Card. * It is recomended to use this class when the concept of Cards is needed * in the application. * This Card has default items as header and footer. The header is an * image that can contain an optional title and icon, accessible via the * banner grouped property. * The footer will show a series of toolbuttons (and eventual overflow menu) * represewnting the actions list accessible with the list property actions. * It is possible even tough is discouraged to override the footer: * in this case the actions property shouldn't be used. * * @inherits AbstractCard * @since 2.4 */ Kirigami.AbstractCard { id: root /** * actions: list * if the card should provide clickable actions, put them in this property, * they will be put in the footer as a list of ToolButtons plus an optional * overflow menu, when not all of them will fit in the available Card width. */ property list actions /** * banner: grouped * Gropuped property to control the banner image present in the header, it * has the following sub properties: * * url imageSource: the source for the image, it understands any url * valid for an Image component * * string title: the title for the banner, shown as contrasting * text over the image * * Qt.Alignment titleAlignment: the alignment of the title inside the image, * a combination of flags is supported * (default: Qt.AlignTop | Qt.AlignLeft) * * string iconSource: the optional icon to put in the banner: * it can be either a freedesktop-compatible icon name (recommended) * or any url supported by Image * * Image.FillMode fillMode: see the fillMode property of the Image component (default: Image.PreserveAspectCrop) */ readonly property alias banner: bannerGroup header: BannerImage { id: bannerImage BannerGroup { id: bannerGroup } anchors.leftMargin: -root.leftPadding anchors.topMargin: -root.topPadding anchors.rightMargin: root.headerOrientation == Qt.Vertical ? -root.rightPadding : 0 anchors.bottomMargin: root.headerOrientation == Qt.Horizontal ? -root.bottomPadding : 0 title: bannerGroup.title source: bannerGroup.imageSource titleAlignment: bannerGroup.titleAlignment titleIcon: bannerGroup.iconSource fillMode: bannerGroup.fillMode height: Layout.preferredHeight } onHeaderChanged: { if (!header) { return; } header.anchors.leftMargin = Qt.binding(function() {return -root.leftPadding}); header.anchors.topMargin = Qt.binding(function() {return -root.topPadding}); header.anchors.rightMargin = Qt.binding(function() {return root.headerOrientation == Qt.Vertical ? -root.rightPadding : 0}); header.anchors.bottomMargin = Qt.binding(function() {return root.headerOrientation == Qt.Horizontal ? -root.bottomPadding : 0}); } - footer: RowLayout { - id: actionsLayout - spacing: Kirigami.Units.smallSpacing - property var overflowSet: [] - visible: root.footer == actionsLayout - - // TODO use Array.findIndex once we depend on Qt 5.9 - function findIndex(array, cb) { - for (var i = 0, length = array.length; i < length; ++i) { - if (cb(array[i])) { - return i; - } - } - return -1; - } - - Repeater { - model: root.actions - delegate: PrivateActionToolButton { - id: actionDelegate - readonly property bool fits: { - var minX = 0; - for (var i = 0; i < index; ++i) { - if (actionsLayout.children[i].visible) { - minX += actionsLayout.children[i].implicitWidth + actionsLayout.spacing; - } - } - return minX + implicitWidth < root.width - root.leftPadding - root.rightPadding - moreButton.width; - } - visible: modelData.visible && fits - Layout.fillWidth: true - Layout.minimumWidth: implicitWidth - kirigamiAction: modelData - onFitsChanged: updateOverflowSet() - function updateOverflowSet() { - var index = actionsLayout.findIndex(actionsLayout.overflowSet, function(act){ - return act == modelData}); - - if ((fits || !modelData.visible) && index > -1) { - actionsLayout.overflowSet.splice(index, 1); - } else if (!fits && modelData.visible && index == -1) { - actionsLayout.overflowSet.push(modelData); - } - actionsLayout.overflowSetChanged(); - } - Connections { - target: modelData - onVisibleChanged: actionDelegate.updateOverflowSet(); - } - Component.onCompleted: { - actionDelegate.updateOverflowSet(); - } - } - } - Controls.ToolButton { - id: moreButton - - Kirigami.Icon { - anchors.fill: parent - source: "overflow-menu" - anchors.margins: 4 - } - Layout.alignment: Qt.AlignRight - //checkable: true - checked: menu.visible - visible: actionsLayout.overflowSet.length > 0; - onClicked: menu.visible ? menu.close() : menu.open() - - Controls.Menu { - id: menu - y: -height - x: -width + moreButton.width - - Repeater { - model: root.actions - delegate: BasicListItem { - text: modelData ? modelData.text : "" - icon: modelData.icon - checkable: modelData.checkable - checked: modelData.checked - onClicked: { - modelData.trigger(); - menu.visible = false; - } - separatorVisible: false - backgroundColor: "transparent" - visible: actionsLayout.findIndex(actionsLayout.overflowSet, function(act) { - return act == modelData}) > -1 && modelData.visible - enabled: modelData.enabled - } - } - } - } + footer: Kirigami.ActionToolBar { + id: actionsToolBar + actions: root.actions + visible: root.footer == actionsToolBar } } diff --git a/src/controls/InlineMessage.qml b/src/controls/InlineMessage.qml index cf638a07..2e0ca6f9 100644 --- a/src/controls/InlineMessage.qml +++ b/src/controls/InlineMessage.qml @@ -1,412 +1,300 @@ /* * Copyright 2018 Eike Hein * Copyright 2018 Marco Martin * Copyright 2018 Kai Uwe Broulik * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Library General Public License as * published by the Free Software Foundation; either version 2, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details * * You should have received a copy of the GNU Library General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 2.010-1301, USA. */ import QtQuick 2.7 import QtGraphicalEffects 1.0 import QtQuick.Layouts 1.0 import QtQuick.Controls 2.0 as Controls -import org.kde.kirigami 2.4 as Kirigami +import org.kde.kirigami 2.5 as Kirigami import "private" import "templates" as T /** * An inline message item with support for informational, positive, * warning and error types, and with support for associated actions. * * InlineMessage can be used to give information to the user or * interact with the user, without requiring the use of a dialog. * * The InlineMessage item is hidden by default. It also manages its * height (and implicitHeight) during an animated reveal when shown. * You should avoid setting height on an InlineMessage unless it is * already visible. * * Optionally an icon can be set, defaulting to an icon appropriate * to the message type otherwise. * * Optionally a close button can be shown. * * Actions are added from left to right. If more actions are set than * can fit, an overflow menu is provided. * * Example: * @code * InlineMessage { * type: Kirigami.MessageType.Error * * text: "My error message" * * actions: [ * Kirigami.Action { * iconName: "edit" * text: "Action text" * onTriggered: { * // do stuff * } * }, * Kirigami.Action { * iconName: "edit" * text: "Action text" * onTriggered: { * // do stuff * } * } * ] * } * @endcode * * @since 5.45 */ T.InlineMessage { id: root implicitHeight: visible ? contentLayout.implicitHeight + (2 * (background.border.width + Kirigami.Units.smallSpacing)) : 0 property bool _animating: false Behavior on implicitHeight { enabled: !root.visible SequentialAnimation { PropertyAction { targets: root; property: "_animating"; value: true } NumberAnimation { duration: Kirigami.Units.longDuration } } } onVisibleChanged: { if (!visible) { contentLayout.opacity = 0.0; } } opacity: visible ? 1.0 : 0.0 Behavior on opacity { enabled: !root.visible NumberAnimation { duration: Kirigami.Units.shortDuration } } onOpacityChanged: { if (opacity == 0.0) { contentLayout.opacity = 0.0; } else if (opacity == 1.0) { contentLayout.opacity = 1.0; } } onImplicitHeightChanged: { height = implicitHeight; } background: Rectangle { id: bgBorderRect color: { if (root.type == Kirigami.MessageType.Positive) { return Kirigami.Theme.positiveTextColor; } else if (root.type == Kirigami.MessageType.Warning) { return Kirigami.Theme.neutralTextColor; } else if (root.type == Kirigami.MessageType.Error) { return Kirigami.Theme.negativeTextColor; } return Kirigami.Theme.activeTextColor; } radius: Kirigami.Units.smallSpacing / 2 Rectangle { id: bgFillRect anchors.fill: parent anchors.margins: Kirigami.Units.devicePixelRatio color: Kirigami.Theme.backgroundColor radius: bgBorderRect.radius * 0.60 } Rectangle { anchors.fill: bgFillRect color: bgBorderRect.color opacity: 0.20 radius: bgFillRect.radius } layer.enabled: true layer.effect: DropShadow { horizontalOffset: 0 verticalOffset: 1 radius: 12 samples: 32 color: Qt.rgba(0, 0, 0, 0.5) } } GridLayout { id: contentLayout x: background.border.width + Kirigami.Units.smallSpacing y: background.border.width + Kirigami.Units.smallSpacing width: parent.width - (2 * (background.border.width + Kirigami.Units.smallSpacing)) // Used to defer opacity animation until we know if InlineMessage was // initialized visible. property bool complete: false Behavior on opacity { enabled: root.visible && contentLayout.complete SequentialAnimation { NumberAnimation { duration: Kirigami.Units.shortDuration * 2 } PropertyAction { targets: root; property: "_animating"; value: false } } } rowSpacing: Kirigami.Units.largeSpacing columnSpacing: Kirigami.Units.smallSpacing Kirigami.Icon { id: icon width: Kirigami.Units.iconSizes.smallMedium height: width Layout.alignment: text.lineCount > 1 ? Qt.AlignTop : Qt.AlignVCenter Layout.minimumWidth: width Layout.minimumHeight: height source: { if (root.icon.source) { return root.icon.source; } if (root.type == Kirigami.MessageType.Positive) { return "dialog-positive"; } else if (root.type == Kirigami.MessageType.Warning) { return "dialog-warning"; } else if (root.type == Kirigami.MessageType.Error) { return "dialog-error"; } return "dialog-information"; } color: root.icon.color } MouseArea { implicitHeight: text.implicitHeight Layout.fillWidth: true Layout.alignment: text.lineCount > 1 ? Qt.AlignTop : Qt.AlignVCenter Layout.row: 0 Layout.column: 1 cursorShape: text.hoveredLink ? Qt.PointingHandCursor : Qt.ArrowCursor Controls.Label { id: text width: parent.width color: Kirigami.Theme.textColor wrapMode: Text.WordWrap elide: Text.ElideRight text: root.text onLinkHovered: root.linkHovered(link) onLinkActivated: root.linkActivated(link) } } - RowLayout { + Kirigami.ActionToolBar { id: actionsLayout + flat: false + actions: root.actions visible: root.actions.length Layout.alignment: Qt.AlignRight - Layout.fillWidth: true Layout.row: { if (messageTextMetrics.width + Kirigami.Units.smallSpacing > (contentLayout.width - icon.width - actionsLayout.width - closeButton.width - (3 * contentLayout.columnSpacing))) { return 1; } return 0; } Layout.column: Layout.row ? 0 : 2 Layout.columnSpan: Layout.row ? (closeButton.visible ? 3 : 2) : 1 - property var overflowSet: [] - - spacing: Kirigami.Units.smallSpacing - - // TODO Use Array.findIndex once we depend on Qt 5.9+. - function findIndex(array, cb) { - for (var i = 0, length = array.length; i < length; ++i) { - if (cb(array[i])) { - return i; - } - } - return -1; - } - TextMetrics { id: messageTextMetrics font: text.font text: text.text } - - Repeater { - model: root.actions - - //TODO: use a normal button when we can depend from Qt 5.10 - delegate: PrivateActionToolButton { - id: actionButton - - flat: false - kirigamiAction: modelData - visible: modelData.visible && fits - - Layout.alignment: Qt.AlignVCenter - Layout.minimumWidth: implicitWidth - - readonly property bool fits: { - var minX = 0; - - for (var i = 0; i < index; ++i) { - if (actionsLayout.children[i].visible) { - minX += actionsLayout.children[i].implicitWidth + actionsLayout.spacing; - } - } - - return minX + implicitWidth < contentLayout.width - moreButton.width; - } - - onFitsChanged: updateOverflowSet() - - function updateOverflowSet() { - var index = actionsLayout.findIndex(actionsLayout.overflowSet, function(act){ - return act == modelData}); - - if ((fits || !modelData.visible) && index > -1) { - actionsLayout.overflowSet.splice(index, 1); - } else if (!fits && modelData.visible && index == -1) { - actionsLayout.overflowSet.push(modelData); - } - - actionsLayout.overflowSetChanged(); - } - - Connections { - target: modelData - - onVisibleChanged: actionButton.updateOverflowSet(); - } - - Component.onCompleted: updateOverflowSet(); - } - } - - Controls.ToolButton { - id: moreButton - - visible: actionsLayout.overflowSet.length > 0 - - checked: menu.visible - - onClicked: menu.visible ? menu.close() : menu.open() - - Kirigami.Icon { - anchors.fill: parent - source: "overflow-menu" - anchors.margins: 4 - } - - Controls.Menu { - id: menu - y: -height - x: -width + moreButton.width - - Repeater { - model: root.actions - - delegate: BasicListItem { - enabled: modelData.enabled - - checkable: modelData.checkable - checked: modelData.checked - - text: modelData ? modelData.text : "" - icon: modelData.icon - - onClicked: { - modelData.trigger(); - menu.visible = false; - } - - separatorVisible: false - - backgroundColor: "transparent" - - visible: actionsLayout.findIndex(actionsLayout.overflowSet, function(act) { - return act == modelData}) > -1 && modelData.visible - } - } - } - } } Controls.ToolButton { id: closeButton visible: root.showCloseButton Layout.alignment: text.lineCount > 1 || actionsLayout.Layout.row ? Qt.AlignTop : Qt.AlignVCenter Layout.row: 0 Layout.column: actionsLayout.Layout.row ? 2 : 3 //TODO: use toolbuttons icons when we can depend from Qt 5.10 Kirigami.Icon { anchors.centerIn: parent source: "dialog-close" width: Kirigami.Units.iconSizes.smallMedium height: width } onClicked: root.visible = false } Component.onCompleted: complete = true } } diff --git a/src/controls/plugins.qmltypes b/src/controls/plugins.qmltypes index c76ef09c..61eeb2a0 100644 --- a/src/controls/plugins.qmltypes +++ b/src/controls/plugins.qmltypes @@ -1,1365 +1,1969 @@ import QtQuick.tooling 1.2 // This file describes the plugin-supplied types contained in the library. // It is used for QML tooling purposes only. // // This file was auto-generated by: -// 'qmlplugindump -output plugins.qmltypes -qapp -noinstantiate org.kde.kirigami 2.4' +// 'qmlplugindump -noinstantiate -notrelocatable org.kde.kirigami 2.5 src' Module { dependencies: [ "QtGraphicalEffects 1.0", "QtQml 2.1", "QtQml.Models 2.2", "QtQuick 2.9", - "QtQuick.Controls 2.4", - "QtQuick.Controls.Material 2.4", - "QtQuick.Controls.Material.impl 2.4", + "QtQuick.Controls 2.3", + "QtQuick.Controls.Fusion 2.3", + "QtQuick.Controls.Fusion.impl 2.3", + "QtQuick.Controls.Imagine 2.3", + "QtQuick.Controls.Imagine.impl 2.3", + "QtQuick.Controls.Material 2.3", + "QtQuick.Controls.Material.impl 2.3", "QtQuick.Controls.Styles 1.4", "QtQuick.Controls.Styles.Plasma 2.0", - "QtQuick.Controls.impl 2.4", + "QtQuick.Controls.Universal 2.3", + "QtQuick.Controls.Universal.impl 2.3", + "QtQuick.Controls.impl 2.3", + "QtQuick.Extras 1.4", "QtQuick.Layouts 1.2", - "QtQuick.Templates 2.4", + "QtQuick.Templates 2.3", "QtQuick.Window 2.3", "org.kde.kconfig 1.0", "org.kde.kquickcontrolsaddons 2.0", "org.kde.plasma.components 2.0", "org.kde.plasma.core 2.0", "org.kde.plasma.extras 2.0" ] Component { name: "ApplicationHeaderStyle" prototype: "QObject" - exports: ["ApplicationHeaderStyle 2.0"] + exports: ["org.kde.kirigami/ApplicationHeaderStyle 2.0"] isCreatable: false exportMetaObjectRevisions: [0] Enum { name: "Status" values: { "Auto": 0, "Breadcrumb": 1, "Titles": 2, "TabBar": 3 } } } + Component { + name: "DelegateRecycler" + defaultProperty: "data" + prototype: "QQuickItem" + exports: ["org.kde.kirigami/DelegateRecycler 2.4"] + exportMetaObjectRevisions: [0] + Property { name: "sourceComponent"; type: "QQmlComponent"; isPointer: true } + } Component { name: "DesktopIcon" defaultProperty: "data" prototype: "QQuickItem" - exports: ["Icon 2.0"] + exports: ["org.kde.kirigami/Icon 2.0"] exportMetaObjectRevisions: [0] Property { name: "source"; type: "QVariant" } Property { name: "smooth"; type: "bool" } Property { name: "implicitWidth"; type: "int"; isReadonly: true } Property { name: "implicitHeight"; type: "int"; isReadonly: true } Property { name: "enabled"; type: "bool" } Property { name: "active"; type: "bool" } Property { name: "valid"; type: "bool"; isReadonly: true } Property { name: "selected"; type: "bool" } Property { name: "isMask"; type: "bool" } Property { name: "color"; type: "QColor" } } Component { name: "FormLayoutAttached" prototype: "QObject" - exports: ["FormData 2.3"] + exports: ["org.kde.kirigami/FormData 2.3"] isCreatable: false exportMetaObjectRevisions: [0] Property { name: "label"; type: "string" } Property { name: "isSection"; type: "bool" } - Property { name: "buddyFor"; type: "QQuickItem"; isReadonly: true; isPointer: true } + Property { name: "checkable"; type: "bool" } + Property { name: "checked"; type: "bool" } + Property { name: "enabled"; type: "bool" } + Property { name: "buddyFor"; type: "QQuickItem"; isPointer: true } } Component { name: "Kirigami::PlatformTheme" prototype: "QObject" - exports: ["Theme 2.2"] + exports: ["org.kde.kirigami/Theme 2.2"] isCreatable: false exportMetaObjectRevisions: [0] Enum { name: "ColorSet" values: { "View": 0, "Window": 1, "Button": 2, "Selection": 3, "Tooltip": 4, "Complementary": 5 } } Enum { name: "ColorGroup" values: { "Disabled": 1, "Active": 0, "Inactive": 2, "Normal": 0 } } Property { name: "colorSet"; type: "ColorSet" } Property { name: "colorGroup"; type: "ColorGroup" } Property { name: "inherit"; type: "bool" } - Property { name: "textColor"; type: "QColor"; isReadonly: true } - Property { name: "disabledTextColor"; type: "QColor"; isReadonly: true } - Property { name: "highlightedTextColor"; type: "QColor"; isReadonly: true } - Property { name: "activeTextColor"; type: "QColor"; isReadonly: true } - Property { name: "linkColor"; type: "QColor"; isReadonly: true } - Property { name: "visitedLinkColor"; type: "QColor"; isReadonly: true } - Property { name: "negativeTextColor"; type: "QColor"; isReadonly: true } - Property { name: "neutralTextColor"; type: "QColor"; isReadonly: true } - Property { name: "positiveTextColor"; type: "QColor"; isReadonly: true } - Property { name: "backgroundColor"; type: "QColor"; isReadonly: true } - Property { name: "highlightColor"; type: "QColor"; isReadonly: true } - Property { name: "focusColor"; type: "QColor"; isReadonly: true } - Property { name: "hoverColor"; type: "QColor"; isReadonly: true } + Property { name: "textColor"; type: "QColor" } + Property { name: "disabledTextColor"; type: "QColor" } + Property { name: "highlightedTextColor"; type: "QColor" } + Property { name: "activeTextColor"; type: "QColor" } + Property { name: "linkColor"; type: "QColor" } + Property { name: "visitedLinkColor"; type: "QColor" } + Property { name: "negativeTextColor"; type: "QColor" } + Property { name: "neutralTextColor"; type: "QColor" } + Property { name: "positiveTextColor"; type: "QColor" } + Property { name: "backgroundColor"; type: "QColor" } + Property { name: "highlightColor"; type: "QColor" } + Property { name: "focusColor"; type: "QColor" } + Property { name: "hoverColor"; type: "QColor" } Property { name: "defaultFont"; type: "QFont"; isReadonly: true } Property { name: "palette"; type: "QPalette"; isReadonly: true } Signal { name: "colorsChanged" } Signal { name: "defaultFontChanged" Parameter { name: "font"; type: "QFont" } } Signal { name: "colorSetChanged" Parameter { name: "colorSet"; type: "Kirigami::PlatformTheme::ColorSet" } } Signal { name: "colorGroupChanged" Parameter { name: "colorGroup"; type: "Kirigami::PlatformTheme::ColorGroup" } } Signal { name: "paletteChanged" Parameter { name: "pal"; type: "QPalette" } } Signal { name: "inheritChanged" Parameter { name: "inherit"; type: "bool" } } Method { name: "iconFromTheme" type: "QIcon" Parameter { name: "name"; type: "string" } Parameter { name: "customColor"; type: "QColor" } } Method { name: "iconFromTheme" type: "QIcon" Parameter { name: "name"; type: "string" } } } Component { name: "MessageType" prototype: "QObject" - exports: ["MessageType 2.4"] + exports: ["org.kde.kirigami/MessageType 2.4"] isCreatable: false exportMetaObjectRevisions: [0] Enum { name: "Type" values: { "Information": 0, "Positive": 1, "Warning": 2, "Error": 3 } } } Component { name: "MnemonicAttached" prototype: "QObject" - exports: ["MnemonicData 2.3"] + exports: ["org.kde.kirigami/MnemonicData 2.3"] isCreatable: false exportMetaObjectRevisions: [0] Enum { name: "ControlType" values: { "ActionElement": 0, "DialogButton": 1, "MenuItem": 2, "FormLabel": 3, "SecondaryControl": 4 } } Property { name: "label"; type: "string" } Property { name: "richTextLabel"; type: "string"; isReadonly: true } Property { name: "mnemonicLabel"; type: "string"; isReadonly: true } Property { name: "enabled"; type: "bool" } Property { name: "controlType"; type: "MnemonicAttached::ControlType" } Property { name: "sequence"; type: "QKeySequence"; isReadonly: true } } Component { name: "Settings" prototype: "QObject" - exports: ["Settings 2.0"] + exports: ["org.kde.kirigami/Settings 2.0"] isCreatable: false isSingleton: true exportMetaObjectRevisions: [0] + Property { name: "tabletModeAvailable"; type: "bool"; isReadonly: true } Property { name: "isMobile"; type: "bool"; isReadonly: true } + Property { name: "tabletMode"; type: "bool"; isReadonly: true } Property { name: "style"; type: "string"; isReadonly: true } Property { name: "mouseWheelScrollLines"; type: "int"; isReadonly: true } } Component { prototype: "QQuickItem" - name: "AbstractApplicationHeader 2.0" - exports: ["AbstractApplicationHeader 2.0"] + name: "org.kde.kirigami/AbstractApplicationHeader 2.0" + exports: ["org.kde.kirigami/AbstractApplicationHeader 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "contentItem" Property { name: "minimumHeight"; type: "int" } Property { name: "preferredHeight"; type: "int" } Property { name: "maximumHeight"; type: "int" } Property { name: "paintedHeight"; type: "int"; isReadonly: true } Property { name: "__appWindow"; type: "QObject"; isPointer: true } Property { name: "background"; type: "QQuickItem"; isPointer: true } Property { name: "contentItem"; type: "QObject"; isList: true; isReadonly: true } } Component { prototype: "QQuickItem" - name: "AbstractApplicationItem 2.1" - exports: ["AbstractApplicationItem 2.1"] + name: "org.kde.kirigami/AbstractApplicationItem 2.1" + exports: ["org.kde.kirigami/AbstractApplicationItem 2.1"] exportMetaObjectRevisions: [1] isComposite: true defaultProperty: "__data" Property { name: "pageStack"; type: "QQuickItem"; isPointer: true } Property { name: "activeFocusItem"; type: "QQuickItem"; isReadonly: true; isPointer: true } Property { name: "header"; type: "QQuickItem"; isPointer: true } Property { name: "footer"; type: "QQuickItem"; isPointer: true } Property { name: "controlsVisible"; type: "bool" } - Property { name: "globalDrawer"; type: "OverlayDrawer_QMLTYPE_6"; isPointer: true } + Property { name: "globalDrawer"; type: "OverlayDrawer_QMLTYPE_7"; isPointer: true } Property { name: "wideScreen"; type: "bool" } - Property { name: "contextDrawer"; type: "OverlayDrawer_QMLTYPE_6"; isPointer: true } + Property { name: "contextDrawer"; type: "OverlayDrawer_QMLTYPE_7"; isPointer: true } Property { name: "reachableMode"; type: "bool" } Property { name: "reachableModeEnabled"; type: "bool" } Property { name: "contentItem"; type: "QQuickItem"; isReadonly: true; isPointer: true } Property { name: "overlay"; type: "QQuickItem"; isReadonly: true; isPointer: true } Property { name: "__data"; type: "QObject"; isList: true; isReadonly: true } Method { name: "showPassiveNotification" type: "QVariant" Parameter { name: "message"; type: "QVariant" } Parameter { name: "timeout"; type: "QVariant" } Parameter { name: "actionText"; type: "QVariant" } Parameter { name: "callBack"; type: "QVariant" } } Method { name: "hidePassiveNotification"; type: "QVariant" } Method { name: "applicationWindow"; type: "QVariant" } } Component { prototype: "QQuickApplicationWindow" - name: "AbstractApplicationWindow 2.0" - exports: ["AbstractApplicationWindow 2.0"] + name: "org.kde.kirigami/AbstractApplicationWindow 2.0" + exports: ["org.kde.kirigami/AbstractApplicationWindow 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "contentData" Property { name: "pageStack"; type: "QQuickItem"; isPointer: true } Property { name: "controlsVisible"; type: "bool" } - Property { name: "globalDrawer"; type: "OverlayDrawer_QMLTYPE_6"; isPointer: true } + Property { name: "globalDrawer"; type: "OverlayDrawer_QMLTYPE_7"; isPointer: true } Property { name: "wideScreen"; type: "bool" } - Property { name: "contextDrawer"; type: "OverlayDrawer_QMLTYPE_6"; isPointer: true } + Property { name: "contextDrawer"; type: "OverlayDrawer_QMLTYPE_7"; isPointer: true } Property { name: "reachableMode"; type: "bool" } Property { name: "reachableModeEnabled"; type: "bool" } Method { name: "showPassiveNotification" type: "QVariant" Parameter { name: "message"; type: "QVariant" } Parameter { name: "timeout"; type: "QVariant" } Parameter { name: "actionText"; type: "QVariant" } Parameter { name: "callBack"; type: "QVariant" } } Method { name: "hidePassiveNotification"; type: "QVariant" } Method { name: "applicationWindow"; type: "QVariant" } } Component { prototype: "QQuickAbstractButton" name: "QtQuick.Controls/AbstractButton 2.0" exports: ["QtQuick.Controls/AbstractButton 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "data" } Component { prototype: "QQuickItemDelegate" - name: "AbstractCard 2.4" - exports: ["AbstractCard 2.4"] + name: "org.kde.kirigami/AbstractCard 2.4" + exports: ["org.kde.kirigami/AbstractCard 2.4"] exportMetaObjectRevisions: [4] isComposite: true defaultProperty: "data" Property { name: "header"; type: "QQuickItem"; isPointer: true } Property { name: "headerOrientation"; type: "int" } Property { name: "footer"; type: "QQuickItem"; isPointer: true } Property { name: "showClickFeedback"; type: "bool" } } Component { prototype: "QQuickControl" - name: "AbstractItemViewHeader 2.1" - exports: ["AbstractItemViewHeader 2.1"] + name: "org.kde.kirigami/AbstractItemViewHeader 2.1" + exports: ["org.kde.kirigami/AbstractItemViewHeader 2.1"] exportMetaObjectRevisions: [1] isComposite: true defaultProperty: "data" Property { name: "minimumHeight"; type: "int" } Property { name: "maximumHeight"; type: "int" } Property { name: "view"; type: "QQuickListView"; isPointer: true } } Component { prototype: "QQuickItemDelegate" - name: "AbstractListItem 2.0" - exports: ["AbstractListItem 2.0"] + name: "org.kde.kirigami/AbstractListItem 2.0" + exports: ["org.kde.kirigami/AbstractListItem 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "_default" Property { name: "supportsMouseEvents"; type: "bool" } Property { name: "sectionDelegate"; type: "bool" } Property { name: "separatorVisible"; type: "bool" } Property { name: "textColor"; type: "QColor" } Property { name: "backgroundColor"; type: "QColor" } Property { name: "activeTextColor"; type: "QColor" } Property { name: "activeBackgroundColor"; type: "QColor" } Property { name: "containsMouse"; type: "bool"; isReadonly: true } Property { name: "_default"; type: "QQuickItem"; isPointer: true } } Component { prototype: "QQuickAction" name: "QtQuick.Controls/Action 2.3" exports: ["QtQuick.Controls/Action 2.3"] exportMetaObjectRevisions: [3] isComposite: true } Component { prototype: "QObject" - name: "Action 2.0" - exports: ["Action 2.0"] + name: "org.kde.kirigami/Action 2.0" + exports: ["org.kde.kirigami/Action 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "children" Property { name: "visible"; type: "bool" } Property { name: "checkable"; type: "bool" } Property { name: "checked"; type: "bool" } Property { name: "enabled"; type: "bool" } Property { name: "icon"; type: "ActionIconGroup_QMLTYPE_35"; isPointer: true } Property { name: "text"; type: "string" } Property { name: "tooltip"; type: "string" } Property { name: "__children"; type: "QObject"; isList: true; isReadonly: true } Property { name: "__shortcut"; type: "QQuickShortcut"; isPointer: true } Property { name: "iconName"; type: "string" } Property { name: "iconSource"; type: "string" } Property { name: "shortcut"; type: "QVariant" } Property { name: "children"; type: "QObject"; isList: true; isReadonly: true } Signal { name: "toggled" Parameter { name: "checked"; type: "bool" } } Signal { name: "triggered" Parameter { name: "source"; type: "QObject"; isPointer: true } } Method { name: "trigger" type: "QVariant" Parameter { name: "source"; type: "QVariant" } } } Component { prototype: "QQuickActionGroup" name: "QtQuick.Controls/ActionGroup 2.3" exports: ["QtQuick.Controls/ActionGroup 2.3"] exportMetaObjectRevisions: [3] isComposite: true defaultProperty: "actions" } Component { prototype: "QQuickItem" - name: "ApplicationHeader 2.0" - exports: ["ApplicationHeader 2.0"] + name: "org.kde.kirigami/ActionToolBar 2.5" + exports: ["org.kde.kirigami/ActionToolBar 2.5"] + exportMetaObjectRevisions: [5] + isComposite: true + defaultProperty: "data" + Property { name: "actions"; type: "QObject"; isList: true; isReadonly: true } + Property { name: "flat"; type: "bool" } + } + Component { + prototype: "QQuickItem" + name: "org.kde.kirigami/ApplicationHeader 2.0" + exports: ["org.kde.kirigami/ApplicationHeader 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "contentItem" Property { name: "headerStyle"; type: "int" } Property { name: "backButtonEnabled"; type: "bool" } Property { name: "pageDelegate"; type: "QQmlComponent"; isPointer: true } Property { name: "minimumHeight"; type: "int" } Property { name: "preferredHeight"; type: "int" } Property { name: "maximumHeight"; type: "int" } Property { name: "paintedHeight"; type: "int"; isReadonly: true } Property { name: "__appWindow"; type: "QObject"; isPointer: true } Property { name: "background"; type: "QQuickItem"; isPointer: true } Property { name: "contentItem"; type: "QObject"; isList: true; isReadonly: true } } Component { prototype: "QQuickItem" - name: "ApplicationItem 2.1" - exports: ["ApplicationItem 2.1"] + name: "org.kde.kirigami/ApplicationItem 2.1" + exports: ["org.kde.kirigami/ApplicationItem 2.1"] exportMetaObjectRevisions: [1] isComposite: true defaultProperty: "__data" - Property { name: "pageStack"; type: "PageRow_QMLTYPE_48"; isReadonly: true; isPointer: true } + Property { name: "pageStack"; type: "PageRow_QMLTYPE_56"; isReadonly: true; isPointer: true } Property { name: "activeFocusItem"; type: "QQuickItem"; isReadonly: true; isPointer: true } Property { name: "header"; type: "QQuickItem"; isPointer: true } Property { name: "footer"; type: "QQuickItem"; isPointer: true } Property { name: "controlsVisible"; type: "bool" } - Property { name: "globalDrawer"; type: "OverlayDrawer_QMLTYPE_6"; isPointer: true } + Property { name: "globalDrawer"; type: "OverlayDrawer_QMLTYPE_7"; isPointer: true } Property { name: "wideScreen"; type: "bool" } - Property { name: "contextDrawer"; type: "OverlayDrawer_QMLTYPE_6"; isPointer: true } + Property { name: "contextDrawer"; type: "OverlayDrawer_QMLTYPE_7"; isPointer: true } Property { name: "reachableMode"; type: "bool" } Property { name: "reachableModeEnabled"; type: "bool" } Property { name: "contentItem"; type: "QQuickItem"; isReadonly: true; isPointer: true } Property { name: "overlay"; type: "QQuickItem"; isReadonly: true; isPointer: true } Property { name: "__data"; type: "QObject"; isList: true; isReadonly: true } Method { name: "showPassiveNotification" type: "QVariant" Parameter { name: "message"; type: "QVariant" } Parameter { name: "timeout"; type: "QVariant" } Parameter { name: "actionText"; type: "QVariant" } Parameter { name: "callBack"; type: "QVariant" } } Method { name: "hidePassiveNotification"; type: "QVariant" } Method { name: "applicationWindow"; type: "QVariant" } } Component { prototype: "QQuickApplicationWindow" - name: "ApplicationWindow 2.0" - exports: ["ApplicationWindow 2.0"] + name: "org.kde.kirigami/ApplicationWindow 2.0" + exports: ["org.kde.kirigami/ApplicationWindow 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "contentData" - Property { name: "pageStack"; type: "PageRow_QMLTYPE_48"; isReadonly: true; isPointer: true } + Property { name: "pageStack"; type: "PageRow_QMLTYPE_56"; isReadonly: true; isPointer: true } Property { name: "controlsVisible"; type: "bool" } - Property { name: "globalDrawer"; type: "OverlayDrawer_QMLTYPE_6"; isPointer: true } + Property { name: "globalDrawer"; type: "OverlayDrawer_QMLTYPE_7"; isPointer: true } Property { name: "wideScreen"; type: "bool" } - Property { name: "contextDrawer"; type: "OverlayDrawer_QMLTYPE_6"; isPointer: true } + Property { name: "contextDrawer"; type: "OverlayDrawer_QMLTYPE_7"; isPointer: true } Property { name: "reachableMode"; type: "bool" } Property { name: "reachableModeEnabled"; type: "bool" } Method { name: "showPassiveNotification" type: "QVariant" Parameter { name: "message"; type: "QVariant" } Parameter { name: "timeout"; type: "QVariant" } Parameter { name: "actionText"; type: "QVariant" } Parameter { name: "callBack"; type: "QVariant" } } Method { name: "hidePassiveNotification"; type: "QVariant" } Method { name: "applicationWindow"; type: "QVariant" } } Component { prototype: "QQuickApplicationWindow" name: "QtQuick.Controls/ApplicationWindow 2.0" exports: ["QtQuick.Controls/ApplicationWindow 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "contentData" } Component { prototype: "QQuickItemDelegate" - name: "BasicListItem 2.0" - exports: ["BasicListItem 2.0"] + name: "org.kde.kirigami/BasicListItem 2.0" + exports: ["org.kde.kirigami/BasicListItem 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "_basicDefault" Property { name: "icon"; type: "QVariant" } Property { name: "label"; type: "string" } Property { name: "reserveSpaceForIcon"; type: "bool" } Property { name: "_basicDefault"; type: "QQuickItem"; isList: true; isReadonly: true } Property { name: "supportsMouseEvents"; type: "bool" } Property { name: "sectionDelegate"; type: "bool" } Property { name: "separatorVisible"; type: "bool" } Property { name: "textColor"; type: "QColor" } Property { name: "backgroundColor"; type: "QColor" } Property { name: "activeTextColor"; type: "QColor" } Property { name: "activeBackgroundColor"; type: "QColor" } Property { name: "containsMouse"; type: "bool"; isReadonly: true } Property { name: "_default"; type: "QQuickItem"; isPointer: true } } Component { prototype: "QQuickItem" name: "QtQuick.Controls.Material.impl/BoxShadow 2.0" exports: ["QtQuick.Controls.Material.impl/BoxShadow 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "data" Property { name: "offsetX"; type: "int" } Property { name: "offsetY"; type: "int" } Property { name: "blurRadius"; type: "int" } Property { name: "spreadRadius"; type: "int" } Property { name: "source"; type: "QQuickItem"; isPointer: true } Property { name: "fullWidth"; type: "bool" } Property { name: "fullHeight"; type: "bool" } Property { name: "glowRadius"; type: "double" } Property { name: "spread"; type: "double" } Property { name: "color"; type: "QColor" } Property { name: "cornerRadius"; type: "double" } Property { name: "cached"; type: "bool" } } Component { prototype: "QQuickBusyIndicator" name: "QtQuick.Controls/BusyIndicator 2.0" exports: ["QtQuick.Controls/BusyIndicator 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "data" } Component { prototype: "QQuickButton" name: "QtQuick.Controls/Button 2.0" exports: ["QtQuick.Controls/Button 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "data" } Component { prototype: "QQuickButtonGroup" name: "QtQuick.Controls/ButtonGroup 2.0" exports: ["QtQuick.Controls/ButtonGroup 2.0"] exportMetaObjectRevisions: [0] isComposite: true } + Component { + prototype: "QQuickRectangle" + name: "QtQuick.Controls.Fusion.impl/ButtonPanel 2.3" + exports: ["QtQuick.Controls.Fusion.impl/ButtonPanel 2.3"] + exportMetaObjectRevisions: [3] + isComposite: true + defaultProperty: "data" + Property { name: "control"; type: "QQuickItem"; isPointer: true } + Property { name: "highlighted"; type: "bool" } + } Component { prototype: "QQuickItemDelegate" - name: "Card 2.4" - exports: ["Card 2.4"] + name: "org.kde.kirigami/Card 2.4" + exports: ["org.kde.kirigami/Card 2.4"] exportMetaObjectRevisions: [4] isComposite: true defaultProperty: "data" Property { name: "actions"; type: "QObject"; isList: true; isReadonly: true } - Property { name: "banner"; type: "BannerGroup_QMLTYPE_66"; isReadonly: true; isPointer: true } + Property { name: "banner"; type: "BannerGroup_QMLTYPE_75"; isReadonly: true; isPointer: true } Property { name: "header"; type: "QQuickItem"; isPointer: true } Property { name: "headerOrientation"; type: "int" } Property { name: "footer"; type: "QQuickItem"; isPointer: true } Property { name: "showClickFeedback"; type: "bool" } } Component { prototype: "QQuickGridView" - name: "CardsGridView 2.4" - exports: ["CardsGridView 2.4"] + name: "org.kde.kirigami/CardsGridView 2.4" + exports: ["org.kde.kirigami/CardsGridView 2.4"] exportMetaObjectRevisions: [4] isComposite: true - defaultProperty: "data" + defaultProperty: "delegate" Property { name: "maximumColumnWidth"; type: "int" } + Property { name: "delegate"; type: "QQmlComponent"; isPointer: true } + Property { name: "_delegateComponent"; type: "QQmlComponent"; isPointer: true } } Component { prototype: "QQuickGridLayout" - name: "CardsLayout 2.4" - exports: ["CardsLayout 2.4"] + name: "org.kde.kirigami/CardsLayout 2.4" + exports: ["org.kde.kirigami/CardsLayout 2.4"] exportMetaObjectRevisions: [4] isComposite: true defaultProperty: "data" Property { name: "maximumColumnWidth"; type: "int" } } Component { prototype: "QQuickListView" - name: "CardsListView 2.4" - exports: ["CardsListView 2.4"] + name: "org.kde.kirigami/CardsListView 2.4" + exports: ["org.kde.kirigami/CardsListView 2.4"] exportMetaObjectRevisions: [4] isComposite: true defaultProperty: "data" + Property { name: "delegate"; type: "QQmlComponent"; isPointer: true } + Property { name: "_delegateComponent"; type: "QQmlComponent"; isPointer: true } } Component { prototype: "QQuickCheckBox" name: "QtQuick.Controls/CheckBox 2.0" exports: ["QtQuick.Controls/CheckBox 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "data" } Component { prototype: "QQuickCheckDelegate" name: "QtQuick.Controls/CheckDelegate 2.0" exports: ["QtQuick.Controls/CheckDelegate 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "data" } Component { prototype: "QQuickRectangle" name: "QtQuick.Controls.Material.impl/CheckIndicator 2.0" exports: ["QtQuick.Controls.Material.impl/CheckIndicator 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "data" Property { name: "control"; type: "QQuickItem"; isPointer: true } } + Component { + prototype: "QQuickRectangle" + name: "QtQuick.Controls.Fusion.impl/CheckIndicator 2.3" + exports: ["QtQuick.Controls.Fusion.impl/CheckIndicator 2.3"] + exportMetaObjectRevisions: [3] + isComposite: true + defaultProperty: "data" + Property { name: "control"; type: "QQuickItem"; isPointer: true } + Property { name: "pressedColor"; type: "QColor"; isReadonly: true } + Property { name: "checkMarkColor"; type: "QColor"; isReadonly: true } + } + Component { + prototype: "QQuickRectangle" + name: "QtQuick.Controls.Universal.impl/CheckIndicator 2.0" + exports: ["QtQuick.Controls.Universal.impl/CheckIndicator 2.0"] + exportMetaObjectRevisions: [0] + isComposite: true + defaultProperty: "data" + Property { name: "control"; type: "QQuickItem"; isPointer: true } + Property { name: "partiallyChecked"; type: "bool"; isReadonly: true } + } + Component { + prototype: "QQuickFocusScope" + name: "QtQuick.Extras.Private/CircularButton 1.0" + exports: ["QtQuick.Extras.Private/CircularButton 1.0"] + exportMetaObjectRevisions: [0] + isComposite: true + defaultProperty: "data" + Property { name: "isDefault"; type: "bool" } + Property { name: "menu"; type: "Menu_QMLTYPE_123"; isPointer: true } + Property { name: "checkable"; type: "bool" } + Property { name: "checked"; type: "bool" } + Property { name: "exclusiveGroup"; type: "QQuickExclusiveGroup1"; isPointer: true } + Property { name: "action"; type: "QQuickAction1"; isPointer: true } + Property { name: "activeFocusOnPress"; type: "bool" } + Property { name: "text"; type: "string" } + Property { name: "tooltip"; type: "string" } + Property { name: "iconSource"; type: "QUrl" } + Property { name: "iconName"; type: "string" } + Property { name: "__position"; type: "string" } + Property { name: "__iconOverriden"; type: "bool"; isReadonly: true } + Property { name: "__action"; type: "QQuickAction1"; isPointer: true } + Property { name: "__iconAction"; type: "QQuickAction1"; isReadonly: true; isPointer: true } + Property { name: "__behavior"; type: "QVariant" } + Property { name: "__effectivePressed"; type: "bool" } + Property { name: "pressed"; type: "bool"; isReadonly: true } + Property { name: "hovered"; type: "bool"; isReadonly: true } + Signal { name: "clicked" } + Method { name: "accessiblePressAction"; type: "QVariant" } + Property { name: "style"; type: "QQmlComponent"; isPointer: true } + Property { name: "__style"; type: "QObject"; isPointer: true } + Property { name: "__panel"; type: "QQuickItem"; isPointer: true } + Property { name: "styleHints"; type: "QVariant" } + Property { name: "__styleData"; type: "QObject"; isPointer: true } + } + Component { + prototype: "QObject" + name: "QtQuick.Extras.Private/CircularButtonStyleHelper 1.0" + exports: ["QtQuick.Extras.Private/CircularButtonStyleHelper 1.0"] + exportMetaObjectRevisions: [0] + isComposite: true + Property { name: "control"; type: "QQuickItem"; isPointer: true } + Property { name: "buttonColorUpTop"; type: "QColor" } + Property { name: "buttonColorUpBottom"; type: "QColor" } + Property { name: "buttonColorDownTop"; type: "QColor" } + Property { name: "buttonColorDownBottom"; type: "QColor" } + Property { name: "outerArcColorTop"; type: "QColor" } + Property { name: "outerArcColorBottom"; type: "QColor" } + Property { name: "innerArcColorTop"; type: "QColor" } + Property { name: "innerArcColorBottom"; type: "QColor" } + Property { name: "innerArcColorBottomStop"; type: "double" } + Property { name: "shineColor"; type: "QColor" } + Property { name: "smallestAxis"; type: "double" } + Property { name: "outerArcLineWidth"; type: "double" } + Property { name: "innerArcLineWidth"; type: "double" } + Property { name: "shineArcLineWidth"; type: "double" } + Property { name: "implicitWidth"; type: "double" } + Property { name: "implicitHeight"; type: "double" } + Property { name: "textColorUp"; type: "QColor" } + Property { name: "textColorDown"; type: "QColor" } + Property { name: "textRaisedColorUp"; type: "QColor" } + Property { name: "textRaisedColorDown"; type: "QColor" } + Property { name: "radius"; type: "double" } + Property { name: "halfRadius"; type: "double" } + Property { name: "outerArcRadius"; type: "double" } + Property { name: "innerArcRadius"; type: "double" } + Property { name: "shineArcRadius"; type: "double" } + Property { name: "zeroAngle"; type: "double" } + Property { name: "buttonColorTop"; type: "QColor" } + Property { name: "buttonColorBottom"; type: "QColor" } + Method { + name: "toPixels" + type: "QVariant" + Parameter { name: "percentageOfSmallestAxis"; type: "QVariant" } + } + Method { + name: "paintBackground" + type: "QVariant" + Parameter { name: "ctx"; type: "QVariant" } + } + } + Component { + prototype: "QQuickFocusScope" + name: "QtQuick.Extras/CircularGauge 1.0" + exports: ["QtQuick.Extras/CircularGauge 1.0"] + exportMetaObjectRevisions: [0] + isComposite: true + defaultProperty: "data" + Property { name: "tickmarksVisible"; type: "bool" } + Property { name: "minimumValue"; type: "double" } + Property { name: "maximumValue"; type: "double" } + Property { name: "value"; type: "double" } + Property { name: "stepSize"; type: "double" } + Property { name: "style"; type: "QQmlComponent"; isPointer: true } + Property { name: "__style"; type: "QObject"; isPointer: true } + Property { name: "__panel"; type: "QQuickItem"; isPointer: true } + Property { name: "styleHints"; type: "QVariant" } + Property { name: "__styleData"; type: "QObject"; isPointer: true } + } + Component { + prototype: "QQuickFocusScope" + name: "QtQuick.Extras.Private/CircularTickmarkLabel 1.0" + exports: ["QtQuick.Extras.Private/CircularTickmarkLabel 1.0"] + exportMetaObjectRevisions: [0] + isComposite: true + defaultProperty: "data" + Property { name: "minimumValueAngle"; type: "double" } + Property { name: "maximumValueAngle"; type: "double" } + Property { name: "angleRange"; type: "double"; isReadonly: true } + Property { name: "tickmarkStepSize"; type: "double" } + Property { name: "tickmarkInset"; type: "double" } + Property { name: "tickmarkCount"; type: "int"; isReadonly: true } + Property { name: "minorTickmarkCount"; type: "int" } + Property { name: "minorTickmarkInset"; type: "double" } + Property { name: "labelInset"; type: "double" } + Property { name: "labelStepSize"; type: "double" } + Property { name: "labelCount"; type: "int"; isReadonly: true } + Property { name: "__tickmarkCount"; type: "double"; isReadonly: true } + Property { name: "tickmarksVisible"; type: "bool" } + Property { name: "minimumValue"; type: "double" } + Property { name: "maximumValue"; type: "double" } + Property { name: "stepSize"; type: "double" } + Method { + name: "valueToAngle" + type: "QVariant" + Parameter { name: "value"; type: "QVariant" } + } + Property { name: "style"; type: "QQmlComponent"; isPointer: true } + Property { name: "__style"; type: "QObject"; isPointer: true } + Property { name: "__panel"; type: "QQuickItem"; isPointer: true } + Property { name: "styleHints"; type: "QVariant" } + Property { name: "__styleData"; type: "QObject"; isPointer: true } + } Component { prototype: "QQuickComboBox" name: "QtQuick.Controls/ComboBox 2.0" exports: ["QtQuick.Controls/ComboBox 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "data" } Component { prototype: "QQuickContainer" name: "QtQuick.Controls/Container 2.0" exports: ["QtQuick.Controls/Container 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "contentData" } Component { prototype: "QQuickDrawer" - name: "ContextDrawer 2.0" - exports: ["ContextDrawer 2.0"] + name: "org.kde.kirigami/ContextDrawer 2.0" + exports: ["org.kde.kirigami/ContextDrawer 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "contentData" Property { name: "title"; type: "string" } Property { name: "actions"; type: "QVariant" } Property { name: "drawerOpen"; type: "bool" } Property { name: "enabled"; type: "bool" } Property { name: "peeking"; type: "bool" } Property { name: "animating"; type: "bool"; isReadonly: true } + Property { name: "handleOpenIcon"; type: "QObject"; isReadonly: true; isPointer: true } + Property { name: "handleClosedIcon"; type: "QObject"; isReadonly: true; isPointer: true } Property { name: "handleVisible"; type: "bool" } Property { name: "handle"; type: "QQuickItem"; isReadonly: true; isPointer: true } Property { name: "__internal"; type: "QObject"; isPointer: true } } Component { prototype: "QQuickControl" name: "QtQuick.Controls/Control 2.0" exports: ["QtQuick.Controls/Control 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "data" } Component { prototype: "QQuickRectangle" name: "QtQuick.Controls.Material.impl/CursorDelegate 2.0" exports: ["QtQuick.Controls.Material.impl/CursorDelegate 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "data" } + Component { + prototype: "QQuickFocusScope" + name: "QtQuick.Extras/DelayButton 1.0" + exports: ["QtQuick.Extras/DelayButton 1.0"] + exportMetaObjectRevisions: [0] + isComposite: true + defaultProperty: "data" + Property { name: "delay"; type: "int" } + Property { name: "__progress"; type: "double" } + Property { name: "progress"; type: "double"; isReadonly: true } + Signal { name: "activated" } + Property { name: "isDefault"; type: "bool" } + Property { name: "menu"; type: "Menu_QMLTYPE_123"; isPointer: true } + Property { name: "checkable"; type: "bool" } + Property { name: "checked"; type: "bool" } + Property { name: "exclusiveGroup"; type: "QQuickExclusiveGroup1"; isPointer: true } + Property { name: "action"; type: "QQuickAction1"; isPointer: true } + Property { name: "activeFocusOnPress"; type: "bool" } + Property { name: "text"; type: "string" } + Property { name: "tooltip"; type: "string" } + Property { name: "iconSource"; type: "QUrl" } + Property { name: "iconName"; type: "string" } + Property { name: "__position"; type: "string" } + Property { name: "__iconOverriden"; type: "bool"; isReadonly: true } + Property { name: "__action"; type: "QQuickAction1"; isPointer: true } + Property { name: "__iconAction"; type: "QQuickAction1"; isReadonly: true; isPointer: true } + Property { name: "__behavior"; type: "QVariant" } + Property { name: "__effectivePressed"; type: "bool" } + Property { name: "pressed"; type: "bool"; isReadonly: true } + Property { name: "hovered"; type: "bool"; isReadonly: true } + Signal { name: "clicked" } + Method { name: "accessiblePressAction"; type: "QVariant" } + Property { name: "style"; type: "QQmlComponent"; isPointer: true } + Property { name: "__style"; type: "QObject"; isPointer: true } + Property { name: "__panel"; type: "QQuickItem"; isPointer: true } + Property { name: "styleHints"; type: "QVariant" } + Property { name: "__styleData"; type: "QObject"; isPointer: true } + } Component { prototype: "QQuickDelayButton" name: "QtQuick.Controls/DelayButton 2.2" exports: ["QtQuick.Controls/DelayButton 2.2"] exportMetaObjectRevisions: [2] isComposite: true defaultProperty: "data" } Component { prototype: "QQuickDial" name: "QtQuick.Controls/Dial 2.0" exports: ["QtQuick.Controls/Dial 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "data" } + Component { + prototype: "QQuickFocusScope" + name: "QtQuick.Extras/Dial 1.1" + exports: ["QtQuick.Extras/Dial 1.1"] + exportMetaObjectRevisions: [1] + isComposite: true + defaultProperty: "data" + Property { name: "__wrap"; type: "bool" } + Property { name: "activeFocusOnPress"; type: "bool" } + Property { name: "tickmarksVisible"; type: "bool" } + Property { name: "value"; type: "double" } + Property { name: "minimumValue"; type: "double" } + Property { name: "maximumValue"; type: "double" } + Property { name: "hovered"; type: "bool"; isReadonly: true } + Property { name: "stepSize"; type: "double" } + Property { name: "pressed"; type: "bool"; isReadonly: true } + Property { name: "style"; type: "QQmlComponent"; isPointer: true } + Property { name: "__style"; type: "QObject"; isPointer: true } + Property { name: "__panel"; type: "QQuickItem"; isPointer: true } + Property { name: "styleHints"; type: "QVariant" } + Property { name: "__styleData"; type: "QObject"; isPointer: true } + } + Component { + prototype: "QQuickFocusScope" + name: "QtQuick.Extras/Dial 1.0" + exports: ["QtQuick.Extras/Dial 1.0"] + exportMetaObjectRevisions: [0] + isComposite: true + defaultProperty: "data" + Property { name: "__wrap"; type: "bool" } + Property { name: "activeFocusOnPress"; type: "bool" } + Property { name: "tickmarksVisible"; type: "bool" } + Property { name: "value"; type: "double" } + Property { name: "minimumValue"; type: "double" } + Property { name: "maximumValue"; type: "double" } + Property { name: "hovered"; type: "bool"; isReadonly: true } + Property { name: "stepSize"; type: "double" } + Property { name: "pressed"; type: "bool"; isReadonly: true } + Property { name: "style"; type: "QQmlComponent"; isPointer: true } + Property { name: "__style"; type: "QObject"; isPointer: true } + Property { name: "__panel"; type: "QQuickItem"; isPointer: true } + Property { name: "styleHints"; type: "QVariant" } + Property { name: "__styleData"; type: "QObject"; isPointer: true } + } Component { prototype: "QQuickDialog" name: "QtQuick.Controls/Dialog 2.1" exports: ["QtQuick.Controls/Dialog 2.1"] exportMetaObjectRevisions: [1] isComposite: true defaultProperty: "contentData" } Component { prototype: "QQuickDialogButtonBox" name: "QtQuick.Controls/DialogButtonBox 2.1" exports: ["QtQuick.Controls/DialogButtonBox 2.1"] exportMetaObjectRevisions: [1] isComposite: true defaultProperty: "contentData" } Component { prototype: "QQuickDrawer" name: "QtQuick.Controls/Drawer 2.0" exports: ["QtQuick.Controls/Drawer 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "contentData" } Component { prototype: "QQuickItem" name: "QtQuick.Controls.Material.impl/ElevationEffect 2.0" exports: ["QtQuick.Controls.Material.impl/ElevationEffect 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "data" Property { name: "source"; type: "QVariant" } Property { name: "elevation"; type: "int" } Property { name: "fullWidth"; type: "bool" } Property { name: "fullHeight"; type: "bool" } Property { name: "sourceItem"; type: "QQuickItem"; isReadonly: true; isPointer: true } Property { name: "_shadows"; type: "QVariant"; isReadonly: true } Property { name: "_shadow"; type: "QVariant"; isReadonly: true } } Component { prototype: "QQuickControl" - name: "FormLayout 2.3" - exports: ["FormLayout 2.3"] + name: "org.kde.kirigami/FormLayout 2.3" + exports: ["org.kde.kirigami/FormLayout 2.3"] exportMetaObjectRevisions: [3] isComposite: true defaultProperty: "data" Property { name: "wideMode"; type: "bool" } } Component { prototype: "QQuickFrame" name: "QtQuick.Controls/Frame 2.0" exports: ["QtQuick.Controls/Frame 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "contentData" } + Component { + prototype: "QQuickFocusScope" + name: "QtQuick.Extras/Gauge 1.0" + exports: ["QtQuick.Extras/Gauge 1.0"] + exportMetaObjectRevisions: [0] + isComposite: true + defaultProperty: "data" + Property { name: "orientation"; type: "int" } + Property { name: "tickmarkAlignment"; type: "int" } + Property { name: "__tickmarkAlignment"; type: "int" } + Property { name: "__tickmarksInside"; type: "bool" } + Property { name: "tickmarkStepSize"; type: "double" } + Property { name: "minorTickmarkCount"; type: "int" } + Property { name: "formatValue"; type: "QVariant" } + Property { name: "minimumValue"; type: "double" } + Property { name: "value"; type: "double" } + Property { name: "maximumValue"; type: "double" } + Property { name: "font"; type: "QFont" } + Property { name: "__hiddenText"; type: "QQuickText"; isReadonly: true; isPointer: true } + Property { name: "style"; type: "QQmlComponent"; isPointer: true } + Property { name: "__style"; type: "QObject"; isPointer: true } + Property { name: "__panel"; type: "QQuickItem"; isPointer: true } + Property { name: "styleHints"; type: "QVariant" } + Property { name: "__styleData"; type: "QObject"; isPointer: true } + } Component { prototype: "QQuickDrawer" - name: "GlobalDrawer 2.0" - exports: ["GlobalDrawer 2.0"] + name: "org.kde.kirigami/GlobalDrawer 2.0" + exports: ["org.kde.kirigami/GlobalDrawer 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "content" Property { name: "actions"; type: "QObject"; isList: true; isReadonly: true } Property { name: "resetMenuOnTriggered"; type: "bool" } Property { name: "currentSubMenu"; type: "Action_QMLTYPE_36"; isReadonly: true; isPointer: true } Property { name: "title"; type: "string" } Property { name: "titleIcon"; type: "QVariant" } Property { name: "bannerImageSource"; type: "QUrl" } Property { name: "content"; type: "QObject"; isList: true; isReadonly: true } Property { name: "topContent"; type: "QObject"; isList: true; isReadonly: true } Signal { name: "bannerClicked" } Method { name: "resetMenu"; type: "QVariant" } Property { name: "drawerOpen"; type: "bool" } Property { name: "enabled"; type: "bool" } Property { name: "peeking"; type: "bool" } Property { name: "animating"; type: "bool"; isReadonly: true } + Property { name: "handleOpenIcon"; type: "QObject"; isReadonly: true; isPointer: true } + Property { name: "handleClosedIcon"; type: "QObject"; isReadonly: true; isPointer: true } Property { name: "handleVisible"; type: "bool" } Property { name: "handle"; type: "QQuickItem"; isReadonly: true; isPointer: true } Property { name: "__internal"; type: "QObject"; isPointer: true } } Component { prototype: "QQuickGroupBox" name: "QtQuick.Controls/GroupBox 2.0" exports: ["QtQuick.Controls/GroupBox 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "contentData" } Component { prototype: "QQuickLabel" - name: "Heading 2.0" - exports: ["Heading 2.0"] + name: "org.kde.kirigami/Heading 2.0" + exports: ["org.kde.kirigami/Heading 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "data" Property { name: "level"; type: "int" } Property { name: "step"; type: "int" } Method { name: "headerPointSize" type: "QVariant" Parameter { name: "l"; type: "QVariant" } } } Component { prototype: "QQuickControl" - name: "InlineMessage 2.4" - exports: ["InlineMessage 2.4"] + name: "org.kde.kirigami/InlineMessage 2.4" + exports: ["org.kde.kirigami/InlineMessage 2.4"] exportMetaObjectRevisions: [4] isComposite: true defaultProperty: "data" + Property { name: "_animating"; type: "bool" } Property { name: "type"; type: "int" } - Property { name: "icon"; type: "IconPropertiesGroup_QMLTYPE_106"; isPointer: true } + Property { name: "icon"; type: "IconPropertiesGroup_QMLTYPE_6"; isPointer: true } Property { name: "text"; type: "string" } Property { name: "showCloseButton"; type: "bool" } Property { name: "actions"; type: "QObject"; isList: true; isReadonly: true } Property { name: "animating"; type: "bool"; isReadonly: true } Signal { name: "linkHovered" Parameter { name: "link"; type: "string" } } Signal { name: "linkActivated" Parameter { name: "link"; type: "string" } } } Component { prototype: "QQuickItemDelegate" name: "QtQuick.Controls/ItemDelegate 2.0" exports: ["QtQuick.Controls/ItemDelegate 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "data" } Component { prototype: "QQuickControl" - name: "ItemViewHeader 2.1" - exports: ["ItemViewHeader 2.1"] + name: "org.kde.kirigami/ItemViewHeader 2.1" + exports: ["org.kde.kirigami/ItemViewHeader 2.1"] exportMetaObjectRevisions: [1] isComposite: true defaultProperty: "data" Property { name: "title"; type: "string" } Property { name: "color"; type: "QColor" } Property { name: "backgroundImage"; type: "QQuickImage"; isReadonly: true; isPointer: true } Property { name: "minimumHeight"; type: "int" } Property { name: "maximumHeight"; type: "int" } Property { name: "view"; type: "QQuickListView"; isPointer: true } } Component { prototype: "QQuickLabel" name: "QtQuick.Controls/Label 2.0" exports: ["QtQuick.Controls/Label 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "data" } Component { prototype: "QQuickLabel" - name: "Label 2.0" - exports: ["Label 2.0"] + name: "org.kde.kirigami/Label 2.0" + exports: ["org.kde.kirigami/Label 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "data" } + Component { + prototype: "QQuickItem" + name: "org.kde.kirigami/ListItemDragHandle 2.5" + exports: ["org.kde.kirigami/ListItemDragHandle 2.5"] + exportMetaObjectRevisions: [5] + isComposite: true + defaultProperty: "data" + Property { name: "listItem"; type: "QQuickItem"; isPointer: true } + Property { name: "listView"; type: "QQuickListView"; isPointer: true } + Signal { + name: "moveRequested" + Parameter { name: "oldIndex"; type: "int" } + Parameter { name: "newIndex"; type: "int" } + } + Signal { name: "dropped" } + } Component { prototype: "QQuickMenu" name: "QtQuick.Controls/Menu 2.0" exports: ["QtQuick.Controls/Menu 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "contentData" } Component { prototype: "QQuickMenuBar" name: "QtQuick.Controls/MenuBar 2.3" exports: ["QtQuick.Controls/MenuBar 2.3"] exportMetaObjectRevisions: [3] isComposite: true defaultProperty: "contentData" } Component { prototype: "QQuickMenuBarItem" name: "QtQuick.Controls/MenuBarItem 2.3" exports: ["QtQuick.Controls/MenuBarItem 2.3"] exportMetaObjectRevisions: [3] isComposite: true defaultProperty: "data" } Component { prototype: "QQuickMenuItem" name: "QtQuick.Controls/MenuItem 2.0" exports: ["QtQuick.Controls/MenuItem 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "data" } Component { prototype: "QQuickMenuSeparator" name: "QtQuick.Controls/MenuSeparator 2.1" exports: ["QtQuick.Controls/MenuSeparator 2.1"] exportMetaObjectRevisions: [1] isComposite: true defaultProperty: "data" } Component { prototype: "QQuickDrawer" - name: "OverlayDrawer 2.0" - exports: ["OverlayDrawer 2.0"] + name: "org.kde.kirigami/OverlayDrawer 2.0" + exports: ["org.kde.kirigami/OverlayDrawer 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "contentData" Property { name: "drawerOpen"; type: "bool" } Property { name: "enabled"; type: "bool" } Property { name: "peeking"; type: "bool" } Property { name: "animating"; type: "bool"; isReadonly: true } + Property { name: "handleOpenIcon"; type: "QObject"; isReadonly: true; isPointer: true } + Property { name: "handleClosedIcon"; type: "QObject"; isReadonly: true; isPointer: true } Property { name: "handleVisible"; type: "bool" } Property { name: "handle"; type: "QQuickItem"; isReadonly: true; isPointer: true } Property { name: "__internal"; type: "QObject"; isPointer: true } } Component { prototype: "QObject" - name: "OverlaySheet 2.0" - exports: ["OverlaySheet 2.0"] + name: "org.kde.kirigami/OverlaySheet 2.0" + exports: ["org.kde.kirigami/OverlaySheet 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "contentItem" Property { name: "contentItem"; type: "QQuickItem"; isPointer: true } Property { name: "sheetOpen"; type: "bool" } Property { name: "leftPadding"; type: "int" } Property { name: "topPadding"; type: "int" } Property { name: "rightPadding"; type: "int" } Property { name: "bottomPadding"; type: "int" } Property { name: "header"; type: "QQuickItem"; isPointer: true } Property { name: "footer"; type: "QQuickItem"; isPointer: true } Property { name: "background"; type: "QQuickItem"; isPointer: true } Property { name: "parent"; type: "QQuickItem"; isPointer: true } Property { name: "rootItem"; type: "QQuickItem"; isReadonly: true; isPointer: true } Property { name: "showCloseButton"; type: "bool" } Method { name: "open"; type: "QVariant" } Method { name: "close"; type: "QVariant" } } Component { prototype: "QQuickPage" - name: "Page 2.0" - exports: ["Page 2.0"] + name: "org.kde.kirigami/Page 2.0" + exports: ["org.kde.kirigami/Page 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "contentData" Property { name: "flickable"; type: "QQuickFlickable"; isPointer: true } Property { name: "isCurrentPage"; type: "bool"; isReadonly: true } Property { name: "contextualActions"; type: "QObject"; isList: true; isReadonly: true } Property { name: "mainAction"; type: "QObject"; isPointer: true } Property { name: "leftAction"; type: "QObject"; isPointer: true } Property { name: "rightAction"; type: "QObject"; isPointer: true } Property { name: "actions" - type: "PageActionPropertyGroup_QMLTYPE_38" + type: "PageActionPropertyGroup_QMLTYPE_46" isReadonly: true isPointer: true } Signal { name: "backRequested" Parameter { name: "event"; type: "QVariant" } } } Component { prototype: "QQuickPage" name: "QtQuick.Controls/Page 2.0" exports: ["QtQuick.Controls/Page 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "contentData" } Component { prototype: "QQuickPageIndicator" name: "QtQuick.Controls/PageIndicator 2.0" exports: ["QtQuick.Controls/PageIndicator 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "data" } Component { prototype: "QQuickControl" - name: "PageRow 2.0" - exports: ["PageRow 2.0"] + name: "org.kde.kirigami/PageRow 2.0" + exports: ["org.kde.kirigami/PageRow 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "data" Property { name: "depth"; type: "int"; isReadonly: true } Property { name: "lastItem"; type: "QQuickItem"; isReadonly: true; isPointer: true } Property { name: "currentItem"; type: "QQuickItem"; isReadonly: true; isPointer: true } Property { name: "initialPage"; type: "QVariant" } Property { name: "defaultColumnWidth"; type: "int" } Property { name: "wideMode"; type: "bool"; isReadonly: true } Property { name: "separatorVisible"; type: "bool" } Property { name: "currentIndex"; type: "int" } Property { name: "interactive"; type: "bool" } Property { name: "layers"; type: "QQuickStackView"; isReadonly: true; isPointer: true } Method { name: "push" type: "QVariant" Parameter { name: "page"; type: "QVariant" } Parameter { name: "properties"; type: "QVariant" } } Method { name: "pop" type: "QVariant" Parameter { name: "page"; type: "QVariant" } } Method { name: "replace" type: "QVariant" Parameter { name: "page"; type: "QVariant" } Parameter { name: "properties"; type: "QVariant" } } Method { name: "clear"; type: "QVariant" } Method { name: "get" type: "QVariant" Parameter { name: "idx"; type: "QVariant" } } Method { name: "flickBack"; type: "QVariant" } } Component { prototype: "QQuickPane" name: "QtQuick.Controls/Pane 2.0" exports: ["QtQuick.Controls/Pane 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "contentData" } + Component { + prototype: "QQuickFocusScope" + name: "QtQuick.Extras/PieMenu 1.0" + exports: ["QtQuick.Extras/PieMenu 1.0"] + exportMetaObjectRevisions: [0] + isComposite: true + defaultProperty: "menuItems" + Property { name: "selectionAngle"; type: "double"; isReadonly: true } + Property { name: "triggerMode"; type: "int" } + Property { name: "title"; type: "string" } + Property { name: "boundingItem"; type: "QQuickItem"; isPointer: true } + Property { name: "__protectedScope"; type: "QObject"; isPointer: true } + Property { name: "activationMode"; type: "int" } + Property { name: "menuItems"; type: "QQuickMenuItem1"; isList: true; isReadonly: true } + Property { name: "currentIndex"; type: "int"; isReadonly: true } + Property { name: "currentItem"; type: "QQuickMenuItem1"; isReadonly: true; isPointer: true } + Property { name: "__mouseThief"; type: "QQuickMouseThief"; isReadonly: true; isPointer: true } + Method { + name: "popup" + type: "QVariant" + Parameter { name: "x"; type: "QVariant" } + Parameter { name: "y"; type: "QVariant" } + } + Method { + name: "addItem" + type: "QVariant" + Parameter { name: "text"; type: "QVariant" } + } + Method { + name: "insertItem" + type: "QVariant" + Parameter { name: "before"; type: "QVariant" } + Parameter { name: "text"; type: "QVariant" } + } + Method { + name: "removeItem" + type: "QVariant" + Parameter { name: "item"; type: "QVariant" } + } + Property { name: "style"; type: "QQmlComponent"; isPointer: true } + Property { name: "__style"; type: "QObject"; isPointer: true } + Property { name: "__panel"; type: "QQuickItem"; isPointer: true } + Property { name: "styleHints"; type: "QVariant" } + Property { name: "__styleData"; type: "QObject"; isPointer: true } + } + Component { + prototype: "QQuickLoader" + name: "QtQuick.Extras.Private/PieMenuIcon 1.0" + exports: ["QtQuick.Extras.Private/PieMenuIcon 1.0"] + exportMetaObjectRevisions: [0] + isComposite: true + defaultProperty: "data" + Property { name: "control"; type: "PieMenu_QMLTYPE_215"; isPointer: true } + Property { name: "styleData"; type: "QObject"; isPointer: true } + Property { name: "iconSource"; type: "string"; isReadonly: true } + } Component { prototype: "QQuickPopup" name: "QtQuick.Controls/Popup 2.0" exports: ["QtQuick.Controls/Popup 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "contentData" } Component { prototype: "QQuickProgressBar" name: "QtQuick.Controls/ProgressBar 2.0" exports: ["QtQuick.Controls/ProgressBar 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "data" } Component { prototype: "QQuickRadioButton" name: "QtQuick.Controls/RadioButton 2.0" exports: ["QtQuick.Controls/RadioButton 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "data" } Component { prototype: "QQuickRadioDelegate" name: "QtQuick.Controls/RadioDelegate 2.0" exports: ["QtQuick.Controls/RadioDelegate 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "data" } + Component { + prototype: "QQuickRectangle" + name: "QtQuick.Controls.Fusion.impl/RadioIndicator 2.3" + exports: ["QtQuick.Controls.Fusion.impl/RadioIndicator 2.3"] + exportMetaObjectRevisions: [3] + isComposite: true + defaultProperty: "data" + Property { name: "control"; type: "QQuickItem"; isPointer: true } + Property { name: "pressedColor"; type: "QColor"; isReadonly: true } + Property { name: "checkMarkColor"; type: "QColor"; isReadonly: true } + } Component { prototype: "QQuickRectangle" name: "QtQuick.Controls.Material.impl/RadioIndicator 2.0" exports: ["QtQuick.Controls.Material.impl/RadioIndicator 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "data" Property { name: "control"; type: "QQuickItem"; isPointer: true } } + Component { + prototype: "QQuickRectangle" + name: "QtQuick.Controls.Universal.impl/RadioIndicator 2.0" + exports: ["QtQuick.Controls.Universal.impl/RadioIndicator 2.0"] + exportMetaObjectRevisions: [0] + isComposite: true + defaultProperty: "data" + Property { name: "control"; type: "QVariant" } + } Component { prototype: "QQuickRangeSlider" name: "QtQuick.Controls/RangeSlider 2.0" exports: ["QtQuick.Controls/RangeSlider 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "data" } Component { prototype: "QQuickItem" name: "QtQuick.Controls.Material.impl/RectangularGlow 2.0" exports: ["QtQuick.Controls.Material.impl/RectangularGlow 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "data" Property { name: "glowRadius"; type: "double" } Property { name: "spread"; type: "double" } Property { name: "color"; type: "QColor" } Property { name: "cornerRadius"; type: "double" } Property { name: "cached"; type: "bool" } } Component { prototype: "QQuickRoundButton" name: "QtQuick.Controls/RoundButton 2.1" exports: ["QtQuick.Controls/RoundButton 2.1"] exportMetaObjectRevisions: [1] isComposite: true defaultProperty: "data" } Component { prototype: "QQuickScrollBar" name: "QtQuick.Controls/ScrollBar 2.0" exports: ["QtQuick.Controls/ScrollBar 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "data" } Component { prototype: "QQuickScrollIndicator" name: "QtQuick.Controls/ScrollIndicator 2.0" exports: ["QtQuick.Controls/ScrollIndicator 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "data" } Component { prototype: "QQuickScrollView" name: "QtQuick.Controls/ScrollView 2.2" exports: ["QtQuick.Controls/ScrollView 2.2"] exportMetaObjectRevisions: [2] isComposite: true defaultProperty: "contentData" } Component { prototype: "QQuickPage" - name: "ScrollablePage 2.0" - exports: ["ScrollablePage 2.0"] + name: "org.kde.kirigami/ScrollablePage 2.0" + exports: ["org.kde.kirigami/ScrollablePage 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "mainItem" Property { name: "mainItem"; type: "QObject"; isPointer: true } Property { name: "keyboardNavigationEnabled"; type: "bool" } Property { name: "refreshing"; type: "bool" } Property { name: "supportsRefreshing"; type: "bool" } Property { name: "flickable"; type: "QQuickFlickable"; isPointer: true } Property { name: "verticalScrollBarPolicy"; type: "int" } Property { name: "horizontalScrollBarPolicy"; type: "int" } Property { name: "isCurrentPage"; type: "bool"; isReadonly: true } Property { name: "contextualActions"; type: "QObject"; isList: true; isReadonly: true } Property { name: "mainAction"; type: "QObject"; isPointer: true } Property { name: "leftAction"; type: "QObject"; isPointer: true } Property { name: "rightAction"; type: "QObject"; isPointer: true } Property { name: "actions" - type: "PageActionPropertyGroup_QMLTYPE_38" + type: "PageActionPropertyGroup_QMLTYPE_46" isReadonly: true isPointer: true } Signal { name: "backRequested" Parameter { name: "event"; type: "QVariant" } } } Component { prototype: "QQuickRectangle" - name: "Separator 2.0" - exports: ["Separator 2.0"] + name: "org.kde.kirigami/Separator 2.0" + exports: ["org.kde.kirigami/Separator 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "data" } Component { prototype: "QQuickSlider" name: "QtQuick.Controls/Slider 2.0" exports: ["QtQuick.Controls/Slider 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "data" } + Component { + prototype: "QQuickRectangle" + name: "QtQuick.Controls.Fusion.impl/SliderGroove 2.3" + exports: ["QtQuick.Controls.Fusion.impl/SliderGroove 2.3"] + exportMetaObjectRevisions: [3] + isComposite: true + defaultProperty: "data" + Property { name: "control"; type: "QQuickItem"; isPointer: true } + Property { name: "offset"; type: "double" } + Property { name: "progress"; type: "double" } + Property { name: "visualProgress"; type: "double" } + } Component { prototype: "QQuickItem" name: "QtQuick.Controls.Material.impl/SliderHandle 2.0" exports: ["QtQuick.Controls.Material.impl/SliderHandle 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "data" Property { name: "value"; type: "double" } Property { name: "handleHasFocus"; type: "bool" } Property { name: "handlePressed"; type: "bool" } Property { name: "handleHovered"; type: "bool" } Property { name: "initialSize"; type: "int"; isReadonly: true } Property { name: "control"; type: "QVariant"; isReadonly: true } } + Component { + prototype: "QQuickRectangle" + name: "QtQuick.Controls.Fusion.impl/SliderHandle 2.3" + exports: ["QtQuick.Controls.Fusion.impl/SliderHandle 2.3"] + exportMetaObjectRevisions: [3] + isComposite: true + defaultProperty: "data" + Property { name: "palette"; type: "QVariant" } + Property { name: "pressed"; type: "bool" } + Property { name: "hovered"; type: "bool" } + Property { name: "vertical"; type: "bool" } + Property { name: "visualFocus"; type: "bool" } + } Component { prototype: "QQuickSpinBox" name: "QtQuick.Controls/SpinBox 2.0" exports: ["QtQuick.Controls/SpinBox 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "data" } Component { prototype: "QQuickStackView" name: "QtQuick.Controls/StackView 2.0" exports: ["QtQuick.Controls/StackView 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "data" } + Component { + prototype: "QQuickFocusScope" + name: "QtQuick.Extras/StatusIndicator 1.1" + exports: ["QtQuick.Extras/StatusIndicator 1.1"] + exportMetaObjectRevisions: [1] + isComposite: true + defaultProperty: "data" + Property { name: "active"; type: "bool" } + Property { name: "color"; type: "QColor" } + Property { name: "on"; type: "bool" } + Property { name: "style"; type: "QQmlComponent"; isPointer: true } + Property { name: "__style"; type: "QObject"; isPointer: true } + Property { name: "__panel"; type: "QQuickItem"; isPointer: true } + Property { name: "styleHints"; type: "QVariant" } + Property { name: "__styleData"; type: "QObject"; isPointer: true } + } + Component { + prototype: "QQuickFocusScope" + name: "QtQuick.Extras/StatusIndicator 1.0" + exports: ["QtQuick.Extras/StatusIndicator 1.0"] + exportMetaObjectRevisions: [0] + isComposite: true + defaultProperty: "data" + Property { name: "active"; type: "bool" } + Property { name: "color"; type: "QColor" } + Property { name: "on"; type: "bool" } + Property { name: "style"; type: "QQmlComponent"; isPointer: true } + Property { name: "__style"; type: "QObject"; isPointer: true } + Property { name: "__panel"; type: "QQuickItem"; isPointer: true } + Property { name: "styleHints"; type: "QVariant" } + Property { name: "__styleData"; type: "QObject"; isPointer: true } + } Component { prototype: "QQuickSwipeDelegate" name: "QtQuick.Controls/SwipeDelegate 2.0" exports: ["QtQuick.Controls/SwipeDelegate 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "data" } Component { prototype: "QQuickItemDelegate" - name: "SwipeListItem 2.0" - exports: ["SwipeListItem 2.0"] + name: "org.kde.kirigami/SwipeListItem 2.0" + exports: ["org.kde.kirigami/SwipeListItem 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "_default" Property { name: "sectionDelegate"; type: "bool" } Property { name: "separatorVisible"; type: "bool" } Property { name: "actions"; type: "Action_QMLTYPE_36"; isList: true; isReadonly: true } Property { name: "textColor"; type: "QColor" } Property { name: "backgroundColor"; type: "QColor" } Property { name: "activeTextColor"; type: "QColor" } Property { name: "activeBackgroundColor"; type: "QColor" } Property { name: "supportsMouseEvents"; type: "bool" } Property { name: "containsMouse"; type: "bool"; isReadonly: true } Property { name: "_default"; type: "QQuickItem"; isPointer: true } } Component { prototype: "QQuickSwipeView" name: "QtQuick.Controls/SwipeView 2.0" exports: ["QtQuick.Controls/SwipeView 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "contentData" } Component { prototype: "QQuickSwitch" name: "QtQuick.Controls/Switch 2.0" exports: ["QtQuick.Controls/Switch 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "data" } Component { prototype: "QQuickSwitchDelegate" name: "QtQuick.Controls/SwitchDelegate 2.0" exports: ["QtQuick.Controls/SwitchDelegate 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "data" } Component { prototype: "QQuickItem" name: "QtQuick.Controls.Material.impl/SwitchIndicator 2.0" exports: ["QtQuick.Controls.Material.impl/SwitchIndicator 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "data" Property { name: "control"; type: "QQuickItem"; isPointer: true } Property { name: "handle"; type: "QQuickRectangle"; isReadonly: true; isPointer: true } } + Component { + prototype: "QQuickRectangle" + name: "QtQuick.Controls.Fusion.impl/SwitchIndicator 2.3" + exports: ["QtQuick.Controls.Fusion.impl/SwitchIndicator 2.3"] + exportMetaObjectRevisions: [3] + isComposite: true + defaultProperty: "data" + Property { name: "control"; type: "QQuickItem"; isPointer: true } + Property { name: "pressedColor"; type: "QColor"; isReadonly: true } + Property { name: "checkMarkColor"; type: "QColor"; isReadonly: true } + } + Component { + prototype: "QQuickItem" + name: "QtQuick.Controls.Universal.impl/SwitchIndicator 2.0" + exports: ["QtQuick.Controls.Universal.impl/SwitchIndicator 2.0"] + exportMetaObjectRevisions: [0] + isComposite: true + defaultProperty: "data" + Property { name: "control"; type: "QQuickItem"; isPointer: true } + } Component { prototype: "QQuickTabBar" name: "QtQuick.Controls/TabBar 2.0" exports: ["QtQuick.Controls/TabBar 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "contentData" } Component { prototype: "QQuickTabButton" name: "QtQuick.Controls/TabButton 2.0" exports: ["QtQuick.Controls/TabButton 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "data" } Component { prototype: "QQuickTextArea" name: "QtQuick.Controls/TextArea 2.0" exports: ["QtQuick.Controls/TextArea 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "data" } Component { prototype: "QQuickTextField" name: "QtQuick.Controls/TextField 2.0" exports: ["QtQuick.Controls/TextField 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "data" } + Component { + prototype: "QQuickText" + name: "QtQuick.Extras.Private/TextSingleton 1.0" + exports: ["QtQuick.Extras.Private/TextSingleton 1.0"] + exportMetaObjectRevisions: [0] + isComposite: true + isCreatable: false + isSingleton: true + defaultProperty: "data" + } Component { prototype: "QObject" - name: "Theme 2.0" - exports: ["Theme 2.0"] + name: "org.kde.kirigami/Theme 2.0" + exports: ["org.kde.kirigami/Theme 2.0"] exportMetaObjectRevisions: [0] isComposite: true isCreatable: false isSingleton: true Property { name: "textColor"; type: "QColor" } Property { name: "disabledTextColor"; type: "QColor" } Property { name: "highlightColor"; type: "QColor" } Property { name: "highlightedTextColor"; type: "QColor" } Property { name: "backgroundColor"; type: "QColor" } Property { name: "activeTextColor"; type: "QColor" } Property { name: "linkColor"; type: "QColor" } Property { name: "visitedLinkColor"; type: "QColor" } Property { name: "hoverColor"; type: "QColor" } Property { name: "focusColor"; type: "QColor" } Property { name: "negativeTextColor"; type: "QColor" } Property { name: "neutralTextColor"; type: "QColor" } Property { name: "positiveTextColor"; type: "QColor" } Property { name: "buttonTextColor"; type: "QColor" } Property { name: "buttonBackgroundColor"; type: "QColor" } Property { name: "buttonHoverColor"; type: "QColor" } Property { name: "buttonFocusColor"; type: "QColor" } Property { name: "viewTextColor"; type: "QColor" } Property { name: "viewBackgroundColor"; type: "QColor" } Property { name: "viewHoverColor"; type: "QColor" } Property { name: "viewFocusColor"; type: "QColor" } Property { name: "selectionTextColor"; type: "QColor" } Property { name: "selectionBackgroundColor"; type: "QColor" } Property { name: "selectionHoverColor"; type: "QColor" } Property { name: "selectionFocusColor"; type: "QColor" } Property { name: "tooltipTextColor"; type: "QColor" } Property { name: "tooltipBackgroundColor"; type: "QColor" } Property { name: "tooltipHoverColor"; type: "QColor" } Property { name: "tooltipFocusColor"; type: "QColor" } Property { name: "complementaryTextColor"; type: "QColor" } Property { name: "complementaryBackgroundColor"; type: "QColor" } Property { name: "complementaryHoverColor"; type: "QColor" } Property { name: "complementaryFocusColor"; type: "QColor" } Property { name: "defaultFont"; type: "QFont" } Property { name: "children"; type: "QObject"; isList: true; isReadonly: true } Method { name: "__propagateColorSet" type: "QVariant" Parameter { name: "object"; type: "QVariant" } Parameter { name: "context"; type: "QVariant" } } } + Component { + prototype: "QQuickFocusScope" + name: "QtQuick.Extras/ToggleButton 1.0" + exports: ["QtQuick.Extras/ToggleButton 1.0"] + exportMetaObjectRevisions: [0] + isComposite: true + defaultProperty: "data" + Property { name: "isDefault"; type: "bool" } + Property { name: "menu"; type: "Menu_QMLTYPE_123"; isPointer: true } + Property { name: "checkable"; type: "bool" } + Property { name: "checked"; type: "bool" } + Property { name: "exclusiveGroup"; type: "QQuickExclusiveGroup1"; isPointer: true } + Property { name: "action"; type: "QQuickAction1"; isPointer: true } + Property { name: "activeFocusOnPress"; type: "bool" } + Property { name: "text"; type: "string" } + Property { name: "tooltip"; type: "string" } + Property { name: "iconSource"; type: "QUrl" } + Property { name: "iconName"; type: "string" } + Property { name: "__position"; type: "string" } + Property { name: "__iconOverriden"; type: "bool"; isReadonly: true } + Property { name: "__action"; type: "QQuickAction1"; isPointer: true } + Property { name: "__iconAction"; type: "QQuickAction1"; isReadonly: true; isPointer: true } + Property { name: "__behavior"; type: "QVariant" } + Property { name: "__effectivePressed"; type: "bool" } + Property { name: "pressed"; type: "bool"; isReadonly: true } + Property { name: "hovered"; type: "bool"; isReadonly: true } + Signal { name: "clicked" } + Method { name: "accessiblePressAction"; type: "QVariant" } + Property { name: "style"; type: "QQmlComponent"; isPointer: true } + Property { name: "__style"; type: "QObject"; isPointer: true } + Property { name: "__panel"; type: "QQuickItem"; isPointer: true } + Property { name: "styleHints"; type: "QVariant" } + Property { name: "__styleData"; type: "QObject"; isPointer: true } + } Component { prototype: "QQuickToolBar" name: "QtQuick.Controls/ToolBar 2.0" exports: ["QtQuick.Controls/ToolBar 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "contentData" } Component { prototype: "QQuickItem" - name: "ToolBarApplicationHeader 2.0" - exports: ["ToolBarApplicationHeader 2.0"] + name: "org.kde.kirigami/ToolBarApplicationHeader 2.0" + exports: ["org.kde.kirigami/ToolBarApplicationHeader 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "contentItem" Property { name: "_internal"; type: "string" } Property { name: "headerStyle"; type: "int" } Property { name: "backButtonEnabled"; type: "bool" } Property { name: "pageDelegate"; type: "QQmlComponent"; isPointer: true } Property { name: "minimumHeight"; type: "int" } Property { name: "preferredHeight"; type: "int" } Property { name: "maximumHeight"; type: "int" } Property { name: "paintedHeight"; type: "int"; isReadonly: true } Property { name: "__appWindow"; type: "QObject"; isPointer: true } Property { name: "background"; type: "QQuickItem"; isPointer: true } Property { name: "contentItem"; type: "QObject"; isList: true; isReadonly: true } } Component { prototype: "QQuickToolButton" name: "QtQuick.Controls/ToolButton 2.0" exports: ["QtQuick.Controls/ToolButton 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "data" } Component { prototype: "QQuickToolSeparator" name: "QtQuick.Controls/ToolSeparator 2.1" exports: ["QtQuick.Controls/ToolSeparator 2.1"] exportMetaObjectRevisions: [1] isComposite: true defaultProperty: "data" } Component { prototype: "QQuickToolTip" name: "QtQuick.Controls/ToolTip 2.0" exports: ["QtQuick.Controls/ToolTip 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "contentData" } + Component { + prototype: "QQuickFocusScope" + name: "QtQuick.Extras/Tumbler 1.2" + exports: ["QtQuick.Extras/Tumbler 1.2"] + exportMetaObjectRevisions: [2] + isComposite: true + defaultProperty: "data" + Property { name: "__highlightMoveDuration"; type: "int" } + Property { name: "columnCount"; type: "int"; isReadonly: true } + Property { name: "__columnRow"; type: "QQuickRow"; isReadonly: true; isPointer: true } + Property { name: "__movementDelayTimer"; type: "QQmlTimer"; isReadonly: true; isPointer: true } + Method { + name: "__isValidColumnIndex" + type: "QVariant" + Parameter { name: "index"; type: "QVariant" } + } + Method { + name: "__isValidColumnAndItemIndex" + type: "QVariant" + Parameter { name: "columnIndex"; type: "QVariant" } + Parameter { name: "itemIndex"; type: "QVariant" } + } + Method { + name: "currentIndexAt" + type: "QVariant" + Parameter { name: "columnIndex"; type: "QVariant" } + } + Method { + name: "setCurrentIndexAt" + type: "QVariant" + Parameter { name: "columnIndex"; type: "QVariant" } + Parameter { name: "itemIndex"; type: "QVariant" } + Parameter { name: "interval"; type: "QVariant" } + } + Method { + name: "getColumn" + type: "QVariant" + Parameter { name: "columnIndex"; type: "QVariant" } + } + Method { + name: "addColumn" + type: "QVariant" + Parameter { name: "column"; type: "QVariant" } + } + Method { + name: "insertColumn" + type: "QVariant" + Parameter { name: "index"; type: "QVariant" } + Parameter { name: "column"; type: "QVariant" } + } + Method { + name: "__viewAt" + type: "QVariant" + Parameter { name: "index"; type: "QVariant" } + } + Property { name: "style"; type: "QQmlComponent"; isPointer: true } + Property { name: "__style"; type: "QObject"; isPointer: true } + Property { name: "__panel"; type: "QQuickItem"; isPointer: true } + Property { name: "styleHints"; type: "QVariant" } + Property { name: "__styleData"; type: "QObject"; isPointer: true } + } Component { prototype: "QQuickTumbler" name: "QtQuick.Controls/Tumbler 2.0" exports: ["QtQuick.Controls/Tumbler 2.0"] exportMetaObjectRevisions: [0] isComposite: true defaultProperty: "data" } Component { prototype: "QObject" - name: "Units 2.0" - exports: ["Units 2.0"] + name: "QtQuick.Extras/TumblerColumn 1.2" + exports: ["QtQuick.Extras/TumblerColumn 1.2"] + exportMetaObjectRevisions: [2] + isComposite: true + Property { name: "__tumbler"; type: "QQuickItem"; isPointer: true } + Property { name: "__index"; type: "int" } + Property { name: "__currentIndex"; type: "int" } + Property { name: "model"; type: "QVariant" } + Property { name: "role"; type: "string" } + Property { name: "delegate"; type: "QQmlComponent"; isPointer: true } + Property { name: "highlight"; type: "QQmlComponent"; isPointer: true } + Property { name: "columnForeground"; type: "QQmlComponent"; isPointer: true } + Property { name: "visible"; type: "bool" } + Property { name: "activeFocus"; type: "bool"; isReadonly: true } + Property { name: "width"; type: "double" } + Property { name: "currentIndex"; type: "int"; isReadonly: true } + } + Component { + prototype: "QObject" + name: "org.kde.kirigami/Units 2.0" + exports: ["org.kde.kirigami/Units 2.0"] exportMetaObjectRevisions: [0] isComposite: true isCreatable: false isSingleton: true Property { name: "gridUnit"; type: "int" } Property { name: "iconSizes"; type: "QObject"; isPointer: true } Property { name: "smallSpacing"; type: "int" } Property { name: "largeSpacing"; type: "int" } Property { name: "devicePixelRatio"; type: "double" } Property { name: "longDuration"; type: "int" } Property { name: "shortDuration"; type: "int" } Property { name: "toolTipDelay"; type: "int" } Property { name: "wheelScrollLines"; type: "int"; isReadonly: true } Property { name: "fontMetrics"; type: "QVariant" } } } diff --git a/src/controls/private/ActionMenuItemBase.qml b/src/controls/private/ActionMenuItemBase.qml index 2e4e46db..ce3b39c7 100644 --- a/src/controls/private/ActionMenuItemBase.qml +++ b/src/controls/private/ActionMenuItemBase.qml @@ -1,38 +1,36 @@ /* * Copyright 2018 Aleix Pol Gonzalez * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Library General Public License as * published by the Free Software Foundation; either version 2, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details * * You should have received a copy of the GNU Library General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ import QtQuick 2.3 import QtQuick.Controls 2.1 as Controls Controls.MenuItem { id: menuItem property QtObject ourAction text: ourAction.text visible: ourAction.visible !== undefined ? ourAction.visible : true enabled: ourAction.enabled checkable: ourAction.checkable checked: ourAction.checked onTriggered: { ourAction.trigger() } - - readonly property var ourMenu: theMenu.submenuComponent ? theMenu.submenuComponent.createObject(menuItem, { actions: ourAction.children }) : null } diff --git a/src/controls/private/ActionsMenu.qml b/src/controls/private/ActionsMenu.qml index ddc526cd..d5d298b3 100644 --- a/src/controls/private/ActionsMenu.qml +++ b/src/controls/private/ActionsMenu.qml @@ -1,63 +1,61 @@ /* * Copyright 2018 Aleix Pol Gonzalez * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Library General Public License as * published by the Free Software Foundation; either version 2, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details * * You should have received a copy of the GNU Library General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ import QtQuick 2.3 import QtQuick.Controls 2.1 as Controls Controls.Menu { id: theMenu property alias actions: actionsInstantiator.model property Component submenuComponent + //renamed to work on both Qt 5.9 and 5.10 + property Component itemDelegate: Component {ActionMenuItem {}} - Component { - id: menuItemComponent - ActionMenuItem {} - } Instantiator { id: actionsInstantiator delegate: QtObject { readonly property QtObject action: modelData property QtObject item: null Component.onDestruction: if (item) item.destroy() function create() { if (!action.children || action.children.length === 0) { - item = menuItemComponent.createObject(null, { ourAction: action }); + item = theMenu.itemDelegate.createObject(null, { ourAction: action }); theMenu.addItem(item) } else if (theMenu.submenuComponent) { item = theMenu.submenuComponent.createObject(null, { title: action.text, actions: action.children }); theMenu.addMenu(item) } } function remove() { if (!action.children || action.children.length === 0) { theMenu.removeItem(item) } else if (theMenu.submenuComponent) { theMenu.removeMenu(item) } } } onObjectAdded: object.create() onObjectRemoved: object.remove() } } diff --git a/src/kirigamiplugin.cpp b/src/kirigamiplugin.cpp index 914ddf4e..311ae21e 100644 --- a/src/kirigamiplugin.cpp +++ b/src/kirigamiplugin.cpp @@ -1,178 +1,179 @@ /* * Copyright 2009 by Alan Alpert * Copyright 2010 by Ménard Alexis * Copyright 2010 by Marco Martin * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Library General Public License as * published by the Free Software Foundation; either version 2, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Library General Public License for more details * * You should have received a copy of the GNU Library General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "kirigamiplugin.h" #include "enums.h" #include "desktopicon.h" #include "settings.h" #include "formlayoutattached.h" #include "mnemonicattached.h" #include "delegaterecycler.h" #include #include #include #include #include "libkirigami/platformtheme.h" static QString s_selectedStyle; //Q_INIT_RESOURCE(kirigami); #ifdef KIRIGAMI_BUILD_TYPE_STATIC #include #endif QUrl KirigamiPlugin::componentUrl(const QString &fileName) const { foreach (const QString &style, m_stylesFallbackChain) { const QString candidate = QStringLiteral("styles/") + style + QLatin1Char('/') + fileName; if (QFile::exists(resolveFilePath(candidate))) { #ifdef KIRIGAMI_BUILD_TYPE_STATIC return QUrl(QStringLiteral("qrc:/org/kde/kirigami/styles/") + style + QLatin1Char('/') + fileName); #else return QUrl(resolveFileUrl(candidate)); #endif } } #ifdef KIRIGAMI_BUILD_TYPE_STATIC return QUrl(QStringLiteral("qrc:/org/kde/kirigami/") + fileName); #else return QUrl(resolveFileUrl(fileName)); #endif } void KirigamiPlugin::registerTypes(const char *uri) { Q_ASSERT(uri == QLatin1String("org.kde.kirigami")); const QString style = QQuickStyle::name(); #if !defined(Q_OS_ANDROID) && !defined(Q_OS_IOS) //org.kde.desktop.plasma is a couple of files that fall back to desktop by purpose if ((style.isEmpty() || style == QStringLiteral("org.kde.desktop.plasma")) && QFile::exists(resolveFilePath(QStringLiteral("/styles/org.kde.desktop")))) { m_stylesFallbackChain.prepend(QStringLiteral("org.kde.desktop")); } #elif defined(Q_OS_ANDROID) if (!m_stylesFallbackChain.contains(QStringLiteral("Material"))) { m_stylesFallbackChain.prepend(QStringLiteral("Material")); } #else // do we have an iOS specific style? if (!m_stylesFallbackChain.contains(QStringLiteral("Material"))) { m_stylesFallbackChain.prepend(QStringLiteral("Material")); } #endif if (!style.isEmpty() && QFile::exists(resolveFilePath(QStringLiteral("/styles/") + style)) && !m_stylesFallbackChain.contains(style)) { m_stylesFallbackChain.prepend(style); //if we have plasma deps installed, use them for extra integration if (style == QStringLiteral("org.kde.desktop") && QFile::exists(resolveFilePath(QStringLiteral("/styles/org.kde.desktop.plasma")))) { m_stylesFallbackChain.prepend("org.kde.desktop.plasma"); } } else { #if !defined(Q_OS_ANDROID) && !defined(Q_OS_IOS) m_stylesFallbackChain.prepend(QStringLiteral("org.kde.desktop")); #endif } //At this point the fallback chain will be selected->org.kde.desktop->Fallback s_selectedStyle = m_stylesFallbackChain.first(); qmlRegisterSingletonType(uri, 2, 0, "Settings", [](QQmlEngine*, QJSEngine*) -> QObject* { Settings *settings = new Settings; settings->setStyle(s_selectedStyle); return settings; } ); qmlRegisterUncreatableType(uri, 2, 0, "ApplicationHeaderStyle", "Cannot create objects of type ApplicationHeaderStyle"); //old legacy retrocompatible Theme qmlRegisterSingletonType(componentUrl(QStringLiteral("Theme.qml")), uri, 2, 0, "Theme"); qmlRegisterSingletonType(componentUrl(QStringLiteral("Units.qml")), uri, 2, 0, "Units"); qmlRegisterType(componentUrl(QStringLiteral("Action.qml")), uri, 2, 0, "Action"); qmlRegisterType(componentUrl(QStringLiteral("AbstractApplicationHeader.qml")), uri, 2, 0, "AbstractApplicationHeader"); qmlRegisterType(componentUrl(QStringLiteral("AbstractApplicationWindow.qml")), uri, 2, 0, "AbstractApplicationWindow"); qmlRegisterType(componentUrl(QStringLiteral("AbstractListItem.qml")), uri, 2, 0, "AbstractListItem"); qmlRegisterType(componentUrl(QStringLiteral("ApplicationHeader.qml")), uri, 2, 0, "ApplicationHeader"); qmlRegisterType(componentUrl(QStringLiteral("ToolBarApplicationHeader.qml")), uri, 2, 0, "ToolBarApplicationHeader"); qmlRegisterType(componentUrl(QStringLiteral("ApplicationWindow.qml")), uri, 2, 0, "ApplicationWindow"); qmlRegisterType(componentUrl(QStringLiteral("BasicListItem.qml")), uri, 2, 0, "BasicListItem"); qmlRegisterType(componentUrl(QStringLiteral("OverlayDrawer.qml")), uri, 2, 0, "OverlayDrawer"); qmlRegisterType(componentUrl(QStringLiteral("ContextDrawer.qml")), uri, 2, 0, "ContextDrawer"); qmlRegisterType(componentUrl(QStringLiteral("GlobalDrawer.qml")), uri, 2, 0, "GlobalDrawer"); qmlRegisterType(componentUrl(QStringLiteral("Heading.qml")), uri, 2, 0, "Heading"); qmlRegisterType(componentUrl(QStringLiteral("Separator.qml")), uri, 2, 0, "Separator"); qmlRegisterType(componentUrl(QStringLiteral("PageRow.qml")), uri, 2, 0, "PageRow"); //we want a different implementation with Plasma style if (s_selectedStyle == QStringLiteral("Plasma")) { qmlRegisterType(componentUrl(QStringLiteral("Icon.qml")), uri, 2, 0, "Icon"); } else { DesktopIcon::s_internalIconPath = resolveFilePath(QStringLiteral("icons")); qmlRegisterType(uri, 2, 0, "Icon"); } qmlRegisterType(componentUrl(QStringLiteral("Label.qml")), uri, 2, 0, "Label"); //TODO: uncomment for 2.3 release //qmlRegisterTypeNotAvailable(uri, 2, 3, "Label", "Label type not supported anymore, use QtQuick.Controls.Label 2.0 instead"); qmlRegisterType(componentUrl(QStringLiteral("OverlaySheet.qml")), uri, 2, 0, "OverlaySheet"); qmlRegisterType(componentUrl(QStringLiteral("Page.qml")), uri, 2, 0, "Page"); qmlRegisterType(componentUrl(QStringLiteral("ScrollablePage.qml")), uri, 2, 0, "ScrollablePage"); qmlRegisterType(componentUrl(QStringLiteral("SplitDrawer.qml")), uri, 2, 0, "SplitDrawer"); qmlRegisterType(componentUrl(QStringLiteral("SwipeListItem.qml")), uri, 2, 0, "SwipeListItem"); //2.1 qmlRegisterType(componentUrl(QStringLiteral("AbstractItemViewHeader.qml")), uri, 2, 1, "AbstractItemViewHeader"); qmlRegisterType(componentUrl(QStringLiteral("ItemViewHeader.qml")), uri, 2, 1, "ItemViewHeader"); qmlRegisterType(componentUrl(QStringLiteral("AbstractApplicationItem.qml")), uri, 2, 1, "AbstractApplicationItem"); qmlRegisterType(componentUrl(QStringLiteral("ApplicationItem.qml")), uri, 2, 1, "ApplicationItem"); //2.2 //Theme changed from a singleton to an attached property qmlRegisterUncreatableType(uri, 2, 2, "Theme", "Cannot create objects of type Theme, use it as an attached poperty"); //2.3 qmlRegisterType(componentUrl(QStringLiteral("FormLayout.qml")), uri, 2, 3, "FormLayout"); qmlRegisterUncreatableType(uri, 2, 3, "FormData", "Cannot create objects of type FormData, use it as an attached poperty"); qmlRegisterUncreatableType(uri, 2, 3, "MnemonicData", "Cannot create objects of type MnemonicData, use it as an attached poperty"); //2.4 qmlRegisterType(componentUrl(QStringLiteral("AbstractCard.qml")), uri, 2, 4, "AbstractCard"); qmlRegisterType(componentUrl(QStringLiteral("Card.qml")), uri, 2, 4, "Card"); qmlRegisterType(componentUrl(QStringLiteral("CardsListView.qml")), uri, 2, 4, "CardsListView"); qmlRegisterType(componentUrl(QStringLiteral("CardsGridView.qml")), uri, 2, 4, "CardsGridView"); qmlRegisterType(componentUrl(QStringLiteral("CardsLayout.qml")), uri, 2, 4, "CardsLayout"); qmlRegisterType(componentUrl(QStringLiteral("InlineMessage.qml")), uri, 2, 4, "InlineMessage"); qmlRegisterUncreatableType(uri, 2, 4, "MessageType", "Cannot create objects of type MessageType"); qmlRegisterType(uri, 2, 4, "DelegateRecycler"); //2.5 qmlRegisterType(componentUrl(QStringLiteral("ListItemDragHandle.qml")), uri, 2, 5, "ListItemDragHandle"); + qmlRegisterType(componentUrl(QStringLiteral("ActionToolBar.qml")), uri, 2, 5, "ActionToolBar"); qmlProtectModule(uri, 2); } #include "moc_kirigamiplugin.cpp" diff --git a/src/qmldir b/src/qmldir index 9f423011..36bb9137 100644 --- a/src/qmldir +++ b/src/qmldir @@ -1,46 +1,47 @@ module org.kde.kirigami classname KirigamiPlugin depends QtQuick.Controls 1.4 depends QtQuick.Controls.Private 1.0 depends QtQuick.Controls 2.0 depends QtGraphicalEffects 1.0 designersupported typeinfo plugins.qmltypes singleton Theme 2.2 Theme.qml OverlaySheet 2.0 OverlaySheet.qml ApplicationItem 2.1 ApplicationItem.qml AbstractApplicationWindow 2.0 AbstractApplicationWindow.qml FormLayout 2.3 FormLayout.qml GlobalDrawer 2.0 GlobalDrawer.qml BasicListItem 2.0 BasicListItem.qml AbstractItemViewHeader 2.1 AbstractItemViewHeader.qml Heading 2.0 Heading.qml Action 2.0 Action.qml Separator 2.0 Separator.qml ItemViewHeader 2.1 ItemViewHeader.qml SwipeListItem 2.0 SwipeListItem.qml AbstractListItem 2.0 AbstractListItem.qml Icon 2.0 Icon.qml Units 2.0 Units.qml Page 2.0 Page.qml Label 2.0 Label.qml AbstractApplicationItem 2.1 AbstractApplicationItem.qml ToolBarApplicationHeader 2.0 ToolBarApplicationHeader.qml ScrollablePage 2.0 ScrollablePage.qml ApplicationHeader 2.0 ApplicationHeader.qml AbstractApplicationHeader 2.0 AbstractApplicationHeader.qml ContextDrawer 2.0 ContextDrawer.qml ApplicationWindow 2.0 ApplicationWindow.qml PageRow 2.0 PageRow.qml AbstractCard 2.4 AbstractCard.qml Card 2.4 Card.qml CardsLayout 2.4 CardsLayout.qml CardsListView 2.4 CardsListView.qml CardsGridView 2.4 CardsGridView.qml InlineMessage 2.4 InlineMessage.qml ListItemDragHandle 2.5 ListItemDragHandle.qml +ActionToolBar 2.5 ActionToolBar.qml