vlc | branch: master | Abel Tesfaye <[email protected]> | Mon Aug 19 17:19:21 2019 +0300| [eedb771cee1feb32de5a1313b037165f5ddc1c8f] | committer: Jean-Baptiste Kempf
qt: add sd_source property to networkModel Signed-off-by: Jean-Baptiste Kempf <[email protected]> > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=eedb771cee1feb32de5a1313b037165f5ddc1c8f --- .../qt/components/mediacenter/mlnetworkmodel.cpp | 27 +++++++++++++++++----- .../qt/components/mediacenter/mlnetworkmodel.hpp | 18 +++++++++++---- 2 files changed, 35 insertions(+), 10 deletions(-) diff --git a/modules/gui/qt/components/mediacenter/mlnetworkmodel.cpp b/modules/gui/qt/components/mediacenter/mlnetworkmodel.cpp index c780e6637d..5dc85bde9e 100644 --- a/modules/gui/qt/components/mediacenter/mlnetworkmodel.cpp +++ b/modules/gui/qt/components/mediacenter/mlnetworkmodel.cpp @@ -148,6 +148,13 @@ void MLNetworkModel::setIsOnProviderList(bool b) emit isOnProviderListChanged(); } +void MLNetworkModel::setSdSource(QString s) +{ + beginResetModel(); + m_sdSource = s; + emit sdSourceChanged(); + endResetModel(); +} bool MLNetworkModel::initializeMediaSources() { @@ -168,7 +175,16 @@ bool MLNetworkModel::initializeMediaSources() using SourceMetaPtr = std::unique_ptr<vlc_media_source_meta_list_t, decltype( &vlc_media_source_meta_list_Delete )>; - SourceMetaPtr providerList( vlc_media_source_provider_List( provider, SD_CAT_LAN ), + + services_discovery_category_e cat = SD_CAT_LAN; + if ( m_sdSource == "SD_CAT_DEVICES" ) + cat = SD_CAT_DEVICES; + else if ( m_sdSource == "SD_CAT_MYCOMPUTER" ) + cat = SD_CAT_MYCOMPUTER; + else if ( m_sdSource == "SD_CAT_INTERNET" ) + cat = SD_CAT_INTERNET; + + SourceMetaPtr providerList( vlc_media_source_provider_List( provider, cat ), &vlc_media_source_meta_list_Delete ); if ( providerList == nullptr ) return false; @@ -276,9 +292,8 @@ void MLNetworkModel::refreshMediaList( MediaSourcePtr mediaSource, item.name = it->psz_name; item.protocol = ""; item.indexed = false; - item.type = (it->i_type == ITEM_TYPE_DIRECTORY || it->i_type == ITEM_TYPE_NODE) ? - TYPE_DIR : TYPE_FILE; - item.mainMrl = item.type == TYPE_DIR ? + item.type = static_cast<ItemType>(it->i_type); + item.mainMrl = (item.type == TYPE_DIRECTORY || item.type == TYPE_NODE) ? QUrl::fromEncoded(QByteArray(it->psz_uri).append('/')) : QUrl::fromEncoded(it->psz_uri); @@ -330,7 +345,7 @@ void MLNetworkModel::refreshDeviceList( MediaSourcePtr mediaSource, input_item_n item.name = qfu(children[i]->p_item->psz_name); item.mrls.push_back( item.mainMrl ); item.indexed = false; - item.type = TYPE_SHARE; + item.type = static_cast<ItemType>( children[i]->p_item->i_type ); item.canBeIndexed = canBeIndexed( item.mainMrl , item.type ); item.protocol = item.mainMrl.scheme(); item.tree = NetworkTreeItem{ mediaSource, @@ -403,5 +418,5 @@ void MLNetworkModel::SourceListener::onItemRemoved( vlc_media_tree_t *, input_it bool MLNetworkModel::canBeIndexed(const QUrl& url , ItemType itemType ) { - return itemType != TYPE_FILE && (url.scheme() == "smb" || url.scheme() == "ftp"); + return itemType != ITEM_TYPE_FILE && (url.scheme() == "smb" || url.scheme() == "ftp"); } diff --git a/modules/gui/qt/components/mediacenter/mlnetworkmodel.hpp b/modules/gui/qt/components/mediacenter/mlnetworkmodel.hpp index c41ae0ef0f..a2ffc15d03 100644 --- a/modules/gui/qt/components/mediacenter/mlnetworkmodel.hpp +++ b/modules/gui/qt/components/mediacenter/mlnetworkmodel.hpp @@ -67,17 +67,23 @@ class MLNetworkModel : public QAbstractListModel Q_OBJECT public: - enum ItemType - { - TYPE_SHARE, - TYPE_DIR, + enum ItemType{ + // qt version of input_item_type_e + TYPE_UNKNOWN = ITEM_TYPE_UNKNOWN, TYPE_FILE, + TYPE_DIRECTORY, + TYPE_DISC, + TYPE_CARD, + TYPE_STREAM, + TYPE_PLAYLIST, + TYPE_NODE, }; Q_ENUM( ItemType ); 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) + Q_PROPERTY(QString sd_source READ getSdSource WRITE setSdSource NOTIFY sdSourceChanged) explicit MLNetworkModel(QObject* parent = nullptr); MLNetworkModel( QmlMainContext* ctx, QString parentMrl, QObject* parent = nullptr ); @@ -92,15 +98,18 @@ public: void setCtx(QmlMainContext* ctx); void setTree(QVariant tree); void setIsOnProviderList(bool b); + void setSdSource(QString s); inline QmlMainContext* getCtx() { return m_ctx; } inline QVariant getTree() { return QVariant::fromValue( m_treeItem); } inline bool getIsOnProviderList() { return m_isOnProviderList; } + inline QString getSdSource() { return m_sdSource; } signals: void ctxChanged(); void treeChanged(); void isOnProviderListChanged(); + void sdSourceChanged(); private: struct Item @@ -173,6 +182,7 @@ private: bool m_hasTree = false; NetworkTreeItem m_treeItem; bool m_isOnProviderList; + QString m_sdSource; std::vector<std::unique_ptr<SourceListener>> m_listeners; }; _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
