on xenial help sign in
Limit collapsedRowCount based on model item count.
3ec2a17Michał Karnicki
qml/Components/FilterGrid.qml+8−3
@@ -35,15 +35,20 @@ Item {
35
35
36 /* Whether, when collapsed, a button should be displayed enabling the user to expand
36 /* Whether, when collapsed, a button should be displayed enabling the user to expand
37 the grid to its full size. */
37 the grid to its full size. */
38− readonly property bool expandable: model.count > collapsedRowCount * iconTileGrid.columns
38+ readonly property bool expandable: model.count > actualCollapsedRowCount * iconTileGrid.columns
39
39
40 property var model: null
40 property var model: null
41
41
42 /* Maximum number of rows to be show when filter=true. */
42 /* Maximum number of rows to be show when filter=true. */
43 property int collapsedRowCount: 2
43 property int collapsedRowCount: 2
44+ /* Never show more rows than model would fill up. */
45+ readonly property int actualCollapsedRowCount: {
46+ return Math.min(collapsedRowCount, Math.ceil(model.count, columns))
47+ }
44 property int uncollapsedRowCount: Math.ceil(model.count / columns)
48 property int uncollapsedRowCount: Math.ceil(model.count / columns)
45 readonly property int collapsedHeight: {
49 readonly property int collapsedHeight: {
46− return iconTileGrid.contentHeightForRows(Math.min(collapsedRowCount, Math.ceil(model.count / columns)))
50+ return iconTileGrid.contentHeightForRows(Math.min(
51+ actualCollapsedRowCount, Math.ceil(model.count / columns)))
47 }
52 }
48 readonly property int uncollapsedHeight: {
53 readonly property int uncollapsedHeight: {
49 return iconTileGrid.contentHeightForRows(uncollapsedRowCount)
54 return iconTileGrid.contentHeightForRows(uncollapsedRowCount)
@@ -106,7 +111,7 @@ Item {
106
111
107 model: LimitProxyModel {
112 model: LimitProxyModel {
108 model: root.model
113 model: root.model
109− limit: (filter && !filterAnimation.running) ? collapsedRowCount * iconTileGrid.columns : -1
114+ limit: (filter && !filterAnimation.running) ? actualCollapsedRowCount * iconTileGrid.columns : -1
110 }
115 }
111 }
116 }
112}
117}