Qt4: hopefully fix the last open file path
authorRémi Denis-Courmont <remi@remlab.net>
Wed, 15 Apr 2009 20:27:02 +0000 (23:27 +0300)
committerRémi Denis-Courmont <remi@remlab.net>
Wed, 15 Apr 2009 20:27:02 +0000 (23:27 +0300)
modules/gui/qt4/components/open_panels.cpp
modules/gui/qt4/dialogs_provider.cpp
modules/gui/qt4/qt4.cpp
modules/gui/qt4/qt4.hpp

index 0cbb871..325b38c 100644 (file)
@@ -113,7 +113,7 @@ inline void FileOpenPanel::BuildOldPanel()
 
     /* Make this QFileDialog a child of tempWidget from the ui. */
     dialogBox = new FileOpenBox( ui.tempWidget, NULL,
-            qfu( p_intf->p_sys->psz_filepath ), "" );
+                                 p_intf->p_sys->filepath, "" );
 
     dialogBox->setFileMode( QFileDialog::ExistingFiles );
     dialogBox->setAcceptMode( QFileDialog::AcceptOpen );
@@ -190,7 +190,7 @@ void FileOpenPanel::browseFileSub()
 {
     // TODO Handle selection of more than one subtitles file
     QStringList files = THEDP->showSimpleOpen( qtr("Open subtitles file"),
-                           EXT_FILTER_SUBTITLE, p_intf->p_sys->psz_filepath );
+                           EXT_FILTER_SUBTITLE, p_intf->p_sys->filepath );
 
     if( files.isEmpty() ) return;
     ui.subInput->setText( files.join(" ") );
@@ -240,8 +240,7 @@ void FileOpenPanel::updateMRL()
 /* Function called by Open Dialog when clicke on Play/Enqueue */
 void FileOpenPanel::accept()
 {
-    //FIXME
- //   p_intf->p_sys->psz_filepath = qtu( dialogBox->directory().absolutePath() );
+    p_intf->p_sys->filepath = dialogBox->directory().absolutePath();
     ui.fileListWidg->clear();
 }
 
index 65f6e0b..ed1af0b 100644 (file)
@@ -277,7 +277,7 @@ void DialogsProvider::openFileGenericDialog( intf_dialog_args_t *p_arg )
     if( p_arg->b_save )
     {
         QString file = QFileDialog::getSaveFileName( NULL, p_arg->psz_title,
-                            qfu( p_intf->p_sys->psz_filepath ), extensions );
+                                        p_intf->p_sys->filepath, extensions );
         if( !file.isEmpty() )
         {
             p_arg->i_results = 1;
@@ -290,7 +290,7 @@ void DialogsProvider::openFileGenericDialog( intf_dialog_args_t *p_arg )
     else /* non-save mode */
     {
         QStringList files = QFileDialog::getOpenFileNames( NULL,
-                p_arg->psz_title, qfu( p_intf->p_sys->psz_filepath ),
+                p_arg->psz_title, p_intf->p_sys->filepath,
                 extensions );
         p_arg->i_results = files.count();
         p_arg->psz_results = (char **)malloc( p_arg->i_results * sizeof( char * ) );
@@ -386,7 +386,7 @@ QStringList DialogsProvider::showSimpleOpen( QString help,
 
     return QFileDialog::getOpenFileNames( NULL,
         help.isEmpty() ? qtr(I_OP_SEL_FILES ) : help,
-        path.isEmpty() ? qfu( p_intf->p_sys->psz_filepath ) : path,
+        path.isEmpty() ? p_intf->p_sys->filepath : path,
         fileTypes );
 }
 
@@ -512,7 +512,7 @@ void DialogsProvider::saveAPlaylist()
 {
     QFileDialog *qfd = new QFileDialog( NULL,
                                    qtr( "Save playlist as..." ),
-                                   qfu( p_intf->p_sys->psz_filepath ),
+                                   p_intf->p_sys->filepath,
                                    qtr( "XSPF playlist (*.xspf);; " ) +
                                    qtr( "M3U playlist (*.m3u);; " ) +
                                    qtr( "HTML playlist (*.html)" ) );
index cc3c9c2..bddb8bd 100644 (file)
@@ -460,9 +460,12 @@ static void *Thread( void *obj )
     app.setQuitOnLastWindowClosed( false );
 
     /* Retrieve last known path used in file browsing */
-    char *psz_path = config_GetPsz( p_intf, "qt-filedialog-path" );
-    p_intf->p_sys->psz_filepath = EMPTY_STR( psz_path ) ? config_GetHomeDir()
-                                                        : psz_path;
+    {
+        char *psz_path = config_GetPsz( p_intf, "qt-filedialog-path" );
+        p_intf->p_sys->filepath =
+            EMPTY_STR(psz_path) ? config_GetHomeDir() : qfu(psz_path);
+        free( psz_path );
+    }
 
     /* Launch */
     app.exec();
@@ -501,8 +504,8 @@ static void *Thread( void *obj )
 
 
     /* Save the path */
-    config_PutPsz( p_intf, "qt-filedialog-path", p_intf->p_sys->psz_filepath );
-    free( psz_path );
+    config_PutPsz( p_intf, "qt-filedialog-path",
+                   qtu(p_intf->p_sys->filepath) );
 
     /* Delete the application automatically */
     free( display );
index 3c0dbec..e2f7ec5 100644 (file)
@@ -34,6 +34,7 @@
 #include <vlc_playlist.h>  /* playlist_t */
 
 #include <QEvent>
+#include <QString>
 
 #if ( QT_VERSION < 0x040300 )
 # error Update your Qt version
@@ -72,7 +73,7 @@ struct intf_sys_t
 
     playlist_t *p_playlist;  /* Core Playlist discussion */
 
-    const char *psz_filepath; /* Last path used in dialogs */
+    QString filepath;        /* Last path used in dialogs */
 
     QMenu * p_popup_menu;    /* The right click menu */
 };