]> git.sesse.net Git - vlc/blobdiff - modules/gui/qt4/components/open.cpp
Qt4 - Rename dialog/prefs_dialog to dialog/preferences: files in dialog/ are already...
[vlc] / modules / gui / qt4 / components / open.cpp
index 426894ba2263d288cf3f27a8ffc23445221597d3..a3fd97fea8f5a6c7ba8aab515844c11b5444618a 100644 (file)
@@ -25,6 +25,7 @@
 
 #include "qt4.hpp"
 #include "components/open.hpp"
+#include "dialogs/open.hpp"
 #include "dialogs_provider.hpp"
 #include "util/customwidgets.hpp"
 
@@ -55,9 +56,11 @@ FileOpenPanel::FileOpenPanel( QWidget *_parent, intf_thread_t *_p_intf ) :
     fileTypes.replace(QString(";*"), QString(" *"));
 
     // Make this QFileDialog a child of tempWidget from the ui.
-    dialogBox = new QFileDialog( ui.tempWidget, NULL,
+    dialogBox = new FileOpenBox( ui.tempWidget, NULL,
             qfu( p_intf->p_libvlc->psz_homedir ), fileTypes );
     dialogBox->setFileMode( QFileDialog::ExistingFiles );
+    dialogBox->setAcceptMode( QFileDialog::AcceptOpen );
+
     /* We don't want to see a grip in the middle of the window, do we? */
     dialogBox->setSizeGripEnabled( false );
     dialogBox->setToolTip( qtr( "Select one or multiple files, or a folder" ));
@@ -83,9 +86,6 @@ FileOpenPanel::FileOpenPanel( QWidget *_parent, intf_thread_t *_p_intf ) :
     /* Change the text that was uncool in the usual box */
     listLabel[5]->setText( qtr( "Filter:" ) );
 
-    /* Hacks Continued Catch the close event */
-    dialogBox->installEventFilter( this );
-
     // Hide the subtitles control by default.
     ui.subFrame->hide();
 
@@ -106,6 +106,22 @@ FileOpenPanel::FileOpenPanel( QWidget *_parent, intf_thread_t *_p_intf ) :
         }
     }
 
+    /* Build the subs align combo box */
+    p_item = config_FindConfig( VLC_OBJECT(p_intf), "subsdec-align" );
+    if( p_item )
+    {
+        for( int i_index = 0; i_index < p_item->i_list; i_index++ )
+        {
+            ui.alignSubComboBox->addItem(
+                qfu( p_item->ppsz_list_text[i_index] ),
+                QVariant( p_item->pi_list[i_index] ) );
+            if( p_item->value.i == p_item->pi_list[i_index] )
+            {
+                ui.alignSubComboBox->setCurrentIndex( i_index );
+            }
+        }
+    }
+
     BUTTONACT( ui.subBrowseButton, browseFileSub() );
     BUTTONACT( ui.subCheckBox, toggleSubtitleFrame());
 
@@ -140,6 +156,7 @@ void FileOpenPanel::browseFileSub()
     QStringList files = THEDP->showSimpleOpen( qtr("Open subtitles file"),
                             EXT_FILTER_SUBTITLE,
                             dialogBox->directory().absolutePath() );
+    if( files.isEmpty() ) return;
     ui.subInput->setEditText( files.join(" ") );
     updateMRL();
 }
@@ -150,8 +167,10 @@ void FileOpenPanel::updateMRL()
 
     if( ui.subCheckBox->isChecked() ) {
         mrl.append( " :sub-file=" + ui.subInput->currentText() );
-        mrl.append( " :subsdec-align=" + ui.alignSubComboBox->currentText() );
-        mrl.append( " :sub-rel-fontsize=" + ui.sizeSubComboBox->currentText() );
+        int align = ui.alignSubComboBox->itemData( ui.alignSubComboBox->currentIndex() ).toInt();
+        mrl.append( " :subsdec-align=" + QString().setNum( align ) );
+        int size = ui.sizeSubComboBox->itemData( ui.sizeSubComboBox->currentIndex() ).toInt();
+        mrl.append( " :freetype-rel-fontsize=" + QString().setNum( size ) );
     }
     emit mrlUpdated( mrl );
     emit methodChanged( "file-caching" );
@@ -165,6 +184,10 @@ void FileOpenPanel::accept()
     if ( ui.fileInput->count() > 8 ) ui.fileInput->removeItem(0);
 }
 
+void FileOpenBox::accept()
+{
+    OpenDialog::getInstance( NULL, NULL )->play();
+}
 
 /* Function called by Open Dialog when clicked on cancel */
 void FileOpenPanel::clear()
@@ -173,18 +196,6 @@ void FileOpenPanel::clear()
     ui.subInput->setEditText( "" );
 }
 
-bool FileOpenPanel::eventFilter(QObject *object, QEvent *event)
-{
-    if ( ( object == dialogBox ) && ( event->type() == QEvent::Hide ) )
-    {
-         event->ignore();
-         return true;
-    }
-    // standard event processing
-    else
-        return QObject::eventFilter(object, event);
-}
-
 void FileOpenPanel::toggleSubtitleFrame()
 {
     if (ui.subFrame->isVisible())