diff --git a/lookandfeel/contents/components/ActionButton.qml b/lookandfeel/contents/components/ActionButton.qml --- a/lookandfeel/contents/components/ActionButton.qml +++ b/lookandfeel/contents/components/ActionButton.qml @@ -28,6 +28,8 @@ property alias containsMouse: mouseArea.containsMouse property alias font: label.font property alias labelRendering: label.renderType + property alias circleOpacity: iconCircle.opacity + property alias circleVisiblity: iconCircle.visible signal clicked activeFocusOnTab: true @@ -37,6 +39,30 @@ implicitWidth: Math.max(iconSize + units.largeSpacing * 2, label.contentWidth) implicitHeight: iconSize + units.smallSpacing + label.implicitHeight + opacity: activeFocus || containsMouse ? 1 : 0.85 + Behavior on opacity { + PropertyAnimation { // OpacityAnimator makes it turn black at random intervals + duration: units.longDuration * 2 + easing.type: Easing.InOutQuad + } + } + + Rectangle { + id: iconCircle + anchors.centerIn: icon + width: iconSize + units.smallSpacing + height: width + radius: width + color: PlasmaCore.ColorScope.textColor + opacity: activeFocus || containsMouse ? 0.15 : 0 + Behavior on opacity { + PropertyAnimation { // OpacityAnimator makes it turn black at random intervals + duration: units.longDuration * 3 + easing.type: Easing.InOutQuad + } + } + } + PlasmaCore.IconItem { id: icon anchors { diff --git a/lookandfeel/contents/logout/LogoutButton.qml b/lookandfeel/contents/logout/LogoutButton.qml --- a/lookandfeel/contents/logout/LogoutButton.qml +++ b/lookandfeel/contents/logout/LogoutButton.qml @@ -30,6 +30,8 @@ onClicked: action() Layout.alignment: Qt.AlignTop iconSize: units.iconSizes.huge + circleVisiblity: activeFocus || containsMouse + circleOpacity: 0.15 // Selected option's circle is instantly visible opacity: activeFocus || containsMouse ? 1 : 0.5 labelRendering: opacity != 1 ? Text.QtRendering : Text.NativeRendering // Remove once we've solved Qt bug: https://bugreports.qt.io/browse/QTBUG-70138 (KDE bug: https://bugs.kde.org/show_bug.cgi?id=401644) font.underline: false