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
  • abdsaber000/vlc
  • falbrechtskirchinger/vlc
  • b.sullender/vlc
  • hulxv/vlc
  • zyad-ayad/vlc
  • shocknovaa/vlc
  • gremlinflat/vlc
  • Pratham24D/vlc
  • hmaarrfk/vlc
412 results
Show changes
Commits on Source (3)
......@@ -35,10 +35,14 @@ T.Control {
readonly property int selectionLength: root.model.selectedCount
readonly property bool isLastItem: (index === listView.modelCount - 1)
readonly property bool selected : model.selected
readonly property bool topContainsDrag: higherDropArea.containsDrag
readonly property bool bottomContainsDrag: lowerDropArea.containsDrag
readonly property bool containsDrag: (topContainsDrag || bottomContainsDrag)
// Settings
topPadding: VLCStyle.margin_xxsmall
......@@ -69,18 +73,6 @@ T.Control {
adjustTooltip()
}
// Connections
Connections {
target: listView
onSetItemDropIndicatorVisible: {
if (index === model.index) {
topDropIndicator.visible = Qt.binding(function() { return visible || higherDropArea.containsDrag; })
}
}
}
// Functions
function adjustTooltip() {
......@@ -213,22 +205,6 @@ T.Control {
}
}
Rectangle {
id: topDropIndicator
anchors {
left: parent.left
right: parent.right
top: parent.top
}
visible: higherDropArea.containsDrag
height: VLCStyle.dp(1, VLCStyle.scale)
color: colors.accent
}
MouseArea {
id: mouseArea
......@@ -257,7 +233,7 @@ T.Control {
onClicked: {
/* to receive keys events */
listView.forceActiveFocus()
if (listView.mode === PlaylistListView.Mode.Move) {
if (root.mode === PlaylistListView.Mode.Move) {
var selectedIndexes = root.model.getSelection()
if (selectedIndexes.length === 0)
return
......@@ -269,7 +245,7 @@ T.Control {
listView.currentIndex = selectedIndexes[0]
root.model.moveItemsPre(selectedIndexes, preTarget)
return
} else if (listView.mode === PlaylistListView.Mode.Select) {
} else if (root.mode === PlaylistListView.Mode.Select) {
} else if (!(root.model.isSelected(index) && mouse.button === Qt.RightButton)) {
listView.updateSelection(mouse.modifiers, listView.currentIndex, index)
listView.currentIndex = index
......@@ -280,7 +256,7 @@ T.Control {
}
onDoubleClicked: {
if (mouse.button !== Qt.RightButton && listView.mode === PlaylistListView.Mode.Normal)
if (mouse.button !== Qt.RightButton && root.mode === PlaylistListView.Mode.Normal)
mainPlaylistController.goTo(index, true)
}
......@@ -345,29 +321,15 @@ T.Control {
Layout.fillWidth: true
Layout.fillHeight: true
function handleDropIndicators(visible) {
if (isLastItem)
listView.footerItem.setDropIndicatorVisible(visible)
else
listView.setItemDropIndicatorVisible(index + 1, visible)
}
onEntered: {
if (!isDropAcceptable(drag, index + 1)) {
drag.accepted = false
return
}
handleDropIndicators(true)
}
onExited: {
handleDropIndicators(false)
}
onDropped: {
root.acceptDrop(index + 1, drop)
handleDropIndicators(false)
}
}
}
......
......@@ -47,6 +47,8 @@ Control {
property VLCColors colors: VLCStyle.colors
property int mode: PlaylistListView.Mode.Normal
enum Mode {
Normal,
Select, // Keyboard item selection mode, activated through PlaylistOverlayMenu
......@@ -240,11 +242,11 @@ Control {
}
Widgets.CaptionLabel {
color: (listView.mode === PlaylistListView.Mode.Select || listView.mode === PlaylistListView.Mode.Move)
color: (root.mode === PlaylistListView.Mode.Select || root.mode === PlaylistListView.Mode.Move)
? colors.accent : colors.caption
visible: model.count !== 0
text: {
switch (listView.mode) {
switch (root.mode) {
case PlaylistListView.Mode.Select:
return I18n.qtr("Selected tracks: %1").arg(model.selectedCount)
case PlaylistListView.Mode.Move:
......@@ -283,7 +285,7 @@ Control {
Layout.leftMargin: VLCStyle.margin_normal
Layout.rightMargin: Math.max(listView.scrollBarWidth, VLCStyle.margin_normal)
spacing: 0
spacing: VLCStyle.margin_large
Widgets.IconLabel {
Layout.preferredWidth: VLCStyle.icon_normal
......@@ -296,7 +298,6 @@ Control {
Widgets.CaptionLabel {
Layout.fillWidth: true
Layout.leftMargin: VLCStyle.margin_large
verticalAlignment: Text.AlignVCenter
text: I18n.qtr("Title")
......@@ -339,9 +340,8 @@ Control {
: background.alternativeColor
property int shiftIndex: -1
property int mode: PlaylistListView.Mode.Normal
signal setItemDropIndicatorVisible(int index, bool visible)
property PlaylistDelegate delegateContainsDrag: null
onDeselectAll: {
root.model.deselectAll()
......@@ -391,21 +391,7 @@ Control {
property alias firstItemIndicatorVisible: firstItemIndicator.visible
function setDropIndicatorVisible(visible) {
dropIndicator.visible = Qt.binding(function() { return (visible || dropArea.containsDrag); })
}
Rectangle {
id: dropIndicator
anchors.left: parent.left
anchors.right: parent.right
height: VLCStyle.dp(1)
anchors.top: parent.top
visible: (root.model.count > 0 && dropArea.containsDrag)
color: colors.accent
}
readonly property bool containsDrag: dropArea.containsDrag
Rectangle {
id: firstItemIndicator
......@@ -459,13 +445,44 @@ Control {
colors: root.colors
}
Rectangle {
id: dropIndicator
parent: visible ? (listView.delegateContainsDrag ? listView.delegateContainsDrag
: listView.footerItem)
: null
z: 99
anchors {
left: !!parent ? parent.left : undefined
right: !!parent ? parent.right : undefined
top: listView.delegateContainsDrag ? (parent.topContainsDrag ? parent.top : undefined)
: (parent ? parent.top : undefined)
bottom: listView.delegateContainsDrag ? (parent.bottomContainsDrag ? parent.bottom : undefined)
: undefined
bottomMargin: -height
}
implicitHeight: VLCStyle.dp(1)
visible: !!listView.delegateContainsDrag || (listView.footerItem.containsDrag && !listView.footerItem.firstItemIndicatorVisible)
color: colors.accent
}
delegate: PlaylistDelegate {
id: delegate
// Instead of property forwarding, PlaylistDelegate is tightly coupled with PlaylistlistView
// since PlaylistDelegate is expected to be used only within PlaylistlistView
width: listView.width
onContainsDragChanged: {
if (delegate.topContainsDrag || delegate.bottomContainsDrag) {
console.assert(listView.delegateContainsDrag === null)
listView.delegateContainsDrag = delegate
} else {
console.assert(listView.delegateContainsDrag === delegate)
listView.delegateContainsDrag = null
}
}
}
add: Transition {
......@@ -488,9 +505,9 @@ Control {
onSelectAll: root.model.selectAll()
onSelectionUpdated: {
if (listView.mode === PlaylistListView.Mode.Select) {
if (root.mode === PlaylistListView.Mode.Select) {
console.log("update selection select")
} else if (listView.mode === PlaylistListView.Mode.Move) {
} else if (root.mode === PlaylistListView.Mode.Move) {
var selectedIndexes = root.model.getSelection()
if (selectedIndexes.length === 0)
return
......
......@@ -116,13 +116,13 @@ Widgets.OverlayMenu {
Action {
id: selectTracksAction
text: I18n.qtr("Select Tracks")
onTriggered: listView.mode = PlaylistListView.Mode.Select
onTriggered: root.mode = PlaylistListView.Mode.Select
}
Action {
id: moveTracksAction
text: I18n.qtr("Move Selection")
onTriggered: listView.mode = PlaylistListView.Mode.Move
onTriggered: root.mode = PlaylistListView.Mode.Move
}
Action {
......