]> git.sesse.net Git - vlc/blobdiff - modules/gui/qt4/dialogs/playlist.cpp
Qt: menu, code simplification.
[vlc] / modules / gui / qt4 / dialogs / playlist.cpp
index 0cbc2bea7d383799a484b6788021cc21be16c907..2736e5279c3982fecec87e3c559362b66fe1ce96 100644 (file)
  * 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 "qt4.hpp"
-#include "main_interface.hpp"
-#include "util/qvlcframe.hpp"
-#include "components/interface_widgets.hpp"
-#include "dialogs_provider.hpp"
-#include "menus.hpp"
+#include "components/playlist/playlist.hpp"
 
+#include "util/qt_dirs.hpp"
+
+#include <QUrl>
 #include <QHBoxLayout>
-#include <QSignalMapper>
-#include <QMenu>
-#include <QAction>
-#include <QMenuBar>
 
 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" ) );
-
-    createPlMenuBar( menuBar(), p_intf );
+    setWindowOpacity( config_GetFloat( p_intf, "qt-opacity" ) );
 
     QHBoxLayout *l = new QHBoxLayout( centralWidget() );
-    PlaylistWidget *plw = new PlaylistWidget( p_intf );
-    l->addWidget( plw );
 
-    readSettings( "playlist", QSize( 600,700 ) );
+    getSettings()->beginGroup("playlistdialog");
+
+    playlistWidget = new PlaylistWidget( p_intf );
+    l->addWidget( playlistWidget );
+
+    readSettings( getSettings(), QSize( 600,700 ) );
+
+    getSettings()->endGroup();
 }
 
 PlaylistDialog::~PlaylistDialog()
 {
-    writeSettings( "playlist" );
+    getSettings()->beginGroup("playlistdialog");
+    writeSettings( getSettings() );
+    getSettings()->endGroup();
 }
 
-void PlaylistDialog::createPlMenuBar( QMenuBar *bar, intf_thread_t *p_intf )
+void PlaylistDialog::dropEvent( QDropEvent *event )
 {
-    QMenu *manageMenu = new QMenu();
-    manageMenu->setTitle( qtr("Manage") );
-    manageMenu->addAction( "Open playlist file", THEDP, SLOT( openPlaylist() ));
-    manageMenu->addSeparator();
-    manageMenu->addAction( "Dock playlist", this, SLOT( dock() ) );
-    bar->addMenu( manageMenu );
-    bar->addMenu( QVLCMenu::SDMenu( p_intf ) );
+     const QMimeData *mimeData = event->mimeData();
+     foreach( const QUrl &url, mimeData->urls() ) {
+        QString s = toNativeSeparators( url.toString() );
+        if( s.length() > 0 ) {
+            playlist_Add( THEPL, qtu(s), NULL,
+                          PLAYLIST_APPEND, PLAYLIST_END, true, false );
+        }
+     }
+     event->acceptProposedAction();
 }
-
-void PlaylistDialog::dock()
+void PlaylistDialog::dragEnterEvent( QDragEnterEvent *event )
 {
-    hide();
-    QEvent *event = new QEvent( (QEvent::Type)(PLDockEvent_Type) );
-    QApplication::postEvent( p_intf->p_sys->p_mi, event );
+     event->acceptProposedAction();
 }
+void PlaylistDialog::dragMoveEvent( QDragMoveEvent *event )
+{
+     event->acceptProposedAction();
+}
+void PlaylistDialog::dragLeaveEvent( QDragLeaveEvent *event )
+{
+     event->accept();
+}
+