[vlc-devel] [PATCH 21/29] qt: add is_on_provider_list qproperty

Abel Tesfaye abeltesfaye45 at gmail.com
Tue Aug 20 12:42:38 CEST 2019


From: Abel Tesfaye <Abeltesfaye45 at gmail.com>

---
 modules/gui/qt/components/mediacenter/mlnetworkmodel.cpp | 8 ++++++++
 modules/gui/qt/components/mediacenter/mlnetworkmodel.hpp | 5 +++++
 2 files changed, 13 insertions(+)

diff --git a/modules/gui/qt/components/mediacenter/mlnetworkmodel.cpp b/modules/gui/qt/components/mediacenter/mlnetworkmodel.cpp
index 70edb5413f..c780e6637d 100644
--- a/modules/gui/qt/components/mediacenter/mlnetworkmodel.cpp
+++ b/modules/gui/qt/components/mediacenter/mlnetworkmodel.cpp
@@ -142,6 +142,12 @@ void MLNetworkModel::setTree(QVariant parentTree)
     }
     emit treeChanged();
 }
+void MLNetworkModel::setIsOnProviderList(bool b)
+{
+    m_isOnProviderList = b;
+
+    emit isOnProviderListChanged();
+}
 
 bool MLNetworkModel::initializeMediaSources()
 {
@@ -157,6 +163,7 @@ bool MLNetworkModel::initializeMediaSources()
     if ( m_treeItem.media == nullptr )
     {
         // If there's no target media, we're handling device discovery
+        setIsOnProviderList( true );
         auto provider = vlc_media_source_provider_Get( libvlc );
 
         using SourceMetaPtr = std::unique_ptr<vlc_media_source_meta_list_t,
@@ -184,6 +191,7 @@ bool MLNetworkModel::initializeMediaSources()
         return m_listeners.empty() == false;
     }
     // Otherwise, we're listing content from a device or folder
+    setIsOnProviderList( false );
     auto tree = m_treeItem.source->tree;
     std::unique_ptr<SourceListener> l{ new SourceListener( m_treeItem.source, this ) };
     if ( l->listener == nullptr )
diff --git a/modules/gui/qt/components/mediacenter/mlnetworkmodel.hpp b/modules/gui/qt/components/mediacenter/mlnetworkmodel.hpp
index d09b5b9ece..c41ae0ef0f 100644
--- a/modules/gui/qt/components/mediacenter/mlnetworkmodel.hpp
+++ b/modules/gui/qt/components/mediacenter/mlnetworkmodel.hpp
@@ -77,6 +77,7 @@ public:
 
     Q_PROPERTY(QmlMainContext* ctx READ getCtx WRITE setCtx NOTIFY ctxChanged)
     Q_PROPERTY(QVariant tree READ getTree WRITE setTree NOTIFY treeChanged)
+    Q_PROPERTY(bool is_on_provider_list READ getIsOnProviderList WRITE setIsOnProviderList NOTIFY isOnProviderListChanged)
 
     explicit MLNetworkModel(QObject* parent = nullptr);
     MLNetworkModel( QmlMainContext* ctx, QString parentMrl, QObject* parent = nullptr );
@@ -90,13 +91,16 @@ public:
 
     void setCtx(QmlMainContext* ctx);
     void setTree(QVariant tree);
+    void setIsOnProviderList(bool b);
 
     inline QmlMainContext* getCtx() { return m_ctx; }
     inline QVariant getTree() { return QVariant::fromValue( m_treeItem); }
+    inline bool getIsOnProviderList() { return m_isOnProviderList; }
 
 signals:
     void ctxChanged();
     void treeChanged();
+    void isOnProviderListChanged();
 
 private:
     struct Item
@@ -168,6 +172,7 @@ private:
     vlc_medialibrary_t* m_ml;
     bool m_hasTree = false;
     NetworkTreeItem m_treeItem;
+    bool m_isOnProviderList;
     std::vector<std::unique_ptr<SourceListener>> m_listeners;
 };
 
-- 
2.21.0



More information about the vlc-devel mailing list