From: Jean-Baptiste Kempf Date: Tue, 23 Oct 2007 04:05:06 +0000 (+0000) Subject: Qt4 - try to remember latest open disc path. X-Git-Tag: 0.9.0-test0~4834 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=295364c7b5e5b2888d00772705348c480e2db77f;p=vlc Qt4 - try to remember latest open disc path. --- diff --git a/modules/gui/qt4/components/open.cpp b/modules/gui/qt4/components/open.cpp index dfc819803e..b3a3b2afc1 100644 --- a/modules/gui/qt4/components/open.cpp +++ b/modules/gui/qt4/components/open.cpp @@ -4,6 +4,7 @@ * Copyright (C) 2006-2007 the VideoLAN team * Copyright (C) 2007 Société des arts technologiques * Copyright (C) 2007 Savoir-faire Linux + * * $Id$ * * Authors: Clément Stenac @@ -69,6 +70,7 @@ FileOpenPanel::FileOpenPanel( QWidget *_parent, intf_thread_t *_p_intf ) : { psz_filepath = p_intf->p_libvlc->psz_homedir; } + // Make this QFileDialog a child of tempWidget from the ui. dialogBox = new FileOpenBox( ui.tempWidget, NULL, qfu( psz_filepath ), fileTypes ); @@ -178,6 +180,15 @@ void FileOpenPanel::updateMRL() mrl.append( " :freetype-rel-fontsize=" + QString().setNum( size ) ); } + emit mrlUpdated( mrl ); + emit methodChanged( "file-caching" ); +} + + +/* Function called by Open Dialog when clicke on Play/Enqueue */ +void FileOpenPanel::accept() +{ + //FIXME set the completer const char *psz_filepath = config_GetPsz( p_intf, "qt-filedialog-path" ); if( ( NULL == psz_filepath ) || strcmp( psz_filepath, qtu( dialogBox->directory().absolutePath() )) ) @@ -188,15 +199,6 @@ void FileOpenPanel::updateMRL() } delete psz_filepath; - emit mrlUpdated( mrl ); - emit methodChanged( "file-caching" ); -} - - -/* Function called by Open Dialog when clicke on Play/Enqueue */ -void FileOpenPanel::accept() -{ - //FIXME set the completer } void FileOpenBox::accept() @@ -227,6 +229,8 @@ DiscOpenPanel::DiscOpenPanel( QWidget *_parent, intf_thread_t *_p_intf ) : { ui.setupUi( this ); + char *psz_discpath = config_GetPsz( p_intf, "qt-discdialog-path" ); + #if WIN32 /* Disc drives probing for Windows */ char szDrives[512]; szDrives[0] = '\0'; @@ -244,8 +248,16 @@ DiscOpenPanel::DiscOpenPanel( QWidget *_parent, intf_thread_t *_p_intf ) : } SetErrorMode(oldMode); } + + int index = ui.deviceCombo->findText( qfu( psz_discpath ) ) + if( index != -1 ) ui.deviceCombo->setCurrentIndex( index ); + #endif /* Disc Probing under Windows */ + ui.deviceCombo->setEditText( qfu( psz_discpath ) ); + + delete psz_discpath; + /* CONNECTs */ BUTTONACT( ui.dvdRadioButton, updateButtons() ); BUTTONACT( ui.vcdRadioButton, updateButtons() ); @@ -359,6 +371,13 @@ void DiscOpenPanel::browseDevice() updateMRL(); } +void DiscOpenPanel::accept() +{ + /* set dialog box current directory as last known path */ + config_PutPsz( p_intf, "qt-discdialog-path", + qtu( ui.deviceCombo->currentText() ) ); +} + /************************************************************************** * Open Network streams and URL pages * **************************************************************************/ diff --git a/modules/gui/qt4/components/open.hpp b/modules/gui/qt4/components/open.hpp index 944ed72eed..3df559bb40 100644 --- a/modules/gui/qt4/components/open.hpp +++ b/modules/gui/qt4/components/open.hpp @@ -134,6 +134,7 @@ public: DiscOpenPanel( QWidget *, intf_thread_t * ); virtual ~DiscOpenPanel(); virtual void clear() ; + virtual void accept() ; private: Ui::OpenDisk ui; public slots: diff --git a/modules/gui/qt4/qt4.cpp b/modules/gui/qt4/qt4.cpp index 47b1478415..1391c2f273 100644 --- a/modules/gui/qt4/qt4.cpp +++ b/modules/gui/qt4/qt4.cpp @@ -5,6 +5,7 @@ * $Id$ * * Authors: Clément Stenac + * Jean-Baptiste Kempf * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -69,7 +70,9 @@ static void ShowDialog ( intf_thread_t *, int, int, intf_dialog_args_t * ); #define TITLE_LONGTEXT N_("Show the name of the song or video in the " \ "controler window title") -#define FILEDIALOG_PATH_TEXT N_("Path to use in file dialog") +#define FILEDIALOG_PATH_TEXT N_("Path to use in openfile dialog") + +#define DISCDIALOG_PATH_TEXT N_("Path to device to use in open disc dialog") #define NOTIFICATION_TEXT N_("Show notification popup on track change") #define NOTIFICATION_LONGTEXT N_( \ @@ -124,6 +127,10 @@ vlc_module_begin(); FILEDIALOG_PATH_TEXT, VLC_TRUE); change_autosave(); change_internal(); + add_string( "qt-discdialog-path", NULL, NULL, DISCDIALOG_PATH_TEXT, + DISCDIALOG_PATH_TEXT, VLC_TRUE); + change_autosave(); + change_internal(); add_bool( "qt-notification", VLC_TRUE, NULL, NOTIFICATION_TEXT, NOTIFICATION_LONGTEXT, VLC_FALSE ); @@ -145,7 +152,6 @@ vlc_module_begin(); set_callbacks( OpenDialogs, Close ); vlc_module_end(); - /***************************************************************************** * Module callbacks *****************************************************************************/