#endif
#include "qt4.hpp"
+#include "dialogs_provider.hpp"
#include "components/playlist/playlist_model.hpp"
#include "dialogs/mediainfo.hpp"
#include <vlc_intf_strings.h>
return parentItem->childCount();
}
+QStringList PLModel::selectedURIs()
+{
+ QStringList lst;
+ for( int i = 0; i < current_selection.size(); i++ )
+ {
+ PL_LOCK;
+ PLItem *item = static_cast<PLItem*>
+ (current_selection[i].internalPointer());
+ if( !item )
+ continue;
+
+ input_item_t *p_item = input_item_GetById( p_playlist,
+ item->i_input_id );
+ if( !p_item )
+ continue;
+
+ char *psz = input_item_GetURI( p_item );
+ if( !psz )
+ continue;
+ else
+ {
+ lst.append( QString( psz ) );
+ free( psz );
+ }
+ PL_UNLOCK;
+ }
+ return lst;
+}
+
/************************* General playlist status ***********************/
bool PLModel::hasRandom()
{
doDelete( current_selection );
}
+
void PLModel::popupPlay()
{
PL_LOCK;
void PLModel::popupStream()
{
- msg_Err( p_playlist, "Stream not implemented" );
+ QStringList mrls = selectedURIs();
+ if( !mrls.isEmpty() )
+ THEDP->streamingDialog( NULL, mrls[0], false );
+
}
void PLModel::popupSave()
{
- msg_Err( p_playlist, "Save not implemented" );
+ QStringList mrls = selectedURIs();
+ if( !mrls.isEmpty() )
+ THEDP->streamingDialog( NULL, mrls[0], true );
}
#include <QUrl>
int rowCount( const QModelIndex &parent = QModelIndex() ) const;
int columnCount( const QModelIndex &parent = QModelIndex() ) const;
+ /* Get current selection */
+ QStringList selectedURIs();
+
void rebuild(); void rebuild( playlist_item_t * );
bool hasRandom(); bool hasLoop(); bool hasRepeat();