Internal is now QStringList items and QString options (for the first Item, of course)
There shouldn't be too many regressions, but testing is welcome
/*****************************************************************************
* open.cpp : Panels for the open dialogs
****************************************************************************
- * Copyright (C) 2006-2008 the VideoLAN team
+ * Copyright (C) 2006-2009 the VideoLAN team
* Copyright (C) 2007 Société des arts technologiques
* Copyright (C) 2007 Savoir-faire Linux
*
/* Classic UI Setup */
ui.setupUi( this );
+#if 0
/** BEGIN QFileDialog tweaking **/
/* Use a QFileDialog and customize it because we don't want to
rewrite it all. Be careful to your eyes cause there are a few hacks.
// Add the DialogBox to the layout
ui.gridLayout->addWidget( dialogBox, 0, 0, 1, 3 );
+#endif
+/* lineFileEdit = ui.fileEdit;
//TODO later: fill the fileCompleteList with previous items played.
QCompleter *fileCompleter = new QCompleter( fileCompleteList, this );
fileCompleter->setModel( new QDirModel( fileCompleter ) );
- lineFileEdit->setCompleter( fileCompleter );
+ lineFileEdit->setCompleter( fileCompleter );*/
// Hide the subtitles control by default.
- ui.subFrame->hide();
+ ui.subFrame->setEnabled( false );
/* Build the subs size combo box */
setfillVLCConfigCombo( "freetype-rel-fontsize" , p_intf,
setfillVLCConfigCombo( "subsdec-align", p_intf, ui.alignSubComboBox );
/* Connects */
+ BUTTONACT( ui.fileBrowseButton, browseFile() );
BUTTONACT( ui.subBrowseButton, browseFileSub() );
- BUTTONACT( ui.subCheckBox, toggleSubtitleFrame());
+ CONNECT( ui.subCheckBox, toggled( bool ), this, toggleSubtitleFrame( bool ) );
- CONNECT( lineFileEdit, textChanged( QString ), this, updateMRL() );
+ CONNECT( ui.fileListWidg, itemChanged( QListWidgetItem * ), this, updateMRL() );
CONNECT( ui.subInput, textChanged( QString ), this, updateMRL() );
CONNECT( ui.alignSubComboBox, currentIndexChanged( int ), this, updateMRL() );
CONNECT( ui.sizeSubComboBox, currentIndexChanged( int ), this, updateMRL() );
FileOpenPanel::~FileOpenPanel()
{
- getSettings()->setValue( "file-dialog-state", dialogBox->saveState() );
+// getSettings()->setValue( "file-dialog-state", dialogBox->saveState() );
+}
+
+void FileOpenPanel::browseFile()
+{
+ QStringList files = QFileDialog::getOpenFileNames( this );
+ foreach( const QString &file, files)
+ {
+ QListWidgetItem *item = new QListWidgetItem( file, ui.fileListWidg );
+ item->setFlags( Qt::ItemIsEditable | Qt::ItemIsEnabled );
+ ui.fileListWidg->addItem( item );
+ }
+ updateMRL();
}
/* Show a fileBrowser to select a subtitle */
{
// TODO Handle selection of more than one subtitles file
QStringList files = THEDP->showSimpleOpen( qtr("Open subtitles file"),
- EXT_FILTER_SUBTITLE,
- dialogBox->directory().absolutePath() );
+ EXT_FILTER_SUBTITLE, p_intf->p_sys->psz_filepath );
+
if( files.isEmpty() ) return;
ui.subInput->setText( files.join(" ") );
updateMRL();
}
+void FileOpenPanel::toggleSubtitleFrame( bool b )
+{
+ ui.subFrame->setEnabled( b );
+
+ /* Update the MRL */
+ updateMRL();
+}
+
+
/* Update the current MRL */
void FileOpenPanel::updateMRL()
{
- QString mrl = "";
- foreach( const QString &file, dialogBox->selectedFiles() ) {
- mrl += "\"" + file + "\" ";
- }
+ QStringList fileList;
+ QString mrl;
- if( ui.subCheckBox->isChecked() ) {
+ for( int i = 0; i < ui.fileListWidg->count(); i++ )
+ fileList << ui.fileListWidg->item( i )->text();
+
+ if( ui.subCheckBox->isChecked() && !ui.subInput->text().isEmpty() ) {
mrl.append( " :sub-file=\"" + ui.subInput->text() + "\"" );
int align = ui.alignSubComboBox->itemData(
ui.alignSubComboBox->currentIndex() ).toInt();
mrl.append( " :freetype-rel-fontsize=" + QString().setNum( size ) );
}
- emit mrlUpdated( mrl );
+ emit mrlUpdated( fileList, mrl );
emit methodChanged( "file-caching" );
}
/* Function called by Open Dialog when clicke on Play/Enqueue */
void FileOpenPanel::accept()
{
- //TODO set the completer
- p_intf->p_sys->psz_filepath = qtu( dialogBox->directory().absolutePath() );
-}
-
-void FileOpenBox::accept()
-{
- OpenDialog::getInstance( NULL, NULL, true )->selectSlots();
-}
-
-void FileOpenBox::reject()
-{
- OpenDialog::getInstance( NULL, NULL, true )->cancel();
+ //FIXME
+ // p_intf->p_sys->psz_filepath = qtu( dialogBox->directory().absolutePath() );
}
/* Function called by Open Dialog when clicked on cancel */
void FileOpenPanel::clear()
{
- lineFileEdit->clear();
+ ui.fileListWidg->clear();
ui.subInput->clear();
}
-void FileOpenPanel::toggleSubtitleFrame()
-{
- TOGGLEV( ui.subFrame );
-
- /* Update the MRL */
- updateMRL();
-}
-
/**************************************************************************
* Open Discs ( DVD, CD, VCD and similar devices ) *
**************************************************************************/
{
ui.titleSpin->setValue( 0 );
ui.chapterSpin->setValue( 0 );
+ ui.subtitlesSpin->setValue( -1 );
+ ui.audioSpin->setValue( -1 );
b_firstcdda = true;
b_firstdvd = true;
b_firstvcd = true;
void DiscOpenPanel::updateMRL()
{
QString mrl = "";
+ QStringList fileList;
- /* CDDAX and VCDX not implemented. TODO ? */
+ /* CDDAX and VCDX not implemented. TODO ? No. */
/* DVD */
if( ui.dvdRadioButton->isChecked() ) {
if( !ui.dvdsimple->isChecked() )
- mrl = "\"dvd://";
+ mrl = "dvd://";
else
- mrl = "\"dvdsimple://";
+ mrl = "dvdsimple://";
mrl += ui.deviceCombo->currentText();
emit methodChanged( "dvdnav-caching" );
/* VCD */
} else if ( ui.vcdRadioButton->isChecked() ) {
- mrl = "\"vcd://" + ui.deviceCombo->currentText();
+ mrl = "vcd://" + ui.deviceCombo->currentText();
emit methodChanged( "vcd-caching" );
if( ui.titleSpin->value() > 0 ) {
/* CDDA */
} else {
- mrl = "\"cdda://" + ui.deviceCombo->currentText();
+ mrl = "cdda://" + ui.deviceCombo->currentText();
if( ui.titleSpin->value() > 0 ) {
- QString("@%1").arg( ui.titleSpin->value() );
+ mrl += QString("@%1").arg( ui.titleSpin->value() );
}
}
- mrl += "\"";
+ fileList << mrl; mrl = "";
if ( ui.dvdRadioButton->isChecked() || ui.vcdRadioButton->isChecked() )
{
QString("%1").arg( ui.subtitlesSpin->value() );
}
}
- emit mrlUpdated( mrl );
+ emit mrlUpdated( fileList, mrl );
}
void DiscOpenPanel::browseDevice()
this, updateProtocol( int ) );
CONNECT( ui.portSpin, valueChanged( int ), this, updateMRL() );
CONNECT( ui.addressText, textChanged( QString ), this, updateMRL());
- CONNECT( ui.timeShift, clicked(), this, updateMRL());
ui.protocolCombo->addItem( "" );
ui.protocolCombo->addItem("HTTP", QVariant("http"));
QString addr = ui.addressText->text();
QString proto = ui.protocolCombo->itemData( idx_proto ).toString();
- ui.timeShift->setEnabled( idx_proto == UDP_PROTO );
ui.portSpin->setEnabled( idx_proto == UDP_PROTO ||
idx_proto == RTP_PROTO );
}
}
- if( ui.timeShift->isEnabled() && ui.timeShift->isChecked() ) {
- mrl += " :access-filter=timeshift";
- }
- emit mrlUpdated( mrl );
+ QStringList qsl; qsl<< mrl;
+ emit mrlUpdated( qsl, "" );
}
void NetOpenPanel::updateCompleter()
jackChannels->setAlignment( Qt::AlignRight );
jackDevLayout->addWidget( jackChannels, 1, 1 );
- /* Jack Props panel */
-
/* Selected ports */
QLabel *jackPortsLabel = new QLabel( qtr( "Selected ports:" ) );
- jackPropLayout->addWidget( jackPortsLabel, 0 , 0 );
+ jackDevLayout->addWidget( jackPortsLabel, 0 , 0 );
jackPortsSelected = new QLineEdit( qtr( ".*") );
jackPortsSelected->setAlignment( Qt::AlignRight );
- jackPropLayout->addWidget( jackPortsSelected, 0, 1 );
+ jackDevLayout->addWidget( jackPortsSelected, 0, 1 );
+
+ /* Jack Props panel */
/* Caching */
QLabel *jackCachingLabel = new QLabel( qtr( "Input caching:" ) );
jackCaching->setSuffix( " ms" );
jackCaching->setValue(1000);
jackCaching->setAlignment( Qt::AlignRight );
- jackPropLayout->addWidget( jackCaching, 1 , 1 );
+ jackPropLayout->addWidget( jackCaching, 1 , 2 );
/* Pace */
jackPace = new QCheckBox(qtr( "Use VLC pace" ));
/* Auto Connect */
jackConnect = new QCheckBox( qtr( "Auto connnection" ));
- jackPropLayout->addWidget( jackConnect, 3, 1 );
+ jackPropLayout->addWidget( jackConnect, 2, 2 );
/* Jack CONNECTs */
CuMRL( jackChannels, valueChanged( int ) );
void CaptureOpenPanel::updateMRL()
{
QString mrl = "";
+ QStringList fileList;
int i_devicetype = ui.deviceCombo->itemData(
ui.deviceCombo->currentIndex() ).toInt();
switch( i_devicetype )
else if( bdac->isChecked() ) mrl = "dvb-c://";
else if( bdaa->isChecked() ) mrl = "atsc://";
else return;
+ fileList << mrl; mrl = "";
+
mrl += " :dvb-frequency=" + QString("%1").arg( bdaFreq->value() );
if( bdas->isChecked() || bdac->isChecked() )
mrl += " :dvb-srate=" + QString("%1").arg( bdaSrate->value() );
bdaBandBox->currentIndex() ).toInt() );
break;
case DSHOW_DEVICE:
- mrl = "dshow://";
+ fileList << "dshow://";
mrl+= " :dshow-vdev=" + QString("\"%1\"").arg( vdevDshowW->getValue() );
mrl+= " :dshow-adev=" + QString("\"%1\"").arg( adevDshowW->getValue() );
if( dshowVSizeLine->isModified() )
break;
#else
case V4L_DEVICE:
- mrl = "v4l://";
+ fileList << "v4l://";
mrl += " :v4l-vdev=" + v4lVideoDevice->text();
mrl += " :v4l-adev=" + v4lAudioDevice->text();
mrl += " :v4l-norm=" + QString("%1").arg( v4lNormBox->currentIndex() );
mrl += " :v4l-frequency=" + QString("%1").arg( v4lFreq->value() );
break;
case V4L2_DEVICE:
- mrl = "v4l2://";
+ fileList << "v4l2://";
mrl += " :v4l2-dev=" + v4l2VideoDevice->text();
mrl += " :v4l2-adev=" + v4l2AudioDevice->text();
mrl += " :v4l2-standard=" + QString("%1").arg( v4l2StdBox->currentIndex() );
mrl = "jack://";
mrl += "channels=" + QString("%1").arg( jackChannels->value() );
mrl += ":ports=" + jackPortsSelected->text();
- mrl += " --jack-input-caching=" + QString("%1").arg( jackCaching->value() );
+ fileList << mrl; mrl = "";
+
+ mrl += " :jack-input-caching=" + QString("%1").arg( jackCaching->value() );
if ( jackPace->isChecked() )
{
- mrl += " --jack-input-use-vlc-pace";
+ mrl += " :jack-input-use-vlc-pace";
}
if ( jackConnect->isChecked() )
{
- mrl += " --jack-input-auto-connect";
+ mrl += " :jack-input-auto-connect";
}
break;
case PVR_DEVICE:
- mrl = "pvr://";
+ fileList << "pvr://";
mrl += " :pvr-device=" + pvrDevice->text();
mrl += " :pvr-radio-device=" + pvrRadioDevice->text();
mrl += " :pvr-norm=" + QString("%1").arg( pvrNormBox->currentIndex() );
mrl += " :pvr-bitrate=" + QString("%1").arg( pvrBitr->value() );
break;
case DVB_DEVICE:
- mrl = "dvb://";
+ fileList << "dvb://";
mrl += " :dvb-adapter=" + QString("%1").arg( dvbCard->value() );
mrl += " :dvb-frequency=" + QString("%1").arg( dvbFreq->value() );
mrl += " :dvb-srate=" + QString("%1").arg( dvbSrate->value() );
break;
#endif
case SCREEN_DEVICE:
- mrl = "screen://";
- mrl += " :screen-fps=" + QString("%1").arg( screenFPS->value() );
+ fileList << "screen://";
+ mrl = " :screen-fps=" + QString("%1").arg( screenFPS->value() );
updateButtons();
break;
}
if( !advMRL.isEmpty() ) mrl += advMRL;
- emit mrlUpdated( mrl );
+ emit mrlUpdated( fileList, mrl );
}
/**
/*****************************************************************************
* open.hpp : Panels for the open dialogs
****************************************************************************
- * Copyright (C) 2006-2008 the VideoLAN team
+ * Copyright (C) 2006-2009 the VideoLAN team
* Copyright (C) 2007 Société des arts technologiques
* Copyright (C) 2007 Savoir-faire Linux
* $Id$
public slots:
virtual void updateMRL() = 0;
signals:
- void mrlUpdated( QString );
+ void mrlUpdated( QStringList, QString );
void methodChanged( QString method );
};
-class FileOpenBox: public QFileDialog
-{
- Q_OBJECT;
-public:
- FileOpenBox( QWidget *parent, const QString &caption,
- const QString &directory, const QString &filter ):
- QFileDialog( parent, caption, directory, filter ) {}
-public slots:
- void accept();
- void reject();
-};
-
class FileOpenPanel: public OpenPanel
{
Q_OBJECT;
virtual void accept() ;
private:
Ui::OpenFile ui;
- QStringList browse( QString );
- FileOpenBox *dialogBox;
- QLineEdit *lineFileEdit;
- QStringList fileCompleteList ;
public slots:
virtual void updateMRL();
private slots:
void browseFileSub();
- void toggleSubtitleFrame();
+ void browseFile();
+ void toggleSubtitleFrame( bool );
};
class NetOpenPanel: public OpenPanel
/*****************************************************************************
* open.cpp : Advanced open dialog
*****************************************************************************
- * Copyright © 2006-2008 the VideoLAN team
+ * Copyright © 2006-2009 the VideoLAN team
* $Id$
*
* Authors: Jean-Baptiste Kempf <jb@videolan.org>
/* Basic Creation of the Window */
ui.setupUi( this );
- setWindowTitle( qtr( "Open" ) );
- /* resize( 410, 600 ); */
- setMinimumSize( 520, 490 );
+ setWindowTitle( qtr( "Open a Media" ) );
/* Tab definition and creation */
fileOpenPanel = new FileOpenPanel( ui.Tab, p_intf );
/* Force MRL update on tab change */
CONNECT( ui.Tab, currentChanged( int ), this, signalCurrent( int ) );
- CONNECT( fileOpenPanel, mrlUpdated( QString ), this, updateMRL( QString ) );
- CONNECT( netOpenPanel, mrlUpdated( QString ), this, updateMRL( QString ) );
- CONNECT( discOpenPanel, mrlUpdated( QString ), this, updateMRL( QString ) );
- CONNECT( captureOpenPanel, mrlUpdated( QString ), this, updateMRL( QString ) );
+ CONNECT( fileOpenPanel, mrlUpdated( QStringList, QString ),
+ this, updateMRL( QStringList, QString ) );
+ CONNECT( netOpenPanel, mrlUpdated( QStringList, QString ),
+ this, updateMRL( QStringList, QString ) );
+ CONNECT( discOpenPanel, mrlUpdated( QStringList, QString ),
+ this, updateMRL( QStringList, QString ) );
+ CONNECT( captureOpenPanel, mrlUpdated( QStringList, QString ),
+ this, updateMRL( QStringList, QString ) );
CONNECT( fileOpenPanel, methodChanged( QString ),
this, newCachingMethod( QString ) );
this, newCachingMethod( QString ) );
/* Advanced frame Connects */
+ CONNECT( ui.slaveCheckbox, toggled( bool ), this, updateMRL() );
CONNECT( ui.slaveText, textChanged( QString ), this, updateMRL() );
CONNECT( ui.cacheSpinBox, valueChanged( int ), this, updateMRL() );
CONNECT( ui.startTimeSpinBox, valueChanged( int ), this, updateMRL() );
storedMethod = "";
newCachingMethod( "file-caching" );
- resize( getSettings()->value( "opendialog-size", QSize( 520, 490 ) ).toSize() );
+ resize( getSettings()->value( "opendialog-size", QSize( 400, 490 ) ).toSize() );
}
OpenDialog::~OpenDialog()
getSettings()->setValue( "opendialog-size", size() );
}
+/* Used by VLM dialog and inputSlave selection */
+QString OpenDialog::getMRL( bool b_all )
+{
+ return b_all ? itemsMRL[0] + ui.advancedLineInput->text()
+ : itemsMRL[0];
+}
+
/* Finish the dialog and decide if you open another one after */
void OpenDialog::setMenuAction()
{
if( ui.advancedFrame->isVisible() )
{
ui.advancedFrame->hide();
- //setMinimumSize( 520, 460 );
if( size().isValid() )
resize( size().width(), size().height()
- ui.advancedFrame->height() );
else
{
ui.advancedFrame->show();
- //setMinimumSize( 520, 460 + ui.advancedFrame->height() );
if( size().isValid() )
resize( size().width(), size().height()
+ ui.advancedFrame->height() );
dynamic_cast<OpenPanel*>( ui.Tab->widget( i ) )->clear();
/* Clear the variables */
- mrl.clear();
- mainMRL.clear();
+ itemsMRL.clear();
+ optionsMRL.clear();
/* If in Select Mode, reject instead of hiding */
if( i_action_flag == SELECT ) reject();
void OpenDialog::finish( bool b_enqueue = false )
{
toggleVisible();
- mrl = ui.advancedLineInput->text();
- if( i_action_flag != SELECT )
+ if( i_action_flag == SELECT )
{
- QStringList tempMRL = SeparateEntries( mrl );
- for( int i = 0; i < tempMRL.size(); i++ )
- {
- bool b_start = !i && !b_enqueue;
- input_item_t *p_input;
+ accept();
+ return;
+ }
+
+ /* Go through the item list */
+ for( int i = 0; i < itemsMRL.size(); i++ )
+ {
+ bool b_start = !i && !b_enqueue;
- p_input = input_item_New( p_intf, qtu( tempMRL[i] ), NULL );
+ input_item_t *p_input;
+ p_input = input_item_New( p_intf, qtu( itemsMRL[i] ), NULL );
+
+ /* Insert options only for the first element.
+ We don't know how to edit that anyway. */
+ if( i == 0 )
+ {
+ /* Take options from the UI, not from what we stored */
+ QStringList optionsList = ui.advancedLineInput->text().split( ":" );
/* Insert options */
- while( i + 1 < tempMRL.size() && tempMRL[i + 1].startsWith( ":" ) )
+ for( int j = 0; j < optionsList.size(); j++ )
{
- i++;
- input_item_AddOption( p_input, qtu( tempMRL[i] ), VLC_INPUT_OPTION_TRUSTED );
+ QString qs = optionsList[j].trimmed();
+ if( !qs.isEmpty() )
+ {
+ input_item_AddOption( p_input, qtu( qs ), VLC_INPUT_OPTION_TRUSTED );
+ // msg_Err( p_intf, "Here %s", qtu( qs ));
+ }
}
+ }
- /* Switch between enqueuing and starting the item */
- /* FIXME: playlist_AddInput() can fail */
- playlist_AddInput( THEPL, p_input,
+ /* Switch between enqueuing and starting the item */
+ /* FIXME: playlist_AddInput() can fail */
+ playlist_AddInput( THEPL, p_input,
PLAYLIST_APPEND | ( b_start ? PLAYLIST_GO : PLAYLIST_PREPARSE ),
PLAYLIST_END, b_pl ? true : false, pl_Unlocked );
- vlc_gc_decref( p_input );
+ vlc_gc_decref( p_input );
- /* Do not add the current MRL if playlist_AddInput fail */
- RecentsMRL::getInstance( p_intf )->addRecent( tempMRL[i] );
- }
+ /* Do not add the current MRL if playlist_AddInput fail */
+ RecentsMRL::getInstance( p_intf )->addRecent( itemsMRL[i] );
}
- else
- accept();
}
void OpenDialog::transcode()
void OpenDialog::stream( bool b_transcode_only )
{
- mrl = ui.advancedLineInput->text();
+ QString soutMRL = getMRL();
toggleVisible();
- /* Separate the entries */
- QStringList listMRL = SeparateEntries( mrl );
-
- /* We can only take the first entry since we have no idea what
- to do with many files ? Gather ? */
- if( listMRL.size() > 0 )
- {
- /* First item */
- QString soutMRL = listMRL[0];
-
- /* Keep all the :xxx options because they are needed see v4l and dshow */
- for( int i = 1; i < listMRL.size(); i++ )
- {
- if( listMRL[i].at( 0 ) == ':' )
- soutMRL.append( " " + listMRL[i] );
- else
- break;
- }
-
- /* Dbg and send :D */
- msg_Dbg( p_intf, "MRL passed to the Sout: %s", qtu( soutMRL ) );
- THEDP->streamingDialog( this, soutMRL, b_transcode_only );
- }
+ /* Dbg and send :D */
+ msg_Dbg( p_intf, "MRL passed to the Sout: %s", qtu( soutMRL ) );
+ THEDP->streamingDialog( this, soutMRL, b_transcode_only );
}
/* Update the MRL */
-void OpenDialog::updateMRL( QString tempMRL )
+void OpenDialog::updateMRL( QStringList item, QString tempMRL )
{
- mainMRL = tempMRL;
+ optionsMRL = tempMRL;
+ itemsMRL = item;
updateMRL();
}
void OpenDialog::updateMRL() {
- mrl = mainMRL;
+ QString mrl = optionsMRL;
if( ui.slaveCheckbox->isChecked() ) {
mrl += " :input-slave=" + ui.slaveText->text();
}
arg( ui.startTimeSpinBox->value() );
}
ui.advancedLineInput->setText( mrl );
+ ui.mrlLine->setText( itemsMRL.join( " " ) );
}
void OpenDialog::newCachingMethod( QString method )
{
OpenDialog *od = new OpenDialog( this, p_intf, true, SELECT );
od->exec();
- ui.slaveText->setText( od->getMRL() );
+ ui.slaveText->setText( od->getMRL( false ) );
delete od;
}
class OpenDialog : public QVLCDialog
{
- friend class FileOpenBox;
-
Q_OBJECT;
public:
static OpenDialog * getInstance( QWidget *parent, intf_thread_t *p_intf,
virtual ~OpenDialog();
void showTab( int = OPEN_FILE_TAB );
- QString getMRL(){ return mrl; }
+ QString getMRL( bool b = true );
public slots:
void selectSlots();
static OpenDialog *instance;
input_thread_t *p_input;
- QString mrl;
- QString mainMRL;
+ QString optionsMRL;
QString storedMethod;
+ QStringList itemsMRL;
Ui::Open ui;
FileOpenPanel *fileOpenPanel;
void cancel();
void close();
void toggleAdvancedPanel();
- void updateMRL( QString );
+ void updateMRL( QStringList, QString );
void updateMRL();
void newCachingMethod( QString );
void signalCurrent( int );
<rect>
<x>0</x>
<y>0</y>
- <width>586</width>
- <height>532</height>
+ <width>556</width>
+ <height>387</height>
</rect>
</property>
<property name="sizePolicy" >
</property>
</widget>
</item>
- <item row="0" column="1" >
+ <item row="0" column="2" >
<widget class="QSpinBox" name="cacheSpinBox" >
<property name="toolTip" >
<string>_("Change the caching for the media")</string>
</property>
</widget>
</item>
- <item row="0" column="2" >
+ <item row="0" column="3" >
<spacer>
<property name="orientation" >
<enum>Qt::Horizontal</enum>
</property>
</spacer>
</item>
- <item row="0" column="3" >
+ <item row="0" column="4" >
<widget class="QLabel" name="label_3" >
<property name="text" >
<string>_("Start Time")</string>
</property>
</widget>
</item>
- <item row="0" column="4" colspan="2" >
+ <item row="0" column="5" colspan="2" >
<widget class="QSpinBox" name="startTimeSpinBox" >
<property name="toolTip" >
<string>_("Change the start time for the media")</string>
</property>
</widget>
</item>
- <item row="0" column="6" >
+ <item row="0" column="7" >
<spacer>
<property name="orientation" >
<enum>Qt::Horizontal</enum>
</property>
</spacer>
</item>
- <item row="1" column="1" colspan="6" >
+ <item row="1" column="2" colspan="6" >
<widget class="Line" name="line" />
</item>
- <item row="2" column="0" colspan="7" >
+ <item row="2" column="0" colspan="8" >
<widget class="QCheckBox" name="slaveCheckbox" >
<property name="text" >
<string>_("Play another media synchronously (extra audio file, ...)")</string>
</property>
</widget>
</item>
- <item row="3" column="1" colspan="4" >
+ <item row="3" column="2" colspan="4" >
<widget class="QLineEdit" name="slaveText" />
</item>
- <item row="3" column="5" colspan="2" >
+ <item row="3" column="6" colspan="2" >
<widget class="QPushButton" name="slaveBrowseButton" >
<property name="toolTip" >
<string>_("Select the file")</string>
</property>
</widget>
</item>
- <item row="4" column="1" colspan="6" >
+ <item row="4" column="2" colspan="6" >
<widget class="Line" name="line" />
</item>
<item row="5" column="0" >
<widget class="QLabel" name="advancedLabel" >
<property name="text" >
- <string>_("Customize")</string>
+ <string>_("MRL")</string>
</property>
<property name="buddy" >
<cstring>advancedLineInput</cstring>
</property>
</widget>
</item>
- <item row="5" column="1" colspan="6" >
+ <item row="5" column="2" colspan="6" >
+ <widget class="QLineEdit" name="mrlLine" >
+ <property name="readOnly" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="6" column="2" colspan="6" >
<widget class="QLineEdit" name="advancedLineInput" >
<property name="toolTip" >
<string>_("Complete MRL for VLC internal")</string>
</property>
</widget>
</item>
+ <item row="6" column="0" >
+ <widget class="QLabel" name="label" >
+ <property name="text" >
+ <string>_("Edit Options")</string>
+ </property>
+ </widget>
+ </item>
</layout>
</widget>
</item>
</property>
</widget>
</item>
- <item row="4" column="0" colspan="4" >
- <spacer>
- <property name="orientation" >
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeType" >
- <enum>QSizePolicy::Preferred</enum>
- </property>
- <property name="sizeHint" stdset="0" >
- <size>
- <width>20</width>
- <height>5</height>
- </size>
- </property>
- </spacer>
- </item>
</layout>
</widget>
<tabstops>
<tabstop>slaveCheckbox</tabstop>
<tabstop>slaveText</tabstop>
<tabstop>slaveBrowseButton</tabstop>
- <tabstop>advancedLineInput</tabstop>
<tabstop>playButton</tabstop>
<tabstop>menuButton</tabstop>
<tabstop>buttonsBox</tabstop>
<rect>
<x>0</x>
<y>0</y>
- <width>358</width>
- <height>177</height>
+ <width>365</width>
+ <height>129</height>
</rect>
</property>
<layout class="QGridLayout" >
<property name="sizeHint" stdset="0" >
<size>
<width>20</width>
- <height>30</height>
+ <height>0</height>
</size>
</property>
</spacer>
<rect>
<x>0</x>
<y>0</y>
- <width>537</width>
- <height>423</height>
+ <width>521</width>
+ <height>336</height>
</rect>
</property>
+ <property name="minimumSize" >
+ <size>
+ <width>500</width>
+ <height>0</height>
+ </size>
+ </property>
<property name="windowTitle" >
<string>Form</string>
</property>
- <layout class="QVBoxLayout" >
+ <layout class="QVBoxLayout" name="verticalLayout" >
<item>
<widget class="QGroupBox" name="diskGroupBox" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Minimum" hsizetype="Preferred" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="title" >
- <string>_("Disc Selection")</string>
+ <string>_("Disc Type Selection")</string>
</property>
- <layout class="QGridLayout" >
+ <layout class="QGridLayout" name="gridLayout" >
<item row="0" column="0" >
<spacer>
<property name="orientation" >
</property>
</widget>
</item>
- <item row="0" column="2" colspan="2" >
+ <item row="0" column="2" >
<spacer>
<property name="orientation" >
<enum>Qt::Horizontal</enum>
</property>
</spacer>
</item>
- <item row="0" column="6" >
+ <item row="0" column="3" >
+ <widget class="QRadioButton" name="audioCDRadioButton" >
+ <property name="text" >
+ <string>_("Audio CD")</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="4" >
<spacer>
<property name="orientation" >
<enum>Qt::Horizontal</enum>
</property>
</spacer>
</item>
- <item row="0" column="9" >
+ <item row="0" column="5" colspan="3" >
+ <widget class="QRadioButton" name="vcdRadioButton" >
+ <property name="text" >
+ <string>SVCD/VCD</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="8" >
<spacer>
<property name="orientation" >
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
- <item row="2" column="2" colspan="8" >
- <widget class="Line" name="line" >
- <property name="orientation" >
- <enum>Qt::Horizontal</enum>
- </property>
- </widget>
- </item>
- <item row="3" column="0" colspan="3" >
+ <item row="3" column="0" colspan="2" >
<widget class="QLabel" name="deviceLabel" >
<property name="text" >
<string>_("Disc device")</string>
</property>
</widget>
</item>
- <item row="3" column="3" colspan="4" >
+ <item row="2" column="2" colspan="7" >
+ <widget class="Line" name="line" >
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="2" colspan="4" >
<widget class="QComboBox" name="deviceCombo" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="MinimumExpanding" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="editable" >
<bool>true</bool>
</property>
</widget>
</item>
- <item row="3" column="7" >
+ <item row="3" column="6" >
<widget class="QToolButton" name="ejectButton" >
<property name="sizePolicy" >
<sizepolicy vsizetype="Minimum" hsizetype="Fixed" >
</property>
</widget>
</item>
- <item row="3" column="8" colspan="2" >
+ <item row="3" column="7" colspan="2" >
<widget class="QPushButton" name="browseDiscButton" >
<property name="sizePolicy" >
<sizepolicy vsizetype="Fixed" hsizetype="Maximum" >
</property>
</widget>
</item>
- <item row="0" column="4" >
- <widget class="QRadioButton" name="audioCDRadioButton" >
- <property name="text" >
- <string>_("Audio CD")</string>
- </property>
- </widget>
- </item>
- <item row="0" column="8" >
- <widget class="QRadioButton" name="vcdRadioButton" >
- <property name="text" >
- <string>SVCD/VCD</string>
- </property>
- </widget>
- </item>
</layout>
+ <zorder>dvdRadioButton</zorder>
+ <zorder>dvdsimple</zorder>
+ <zorder>line</zorder>
+ <zorder>deviceLabel</zorder>
+ <zorder>deviceCombo</zorder>
+ <zorder>ejectButton</zorder>
+ <zorder>browseDiscButton</zorder>
+ <zorder>audioCDRadioButton</zorder>
+ <zorder>vcdRadioButton</zorder>
+ <zorder></zorder>
</widget>
</item>
<item>
<property name="title" >
<string>_("Starting Position")</string>
</property>
- <layout class="QGridLayout" >
- <item row="1" column="0" >
- <widget class="QLabel" name="chapterLabel" >
+ <layout class="QHBoxLayout" name="horizontalLayout" >
+ <item>
+ <widget class="QLabel" name="titleLabel" >
<property name="text" >
- <string>_("Chapter")</string>
+ <string>_("Title")</string>
</property>
<property name="buddy" >
- <cstring>chapterSpin</cstring>
+ <cstring>titleSpin</cstring>
</property>
</widget>
</item>
- <item row="1" column="1" >
- <widget class="QSpinBox" name="chapterSpin" >
- <property name="alignment" >
- <set>Qt::AlignRight</set>
- </property>
- <property name="suffix" >
- <string/>
+ <item>
+ <widget class="QSpinBox" name="titleSpin" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Maximum" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
</property>
- <property name="prefix" >
- <string/>
+ <property name="autoFillBackground" >
+ <bool>false</bool>
</property>
- <property name="minimum" >
- <number>0</number>
+ <property name="alignment" >
+ <set>Qt::AlignRight</set>
</property>
<property name="value" >
<number>0</number>
</property>
</widget>
</item>
- <item row="0" column="0" >
- <widget class="QLabel" name="titleLabel" >
+ <item>
+ <spacer name="horizontalSpacer" >
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType" >
+ <enum>QSizePolicy::Fixed</enum>
+ </property>
+ <property name="sizeHint" stdset="0" >
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QLabel" name="chapterLabel" >
<property name="text" >
- <string>_("Title")</string>
+ <string>_("Chapter")</string>
</property>
<property name="buddy" >
- <cstring>titleSpin</cstring>
+ <cstring>chapterSpin</cstring>
</property>
</widget>
</item>
- <item row="0" column="1" >
- <widget class="QSpinBox" name="titleSpin" >
- <property name="autoFillBackground" >
- <bool>false</bool>
+ <item>
+ <widget class="QSpinBox" name="chapterSpin" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Maximum" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
</property>
<property name="alignment" >
<set>Qt::AlignRight</set>
</property>
- <property name="suffix" >
- <string/>
- </property>
- <property name="minimum" >
- <number>0</number>
- </property>
- <property name="value" >
- <number>0</number>
- </property>
</widget>
</item>
</layout>
<property name="title" >
<string>_("Audio and Subtitles")</string>
</property>
- <layout class="QGridLayout" >
- <item row="1" column="0" >
- <widget class="QLabel" name="audioLabel" >
+ <layout class="QHBoxLayout" name="horizontalLayout_2" >
+ <item>
+ <widget class="QLabel" name="subtitlesLabel" >
<property name="text" >
- <string>_("Audio track")</string>
+ <string>_("Subtitles track")</string>
</property>
<property name="buddy" >
- <cstring>audioSpin</cstring>
+ <cstring>subtitlesSpin</cstring>
</property>
</widget>
</item>
- <item row="1" column="1" >
- <widget class="QSpinBox" name="audioSpin" >
+ <item>
+ <widget class="QSpinBox" name="subtitlesSpin" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Maximum" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="autoFillBackground" >
+ <bool>false</bool>
+ </property>
<property name="alignment" >
<set>Qt::AlignRight</set>
</property>
<property name="suffix" >
<string/>
</property>
- <property name="prefix" >
- <string/>
- </property>
<property name="minimum" >
<number>-1</number>
</property>
<property name="maximum" >
- <number>7</number>
+ <number>31</number>
</property>
<property name="value" >
<number>-1</number>
</property>
</widget>
</item>
- <item row="0" column="0" >
- <widget class="QLabel" name="subtitlesLabel" >
+ <item>
+ <spacer name="horizontalSpacer_2" >
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType" >
+ <enum>QSizePolicy::Fixed</enum>
+ </property>
+ <property name="sizeHint" stdset="0" >
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QLabel" name="audioLabel" >
<property name="text" >
- <string>_("Subtitles track")</string>
+ <string>_("Audio track")</string>
</property>
<property name="buddy" >
- <cstring>subtitlesSpin</cstring>
+ <cstring>audioSpin</cstring>
</property>
</widget>
</item>
- <item row="0" column="1" >
- <widget class="QSpinBox" name="subtitlesSpin" >
- <property name="autoFillBackground" >
- <bool>false</bool>
+ <item>
+ <widget class="QSpinBox" name="audioSpin" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Maximum" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
</property>
<property name="alignment" >
<set>Qt::AlignRight</set>
</property>
- <property name="suffix" >
- <string/>
- </property>
<property name="minimum" >
<number>-1</number>
</property>
<property name="maximum" >
- <number>31</number>
+ <number>10</number>
</property>
<property name="value" >
<number>-1</number>
<property name="sizeHint" stdset="0" >
<size>
<width>181</width>
- <height>22</height>
+ <height>0</height>
</size>
</property>
</spacer>
</widget>
<tabstops>
<tabstop>dvdRadioButton</tabstop>
+ <tabstop>audioCDRadioButton</tabstop>
+ <tabstop>vcdRadioButton</tabstop>
<tabstop>dvdsimple</tabstop>
<tabstop>deviceCombo</tabstop>
<tabstop>ejectButton</tabstop>
<rect>
<x>0</x>
<y>0</y>
- <width>530</width>
- <height>216</height>
+ <width>519</width>
+ <height>282</height>
</rect>
</property>
<property name="sizePolicy" >
<property name="windowTitle" >
<string>_("Open File")</string>
</property>
- <layout class="QGridLayout" >
- <item row="0" column="0" >
- <widget class="QWidget" native="1" name="tempWidget" >
+ <layout class="QVBoxLayout" name="verticalLayout" >
+ <item>
+ <widget class="QGroupBox" name="tempWidget" >
<property name="toolTip" >
<string>_("Choose one or more media file to open")</string>
</property>
- </widget>
- </item>
- <item row="1" column="0" >
- <spacer>
- <property name="orientation" >
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeType" >
- <enum>QSizePolicy::Fixed</enum>
+ <property name="title" >
+ <string>_("Select one or more files")</string>
</property>
- <property name="sizeHint" stdset="0" >
- <size>
- <width>273</width>
- <height>16</height>
- </size>
- </property>
- </spacer>
+ <layout class="QGridLayout" name="gridLayout" >
+ <item rowspan="2" row="0" column="0" >
+ <widget class="QListWidget" name="fileListWidg" >
+ <property name="maximumSize" >
+ <size>
+ <width>16777215</width>
+ <height>100</height>
+ </size>
+ </property>
+ <property name="contextMenuPolicy" >
+ <enum>Qt::DefaultContextMenu</enum>
+ </property>
+ <property name="verticalScrollBarPolicy" >
+ <enum>Qt::ScrollBarAsNeeded</enum>
+ </property>
+ <property name="horizontalScrollBarPolicy" >
+ <enum>Qt::ScrollBarAlwaysOff</enum>
+ </property>
+ <property name="editTriggers" >
+ <set>QAbstractItemView::AllEditTriggers</set>
+ </property>
+ <property name="alternatingRowColors" >
+ <bool>true</bool>
+ </property>
+ <property name="selectionMode" >
+ <enum>QAbstractItemView::NoSelection</enum>
+ </property>
+ <property name="selectionBehavior" >
+ <enum>QAbstractItemView::SelectItems</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QPushButton" name="fileBrowseButton" >
+ <property name="minimumSize" >
+ <size>
+ <width>100</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="toolTip" >
+ <string>_("Select the subtitles file")</string>
+ </property>
+ <property name="text" >
+ <string>_("Browse...")</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
</item>
- <item row="2" column="0" >
+ <item>
<widget class="QCheckBox" name="subCheckBox" >
<property name="toolTip" >
<string>_("Add a subtitles file")</string>
</property>
</widget>
</item>
- <item row="3" column="0" >
+ <item>
<widget class="QFrame" name="subFrame" >
<property name="sizePolicy" >
<sizepolicy vsizetype="Minimum" hsizetype="Preferred" >
<property name="frameShape" >
<enum>QFrame::StyledPanel</enum>
</property>
- <layout class="QGridLayout" >
+ <layout class="QGridLayout" name="gridLayout_2" >
<item row="1" column="0" >
<spacer>
<property name="orientation" >
</property>
</spacer>
</item>
+ <item row="1" column="3" >
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0" >
+ <size>
+ <width>30</width>
+ <height>26</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="1" column="7" >
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0" >
+ <size>
+ <width>16</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
<item row="1" column="1" >
<widget class="QLabel" name="sizeSubLabel" >
<property name="sizePolicy" >
<property name="text" >
<string>_("Size:")</string>
</property>
+ <property name="buddy" >
+ <cstring>sizeSubComboBox</cstring>
+ </property>
</widget>
</item>
<item row="1" column="2" >
</property>
</widget>
</item>
- <item row="1" column="3" >
- <spacer>
- <property name="orientation" >
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0" >
- <size>
- <width>30</width>
- <height>26</height>
- </size>
- </property>
- </spacer>
- </item>
<item row="1" column="4" >
<widget class="QLabel" name="alignSubLabel" >
<property name="sizePolicy" >
<property name="text" >
<string>_("Alignment:")</string>
</property>
+ <property name="buddy" >
+ <cstring>alignSubComboBox</cstring>
+ </property>
</widget>
</item>
- <item row="1" column="5" >
+ <item row="1" column="5" colspan="2" >
<widget class="QComboBox" name="alignSubComboBox" >
<property name="minimumSize" >
<size>
</property>
</widget>
</item>
- <item row="1" column="6" colspan="2" >
- <spacer>
- <property name="orientation" >
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0" >
- <size>
- <width>16</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
<item row="0" column="0" colspan="6" >
- <widget class="QLineEdit" name="subInput" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- </widget>
+ <widget class="QLineEdit" name="subInput" />
</item>
<item row="0" column="6" colspan="2" >
<widget class="QPushButton" name="subBrowseButton" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Fixed" hsizetype="MinimumExpanding" >
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
<property name="minimumSize" >
<size>
<width>100</width>
</layout>
</widget>
</item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeType" >
+ <enum>QSizePolicy::MinimumExpanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0" >
+ <size>
+ <width>273</width>
+ <height>16</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
</layout>
</widget>
<tabstops>
+ <tabstop>fileListWidg</tabstop>
+ <tabstop>fileBrowseButton</tabstop>
<tabstop>subCheckBox</tabstop>
<tabstop>subInput</tabstop>
<tabstop>subBrowseButton</tabstop>
<rect>
<x>0</x>
<y>0</y>
- <width>431</width>
- <height>233</height>
+ <width>409</width>
+ <height>137</height>
</rect>
</property>
<property name="windowTitle" >
</layout>
</widget>
</item>
- <item>
- <widget class="QGroupBox" name="groupBox_3" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="title" >
- <string>_("Options")</string>
- </property>
- <layout class="QHBoxLayout" >
- <item>
- <widget class="QCheckBox" name="timeShift" >
- <property name="toolTip" >
- <string/>
- </property>
- <property name="text" >
- <string>_("Allow timeshifting")</string>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
- </item>
<item>
<spacer>
<property name="orientation" >
<tabstop>protocolCombo</tabstop>
<tabstop>addressText</tabstop>
<tabstop>portSpin</tabstop>
- <tabstop>timeShift</tabstop>
</tabstops>
<resources/>
<connections/>