provide all background corners option

--provide an option to force showing of all background
corners
pull/19/head
Michail Vourlakos 5 years ago
parent af37c31f36
commit 5e78a0a3c7

@ -67,6 +67,8 @@ void Effects::init()
} }
}); });
connect(this, &Effects::backgroundAllCornersChanged, this, &Effects::updateEnabledBorders);
connect(m_view, &Latte::View::alignmentChanged, this, &Effects::updateEnabledBorders); connect(m_view, &Latte::View::alignmentChanged, this, &Effects::updateEnabledBorders);
connect(m_view, &Latte::View::maxLengthChanged, this, &Effects::updateEnabledBorders); connect(m_view, &Latte::View::maxLengthChanged, this, &Effects::updateEnabledBorders);
connect(m_view, &Latte::View::offsetChanged, this, &Effects::updateEnabledBorders); connect(m_view, &Latte::View::offsetChanged, this, &Effects::updateEnabledBorders);
@ -108,6 +110,21 @@ void Effects::setAnimationsBlocked(bool blocked)
emit animationsBlockedChanged(); emit animationsBlockedChanged();
} }
bool Effects::backgroundAllCorners() const
{
return m_backgroundAllCorners;
}
void Effects::setBackgroundAllCorners(bool allcorners)
{
if (m_backgroundAllCorners == allcorners) {
return;
}
m_backgroundAllCorners = allcorners;
emit backgroundAllCornersChanged();
}
bool Effects::drawShadows() const bool Effects::drawShadows() const
{ {
return m_drawShadows; return m_drawShadows;
@ -514,7 +531,7 @@ void Effects::updateEnabledBorders()
Plasma::FrameSvg::EnabledBorders borders = Plasma::FrameSvg::AllBorders; Plasma::FrameSvg::EnabledBorders borders = Plasma::FrameSvg::AllBorders;
if (!m_view->screenEdgeMarginEnabled()) { if (!m_view->screenEdgeMarginEnabled() && !m_backgroundAllCorners) {
switch (m_view->location()) { switch (m_view->location()) {
case Plasma::Types::TopEdge: case Plasma::Types::TopEdge:
borders &= ~Plasma::FrameSvg::TopBorder; borders &= ~Plasma::FrameSvg::TopBorder;
@ -537,6 +554,7 @@ void Effects::updateEnabledBorders()
} }
} }
if (!m_backgroundAllCorners) {
if ((m_view->location() == Plasma::Types::LeftEdge || m_view->location() == Plasma::Types::RightEdge)) { if ((m_view->location() == Plasma::Types::LeftEdge || m_view->location() == Plasma::Types::RightEdge)) {
if (m_view->maxLength() == 1 && m_view->alignment() == Latte::Types::Justify) { if (m_view->maxLength() == 1 && m_view->alignment() == Latte::Types::Justify) {
if (!m_forceTopBorder) { if (!m_forceTopBorder) {
@ -571,6 +589,7 @@ void Effects::updateEnabledBorders()
borders &= ~Plasma::FrameSvg::RightBorder; borders &= ~Plasma::FrameSvg::RightBorder;
} }
} }
}
if (m_enabledBorders != borders) { if (m_enabledBorders != borders) {
m_enabledBorders = borders; m_enabledBorders = borders;

@ -49,6 +49,7 @@ class Effects: public QObject
Q_PROPERTY(int editShadow READ editShadow WRITE setEditShadow NOTIFY editShadowChanged) Q_PROPERTY(int editShadow READ editShadow WRITE setEditShadow NOTIFY editShadowChanged)
Q_PROPERTY(int innerShadow READ innerShadow WRITE setInnerShadow NOTIFY innerShadowChanged) Q_PROPERTY(int innerShadow READ innerShadow WRITE setInnerShadow NOTIFY innerShadowChanged)
Q_PROPERTY(bool backgroundAllCorners READ backgroundAllCorners WRITE setBackgroundAllCorners NOTIFY backgroundAllCornersChanged)
Q_PROPERTY(float backgroundOpacity READ backgroundOpacity WRITE setBackgroundOpacity NOTIFY backgroundOpacityChanged) Q_PROPERTY(float backgroundOpacity READ backgroundOpacity WRITE setBackgroundOpacity NOTIFY backgroundOpacityChanged)
Q_PROPERTY(QRect mask READ mask WRITE setMask NOTIFY maskChanged) Q_PROPERTY(QRect mask READ mask WRITE setMask NOTIFY maskChanged)
@ -64,6 +65,9 @@ public:
bool animationsBlocked() const; bool animationsBlocked() const;
void setAnimationsBlocked(bool blocked); void setAnimationsBlocked(bool blocked);
bool backgroundAllCorners() const;
void setBackgroundAllCorners(bool allcorners);
bool drawShadows() const; bool drawShadows() const;
void setDrawShadows(bool draw); void setDrawShadows(bool draw);
@ -108,6 +112,7 @@ public slots:
signals: signals:
void animationsBlockedChanged(); void animationsBlockedChanged();
void backgroundAllCornersChanged();
void backgroundOpacityChanged(); void backgroundOpacityChanged();
void drawShadowsChanged(); void drawShadowsChanged();
void drawEffectsChanged(); void drawEffectsChanged();
@ -132,6 +137,7 @@ private:
private: private:
bool m_animationsBlocked{false}; bool m_animationsBlocked{false};
bool m_backgroundAllCorners{false};
bool m_drawShadows{true}; bool m_drawShadows{true};
bool m_drawEffects{false}; bool m_drawEffects{false};
bool m_forceTopBorder{false}; bool m_forceTopBorder{false};

@ -95,6 +95,9 @@
<entry name="panelOutline" type="Bool"> <entry name="panelOutline" type="Bool">
<default>false</default> <default>false</default>
</entry> </entry>
<entry name="backgroundAllCorners" type="Bool">
<default>false</default>
</entry>
<entry name="blurEnabled" type="Bool"> <entry name="blurEnabled" type="Bool">
<default>true</default> <default>true</default>
</entry> </entry>

@ -276,6 +276,15 @@ Item{
} }
//! View::Effects bindings //! View::Effects bindings
Binding{
target: latteView && latteView.effects ? latteView.effects : null
property: "backgroundAllCorners"
when: latteView && latteView.effects
value: plasmoid.configuration.backgroundAllCorners
&& (!root.screenEdgeMarginEnabled
|| (root.screenEdgeMarginEnabled && plasmoid.configuration.maxLength===100 && !root.hideLengthScreenGaps))
}
Binding{ Binding{
target: latteView && latteView.effects ? latteView.effects : null target: latteView && latteView.effects ? latteView.effects : null
property: "backgroundOpacity" property: "backgroundOpacity"

@ -58,7 +58,7 @@ BackgroundProperties{
shadows.bottom: hasBottomBorder ? shadowsSvgItem.margins.bottom : 0 shadows.bottom: hasBottomBorder ? shadowsSvgItem.margins.bottom : 0
//! it can accept negative values in DockMode //! it can accept negative values in DockMode
screenEdgeMargin: root.screenEdgeMarginEnabled ? metrics.margin.screenEdge - shadows.tailThickness : 0 screenEdgeMargin: root.screenEdgeMarginEnabled ? metrics.margin.screenEdge - shadows.tailThickness : -shadows.tailThickness
paddings.top: { paddings.top: {
if (hasTopBorder) { if (hasTopBorder) {

@ -1011,7 +1011,7 @@ PlasmaComponents.Page {
spacing: 2 spacing: 2
visible: dialog.advancedLevel visible: dialog.advancedLevel
readonly property int buttonSize: (dialog.optionsWidth - (spacing*2)) / 3 readonly property int buttonSize: (dialog.optionsWidth - (spacing * (children.length-1))) / children.length
PlasmaComponents.Button { PlasmaComponents.Button {
id: panelBlur id: panelBlur
@ -1057,6 +1057,23 @@ PlasmaComponents.Page {
plasmoid.configuration.panelOutline = !plasmoid.configuration.panelOutline; plasmoid.configuration.panelOutline = !plasmoid.configuration.panelOutline;
} }
} }
PlasmaComponents.Button {
id: allCorners
Layout.minimumWidth: parent.buttonSize
Layout.maximumWidth: Layout.minimumWidth
text: i18n("All Corners")
checked: plasmoid.configuration.backgroundAllCorners
checkable: true
enabled: showBackground.checked
&& ((plasmoid.configuration.screenEdgeMargin===-1)
|| (plasmoid.configuration.screenEdgeMargin>-1 && plasmoid.configuration.maxLength===100))
tooltip: i18n("Background draws all corners at all cases.")
onClicked: {
plasmoid.configuration.backgroundAllCorners = !plasmoid.configuration.backgroundAllCorners;
}
}
} }
LatteComponents.SubHeader { LatteComponents.SubHeader {

Loading…
Cancel
Save