diff --git a/applets/taskmanager/package/contents/ui/AudioStream.qml b/applets/taskmanager/package/contents/ui/AudioStream.qml index fa7bcb660..b93cb4163 100644 --- a/applets/taskmanager/package/contents/ui/AudioStream.qml +++ b/applets/taskmanager/package/contents/ui/AudioStream.qml @@ -1,101 +1,101 @@ /*************************************************************************** * Copyright (C) 2017 Kai Uwe Broulik * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the * * Free Software Foundation, Inc., * * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA . * ***************************************************************************/ import QtQuick 2.0 import org.kde.plasma.core 2.0 as PlasmaCore import "../code/tools.js" as TaskTools Item { id: audioStreamIconBox // Using States rather than a simple Behavior we can apply different transitions, // which allows us to delay showing the icon but hide it instantly still. states: [ State { name: "playing" when: task.playingAudio && !task.muted PropertyChanges { target: audioStreamIconBox opacity: 1 } PropertyChanges { target: audioStreamIcon source: "audio-volume-high" } }, State { name: "muted" when: task.muted PropertyChanges { target: audioStreamIconBox opacity: 1 } PropertyChanges { target: audioStreamIcon source: "audio-volume-muted" } } ] transitions: [ Transition { from: "" to: "playing" SequentialAnimation { // Delay showing the play indicator so we don't flash it for brief sounds. PauseAnimation { - duration: 2000 + duration: inPopup ? 0 : 2000 } NumberAnimation { property: "opacity" duration: units.longDuration } } }, Transition { from: "" to: "muted" SequentialAnimation { NumberAnimation { property: "opacity" duration: units.longDuration } } }, Transition { to: "" NumberAnimation { property: "opacity" duration: units.longDuration } } ] opacity: 0 // The indicator should still shown even if the label is hidden, // but only if there's enough room for it. visible: opacity > 0 && (task.width > icon.paintedWidth + audioStreamIconBox.width) PlasmaCore.IconItem { id: audioStreamIcon anchors.fill: parent } }