diff --git a/client/ui/qml/Controls2/DrawerType.qml b/client/ui/qml/Controls2/DrawerType.qml index 72765d78..d93a4365 100644 --- a/client/ui/qml/Controls2/DrawerType.qml +++ b/client/ui/qml/Controls2/DrawerType.qml @@ -52,12 +52,16 @@ Drawer { } onOpened: { + isOpened = true + if (needCloseButton) { PageController.drawerOpen() } } onClosed: { + isOpened = false + if (needCloseButton) { PageController.drawerClose() } diff --git a/client/ui/qml/Pages2/PageHome.qml b/client/ui/qml/Pages2/PageHome.qml index 8a015e4c..016ad3e3 100644 --- a/client/ui/qml/Pages2/PageHome.qml +++ b/client/ui/qml/Pages2/PageHome.qml @@ -69,6 +69,7 @@ PageType { drag.maximumY: root.height - buttonContent.collapsedHeight drag.minimumY: root.height - root.height * 0.9 + /** If drag area is released at any point other than min or max y, transition to the other state */ onReleased: { if (buttonContent.state === "collapsed" && buttonContent.y < dragArea.drag.maximumY) { buttonContent.state = "expanded" @@ -110,8 +111,11 @@ PageType { ColumnLayout { id: buttonContent + /** Initial height of button content */ property int collapsedHeight: 0 + /** True when expanded objects should be visible */ property bool expandedVisibility: buttonContent.state === "expanded" || (buttonContent.state === "collapsed" && dragArea.drag.active === true) + /** True when collapsed objects should be visible */ property bool collapsedVisibility: buttonContent.state === "collapsed" && dragArea.drag.active === false Drag.active: dragArea.drag.active @@ -123,6 +127,7 @@ PageType { buttonContent.state = "collapsed" } + /** Set once based on first implicit height change once all children are layed out */ onImplicitHeightChanged: { if (buttonContent.state === "collapsed" && collapsedHeight == 0) { collapsedHeight = implicitHeight @@ -147,6 +152,7 @@ PageType { } } + /** Two states of buttonContent, great place to add any future animations for the drawer */ states: [ State { name: "collapsed"