1
0
mirror of https://github.com/KDE/latte-dock.git synced 2025-02-05 05:47:26 +03:00

improvements for applet items

--never overlay icons any more for applets
--applet shadows are now below the applet
--applet icon colors are discovered through
LatteCore.IconItem
This commit is contained in:
Michail Vourlakos 2021-02-03 19:20:13 +02:00
parent b22d8bf5f8
commit e7bd122fab
2 changed files with 37 additions and 48 deletions

View File

@ -725,8 +725,8 @@ Item {
palette: colorizerManager.applyTheme
//!icon colors
iconBackgroundColor: isSquare ? appletItem.wrapper.overlayIconLoader.backgroundColor : colorizerManager.buttonFocusColor
iconGlowColor: isSquare ? appletItem.wrapper.overlayIconLoader.glowColor : colorizerManager.focusGlowColor
iconBackgroundColor: appletItem.wrapper.overlayIconLoader.backgroundColor
iconGlowColor: appletItem.wrapper.overlayIconLoader.glowColor
}
//! InConfigureApplets visual paddings

View File

@ -151,7 +151,6 @@ Item{
property Item wrapperContainer: _wrapperContainer
property Item clickedEffect: _clickedEffect
property Item containerForOverlayIcon: _containerForOverlayIcon
property Item overlayIconLoader: _overlayIconLoader
readonly property int internalSplitterComputedLength: {
@ -360,12 +359,32 @@ Item{
}
}
///Shadow in applets
Loader{
id: appletShadow
anchors.fill: _wrapperContainer
active: appletItem.applet
&& graphicsSystem.isAccelerated
&& !appletColorizer.mustBeShown
&& (appletItem.myView.itemShadow.isEnabled && !appletItem.communicator.indexerIsSupported)
sourceComponent: DropShadow{
anchors.fill: parent
color: appletItem.myView.itemShadow.shadowColor
fast: true
samples: 2 * radius
source: _wrapperContainer
radius: appletItem.myView.itemShadow.size
verticalOffset: root.forceTransparentPanel || root.forcePanelForBusyBackground ? 0 : 2
}
}
//! Applet Main Container
Item{
id:_wrapperContainer
width: root.isHorizontal ? _length : _thickness
height: root.isHorizontal ? _thickness : _length
opacity: appletShadow.active ? 0 : 1
property int _length:0 // through Binding to avoid binding loops
property int _thickness:0 // through Binding to avoid binding loops
@ -413,18 +432,21 @@ Item{
}
}
Item{
id: _containerForOverlayIcon
anchors.fill: parent
}
Loader{
id: _overlayIconLoader
anchors.fill: parent
active: communicator.appletMainIconIsFound
active: communicator.appletMainIconIsFound && indicators.info.needsIconColors
property color backgroundColor: "black"
property color glowColor: "white"
property color backgroundColor: "transparent"
property color glowColor: "transparent"
readonly property bool isIconItemVisible: communicator.appletIconItem && communicator.appletIconItem.visible
onIsIconItemVisibleChanged: {
if (isIconItemVisible) {
communicator.appletIconItem.roundToIconSize = false;
}
}
sourceComponent: LatteCore.IconItem{
id: overlayIconItem
@ -432,16 +454,16 @@ Item{
visible: false
source: {
if (communicator.appletIconItem && communicator.appletIconItem.visible) {
if (communicator.appletIconItem) {
return communicator.appletIconItem.source;
} else if (communicator.appletImageItem && communicator.appletImageItem.visible) {
} else if (communicator.appletImageItem) {
return communicator.appletImageItem.source;
}
return "";
}
providesColors: indicators.info.needsIconColors && source != ""
providesColors: source != ""
usesPlasmaTheme: communicator.appletIconItem && communicator.appletIconItem.visible ? communicator.appletIconItem.usesPlasmaTheme : false
Binding{
@ -577,39 +599,6 @@ Item{
}
}
///Shadow in applets
Loader{
id: appletShadow
anchors.fill: appletItem.appletWrapper
active: appletItem.applet
&& graphicsSystem.isAccelerated
&& !appletColorizer.mustBeShown
&& (appletItem.myView.itemShadow.isEnabled && !appletItem.communicator.indexerIsSupported)
onActiveChanged: {
if (active && !isSeparator && graphicsSystem.isAccelerated) {
wrapperContainer.opacity = 0;
} else {
wrapperContainer.opacity = 1;
}
}
opacity: isSeparator ? 0.4 : 1
sourceComponent: DropShadow{
anchors.fill: parent
color: appletItem.myView.itemShadow.shadowColor
fast: true
samples: 2 * radius
source: appletItem.applet
radius: shadowSize
verticalOffset: root.forceTransparentPanel || root.forcePanelForBusyBackground ? 0 : 2
property int shadowSize : appletItem.myView.itemShadow.size
}
}
BrightnessContrast {
id: _clickedEffect
anchors.fill: _wrapperContainer