mirror of
https://code.videolan.org/videolan/vlc
synced 2024-09-04 09:11:33 +02:00
DnD from Internet Explorer to VLC and support of links (*.lnk)
On Windows a Drag and Drop seems to be a Qt::LinkAction. And support for symbolic links is added. Playlist widget now uses the p_mi->dropEvent (used to have two implementation, one calling p_mi->dropEvent already, the other had its own body. That body is removed) Regards, Mario Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
This commit is contained in:
parent
7b621263ee
commit
934eee8ce7
@ -82,15 +82,7 @@ PlaylistDialog::~PlaylistDialog()
|
||||
|
||||
void PlaylistDialog::dropEvent( QDropEvent *event )
|
||||
{
|
||||
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();
|
||||
playlistWidget->dropEvent(event);
|
||||
}
|
||||
void PlaylistDialog::dragEnterEvent( QDragEnterEvent *event )
|
||||
{
|
||||
|
@ -59,6 +59,7 @@
|
||||
#include <QStatusBar>
|
||||
#include <QLabel>
|
||||
#include <QStackedWidget>
|
||||
#include <QFileInfo>
|
||||
|
||||
#include <vlc_keys.h> /* Wheel event */
|
||||
#include <vlc_vout_display.h> /* vout_thread_t and VOUT_ events */
|
||||
@ -1268,7 +1269,7 @@ void MainInterface::dropEvent(QDropEvent *event)
|
||||
*/
|
||||
void MainInterface::dropEventPlay( QDropEvent *event, bool b_play, bool b_playlist )
|
||||
{
|
||||
if( event->possibleActions() & ( Qt::CopyAction | Qt::MoveAction ) )
|
||||
if( event->possibleActions() & ( Qt::CopyAction | Qt::MoveAction | Qt::LinkAction ) )
|
||||
event->setDropAction( Qt::CopyAction );
|
||||
else
|
||||
return;
|
||||
@ -1293,6 +1294,23 @@ void MainInterface::dropEventPlay( QDropEvent *event, bool b_play, bool b_playli
|
||||
if( url.isValid() )
|
||||
{
|
||||
QString mrl = toURI( url.toEncoded().constData() );
|
||||
QFileInfo info( url.toLocalFile() );
|
||||
if( info.exists() && info.isSymLink() )
|
||||
{
|
||||
QString target = info.symLinkTarget();
|
||||
QUrl url;
|
||||
if( QFile::exists( target ) )
|
||||
{
|
||||
url = QUrl::fromLocalFile( target );
|
||||
}
|
||||
else
|
||||
{
|
||||
url.setUrl( target );
|
||||
}
|
||||
mrl = toURI( url.toEncoded().constData() );
|
||||
}
|
||||
if( mrl.length() > 0 )
|
||||
{
|
||||
playlist_Add( THEPL, qtu(mrl), NULL,
|
||||
PLAYLIST_APPEND | (first ? PLAYLIST_GO: PLAYLIST_PREPARSE),
|
||||
PLAYLIST_END, b_playlist, pl_Unlocked );
|
||||
@ -1300,6 +1318,7 @@ void MainInterface::dropEventPlay( QDropEvent *event, bool b_play, bool b_playli
|
||||
RecentsMRL::getInstance( p_intf )->addRecent( mrl );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Browsers give content as text if you dnd the addressbar,
|
||||
so check if mimedata has valid url in text and use it
|
||||
|
Loading…
Reference in New Issue
Block a user