[vlc-commits] qt: add nodes that are already preparsed when initializing NetworkMediaModel
Pierre Lamot
git at videolan.org
Mon Sep 21 10:23:50 CEST 2020
vlc | branch: master | Pierre Lamot <pierre at videolabs.io> | Mon Sep 14 17:39:33 2020 +0200| [b778d3034d4aa69321bb2205b804a3ee7ebd4ece] | committer: Pierre Lamot
qt: add nodes that are already preparsed when initializing NetworkMediaModel
vlc_media_tree_Preparse will only notify about newly found entry. If entries
are already in the tree they won't show up.
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=b778d3034d4aa69321bb2205b804a3ee7ebd4ece
---
modules/gui/qt/network/networkmediamodel.cpp | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/modules/gui/qt/network/networkmediamodel.cpp b/modules/gui/qt/network/networkmediamodel.cpp
index ddb87b5e2b..da145e5758 100644
--- a/modules/gui/qt/network/networkmediamodel.cpp
+++ b/modules/gui/qt/network/networkmediamodel.cpp
@@ -328,7 +328,22 @@ bool NetworkMediaModel::initializeMediaSources()
emit isIndexedChanged();
}
- vlc_media_tree_PreparseCancel( libvlc, this );
+ {
+ input_item_node_t* mediaNode = nullptr;
+ vlc_media_tree_Lock(tree);
+ vlc_media_tree_PreparseCancel( libvlc, this );
+ std::vector<InputItemPtr> itemList;
+ if (vlc_media_tree_Find( tree, m_treeItem.media.get(), &mediaNode, nullptr))
+ {
+ itemList.reserve(mediaNode->i_children);
+ for (int i = 0; i < mediaNode->i_children; i++)
+ itemList.emplace_back(mediaNode->pp_children[i]->p_item);
+ }
+ vlc_media_tree_Unlock(tree);
+ if (!itemList.empty())
+ refreshMediaList( m_treeItem.source, std::move( itemList ), true );
+ }
+
m_preparseSem.acquire();
vlc_media_tree_Preparse( tree, libvlc, m_treeItem.media.get(), this );
m_parsingPending = true;
More information about the vlc-commits
mailing list