From 5f2df7ae2ce09e7cbf3dfaa5fd49c50ddbd076e6 Mon Sep 17 00:00:00 2001 From: Ivailo Monev Date: Sun, 21 Apr 2024 06:21:36 +0300 Subject: [PATCH] plasma: set the preferred size of lockout applet widgets because the panel containment, for example, resizes the applet to the preferred size when the sizeHintChanged() signal is emitted. this makes the applet stretch well in panels Signed-off-by: Ivailo Monev --- plasma/applets/digital-clock/digitalclock.cpp | 10 +++++----- plasma/applets/lockout/lockout.cpp | 8 ++++++++ 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/plasma/applets/digital-clock/digitalclock.cpp b/plasma/applets/digital-clock/digitalclock.cpp index 11c03e2a..579cffc2 100644 --- a/plasma/applets/digital-clock/digitalclock.cpp +++ b/plasma/applets/digital-clock/digitalclock.cpp @@ -152,16 +152,16 @@ void DigitalClockApplet::constraintsEvent(Plasma::Constraints constraints) if (constraints && Plasma::SizeConstraint || constraints & Plasma::FormFactorConstraint) { switch (formFactor()) { // panel - case Plasma::FormFactor::Vertical: { - setMinimumSize(0, 0); - setPreferredSize(kClockSize(contentsRect(), m_clockstring, true)); - break; - } case Plasma::FormFactor::Horizontal: { setMinimumSize(0, 0); setPreferredSize(kClockSize(contentsRect(), m_clockstring, false)); break; } + case Plasma::FormFactor::Vertical: { + setMinimumSize(0, 0); + setPreferredSize(kClockSize(contentsRect(), m_clockstring, true)); + break; + } // desktop-like default: { setMinimumSize(kClockSize(QRect(), m_clockstring, false)); diff --git a/plasma/applets/lockout/lockout.cpp b/plasma/applets/lockout/lockout.cpp index e43a8922..6d6e2d8a 100644 --- a/plasma/applets/lockout/lockout.cpp +++ b/plasma/applets/lockout/lockout.cpp @@ -426,6 +426,14 @@ void LockoutApplet::updateSizes() break; } } + const QSizeF contentsrect = contentsRect().size(); + const qreal iconsizereal = qMin(contentsrect.width(), contentsrect.height()); + const QSizeF iconsizef = QSizeF(iconsizereal, iconsizereal); + m_switchwidget->setPreferredSize(iconsizef); + m_shutdownwidget->setPreferredSize(iconsizef); + m_toramwidget->setPreferredSize(iconsizef); + m_todiskwidget->setPreferredSize(iconsizef); + m_hybridwidget->setPreferredSize(iconsizef); emit sizeHintChanged(Qt::PreferredSize); }