diff --git a/applets/systemtray/package/contents/ui/ExpanderArrow.qml b/applets/systemtray/package/contents/ui/ExpanderArrow.qml --- a/applets/systemtray/package/contents/ui/ExpanderArrow.qml +++ b/applets/systemtray/package/contents/ui/ExpanderArrow.qml @@ -28,7 +28,7 @@ property bool vertical: plasmoid.formFactor === PlasmaCore.Types.Vertical implicitWidth: units.iconSizes.smallMedium implicitHeight: implicitWidth - visible: root.hiddenLayout.contentItem.children.length > 0 + visible: root.hiddenLayout.count > 0 subText: root.expanded ? i18n("Close popup") : i18n("Show hidden icons") diff --git a/applets/systemtray/package/contents/ui/HiddenItemsView.qml b/applets/systemtray/package/contents/ui/HiddenItemsView.qml --- a/applets/systemtray/package/contents/ui/HiddenItemsView.qml +++ b/applets/systemtray/package/contents/ui/HiddenItemsView.qml @@ -74,8 +74,9 @@ } CurrentItemHighLight { - parent: hiddenTasksColumn.contentItem - target: root.activeApplet && root.activeApplet.parent && root.activeApplet.parent.inHiddenLayout ? root.activeApplet.parent.parent : null - location: PlasmaCore.Types.LeftEdge + readonly property bool hiddenAppletActivated: root.activeApplet && root.activeApplet.parent && root.activeApplet.parent.inHiddenLayout + parent: hiddenAppletActivated ? root.activeApplet.parent : hiddenTasksColumn.contentItem + target: hiddenAppletActivated ? root.activeApplet.parent : null + location: LayoutMirroring.enabled ? PlasmaCore.Types.RightEdge : PlasmaCore.Types.LeftEdge } } diff --git a/applets/systemtray/package/contents/ui/items/AbstractItem.qml b/applets/systemtray/package/contents/ui/items/AbstractItem.qml --- a/applets/systemtray/package/contents/ui/items/AbstractItem.qml +++ b/applets/systemtray/package/contents/ui/items/AbstractItem.qml @@ -28,11 +28,13 @@ height: inVisibleLayout ? visibleLayout.cellHeight : hiddenLayout.iconItemHeight width: inVisibleLayout ? visibleLayout.cellWidth : hiddenLayout.width + property var model + property string itemId property alias text: label.text - property Item iconItem - property int /*PlasmaCore.Types.ItemStatus*/ status - property int /*PlasmaCore.Types.ItemStatus*/ effectiveStatus + property alias iconContainer: iconContainer + property int /*PlasmaCore.Types.ItemStatus*/ status: model.status ? model.status : PlasmaCore.Types.UnknownStatus + property int /*PlasmaCore.Types.ItemStatus*/ effectiveStatus: model.effectiveStatus ? model.effectiveStatus : PlasmaCore.Types.UnknownStatus readonly property bool inHiddenLayout: effectiveStatus === PlasmaCore.Types.PassiveStatus readonly property bool inVisibleLayout: effectiveStatus === PlasmaCore.Types.ActiveStatus @@ -70,7 +72,7 @@ //END CONNECTIONS PulseAnimation { - targetItem: iconItem + targetItem: iconContainer running: (abstractItem.status === PlasmaCore.Types.NeedsAttentionStatus || abstractItem.status === PlasmaCore.Types.RequiresAttentionStatus ) && units.longDuration > 0 @@ -85,15 +87,15 @@ loops: 1 ScaleAnimator { - target: iconItem + target: iconContainer from: 1 to: 0.5 duration: units.shortDuration easing.type: Easing.InQuad } ScaleAnimator { - target: iconItem + target: iconContainer from: 0.5 to: 1 duration: units.shortDuration @@ -122,19 +124,27 @@ } } - PlasmaComponents.Label { - id: label - anchors { - left: parent.left - leftMargin: iconItem ? iconItem.width + units.smallSpacing : 0 - verticalCenter: parent.verticalCenter + Row { + spacing: units.smallSpacing + anchors.horizontalCenter: inVisibleLayout ? parent.horizontalCenter : undefined + Item { + id: iconContainer + anchors.verticalCenter: parent.verticalCenter + width: Math.min(abstractItem.width, abstractItem.height) + height: width + property alias inHiddenLayout: abstractItem.inHiddenLayout + property alias inVisibleLayout: abstractItem.inVisibleLayout } - opacity: visible ? 1 : 0 - visible: abstractItem.inHiddenLayout && !root.activeApplet - Behavior on opacity { - NumberAnimation { - duration: units.longDuration - easing.type: Easing.InOutQuad + PlasmaComponents.Label { + id: label + anchors.verticalCenter: parent.verticalCenter + visible: abstractItem.inHiddenLayout && !root.activeApplet + opacity: visible ? 1 : 0 + Behavior on opacity { + NumberAnimation { + duration: units.longDuration + easing.type: Easing.InOutQuad + } } } } diff --git a/applets/systemtray/package/contents/ui/items/ItemLoader.qml b/applets/systemtray/package/contents/ui/items/ItemLoader.qml --- a/applets/systemtray/package/contents/ui/items/ItemLoader.qml +++ b/applets/systemtray/package/contents/ui/items/ItemLoader.qml @@ -25,13 +25,11 @@ Component.onCompleted: { if (model.itemType === "Plasmoid" && model.hasApplet) { itemLoader.setSource("PlasmoidItem.qml", { - "applet": model.applet, - "effectiveStatus": model.effectiveStatus + "model": model }) } else if (model.itemType === "StatusNotifier") { itemLoader.setSource("StatusNotifierItem.qml", { - "model": model, - "effectiveStatus": model.effectiveStatus + "model": model }) } } diff --git a/applets/systemtray/package/contents/ui/items/PlasmoidItem.qml b/applets/systemtray/package/contents/ui/items/PlasmoidItem.qml --- a/applets/systemtray/package/contents/ui/items/PlasmoidItem.qml +++ b/applets/systemtray/package/contents/ui/items/PlasmoidItem.qml @@ -23,17 +23,15 @@ AbstractItem { id: plasmoidContainer - property Item applet - iconItem: applet + property Item applet: model.applet ? model.applet : null text: applet ? applet.title : "" itemId: applet ? applet.pluginName : "" mainText: applet ? applet.toolTipMainText : "" subText: applet ? applet.toolTipSubText : "" icon: applet ? applet.icon : "" mainItem: applet && applet.toolTipItem ? applet.toolTipItem : null textFormat: applet ? applet.toolTipTextFormat : "" - status: applet ? applet.status : PlasmaCore.Types.UnknownStatus active: root.activeApplet !== applet onClicked: { @@ -52,19 +50,6 @@ } } - onHeightChanged: { - if (applet) { - applet.width = Math.min(plasmoidContainer.width, plasmoidContainer.height) - applet.height = applet.width - } - } - onWidthChanged: { - if (applet) { - applet.width = Math.min(plasmoidContainer.width, plasmoidContainer.height) - applet.height = applet.width - } - } - //This is to make preloading effective, minimizes the scene changes function preloadFullRepresentationItem(fullRepresentationItem) { if (fullRepresentationItem && fullRepresentationItem.parent === null) { @@ -76,11 +61,8 @@ onAppletChanged: { if (applet) { - applet.parent = plasmoidContainer - applet.anchors.left = plasmoidContainer.left - applet.anchors.verticalCenter = plasmoidContainer.verticalCenter - applet.width = Math.min(plasmoidContainer.width, plasmoidContainer.height) - applet.height = applet.width + applet.parent = plasmoidContainer.iconContainer + applet.anchors.fill = applet.parent applet.visible = true preloadFullRepresentationItem(applet.fullRepresentationItem) diff --git a/applets/systemtray/package/contents/ui/items/StatusNotifierItem.qml b/applets/systemtray/package/contents/ui/items/StatusNotifierItem.qml --- a/applets/systemtray/package/contents/ui/items/StatusNotifierItem.qml +++ b/applets/systemtray/package/contents/ui/items/StatusNotifierItem.qml @@ -23,21 +23,18 @@ AbstractItem { id: taskIcon - property var model - itemId: model.Id text: model.Title mainText: model.ToolTipTitle !== "" ? model.ToolTipTitle : model.Title subText: model.ToolTipSubTitle icon: model.ToolTipIcon !== "" ? model.ToolTipIcon : model.Icon ? model.Icon : model.IconName textFormat: Text.AutoText - status: model.status - - iconItem: iconItem - PlasmaCore.IconItem { id: iconItem + parent: taskIcon.iconContainer + anchors.fill: iconItem.parent + source: { if (model.status === PlasmaCore.Types.NeedsAttentionStatus) { if (model.AttentionIcon) { @@ -49,15 +46,7 @@ } return model.Icon ? model.Icon : model.IconName } - - width: Math.min(parent.width, parent.height) - height: width active: taskIcon.containsMouse - - anchors { - left: parent.left - verticalCenter: parent.verticalCenter - } } onContextMenu: { diff --git a/applets/systemtray/package/contents/ui/main.qml b/applets/systemtray/package/contents/ui/main.qml --- a/applets/systemtray/package/contents/ui/main.qml +++ b/applets/systemtray/package/contents/ui/main.qml @@ -92,8 +92,9 @@ } CurrentItemHighLight { - visualParent: tasksGrid - target: root.activeApplet && root.activeApplet.parent && root.activeApplet.parent.inVisibleLayout ? root.activeApplet.parent.parent : root + readonly property bool visibleAppletActivated: root.activeApplet && root.activeApplet.parent && root.activeApplet.parent.inVisibleLayout + parent: visibleAppletActivated ? root.activeApplet.parent : root + target: visibleAppletActivated ? root.activeApplet.parent : root location: plasmoid.location }