/**************************************************************************** Copyright (C) 2016 Kai Uwe Broulik <kde@privat.broulik.de> ** ** 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.4import org.kde.plasma.components 2.0 as PlasmaComponentsItem {readonly property int iconWidthDelta: (icon.width - icon.paintedWidth) / 2Item {id: badgeMaskanchors.fill: parentRectangle {readonly property int offset: Math.round(Math.max(units.smallSpacing / 2, badgeMask.width / 32))x: Qt.application.layoutDirection === Qt.RightToLeft ? -offset + iconWidthDelta : parent.width - width + offset - iconWidthDeltay: -offsetwidth: badgeRect.width + offset * 2height: badgeRect.height + offset * 2radius: badgeRect.radius + offset * 2// Badge changes width based on number.onWidthChanged: maskShaderSource.scheduleUpdate()}}ShaderEffectSource {id: iconShaderSourcesourceItem: iconhideSource: true}ShaderEffectSource {id: maskShaderSourcesourceItem: badgeMaskhideSource: truelive: false}ShaderEffect {id: shaderanchors.fill: parentproperty var source: iconShaderSourceproperty var mask: maskShaderSourceonWidthChanged: maskShaderSource.scheduleUpdate()onHeightChanged: maskShaderSource.scheduleUpdate()supportsAtlasTextures: truefragmentShader: "varying highp vec2 qt_TexCoord0;uniform highp float qt_Opacity;uniform lowp sampler2D source;uniform lowp sampler2D mask;void main() {gl_FragColor = texture2D(source, qt_TexCoord0.st) * (1.0 - (texture2D(mask, qt_TexCoord0.st).a)) * qt_Opacity;}"}Badge {id: badgeRectx: Qt.application.layoutDirection === Qt.RightToLeft ? iconWidthDelta : parent.width - width - iconWidthDeltaheight: Math.round(parent.height * 0.4)number: task.smartLauncherItem.count}}