[vlc-commits] [Git][videolan/vlc][master] 3 commits: qml: add missing required property
Steve Lhomme (@robUx4)
gitlab at videolan.org
Sun Feb 23 15:11:35 UTC 2025
Steve Lhomme pushed to branch master at VideoLAN / VLC
Commits:
8f7d4ad0 by Prince Gupta at 2025-02-23T14:58:17+00:00
qml: add missing required property
- - - - -
84c4974f by Prince Gupta at 2025-02-23T14:58:17+00:00
qml: support context menu click in artist list view
- - - - -
9ab6e688 by Prince Gupta at 2025-02-23T14:58:17+00:00
qml: fix initial selection and optimize selection handling in artist list view
- - - - -
1 changed file:
- modules/gui/qt/medialibrary/qml/MusicArtist.qml
Changes:
=====================================
modules/gui/qt/medialibrary/qml/MusicArtist.qml
=====================================
@@ -193,6 +193,7 @@ FocusScope {
id: gridItem
required property var model
+ required property int index
y: selectedBorderWidth
@@ -211,6 +212,11 @@ FocusScope {
textAlignHCenter: true
dragItem: albumDragItem
+ // updates to selection is manually handled for optimization purpose
+ Component.onCompleted: _updateSelected()
+
+ onIndexChanged: _updateSelected()
+
onPlayClicked: play()
onItemDoubleClicked: play()
@@ -223,16 +229,33 @@ FocusScope {
Connections {
target: albumsList.selectionModel
- function onSelectionChanged() {
- gridItem.selected = albumsList.selectionModel.isSelected(index)
+ function onSelectionChanged(selected, deselected) {
+ const idx = albumModel.index(gridItem.index, 0)
+ const findInSelection = s => s.find(range => range.contains(idx)) !== undefined
+
+ // NOTE: we only get diff of the selection
+ if (findInSelection(selected))
+ gridItem.selected = true
+ else if (findInSelection(deselected))
+ gridItem.selected = false
}
}
+ onContextMenuButtonClicked: (_, globalMousePos) => {
+ albumSelectionModel.updateSelection( Qt.NoModifier , albumsList.currentIndex, index )
+ contextMenu.popup(albumSelectionModel.selectedIndexes
+ , globalMousePos)
+ }
+
function play() {
if ( model.id !== undefined ) {
MediaLib.addAndPlay( model.id )
}
}
+
+ function _updateSelected() {
+ selected = albumSelectionModel.isRowSelected(gridItem.index)
+ }
}
onActionAtIndex: (index) => { albumModel.addAndPlay( new Array(index) ) }
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/62dc35f62b62637add0b845a8ddbfeb5d885977c...9ab6e688c7a4b30f3f97e908e905386c32e1a707
--
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/62dc35f62b62637add0b845a8ddbfeb5d885977c...9ab6e688c7a4b30f3f97e908e905386c32e1a707
You're receiving this email because of your account on code.videolan.org.
VideoLAN code repository instance
More information about the vlc-commits
mailing list