From: Jean-Baptiste Kempf Date: Sun, 15 Mar 2009 01:03:10 +0000 (+0100) Subject: Qt: split correctly the input options for Convertion and Sout Dialogs. X-Git-Tag: 1.0.0-pre1~95 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=c54715a17acf3eb7472a1f4c2ec3dbcd906687fd;p=vlc Qt: split correctly the input options for Convertion and Sout Dialogs. --- diff --git a/modules/gui/qt4/components/playlist/playlist_model.cpp b/modules/gui/qt4/components/playlist/playlist_model.cpp index 8f6f049409..5f35fc63d2 100644 --- a/modules/gui/qt4/components/playlist/playlist_model.cpp +++ b/modules/gui/qt4/components/playlist/playlist_model.cpp @@ -903,7 +903,7 @@ void PLModel::popupSave() { QStringList mrls = selectedURIs(); if( !mrls.isEmpty() ) - THEDP->streamingDialog( NULL, mrls[0], true ); + THEDP->streamingDialog( NULL, mrls[0] ); } #include diff --git a/modules/gui/qt4/dialogs/open.cpp b/modules/gui/qt4/dialogs/open.cpp index 297fd8b55b..16508e1543 100644 --- a/modules/gui/qt4/dialogs/open.cpp +++ b/modules/gui/qt4/dialogs/open.cpp @@ -360,7 +360,8 @@ void OpenDialog::finish( bool b_enqueue = false ) QString qs = optionsList[j].trimmed(); if( !qs.isEmpty() ) { - input_item_AddOption( p_input, qtu( qs ), VLC_INPUT_OPTION_TRUSTED ); + input_item_AddOption( p_input, qtu( qs ), + VLC_INPUT_OPTION_TRUSTED ); #ifdef DEBUG_QT msg_Warn( p_intf, "Input option: %s", qtu( qs ) ); #endif @@ -387,13 +388,14 @@ void OpenDialog::transcode() void OpenDialog::stream( bool b_transcode_only ) { - QString soutMRL = getMRL(); + QString soutMRL = getMRL( false ); if( soutMRL.isEmpty() ) return; toggleVisible(); /* Dbg and send :D */ msg_Dbg( p_intf, "MRL passed to the Sout: %s", qtu( soutMRL ) ); - THEDP->streamingDialog( this, soutMRL, b_transcode_only ); + THEDP->streamingDialog( this, soutMRL, b_transcode_only, + ui.advancedLineInput->text().split( ":" ) ); } /* Update the MRL */ diff --git a/modules/gui/qt4/dialogs_provider.cpp b/modules/gui/qt4/dialogs_provider.cpp index 8e45b751b6..f4390ded39 100644 --- a/modules/gui/qt4/dialogs_provider.cpp +++ b/modules/gui/qt4/dialogs_provider.cpp @@ -566,43 +566,68 @@ void DialogsProvider::saveAPlaylist() * Sout emulation ****************************************************************************/ -void DialogsProvider::streamingDialog( QWidget *parent, QString mrl, - bool b_transcode_only ) +void DialogsProvider::streamingDialog( QWidget *parent, + QString mrl, + bool b_transcode_only, + QStringList options ) { - char *psz_option; + char *psz_soutoption; + + /* Stream */ if( !b_transcode_only ) { SoutDialog *s = SoutDialog::getInstance( parent, p_intf, mrl ); if( s->exec() == QDialog::Accepted ) { - psz_option = strdup( qtu( s->getMrl() ) ); + psz_soutoption = strdup( qtu( s->getMrl() ) ); delete s; } else { - delete s; - return; + delete s; return; } } else { + /* Convert */ ConvertDialog *s = new ConvertDialog( parent, p_intf, mrl ); if( s->exec() == QDialog::Accepted ) { - psz_option = strdup( qtu( s->getMrl() ) ); + psz_soutoption = strdup( qtu( s->getMrl() ) ); delete s; } else { - delete s; - return; + delete s; return; } } - if( !EMPTY_STR( psz_option ) ) + /* Get SoutMRL */ + if( !EMPTY_STR( psz_soutoption ) ) { - msg_Dbg( p_intf, "Streaming MRL is: %s", psz_option ); - playlist_AddExt( THEPL, qtu( mrl ), _("Streaming"), - PLAYLIST_APPEND | PLAYLIST_GO, PLAYLIST_END, - -1, 1, &psz_option, VLC_INPUT_OPTION_TRUSTED, true, pl_Unlocked ); + /* Create Input */ + input_item_t *p_input; + p_input = input_item_New( p_intf, qtu( mrl ), _("Streaming") ); + + /* Add normal Options */ + for( int j = 0; j < options.size(); j++ ) + { + QString qs = options[j].trimmed(); + if( !qs.isEmpty() ) + { + input_item_AddOption( p_input, qtu( qs ), + VLC_INPUT_OPTION_TRUSTED ); + } + } + + /* Add SoutMRL */ + msg_Dbg( p_intf, "Streaming MRL is: %s", psz_soutoption ); + input_item_AddOption( p_input, psz_soutoption, VLC_INPUT_OPTION_TRUSTED ); + + /* Switch between enqueuing and starting the item */ + /* FIXME: playlist_AddInput() can fail */ + playlist_AddInput( THEPL, p_input, + PLAYLIST_APPEND | PLAYLIST_GO, PLAYLIST_END, true, pl_Unlocked ); + vlc_gc_decref( p_input ); + RecentsMRL::getInstance( p_intf )->addRecent( mrl ); } } diff --git a/modules/gui/qt4/dialogs_provider.hpp b/modules/gui/qt4/dialogs_provider.hpp index a7214aebff..4ba6155ffa 100644 --- a/modules/gui/qt4/dialogs_provider.hpp +++ b/modules/gui/qt4/dialogs_provider.hpp @@ -22,8 +22,8 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. *****************************************************************************/ -#ifndef _DIALOGS_PROVIDER_H_ -#define _DIALOGS_PROVIDER_H_ +#ifndef QVLC_DIALOGS_PROVIDER_H_ +#define QVLC_DIALOGS_PROVIDER_H_ #ifdef HAVE_CONFIG_H # include "config.h" @@ -82,6 +82,7 @@ enum { class QEvent; class QSignalMapper; class QVLCMenu; +#include class DialogsProvider : public QObject { @@ -176,8 +177,8 @@ public slots: void PLAppendDir(); void MLAppendDir(); - void streamingDialog( QWidget *parent, QString mrl = "", - bool b_stream = true ); + void streamingDialog( QWidget *parent, QString mrl, bool b_stream = true, + QStringList options = QStringList("") ); void openAndStreamingDialogs(); void openAndTranscodingDialogs();