From 61c28978e67fb9543ee87298a17a2034b46db3eb Mon Sep 17 00:00:00 2001 From: Michail Vourlakos Date: Mon, 12 Feb 2018 16:11:33 +0200 Subject: [PATCH] publish internal ediMode to dock --use internal edit mode to wm's visibilitymanager. More specific use it in AlwaysVisible mode in order to not publish the new struts because the animations have ended. --- app/dock/dockview.cpp | 17 +++++++++++++++++ app/dock/dockview.h | 8 ++++++++ app/dock/visibilitymanager.cpp | 12 ++++++------ .../package/contents/ui/VisibilityManager.qml | 7 +++++++ 4 files changed, 38 insertions(+), 6 deletions(-) diff --git a/app/dock/dockview.cpp b/app/dock/dockview.cpp index 9585b5b56..b0a987739 100644 --- a/app/dock/dockview.cpp +++ b/app/dock/dockview.cpp @@ -1101,6 +1101,23 @@ void DockView::setDrawEffects(bool draw) emit drawEffectsChanged(); } +bool DockView::inEditMode() const +{ + return m_inEditMode; +} + +void DockView::setInEditMode(bool edit) +{ + if (m_inEditMode == edit) { + return; + } + + m_inEditMode = edit; + + emit inEditModeChanged(); +} + + bool DockView::onPrimary() const { return m_onPrimary; diff --git a/app/dock/dockview.h b/app/dock/dockview.h index 18b3ae4b7..963d042fa 100644 --- a/app/dock/dockview.h +++ b/app/dock/dockview.h @@ -66,6 +66,9 @@ class DockView : public PlasmaQuick::ContainmentView { Q_PROPERTY(bool dockWinBehavior READ dockWinBehavior WRITE setDockWinBehavior NOTIFY dockWinBehaviorChanged) Q_PROPERTY(bool drawShadows READ drawShadows WRITE setDrawShadows NOTIFY drawShadowsChanged) Q_PROPERTY(bool drawEffects READ drawEffects WRITE setDrawEffects NOTIFY drawEffectsChanged) + //! Because Latte uses animations, changing to edit mode it may be different than + //! when the isUserConfiguring changes value + Q_PROPERTY(bool inEditMode READ inEditMode WRITE setInEditMode NOTIFY inEditModeChanged) Q_PROPERTY(bool onPrimary READ onPrimary WRITE setOnPrimary NOTIFY onPrimaryChanged) Q_PROPERTY(int alignment READ alignment WRITE setAlignment NOTIFY alignmentChanged) @@ -135,6 +138,9 @@ public: bool drawEffects() const; void setDrawEffects(bool draw); + bool inEditMode() const; + void setInEditMode(bool edit); + float maxLength() const; void setMaxLength(float length); @@ -260,6 +266,7 @@ signals: void enabledBordersChanged(); void widthChanged(); void heightChanged(); + void inEditModeChanged(); void localGeometryChanged(); void managedLayoutChanged(); void maxLengthChanged(); @@ -309,6 +316,7 @@ private: bool m_drawShadows{true}; bool m_drawEffects{false}; bool m_inDelete{false}; + bool m_inEditMode{false}; bool m_onPrimary{true}; int m_dockTransparency{100}; int m_maxThickness{24}; diff --git a/app/dock/visibilitymanager.cpp b/app/dock/visibilitymanager.cpp index bdbcffc7d..81ef9d848 100644 --- a/app/dock/visibilitymanager.cpp +++ b/app/dock/visibilitymanager.cpp @@ -114,18 +114,18 @@ inline void VisibilityManagerPrivate::setMode(Dock::Visibility mode) switch (this->mode) { case Dock::AlwaysVisible: { - if (view->containment() && !view->containment()->isUserConfiguring() && view->screen()) { + if (view->containment() && !dockView->inEditMode() && view->screen()) { updateStrutsBasedOnLayoutsAndActivities(); } connections[0] = connect(view->containment(), &Plasma::Containment::locationChanged , this, [&]() { - if (view->containment()->isUserConfiguring()) + if (dockView->inEditMode()) wm->removeDockStruts(*view); }); - connections[1] = connect(view->containment(), &Plasma::Containment::userConfiguringChanged - , this, [&](bool configuring) { - if (!configuring && view->screen()) + connections[1] = connect(dockView, &DockView::inEditModeChanged + , this, [&]() { + if (!dockView->inEditMode() && view->screen()) wm->setDockStruts(*view, dockGeometry, view->containment()->location()); }); @@ -354,7 +354,7 @@ inline void VisibilityManagerPrivate::setDockGeometry(const QRect &geometry) this->dockGeometry = geometry; - if (mode == Dock::AlwaysVisible && !view->containment()->isUserConfiguring() && view->screen()) { + if (mode == Dock::AlwaysVisible && !dockView->inEditMode() && view->screen()) { updateStrutsBasedOnLayoutsAndActivities(); } } diff --git a/containment/package/contents/ui/VisibilityManager.qml b/containment/package/contents/ui/VisibilityManager.qml index b0c3dd241..00f789241 100644 --- a/containment/package/contents/ui/VisibilityManager.qml +++ b/containment/package/contents/ui/VisibilityManager.qml @@ -117,6 +117,13 @@ Item{ && (!root.inStartup || inForceHiding || inTempHiding) } + Binding{ + target: dock + property:"inEditMode" + when: dock + value: root.editMode + } + Binding{ target: dock property:"shadow"