From 665ba714270b60aef0af2029d2eae6acb86ef7ff Mon Sep 17 00:00:00 2001 From: =?utf8?q?R=C3=A9mi=20Denis-Courmont?= Date: Wed, 15 Apr 2009 23:27:02 +0300 Subject: [PATCH] Qt4: hopefully fix the last open file path --- modules/gui/qt4/components/open_panels.cpp | 7 +++---- modules/gui/qt4/dialogs_provider.cpp | 8 ++++---- modules/gui/qt4/qt4.cpp | 13 ++++++++----- modules/gui/qt4/qt4.hpp | 3 ++- 4 files changed, 17 insertions(+), 14 deletions(-) diff --git a/modules/gui/qt4/components/open_panels.cpp b/modules/gui/qt4/components/open_panels.cpp index 0cbb871306..325b38c3fa 100644 --- a/modules/gui/qt4/components/open_panels.cpp +++ b/modules/gui/qt4/components/open_panels.cpp @@ -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(); } diff --git a/modules/gui/qt4/dialogs_provider.cpp b/modules/gui/qt4/dialogs_provider.cpp index 65f6e0b146..ed1af0b8aa 100644 --- a/modules/gui/qt4/dialogs_provider.cpp +++ b/modules/gui/qt4/dialogs_provider.cpp @@ -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)" ) ); diff --git a/modules/gui/qt4/qt4.cpp b/modules/gui/qt4/qt4.cpp index cc3c9c2d55..bddb8bd905 100644 --- a/modules/gui/qt4/qt4.cpp +++ b/modules/gui/qt4/qt4.cpp @@ -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 ); diff --git a/modules/gui/qt4/qt4.hpp b/modules/gui/qt4/qt4.hpp index 3c0dbec904..e2f7ec5f51 100644 --- a/modules/gui/qt4/qt4.hpp +++ b/modules/gui/qt4/qt4.hpp @@ -34,6 +34,7 @@ #include /* playlist_t */ #include +#include #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 */ }; -- 2.39.2