+void MainInterface::undockPlaylist()
+{
+ if( playlistWidget )
+ {
+ playlistWidget->hide();
+ playlistWidget->deleteLater();
+ ui.vboxLayout->removeWidget( playlistWidget );
+ playlistWidget = NULL;
+ playlistEmbeddedFlag = false;
+
+ menuBar()->clear();
+ QVLCMenu::createMenuBar( this, p_intf, false, advControlsEnabled,
+ visualSelectorEnabled);
+
+ if( videoIsActive )
+ {
+ videoWidget->widgetSize = savedVideoSize;
+ videoWidget->resize( videoWidget->widgetSize );
+ videoWidget->updateGeometry();
+ }
+
+ doComponentsUpdate();
+ THEDP->playlistDialog();
+ }
+}
+
+void MainInterface::customEvent( QEvent *event )
+{
+ if( event->type() == PLDockEvent_Type )
+ {
+ PlaylistDialog::killInstance();
+ playlistEmbeddedFlag = true;
+ menuBar()->clear();
+ QVLCMenu::createMenuBar(this, p_intf, true, advControlsEnabled,
+ visualSelectorEnabled);
+ playlist();
+ }
+ else if ( event->type() == SetVideoOnTopEvent_Type )
+ {
+ SetVideoOnTopQtEvent* p_event = (SetVideoOnTopQtEvent*)event;
+ if( p_event->OnTop() )
+ setWindowFlags(windowFlags() | Qt::WindowStaysOnTopHint);
+ else
+ setWindowFlags(windowFlags() & ~Qt::WindowStaysOnTopHint);
+ show(); /* necessary to apply window flags?? */
+ }
+}
+
+
+/************************************************************************
+ * D&D
+ ************************************************************************/
+void MainInterface::dropEvent(QDropEvent *event)
+{
+ const QMimeData *mimeData = event->mimeData();
+
+ /* D&D of a subtitles file, add it on the fly */
+ if( mimeData->urls().size() == 1 )
+ {
+ if( THEMIM->getIM()->hasInput() )
+ {
+ if( input_AddSubtitles( THEMIM->getInput(),
+ qtu( mimeData->urls()[0].toString() ),
+ VLC_TRUE ) )
+ {
+ event->acceptProposedAction();
+ return;
+ }
+ }
+ }
+ bool first = true;
+ foreach( QUrl url, mimeData->urls() ) {
+ QString s = url.toString();
+ if( s.length() > 0 ) {
+ playlist_Add( THEPL, qtu(s), NULL,
+ PLAYLIST_APPEND | (first ? PLAYLIST_GO:0),
+ PLAYLIST_END, VLC_TRUE, VLC_FALSE );
+ first = false;
+ }
+ }
+ event->acceptProposedAction();
+}
+void MainInterface::dragEnterEvent(QDragEnterEvent *event)
+{
+ event->acceptProposedAction();
+}
+void MainInterface::dragMoveEvent(QDragMoveEvent *event)
+{
+ event->acceptProposedAction();
+}
+void MainInterface::dragLeaveEvent(QDragLeaveEvent *event)
+{
+ event->accept();
+}
+