X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fgui%2Fqt4%2Fdialogs%2Fplaylist.cpp;h=cff3c0b4d7ed2fade131223575871efc3b1145e9;hb=8b524cb8b23f4acfb96c6a07b404c73615e5e6c2;hp=0e1d996cecc5927f45d6bfbba371f90c21c14ab3;hpb=f9ed4872f2a595f23613df66c225d4ab0b9f2a13;p=vlc diff --git a/modules/gui/qt4/dialogs/playlist.cpp b/modules/gui/qt4/dialogs/playlist.cpp index 0e1d996cec..cff3c0b4d7 100644 --- a/modules/gui/qt4/dialogs/playlist.cpp +++ b/modules/gui/qt4/dialogs/playlist.cpp @@ -20,43 +20,78 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. ******************************************************************************/ +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif #include "dialogs/playlist.hpp" -#include "util/qvlcframe.hpp" -#include "qt4.hpp" -#include "components/playlist/panels.hpp" -#include "components/playlist/selector.hpp" -#include + +#include "main_interface.hpp" +#include "components/playlist/playlist.hpp" +#include "dialogs_provider.hpp" #include "menus.hpp" +#include +#include +#include +#include +#include +#include + PlaylistDialog *PlaylistDialog::instance = NULL; -PlaylistDialog::PlaylistDialog( intf_thread_t *_p_intf ) : QVLCMW( _p_intf ) +PlaylistDialog::PlaylistDialog( intf_thread_t *_p_intf ) + : QVLCMW( _p_intf ) { QWidget *main = new QWidget( this ); setCentralWidget( main ); setWindowTitle( qtr( "Playlist" ) ); - QVLCMenu::createPlMenuBar( menuBar(), p_intf ); + setWindowOpacity( config_GetFloat( p_intf, "qt-opacity" ) ); + + QHBoxLayout *l = new QHBoxLayout( centralWidget() ); - selector = new PLSelector( centralWidget(), p_intf, THEPL ); - selector->setMaximumWidth( 140 ); + getSettings()->beginGroup("playlistdialog"); - playlist_item_t *p_root = playlist_GetPreferredNode( THEPL, - THEPL->p_local_category ); + playlistWidget = new PlaylistWidget( p_intf, this ); + l->addWidget( playlistWidget ); - rightPanel = qobject_cast(new StandardPLPanel( centralWidget(), - p_intf, THEPL, p_root ) ); - connect( selector, SIGNAL( activated( int ) ), - rightPanel, SLOT( setRoot( int ) ) ); + readSettings( getSettings(), QSize( 600,700 ) ); - QHBoxLayout *layout = new QHBoxLayout(); - layout->addWidget( selector, 0 ); - layout->addWidget( rightPanel, 10 ); - centralWidget()->setLayout( layout ); - readSettings( "playlist", QSize( 600,700 ) ); + getSettings()->endGroup(); } PlaylistDialog::~PlaylistDialog() { - writeSettings( "playlist" ); + getSettings()->beginGroup("playlistdialog"); + + writeSettings( getSettings() ); + playlistWidget->savingSettings(); + + getSettings()->endGroup(); } + +void PlaylistDialog::dropEvent( QDropEvent *event ) +{ + const QMimeData *mimeData = event->mimeData(); + foreach( QUrl url, mimeData->urls() ) { + QString s = url.toString(); + if( s.length() > 0 ) { + playlist_Add( THEPL, qtu(s), NULL, + PLAYLIST_APPEND, PLAYLIST_END, true, false ); + } + } + event->acceptProposedAction(); +} +void PlaylistDialog::dragEnterEvent( QDragEnterEvent *event ) +{ + event->acceptProposedAction(); +} +void PlaylistDialog::dragMoveEvent( QDragMoveEvent *event ) +{ + event->acceptProposedAction(); +} +void PlaylistDialog::dragLeaveEvent( QDragLeaveEvent *event ) +{ + event->accept(); +} +