X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fgui%2Fqt4%2Fdialogs_provider.cpp;h=e2bacb3b719e4829a1c7b3e0f7c99b63d53baec5;hb=1c6b27d3715a074504fdb46617fd0876b870019e;hp=aeac1142314f4e2de8fe93b7308258643709065b;hpb=cf4fcdfed0243b89ceb4fb1fd7b458e82034ae0b;p=vlc diff --git a/modules/gui/qt4/dialogs_provider.cpp b/modules/gui/qt4/dialogs_provider.cpp index aeac114231..e2bacb3b71 100644 --- a/modules/gui/qt4/dialogs_provider.cpp +++ b/modules/gui/qt4/dialogs_provider.cpp @@ -45,6 +45,7 @@ #include "dialogs/vlm.hpp" #include "dialogs/sout.hpp" #include "dialogs/open.hpp" +#include "dialogs/openurl.hpp" #include "dialogs/help.hpp" #include "dialogs/gototime.hpp" #include "dialogs/podcast_configuration.hpp" @@ -423,6 +424,31 @@ void DialogsProvider::simpleMLAppendDialog() addFromSimple( false, false ); } +/* Url & Clipboard */ +/** + * Open a MRL. + * If the clipboard contains URLs, the first is automatically 'preselected'. + **/ +void DialogsProvider::openUrlDialog() +{ + OpenUrlDialog *oud = OpenUrlDialog::getInstance( p_intf->p_sys->p_mi, + p_intf ); + if( oud->exec() == QDialog::Accepted ) + { + QString url = oud->url(); + if( !url.isEmpty() ) + { + playlist_Add( THEPL, qtu( toNativeSeparators( url ) ), + NULL, !oud->shouldEnqueue() ? + ( PLAYLIST_APPEND | PLAYLIST_GO ) + : ( PLAYLIST_APPEND | PLAYLIST_PREPARSE ), + PLAYLIST_END, true, false ); + RecentsMRL::getInstance( p_intf )->addRecent( + toNativeSeparators( url ) ); + } + } +} + /* Directory */ /** * Open a directory, @@ -437,8 +463,7 @@ static void openDirectory( intf_thread_t *p_intf, bool pl, bool go ) { QString mrl = dir.endsWith( "VIDEO_TS", Qt::CaseInsensitive ) ? "dvd://" : "directory://" + toNativeSeparators( dir ); - input_item_t *p_input = input_item_NewExt( THEPL, qtu( mrl ), - NULL, 0, NULL, -1 ); + input_item_t *p_input = input_item_New( THEPL, qtu( mrl ), NULL ); /* FIXME: playlist_AddInput() can fail */ playlist_AddInput( THEPL, p_input, @@ -503,7 +528,6 @@ void DialogsProvider::saveAPlaylist() QString file = qfd->selectedFiles().first(); QString filter = qfd->selectedFilter(); - const char* filt = filter.toAscii(); if( file.contains( ".xsp" ) || filter.contains( "XSPF" ) ) { @@ -548,15 +572,12 @@ void DialogsProvider::streamingDialog( QWidget *parent, QString mrl, if( s->exec() == QDialog::Accepted ) { - msg_Dbg( p_intf, "Sout mrl %s", qta( s->getMrl() ) ); - /* Just do it */ - int i_len = strlen( qtu( s->getMrl() ) ) + 10; - char *psz_option = (char*)malloc( i_len ); - snprintf( psz_option, i_len - 1, "%s", qtu( s->getMrl() ) ); + const char *psz_option = qtu( s->getMrl() ); + msg_Dbg( p_intf, "Sout mrl %s", psz_option ); playlist_AddExt( THEPL, qtu( mrl ), "Streaming", PLAYLIST_APPEND | PLAYLIST_GO, PLAYLIST_END, - -1, &psz_option, 1, true, pl_Unlocked ); + -1, 1, &psz_option, VLC_INPUT_OPTION_TRUSTED, true, pl_Unlocked ); RecentsMRL::getInstance( p_intf )->addRecent( mrl ); } } @@ -608,7 +629,7 @@ void DialogsProvider::loadSubtitlesFile() void DialogsProvider::menuAction( QObject *data ) { - QVLCMenu::DoAction( p_intf, data ); + QVLCMenu::DoAction( data ); } void DialogsProvider::menuUpdateAction( QObject *data )