Warning, /plasma/latte-dock/containment/package/contents/ui/applet/ShortcutBadge.qml is written in an unsupported language. File is not indexed.

0001 /*
0002     SPDX-FileCopyrightText: 2019 Michail Vourlakos <mvourlakos@gmail.com>
0003     SPDX-License-Identifier: GPL-2.0-or-later
0004 */
0005 
0006 import QtQuick 2.1
0007 import QtGraphicalEffects 1.0
0008 
0009 import org.kde.latte.components 1.0 as LatteComponents
0010 
0011 Loader{
0012     id: appletNumberLoader
0013 
0014     active: appletItem.canShowAppletNumberBadge &&
0015             (appletItem.shortcuts.showPositionShortcutBadges
0016              || appletItem.shortcuts.showAppletShortcutBadges
0017              || appletItem.shortcuts.showMetaBadge && applet.id===appletItem.shortcuts.applicationLauncherId)
0018 
0019     asynchronous: true
0020     visible: badgeString!==""
0021 
0022     property int fixedIndex: -1
0023     property string badgeString: ""
0024 
0025     onActiveChanged: {
0026         if (active && appletItem.shortcuts.showPositionShortcutBadges && appletItem.shortcuts.unifiedGlobalShortcuts) {
0027             fixedIndex = appletItem.indexer.visibleIndex(index);
0028         } else {
0029             fixedIndex = -1;
0030         }
0031     }
0032 
0033     Component.onCompleted: {
0034         if (active && appletItem.shortcuts.showPositionShortcutBadges && appletItem.shortcuts.unifiedGlobalShortcuts) {
0035             fixedIndex = appletItem.indexer.visibleIndex(index);
0036         } else {
0037             fixedIndex = -1;
0038         }
0039     }
0040 
0041     Binding{
0042         target: appletNumberLoader
0043         property:"badgeString"
0044         when: appletItem.shortcuts.showMetaBadge || appletItem.shortcuts.showAppletShortcutBadges
0045         value: {
0046             if (appletItem.shortcuts.showMetaBadge && applet && applet.id === appletItem.shortcuts.applicationLauncherId) {
0047                 return '\u2318';
0048             }
0049 
0050             if (appletItem.shortcuts.showAppletShortcutBadges) {
0051                 var plasmaShortcut = applet ? shortcutsEngine.appletShortcutBadge(applet.id) : "";
0052 
0053                 if (plasmaShortcut !== "") {
0054                     return plasmaShortcut;
0055                 }
0056             }
0057 
0058              if (appletNumberLoader.fixedIndex>=1 && appletNumberLoader.fixedIndex<20) {
0059                 return appletItem.shortcuts.badges[appletNumberLoader.fixedIndex-1];
0060             } else {
0061                 return "";
0062             }
0063         }
0064     }
0065 
0066     sourceComponent: Item{
0067         Loader{
0068             anchors.fill: appletNumber
0069             active: appletItem.myView.itemShadow.isEnabled
0070                     && appletItem.environment.isGraphicsSystemAccelerated
0071 
0072             sourceComponent: DropShadow{
0073                 color: appletItem.myView.itemShadow.shadowColor
0074                 fast: true
0075                 samples: 2 * radius
0076                 source: appletNumber
0077                 radius: appletItem.myView.itemShadow.size/2
0078                 verticalOffset: 2
0079             }
0080         }
0081 
0082         LatteComponents.BadgeText {
0083             id: appletNumber
0084 
0085             // when iconSize < 48, height is always = 24, height / iconSize > 50%
0086             // we prefer center aligned badges to top-left aligned ones
0087             property bool centerInParent: appletItem.metrics.iconSize < 48
0088 
0089             anchors.left: centerInParent? undefined : parent.left
0090             anchors.top: centerInParent? undefined : parent.top
0091             anchors.centerIn: centerInParent? parent : undefined
0092             minimumWidth: 0.4 * (wrapper.zoomScale * appletItem.metrics.iconSize)
0093             height: Math.max(24, 0.4 * (wrapper.zoomScale * appletItem.metrics.iconSize))
0094 
0095             borderColor: colorizerManager.originalLightTextColor
0096             proportion: 0
0097             radiusPerCentage: 100
0098             showNumber: false
0099             showText: true
0100             textValue: appletNumberLoader.badgeString
0101 
0102             style3d: appletItem.myView.badgesIn3DStyle
0103         }
0104     }
0105 }