From 79af925af82036af71b81f4a1924f8ba228c6db6 Mon Sep 17 00:00:00 2001 From: Marco Martin Date: Sun, 21 Jun 2015 10:56:34 -0700 Subject: [PATCH] destroy container when an applet gets removed --- .../package/contents/ui/AppletsArea.qml | 8 +++++++- .../homescreen/package/contents/ui/main.qml | 15 ++++++++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/containments/homescreen/package/contents/ui/AppletsArea.qml b/containments/homescreen/package/contents/ui/AppletsArea.qml index 9804a4c7..630fa37f 100644 --- a/containments/homescreen/package/contents/ui/AppletsArea.qml +++ b/containments/homescreen/package/contents/ui/AppletsArea.qml @@ -62,6 +62,7 @@ MouseEventListener { } draggingApplet.y = mouse.y - draggingApplet.height/2; + draggingApplet.x = mouse.x - draggingApplet.width/2; var pos = mapToItem(appletsLayout, mouse.x, mouse.y); var itemUnderMouse = appletsSpace.layout.childAt(pos.x, pos.y); @@ -91,7 +92,12 @@ MouseEventListener { if (!draggingApplet) { return; } - LayoutManager.insertBefore( dndSpacer, draggingApplet); + if (draggingApplet.x > -draggingApplet.width/4 && draggingApplet.x < draggingApplet.width/4) { + draggingApplet.x = 0; + LayoutManager.insertBefore( dndSpacer, draggingApplet); + } else { + draggingApplet.applet.action("remove").trigger(); + } applicationsView.interactive = true; dndSpacer.parent = colorScope; draggingApplet = null; diff --git a/containments/homescreen/package/contents/ui/main.qml b/containments/homescreen/package/contents/ui/main.qml index 15021855..ce05e27d 100644 --- a/containments/homescreen/package/contents/ui/main.qml +++ b/containments/homescreen/package/contents/ui/main.qml @@ -156,10 +156,12 @@ Item { Component { id: appletContainerComponent MouseArea { + id: appletContainer //not used yet property bool animationsEnabled: false property Item applet z: applet && applet.compactRepresentationItem && applet.expanded ? 99 : 0 + opacity: 1/Math.abs(x/(width/2)) Layout.fillWidth: true Layout.fillHeight: applet && applet.Layout.fillHeight Layout.onFillHeightChanged: { @@ -168,10 +170,21 @@ Item { } } + Connections { + target: plasmoid + + onAppletRemoved: { + print("Applet removed Applet-" + applet.id) + if (applet.id == appletContainer.applet.id) { + appletContainer.destroy(); + } + } + } + onAppletChanged: { if (applet.backgroundHints == PlasmaCore.Types.StandardBackground) { applet.anchors.margins = background.margins.top; - } + } } PlasmaCore.FrameSvgItem { id: background