* 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 <QHBoxLayout>
-PlaylistDialog *PlaylistDialog::instance = NULL;
+#include "components/playlist/playlist.hpp"
+
+#include "util/qt_dirs.hpp"
+
+#include <QUrl>
+#include <QMimeData>
+#include <QHBoxLayout>
-PlaylistDialog::PlaylistDialog( intf_thread_t *_p_intf ) : QVLCFrame( _p_intf )
+PlaylistDialog::PlaylistDialog( intf_thread_t *_p_intf )
+ : QVLCMW( _p_intf )
{
setWindowTitle( qtr( "Playlist" ) );
- selector = new PLSelector( this, p_intf, THEPL );
- selector->setMaximumWidth( 150 );
+ setWindowRole( "vlc-playlist" );
+ setWindowOpacity( var_InheritFloat( p_intf, "qt-opacity" ) );
+
+ playlistWidget = new PlaylistWidget( p_intf, this );
+ setCentralWidget( playlistWidget );
+
+ readSettings( "playlistdialog", QSize( 600,700 ) );
+}
+
+PlaylistWidget *PlaylistDialog::exportPlaylistWidget()
+{
+ Q_ASSERT( playlistWidget );
+ PlaylistWidget *widget = playlistWidget;
+ layout()->removeWidget( playlistWidget );
+ playlistWidget = NULL;
+ return widget;
+}
+
+void PlaylistDialog::importPlaylistWidget( PlaylistWidget *widget )
+{
+ Q_ASSERT( !playlistWidget );
+ playlistWidget = widget;
+ setCentralWidget( playlistWidget );
+ playlistWidget->show();
+}
- rightPanel = qobject_cast<PLPanel *>(new StandardPLPanel( this, p_intf,
- THEPL, THEPL->p_local_category ) );
- connect( selector, SIGNAL( activated( int ) ),
- rightPanel, SLOT( setRoot( int ) ) );
+bool PlaylistDialog::hasPlaylistWidget()
+{
+ return ( !! playlistWidget );
+}
- QHBoxLayout *layout = new QHBoxLayout();
- layout->addWidget( selector, 0 );
- layout->addWidget( rightPanel, 10 );
- readSettings( "playlist", QSize( 600,300 ) );
- setLayout( layout );
+void PlaylistDialog::hideEvent( QHideEvent * event )
+{
+ QWidget::hideEvent( event );
+ emit visibilityChanged( false );
}
PlaylistDialog::~PlaylistDialog()
{
- writeSettings( "playlist" );
+ writeSettings( "playlistdialog" );
}
+
+void PlaylistDialog::dropEvent( QDropEvent *event )
+{
+ playlistWidget->dropEvent(event);
+}
+void PlaylistDialog::dragEnterEvent( QDragEnterEvent *event )
+{
+ event->acceptProposedAction();
+}
+void PlaylistDialog::dragMoveEvent( QDragMoveEvent *event )
+{
+ event->acceptProposedAction();
+}
+void PlaylistDialog::dragLeaveEvent( QDragLeaveEvent *event )
+{
+ event->accept();
+}
+