add inSlideAnimation flag for ViewPart::Positioner

--it can be used in order to enable/disable some codepaths
pull/11/head
Michail Vourlakos 5 years ago
parent aa00d6348b
commit a9d4f91c05

@ -343,7 +343,7 @@ void Positioner::screenChanged(QScreen *scr)
void Positioner::syncGeometry() void Positioner::syncGeometry()
{ {
if (!(m_view->screen() && m_view->containment()) || m_inDelete || m_slideOffset!=0) { if (!(m_view->screen() && m_view->containment()) || m_inDelete || m_slideOffset!=0 || inSlideAnimation()) {
return; return;
} }
@ -718,6 +718,21 @@ bool Positioner::inLocationAnimation()
return ((m_goToLocation != Plasma::Types::Floating) || (m_moveToLayout != "") || m_goToScreen); return ((m_goToLocation != Plasma::Types::Floating) || (m_moveToLayout != "") || m_goToScreen);
} }
bool Positioner::inSlideAnimation() const
{
return m_inSlideAnimation;
}
void Positioner::setInSlideAnimation(bool active)
{
if (m_inSlideAnimation == active) {
return;
}
m_inSlideAnimation = active;
emit inSlideAnimationChanged();
}
void Positioner::updateInLocationAnimation() void Positioner::updateInLocationAnimation()
{ {
bool inLocationAnimation = ((m_goToLocation != Plasma::Types::Floating) || (m_moveToLayout != "") || m_goToScreen); bool inLocationAnimation = ((m_goToLocation != Plasma::Types::Floating) || (m_moveToLayout != "") || m_goToScreen);

@ -49,6 +49,7 @@ class Positioner: public QObject
Q_OBJECT Q_OBJECT
Q_PROPERTY(bool inLocationAnimation READ inLocationAnimation NOTIFY inLocationAnimationChanged) Q_PROPERTY(bool inLocationAnimation READ inLocationAnimation NOTIFY inLocationAnimationChanged)
Q_PROPERTY(bool inSlideAnimation READ inSlideAnimation WRITE setInSlideAnimation NOTIFY inSlideAnimationChanged)
Q_PROPERTY(int currentScreenId READ currentScreenId NOTIFY currentScreenChanged) Q_PROPERTY(int currentScreenId READ currentScreenId NOTIFY currentScreenChanged)
//! animating window slide //! animating window slide
@ -67,6 +68,9 @@ public:
bool inLocationAnimation(); bool inLocationAnimation();
bool inSlideAnimation() const;
void setInSlideAnimation(bool active);
void setScreenToFollow(QScreen *scr, bool updateScreenId = true); void setScreenToFollow(QScreen *scr, bool updateScreenId = true);
void reconsiderScreen(); void reconsiderScreen();
@ -103,6 +107,7 @@ signals:
void onHideWindowsForSlidingOut(); void onHideWindowsForSlidingOut();
void inLocationAnimationChanged(); void inLocationAnimationChanged();
void inSlideAnimationChanged();
private slots: private slots:
void screenChanged(QScreen *screen); void screenChanged(QScreen *screen);
@ -122,6 +127,7 @@ private:
private: private:
bool m_inDelete{false}; bool m_inDelete{false};
bool m_inLocationAnimation{false}; bool m_inLocationAnimation{false};
bool m_inSlideAnimation{false};
int m_slideOffset{0}; int m_slideOffset{0};

@ -819,4 +819,71 @@ Item{
start(); start();
} }
} }
//! Slides Animations for FLOATING+BEHAVEASPLASMAPANEL
/* DISABLED because they dont create a smooth transition
SequentialAnimation{
id: slidingInRealFloating
ScriptAction{
script: {
latteView.positioner.inSlideAnimation = true;
}
}
PropertyAnimation {
target: latteView.positioner
property: "slideOffset"
to: 0
duration: manager.animationSpeed
easing.type: Easing.OutQuad
}
ScriptAction{
script: {
latteView.positioner.inSlideAnimation = false;
}
}
}
SequentialAnimation{
id: slidingOutRealFloating
ScriptAction{
script: {
latteView.positioner.inSlideAnimation = true;
}
}
PropertyAnimation {
target: latteView.positioner
property: "slideOffset"
to: plasmoid.configuration.screenEdgeMargin
duration: manager.animationSpeed
easing.type: Easing.OutQuad
}
ScriptAction{
script: {
latteView.positioner.inSlideAnimation = false;
}
}
}
Connections {
target: root
onHideThickScreenGapChanged: {
if (root.behaveAsPlasmaPanel && !latteView.visibility.isHidden) {
if (hideThickScreenGap) {
slidingInRealFloating.stop();
slidingOutRealFloating.start();
} else {
slidingOutRealFloating.stop();
slidingInRealFloating.start();
}
}
}
}*/
} }

@ -86,7 +86,7 @@ Item {
return (visibilityManager.panelIsBiggerFromIconSize return (visibilityManager.panelIsBiggerFromIconSize
&& (maxZoomFactor === 1.0) && (maxZoomFactor === 1.0)
/*&& (plasmoid.configuration.panelPosition === Latte.Types.Justify)*/ && (plasmoid.configuration.panelPosition === Latte.Types.Justify)
&& !root.editMode && !root.editMode
&& !visibilityManager.inLocationAnimation); && !visibilityManager.inLocationAnimation);
} }

Loading…
Cancel
Save