[vlc-devel] [PATCH] qml: introduce horizontal and vertical spacing property in ExpandGridView
Pierre Lamot
pierre at videolabs.io
Mon Apr 20 09:16:08 CEST 2020
Hi,
Shouldn't you also use _effectiveCellXXX in the other computed values ?
(_getFirstAndLastInstanciatedItemIds(), layout(), etc...)
On 2020-04-17 10:52, Prince Gupta wrote:
> ---
> modules/gui/qt/widgets/qml/ExpandGridView.qml | 15 +++++++++++----
> 1 file changed, 11 insertions(+), 4 deletions(-)
>
> diff --git a/modules/gui/qt/widgets/qml/ExpandGridView.qml
> b/modules/gui/qt/widgets/qml/ExpandGridView.qml
> index ac6aadf..0a7b512 100644
> --- a/modules/gui/qt/widgets/qml/ExpandGridView.qml
> +++ b/modules/gui/qt/widgets/qml/ExpandGridView.qml
> @@ -18,6 +18,7 @@
> import QtQuick 2.11
> import QtQuick.Controls 2.4
> import "qrc:///util/KeyHelper.js" as KeyHelper
> +import "qrc:///style/"
>
> NavigableFocusScope {
> id: root
> @@ -31,6 +32,12 @@ NavigableFocusScope {
> property int marginBottom: root.cellHeight / 2
> property int marginTop: root.cellHeight / 3
>
> + property int horizontalSpacing: VLCStyle.margin_normal
> + property int verticalSpacing: VLCStyle.margin_normal
> +
> + readonly property int _effectiveCellWidth: cellWidth +
> horizontalSpacing
> + readonly property int _effectiveCellHeight: cellHeight +
> verticalSpacing
> +
> property variant delegateModel
> property variant model
>
> @@ -86,7 +93,7 @@ NavigableFocusScope {
> }
>
> function getNbItemsPerRow() {
> - return Math.max(Math.floor(width / root.cellWidth), 1)
> + return Math.max(Math.floor((width + root.horizontalSpacing) /
> root._effectiveCellWidth), 1)
> }
>
> function getItemRowCol(id) {
> @@ -98,9 +105,9 @@ NavigableFocusScope {
>
> function getItemPos(id) {
> var colCount = root.getNbItemsPerRow()
> - var remainingSpace = flickable.width - colCount *
> root.cellWidth
> + var remainingSpace = flickable.width - (colCount *
> root._effectiveCellWidth) + root.horizontalSpacing
> var rowCol = getItemRowCol(id)
> - return [(rowCol[0] * root.cellWidth) + (remainingSpace / 2),
> rowCol[1] * root.cellHeight + headerHeight]
> + return [(rowCol[0] * root._effectiveCellWidth) +
> (remainingSpace / 2), rowCol[1] * root._effectiveCellHeight +
> headerHeight]
> }
>
> //use the same signature as Gridview.positionViewAtIndex(index,
> PositionMode mode)
> @@ -119,7 +126,7 @@ NavigableFocusScope {
> var newContentY = flickable.contentY
>
> var itemTopY = root.getItemPos(index)[1]
> - var itemBottomY = itemTopY + root.cellHeight
> + var itemBottomY = itemTopY + root._effectiveCellHeight
>
> var viewTopY = flickable.contentY
> var viewBottomY = viewTopY + flickable.height
More information about the vlc-devel
mailing list