X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fgui%2Fqt4%2Fdialogs%2Fplaylist.cpp;h=89d2e2b748ac3ff4276615effc68a5f3237a8ee8;hb=2b452b3ce5b0f96bd0245dab096bf570a51d8810;hp=7f27d339791bbbe22b8f720ed8435e892eedf470;hpb=1bf74fe7327bbd6240fb9a09383392b155cdd2df;p=vlc diff --git a/modules/gui/qt4/dialogs/playlist.cpp b/modules/gui/qt4/dialogs/playlist.cpp index 7f27d33979..89d2e2b748 100644 --- a/modules/gui/qt4/dialogs/playlist.cpp +++ b/modules/gui/qt4/dialogs/playlist.cpp @@ -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 * @@ -18,19 +18,91 @@ * * 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. + ******************************************************************************/ #include "dialogs/playlist.hpp" -#include "util/qvlcframe.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 +#include +#include +#include +#include +#include PlaylistDialog *PlaylistDialog::instance = NULL; -PlaylistDialog::PlaylistDialog( intf_thread_t *_p_intf ) : QVLCFrame( 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 ); + + QHBoxLayout *l = new QHBoxLayout( centralWidget() ); + PlaylistWidget *plw = new PlaylistWidget( p_intf ); + l->addWidget( plw ); + + readSettings( "playlist", QSize( 600,700 ) ); } PlaylistDialog::~PlaylistDialog() { + writeSettings( "playlist" ); +} + +void PlaylistDialog::createPlMenuBar( QMenuBar *bar, intf_thread_t *p_intf ) +{ + QMenu *manageMenu = new QMenu(); + manageMenu->setTitle( qtr("Manage") ); + manageMenu->addAction( qtr("Open playlist file"), THEDP, SLOT( openPlaylist() ), + qtr( "Ctrl+L") ); + manageMenu->addSeparator(); + manageMenu->addAction( qtr("Dock playlist"), this, SLOT( dock() ), + qtr( "Ctrl+U" ) ); + bar->addMenu( manageMenu ); + bar->addMenu( QVLCMenu::SDMenu( p_intf ) ); +} + +void PlaylistDialog::dock() +{ + hide(); + QEvent *event = new QEvent( (QEvent::Type)(PLDockEvent_Type) ); + QApplication::postEvent( p_intf->p_sys->p_mi, event ); } + + +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, VLC_TRUE, VLC_FALSE ); + } + } + event->acceptProposedAction(); +} +void PlaylistDialog::dragEnterEvent(QDragEnterEvent *event) +{ + event->acceptProposedAction(); +} +void PlaylistDialog::dragMoveEvent(QDragMoveEvent *event) +{ + event->acceptProposedAction(); +} +void PlaylistDialog::dragLeaveEvent(QDragLeaveEvent *event) +{ + event->accept(); +} + +