#include "dialogs/playlist.hpp"
-#include "main_interface.hpp"
#include "components/playlist/playlist.hpp"
-#include "dialogs_provider.hpp"
-#include "menus.hpp"
+
+#include "util/qt_dirs.hpp"
#include <QUrl>
+#include <QMimeData>
#include <QHBoxLayout>
-#include <QSignalMapper>
-#include <QMenu>
-#include <QAction>
-#include <QMenuBar>
-
-PlaylistDialog *PlaylistDialog::instance = NULL;
PlaylistDialog::PlaylistDialog( intf_thread_t *_p_intf )
: QVLCMW( _p_intf )
{
- QWidget *main = new QWidget( this );
- setCentralWidget( main );
setWindowTitle( qtr( "Playlist" ) );
- setWindowOpacity( config_GetFloat( p_intf, "qt-opacity" ) );
-
- QHBoxLayout *l = new QHBoxLayout( centralWidget() );
-
- getSettings()->beginGroup("playlistdialog");
+ setWindowRole( "vlc-playlist" );
+ setWindowOpacity( var_InheritFloat( p_intf, "qt-opacity" ) );
playlistWidget = new PlaylistWidget( p_intf, this );
- l->addWidget( playlistWidget );
+ setCentralWidget( playlistWidget );
- readSettings( getSettings(), QSize( 600,700 ) );
+ readSettings( "playlistdialog", QSize( 600,700 ) );
+}
- getSettings()->endGroup();
+PlaylistWidget *PlaylistDialog::exportPlaylistWidget()
+{
+ Q_ASSERT( playlistWidget );
+ PlaylistWidget *widget = playlistWidget;
+ layout()->removeWidget( playlistWidget );
+ playlistWidget = NULL;
+ return widget;
}
-PlaylistDialog::~PlaylistDialog()
+void PlaylistDialog::importPlaylistWidget( PlaylistWidget *widget )
+{
+ Q_ASSERT( !playlistWidget );
+ playlistWidget = widget;
+ setCentralWidget( playlistWidget );
+ playlistWidget->show();
+}
+
+bool PlaylistDialog::hasPlaylistWidget()
{
- getSettings()->beginGroup("playlistdialog");
+ return ( !! playlistWidget );
+}
- writeSettings( getSettings() );
- playlistWidget->savingSettings();
+void PlaylistDialog::hideEvent( QHideEvent * event )
+{
+ QWidget::hideEvent( event );
+ emit visibilityChanged( false );
+}
- getSettings()->endGroup();
+PlaylistDialog::~PlaylistDialog()
+{
+ writeSettings( "playlistdialog" );
}
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();
+ playlistWidget->dropEvent(event);
}
void PlaylistDialog::dragEnterEvent( QDragEnterEvent *event )
{