Skip to content
Snippets Groups Projects

Features 2923

Merged Kirill Anisimov requested to merge features-2923 into develop
3 files
+ 169
0
Compare changes
  • Side-by-side
  • Inline
Files
3
+ 121
0
 
import QtQuick 2.4
 
 
DapScrollViewForm
 
{
 
// All the logic (including state names and vars) was taken from master branch
 
 
// Var for current pos while scrolling (in function updateY())
 
property var contentPos: 0.0
 
 
// Connect to new ListView if changed
 
onViewDataChanged:
 
{
 
viewData.contentYChanged.connect(updateY)
 
}
 
 
// Changes position of arrows when scroll
 
function updateY()
 
{
 
if (viewData.atYBeginning)
 
{
 
scrollButton.state = "goUp"
 
}
 
else if (viewData.atYEnd)
 
{
 
scrollButton.state = "goDown"
 
}
 
else if (contentPos > viewData.contentItem.y)
 
{
 
scrollButton.state = "goUp"
 
}
 
else
 
{
 
scrollButton.state = "goDown"
 
}
 
contentPos = viewData.contentItem.y
 
}
 
 
onEntered:
 
{
 
scrollButton.visible = true;
 
}
 
 
onExited:
 
{
 
scrollButton.visible = false;
 
}
 
 
scrollButton.onEntered:
 
{
 
if (scrollButton.state === "goUp")
 
{
 
scrollButtonImage.source = scrollDownButtonHoveredImageSource
 
}
 
else if (scrollButton.state === "goDown")
 
{
 
scrollButtonImage.source = scrollUpButtonHoveredImageSource
 
}
 
}
 
 
scrollButton.onExited:
 
{
 
if (scrollButton.state === "goUp")
 
{
 
scrollButtonImage.source = scrollDownButtonImageSource
 
}
 
else if (scrollButton.state === "goDown")
 
{
 
scrollButtonImage.source = scrollUpButtonImageSource
 
}
 
}
 
 
scrollButton.onClicked:
 
{
 
if(scrollButton.state === "goUp")
 
{
 
viewData.positionViewAtEnd();
 
scrollButton.state = "goDown";
 
}
 
else if(scrollButton.state === "goDown")
 
{
 
viewData.positionViewAtBeginning();
 
scrollButton.state = "goUp";
 
}
 
}
 
 
scrollButton.states:
 
[
 
State
 
{
 
name: "goDown"
 
PropertyChanges
 
{
 
target: scrollButton
 
onStateChanged:
 
{
 
scrollButton.anchors.top = undefined
 
scrollButton.anchors.bottom = parent.bottom
 
scrollButton.exited()
 
}
 
}
 
},
 
 
State
 
{
 
name: "goUp"
 
PropertyChanges
 
{
 
target: scrollButton
 
onStateChanged:
 
{
 
scrollButton.anchors.bottom = undefined
 
scrollButton.anchors.top = parent.top
 
scrollButton.exited()
 
}
 
}
 
}
 
 
]
 
 
scrollButton.state: "goUp"
 
}
Loading