Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • videolan/vlc
  • chouquette/vlc
  • bakiewicz.marek122/vlc
  • devnexen/vlc
  • rohanrajpal/vlc
  • blurrrb/vlc
  • gsoc/gsoc2019/darkapex/vlc
  • b1ue/vlc
  • fkuehne/vlc
  • magsoft/vlc
  • chub/vlc
  • cramiro9/vlc
  • robUx4/vlc
  • rom1v/vlc
  • akshayaky/vlc
  • tmk907/vlc
  • akymaster/vlc
  • govind.sharma/vlc
  • psilokos/vlc
  • xjbeta/vlc
  • jahan/vlc
  • 1480c1/vlc
  • amanchande/vlc
  • aaqib/vlc
  • rist/vlc
  • apol/vlc
  • mindfreeze/vlc
  • alexandre-janniaux/vlc
  • sandsmark/vlc
  • jagannatharjun/vlc
  • gsoc/gsoc2020/matiaslgonzalez/vlc
  • gsoc/gsoc2020/jagannatharjun/vlc
  • mstorsjo/vlc
  • gsoc/gsoc2020/vedenta/vlc
  • gsoc/gsoc2020/arnav-ishaan/vlc
  • gsoc/gsoc2020/andreduong/vlc
  • fuzun/vlc
  • gsoc/gsoc2020/vatsin/vlc
  • gsoc/gsoc2020/sagid/vlc
  • yaron/vlc
  • Phoenix/vlc
  • Garf/vlc
  • ePiratWorkarounds/vlc
  • tguillem/vlc
  • jnqnfe/vlc
  • mdc/vlc
  • Vedaa/vlc
  • rasa/vlc
  • quink/vlc
  • yealo/vlc
  • aleksey_ak/vlc
  • ePirat/vlc
  • ilya.yanok/vlc
  • asenat/vlc
  • m/vlc
  • bunjee/vlc
  • BLumia/vlc
  • sagudev/vlc
  • hamedmonji30/vlc
  • nullgemm/vlc
  • DivyamAhuja/vlc
  • thesamesam/vlc
  • dag7/vlc
  • snehil101/vlc
  • haasn/vlc
  • jbk/vlc
  • ValZapod/vlc
  • mfkl/vlc
  • WangChuan/vlc
  • core1024/vlc
  • GhostVaibhav/vlc
  • dfuhrmann/vlc
  • davide.prade/vlc
  • tmatth/vlc
  • Courmisch/vlc
  • zouya/vlc
  • hpi/vlc
  • EwoutH/vlc
  • aleung27/vlc
  • hengwu0/vlc
  • saladin/vlc
  • ashuio/vlc
  • richselwood/vlc
  • verma16Ayush/vlc
  • chemicalflash/vlc
  • PoignardAzur/vlc
  • huangjieNT/vlc
  • Blake-Haydon/vlc
  • AnuthaDev/vlc
  • gsoc/gsoc2021/mpd/vlc
  • nicolas_lequec/vlc
  • sambassaly/vlc
  • thresh/vlc
  • bonniegong/vlc
  • myaashish/vlc
  • stavros.vagionitis/vlc
  • ileoo/vlc
  • louis-santucci/vlc
  • cchristiansen/vlc
  • sabyasachi07/vlc
  • AbduAmeen/vlc
  • ashishb0410/vlc
  • urbanhusky/vlc
  • davidepietrasanta/vlc
  • riksleutelstad/vlc
  • jeremyVignelles/vlc
  • komh/vlc
  • iamjithinjohn/vlc
  • JohannesKauffmann/vlc2
  • kunglao/vlc
  • natzberg/vlc
  • jill/vlc
  • cwendling/vlc
  • adufou/vlc
  • ErwanAirone/vlc
  • HasinduDilshan10/vlc
  • vagrantc/vlc
  • rafiv/macos-bigsur-icon
  • Aymeriic/vlc
  • saranshg20/vlc
  • metzlove24/vlc
  • linkfanel/vlc
  • Ds886/vlc
  • metehan-arslan/vlc
  • Skantes/vlc
  • kgsandundananjaya96/vlc
  • mitchcapper/vlc
  • advaitgupta/vlc
  • StefanBruens/vlc
  • ratajs/vlc
  • T.M.F.B.3761/vlc
  • m222059/vlc
  • casemerrick/vlc
  • joshuaword2alt/vlc
  • sjwaddy/vlc
  • dima/vlc
  • Ybalrid/vlc
  • umxprime/vlc
  • eschmidt/vlc
  • vannieuwenhuysenmichelle/vlc
  • badcf00d/vlc
  • wesinator/vlc
  • louis/vlc
  • xqq/vlc
  • EmperorYP7/vlc
  • NicoLiam/vlc
  • loveleen/vlc
  • rofferom/vlc
  • rbultje/vlc
  • TheUnamed/vlc
  • pratiksharma341/vlc
  • Saurab17/vlc
  • purist.coder/vlc
  • Shuicheng/vlc
  • mdrrubel292/vlc
  • silverbleu00/vlc
  • metif12/vlc
  • asher-m/vlc
  • jeffk/vlc
  • Brandonbr1/vlc
  • beautyyuyanli/vlc
  • rego21/vlc
  • muyangren907/vlc
  • collectionbylawrencejason/vlc
  • evelez/vlc
  • GSMgeeth/vlc
  • Oneric/vlc
  • TJ5/vlc
  • XuanTung95/vlc
  • darrenjenny21/vlc
  • Trenly/vlc
  • RockyTDR/vlc
  • mjakubowski/vlc
  • caprica/vlc
  • ForteFrankie/vlc
  • seannamiller19/vlc
  • junlon2006/vlc
  • kiwiren6666/vlc
  • iuseiphonexs/vlc
  • fenngtun/vlc
  • Rajdutt999/vlc
  • typx/vlc
  • leon.vitanos/vlc
  • robertogarci0938/vlc
  • gsoc/gsoc2022/luc65r/vlc-mpd
  • skeller/vlc
  • MCJack123/vlc
  • luc65r/vlc-mpd
  • popov895/vlc
  • claucambra/vlc
  • brad/vlc
  • matthewmurua88/vlc
  • Tomas8874/vlc
  • philenotfound/vlc
  • makita-do3/vlc
  • LZXCorp/vlc
  • mar0x/vlc
  • senojetkennedy0102/vlc
  • shaneb243/vlc
  • ahmadbader/vlc
  • rajduttcse26/vlc-audio-filters
  • Juniorzito8415/vlc
  • achernyakov/vlc
  • lucasjetgroup/vlc
  • pupdoggy666/vlc
  • gmde9363/vlc
  • alexnwayne/vlc
  • bahareebrahimi781/vlc
  • hamad633666/vlc
  • umghof3112/vlc
  • joe0199771874/vlc
  • Octocats66666666/vlc
  • jjm_223/vlc
  • btech10110.19/vlc
  • sunnykfc028/vlc-audio-filters
  • loic/vlc
  • nguyenminhducmx1/vlc
  • JanekKrueger/vlc
  • bstubbington2/vlc
  • rcombs/vlc
  • Ordissimo/vlc
  • king7532/vlc
  • noobsauce101/vlc
  • schong0525/vlc
  • myQwil/vlc
  • apisbg91/vlc
  • geeboy0101017/vlc
  • kim.faughey/vlc
  • nurupo/vlc
  • yyusea/vlc
  • 0711235879.khco/vlc
  • ialo/vlc
  • iloveyeye2/vlc
  • gdtdftdqtd/vlc
  • leandroconsiglio/vlc
  • AndyHTML2012/vlc
  • ncz/vlc
  • lucenticus/vlc
  • knr1931/vlc
  • kjoonlee/vlc
  • chandrakant100/vlc-qt
  • johge42/vlc
  • polter/vlc
  • hexchain/vlc
  • Tushwrld/vlc
  • mztea928/vlc
  • jbelloncastro/vlc
  • alvinhochun/vlc
  • ghostpiratecrow/vlc
  • ujjwaltwitx/vlc
  • alexsonarin06/vlc
  • adrianbon76/vlc
  • altsod/vlc
  • damien.lucas44/vlc
  • dmytrivtaisa/vlc
  • utk202/vlc
  • aaxhrj/vlc
  • thomas.hermes/vlc
  • structurenewworldorder/vlc
  • slomo/vlc
  • wantlamy/vlc
  • musc.o3cminc/vlc
  • thebarshablog/vlc
  • kerrick/vlc
  • kratos142518/vlc
  • leogps/vlc
  • vacantron/vlc
  • luna_koly/vlc
  • Ratio2/vlc
  • anuoshemohammad/vlc
  • apsun/vlc
  • aaa1115910/vlc
  • alimotmoyo/vlc
  • Ambossmann/vlc
  • Sam-LearnsToCode/vlc
  • Chilledheart/vlc
  • Labnann/vlc
  • ktcoooot1/vlc
  • mohit-marathe/vlc
  • johnddx/vlc
  • manstabuk/vlc
  • Omar-ahmed314/vlc
  • vineethkm/vlc
  • 9Enemi86/vlc
  • radoslav.m.panteleev/vlc
  • ashishami2002/vlc
  • Corbax/vlc
  • firnasahmed/vlc
  • pelayarmalam4/vlc
  • c0ff330k/vlc
  • shikhindahikar/vlc
  • l342723951/vlc
  • christianschwandner/vlc
  • douniwan5788/vlc
  • 7damian7/vlc
  • ferdnyc/vlc
  • f.ales1/vlc
  • pandagby/vlc
  • BaaBaa/vlc
  • jewe37/vlc
  • w00drow/vlc
  • russelltg/vlc
  • ironicallygod/vlc
  • soumyaDghosh/vlc
  • linzihao1999/vlc
  • deyayush6/vlc
  • mibi88/vlc
  • newabdallah10/vlc
  • jhorbincolombia/vlc
  • rimvihaqueshupto/vlc
  • andrewkhon98/vlc
  • fab78/vlc
  • lapaz17/vlc
  • amanna13/vlc
  • mdakram28/vlc
  • 07jw1980/vlc
  • sohamgupta/vlc
  • Eson-Jia1/vlc
  • Sumou/vlc
  • vikram-kangotra/vlc
  • chalice191/vlc
  • olivercalder/vlc
  • aaasg4001/vlc
  • zipdox/vlc
  • kwizart/vlc
  • Dragon-S/vlc
  • jdemeule/vlc
  • gabriel_lt/vlc
  • locutusofborg/vlc
  • sammirata/vlc-librist
  • another/vlc
  • Benjamin_Loison/vlc
  • ahmedmoselhi/vlc
  • petergaal/vlc
  • huynhsontung/vlc
  • dariusmihut/vlc
  • tvermaashutosh/vlc
  • buti/vlc
  • Niram7777/vlc
  • rohan-here/vlc
  • balaji-sivasakthi/vlc
  • rlindner81/vlc
  • Kakadus/vlc
  • djain/vlc
  • ABBurmeister/vlc
  • craighuggins/vlc
  • orbea/vlc
  • maxos/vlc
  • aakarshmj/vlc
  • kblaschke/vlc
  • ankitm/vlc
  • advait-0/vlc
  • mohak2003/vlc
  • yselkowitz/vlc
  • AZM999/vlc-azm
  • andrey.turkin/vlc
  • Disha-Baghel/vlc
  • nowrep/vlc
  • Apeng/vlc
  • Choucroute_melba/vlc
  • autra/vlc
  • eclipseo/vlc
  • fhuber/vlc
  • olafhering/vlc
  • sdasda7777/vlc
  • 1div0/vlc
  • skosnits/vlc-extended-playlist-support
  • dnicolson/vlc
  • Timshel/vlc
  • octopols/vlc
  • MangalK/vlc
  • nima64/vlc
  • misawai/vlc
  • Alexander-Wilms/vlc
  • Maxime2/vlc-fork-for-visualizer
  • ww/vlc
  • jeske/vlc
  • sgross-emlix/vlc
  • morenonatural/vlc
  • freakingLovesVLC/vlc
  • borisgolovnev/vlc
  • mpromonet/vlc
  • diogo.simao-marques/vlc
  • masstock/vlc
  • pratikpatel8982/vlc
  • hugok79/vlc
  • longervision/vlc
  • abhiudaysurya/vlc
  • rishabhgarg/vlc
  • tumic/vlc
  • cart/vlc
  • shubham442/vlc
  • Aditya692005/vlc
  • sammirata/vlc4
  • syrykh/vlc
  • Vvorcun/macos-new-icon
  • AyaanshC/vlc
  • nasso/vlc
  • Quark/vlc
  • sebastinas/vlc
  • rhstone/vlc
  • talregev/vlc
  • Managor/vlc
403 results
Show changes
Commits on Source (11)
Showing
with 155 additions and 145 deletions
......@@ -61,7 +61,7 @@ MainInterface.MainViewLoader {
mlModel: artistModel
indexes: selectionModel.selectedIndexes
titleRole: "name"
defaultCover: VLCStyle.noArtArtistSmall
}
......
......@@ -494,8 +494,6 @@ FocusScope {
indexes: trackSelectionModel.selectedIndexes
titleRole: "name"
defaultCover: VLCStyle.noArtArtistCover
}
......
......@@ -83,8 +83,6 @@ T.ItemDelegate {
drag.target: Widgets.DragItem {
indexes: [index]
titleRole: "name"
onRequestData: {
console.assert(indexes[0] === index)
resolve([model])
......@@ -105,13 +103,6 @@ T.ItemDelegate {
dragItem.Drag.active = drag.active;
}
onPressed: {
const pos = mapToItem(drag.target.parent, mouseX, mouseY);
drag.target.x = pos.x + VLCStyle.dragDelta;
drag.target.y = pos.y + VLCStyle.dragDelta;
}
onClicked: itemClicked(mouse)
onDoubleClicked: itemDoubleClicked(mouse)
......
......@@ -80,8 +80,6 @@ MainInterface.MainViewLoader {
mlModel: genreModel
indexes: selectionModel.selectedIndexes
titleRole: "name"
}
/*
......
......@@ -141,8 +141,6 @@ MainInterface.MainViewLoader {
coverRole: "thumbnail"
defaultCover: root._placeHolder
titleRole: "name"
}
PlaylistListContextMenu {
......
......@@ -95,8 +95,6 @@ MainInterface.MainViewLoader {
indexes: selectionModel.selectedIndexes
titleRole: "name"
defaultText: I18n.qtr("Unknown Share")
coverProvider: function(index, data) {
......
......@@ -44,6 +44,18 @@ T.ItemDelegate {
readonly property bool containsDrag: (topContainsDrag || bottomContainsDrag)
// drag -> point
// current drag pos inside the item
readonly property point drag: {
if (!containsDrag)
return Qt.point(0, 0)
const d = topContainsDrag ? higherDropArea : lowerDropArea
const p = d.drag
return mapFromItem(d, p.x, p.y)
}
// Optional
property var contextMenu
......@@ -288,14 +300,6 @@ T.ItemDelegate {
MainPlaylistController.goTo(index, true)
}
onPressed: {
if (dragItem) {
const pos = mapToItem(dragItem.parent, mouseX, mouseY)
dragItem.x = pos.x + VLCStyle.dragDelta
dragItem.y = pos.y + VLCStyle.dragDelta
}
}
drag.target: dragItem
drag.smoothed: false
......
......@@ -25,6 +25,7 @@ import org.videolan.vlc 0.1
import org.videolan.compat 0.1
import "qrc:///widgets/" as Widgets
import "qrc:///util" as Util
import "qrc:///util/Helpers.js" as Helpers
import "qrc:///style/"
......@@ -284,11 +285,15 @@ T.Pane {
model: root.model
dragAutoScrollDragItem: dragItem
// NOTE: We want a gentle fade at the beginning / end of the playqueue.
enableFade: true
enableBeginningFade: (autoScroller.scrollingDirection !== Util.ViewDragAutoScrollHandler.Direction.Backward)
enableEndFade: (autoScroller.scrollingDirection !== Util.ViewDragAutoScrollHandler.Direction.Forward)
backgroundColor: root.background.usingAcrylic ? "transparent"
: listView.colorContext.bg.primary
......@@ -319,6 +324,18 @@ T.Pane {
}
}
Util.ViewDragAutoScrollHandler {
id: autoScroller
view: listView
dragging: !!listView.itemContainsDrag && listView.itemContainsDrag !== listView.footerItem
dragPosProvider: function () {
const source = listView.itemContainsDrag
const point = source.drag
return listView.mapFromItem(source, point.x, point.y)
}
}
footer: Item {
implicitWidth: parent.width
......@@ -331,6 +348,8 @@ T.Pane {
readonly property bool containsDrag: dropArea.containsDrag
readonly property point drag: Qt.point(dropArea.drag.x, dropArea.drag.y)
onContainsDragChanged: {
if (root.model.count > 0) {
listView.updateItemContainsDrag(this, containsDrag)
......
......@@ -99,6 +99,7 @@ QtObject {
readonly property int icon_large: dp(64, scale);
readonly property int icon_xlarge: dp(128, scale);
readonly property int icon_dragItem: dp(32, scale);
readonly property int icon_topbar: icon_normal
readonly property int icon_toolbar: icon_normal
readonly property int icon_audioPlayerButton: dp(32, scale)
......
......@@ -24,8 +24,18 @@ QtObject {
id: root
property Flickable view: null
// if 'dragItem' is null, user must override property 'dragging' and 'dragPosProvider'
property Item dragItem: null
property bool dragging: !!dragItem && dragItem.visible
property var dragPosProvider: function () {
return root.view.mapFromItem(root.dragItem.parent,
root.dragItem.x,
root.dragItem.y)
}
property int orientation: (view && view.orientation !== undefined) ? view.orientation
: Qt.Vertical
property real margin: VLCStyle.dp(20)
......@@ -61,15 +71,10 @@ QtObject {
: null
readonly property int direction: {
if (!root.dragItem || !root.view)
return ViewDragAutoScrollHandler.Direction.None
if (!root.dragItem.visible || !root.view.visible)
if (!root.view || !root.view.visible || !root.dragging)
return ViewDragAutoScrollHandler.Direction.None
const pos = root.view.mapFromItem(root.dragItem.parent,
root.dragItem.x,
root.dragItem.y)
const pos = root.dragPosProvider()
let size, mark, atBeginning, atEnd
if (root.orientation === Qt.Vertical) {
......
......@@ -25,6 +25,7 @@ import QtQml.Models 2.12
import QtGraphicalEffects 1.12
import org.videolan.vlc 0.1
import org.videolan.controls 0.1
import "qrc:///style/"
import "qrc:///playlist/" as Playlist
......@@ -38,7 +39,7 @@ Item {
// Properties
//---------------------------------------------------------------------------------------------
readonly property int coverSize: VLCStyle.icon_normal
readonly property int coverSize: VLCStyle.icon_dragItem
property var indexes: []
......@@ -52,11 +53,7 @@ Item {
// string => role
property string coverRole: "cover"
// function(index, data) - returns title text for the index in the model i.e <string> title
property var titleProvider: null
// string => role
property string titleRole: "title"
property real padding: VLCStyle.margin_xsmall
readonly property ColorContext colorContext: ColorContext {
id: theme
......@@ -67,7 +64,7 @@ Item {
signal requestInputItems(var indexes, var data, var resolve, var reject)
function coversXPos(index) {
return VLCStyle.margin_small + (coverSize / 3) * index;
return VLCStyle.margin_small + (coverSize / 1.5) * index;
}
/**
......@@ -89,7 +86,7 @@ Item {
//---------------------------------------------------------------------------------------------
// Private
readonly property int _maxCovers: 3
readonly property int _maxCovers: 10
readonly property int _indexesSize: !!indexes ? indexes.length : 0
......@@ -101,10 +98,12 @@ Item {
property var _covers: []
property string _title: ""
property int _currentRequest: 0
property int _grabImageRequest: 0
property bool _pendingNativeDragStart: false
property var _dropPromise: null
property var _dropCallback: null
property var _dropFailedCallback: null
......@@ -113,45 +112,52 @@ Item {
// Implementation
//---------------------------------------------------------------------------------------------
parent: g_mainDisplay
// always keep drag item out of view
z: -1
x: parent.width + VLCStyle.margin_large
width: VLCStyle.colWidth(2)
y: parent.height + VLCStyle.margin_large
height: coverSize + VLCStyle.margin_small * 2
visible: false
opacity: visible ? 0.90 : 0
Drag.dragType: Drag.None
visible: Drag.active
enabled: visible
Drag.hotSpot.x: - VLCStyle.dragDelta
Drag.hotSpot.y: - VLCStyle.dragDelta
parent: g_mainDisplay
width: padding * 2
+ coversXPos(_displayedCoversCount - 1) + coverSize + VLCStyle.margin_small
+ subtitleLabel.width
height: coverSize + padding * 2
enabled: false
function _setData(data) {
console.assert(data.length === indexes.length)
_data = data
const covers = []
const titleList = []
for (let i in indexes) {
if (covers.length === _maxCovers)
break
const cover = _getCover(indexes[i], data[i])
const itemTitle = _getTitle(indexes[i], data[i])
if (!cover || !itemTitle)
if (!cover)
continue
covers.push(cover)
titleList.push(itemTitle)
}
if (covers.length === 0)
covers.push({artwork: dragItem.defaultCover})
if (titleList.length === 0)
titleList.push(defaultText)
_covers = covers
_title = titleList.join(",") + (indexes.length > _maxCovers ? "..." : "")
}
function _setInputItems(inputItems) {
......@@ -172,12 +178,34 @@ Item {
return {artwork: data[dragItem.coverRole] || dragItem.defaultCover}
}
function _getTitle(index, data) {
console.assert(dragItem.titleRole)
if (!!dragItem.titleProvider)
return dragItem.titleProvider(index, data)
else
return data[dragItem.titleRole] || dragItem.defaultText
function _startNativeDrag() {
if (!_pendingNativeDragStart)
return
_pendingNativeDragStart = false
const requestId = ++dragItem._grabImageRequest
visible = true
const s = dragItem.grabToImage(function (result) {
visible = false
if (requestId !== dragItem._grabImageRequest
|| fsmDragInactive.active)
return
dragItem.Drag.imageSource = result.url
dragItem.Drag.startDrag()
})
if (!s) {
// reject all pending requests
++dragItem._grabImageRequest
dragItem.Drag.imageSource = ""
dragItem.Drag.startDrag()
}
}
//NoRole because I'm not sure we need this to be accessible
......@@ -187,16 +215,24 @@ Item {
Drag.onActiveChanged: {
if (Drag.active) {
// reject all pending requests
++dragItem._grabImageRequest
_pendingNativeDragStart = true
fsm.startDrag()
} else {
fsm.stopDrag()
}
}
Behavior on opacity {
NumberAnimation {
easing.type: Easing.InOutSine
duration: VLCStyle.duration_short
Timer {
// used to start the drag if it's taking too much time to load data
id: nativeDragStarter
interval: 50
running: _pendingNativeDragStart
onTriggered: {
dragItem._startNativeDrag()
}
}
......@@ -225,7 +261,8 @@ Item {
id: fsmDragInactive
function enter() {
_title = ""
_pendingNativeDragStart = false
_covers = []
_data = []
}
......@@ -246,6 +283,9 @@ Item {
function exit() {
MainCtx.restoreCursor()
_pendingNativeDragStart = false
if (dragItem._dropFailedCallback) {
dragItem._dropFailedCallback()
}
......@@ -308,6 +348,8 @@ Item {
id: fsmLoadingDone
function enter() {
dragItem._startNativeDrag()
if (dragItem._dropCallback) {
dragItem._dropCallback(dragItem._inputItems)
}
......@@ -320,6 +362,8 @@ Item {
Util.FSMState {
id: fsmLoadingFailed
function enter() {
_pendingNativeDragStart = false
if (dragItem._dropFailedCallback) {
dragItem._dropFailedCallback()
}
......@@ -340,14 +384,6 @@ Item {
radius: VLCStyle.dp(6, VLCStyle.scale)
}
RectangularGlow {
anchors.fill: parent
glowRadius: VLCStyle.dp(8, VLCStyle.scale)
color: theme.shadow
spread: 0.2
z: -1
}
Repeater {
id: coverRepeater
......@@ -355,7 +391,7 @@ Item {
Item {
x: dragItem.coversXPos(index)
y: (dragItem.height - height) / 2
anchors.verticalCenter: parent.verticalCenter
width: dragItem.coverSize
height: dragItem.coverSize
......@@ -384,12 +420,28 @@ Item {
}
}
RoundImage {
id: fallbackCover
anchors.centerIn: parent
width: coverSize
height: coverSize
radius: bg.radius
source: dragItem.defaultCover
visible: !loader.visible
}
Loader {
id: loader
// parent may provide extra data with covers
property var model: modelData
anchors.centerIn: parent
visible: (status === Loader.Ready)
&& (!("status" in item) || (item.status === Image.Ready))
sourceComponent: (!modelData.artwork || modelData.artwork.toString() === "") ? modelData.cover : artworkLoader
layer.enabled: true
layer.effect: OpacityMask {
......@@ -422,7 +474,7 @@ Item {
id: extraCovers
x: dragItem.coversXPos(_maxCovers)
y: (dragItem.height - height) / 2
anchors.verticalCenter: parent.verticalCenter
width: dragItem.coverSize
height: dragItem.coverSize
radius: dragItem.coverSize
......@@ -432,8 +484,14 @@ Item {
border.color: theme.border
MenuLabel {
anchors.centerIn: parent
anchors.fill: parent
verticalAlignment: Text.AlignVCenter
horizontalAlignment: Text.AlignHCenter
font.pixelSize: VLCStyle.fontSize_small
color: theme.accent
text: "+" + (dragItem._indexesSize - dragItem._maxCovers)
}
......@@ -454,41 +512,15 @@ Item {
}
Column {
id: labelColumn
MenuCaption {
id: subtitleLabel
anchors.verticalCenter: parent.verticalCenter
x: dragItem.coversXPos(_displayedCoversCount - 1) + dragItem.coverSize + VLCStyle.margin_small
width: parent.width - x - VLCStyle.margin_small
spacing: VLCStyle.margin_xxxsmall
ScrollingText {
label: titleLabel
height: VLCStyle.fontHeight_large
width: parent.width
clip: scrolling
forceScroll: dragItem.visible
hoverScroll: false
T.Label {
id: titleLabel
text: dragItem._title
visible: text && text !== ""
font.pixelSize: VLCStyle.fontSize_large
color: theme.fg.primary
}
}
MenuCaption {
id: subtitleLabel
visible: text && text !== ""
width: parent.width
text: I18n.qtr("%1 selected").arg(dragItem._indexesSize)
color: theme.fg.secondary
}
visible: text && text !== ""
text: I18n.qtr("%1 selected").arg(dragItem._indexesSize)
color: theme.fg.secondary
}
Component {
......@@ -498,7 +530,6 @@ Item {
fillMode: Image.PreserveAspectCrop
width: coverSize
height: coverSize
asynchronous: true
cache: false
}
}
......
......@@ -205,13 +205,6 @@ T.ItemDelegate {
onPressed: {
_modifiersOnLastPress = mouse.modifiers
if (!drag.target)
return
const pos = mapToItem(drag.target.parent, mouseX, mouseY)
drag.target.x = pos.x + VLCStyle.dragDelta
drag.target.y = pos.y + VLCStyle.dragDelta
}
drag.onActiveChanged: {
......
......@@ -53,10 +53,6 @@ FadingEdgeListView {
property alias buttonLeft: buttonLeft
property alias buttonRight: buttonRight
property alias dragAutoScrollDragItem: dragAutoScrollHandler.dragItem
property alias dragAutoScrollMargin: dragAutoScrollHandler.margin
property alias dragAutoScrolling: dragAutoScrollHandler.scrolling
// Signals
signal selectionUpdated(int keyModifiers, int oldIndex, int newIndex)
......@@ -96,14 +92,6 @@ FadingEdgeListView {
section.criteria: ViewSection.FullString
section.delegate: sectionHeading
enableBeginningFade: (enableFade && dragAutoScrollHandler.scrollingDirection
!==
Util.ViewDragAutoScrollHandler.Backward)
enableEndFade: (enableFade && dragAutoScrollHandler.scrollingDirection
!==
Util.ViewDragAutoScrollHandler.Forward)
Accessible.role: Accessible.List
// Events
......@@ -290,12 +278,6 @@ FadingEdgeListView {
}
}
Util.ViewDragAutoScrollHandler {
id: dragAutoScrollHandler
view: root
}
Util.FlickableScrollHandler { }
// FIXME: This is probably not useful anymore.
......
......@@ -131,14 +131,6 @@ T.Control {
onPressed: {
_modifiersOnLastPress = mouse.modifiers
if (!drag.target)
return
const pos = mapToItem(drag.target.parent, mouseX, mouseY);
drag.target.x = pos.x + VLCStyle.dragDelta;
drag.target.y = pos.y + VLCStyle.dragDelta;
}
onClicked: {
......