]> git.sesse.net Git - vlc/commitdiff
Qt4 - try to remember latest open disc path.
authorJean-Baptiste Kempf <jb@videolan.org>
Tue, 23 Oct 2007 04:05:06 +0000 (04:05 +0000)
committerJean-Baptiste Kempf <jb@videolan.org>
Tue, 23 Oct 2007 04:05:06 +0000 (04:05 +0000)
modules/gui/qt4/components/open.cpp
modules/gui/qt4/components/open.hpp
modules/gui/qt4/qt4.cpp

index dfc819803e0d54365866b1fd2ed05aad1d4f2f33..b3a3b2afc15348d6bcfc3113c9ab7517086481dd 100644 (file)
@@ -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 <zorglub@videolan.org>
@@ -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                                     *
  **************************************************************************/
index 944ed72eed3c258b74b210256f801e093b843038..3df559bb4040e46c38384aabb2f4aaf393c123c0 100644 (file)
@@ -134,6 +134,7 @@ public:
     DiscOpenPanel( QWidget *, intf_thread_t * );
     virtual ~DiscOpenPanel();
     virtual void clear() ;
+    virtual void accept() ;
 private:
     Ui::OpenDisk ui;
 public slots:
index 47b1478415de6e4b4e62c1ab11e550208706238c..1391c2f27366862729c7c52dcec57c2cf2b21613 100644 (file)
@@ -5,6 +5,7 @@
  * $Id$
  *
  * Authors: Clément Stenac <zorglub@videolan.org>
+ *          Jean-Baptiste Kempf <jb@videolan.org>
  *
  * 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
  *****************************************************************************/