Fixed SubListViewPage layout when some list items have children while others do not

This commit is contained in:
nikwen.developer@gmail.com
2014-04-23 22:01:47 +00:00
committed by nikwen.developer@gmail.com
parent d9e30202be
commit aaddb1759a
2 changed files with 15 additions and 3 deletions

View File

@@ -134,9 +134,13 @@ Page {
}
clip: true
property bool hasProgression: false
model: VisualDataModel {
id: visualDataModel
onRootIndexChanged: subListView.hasProgression = false
delegate: ListItemDelegate {
id: delegate
text: model.mainText
@@ -148,12 +152,19 @@ Page {
firstButtonImageSource: "../../icons/toolbar/media-playback-start-light.svg"
secondButtonImageSource: "../../icons/toolbar/add.svg"
progression: model.hasChildren
forceProgressionSpacing: subListView.hasProgression
onFirstImageButtonClicked: subListViewPage.add(index, true)
onSecondImageButtonClicked: subListViewPage.add(index, false)
onClicked: model.hasChildren ? subListViewPage.onDelegateClicked(index, model.titleText) : "";
onItemRemoved: subListViewPage.remove(index)
onProgressionChanged: {
if (progression) {
subListView.hasProgression = true
}
}
}
}
}

View File

@@ -30,6 +30,7 @@ Empty {
property alias iconSource: iconImage.source
property bool progression: false
property bool forceProgressionSpacing: false
property alias firstButtonImageSource: firstImage.source
property alias secondButtonImageSource: secondImage.source
@@ -64,7 +65,7 @@ Empty {
id: middleVisuals
anchors {
left: iconShown?iconShape.right:parent.left
right: secondButtonShown?secondImage.left:(firstButtonShown?firstImage.left:(listItemDelegate.progression?progressionImage.right:parent.right))
right: secondButtonShown?secondImage.left:(firstButtonShown?firstImage.left:((listItemDelegate.progression || listItemDelegate.forceProgressionSpacing)?progressionImage.right:parent.right))
leftMargin: units.gu(iconShown?1:2)
rightMargin: units.gu(firstButtonShown?1:2)
verticalCenter: parent.verticalCenter
@@ -124,8 +125,8 @@ Empty {
visible: firstButtonShown
anchors {
right: listItemDelegate.progression?progressionImage.right:parent.right
rightMargin: listItemDelegate.progression?units.gu(3.5):units.gu(2)
right: (listItemDelegate.progression || listItemDelegate.forceProgressionSpacing)?progressionImage.left:parent.right
rightMargin: (listItemDelegate.progression || listItemDelegate.forceProgressionSpacing)?units.gu(1.5):units.gu(2)
verticalCenter: parent.verticalCenter
}