diff --git a/ubuntu/qml/cantata/SubListViewPage.qml b/ubuntu/qml/cantata/SubListViewPage.qml index 3df3cb3d2..ba96f5688 100644 --- a/ubuntu/qml/cantata/SubListViewPage.qml +++ b/ubuntu/qml/cantata/SubListViewPage.qml @@ -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 + } + } } } } diff --git a/ubuntu/qml/cantata/components/ListItemDelegate.qml b/ubuntu/qml/cantata/components/ListItemDelegate.qml index a647257b3..eed374c66 100644 --- a/ubuntu/qml/cantata/components/ListItemDelegate.qml +++ b/ubuntu/qml/cantata/components/ListItemDelegate.qml @@ -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 }