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 (14)
......@@ -58,6 +58,8 @@ Control {
drag.target: loader
drag.smoothed: false
hoverEnabled: true
drag.onActiveChanged: {
......@@ -75,15 +77,10 @@ Control {
}
}
onPositionChanged: {
if (drag.active) {
// FIXME: There must be a better way of this
const pos = mapToItem(loader.parent, mouseX, mouseY)
// y should be set first, because the automatic scroll is
// triggered by change on X
loader.y = pos.y
loader.x = pos.x
}
onPressed: {
const pos = mapToItem(loader.parent, mouseX, mouseY)
loader.y = pos.y + VLCStyle.dragDelta
loader.x = pos.x + VLCStyle.dragDelta
}
}
......
......@@ -135,6 +135,8 @@ GridView {
drag.target: buttonDragItem
drag.smoothed: false
readonly property int mIndex: PlayerControlbarControls.controlList[model.index].id
drag.onActiveChanged: {
......@@ -155,16 +157,10 @@ GridView {
}
}
onPositionChanged: {
if (drag.active) {
// FIXME: There must be a better way of this
const pos = mapToItem(buttonDragItem.parent, mouseX, mouseY)
// y should be set first, because the automatic scroll is
// triggered by change on X
buttonDragItem.y = pos.y
buttonDragItem.x = pos.x
}
onPressed: {
const pos = mapToItem(buttonDragItem.parent, mouseX, mouseY)
buttonDragItem.y = pos.y + VLCStyle.dragDelta
buttonDragItem.x = pos.x + VLCStyle.dragDelta
}
Rectangle {
......
......@@ -78,6 +78,7 @@ T.ItemDelegate {
hoverEnabled: true
drag.axis: Drag.XAndYAxis
drag.smoothed: false
drag.target: Widgets.DragItem {
indexes: [index]
......@@ -102,9 +103,7 @@ T.ItemDelegate {
dragItem.Drag.active = drag.active;
}
onPositionChanged: {
if (drag.active == false) return;
onPressed: {
const pos = drag.target.parent.mapFromItem(root, mouseX, mouseY);
drag.target.x = pos.x + VLCStyle.dragDelta;
......
......@@ -264,8 +264,16 @@ T.ItemDelegate {
mainPlaylistController.goTo(index, true)
}
onPressed: {
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
drag.onActiveChanged: {
if (drag.active) {
if (!selected) {
......@@ -273,32 +281,16 @@ T.ItemDelegate {
root.model.setSelection([index])
}
if (contains(mapFromItem(dragItem.parent, dragItem.x, dragItem.y))) {
// Force trigger entered signal in drop areas
// so that containsDrag work properly
dragItem.x = -1
dragItem.y = -1
}
dragItem.Drag.active = drag.active
}
else {
dragItem.indexes = root.model.getSelection()
dragItem.Drag.active = true
} else {
dragItem.Drag.drop()
}
}
onPositionChanged: {
if (drag.active) {
// FIXME: Override dragItem's position
const pos = mapToItem(dragItem.parent, mouseX, mouseY)
dragItem.x = pos.x + VLCStyle.dp(15)
dragItem.y = pos.y
}
}
TapHandler {
acceptedDevices: PointerDevice.TouchScreen
onTapped: {
if (root.mode === PlaylistListView.Mode.Normal) {
mainPlaylistController.goTo(index, true)
......
......@@ -65,32 +65,10 @@ Control {
}
function isDropAcceptable(drop, index) {
if (drop.hasUrls)
return true // external drop (i.e. from filesystem)
if (Helpers.isValidInstanceOf(drop.source, Widgets.DragItem)) {
// internal drop (inter-view or intra-playlist)
const selection = drop.source.selection
if (!!selection) {
const length = selection.length
const firstIndex = selection[0]
const lastIndex = selection[length - 1]
let consecutive = true
if (length > 1) {
for (let i = 0; i < length - 1; ++i) {
if (selection[i + 1] - selection[i] !== 1) {
consecutive = false
break
}
}
}
return !consecutive || (index > lastIndex + 1 || index < firstIndex)
} else {
return true
}
}
return false
if (drop.source === dragItem)
return Helpers.itemsMovable(drop.source.indexes, index)
else
return true
}
function acceptDrop(index, drop) {
......@@ -163,13 +141,7 @@ Control {
parent: (typeof g_mainDisplay !== 'undefined') ? g_mainDisplay : root
property var selection: null // make this indexes alias?
indexes: selection
onRequestData: {
selection = root.model.getSelection()
indexes = selection
setData(identifier, indexes.map(function (index) {
const item = root.model.itemAt(index)
return {
......
......@@ -69,3 +69,27 @@ function alignUp(a, b) {
function alignDown(a, b) {
return Math.floor(a / b) * b
}
function isSortedIntegerArrayConsecutive(array) {
const length = array.length
if (length <= 1)
return true
const first = array[0]
const last = array[length - 1]
if (length === 2)
return Math.abs(first - last) === 1
const sum1 = array.reduce((i, j) => i + j)
const sum2 = length * (first + last) / 2
return (sum1 === sum2)
}
function itemsMovable(sortedItemIndexes, targetIndex) {
return !isSortedIntegerArrayConsecutive(sortedItemIndexes) ||
(targetIndex > (sortedItemIndexes[sortedItemIndexes.length - 1] + 1) ||
targetIndex < sortedItemIndexes[0])
}
......@@ -81,7 +81,7 @@ Item {
console.assert(data.length === indexes.length)
_data = data
if (!dragItem._active)
if (!dragItem.Drag.active)
return
Qt.callLater(dragItem.getSelectedInputItem, dragItem.setInputItems)
......@@ -126,8 +126,6 @@ Item {
readonly property int _maxCovers: 3
readonly property bool _active: Drag.active
readonly property int _indexesSize: !!indexes ? indexes.length : 0
readonly property int _displayedCoversCount: Math.min(_indexesSize, _maxCovers + 1)
......@@ -142,16 +140,6 @@ Item {
property int _currentRequest: 0
Drag.onActiveChanged: {
// FIXME: This should not be ideally necessary
// TODO: Rework D&D positioning
if (!Drag.active)
x = y = -1
if (!Drag.active)
dragItem._inputItems = undefined
}
//---------------------------------------------------------------------------------------------
// Implementation
//---------------------------------------------------------------------------------------------
......@@ -188,9 +176,8 @@ Item {
Accessible.role: Accessible.NoRole
Accessible.name: I18n.qtr("drag item")
on_ActiveChanged: {
if (_active) {
Drag.onActiveChanged: {
if (Drag.active) {
// reset any data from previous drags before requesting new data,
// so that we don't show invalid data while data is being requested
_title = ""
......@@ -203,6 +190,8 @@ Item {
MainCtx.setCursor(Qt.DragMoveCursor)
} else {
MainCtx.restoreCursor()
dragItem._inputItems = undefined
}
}
......
......@@ -188,6 +188,8 @@ T.ItemDelegate {
drag.axis: Drag.XAndYAxis
drag.smoothed: false
onClicked: {
if (mouse.button === Qt.RightButton)
contextMenuButtonClicked(picture, root.mapToGlobal(mouse.x,mouse.y));
......@@ -201,14 +203,12 @@ T.ItemDelegate {
root.itemDoubleClicked(picture,mouse.buttons, mouse.modifiers)
}
onPressed: _modifiersOnLastPress = mouse.modifiers
onPressed: {
_modifiersOnLastPress = mouse.modifiers
onPositionChanged: {
if (drag.active) {
const pos = drag.target.parent.mapFromItem(root, mouseX, mouseY)
drag.target.x = pos.x + VLCStyle.dragDelta
drag.target.y = pos.y + VLCStyle.dragDelta
}
const pos = drag.target.parent.mapFromItem(root, mouseX, mouseY)
drag.target.x = pos.x + VLCStyle.dragDelta
drag.target.y = pos.y + VLCStyle.dragDelta
}
drag.onActiveChanged: {
......
......@@ -125,9 +125,18 @@ T.Control {
drag.axis: Drag.XAndYAxis
drag.smoothed: false
// Events
onPressed: _modifiersOnLastPress = mouse.modifiers
onPressed: {
_modifiersOnLastPress = mouse.modifiers
const pos = drag.target.parent.mapFromItem(hoverArea, mouseX, mouseY);
drag.target.x = pos.x + VLCStyle.dragDelta;
drag.target.y = pos.y + VLCStyle.dragDelta;
}
onClicked: {
if ((mouse.button === Qt.LeftButton) || !delegate.selected) {
......@@ -138,16 +147,6 @@ T.Control {
delegate.rightClick(delegate, delegate.rowModel, hoverArea.mapToGlobal(mouse.x, mouse.y))
}
onPositionChanged: {
if (drag.active == false)
return;
const pos = drag.target.parent.mapFromItem(hoverArea, mouseX, mouseY);
drag.target.x = pos.x + VLCStyle.dragDelta;
drag.target.y = pos.y + VLCStyle.dragDelta;
}
onDoubleClicked: {
if (mouse.button === Qt.LeftButton)
delegate.itemDoubleClicked(delegate._index, delegate.rowModel)
......