In the below example of code there is a GridView id:mainGrid nested in a ListView id:pageList which is the initialItem of the StackView id:stackView.There is a Function which defines the point posOfItemInGridView which is used as x,y point for StackView Transition. How can I get the itematindexPos value from GridView to StackView so the itematindexPos is not undefined.
import QtQml 2.15
import QtQuick.Window 2.2
import QtQml.Models 2.15
import org.kde.plasma.private.kicker 0.1 as Kicker
Kicker.DashboardWindow {
id: allApps
function enterDirectory(){
let centerOfCell = Qt.point((Screen.width/8) * .45/2, (Screen.width/8) * .45/2)
let posOfItemInGridView = Qt.point(itematindexPos.x - centerOfCell.x, itematindexPos.y - centerOfCell.y)
return posOfItemInGridView
}
mainItem:
StackView{
id:stackView
Transition {
id: pushEnterTransition
NumberAnimation {property: "x"; from: -((Screen.width/2)-enterDirectory().x); to: 0; duration: stackView.transitionDuration; easing.type: Easing.OutCubic}
NumberAnimation {property: "y"; from: -((Screen.height/2)-enterDirectory().y); to: 0; duration: stackView.transitionDuration; easing.type: Easing.OutCubic}
}
Transition {
id: popExitTransition
NumberAnimation {property: "x"; from:0; to:-((Screen.width/2)-enterDirectory().x); duration: stackView.transitionDuration * 1.5; easing.type: Easing.OutCubic}
NumberAnimation {property: "y"; from:0; to:-((Screen.height/2)-enterDirectory().y); duration: stackView.transitionDuration * 1.5; easing.type: Easing.OutCubic}
}
initialItem:
MouseArea {
id: mainItemRoot
anchors.fill: parent
hoverEnabled:true
onClicked: {
allApps.toggle();
}
ListView{
id:pageList
anchors.fill:parent
model: Math.ceil(appsModel.count / 35)
delegate:
Item {
width: 7* mainGrid.cellWidth
height: 5* mainGrid.cellHeight
GridView {
id: mainGrid
cellWidth: Screen.width/8
cellHeight: Screen.height/6.1
anchors.fill: parent
MouseArea{
id:areagridView
anchors.fill:parent
onClicked:(mouse)=> {
let posInGridView = Qt.point(mouse.x, mouse.y)
let posInContentItem = mapToItem(mainGrid.contentItem, posInGridView)
let index = mainGrid.indexAt(posInContentItem.x, posInContentItem.y)
let itematindex = mainGrid.itemAtIndex(index)
let itematindexPos = Qt.point(itematindex.x, itematindex.y)
console.log("itematindexPos:", itematindexPos)
}
}
model: visualModel
MyDelegateModel{
id:visualModel
delegate: MyDelegate {
id: delegateRoot
}
}
}
}
}
AppsModel{
id:appsModel
}
}
}
}
Thanks in advance.