[vlc-devel] commit: Qt: split correctly the input options for Convertion and Sout Dialogs. ( Jean-Baptiste Kempf )
git version control
git at videolan.org
Sun Mar 15 02:08:21 CET 2009
vlc | branch: master | Jean-Baptiste Kempf <jb at videolan.org> | Sun Mar 15 02:03:10 2009 +0100| [c54715a17acf3eb7472a1f4c2ec3dbcd906687fd] | committer: Jean-Baptiste Kempf
Qt: split correctly the input options for Convertion and Sout Dialogs.
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=c54715a17acf3eb7472a1f4c2ec3dbcd906687fd
---
.../gui/qt4/components/playlist/playlist_model.cpp | 2 +-
modules/gui/qt4/dialogs/open.cpp | 8 ++-
modules/gui/qt4/dialogs_provider.cpp | 53 ++++++++++++++-----
modules/gui/qt4/dialogs_provider.hpp | 9 ++--
4 files changed, 50 insertions(+), 22 deletions(-)
diff --git a/modules/gui/qt4/components/playlist/playlist_model.cpp b/modules/gui/qt4/components/playlist/playlist_model.cpp
index 8f6f049..5f35fc6 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 <QUrl>
diff --git a/modules/gui/qt4/dialogs/open.cpp b/modules/gui/qt4/dialogs/open.cpp
index 297fd8b..16508e1 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 8e45b75..f4390de 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 a7214ae..4ba6155 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 <QStringList>
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();
More information about the vlc-devel
mailing list