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
  • Thrillseekr/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
400 results
Show changes
Commits on Source (13)
Showing
with 189 additions and 114 deletions
......@@ -40,9 +40,7 @@ FocusScope {
onInitialIndexChanged: resetFocus()
function requestArtistAlbumView() {
console.assert(false, "must be reimplemented")
}
signal requestArtistAlbumView(int reason)
function resetFocus() {
if (artistModel.count === 0)
......@@ -137,7 +135,7 @@ FocusScope {
medialib.addAndPlay( artistModel.getIdsForIndexes( selectionModel.selectedIndexes ) )
} else {
_currentView.currentIndex = index
requestArtistAlbumView()
requestArtistAlbumView(Qt.TabFocusReason)
medialib.addAndPlay( artistModel.getIdForIndex(index) )
}
}
......@@ -171,7 +169,7 @@ FocusScope {
onItemClicked: artistGrid.leftClickOnItem(modifier, index)
onItemDoubleClicked: root.requestArtistAlbumView(model)
onItemDoubleClicked: root.requestArtistAlbumView(Qt.MouseFocusReason)
onContextMenuButtonClicked: {
artistGrid.rightClickOnItem(index)
......@@ -206,7 +204,7 @@ FocusScope {
if (selection.length > 1) {
medialib.addAndPlay( artistModel.getIdsForIndexes( selection ) )
} else if ( selection.length === 1) {
requestArtistAlbumView()
requestArtistAlbumView(Qt.TabFocusReason)
medialib.addAndPlay( artistModel.getIdForIndex( selection[0] ) )
}
}
......@@ -216,9 +214,8 @@ FocusScope {
{ criteria: "nb_tracks", width: VLCStyle.colWidth(1), text: i18n.qtr("Tracks") }
]
onItemDoubleClicked: {
root.requestArtistAlbumView(model)
}
onItemDoubleClicked: root.requestArtistAlbumView(Qt.MouseFocusReason)
onContextMenuButtonClicked: contextMenu.popup(selectionModel.selectedIndexes, menuParent.mapToGlobal(0,0))
onRightClick: contextMenu.popup(selectionModel.selectedIndexes, globalMousePos)
......
......@@ -64,8 +64,11 @@ Widgets.PageLoader {
MusicAllArtists {
onCurrentIndexChanged: _updateArtistsAllHistory(currentIndex)
function requestArtistAlbumView() /* override */ {
history.push([ "mc", "music", "artists", "albums", { initialIndex: currentIndex } ])
onRequestArtistAlbumView: {
history.push(["mc", "music", "artists", "albums",
{ initialIndex: currentIndex } ]);
stackView.currentItem.setCurrentItemFocus(reason);
}
}
}
......
......@@ -39,6 +39,8 @@ FocusScope {
property alias _currentView: view.currentItem
signal showAlbumView(variant id, string name, int reason)
onInitialIndexChanged: resetFocus()
Component.onCompleted: loadView()
......@@ -51,10 +53,6 @@ FocusScope {
}
}
function showAlbumView( m ) {
history.push([ "mc", "music", "genres", "albums", { parentId: m.id, genreName: m.name } ])
}
function resetFocus() {
if (genreModel.count === 0) {
return
......@@ -87,7 +85,8 @@ FocusScope {
medialib.addAndPlay(model.getIdsForIndexes(selectionModel.selectedIndexes))
} else if (selectionModel.selectedIndexes.length === 1) {
var sel = selectionModel.selectedIndexes[0]
showAlbumView( genreModel.getDataAt(sel) )
var model = genreModel.getDataAt(sel)
showAlbumView(model.id, model.name, Qt.TabFocusReason)
}
}
......@@ -172,7 +171,7 @@ FocusScope {
unselectedUnderlay: shadows.unselected
selectedUnderlay: shadows.selected
onItemDoubleClicked: root.showAlbumView(model)
onItemDoubleClicked: root.showAlbumView(model.id, model.name, Qt.MouseFocusReason)
onItemClicked: gridView_id.leftClickOnItem(modifier, item.index)
onPlayClicked: {
......@@ -274,7 +273,7 @@ FocusScope {
]
onItemDoubleClicked: {
root.showAlbumView(model)
root.showAlbumView(model.id, model.name, Qt.MouseFocusReason)
}
onContextMenuButtonClicked: contextMenu.popup(selectionModel.selectedIndexes, menuParent.mapToGlobal(0,0))
......
......@@ -63,6 +63,13 @@ Widgets.PageLoader {
/* List View */
MusicGenres {
onCurrentIndexChanged: _updateGenresAllHistory(currentIndex)
onShowAlbumView: {
history.push(["mc", "music", "genres", "albums",
{ parentId: id, genreName: name }]);
stackView.currentItem.setCurrentItemFocus(reason);
}
}
}
......
......@@ -96,8 +96,12 @@ Widgets.PageLoader {
onCurrentIndexChanged: _updateHistoryList(currentIndex)
onShowList: history.push(["mc", "music", "playlists", "list",
{ parentId: model.id, name: model.name }])
onShowList: {
history.push(["mc", "music", "playlists", "list",
{ parentId: model.id, name: model.name }]);
stackView.currentItem.setCurrentItemFocus(reason);
}
}
}
......
......@@ -96,8 +96,12 @@ Widgets.PageLoader {
onCurrentIndexChanged: _updateHistoryAll(currentIndex)
onShowList: history.push(["mc", "video", "groups", "list",
{ parentId: model.id, name: model.name }])
onShowList: {
history.push(["mc", "video", "groups", "list",
{ parentId: model.id, name: model.name }]);
stackView.currentItem.setCurrentItemFocus(reason);
}
}
}
......
......@@ -94,8 +94,12 @@ Widgets.PageLoader {
onCurrentIndexChanged: _updateHistoryList(currentIndex)
onShowList: history.push(["mc", "video", "playlists", "list",
{ parentId: model.id, name: model.name }])
onShowList: {
history.push(["mc", "video", "playlists", "list",
{ parentId: model.id, name: model.name }]);
stackView.currentItem.setCurrentItemFocus(reason);
}
}
}
......
......@@ -33,8 +33,11 @@ FocusScope {
property var providerModel
property var contextMenu
property var tree
onTreeChanged: providerModel.tree = tree
readonly property var currentIndex: _currentView.currentIndex
readonly property bool isViewMultiView: true
//the index to "go to" when the view is loaded
property var initialIndex: 0
property var sortModel: [
......@@ -44,9 +47,13 @@ FocusScope {
property alias _currentView: view.currentItem
function changeTree(new_tree) {
history.push(["mc", "network", { tree: new_tree }]);
}
signal browse(variant tree, int reason)
providerModel: modelMedia
contextMenu: NetworkMediaContextMenu { model: modelMedia }
onTreeChanged: providerModel.tree = tree
function playSelected() {
providerModel.addAndPlay(filterModel.mapIndexesToSource(selectionModel.selectedIndexes))
......@@ -124,7 +131,7 @@ FocusScope {
var data = filterModel.getDataAt(index)
if (data.type === NetworkMediaModel.TYPE_DIRECTORY
|| data.type === NetworkMediaModel.TYPE_NODE) {
changeTree(data.tree)
browse(data.tree, Qt.TabFocusReason)
} else {
playAt(index)
}
......@@ -204,7 +211,7 @@ FocusScope {
onItemDoubleClicked: {
if (model.type === NetworkMediaModel.TYPE_NODE || model.type === NetworkMediaModel.TYPE_DIRECTORY)
changeTree(model.tree)
browse(model.tree, Qt.MouseFocusReason)
else
playAt(index)
}
......@@ -278,6 +285,7 @@ FocusScope {
height: layout.implicitHeight + VLCStyle.margin_large + VLCStyle.margin_small
Navigation.navigable: btn.visible
Navigation.parentItem: root
RowLayout {
id: layout
......
......@@ -25,81 +25,95 @@ import org.videolan.vlc 0.1
import "qrc:///widgets/" as Widgets
import "qrc:///style/"
// FIXME: We should refactor this to a PageLoader.
FocusScope {
Widgets.PageLoader {
id: root
property var extraLocalActions: undefined
// Properties
property var sortModel
property var contentModel
property bool isViewMultiView: true
property var tree: undefined
onTreeChanged: loadView()
Component.onCompleted: loadView()
property var contentModel
property var sortModel
property Component localMenuDelegate
property alias _currentView: view.currentItem
// Settings
//reset view
function loadDefaultView() {
root.tree = undefined
}
defaultPage: "home"
function setCurrentItemFocus(reason) {
_currentView.setCurrentItemFocus(reason);
}
pageModel: [{
name: "home",
url: "qrc:///network/NetworkHomeDisplay.qml"
}, {
name: "browse",
url: "qrc:///network/NetworkBrowseDisplay.qml"
}]
property Component localMenuDelegate
// Events
function loadView() {
var page = "";
var props = undefined;
if (root.tree === undefined) {
page ="qrc:///network/NetworkHomeDisplay.qml"
root.localMenuDelegate = null
isViewMultiView = false
onCurrentItemChanged: {
sortModel = currentItem.sortModel;
contentModel = currentItem.model;
isViewMultiView = (currentItem.isViewMultiView === undefined
||
currentItem.isViewMultiView);
if (tree) {
if (view == "home")
localMenuDelegate = null;
else
localMenuDelegate = componentBar;
} else {
page = "qrc:///network/NetworkBrowseDisplay.qml"
props = { providerModel: mediaModel, contextMenu: mediaContextMenu, tree: root.tree }
root.localMenuDelegate = addressBar
isViewMultiView = true
localMenuDelegate = null;
}
view.replace(page, props)
}
extraLocalActions = _currentView.extraLocalActions
_currentView.Navigation.parentItem = root
// Functions
// PageLoader reimplementation
if (_currentView.model)
root.contentModel = _currentView.model
root.sortModel = _currentView.sortModel
// FIXME: Maybe this could be done with a 'guard' mechanism on the pageModel.
function loadView() {
if (tree)
stackView.loadView(pageModel, view, viewProperties);
else
stackView.loadView(pageModel, "home", viewProperties);
stackView.currentItem.Navigation.parentItem = root;
currentItemChanged(stackView.currentItem);
}
Component {
id: addressBar
// Connections
NetworkAddressbar {
path: mediaModel.path
Connections {
target: stackView.currentItem
onBrowse: {
root.tree = tree;
history.push(["mc", "network", "browse", { tree: tree }]);
onHomeButtonClicked: history.push(["mc", "network"])
stackView.currentItem.setCurrentItemFocus(reason);
}
}
// Children
NetworkMediaModel {
id: mediaModel
id: modelMedia
ctx: mainctx
}
NetworkMediaContextMenu {
id: mediaContextMenu
model: mediaModel
}
Component {
id: componentBar
Widgets.StackViewExt {
id: view
NetworkAddressbar {
path: modelMedia.path
anchors.fill:parent
focus: true
onHomeButtonClicked: history.push(["mc", "network", "home"])
}
}
}
......@@ -36,6 +36,9 @@ FocusScope {
property int leftPadding: VLCStyle.margin_xlarge
property int _currentIndex: -1
signal browse(variant tree, int reason)
on_CurrentIndexChanged: {
deviceListView.currentIndex = _currentIndex
}
......@@ -45,13 +48,14 @@ FocusScope {
}
function _actionAtIndex(index, model, selectionModel) {
var data = model.getDataAt(index)
var data = model.getDataAt(index);
if (data.type === NetworkMediaModel.TYPE_DIRECTORY
|| data.type === NetworkMediaModel.TYPE_NODE) {
history.push(["mc", "network", { tree: data.tree }]);
} else {
model.addAndPlay( selectionModel.selectedIndexes )
}
||
data.type === NetworkMediaModel.TYPE_NODE)
browse(data.tree, Qt.TabFocusReason);
else
model.addAndPlay( selectionModel.selectedIndexes);
}
onFocusChanged: {
......@@ -110,10 +114,12 @@ FocusScope {
onPlayClicked: deviceModel.addAndPlay( index )
onItemDoubleClicked: {
if (model.type === NetworkMediaModel.TYPE_NODE || model.type === NetworkMediaModel.TYPE_DIRECTORY)
history.push( ["mc", "network", { tree: model.tree } ])
if (model.type === NetworkMediaModel.TYPE_NODE
||
model.type === NetworkMediaModel.TYPE_DIRECTORY)
browse(model.tree, Qt.MouseFocusReason);
else
deviceModel.addAndPlay( index )
deviceModel.addAndPlay(index);
}
}
......
......@@ -31,6 +31,13 @@ FocusScope {
id: topFocusScope
focus: true
readonly property bool isViewMultiView: false
signal browse(variant tree, int reason)
Component.onCompleted: resetFocus()
onActiveFocusChanged: resetFocus()
function setCurrentItemFocus(reason) {
deviceSection.setCurrentItemFocus(reason);
}
......@@ -43,15 +50,6 @@ FocusScope {
}
}
function _actionAtIndex(index, model, selectionModel) {
if (selectionModel.items.get(index).model.type === NetworkMediaModel.TYPE_DIRECTORY
|| selectionModel.items.get(index).model.type === NetworkMediaModel.TYPE_NODE) {
history.push(["mc", "network", { tree: selectionModel.items.get(index).model.tree }]);
} else {
model.addAndPlay( selectionModel.selectedIndexes )
}
}
Label {
anchors.centerIn: parent
visible: (deviceSection.model.count === 0 && lanSection.model.count === 0 )
......@@ -89,6 +87,8 @@ FocusScope {
visible: deviceSection.model.count !== 0
onVisibleChanged: topFocusScope.resetFocus()
onBrowse: topFocusScope.browse(tree, reason)
Navigation.parentItem: topFocusScope
Navigation.downAction: function() {
......@@ -122,6 +122,8 @@ FocusScope {
visible: lanSection.model.count !== 0
onVisibleChanged: topFocusScope.resetFocus()
onBrowse: topFocusScope.browse(tree, reason)
Navigation.parentItem: topFocusScope
Navigation.upAction: function() {
......@@ -140,8 +142,6 @@ FocusScope {
}
Component.onCompleted: resetFocus()
onActiveFocusChanged: resetFocus()
function resetFocus() {
var widgetlist = [deviceSection, lanSection]
var i;
......
......@@ -67,17 +67,14 @@ Widgets.PageLoader {
path: [{display: deviceModel.name, tree: {}}]
onHomeButtonClicked: history.push(["mc", "discover", "services"])
function changeTree(new_tree) {
}
}
providerModel: deviceModel
contextMenu: contextMenu
function changeTree(new_tree) {
history.push(["mc", "discover", "services", "source_browse", { tree: new_tree, "root_name": deviceModel.name, "source_name": source_name }]);
}
onBrowse: history.push(["mc", "discover", "services", "source_browse",
{ tree: tree,
"root_name": deviceModel.name, "source_name": source_name }])
NetworkDeviceModel {
id: deviceModel
......@@ -118,9 +115,8 @@ Widgets.PageLoader {
}
}
function changeTree(new_tree) {
history.push(["mc", "discover", "services", "source_browse", { tree: new_tree, "root": root_name }]);
}
onBrowse: history.push(["mc", "discover", "services", "source_browse",
{ tree: tree, "root": root_name }])
NetworkMediaModel {
id: mediaModel
......
......@@ -52,3 +52,10 @@ function get(dict, key, defaultValue) {
var v = typeof dict !== "undefined" ? dict[key] : undefined
return !v ? defaultValue : v
}
// NOTE: This allows us to force another 'reason' even when the item has activeFocus.
function enforceFocus(item, reason) {
item.focus = false;
item.forceActiveFocus(reason);
}
......@@ -20,6 +20,7 @@ import QtQuick.Controls 2.4
import org.videolan.vlc 0.1
import "qrc:///style/"
import "qrc:///util/Helpers.js" as Helpers
FocusScope {
id: root
......@@ -101,16 +102,20 @@ FocusScope {
Accessible.role: Accessible.Table
function setCurrentItemFocus(reason) {
if (!model || model.count === 0 || currentIndex === -1 || expandIndex !== -1)
return;
// NOTE: Saving the focus reason for later.
_currentFocusReason = reason;
if (!model || model.count === 0 || currentIndex === -1 || expandIndex !== -1) {
// NOTE: By default we want the focus on the flickable.
flickable.forceActiveFocus(reason);
return;
}
if (_containsItem(currentIndex))
_getItem(currentIndex).forceActiveFocus(reason);
Helpers.enforceFocus(_getItem(currentIndex), reason);
else
// NOTE: By default we want the focus on the flickable. This is useful when no item is
// instanciated.
flickable.forceActiveFocus(reason);
// NOTE: We make sure the current item is fully visible.
......
......@@ -20,6 +20,7 @@ import QtQuick.Controls 2.4
import org.videolan.vlc 0.1
import "qrc:///style/"
import "qrc:///util/Helpers.js" as Helpers
FocusScope {
id: listview_id
......@@ -38,6 +39,10 @@ FocusScope {
property bool keyNavigationWraps : false
// Private
property int _currentFocusReason: Qt.OtherFocusReason
// Aliases
//forward view properties
......@@ -97,18 +102,34 @@ FocusScope {
Accessible.role: Accessible.List
// Events
onCurrentItemChanged: {
if (_currentFocusReason === Qt.OtherFocusReason)
return;
if (currentItem)
Helpers.enforceFocus(currentItem, _currentFocusReason);
_currentFocusReason = Qt.OtherFocusReason;
}
// Functions
function setCurrentItemFocus(reason) {
if (!model || model.count === 0)
if (!model || model.count === 0) {
// NOTE: Saving the focus reason for later.
_currentFocusReason = reason;
return;
}
if (currentIndex === -1)
currentIndex = 0;
positionViewAtIndex(currentIndex, ItemView.Contain);
currentItem.forceActiveFocus(reason);
Helpers.enforceFocus(currentItem, reason);
}
function nextPage() {
......