import QtQuick 2.12 import QtQuick.Layouts 1.12 import QtQuick.Controls 2.5 import org.ukui.menu.core 1.0 import org.ukui.quick.items 1.0 as UkuiItems MouseArea { id: control property bool isSelect: false hoverEnabled: true states: State { when: control.activeFocus PropertyChanges { target: controlBase borderColor: UkuiItems.Theme.Highlight border.width: 2 } } UkuiItems.StyleBackground { id: controlBase anchors.fill: parent radius: UkuiItems.Theme.minRadius useStyleTransparency: false paletteRole: UkuiItems.Theme.Text alpha: isSelect ? 1.00 : control.containsPress ? 0.16 : control.containsMouse ? 0.08 : 0.00 ToolTip.visible: content.textTruncated && control.containsMouse ToolTip.text: name ToolTip.delay: 500 RowLayout { anchors.fill: parent spacing: 2 IconLabel { id: content Layout.alignment: Qt.AlignLeft | Qt.AlignVCenter Layout.fillWidth: true Layout.fillHeight: true iconHeight: 32; iconWidth: iconHeight appName: name; appIcon: icon display: Display.TextBesideIcon spacing: 12 } Loader { id: tag visible: mainWindow.editMode Layout.alignment: Qt.AlignRight | Qt.AlignVCenter Layout.fillWidth: true Layout.fillHeight: true Layout.maximumWidth: visible ? 28 : 0 Layout.maximumHeight: width Layout.rightMargin: visible ? 4 : 0 Component { id: editImage UkuiItems.Button { width: 28 height: 28 icon.width: 16 icon.height: 16 background.paletteRole: UkuiItems.Theme.Light background.alpha: 1 activeFocusOnTab: false onClicked: { appManager.changeFavoriteState(id, favorite); } background.radius: width / 2 icon.source: favorite ? "ukui-cancel-star-symbolic" : "non-starred-symbolic" } } sourceComponent: mainWindow.editMode ? editImage : null } } } }