X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fgui%2Fqt4%2Fcomponents%2Fplaylist%2Fplaylist.cpp;h=87e8c3d7bfcd3a928899756acfae61231c402f17;hb=4fe7b1248d1efb1f3d4970c39db646de6bb3e9e6;hp=96d50122aafd10d5d15fe6e59849ce808b049d22;hpb=346b6cdff934d35a77d5c80e3c9ea29df106cc37;p=vlc diff --git a/modules/gui/qt4/components/playlist/playlist.cpp b/modules/gui/qt4/components/playlist/playlist.cpp index 96d50122aa..87e8c3d7bf 100644 --- a/modules/gui/qt4/components/playlist/playlist.cpp +++ b/modules/gui/qt4/components/playlist/playlist.cpp @@ -26,27 +26,46 @@ # include "config.h" #endif -#include "components/playlist/panels.hpp" +#include "components/playlist/standardpanel.hpp" #include "components/playlist/selector.hpp" #include "components/playlist/playlist.hpp" #include "input_manager.hpp" /* art signal */ #include "main_interface.hpp" /* DropEvent TODO remove this*/ +#include + +#include /********************************************************************** * Playlist Widget. The embedded playlist **********************************************************************/ -PlaylistWidget::PlaylistWidget( intf_thread_t *_p_i ) : p_intf ( _p_i ) +PlaylistWidget::PlaylistWidget( intf_thread_t *_p_i, QWidget *_par ) + : QSplitter( _par ), p_intf ( _p_i ) { setContentsMargins( 3, 3, 3, 3 ); /* Left Part and design */ - QSplitter *leftW = new QSplitter( Qt::Vertical, this ); + leftSplitter = new QSplitter( Qt::Vertical, this ); /* Source Selector */ selector = new PLSelector( this, p_intf ); - leftW->addWidget( selector ); + + QLabel *selLabel = new QLabel( "Media Browser" ); + QFont font; + font.setBold( true ); + selLabel->setFont( font ); + selLabel->setMargin( 5 ); + + QVBoxLayout *selBox = new QVBoxLayout(); + selBox->setContentsMargins(0,0,0,0); + selBox->setSpacing( 0 ); + selBox->addWidget( selLabel ); + selBox->addWidget( selector ); + + QWidget *mediaBrowser = new QWidget(); + mediaBrowser->setLayout( selBox ); + leftSplitter->addWidget( mediaBrowser ); /* Create a Container for the Art Label in order to have a beautiful resizing for the selector above it */ @@ -65,13 +84,13 @@ PlaylistWidget::PlaylistWidget( intf_thread_t *_p_i ) : p_intf ( _p_i ) artContLay->addWidget( art, 1 ); - leftW->addWidget( artContainer ); + leftSplitter->addWidget( artContainer ); /* Initialisation of the playlist */ playlist_t * p_playlist = THEPL; PL_LOCK; - playlist_item_t *p_root = - playlist_GetPreferredNode( THEPL, THEPL->p_local_category ); + playlist_item_t *p_root = THEPL->p_playing; + PL_UNLOCK; rightPanel = new StandardPLPanel( this, p_intf, THEPL, p_root ); @@ -83,7 +102,7 @@ PlaylistWidget::PlaylistWidget( intf_thread_t *_p_i ) : p_intf ( _p_i ) rightPanel->setRoot( p_root ); /* Add the two sides of the QSplitter */ - addWidget( leftW ); + addWidget( leftSplitter ); addWidget( rightPanel ); QList sizeList; @@ -92,7 +111,7 @@ PlaylistWidget::PlaylistWidget( intf_thread_t *_p_i ) : p_intf ( _p_i ) //setSizePolicy( QSizePolicy::Preferred, QSizePolicy::Expanding ); setStretchFactor( 0, 0 ); setStretchFactor( 1, 3 ); - leftW->setMaximumWidth( 250 ); + leftSplitter->setMaximumWidth( 250 ); setCollapsible( 1, false ); /* In case we want to keep the splitter informations */ @@ -101,6 +120,7 @@ PlaylistWidget::PlaylistWidget( intf_thread_t *_p_i ) : p_intf ( _p_i ) // getSettings()->beginGroup( "playlist" ); getSettings()->beginGroup("Playlist"); restoreState( getSettings()->value("splitterSizes").toByteArray()); + leftSplitter->restoreState( getSettings()->value("leftSplitterGeometry").toByteArray() ); getSettings()->endGroup(); setAcceptDrops( true ); @@ -113,6 +133,7 @@ PlaylistWidget::~PlaylistWidget() { getSettings()->beginGroup("Playlist"); getSettings()->setValue( "splitterSizes", saveState() ); + getSettings()->setValue( "leftSplitterGeometry", leftSplitter->saveState() ); getSettings()->endGroup(); msg_Dbg( p_intf, "Playlist Destroyed" ); } @@ -132,12 +153,11 @@ void PlaylistWidget::closeEvent( QCloseEvent *event ) if( THEDP->isDying() ) { /* FIXME is it needed ? */ - close(); + event->accept(); } else { - if( p_intf->p_sys->p_mi ) - p_intf->p_sys->p_mi->togglePlaylist(); + hide(); + event->ignore(); } - event->accept(); }