[vlc-commits] [Git][videolan/vlc][master] 3 commits: qml/TableView(s): Switch to sub-model based models
Jean-Baptiste Kempf (@jbk)
gitlab at videolan.org
Thu Dec 22 10:19:05 UTC 2022
Jean-Baptiste Kempf pushed to branch master at VideoLAN / VLC
Commits:
0e535ad8 by Benjamin Arnaud at 2022-12-22T10:01:27+00:00
qml/TableView(s): Switch to sub-model based models
This should improve maintenability and clarity of our TableView models.
It also brings a better modularity when we have different models depending
on the current width of the application, like in MusicTrackListDisplay.
In MusicTracksDisplay we switch to a dedicated sortModel for the SortControl.
Co-authored-by: Pierre Lamot <pierre at videolabs.io>
- - - - -
125791ae by Benjamin Arnaud at 2022-12-22T10:01:27+00:00
qml/TableView(s): Switch to column sized models
This enforces the fact that we're using columns instead of absolute width
to define our sizes in TableView(s) models. That way we know we always
respect the grid approach of our UI design.
- - - - -
16e91345 by Benjamin Arnaud at 2022-12-22T10:01:27+00:00
qml/TableView(s): Remove 'isPrimary' from models
- - - - -
15 changed files:
- modules/gui/qt/medialibrary/qml/MusicAlbums.qml
- modules/gui/qt/medialibrary/qml/MusicAlbumsGridExpandDelegate.qml
- modules/gui/qt/medialibrary/qml/MusicAllArtists.qml
- modules/gui/qt/medialibrary/qml/MusicArtist.qml
- modules/gui/qt/medialibrary/qml/MusicGenres.qml
- modules/gui/qt/medialibrary/qml/MusicTrackListDisplay.qml
- modules/gui/qt/medialibrary/qml/MusicTracksDisplay.qml
- modules/gui/qt/medialibrary/qml/PlaylistMedia.qml
- modules/gui/qt/medialibrary/qml/PlaylistMediaList.qml
- modules/gui/qt/medialibrary/qml/UrlListDisplay.qml
- modules/gui/qt/medialibrary/qml/VideoListDisplay.qml
- modules/gui/qt/network/qml/BrowseDeviceView.qml
- modules/gui/qt/network/qml/BrowseTreeDisplay.qml
- modules/gui/qt/widgets/qml/KeyNavigableTableView.qml
- modules/gui/qt/widgets/qml/TableViewDelegate.qml
Changes:
=====================================
modules/gui/qt/medialibrary/qml/MusicAlbums.qml
=====================================
@@ -217,11 +217,39 @@ FocusScope {
rowHeight: VLCStyle.tableCoverRow_height
headerTopPadding: VLCStyle.margin_normal
- sortModel: [
- { isPrimary: true, criteria: "title", width: VLCStyle.colWidth(2), text: I18n.qtr("Title"), headerDelegate: tableColumns.titleHeaderDelegate, colDelegate: tableColumns.titleDelegate, placeHolder: VLCStyle.noArtAlbumCover },
- { criteria: "main_artist", width: VLCStyle.colWidth(Math.max(tableView_id._nbCols - 3, 1)), text: I18n.qtr("Artist") },
- { criteria: "duration", width:VLCStyle.colWidth(1), showSection: "", headerDelegate: tableColumns.timeHeaderDelegate, colDelegate: tableColumns.timeColDelegate },
- ]
+ sortModel: [{
+ size: 2,
+
+ model: {
+ criteria: "title",
+
+ text: I18n.qtr("Title"),
+
+ headerDelegate: tableColumns.titleHeaderDelegate,
+ colDelegate: tableColumns.titleDelegate,
+
+ placeHolder: VLCStyle.noArtAlbumCover
+ }
+ }, {
+ size: Math.max(tableView_id._nbCols - 3, 1),
+
+ model: {
+ criteria: "main_artist",
+
+ text: I18n.qtr("Artist")
+ }
+ }, {
+ size: 1,
+
+ model: {
+ criteria: "duration",
+
+ showSection: "",
+
+ headerDelegate: tableColumns.timeHeaderDelegate,
+ colDelegate: tableColumns.timeColDelegate
+ }
+ }]
Navigation.cancelAction: root._onNavigationCancel
=====================================
modules/gui/qt/medialibrary/qml/MusicAlbumsGridExpandDelegate.qml
=====================================
@@ -289,10 +289,35 @@ FocusScope {
currentIndex = 0
}
- sortModel: [
- { isPrimary: true, criteria: "title", width: VLCStyle.colWidth(Math.max(tracks._nbCols - 1, 1)), visible: true, text: I18n.qtr("Title"), showSection: "", colDelegate: titleDelegate, headerDelegate: titleHeaderDelegate },
- { criteria: "duration", width: VLCStyle.colWidth(1), visible: true, showSection: "", colDelegate: tableColumns.timeColDelegate, headerDelegate: tableColumns.timeHeaderDelegate },
- ]
+ sortModel: [{
+ size: Math.max(tracks._nbCols - 1, 1),
+
+ model: {
+ criteria: "title",
+
+ visible: true,
+
+ text: I18n.qtr("Title"),
+
+ showSection: "",
+
+ colDelegate: titleDelegate,
+ headerDelegate: titleHeaderDelegate
+ }
+ }, {
+ size: 1,
+
+ model: {
+ criteria: "duration",
+
+ visible: true,
+
+ showSection: "",
+
+ colDelegate: tableColumns.timeColDelegate,
+ headerDelegate: tableColumns.timeHeaderDelegate
+ }
+ }]
Navigation.parentItem: root
Navigation.leftItem: actionButtons
=====================================
modules/gui/qt/medialibrary/qml/MusicAllArtists.qml
=====================================
@@ -187,10 +187,28 @@ FocusScope {
}
}
- sortModel: [
- { isPrimary: true, criteria: "name", width: VLCStyle.colWidth(Math.max(artistTable._nbCols - 1, 1)), text: I18n.qtr("Name"), headerDelegate: tableColumns.titleHeaderDelegate, colDelegate: tableColumns.titleDelegate, placeHolder: VLCStyle.noArtArtistSmall },
- { criteria: "nb_tracks", width: VLCStyle.colWidth(1), text: I18n.qtr("Tracks") }
- ]
+ sortModel: [{
+ size: Math.max(artistTable._nbCols - 1, 1),
+
+ model: {
+ criteria: "name",
+
+ text: I18n.qtr("Name"),
+
+ headerDelegate: tableColumns.titleHeaderDelegate,
+ colDelegate: tableColumns.titleDelegate,
+
+ placeHolder: VLCStyle.noArtArtistSmall
+ }
+ }, {
+ size: 1,
+
+ model: {
+ criteria: "nb_tracks",
+
+ text: I18n.qtr("Tracks")
+ }
+ }]
onItemDoubleClicked: root.requestArtistAlbumView(Qt.MouseFocusReason)
=====================================
modules/gui/qt/medialibrary/qml/MusicArtist.qml
=====================================
@@ -395,11 +395,37 @@ FocusScope {
headerPositioning: ListView.InlineHeader
rowHeight: VLCStyle.tableCoverRow_height
- sortModel: [
- { isPrimary: true, criteria: "title", width: VLCStyle.colWidth(2), text: I18n.qtr("Title"), headerDelegate: tableColumns.titleHeaderDelegate, colDelegate: tableColumns.titleDelegate },
- { criteria: "album_title", width: VLCStyle.colWidth(Math.max(tableView_id._nbCols - 3, 1)), text: I18n.qtr("Album") },
- { criteria: "duration", width:VLCStyle.colWidth(1), showSection: "", headerDelegate: tableColumns.timeHeaderDelegate, colDelegate: tableColumns.timeColDelegate },
- ]
+ sortModel: [{
+ size: 2,
+
+ model: {
+ criteria: "title",
+
+ text: I18n.qtr("Title"),
+
+ headerDelegate: tableColumns.titleHeaderDelegate,
+ colDelegate: tableColumns.titleDelegate
+ }
+ }, {
+ size: Math.max(tableView_id._nbCols - 3, 1),
+
+ model: {
+ criteria: "album_title",
+
+ text: I18n.qtr("Album")
+ }
+ }, {
+ size: 1,
+
+ model: {
+ criteria: "duration",
+
+ showSection: "",
+
+ headerDelegate: tableColumns.timeHeaderDelegate,
+ colDelegate: tableColumns.timeColDelegate
+ }
+ }]
Navigation.parentItem: root
=====================================
modules/gui/qt/medialibrary/qml/MusicGenres.qml
=====================================
@@ -247,25 +247,30 @@ FocusScope {
headerTopPadding: VLCStyle.margin_normal
sortModel: [{
- isPrimary: true,
- criteria: "cover",
+ size: 1,
- width: VLCStyle.colWidth(1),
+ model: {
+ criteria: "cover",
- headerDelegate: tableColumns.titleHeaderDelegate,
- colDelegate: tableColumns.titleDelegate
+ headerDelegate: tableColumns.titleHeaderDelegate,
+ colDelegate: tableColumns.titleDelegate
+ }
}, {
- criteria: "name",
+ size: _nameColSpan,
- width: VLCStyle.colWidth(_nameColSpan),
+ model: {
+ criteria: "name",
- text: I18n.qtr("Name")
+ text: I18n.qtr("Name")
+ }
}, {
- criteria: "nb_tracks",
+ size: 1,
- width: VLCStyle.colWidth(1),
+ model: {
+ criteria: "nb_tracks",
- text: I18n.qtr("Tracks")
+ text: I18n.qtr("Tracks")
+ }
}]
onItemDoubleClicked: {
=====================================
modules/gui/qt/medialibrary/qml/MusicTrackListDisplay.qml
=====================================
@@ -30,33 +30,141 @@ import "qrc:///style/"
Widgets.KeyNavigableTableView {
id: root
- property var sortModelSmall: [
- { isPrimary: true, criteria: "title", width: VLCStyle.colWidth(1), text: I18n.qtr("Title"), showSection: "title", colDelegate: tableColumns.titleDelegate, headerDelegate: tableColumns.titleHeaderDelegate, placeHolder: VLCStyle.noArtAlbumCover },
- { criteria: "album_title", width: VLCStyle.colWidth(1), text: I18n.qtr("Album"), showSection: "album_title" },
- { criteria: "main_artist", width: VLCStyle.colWidth(1), text: I18n.qtr("Artist"), showSection: "main_artist" },
- { criteria: "duration", width: VLCStyle.colWidth(1), text: I18n.qtr("Duration"), showSection: "", colDelegate: tableColumns.timeColDelegate, headerDelegate: tableColumns.timeHeaderDelegate },
- ]
-
- property var sortModelMedium: [
- { isPrimary: true, criteria: "title", width: VLCStyle.colWidth(2), text: I18n.qtr("Title"), showSection: "title", colDelegate: tableColumns.titleDelegate, headerDelegate: tableColumns.titleHeaderDelegate, placeHolder: VLCStyle.noArtAlbumCover },
- { criteria: "album_title", width: VLCStyle.colWidth(2), text: I18n.qtr("Album"), showSection: "album_title" },
- { criteria: "main_artist", width: VLCStyle.colWidth(1), text: I18n.qtr("Artist"), showSection: "main_artist" },
- { criteria: "duration", width: VLCStyle.colWidth(1), text: I18n.qtr("Duration"), showSection: "", colDelegate: tableColumns.timeColDelegate, headerDelegate: tableColumns.timeHeaderDelegate },
- ]
+ // Properties
readonly property int _expandingColsSpan: Math.floor((VLCStyle.gridColumnsForWidth(root.availableRowWidth) - 3 /* static cols (track_number, etc)*/) / 3)
- property var sortModelLarge: [
- { isPrimary: true, criteria: "title", width: VLCStyle.colWidth(root._expandingColsSpan), text: I18n.qtr("Title"), showSection: "title", colDelegate: tableColumns.titleDelegate, headerDelegate: tableColumns.titleHeaderDelegate, placeHolder: VLCStyle.noArtAlbumCover },
- { criteria: "album_title", width: VLCStyle.colWidth(root._expandingColsSpan), text: I18n.qtr("Album"), showSection: "album_title" },
- { criteria: "main_artist", width: VLCStyle.colWidth(root._expandingColsSpan), text: I18n.qtr("Artist"), showSection: "main_artist" },
- { criteria: "duration", width: VLCStyle.colWidth(1), text: I18n.qtr("Duration"), showSection: "", colDelegate: tableColumns.timeColDelegate, headerDelegate: tableColumns.timeHeaderDelegate },
- { criteria: "track_number",width: VLCStyle.colWidth(1), text: I18n.qtr("Track"), showSection: "" },
- { criteria: "disc_number", width: VLCStyle.colWidth(1), text: I18n.qtr("Disc"), showSection: "" },
- ]
-
- sortModel: ( availableRowWidth < VLCStyle.colWidth(6) ) ? sortModelSmall
- : ( availableRowWidth < VLCStyle.colWidth(9) )
- ? sortModelMedium : sortModelLarge
+
+ property alias parentId: rootmodel.parentId
+
+ // Private
+
+ property var _lineTitle: ({
+ criteria: "title",
+
+ text: I18n.qtr("Title"),
+
+ showSection: "title",
+
+ colDelegate: tableColumns.titleDelegate,
+ headerDelegate: tableColumns.titleHeaderDelegate,
+
+ placeHolder: VLCStyle.noArtAlbumCover
+ })
+
+ property var _lineAlbum: ({
+ criteria: "album_title",
+
+ text: I18n.qtr("Album"),
+
+ showSection: "album_title"
+ })
+
+ property var _lineArtist: ({
+ criteria: "main_artist",
+
+ text: I18n.qtr("Artist"),
+
+ showSection: "main_artist"
+ })
+
+ property var _lineDuration: ({
+ criteria: "duration",
+
+ text: I18n.qtr("Duration"),
+
+ showSection: "",
+
+ colDelegate: tableColumns.timeColDelegate,
+ headerDelegate: tableColumns.timeHeaderDelegate
+ })
+
+ property var _lineTrack: ({
+ criteria: "track_number",
+
+ text: I18n.qtr("Track"),
+
+ showSection: ""
+ })
+
+ property var _lineDisc: ({
+ criteria: "disc_number",
+
+ text: I18n.qtr("Disc"),
+
+ showSection: ""
+ })
+
+ property var _modelLarge: [{
+ size: _expandingColsSpan,
+
+ model: _lineTitle
+ }, {
+ size: _expandingColsSpan,
+
+ model: _lineAlbum
+ }, {
+ size: _expandingColsSpan,
+
+ model: _lineArtist
+ }, {
+ size: 1,
+
+ model: _lineDuration
+ }, {
+ size: 1,
+
+ model: _lineTrack
+ }, {
+ size: 1,
+
+ model: _lineDisc
+ }]
+
+ property var _modelMedium: [{
+ size: 2,
+
+ model: _lineTitle
+ }, {
+ size: 2,
+
+ model: _lineAlbum
+ }, {
+ size: 1,
+
+ model: _lineArtist
+ }, {
+ size: 1,
+
+ model: _lineDuration
+ }]
+
+ property var _modelSmall: [{
+ size: 1,
+
+ model: _lineTitle
+ }, {
+ size: 1,
+
+ model: _lineAlbum
+ }, {
+ size: 1,
+
+ model: _lineArtist
+ }, {
+ size: 1,
+
+ model: _lineDuration
+ }]
+
+ sortModel: {
+ if (availableRowWidth < VLCStyle.colWidth(6))
+ return _modelSmall
+ else if (availableRowWidth < VLCStyle.colWidth(9))
+ return _modelMedium
+ else
+ return _modelLarge
+ }
+
section.property: "title_first_symbol"
headerColor: VLCStyle.colors.bg
@@ -65,8 +173,6 @@ Widgets.KeyNavigableTableView {
selectionDelegateModel: selectionModel
rowHeight: VLCStyle.tableCoverRow_height
- property alias parentId: rootmodel.parentId
-
onActionForSelection: MediaLib.addAndPlay(model.getIdsForIndexes( selection ))
onItemDoubleClicked: MediaLib.addAndPlay(model.id)
onContextMenuButtonClicked: contextMenu.popup(selectionModel.selectedIndexes, globalMousePos)
=====================================
modules/gui/qt/medialibrary/qml/MusicTracksDisplay.qml
=====================================
@@ -27,7 +27,15 @@ import "qrc:///main/" as MainInterface
FocusScope {
id: root
- property alias sortModel: tracklistdisplay_id.sortModel
+ property var sortModel: [
+ { text: I18n.qtr("Title"), criteria: "title"},
+ { text: I18n.qtr("Album"), criteria: "album_title" },
+ { text: I18n.qtr("Artist"), criteria: "main_artist" },
+ { text: I18n.qtr("Duration"), criteria: "duration" },
+ { text: I18n.qtr("Track"), criteria: "track_number" },
+ { text: I18n.qtr("Disc"), criteria: "disc_number" }
+ ]
+
property alias model: tracklistdisplay_id.model
property alias selectionModel: tracklistdisplay_id.selectionDelegateModel
readonly property bool isViewMultiView: false
=====================================
modules/gui/qt/medialibrary/qml/PlaylistMedia.qml
=====================================
@@ -55,31 +55,35 @@ MainInterface.MainTableView {
acceptDrop: true
sortModel: [{
- criteria: "thumbnail",
+ size: 1,
- width: VLCStyle.colWidth(1),
+ model: {
+ criteria: "thumbnail",
- type: "image",
+ type: "image",
- headerDelegate: table.titleHeaderDelegate,
- colDelegate : table.titleDelegate,
+ headerDelegate: table.titleHeaderDelegate,
+ colDelegate : table.titleDelegate,
- placeHolder: VLCStyle.noArtAlbumCover,
+ placeHolder: VLCStyle.noArtAlbumCover
+ }
}, {
- isPrimary: true,
-
- criteria: "title",
+ size: Math.max(columns - 2, 1),
- width: VLCStyle.colWidth(Math.max(columns - 2, 1)),
+ model: {
+ criteria: "title",
- text: I18n.qtr("Title")
+ text: I18n.qtr("Title")
+ }
}, {
- criteria: "duration",
+ size: 1,
- width: VLCStyle.colWidth(1),
+ model: {
+ criteria: "duration",
- headerDelegate: table.timeHeaderDelegate,
- colDelegate : table.timeColDelegate
+ headerDelegate: table.timeHeaderDelegate,
+ colDelegate : table.timeColDelegate
+ }
}]
//---------------------------------------------------------------------------------------------
=====================================
modules/gui/qt/medialibrary/qml/PlaylistMediaList.qml
=====================================
@@ -342,25 +342,30 @@ FocusScope {
headerColor: VLCStyle.colors.bg
sortModel: [{
- isPrimary: true,
- criteria: "thumbnail",
+ size: 1,
- width: VLCStyle.colWidth(1),
+ model: {
+ criteria: "thumbnail",
- headerDelegate: columns.titleHeaderDelegate,
- colDelegate : columns.titleDelegate
+ headerDelegate: columns.titleHeaderDelegate,
+ colDelegate : columns.titleDelegate
+ }
}, {
- criteria: "name",
+ size: _columns,
- width: VLCStyle.colWidth(_columns),
+ model: {
+ criteria: "name",
- text: I18n.qtr("Name")
+ text: I18n.qtr("Name")
+ }
}, {
- criteria: "count",
+ size: 1,
- width: VLCStyle.colWidth(1),
+ model: {
+ criteria: "count",
- text: I18n.qtr("Tracks")
+ text: I18n.qtr("Tracks")
+ }
}]
Navigation.parentItem: root
=====================================
modules/gui/qt/medialibrary/qml/UrlListDisplay.qml
=====================================
@@ -43,20 +43,29 @@ Widgets.KeyNavigableTableView {
selectionDelegateModel: selectionModel
sortModel: [{
- "isPrimary": true,
- "criteria": "url",
- "width": VLCStyle.colWidth(Math.max(listView_id._nbCols - 1,
- 1)),
- "text": I18n.qtr("Url"),
- "showSection": "url",
+ size: Math.max(listView_id._nbCols - 1, 1),
+
+ model: {
+ criteria: url,
+
+ text: I18n.qtr("Url"),
+
+ showSection: url,
+
headerDelegate: urlHeaderDelegate
- }, {
- "criteria": "last_played_date",
- "width": VLCStyle.colWidth(1),
- "showSection": "",
- "headerDelegate": tableColumns.timeHeaderDelegate,
- "showContextButton": true
- }]
+ }
+ }, {
+ size: 1,
+
+ model: {
+ criteria: last_played_date,
+
+ showSection: "",
+ showContextButton: true,
+
+ headerDelegate: tableColumns.timeHeaderDelegate
+ }
+ }]
rowHeight: VLCStyle.listAlbumCover_height + VLCStyle.margin_xxsmall * 2
headerColor: VLCStyle.colors.bg
=====================================
modules/gui/qt/medialibrary/qml/VideoListDisplay.qml
=====================================
@@ -47,36 +47,42 @@ MainInterface.MainTableView {
//---------------------------------------------------------------------------------------------
sortModel: [{
- type: "image",
+ size: 1,
- criteria: "thumbnail",
+ model: ({
+ type: "image",
- width: VLCStyle.colWidth(1),
+ criteria: "thumbnail",
- showSection: "",
+ showSection: "",
- placeHolder: VLCStyle.noArtVideoCover,
+ placeHolder: VLCStyle.noArtVideoCover,
- headerDelegate: tableColumns.titleHeaderDelegate,
- colDelegate : tableColumns.titleDelegate,
+ headerDelegate: tableColumns.titleHeaderDelegate,
+ colDelegate : tableColumns.titleDelegate
+ })
}, {
- isPrimary: true,
- criteria: mainCriteria,
+ size: Math.max(listView_id._nbCols - 2, 1),
- width: VLCStyle.colWidth(Math.max(listView_id._nbCols - 2, 1)),
+ model: ({
+ criteria: mainCriteria,
- showSection: "title",
+ showSection: "title",
- text: I18n.qtr("Title")
+ text: I18n.qtr("Title")
+ })
}, {
- criteria: "duration",
+ size: 1,
- width: VLCStyle.colWidth(1),
+ model: ({
+ criteria: "duration",
- showSection: "",
+ showSection: "",
+ showContextButton: true,
- headerDelegate: tableColumns.timeHeaderDelegate, showContextButton: true,
- colDelegate : tableColumns.timeColDelegate
+ headerDelegate: tableColumns.timeHeaderDelegate,
+ colDelegate : tableColumns.timeColDelegate
+ })
}]
section.property: "title_first_symbol"
=====================================
modules/gui/qt/network/qml/BrowseDeviceView.qml
=====================================
@@ -278,27 +278,32 @@ FocusScope {
model: modelFilter
sortModel: [{
- criteria: "artwork",
+ size: 1,
- width: VLCStyle.colWidth(1),
+ model: {
+ criteria: "artwork",
- headerDelegate: artworkHeader,
- colDelegate : artworkColumn
+ headerDelegate: artworkHeader,
+ colDelegate : artworkColumn
+ }
}, {
- isPrimary: true,
- criteria: "name",
+ size: listView._nameColSpan,
- width: VLCStyle.colWidth(listView._nameColSpan),
+ model: {
+ criteria: "name",
- text: I18n.qtr("Name")
+ text: I18n.qtr("Name")
+ }
}, {
- criteria: "mrl",
+ size: Math.max(listView._nbCols - listView._nameColSpan - 1, 1),
- width: VLCStyle.colWidth(Math.max(listView._nbCols - listView._nameColSpan - 1), 1),
+ model: {
+ criteria: "mrl",
- text: I18n.qtr("Url"),
+ text: I18n.qtr("Url"),
- colDelegate: mrlColumn
+ colDelegate: mrlColumn
+ }
}]
header: root.header
=====================================
modules/gui/qt/network/qml/BrowseTreeDisplay.qml
=====================================
@@ -307,11 +307,34 @@ FocusScope {
}
}
- sortModel: [
- { criteria: "thumbnail", width: VLCStyle.colWidth(1), headerDelegate: tableView.thumbnailHeader, colDelegate: tableView.thumbnailColumn },
- { isPrimary: true, criteria: "name", width: VLCStyle.colWidth(tableView._nameColSpan), text: I18n.qtr("Name") },
- { criteria: "mrl", width: VLCStyle.colWidth(Math.max(tableView._nbCols - tableView._nameColSpan - 1), 1), text: I18n.qtr("Url"), showContextButton: true },
- ]
+ sortModel: [{
+ size: 1,
+
+ model: {
+ criteria: "thumbnail",
+
+ headerDelegate: tableView.thumbnailHeader,
+ colDelegate: tableView.thumbnailColumn
+ }
+ }, {
+ size: tableView._nameColSpan,
+
+ model: {
+ criteria: "name",
+
+ text: I18n.qtr("Name")
+ }
+ }, {
+ size: Math.max(tableView._nbCols - tableView._nameColSpan - 1, 1),
+
+ model: {
+ criteria: "mrl",
+
+ text: I18n.qtr("Url"),
+
+ showContextButton: true
+ }
+ }]
onActionForSelection: _actionAtIndex(selection[0].row)
onItemDoubleClicked: _actionAtIndex(index)
=====================================
modules/gui/qt/widgets/qml/KeyNavigableTableView.qml
=====================================
@@ -54,7 +54,7 @@ FocusScope {
var size = leftMargin + rightMargin
for (var i in sortModel)
- size += sortModel[i].width
+ size += VLCStyle.colWidth(sortModel[i].size)
return size + Math.max(VLCStyle.column_spacing * (sortModel.length - 1), 0)
}
@@ -314,11 +314,13 @@ FocusScope {
model: sortModel
MouseArea {
height: childrenRect.height
- width: modelData.width || 1
+
+ width: VLCStyle.colWidth(modelData.size) || 1
+
//Layout.alignment: Qt.AlignVCenter
Loader {
- property var model: modelData
+ property var model: modelData.model
sourceComponent: model.headerDelegate || root.tableHeaderDelegate
}
=====================================
modules/gui/qt/widgets/qml/TableViewDelegate.qml
=====================================
@@ -179,7 +179,7 @@ T.Control {
Loader{
property var rowModel: delegate.rowModel
- property var colModel: modelData
+ property var colModel: modelData.model
readonly property int index: delegate._index
@@ -189,7 +189,7 @@ T.Control {
readonly property color foregroundColor: delegate.background.foregroundColor
- width: (modelData.width) ? modelData.width : 0
+ width: (modelData.size) ? VLCStyle.colWidth(modelData.size) : 0
height: parent.height
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/12497780d6b1d109f5bdfaaa0128a0a2506d0711...16e913456ee1075b2b819d7951892b1e3f3f980b
--
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/12497780d6b1d109f5bdfaaa0128a0a2506d0711...16e913456ee1075b2b819d7951892b1e3f3f980b
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