Qt: Change open dialog behaviour and layout in most categories.
authorJean-Baptiste Kempf <jb@videolan.org>
Mon, 26 Jan 2009 18:05:57 +0000 (19:05 +0100)
committerJean-Baptiste Kempf <jb@videolan.org>
Mon, 26 Jan 2009 18:07:50 +0000 (19:07 +0100)
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

modules/gui/qt4/components/open_panels.cpp
modules/gui/qt4/components/open_panels.hpp
modules/gui/qt4/dialogs/open.cpp
modules/gui/qt4/dialogs/open.hpp
modules/gui/qt4/ui/open.ui
modules/gui/qt4/ui/open_capture.ui
modules/gui/qt4/ui/open_disk.ui
modules/gui/qt4/ui/open_file.ui
modules/gui/qt4/ui/open_net.ui

index 848429e..2b6f73e 100644 (file)
@@ -1,7 +1,7 @@
 /*****************************************************************************
  * 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
  *
@@ -61,6 +61,7 @@ FileOpenPanel::FileOpenPanel( QWidget *_parent, intf_thread_t *_p_intf ) :
     /* 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.
@@ -114,14 +115,16 @@ FileOpenPanel::FileOpenPanel( QWidget *_parent, intf_thread_t *_p_intf ) :
 
     // 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,
@@ -131,10 +134,11 @@ FileOpenPanel::FileOpenPanel( QWidget *_parent, intf_thread_t *_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() );
@@ -142,7 +146,19 @@ FileOpenPanel::FileOpenPanel( QWidget *_parent, intf_thread_t *_p_intf ) :
 
 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 */
@@ -150,22 +166,32 @@ void FileOpenPanel::browseFileSub()
 {
     // 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();
@@ -175,42 +201,24 @@ void FileOpenPanel::updateMRL()
         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 )                        *
  **************************************************************************/
@@ -285,6 +293,8 @@ void DiscOpenPanel::clear()
 {
     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;
@@ -349,14 +359,15 @@ void DiscOpenPanel::updateButtons()
 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" );
 
@@ -369,7 +380,7 @@ void DiscOpenPanel::updateMRL()
 
     /* 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 ) {
@@ -378,13 +389,13 @@ void DiscOpenPanel::updateMRL()
 
     /* 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() )
     {
@@ -397,7 +408,7 @@ void DiscOpenPanel::updateMRL()
                 QString("%1").arg( ui.subtitlesSpin->value() );
         }
     }
-    emit mrlUpdated( mrl );
+    emit mrlUpdated( fileList, mrl );
 }
 
 void DiscOpenPanel::browseDevice()
@@ -431,7 +442,6 @@ NetOpenPanel::NetOpenPanel( QWidget *_parent, intf_thread_t *_p_intf ) :
              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"));
@@ -476,7 +486,6 @@ void NetOpenPanel::updateProtocol( int idx_proto ) {
     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 );
 
@@ -573,10 +582,8 @@ void NetOpenPanel::updateMRL() {
         }
     }
 
-    if( ui.timeShift->isEnabled() && ui.timeShift->isChecked() ) {
-        mrl += " :access-filter=timeshift";
-    }
-    emit mrlUpdated( mrl );
+    QStringList qsl; qsl<< mrl;
+    emit mrlUpdated( qsl, "" );
 }
 
 void NetOpenPanel::updateCompleter()
@@ -830,15 +837,15 @@ void CaptureOpenPanel::initialize()
     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:" ) );
@@ -848,7 +855,7 @@ void CaptureOpenPanel::initialize()
     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" ));
@@ -856,7 +863,7 @@ void CaptureOpenPanel::initialize()
 
     /* Auto Connect */
     jackConnect = new QCheckBox( qtr( "Auto connnection" ));
-    jackPropLayout->addWidget( jackConnect, 3, 1 );
+    jackPropLayout->addWidget( jackConnect, 2, 2 );
 
     /* Jack CONNECTs */
     CuMRL( jackChannels, valueChanged( int ) );
@@ -1025,6 +1032,7 @@ void CaptureOpenPanel::clear()
 void CaptureOpenPanel::updateMRL()
 {
     QString mrl = "";
+    QStringList fileList;
     int i_devicetype = ui.deviceCombo->itemData(
             ui.deviceCombo->currentIndex() ).toInt();
     switch( i_devicetype )
@@ -1036,6 +1044,8 @@ void CaptureOpenPanel::updateMRL()
         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() );
@@ -1045,7 +1055,7 @@ void CaptureOpenPanel::updateMRL()
                     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() )
@@ -1053,14 +1063,14 @@ void CaptureOpenPanel::updateMRL()
         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() );
@@ -1069,18 +1079,20 @@ void CaptureOpenPanel::updateMRL()
         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() );
@@ -1090,22 +1102,22 @@ void CaptureOpenPanel::updateMRL()
             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 );
 }
 
 /**
index deaf898..fdeeb2a 100644 (file)
@@ -1,7 +1,7 @@
 /*****************************************************************************
  * 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$
@@ -91,22 +91,10 @@ protected:
 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;
@@ -117,15 +105,12 @@ public:
     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
index d30b15b..50761f2 100644 (file)
@@ -1,7 +1,7 @@
 /*****************************************************************************
  * 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>
@@ -85,9 +85,7 @@ OpenDialog::OpenDialog( QWidget *parent,
 
     /* 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 );
@@ -140,10 +138,14 @@ OpenDialog::OpenDialog( QWidget *parent,
     /* 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 ) );
@@ -155,6 +157,7 @@ OpenDialog::OpenDialog( QWidget *parent,
              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() );
@@ -176,7 +179,7 @@ OpenDialog::OpenDialog( QWidget *parent,
     storedMethod = "";
     newCachingMethod( "file-caching" );
 
-    resize( getSettings()->value( "opendialog-size", QSize( 520, 490 ) ).toSize() );
+    resize( getSettings()->value( "opendialog-size", QSize( 400, 490 ) ).toSize() );
 }
 
 OpenDialog::~OpenDialog()
@@ -184,6 +187,13 @@ 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()
 {
@@ -237,7 +247,6 @@ void OpenDialog::toggleAdvancedPanel()
     if( ui.advancedFrame->isVisible() )
     {
         ui.advancedFrame->hide();
-        //setMinimumSize( 520, 460 );
         if( size().isValid() )
             resize( size().width(), size().height()
                     - ui.advancedFrame->height() );
@@ -245,7 +254,6 @@ void OpenDialog::toggleAdvancedPanel()
     else
     {
         ui.advancedFrame->show();
-        //setMinimumSize( 520, 460 + ui.advancedFrame->height() );
         if( size().isValid() )
             resize( size().width(), size().height()
                     + ui.advancedFrame->height() );
@@ -263,8 +271,8 @@ void OpenDialog::cancel()
         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();
@@ -315,38 +323,50 @@ void OpenDialog::enqueue()
 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()
@@ -356,43 +376,24 @@ 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();
     }
@@ -406,6 +407,7 @@ void OpenDialog::updateMRL() {
             arg( ui.startTimeSpinBox->value() );
     }
     ui.advancedLineInput->setText( mrl );
+    ui.mrlLine->setText( itemsMRL.join( " " ) );
 }
 
 void OpenDialog::newCachingMethod( QString method )
@@ -469,6 +471,6 @@ void OpenDialog::browseInputSlave()
 {
     OpenDialog *od = new OpenDialog( this, p_intf, true, SELECT );
     od->exec();
-    ui.slaveText->setText( od->getMRL() );
+    ui.slaveText->setText( od->getMRL( false ) );
     delete od;
 }
index 05d8a38..b624709 100644 (file)
@@ -56,8 +56,6 @@ class QTabWidget;
 
 class OpenDialog : public QVLCDialog
 {
-    friend class FileOpenBox;
-
     Q_OBJECT;
 public:
     static OpenDialog * getInstance( QWidget *parent, intf_thread_t *p_intf,
@@ -72,7 +70,7 @@ public:
     virtual ~OpenDialog();
 
     void showTab( int = OPEN_FILE_TAB );
-    QString getMRL(){ return mrl; }
+    QString getMRL( bool b = true );
 
 public slots:
     void selectSlots();
@@ -88,9 +86,9 @@ private:
     static OpenDialog *instance;
     input_thread_t *p_input;
 
-    QString mrl;
-    QString mainMRL;
+    QString optionsMRL;
     QString storedMethod;
+    QStringList itemsMRL;
 
     Ui::Open ui;
     FileOpenPanel *fileOpenPanel;
@@ -112,7 +110,7 @@ private slots:
     void cancel();
     void close();
     void toggleAdvancedPanel();
-    void updateMRL( QString );
+    void updateMRL( QStringList, QString );
     void updateMRL();
     void newCachingMethod( QString );
     void signalCurrent( int );
index 5e50f20..fd596ae 100644 (file)
@@ -9,8 +9,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>586</width>
-    <height>532</height>
+    <width>556</width>
+    <height>387</height>
    </rect>
   </property>
   <property name="sizePolicy" >
@@ -55,7 +55,7 @@
         </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>
@@ -71,7 +71,7 @@
         </property>
        </widget>
       </item>
-      <item row="0" column="2" >
+      <item row="0" column="3" >
        <spacer>
         <property name="orientation" >
          <enum>Qt::Horizontal</enum>
@@ -84,7 +84,7 @@
         </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>
@@ -94,7 +94,7 @@
         </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>
index b9aa20a..37b433e 100644 (file)
@@ -6,8 +6,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>358</width>
-    <height>177</height>
+    <width>365</width>
+    <height>129</height>
    </rect>
   </property>
   <layout class="QGridLayout" >
@@ -63,7 +63,7 @@
      <property name="sizeHint" stdset="0" >
       <size>
        <width>20</width>
-       <height>30</height>
+       <height>0</height>
       </size>
      </property>
     </spacer>
index ce978cb..195fc87 100644 (file)
@@ -6,20 +6,32 @@
    <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" >
@@ -46,7 +58,7 @@
         </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>
index 4a686db..c7faba3 100644 (file)
@@ -6,8 +6,8 @@
    <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>
@@ -53,7 +89,7 @@
      </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>
index 8af212c..a6396ac 100644 (file)
@@ -6,8 +6,8 @@
    <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/>