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.
pull/2/head
Michail Vourlakos 7 years ago
parent aba33ef7d5
commit 61c28978e6

@ -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;

@ -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};

@ -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();
}
}

@ -117,6 +117,13 @@ Item{
&& (!root.inStartup || inForceHiding || inTempHiding)
}
Binding{
target: dock
property:"inEditMode"
when: dock
value: root.editMode
}
Binding{
target: dock
property:"shadow"

Loading…
Cancel
Save