]> git.sesse.net Git - vlc/blobdiff - modules/gui/qt4/dialogs/playlist.cpp
Qt(Dialog provider): Add support for key accelerators
[vlc] / modules / gui / qt4 / dialogs / playlist.cpp
index 7f27d339791bbbe22b8f720ed8435e892eedf470..0da5c984535cc85f398ff5db0253b6748fdecc4f 100644 (file)
@@ -1,8 +1,8 @@
 /*****************************************************************************
  * playlist.cpp : Playlist dialog
  ****************************************************************************
- * Copyright (C) 2000-2005 the VideoLAN team
- * $Id: wxwidgets.cpp 15731 2006-05-25 14:43:53Z zorglub $
+ * Copyright (C) 2006 the VideoLAN team
+ * $Id$
  *
  * Authors: ClĂ©ment Stenac <zorglub@videolan.org>
  *
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. *****************************************************************************/
+ * 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/playlist.hpp"
 
-PlaylistDialog *PlaylistDialog::instance = NULL;
+#include "util/qt_dirs.hpp"
 
-PlaylistDialog::PlaylistDialog( intf_thread_t *_p_intf ) : QVLCFrame( p_intf )
+#include <QUrl>
+#include <QMimeData>
+#include <QHBoxLayout>
+
+PlaylistDialog::PlaylistDialog( intf_thread_t *_p_intf )
+                : QVLCMW( _p_intf )
 {
+    setWindowTitle( qtr( "Playlist" ) );
+    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();
+}
+
+bool PlaylistDialog::hasPlaylistWidget()
+{
+    return ( !! playlistWidget );
+}
+
+void PlaylistDialog::hideEvent( QHideEvent * event )
+{
+    QWidget::hideEvent( event );
+    emit visibilityChanged( false );
 }
 
 PlaylistDialog::~PlaylistDialog()
 {
+    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();
+}
+