# HG changeset patch # User Migration Sync # Date 1682593203 0 # Node ID 37508d4f31c8f09832e280084a1e7dd86bff11f3 # Parent 0685ed0fb913eb59b21ca5dd9d54ad7d064a3489 [sync] imported 18f98a6..d0858fb from upstream commit d0858fbd09faf50138d7ad3a4559ba1f3e2b930c Author: Daniel Neugebauer Date: Thu Apr 27 12:49:23 2023 +0200 kde-plasma/breeze: configurable outline (MR 292) via patch_outline Source: https://invent.kde.org/plasma/breeze/-/merge_requests/292 commit ef044cae13e73c5f9dd2d078a4879df3987cc69a Author: Daniel Neugebauer Date: Thu Apr 27 12:26:14 2023 +0200 kde-plasma/breeze-5.27.4 copied from main Gentoo repository diff -r 0685ed0fb913 -r 37508d4f31c8 kde-plasma/breeze/Manifest --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kde-plasma/breeze/Manifest Thu Apr 27 11:00:03 2023 +0000 @@ -0,0 +1,3 @@ +AUX 5.27.4_breeze_mr292_outline_intensity_setting.patch 28046 BLAKE2B d23c3fa2c9ddb4d95c1f5faaf28e1ebd9deeb607ef4ab7161566b2c3ef287fd09d33af10a7b2df78624a95af438f081ae2ef309af2152d951b4fd72d6a5d3c00 SHA512 df8412801223619cfb6c0bedf23b40951341170d506038b2d5480da9cebd1ad5eb1de471043870fa9bbc6d5fb1268a3cfe8fba9370260fc49f42b009a7025329 +DIST breeze-5.27.4.tar.xz 87590008 BLAKE2B 478c552d522f101dde971c5a790bd18565068a62c3d089060d5392c1566c07e78536dc64671b9cbd7b024e80de166df8a837f87927e75d7bd3a0bd27de238299 SHA512 4fdb91d661cda973f59016c81172ceebd1a7d76ba7a07f3d6239e8716cea936b6fb89e9661adebc20f44431351eee672a09a75a851cf61f624852b3472826430 +EBUILD breeze-5.27.4.ebuild 1291 BLAKE2B 3c8df115fa90c7d05de18ade18ab000519d7663db634ad54949f63257ad8c8e8f1f0d489a31841596ac06e89bb030bc0f16b7e7e2b9bbef4e182ebf6c7626bdd SHA512 8b9c8545f19d366a3ac382bdc47b52a42feacd867113946f1c812dd343e9b3be52b0951b2ed835306db6277a176d219c7f5b70efc2bd115b3488342541754087 diff -r 0685ed0fb913 -r 37508d4f31c8 kde-plasma/breeze/breeze-5.27.4.ebuild --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kde-plasma/breeze/breeze-5.27.4.ebuild Thu Apr 27 11:00:03 2023 +0000 @@ -0,0 +1,49 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +KFMIN=5.102.0 +PVCUT=$(ver_cut 1-3) +QTMIN=5.15.7 +inherit ecm plasma.kde.org + +DESCRIPTION="Breeze visual style for the Plasma desktop" +HOMEPAGE="https://invent.kde.org/plasma/breeze" + +LICENSE="GPL-2" # TODO: CHECK +SLOT="5" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86" +IUSE="patch_outline" + +RDEPEND=" + >=dev-qt/qtdbus-${QTMIN}:5 + >=dev-qt/qtdeclarative-${QTMIN}:5 + >=dev-qt/qtgui-${QTMIN}:5 + >=dev-qt/qtwidgets-${QTMIN}:5 + >=dev-qt/qtx11extras-${QTMIN}:5 + >=kde-frameworks/frameworkintegration-${KFMIN}:5 + >=kde-frameworks/kcmutils-${KFMIN}:5 + >=kde-frameworks/kconfig-${KFMIN}:5 + >=kde-frameworks/kconfigwidgets-${KFMIN}:5 + >=kde-frameworks/kcoreaddons-${KFMIN}:5 + >=kde-frameworks/kguiaddons-${KFMIN}:5 + >=kde-frameworks/ki18n-${KFMIN}:5 + >=kde-frameworks/kiconthemes-${KFMIN}:5 + >=kde-frameworks/kwidgetsaddons-${KFMIN}:5 + >=kde-plasma/kdecoration-${PVCUT}:5 +" +DEPEND="${RDEPEND}" +BDEPEND=">=kde-frameworks/kcmutils-${KFMIN}:5" +PDEPEND=" + >=kde-frameworks/breeze-icons-${KFMIN}:5 + >=kde-plasma/kde-cli-tools-${PVCUT}:5 +" + +src_prepare() { + if use patch_outline; then + eapply "${FILESDIR}/5.27.4_breeze_mr292_outline_intensity_setting.patch" + fi + + cmake_src_prepare +} diff -r 0685ed0fb913 -r 37508d4f31c8 kde-plasma/breeze/files/5.27.4_breeze_mr292_outline_intensity_setting.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kde-plasma/breeze/files/5.27.4_breeze_mr292_outline_intensity_setting.patch Thu Apr 27 11:00:03 2023 +0000 @@ -0,0 +1,695 @@ +From a77b1e00416d7d946539a3c2335b42e8c81cbe54 Mon Sep 17 00:00:00 2001 +From: Akseli Lahtinen +Date: Sun, 26 Feb 2023 18:37:54 +0200 +Subject: [PATCH 1/7] add m_outlineIntensity, check for outline intensity + before drawing + +--- + kdecoration/breezedecoration.cpp | 62 ++++++++++++++++---------------- + kdecoration/breezedecoration.h | 2 ++ + 2 files changed, 34 insertions(+), 30 deletions(-) + +diff --git a/kdecoration/breezedecoration.cpp b/kdecoration/breezedecoration.cpp +index cc5bb75d7..699221b79 100644 +--- a/kdecoration/breezedecoration.cpp ++++ b/kdecoration/breezedecoration.cpp +@@ -743,7 +743,7 @@ void Decoration::updateShadow() + outlineColor.hslSaturationF(), + qBound(0.1, outlineColor.lightnessF(), 1.0), + s->isAlphaChannelSupported() ? 0.9 : 1.0); +- outlineColor.lightnessF() >= 0.5 ? outlineColor = outlineColor.darker(170) : outlineColor = outlineColor.lighter(170); ++ outlineColor.lightnessF() >= 0.5 ? outlineColor = outlineColor.darker(m_outlineIntensity) : outlineColor = outlineColor.lighter(m_outlineIntensity); + + // Animated case, no cached shadow object + if ((m_shadowAnimation->state() == QAbstractAnimation::Running) && (m_shadowOpacity != 0.0) && (m_shadowOpacity != 1.0)) { +@@ -821,36 +821,38 @@ QSharedPointer Decoration::createShadowObject(co + painter.drawRoundedRect(innerRect, m_scaledCornerRadius + 0.5, m_scaledCornerRadius + 0.5); + + // Draw window outline +- const qreal outlineWidth = 1.001; +- const qreal penOffset = outlineWidth / 2; +- +- QRectF outlineRect = innerRect + QMarginsF(penOffset, penOffset, penOffset, penOffset); +- qreal cornerSize = m_scaledCornerRadius * 2; +- QRectF cornerRect(outlineRect.x(), outlineRect.y(), cornerSize, cornerSize); +- QPainterPath outlinePath; +- +- outlinePath.arcMoveTo(cornerRect, 180); +- outlinePath.arcTo(cornerRect, 180, -90); +- cornerRect.moveTopRight(outlineRect.topRight()); +- outlinePath.arcTo(cornerRect, 90, -90); +- +- // Check if border size is "no borders" or "no side-borders" +- if (borderSize(true) == 0) { +- outlinePath.lineTo(outlineRect.bottomRight()); +- outlinePath.lineTo(outlineRect.bottomLeft()); +- } else { +- cornerRect.moveBottomRight(outlineRect.bottomRight()); +- outlinePath.arcTo(cornerRect, 0, -90); +- cornerRect.moveBottomLeft(outlineRect.bottomLeft()); +- outlinePath.arcTo(cornerRect, 270, -90); +- } +- outlinePath.closeSubpath(); ++ if (m_outlineIntensity > 0) { ++ const qreal outlineWidth = 1.001; ++ const qreal penOffset = outlineWidth / 2; ++ ++ QRectF outlineRect = innerRect + QMarginsF(penOffset, penOffset, penOffset, penOffset); ++ qreal cornerSize = m_scaledCornerRadius * 2; ++ QRectF cornerRect(outlineRect.x(), outlineRect.y(), cornerSize, cornerSize); ++ QPainterPath outlinePath; ++ ++ outlinePath.arcMoveTo(cornerRect, 180); ++ outlinePath.arcTo(cornerRect, 180, -90); ++ cornerRect.moveTopRight(outlineRect.topRight()); ++ outlinePath.arcTo(cornerRect, 90, -90); ++ ++ // Check if border size is "no borders" or "no side-borders" ++ if (borderSize(true) == 0) { ++ outlinePath.lineTo(outlineRect.bottomRight()); ++ outlinePath.lineTo(outlineRect.bottomLeft()); ++ } else { ++ cornerRect.moveBottomRight(outlineRect.bottomRight()); ++ outlinePath.arcTo(cornerRect, 0, -90); ++ cornerRect.moveBottomLeft(outlineRect.bottomLeft()); ++ outlinePath.arcTo(cornerRect, 270, -90); ++ } ++ outlinePath.closeSubpath(); + +- painter.setPen(QPen(outlineColor, outlineWidth)); +- painter.setBrush(Qt::NoBrush); +- painter.setCompositionMode(QPainter::CompositionMode_Source); +- painter.setRenderHint(QPainter::Antialiasing); +- painter.drawPath(outlinePath); ++ painter.setPen(QPen(outlineColor, outlineWidth)); ++ painter.setBrush(Qt::NoBrush); ++ painter.setCompositionMode(QPainter::CompositionMode_Source); ++ painter.setRenderHint(QPainter::Antialiasing); ++ painter.drawPath(outlinePath); ++ } + + painter.end(); + +diff --git a/kdecoration/breezedecoration.h b/kdecoration/breezedecoration.h +index 826e396d8..0cb7864d9 100644 +--- a/kdecoration/breezedecoration.h ++++ b/kdecoration/breezedecoration.h +@@ -131,6 +131,8 @@ private: + qreal m_opacity = 0; + qreal m_shadowOpacity = 0; + ++ int m_outlineIntensity = 170; ++ + //*frame corner radius, scaled according to DPI + qreal m_scaledCornerRadius = 3; + +-- +GitLab + + +From 31a801b59d7cb33a4c1d944ee0ab49637f5c7dc0 Mon Sep 17 00:00:00 2001 +From: Akseli Lahtinen +Date: Sun, 26 Feb 2023 20:08:52 +0200 +Subject: [PATCH 2/7] add outline intensity setting + +--- + kdecoration/breezedecoration.cpp | 5 ++-- + kdecoration/breezedecoration.h | 2 -- + kdecoration/breezesettingsdata.kcfg | 6 +++++ + kdecoration/config/breezeconfigwidget.cpp | 6 +++++ + .../config/ui/breezeconfigurationui.ui | 25 ++++++++++++++++++- + 5 files changed, 39 insertions(+), 5 deletions(-) + +diff --git a/kdecoration/breezedecoration.cpp b/kdecoration/breezedecoration.cpp +index 699221b79..d6ae873e5 100644 +--- a/kdecoration/breezedecoration.cpp ++++ b/kdecoration/breezedecoration.cpp +@@ -743,7 +743,8 @@ void Decoration::updateShadow() + outlineColor.hslSaturationF(), + qBound(0.1, outlineColor.lightnessF(), 1.0), + s->isAlphaChannelSupported() ? 0.9 : 1.0); +- outlineColor.lightnessF() >= 0.5 ? outlineColor = outlineColor.darker(m_outlineIntensity) : outlineColor = outlineColor.lighter(m_outlineIntensity); ++ outlineColor.lightnessF() >= 0.5 ? outlineColor = outlineColor.darker(m_internalSettings->outlineIntensity()) ++ : outlineColor = outlineColor.lighter(m_internalSettings->outlineIntensity()); + + // Animated case, no cached shadow object + if ((m_shadowAnimation->state() == QAbstractAnimation::Running) && (m_shadowOpacity != 0.0) && (m_shadowOpacity != 1.0)) { +@@ -821,7 +822,7 @@ QSharedPointer Decoration::createShadowObject(co + painter.drawRoundedRect(innerRect, m_scaledCornerRadius + 0.5, m_scaledCornerRadius + 0.5); + + // Draw window outline +- if (m_outlineIntensity > 0) { ++ if (m_internalSettings->outlineIntensity() > 0) { + const qreal outlineWidth = 1.001; + const qreal penOffset = outlineWidth / 2; + +diff --git a/kdecoration/breezedecoration.h b/kdecoration/breezedecoration.h +index 0cb7864d9..826e396d8 100644 +--- a/kdecoration/breezedecoration.h ++++ b/kdecoration/breezedecoration.h +@@ -131,8 +131,6 @@ private: + qreal m_opacity = 0; + qreal m_shadowOpacity = 0; + +- int m_outlineIntensity = 170; +- + //*frame corner radius, scaled according to DPI + qreal m_scaledCornerRadius = 3; + +diff --git a/kdecoration/breezesettingsdata.kcfg b/kdecoration/breezesettingsdata.kcfg +index f57f61fe4..616035f9e 100644 +--- a/kdecoration/breezesettingsdata.kcfg ++++ b/kdecoration/breezesettingsdata.kcfg +@@ -35,6 +35,12 @@ + false + + ++ ++ 170 ++ 0 ++ 200 ++ ++ + + + +diff --git a/kdecoration/config/breezeconfigwidget.cpp b/kdecoration/config/breezeconfigwidget.cpp +index f75e1b3b7..e1e0dd63a 100644 +--- a/kdecoration/config/breezeconfigwidget.cpp ++++ b/kdecoration/config/breezeconfigwidget.cpp +@@ -38,6 +38,7 @@ ConfigWidget::ConfigWidget(QWidget *parent, const QVariantList &args) + connect(m_ui.shadowSize, SIGNAL(currentIndexChanged(int)), SLOT(updateChanged())); + connect(m_ui.shadowStrength, SIGNAL(valueChanged(int)), SLOT(updateChanged())); + connect(m_ui.shadowColor, &KColorButton::changed, this, &ConfigWidget::updateChanged); ++ connect(m_ui.outlineIntensity, SIGNAL(valueChanged(int)), SLOT(updateChanged())); + + // track exception changes + connect(m_ui.exceptions, &ExceptionListWidget::changed, this, &ConfigWidget::updateChanged); +@@ -69,6 +70,7 @@ void ConfigWidget::load() + + m_ui.shadowStrength->setValue(qRound(qreal(m_internalSettings->shadowStrength() * 100) / 255)); + m_ui.shadowColor->setColor(m_internalSettings->shadowColor()); ++ m_ui.outlineIntensity->setValue(m_internalSettings->outlineIntensity()); + + // load exceptions + ExceptionList exceptions; +@@ -94,6 +96,7 @@ void ConfigWidget::save() + m_internalSettings->setShadowSize(m_ui.shadowSize->currentIndex()); + m_internalSettings->setShadowStrength(qRound(qreal(m_ui.shadowStrength->value() * 255) / 100)); + m_internalSettings->setShadowColor(m_ui.shadowColor->color()); ++ m_internalSettings->setOutlineIntensity(m_ui.outlineIntensity->value()); + + // save configuration + m_internalSettings->save(); +@@ -136,6 +139,7 @@ void ConfigWidget::defaults() + m_ui.shadowSize->setCurrentIndex(m_internalSettings->shadowSize()); + m_ui.shadowStrength->setValue(qRound(qreal(m_internalSettings->shadowStrength() * 100) / 255)); + m_ui.shadowColor->setColor(m_internalSettings->shadowColor()); ++ m_ui.outlineIntensity->setValue(m_internalSettings->outlineIntensity()); + } + + //_______________________________________________ +@@ -167,6 +171,8 @@ void ConfigWidget::updateChanged() + modified = true; + } else if (m_ui.shadowColor->color() != m_internalSettings->shadowColor()) { + modified = true; ++ } else if (m_ui.outlineIntensity->value() != m_internalSettings->outlineIntensity()) { ++ modified = true; + + // exceptions + } else if (m_ui.exceptions->isChanged()) { +diff --git a/kdecoration/config/ui/breezeconfigurationui.ui b/kdecoration/config/ui/breezeconfigurationui.ui +index f29e38c13..6d1f6a7b2 100644 +--- a/kdecoration/config/ui/breezeconfigurationui.ui ++++ b/kdecoration/config/ui/breezeconfigurationui.ui +@@ -290,7 +290,30 @@ + + + +- ++ ++ ++ ++ Outline intensity ++ ++ ++ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter ++ ++ ++ outlineIntensity ++ ++ ++ ++ ++ ++ ++ 0 ++ ++ ++ 200 ++ ++ ++ ++ + + + Qt::Vertical +-- +GitLab + + +From 70ab16974547b351f50ef977afe05a37c28b289a Mon Sep 17 00:00:00 2001 +From: Akseli Lahtinen +Date: Wed, 1 Mar 2023 20:52:55 +0200 +Subject: [PATCH 3/7] Set outline intensity default to 100, add slider + +--- + kdecoration/breezedecoration.cpp | 2 +- + kdecoration/breezesettingsdata.kcfg | 2 +- + .../config/ui/breezeconfigurationui.ui | 21 ++++++++++++++++--- + 3 files changed, 20 insertions(+), 5 deletions(-) + +diff --git a/kdecoration/breezedecoration.cpp b/kdecoration/breezedecoration.cpp +index d6ae873e5..3e2b145d5 100644 +--- a/kdecoration/breezedecoration.cpp ++++ b/kdecoration/breezedecoration.cpp +@@ -822,7 +822,7 @@ QSharedPointer Decoration::createShadowObject(co + painter.drawRoundedRect(innerRect, m_scaledCornerRadius + 0.5, m_scaledCornerRadius + 0.5); + + // Draw window outline +- if (m_internalSettings->outlineIntensity() > 0) { ++ if (m_internalSettings->outlineIntensity() > 100) { + const qreal outlineWidth = 1.001; + const qreal penOffset = outlineWidth / 2; + +diff --git a/kdecoration/breezesettingsdata.kcfg b/kdecoration/breezesettingsdata.kcfg +index 616035f9e..88db8e643 100644 +--- a/kdecoration/breezesettingsdata.kcfg ++++ b/kdecoration/breezesettingsdata.kcfg +@@ -37,7 +37,7 @@ + + + 170 +- 0 ++ 100 + 200 + + +diff --git a/kdecoration/config/ui/breezeconfigurationui.ui b/kdecoration/config/ui/breezeconfigurationui.ui +index 6d1f6a7b2..ef130a5cf 100644 +--- a/kdecoration/config/ui/breezeconfigurationui.ui ++++ b/kdecoration/config/ui/breezeconfigurationui.ui +@@ -293,7 +293,7 @@ + + + +- Outline intensity ++ Outline intensity: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter +@@ -304,13 +304,28 @@ + + + +- ++ + +- 0 ++ 100 + + + 200 + ++ ++ 10 ++ ++ ++ 10 ++ ++ ++ Qt::Horizontal ++ ++ ++ QSlider::TicksBelow ++ ++ ++ 10 ++ + + + +-- +GitLab + + +From 4bf3cd06c2cc938d161c872bba76427ff993fd2d Mon Sep 17 00:00:00 2001 +From: Akseli Lahtinen +Date: Thu, 2 Mar 2023 12:59:49 +0200 +Subject: [PATCH 4/7] better intensity values + +--- + kdecoration/breezedecoration.cpp | 2 +- + kdecoration/breezesettingsdata.kcfg | 4 ++-- + kdecoration/config/ui/breezeconfigurationui.ui | 10 +++++----- + 3 files changed, 8 insertions(+), 8 deletions(-) + +diff --git a/kdecoration/breezedecoration.cpp b/kdecoration/breezedecoration.cpp +index 3e2b145d5..abc805e70 100644 +--- a/kdecoration/breezedecoration.cpp ++++ b/kdecoration/breezedecoration.cpp +@@ -822,7 +822,7 @@ QSharedPointer Decoration::createShadowObject(co + painter.drawRoundedRect(innerRect, m_scaledCornerRadius + 0.5, m_scaledCornerRadius + 0.5); + + // Draw window outline +- if (m_internalSettings->outlineIntensity() > 100) { ++ if (m_internalSettings->outlineIntensity() > 110) { + const qreal outlineWidth = 1.001; + const qreal penOffset = outlineWidth / 2; + +diff --git a/kdecoration/breezesettingsdata.kcfg b/kdecoration/breezesettingsdata.kcfg +index 88db8e643..1d3db8bd2 100644 +--- a/kdecoration/breezesettingsdata.kcfg ++++ b/kdecoration/breezesettingsdata.kcfg +@@ -37,8 +37,8 @@ + + + 170 +- 100 +- 200 ++ 110 ++ 250 + + + +diff --git a/kdecoration/config/ui/breezeconfigurationui.ui b/kdecoration/config/ui/breezeconfigurationui.ui +index ef130a5cf..3385c97e9 100644 +--- a/kdecoration/config/ui/breezeconfigurationui.ui ++++ b/kdecoration/config/ui/breezeconfigurationui.ui +@@ -306,16 +306,16 @@ + + + +- 100 ++ 110 + + +- 200 ++ 250 + + +- 10 ++ 20 + + +- 10 ++ 20 + + + Qt::Horizontal +@@ -324,7 +324,7 @@ + QSlider::TicksBelow + + +- 10 ++ 20 + + + +-- +GitLab + + +From 0f31f23648463ce4c0aa9e90fb74deccff273bc3 Mon Sep 17 00:00:00 2001 +From: Akseli Lahtinen +Date: Thu, 2 Mar 2023 18:13:14 +0200 +Subject: [PATCH 5/7] change from slider to combobox + +--- + kdecoration/breezedecoration.cpp | 25 ++++++++-- + kdecoration/breezesettingsdata.kcfg | 14 ++++-- + kdecoration/config/breezeconfigwidget.cpp | 14 ++++-- + .../config/ui/breezeconfigurationui.ui | 48 ++++++++++--------- + 4 files changed, 67 insertions(+), 34 deletions(-) + +diff --git a/kdecoration/breezedecoration.cpp b/kdecoration/breezedecoration.cpp +index abc805e70..eb4a7d0ec 100644 +--- a/kdecoration/breezedecoration.cpp ++++ b/kdecoration/breezedecoration.cpp +@@ -111,6 +111,25 @@ inline CompositeShadowParams lookupShadowParams(int size) + return s_shadowParams[3]; + } + } ++ ++inline int lookupOutlineIntensity(int intensity) ++{ ++ switch (intensity) { ++ case Breeze::InternalSettings::OutlineOff: ++ return 100; ++ case Breeze::InternalSettings::OutlineLow: ++ return 130; ++ case Breeze::InternalSettings::OutlineMedium: ++ return 170; ++ case Breeze::InternalSettings::OutlineHigh: ++ return 210; ++ case Breeze::InternalSettings::OutlineMaximum: ++ return 250; ++ default: ++ // Fallback to the Medium intensity. ++ return 170; ++ } ++} + } + + namespace Breeze +@@ -743,8 +762,8 @@ void Decoration::updateShadow() + outlineColor.hslSaturationF(), + qBound(0.1, outlineColor.lightnessF(), 1.0), + s->isAlphaChannelSupported() ? 0.9 : 1.0); +- outlineColor.lightnessF() >= 0.5 ? outlineColor = outlineColor.darker(m_internalSettings->outlineIntensity()) +- : outlineColor = outlineColor.lighter(m_internalSettings->outlineIntensity()); ++ outlineColor.lightnessF() >= 0.5 ? outlineColor = outlineColor.darker(lookupOutlineIntensity(m_internalSettings->outlineIntensity())) ++ : outlineColor = outlineColor.lighter(lookupOutlineIntensity(m_internalSettings->outlineIntensity())); + + // Animated case, no cached shadow object + if ((m_shadowAnimation->state() == QAbstractAnimation::Running) && (m_shadowOpacity != 0.0) && (m_shadowOpacity != 1.0)) { +@@ -822,7 +841,7 @@ QSharedPointer Decoration::createShadowObject(co + painter.drawRoundedRect(innerRect, m_scaledCornerRadius + 0.5, m_scaledCornerRadius + 0.5); + + // Draw window outline +- if (m_internalSettings->outlineIntensity() > 110) { ++ if (lookupOutlineIntensity(m_internalSettings->outlineIntensity()) > 110) { + const qreal outlineWidth = 1.001; + const qreal penOffset = outlineWidth / 2; + +diff --git a/kdecoration/breezesettingsdata.kcfg b/kdecoration/breezesettingsdata.kcfg +index 1d3db8bd2..559983d79 100644 +--- a/kdecoration/breezesettingsdata.kcfg ++++ b/kdecoration/breezesettingsdata.kcfg +@@ -35,12 +35,16 @@ + false + + +- +- 170 +- 110 +- 250 ++ ++ ++ ++ ++ ++ ++ ++ ++ OutlineMedium + +- + + + +diff --git a/kdecoration/config/breezeconfigwidget.cpp b/kdecoration/config/breezeconfigwidget.cpp +index e1e0dd63a..d57c08463 100644 +--- a/kdecoration/config/breezeconfigwidget.cpp ++++ b/kdecoration/config/breezeconfigwidget.cpp +@@ -70,7 +70,13 @@ void ConfigWidget::load() + + m_ui.shadowStrength->setValue(qRound(qreal(m_internalSettings->shadowStrength() * 100) / 255)); + m_ui.shadowColor->setColor(m_internalSettings->shadowColor()); +- m_ui.outlineIntensity->setValue(m_internalSettings->outlineIntensity()); ++ ++ // load outline intensity ++ if (m_internalSettings->outlineIntensity() <= InternalSettings::OutlineMaximum) { ++ m_ui.outlineIntensity->setCurrentIndex(m_internalSettings->outlineIntensity()); ++ } else { ++ m_ui.outlineIntensity->setCurrentIndex(InternalSettings::OutlineMedium); ++ } + + // load exceptions + ExceptionList exceptions; +@@ -96,7 +102,7 @@ void ConfigWidget::save() + m_internalSettings->setShadowSize(m_ui.shadowSize->currentIndex()); + m_internalSettings->setShadowStrength(qRound(qreal(m_ui.shadowStrength->value() * 255) / 100)); + m_internalSettings->setShadowColor(m_ui.shadowColor->color()); +- m_internalSettings->setOutlineIntensity(m_ui.outlineIntensity->value()); ++ m_internalSettings->setOutlineIntensity(m_ui.outlineIntensity->currentIndex()); + + // save configuration + m_internalSettings->save(); +@@ -139,7 +145,7 @@ void ConfigWidget::defaults() + m_ui.shadowSize->setCurrentIndex(m_internalSettings->shadowSize()); + m_ui.shadowStrength->setValue(qRound(qreal(m_internalSettings->shadowStrength() * 100) / 255)); + m_ui.shadowColor->setColor(m_internalSettings->shadowColor()); +- m_ui.outlineIntensity->setValue(m_internalSettings->outlineIntensity()); ++ m_ui.outlineIntensity->setCurrentIndex(m_internalSettings->outlineIntensity()); + } + + //_______________________________________________ +@@ -171,7 +177,7 @@ void ConfigWidget::updateChanged() + modified = true; + } else if (m_ui.shadowColor->color() != m_internalSettings->shadowColor()) { + modified = true; +- } else if (m_ui.outlineIntensity->value() != m_internalSettings->outlineIntensity()) { ++ } else if (m_ui.outlineIntensity->currentIndex() != m_internalSettings->outlineIntensity()) { + modified = true; + + // exceptions +diff --git a/kdecoration/config/ui/breezeconfigurationui.ui b/kdecoration/config/ui/breezeconfigurationui.ui +index 3385c97e9..e0283c93a 100644 +--- a/kdecoration/config/ui/breezeconfigurationui.ui ++++ b/kdecoration/config/ui/breezeconfigurationui.ui +@@ -304,28 +304,32 @@ + + + +- +- +- 110 +- +- +- 250 +- +- +- 20 +- +- +- 20 +- +- +- Qt::Horizontal +- +- +- QSlider::TicksBelow +- +- +- 20 +- ++ ++ ++ ++ Off ++ ++ ++ ++ ++ Low ++ ++ ++ ++ ++ Medium ++ ++ ++ ++ ++ High ++ ++ ++ ++ ++ Maximum ++ ++ + + + +-- +GitLab + + +From 2a41e807948af3cca43af814323f6d6e5295fb93 Mon Sep 17 00:00:00 2001 +From: Akseli Lahtinen +Date: Fri, 3 Mar 2023 00:49:14 +0200 +Subject: [PATCH 6/7] rename shadow tab to shadows and outline + +--- + kdecoration/config/ui/breezeconfigurationui.ui | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/kdecoration/config/ui/breezeconfigurationui.ui b/kdecoration/config/ui/breezeconfigurationui.ui +index e0283c93a..a760f7b71 100644 +--- a/kdecoration/config/ui/breezeconfigurationui.ui ++++ b/kdecoration/config/ui/breezeconfigurationui.ui +@@ -193,13 +193,13 @@ + + + +- Shadows ++ Shadows and Outline + + + + + +- Si&ze: ++ Shadow size: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter +@@ -241,7 +241,7 @@ + + + +- S&trength: ++ Shadow strength: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter +@@ -280,7 +280,7 @@ + + + +- Color: ++ Shadow color: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter +-- +GitLab + + +From d66927cb4994e91052f4e2441309e9354762d59c Mon Sep 17 00:00:00 2001 +From: Nate Graham +Date: Fri, 3 Mar 2023 20:17:54 +0000 +Subject: [PATCH 7/7] change 110 to 100 + +--- + kdecoration/breezedecoration.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/kdecoration/breezedecoration.cpp b/kdecoration/breezedecoration.cpp +index eb4a7d0ec..410943f2a 100644 +--- a/kdecoration/breezedecoration.cpp ++++ b/kdecoration/breezedecoration.cpp +@@ -841,7 +841,7 @@ QSharedPointer Decoration::createShadowObject(co + painter.drawRoundedRect(innerRect, m_scaledCornerRadius + 0.5, m_scaledCornerRadius + 0.5); + + // Draw window outline +- if (lookupOutlineIntensity(m_internalSettings->outlineIntensity()) > 110) { ++ if (lookupOutlineIntensity(m_internalSettings->outlineIntensity()) > 100) { + const qreal outlineWidth = 1.001; + const qreal penOffset = outlineWidth / 2; + +-- +GitLab + diff -r 0685ed0fb913 -r 37508d4f31c8 kde-plasma/breeze/metadata.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kde-plasma/breeze/metadata.xml Thu Apr 27 11:00:03 2023 +0000 @@ -0,0 +1,7 @@ + + + + + makes window border outline configurable (Breeze MR 292) + +