/* * Copyright 2011 Marco Martin * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Library General Public License as * published by the Free Software Foundation; either version 2, 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 Library General Public License for more details * * You should have received a copy of the GNU Library 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.1 import org.kde.plasma.core 2.0 as PlasmaCore Item { id: taskIcon width: parent.height height: width //hide application status icons opacity: (Category != "ApplicationStatus" && Status != "Passive") ? 1 : 0 onOpacityChanged: visible = opacity Behavior on opacity { NumberAnimation { duration: 300 easing.type: Easing.InOutQuad } } PlasmaCore.IconItem { source: IconName ? IconName : Icon width: Math.min(parent.width, parent.height) height: width anchors.centerIn: parent colorGroup: PlasmaCore.ColorScope.colorGroup } MouseArea { anchors.fill: taskIcon onClicked: { //print(iconSvg.hasElement(IconName)) var service = statusNotifierSource.serviceForSource(DataEngineSource) var operation = service.operationDescription("Activate") operation.x = parent.x // kmix shows main window instead of volume popup if (parent.x, parent.y) == (0, 0), which is the case here. // I am passing a position right below the panel (assuming panel is at screen's top). // Plasmoids' popups are already shown below the panel, so this make kmix's popup more consistent // to them. operation.y = parent.y + parent.height + 6 service.startOperationCall(operation) } } }