-/**********************************************************************
- * Playlist Widget. The embedded playlist
- **********************************************************************/
-#include "components/playlist/panels.hpp"
-#include "components/playlist/selector.hpp"
-
-#include <QSplitter>
-
-PlaylistWidget::PlaylistWidget( intf_thread_t *_p_i, QSettings *settings ) :
- p_intf ( _p_i )
-{
- /* In case we want to keep the splitter informations */
- settings->beginGroup( "Playlist" );
- restoreState(settings->value("splitterSizes").toByteArray());
- settings->endGroup();
-
- /* Left Part and design */
- QWidget *leftW = new QWidget( this );
- QVBoxLayout *left = new QVBoxLayout( leftW );
-
- /* Source Selector */
- selector = new PLSelector( this, p_intf, THEPL );
- left->addWidget( selector );
-
- /* Art label */
- art = new QLabel( "" );
- art->setMinimumHeight( 128 );
- art->setMinimumWidth( 128 );
- art->setMaximumHeight( 128 );
- art->setMaximumWidth( 128 );
- art->setScaledContents( true );
- art->setPixmap( QPixmap( ":/noart.png" ) );
- left->addWidget( art );
-
- /* Initialisation of the playlist */
- playlist_item_t *p_root = playlist_GetPreferredNode( THEPL,
- THEPL->p_local_category );
-
- rightPanel = qobject_cast<PLPanel *>( new StandardPLPanel( this,
- p_intf, THEPL, p_root ) );
-
- /* Connects */
- CONNECT( selector, activated( int ), rightPanel, setRoot( int ) );
-
- CONNECT( qobject_cast<StandardPLPanel *>( rightPanel )->model,
- artSet( QString ) , this, setArt( QString ) );
- /* Forward removal requests from the selector to the main panel */
- CONNECT( qobject_cast<PLSelector *>( selector )->model,
- shouldRemove( int ),
- qobject_cast<StandardPLPanel *>( rightPanel ), removeItem( int ) );
-
- connect( selector, SIGNAL( activated( int ) ),
- this, SIGNAL( rootChanged( int ) ) );
- emit rootChanged( p_root->i_id );
-
- /* Add the two sides of the QSplitter */
- addWidget( leftW );
- addWidget( rightPanel );
-
- leftW->setMaximumWidth( 250 );
- setCollapsible( 1, false );
-
- QList<int> sizeList;
- sizeList << 180 << 420 ;
- setSizes( sizeList );
- setSizePolicy( QSizePolicy::Preferred, QSizePolicy::Preferred );
- resize( 600, 300 );
- updateGeometry();
-}
-
-void PlaylistWidget::setArt( QString url )
-{
- if( url.isNull() )
- {
- art->setPixmap( QPixmap( ":/noart.png" ) );
- emit artSet( url );
- }
- else if( prevArt != url )
- {
- art->setPixmap( QPixmap( url ) );
- prevArt = url;
- emit artSet( url );
- }
-}
-
-QSize PlaylistWidget::sizeHint() const
-{
- return QSize( 600 , 300 );
-}
-
-PlaylistWidget::~PlaylistWidget()
-{
-}
-
-void PlaylistWidget::saveSettings( QSettings *settings )
-{
- settings->beginGroup( "Playlist" );
- settings->setValue("splitterSizes", saveState() );
- settings->endGroup();
-}