diff --git a/containments/panel/package/contents/ui/SlidingPanel.qml b/containments/panel/package/contents/ui/SlidingPanel.qml index 382c52fe..27ea9334 100644 --- a/containments/panel/package/contents/ui/SlidingPanel.qml +++ b/containments/panel/package/contents/ui/SlidingPanel.qml @@ -40,6 +40,8 @@ NanoShell.FullScreenOverlay { property alias contentItem: contentArea.contentItem property int headerHeight + signal closed + width: Screen.width height: Screen.height @@ -89,6 +91,7 @@ NanoShell.FullScreenOverlay { ScriptAction { script: { window.visible = false; + window.closed(); } } } diff --git a/containments/panel/package/contents/ui/main.qml b/containments/panel/package/contents/ui/main.qml index 0acbeaa7..1a322cb1 100644 --- a/containments/panel/package/contents/ui/main.qml +++ b/containments/panel/package/contents/ui/main.qml @@ -247,6 +247,8 @@ PlasmaCore.ColorScope { openThreshold: units.gridUnit * 10 headerHeight: root.height + onClosed: quickSettings.closed() + contentItem: Item { id: panelContents anchors.fill: parent diff --git a/containments/panel/package/contents/ui/quicksettings/Delegate.qml b/containments/panel/package/contents/ui/quicksettings/Delegate.qml index 83cf77a4..76679a9f 100644 --- a/containments/panel/package/contents/ui/quicksettings/Delegate.qml +++ b/containments/panel/package/contents/ui/quicksettings/Delegate.qml @@ -27,6 +27,7 @@ ColumnLayout { property bool toggled: model.enabled spacing: units.smallSpacing signal closeRequested + signal panelClosed Rectangle { Layout.preferredWidth: units.iconSizes.large + units.smallSpacing * 2 diff --git a/containments/panel/package/contents/ui/quicksettings/QuickSettings.qml b/containments/panel/package/contents/ui/quicksettings/QuickSettings.qml index e8fe9615..b40e07f3 100644 --- a/containments/panel/package/contents/ui/quicksettings/QuickSettings.qml +++ b/containments/panel/package/contents/ui/quicksettings/QuickSettings.qml @@ -29,6 +29,7 @@ Item { implicitHeight: flow.implicitHeight + units.smallSpacing * 6 signal closeRequested + signal closed function toggleAirplane() { print("toggle airplane mode") @@ -193,13 +194,18 @@ Item { Repeater { model: settingsModel delegate: Loader { + id: loader //FIXME: why this is needed? width: flow.columnWidth height: item ? item.implicitHeight : 0 source: Qt.resolvedUrl((model.delegate ? model.delegate : "Delegate") + ".qml") Connections { - target: item - onCloseRequested: root.closeRequested() + target: loader.item + onCloseRequested: root.closeRequested(); + } + Connections { + target: root + onClosed: loader.item.panelClosed(); } } }