[vlc-commits] [Git][videolan/vlc][master] qml: make `FadingEdgeForListView` generic and rename to `FadingEdgeForItemView`

Steve Lhomme (@robUx4) gitlab at videolan.org
Tue Jun 9 19:53:33 UTC 2026



Steve Lhomme pushed to branch master at VideoLAN / VLC


Commits:
8635abbe by Fatih Uzunoglu at 2026-06-09T19:27:50+00:00
qml: make `FadingEdgeForListView` generic and rename to `FadingEdgeForItemView`

This makes it possible to target other item view types such as `GridView`,
`TableView`, and `TreeView`.

Note that if the type does not provide `orientation`, it is assumed to be
vertical with this change (currently in that case it is assumed to be
horizontal). Similar to orientation, if `{header,footer}Positioning` is
not provided, it is assumed that the header/footer is inline.

- - - - -


4 changed files:

- modules/gui/qt/Makefile.am
- modules/gui/qt/meson.build
- modules/gui/qt/widgets/qml/FadingEdgeForListView.qml → modules/gui/qt/widgets/qml/FadingEdgeForItemView.qml
- modules/gui/qt/widgets/qml/ListViewExt.qml


Changes:

=====================================
modules/gui/qt/Makefile.am
=====================================
@@ -1325,7 +1325,7 @@ libqml_module_widgets_a_QML = \
 	widgets/qml/DropShadowImage.qml \
 	widgets/qml/DoubleShadow.qml \
 	widgets/qml/FadingEdge.qml \
-	widgets/qml/FadingEdgeForListView.qml \
+	widgets/qml/FadingEdgeForItemView.qml \
 	widgets/qml/PopupIconToolButton.qml \
 	widgets/qml/PartialEffect.qml \
 	widgets/qml/ViewHeader.qml \


=====================================
modules/gui/qt/meson.build
=====================================
@@ -917,7 +917,7 @@ qml_modules += {
         'widgets/qml/DropShadowImage.qml',
         'widgets/qml/DoubleShadow.qml',
         'widgets/qml/FadingEdge.qml',
-        'widgets/qml/FadingEdgeForListView.qml',
+        'widgets/qml/FadingEdgeForItemView.qml',
         'widgets/qml/PopupIconToolButton.qml',
         'widgets/qml/PartialEffect.qml',
         'widgets/qml/ViewHeader.qml',


=====================================
modules/gui/qt/widgets/qml/FadingEdgeForListView.qml → modules/gui/qt/widgets/qml/FadingEdgeForItemView.qml
=====================================
@@ -23,7 +23,7 @@ import VLC.Util
 FadingEdge {
     id: root
 
-    required property ListView listView
+    required property Item itemView // TODO: Use `ItemView` type when applicable.
 
     // NOTE: In addition to the `currentItem`, `excludeItem`
     //       may be used to direct the fading edge effect to
@@ -32,39 +32,39 @@ FadingEdge {
     //       `excludeItem` is not a visual child of `sourceItem`.
     property Item excludeItem
 
-    sourceItem: listView.contentItem
+    sourceItem: itemView.contentItem
 
-    beginningMargin: listView.displayMarginBeginning
-    endMargin: listView.displayMarginEnd
-    orientation: (listView.orientation === ListView.Vertical) ? Qt.Vertical : Qt.Horizontal
+    beginningMargin: itemView.displayMarginBeginning
+    endMargin: itemView.displayMarginEnd
+    orientation: (itemView.orientation === Qt.Horizontal) ? Qt.Horizontal : Qt.Vertical
 
-    sourceX: listView.contentX
-    sourceY: listView.contentY
+    sourceX: itemView.contentX
+    sourceY: itemView.contentY
 
     fadeSize: delegateItem ? (orientation === Qt.Vertical ? delegateItem.height
                                                           : delegateItem.width) / 2
                            : (VLCStyle.margin_large * 2)
 
-    readonly property bool transitionsRunning: (listView.add?.running ||
-                                                listView.addDisplaced?.running ||
-                                                listView.displaced?.running ||
-                                                listView.move?.running ||
-                                                listView.moveDisplaced?.running ||
-                                                listView.populate?.running ||
-                                                listView.remove?.running ||
-                                                listView.removeDisplaced?.running) ?? false
+    readonly property bool transitionsRunning: (itemView.add?.running ||
+                                                itemView.addDisplaced?.running ||
+                                                itemView.displaced?.running ||
+                                                itemView.move?.running ||
+                                                itemView.moveDisplaced?.running ||
+                                                itemView.populate?.running ||
+                                                itemView.remove?.running ||
+                                                itemView.removeDisplaced?.running) ?? false
 
     // FIXME: Delegate with variable size
-    readonly property Item delegateItem: (listView.count > 0) ? listView.itemAtIndex(0) : null
+    readonly property Item delegateItem: (itemView.count > 0) ? itemView.itemAtIndex(0) : null
 
 
-    readonly property bool _fadeRectEnoughSize: (orientation === Qt.Vertical ? listView.height
-                                                                             : listView.width) > (fadeSize * 2 + VLCStyle.dp(25))
+    readonly property bool _fadeRectEnoughSize: (orientation === Qt.Vertical ? itemView.height
+                                                                             : itemView.width) > (fadeSize * 2 + VLCStyle.dp(25))
 
-    readonly property rect _currentItemMappedRect: listView.currentItem ? Qt.rect(listView.currentItem.x - sourceX,
-                                                                                  listView.currentItem.y - sourceY,
-                                                                                  listView.currentItem.width,
-                                                                                  listView.currentItem.height)
+    readonly property rect _currentItemMappedRect: itemView.currentItem ? Qt.rect(itemView.currentItem.x - sourceX,
+                                                                                  itemView.currentItem.y - sourceY,
+                                                                                  itemView.currentItem.width,
+                                                                                  itemView.currentItem.height)
                                                                         : Qt.rect(-1, -1, -1, -1)
 
     readonly property rect _excludeItemMappedRect: excludeItem ? Qt.rect(excludeItem.x - sourceX,
@@ -73,17 +73,17 @@ FadingEdge {
                                                                          excludeItem.height)
                                                                         : Qt.rect(-1, -1, -1, -1)
 
-    readonly property bool _disableBeginningFade: (!!listView.headerItem && (listView.headerPositioning !== ListView.InlineHeader)) ||
+    readonly property bool _disableBeginningFade: (!!itemView.headerItem && (itemView.headerPositioning !== undefined && itemView.headerPositioning !== ListView.InlineHeader)) ||
                                                   !_fadeRectEnoughSize ||
-                                                  (orientation === Qt.Vertical ? listView.atYBeginning
-                                                                               : listView.atXBeginning) ||
+                                                  (orientation === Qt.Vertical ? itemView.atYBeginning
+                                                                               : itemView.atXBeginning) ||
                                                   (currentItem && !Helpers.itemIntersects(beginningArea, _currentItemMappedRect)) ||
                                                   (excludeItem && !Helpers.itemIntersects(beginningArea, _excludeItemMappedRect))
 
-    readonly property bool _disableEndFade: (!!listView.footerItem && (listView.footerPositioning !== ListView.InlineFooter)) ||
+    readonly property bool _disableEndFade: (!!itemView.footerItem && (itemView.footerPositioning !== undefined && itemView.footerPositioning !== ListView.InlineFooter)) ||
                                             !_fadeRectEnoughSize ||
-                                            (orientation === Qt.Vertical ? listView.atYEnd
-                                                                         : listView.atXEnd) ||
+                                            (orientation === Qt.Vertical ? itemView.atYEnd
+                                                                         : itemView.atXEnd) ||
                                             (currentItem && !Helpers.itemIntersects(endArea, _currentItemMappedRect)) ||
                                             (excludeItem && !Helpers.itemIntersects(endArea, _excludeItemMappedRect))
 
@@ -103,7 +103,7 @@ FadingEdge {
         id: beginningArea
 
         z: 99
-        parent: root.listView
+        parent: root.itemView
 
         visible: !root._disableBeginningFade
 
@@ -132,7 +132,7 @@ FadingEdge {
         id: endArea
 
         z: 99
-        parent: root.listView
+        parent: root.itemView
 
         visible: !root._disableEndFade
 


=====================================
modules/gui/qt/widgets/qml/ListViewExt.qml
=====================================
@@ -619,12 +619,12 @@ ListView {
         colorSet: ColorContext.View
     }
 
-    FadingEdgeForListView {
+    FadingEdgeForItemView {
         id: fadingEdge
 
         anchors.fill: parent
 
-        listView: root
+        itemView: root
 
         backgroundColor: theme.bg.primary
 



View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/8635abbe1ba1af4452c308643c5fb5fee7d60ebd

-- 
View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/8635abbe1ba1af4452c308643c5fb5fee7d60ebd
You're receiving this email because of your account on code.videolan.org. Manage all notifications: https://code.videolan.org/-/profile/notifications | Help: https://code.videolan.org/help




More information about the vlc-commits mailing list