]> git.sesse.net Git - vlc/blobdiff - modules/gui/qt4/components/simple_preferences.cpp
Qt4- SImple Preferences. Add file and directory configuration.
[vlc] / modules / gui / qt4 / components / simple_preferences.cpp
index f36a8ee55f6afca55e4fe85d9ab17310240029cb..7bbf48eff5ff0abbed7aaba7539492fd2fea8e75 100644 (file)
@@ -7,6 +7,7 @@
  * Authors: ClĂ©ment Stenac <zorglub@videolan.org>
  *          Antoine Cellerier <dionoea@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
  * the Free Software Foundation; either version 2 of the License, or
@@ -58,11 +59,15 @@ SPrefsCatList::SPrefsCatList( intf_thread_t *_p_intf, QWidget *_parent ) :
 {
     setIconSize( QSize( ITEM_HEIGHT,ITEM_HEIGHT ) );
     setAlternatingRowColors( true );
+    setViewMode(QListView::IconMode);
+    setMaximumWidth(200);
 
-#define ADD_CATEGORY( id, label, icon )                             \
-    addItem( label );                                               \
-    item( id )->setIcon( QIcon( QPixmap( icon ) ) );                \
-    item( id )->setData( Qt::UserRole, qVariantFromValue( (int)id ) );
+#define ADD_CATEGORY( id, label, icon )                                 \
+    addItem( label );                                                   \
+    item( id )->setIcon( QIcon( QPixmap( icon ) ) );                    \
+    item( id )->setData( Qt::UserRole, qVariantFromValue( (int)id ) );  \
+    item( id )->setTextAlignment(Qt::AlignHCenter);                     \
+    item( id )->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
 
     ADD_CATEGORY( SPrefsVideo, qtr("Video"), video_50x50_xpm );
     ADD_CATEGORY( SPrefsAudio, qtr("Audio"), audio_50x50_xpm );
@@ -102,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 )    \
@@ -152,8 +167,8 @@ SPrefsPanel::SPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent,
                     dXdisplayDevice );
 #endif
 
-            CONFIG_GENERIC( "snapshot-path", String, NULL,
-                    snapshotsDirectory ); /* FIXME -> use file instead of string */
+            CONFIG_GENERIC_FILE( "snapshot-path", Directory, NULL,
+                    snapshotsDirectory, snapshotsDirectoryBrowse );
             CONFIG_GENERIC( "snapshot-prefix", String, NULL, snapshotsPrefix );
             CONFIG_GENERIC( "snapshot-sequential", Bool, NULL,
                             snapshotsSequentialNumbering );
@@ -186,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" , String , NULL, OSSDevice );//FIXME File
+         CONFIG_GENERIC_FILE( "dspdev" , File , NULL, OSSDevice, OSSBrowse );
 #else
          CONFIG_GENERIC( "directx-audio-device" , IntegerList, NULL, 
                  DirectXDevice );
 #endif
-         CONFIG_GENERIC( "audiofile-file" , String , NULL, FileName ); //Fixme File
+         CONFIG_GENERIC_FILE( "audiofile-file" , File , NULL, FileName, 
+                 fileBrowseButton );
 
          CONFIG_GENERIC( "headphone-dolby" , Bool , NULL, headphoneEffect );
 //         CONFIG_GENERIC( "" , Bool, NULL, ); activation of normalizer 
@@ -222,12 +238,26 @@ SPrefsPanel::SPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent,
 
         /* Interface Panel */
         START_SPREFS_CAT( Interface, "Interfaces settings" );
-            CONFIG_GENERIC( "language", StringList, NULL, language );
 
+            CONFIG_GENERIC( "language", StringList, NULL, language );
+#if !defined( WIN32 ) && !defined( HAVE_DBUS_3 )
+            ui.OneInterfaceBox->hide();
+#endif
+            /* interface */
+/*            p_config = config_FindConfig( VLC_OBJECT(p_intf), "intf" );
+            if( p_config->value.psz && strcmp( p_config->value.psz, "qt4" ))
+                    ui.qt4->setChecked( true );
+            if( p_config->value.psz && strcmp( p_config->value.psz, "skins2" ))
+                    ui.skins->setChecked( true );*/
 /*            CONFIG_GENERIC( "intf", Module, NULL, ??? ); */ //FIXME interface choice
-            CONFIG_GENERIC ("one-instance", Bool, NULL, OneInterfaceMode );
-            CONFIG_GENERIC ("playlist-enqueue", Bool, NULL, 
+            CONFIG_GENERIC( "qt-always-video", Bool, NULL, qtAlwaysVideo );
+            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, 
                     EnqueueOneInterfaceMode );
+#endif
         END_SPREFS_CAT;
 
         START_SPREFS_CAT( Subtitles, "Subtitles & OSD settings" );
@@ -236,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", String, NULL, font ); /* FIXME -> use file instead of string */
+            CONFIG_GENERIC_FILE( "freetype-font", File, NULL, font, 
+                    fontBrowse ); 
             CONFIG_GENERIC( "freetype-color", IntegerList, NULL, fontColor );
             CONFIG_GENERIC( "freetype-rel-fontsize", IntegerList, NULL,
                             fontSize );