Qt4- SImple Preferences. Add file and directory configuration.
authorJean-Baptiste Kempf <jb@videolan.org>
Wed, 7 Mar 2007 21:23:27 +0000 (21:23 +0000)
committerJean-Baptiste Kempf <jb@videolan.org>
Wed, 7 Mar 2007 21:23:27 +0000 (21:23 +0000)
modules/gui/qt4/components/preferences_widgets.cpp
modules/gui/qt4/components/preferences_widgets.hpp
modules/gui/qt4/components/simple_preferences.cpp
modules/gui/qt4/ui/sprefs_audio.ui

index f79e0ec..15a092e 100644 (file)
@@ -243,11 +243,16 @@ FileConfigControl::FileConfigControl( vlc_object_t *_p_this,
 
 FileConfigControl::FileConfigControl( vlc_object_t *_p_this,
                                    module_config_t *_p_item,
-                                   QLabel *_label, QLineEdit *_text, bool pwd ):
+                                   QLabel *_label, QLineEdit *_text, 
+                                   QPushButton *_button, bool pwd ):
                            VStringConfigControl( _p_this, _p_item )
 {
+    browse = _button;
     text = _text;
     label = _label;
+
+    BUTTONACT( browse, updateField() );
+
     finish( );
 }
 
@@ -275,8 +280,8 @@ DirectoryConfigControl::DirectoryConfigControl( vlc_object_t *_p_this,
 
 DirectoryConfigControl::DirectoryConfigControl( vlc_object_t *_p_this,
                         module_config_t *_p_item, QLabel *_p_label,
-                        QLineEdit *_p_line, bool _pwd ) :
-     FileConfigControl( _p_this, _p_item, _p_label, _p_line, _pwd)
+                        QLineEdit *_p_line, QPushButton *_p_button, bool _pwd ):
+     FileConfigControl( _p_this, _p_item, _p_label, _p_line, _p_button, _pwd)
 {}
 
 
index 9ad8d2d..73ec4f4 100644 (file)
@@ -261,7 +261,7 @@ public:
     FileConfigControl( vlc_object_t *, module_config_t *, QWidget *,
                          QGridLayout *, int&, bool pwd );
     FileConfigControl( vlc_object_t *, module_config_t *, QLabel *,
-                        QLineEdit*, bool pwd );
+                        QLineEdit *, QPushButton *, bool pwd );
     virtual ~FileConfigControl() {};
     virtual QString getValue() { return text->text(); };
     virtual void show() { text->show(); label->show(); browse->show(); }
@@ -283,7 +283,7 @@ public:
     DirectoryConfigControl( vlc_object_t *, module_config_t *, QWidget *,
                          QGridLayout *, int&, bool pwd );
     DirectoryConfigControl( vlc_object_t *, module_config_t *, QLabel *,
-                        QLineEdit*, bool pwd );
+                        QLineEdit *, QPushButton *, bool pwd );
     virtual ~DirectoryConfigControl() {};
     virtual QString getValue() { return text->text(); };
     virtual void show() { text->show(); label->show(); browse->show(); }
index c669484..7bbf48e 100644 (file)
@@ -107,6 +107,16 @@ SPrefsPanel::SPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent,
                 controls.append( control );                               \
             }
 
+#define CONFIG_GENERIC_FILE( option, type, label, qcontrol, qbutton )         \
+                p_config =  config_FindConfig( VLC_OBJECT(p_intf), option );  \
+                if( p_config )                                                \
+                {                                                             \
+                    control =  new type ## ConfigControl( VLC_OBJECT(p_intf), \
+                               p_config, label, ui.qcontrol, ui.qbutton,      \
+                            false );                                          \
+                    controls.append( control );                               \
+                }
+
 
 
 #define START_SPREFS_CAT( name , label )    \
@@ -157,8 +167,8 @@ SPrefsPanel::SPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent,
                     dXdisplayDevice );
 #endif
 
-            CONFIG_GENERIC( "snapshot-path", Directory, NULL,
-                    snapshotsDirectory );
+            CONFIG_GENERIC_FILE( "snapshot-path", Directory, NULL,
+                    snapshotsDirectory, snapshotsDirectoryBrowse );
             CONFIG_GENERIC( "snapshot-prefix", String, NULL, snapshotsPrefix );
             CONFIG_GENERIC( "snapshot-sequential", Bool, NULL,
                             snapshotsSequentialNumbering );
@@ -191,12 +201,13 @@ SPrefsPanel::SPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent,
          CONFIG_GENERIC( "aout" , Module , NULL, outputModule );
 #ifndef WIN32
          CONFIG_GENERIC( "alsadev" , StringList , NULL, alsaDevice );
-         CONFIG_GENERIC( "dspdev" , File , NULL, OSSDevice );
+         CONFIG_GENERIC_FILE( "dspdev" , File , NULL, OSSDevice, OSSBrowse );
 #else
          CONFIG_GENERIC( "directx-audio-device" , IntegerList, NULL, 
                  DirectXDevice );
 #endif
-         CONFIG_GENERIC( "audiofile-file" , File , NULL, FileName ); 
+         CONFIG_GENERIC_FILE( "audiofile-file" , File , NULL, FileName, 
+                 fileBrowseButton );
 
          CONFIG_GENERIC( "headphone-dolby" , Bool , NULL, headphoneEffect );
 //         CONFIG_GENERIC( "" , Bool, NULL, ); activation of normalizer 
@@ -240,7 +251,8 @@ SPrefsPanel::SPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent,
                     ui.skins->setChecked( true );*/
 /*            CONFIG_GENERIC( "intf", Module, NULL, ??? ); */ //FIXME interface choice
             CONFIG_GENERIC( "qt-always-video", Bool, NULL, qtAlwaysVideo );
-            CONFIG_GENERIC( "skins2-last", File, NULL, fileSkin); 
+            CONFIG_GENERIC_FILE( "skins2-last", File, NULL, fileSkin, 
+                    skinBrowse );
 #if defined( WIN32 ) || defined(HAVE_DBUS_3)
             CONFIG_GENERIC( "one-instance", Bool, NULL, OneInterfaceMode );
             CONFIG_GENERIC( "playlist-enqueue", Bool, NULL, 
@@ -254,7 +266,8 @@ SPrefsPanel::SPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent,
             CONFIG_GENERIC( "subsdec-encoding", StringList, NULL, encoding );
             CONFIG_GENERIC( "sub-language", String, NULL, preferredLanguage );
 
-            CONFIG_GENERIC( "freetype-font", File, NULL, font ); 
+            CONFIG_GENERIC_FILE( "freetype-font", File, NULL, font, 
+                    fontBrowse ); 
             CONFIG_GENERIC( "freetype-color", IntegerList, NULL, fontColor );
             CONFIG_GENERIC( "freetype-rel-fontsize", IntegerList, NULL,
                             fontSize );
index 89b90c5..ef87655 100644 (file)
        <widget class="QLineEdit" name="FileName" />
       </item>
       <item row="4" column="2" >
-       <widget class="QPushButton" name="fileBrowseButton_2" >
+       <widget class="QPushButton" name="fileBrowseButton" >
         <property name="text" >
          <string>Browse</string>
         </property>