From 499c4eb1d13cea85e29ff08870f0fca151ef360c Mon Sep 17 00:00:00 2001 From: Michail Vourlakos Date: Tue, 16 Apr 2019 23:51:06 +0300 Subject: [PATCH] update !compositing panelbackground used until now --following plasma approach and use always even for !compositing mode the widgets/panel-background svg file. This way when Latte and Plasma panels are combined there is uniformity between them. BUG: 406597 --- app/plasma/extended/theme.cpp | 54 ++----------------- app/plasma/extended/theme.h | 6 --- app/view/effects.cpp | 23 ++++++-- app/view/effects.h | 2 + containment/package/contents/ui/PanelBox.qml | 2 +- .../package/contents/ui/VisibilityManager.qml | 6 +++ .../{Container.qml => LayoutsContainer.qml} | 0 containment/package/contents/ui/main.qml | 2 +- 8 files changed, 34 insertions(+), 61 deletions(-) rename containment/package/contents/ui/layouts/{Container.qml => LayoutsContainer.qml} (100%) diff --git a/app/plasma/extended/theme.cpp b/app/plasma/extended/theme.cpp index 810dc9905..c6e4cd466 100644 --- a/app/plasma/extended/theme.cpp +++ b/app/plasma/extended/theme.cpp @@ -111,22 +111,22 @@ bool Theme::isDarkTheme() const int Theme::bottomEdgeRoundness() const { - return m_compositing ? m_bottomEdgeRoundness : m_solidBottomEdgeRoundness; + return m_bottomEdgeRoundness; } int Theme::leftEdgeRoundness() const { - return m_compositing ? m_leftEdgeRoundness : m_solidLeftEdgeRoundness; + return m_leftEdgeRoundness; } int Theme::topEdgeRoundness() const { - return m_compositing ? m_topEdgeRoundness : m_solidTopEdgeRoundness; + return m_topEdgeRoundness; } int Theme::rightEdgeRoundness() const { - return m_compositing ? m_rightEdgeRoundness : m_solidRightEdgeRoundness; + return m_rightEdgeRoundness; } int Theme::outlineWidth() const @@ -386,55 +386,9 @@ void Theme::loadCompositingRoundness() svg->deleteLater(); } -void Theme::loadNonCompositingRoundness() -{ - Plasma::FrameSvg *svg = new Plasma::FrameSvg(this); - svg->setImagePath(QStringLiteral("opaque/dialogs/background")); - svg->setEnabledBorders(Plasma::FrameSvg::AllBorders); - svg->resizeFrame(QSize(100,100)); - - //! bottom roundness - if (svg->hasElementPrefix("south")) { - svg->setElementPrefix("south"); - } - m_solidBottomEdgeRoundness = roundness(svg, Plasma::Types::BottomEdge); - - //! left roundness - if (svg->hasElementPrefix("west")) { - svg->setElementPrefix("west"); - } else { - svg->setElementPrefix(""); - } - m_solidLeftEdgeRoundness = roundness(svg, Plasma::Types::LeftEdge); - - //! top roundness - if (svg->hasElementPrefix("north")) { - svg->setElementPrefix("north"); - } else { - svg->setElementPrefix(""); - } - m_solidTopEdgeRoundness = roundness(svg, Plasma::Types::TopEdge); - - //! right roundness - if (svg->hasElementPrefix("east")) { - svg->setElementPrefix("east"); - } else { - svg->setElementPrefix(""); - } - m_solidRightEdgeRoundness = roundness(svg, Plasma::Types::RightEdge); - - qDebug() << " NON-COMPOSITING MASK ::: " << svg->mask(); - qDebug() << " NON-COMPOSITING MASK BOUNDING RECT ::: " << svg->mask().boundingRect(); - qDebug() << " NON-COMPOSITING ROUNDNESS ::: " << - m_solidBottomEdgeRoundness << " _ " << m_solidLeftEdgeRoundness << " _ " << m_solidTopEdgeRoundness << " _ " << m_solidRightEdgeRoundness; - - svg->deleteLater(); -} - void Theme::loadRoundness() { loadCompositingRoundness(); - loadNonCompositingRoundness(); emit roundnessChanged(); } diff --git a/app/plasma/extended/theme.h b/app/plasma/extended/theme.h index f515da9e4..ade00620c 100644 --- a/app/plasma/extended/theme.h +++ b/app/plasma/extended/theme.h @@ -107,7 +107,6 @@ private: void loadThemePaths(); void loadRoundness(); void loadCompositingRoundness(); - void loadNonCompositingRoundness(); void setOriginalSchemeFile(const QString &file); void parseThemeSvgFiles(); @@ -126,11 +125,6 @@ private: int m_topEdgeRoundness{0}; int m_rightEdgeRoundness{0}; - int m_solidBottomEdgeRoundness{0}; - int m_solidLeftEdgeRoundness{0}; - int m_solidTopEdgeRoundness{0}; - int m_solidRightEdgeRoundness{0}; - int m_outlineWidth{1}; float m_backgroundMaxOpacity{1}; diff --git a/app/view/effects.cpp b/app/view/effects.cpp index 1a332b276..c0843265e 100644 --- a/app/view/effects.cpp +++ b/app/view/effects.cpp @@ -312,6 +312,19 @@ void Effects::setMask(QRect area) emit maskChanged(); } +void Effects::forceMaskRedraw() +{ + if (m_background) { + delete m_background; + } + + m_background = new Plasma::FrameSvg(this); + m_background->setImagePath(QStringLiteral("widgets/panel-background")); + m_background->setEnabledBorders(m_enabledBorders); + + updateMask(); +} + void Effects::updateMask() { if (KWindowSystem::compositingActive()) { @@ -326,12 +339,16 @@ void Effects::updateMask() //! rounded corners to be shown correctly //! the enabledBorders check was added because there was cases //! that the mask region wasn't calculated correctly after location changes - if (!m_background || m_background->enabledBorders() != m_enabledBorders) { + if (!m_background) { + if (m_background && m_background->enabledBorders() != m_enabledBorders) { + delete m_background; + } + m_background = new Plasma::FrameSvg(this); } - if (m_background->imagePath() != "opaque/dialogs/background") { - m_background->setImagePath(QStringLiteral("opaque/dialogs/background")); + if (m_background->imagePath() != "widgets/panel-background") { + m_background->setImagePath(QStringLiteral("widgets/panel-background")); } m_background->setEnabledBorders(m_enabledBorders); diff --git a/app/view/effects.h b/app/view/effects.h index 051066933..3cd0d8702 100644 --- a/app/view/effects.h +++ b/app/view/effects.h @@ -92,6 +92,8 @@ public: Plasma::FrameSvg::EnabledBorders enabledBorders() const; public slots: + Q_INVOKABLE void forceMaskRedraw(); + void clearShadows(); void updateShadows(); void updateEffects(); diff --git a/containment/package/contents/ui/PanelBox.qml b/containment/package/contents/ui/PanelBox.qml index 88a5b89c8..69a0a2bd3 100644 --- a/containment/package/contents/ui/PanelBox.qml +++ b/containment/package/contents/ui/PanelBox.qml @@ -346,7 +346,7 @@ Item{ property rect efGeometry: Qt.rect(-1,-1,0,0) - imagePath: Latte.WindowSystem.compositingActive ? "widgets/panel-background" : "opaque/dialogs/background" + imagePath: "widgets/panel-background" onWidthChanged: updateEffectsArea(); onHeightChanged: updateEffectsArea(); diff --git a/containment/package/contents/ui/VisibilityManager.qml b/containment/package/contents/ui/VisibilityManager.qml index 162a9f731..4edb42b0b 100644 --- a/containment/package/contents/ui/VisibilityManager.qml +++ b/containment/package/contents/ui/VisibilityManager.qml @@ -260,6 +260,12 @@ Item{ } } + Connections{ + target: themeExtended ? themeExtended : null + onRoundnessChanged: latteView.effects.forceMaskRedraw(); + onThemeChanged: latteView.effects.forceMaskRedraw(); + } + onNormalStateChanged: { if (normalState) { root.updateAutomaticIconSize(); diff --git a/containment/package/contents/ui/layouts/Container.qml b/containment/package/contents/ui/layouts/LayoutsContainer.qml similarity index 100% rename from containment/package/contents/ui/layouts/Container.qml rename to containment/package/contents/ui/layouts/LayoutsContainer.qml diff --git a/containment/package/contents/ui/main.qml b/containment/package/contents/ui/main.qml index 2ba024a6c..713fdf2ac 100644 --- a/containment/package/contents/ui/main.qml +++ b/containment/package/contents/ui/main.qml @@ -1836,7 +1836,7 @@ DragDrop.DropArea { VisibilityManager{ id: visibilityManager } - Layouts.Container { + Layouts.LayoutsContainer { id: layoutsContainer }