]> git.sesse.net Git - vlc/blobdiff - modules/gui/qt4/components/simple_preferences.cpp
Qt4 - Preferences : Reset preferences.
[vlc] / modules / gui / qt4 / components / simple_preferences.cpp
index 724627e549ee683f45d2a24767939162ebf32ade..59f5211edb00d6f57ba4ae5515b22a84690171c4 100644 (file)
@@ -33,7 +33,6 @@
 #include "qt4.hpp"
 
 #include <vlc_config_cat.h>
-#include <assert.h>
 
 #include "pixmaps/hotkeys_50x50.xpm"
 #include "pixmaps/audio_50x50.xpm"
@@ -49,7 +48,7 @@
 #include "ui/sprefs_hotkeys.h"
 #include "ui/sprefs_interface.h"
 
-#define ITEM_HEIGHT 50
+#define ITEM_HEIGHT 64
 
 /*********************************************************************
  * The List of categories
 SPrefsCatList::SPrefsCatList( intf_thread_t *_p_intf, QWidget *_parent ) :
                                   QListWidget( _parent ), p_intf( _p_intf )
 {
-    setIconSize( QSize( ITEM_HEIGHT,ITEM_HEIGHT ) );
-    setAlternatingRowColors( true );
-    setViewMode(QListView::IconMode);
+    setIconSize( QSize( ITEM_HEIGHT, ITEM_HEIGHT ) );
+    setViewMode(QListView::ListMode);
+    setMovement(QListView::Static);
     setMaximumWidth(200);
+    setSpacing(0);
+    setWordWrap(true);
+    setVerticalScrollMode(QAbstractItemView::ScrollPerPixel);
+    setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+    setAlternatingRowColors( true );
 
-#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 );
+#define ADD_CATEGORY( id, label, icon )                                  \
+    addItem( label );                                                    \
+    item( id )->setIcon( QIcon( ":/pixmaps/" #icon ) )  ;   \
+    item( id )->setTextAlignment( Qt::AlignLeft | Qt::AlignVCenter );      \
+    item( id )->setData( Qt::UserRole, qVariantFromValue( (int)id ) );   \
+    item( id )->setFlags( Qt::ItemIsSelectable | Qt::ItemIsEnabled );
+
+    ADD_CATEGORY( SPrefsInterface, qtr("Interface"),
+                  spref_cone_Interface_64.png );
+    ADD_CATEGORY( SPrefsAudio, qtr("Audio"), spref_cone_Audio_64.png );
+    ADD_CATEGORY( SPrefsVideo, qtr("Video"), spref_cone_Video_64.png );
+    ADD_CATEGORY( SPrefsSubtitles, qtr("Subtitles"),
+                  spref_cone_Subtitles_64.png );
     ADD_CATEGORY( SPrefsInputAndCodecs, qtr("Input and Codecs"),
-                  input_and_codecs_50x50_xpm );
-    ADD_CATEGORY( SPrefsInterface, qtr("Interface"), interface_50x50_xpm );
-    ADD_CATEGORY( SPrefsSubtitles, qtr("Subtitles"), subtitles_50x50_xpm );
-    ADD_CATEGORY( SPrefsHotkeys, qtr("Hotkeys"), hotkeys_50x50_xpm );
+                  spref_cone_Input_64.png );
+    ADD_CATEGORY( SPrefsHotkeys, qtr("Hotkeys"), spref_cone_Hotkeys_64.png );
 
     setCurrentRow( SPrefsInterface );
 }
@@ -107,6 +113,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 )    \
@@ -126,8 +142,8 @@ SPrefsPanel::SPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent,
     // Title Label
     QLabel *panel_label = new QLabel;
     QFont labelFont = QApplication::font( static_cast<QWidget*>(0) );
-    labelFont.setPointSize( labelFont.pointSize() + 4 );
-    labelFont.setBold( true );
+    labelFont.setPointSize( labelFont.pointSize() + 6 );
+    labelFont.setFamily( "Verdana" );
     panel_label->setFont( labelFont );
 
     // Title <hr>
@@ -157,8 +173,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 );
@@ -191,14 +207,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 
@@ -229,8 +244,11 @@ 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" ))
@@ -239,11 +257,13 @@ 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", String, NULL, fileSkin); 
-                    //FIXME File
+            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" );
@@ -252,8 +272,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 );