From 7cf4df92859268243193d530041bba0296cd8bb9 Mon Sep 17 00:00:00 2001
From: Antoine Cellerier <dionoea@videolan.org>
Date: Sun, 27 Aug 2006 21:06:28 +0000
Subject: [PATCH] preferences_widgets.*: Bool prefs widget
 simple_preferences.cpp: Audio simple preferences category

---
 .../qt4/components/preferences_widgets.cpp    | 56 +++++++++++++++++++
 .../qt4/components/preferences_widgets.hpp    | 20 +++----
 .../gui/qt4/components/simple_preferences.cpp | 23 +++++++-
 3 files changed, 88 insertions(+), 11 deletions(-)

diff --git a/modules/gui/qt4/components/preferences_widgets.cpp b/modules/gui/qt4/components/preferences_widgets.cpp
index 24178564323f..56150501fbda 100644
--- a/modules/gui/qt4/components/preferences_widgets.cpp
+++ b/modules/gui/qt4/components/preferences_widgets.cpp
@@ -84,6 +84,18 @@ ConfigControl *ConfigControl::createControl( vlc_object_t *p_this,
             p_control = new IntegerConfigControl( p_this, p_item, parent,
                                                   l, line );
         break;
+    case CONFIG_ITEM_FILE:
+        fprintf( stderr, "Todo\n" );
+        break;
+    case CONFIG_ITEM_BOOL:
+        p_control = new BoolConfigControl( p_this, p_item, parent, l, line );
+        break;
+    case CONFIG_ITEM_FLOAT:
+        if( p_item->f_min || p_item->f_max )
+            fprintf( stderr, "Todo\n" );
+        else
+            fprintf( stderr, "Todo\n" );
+        break;
     default:
         break;
     }
@@ -372,3 +384,47 @@ int IntegerListConfigControl::getValue()
 {
     return combo->itemData( combo->currentIndex() ).toInt();
 }
+
+/*********** Boolean **************/
+BoolConfigControl::BoolConfigControl( vlc_object_t *_p_this,
+                                      module_config_t *_p_item,
+                                      QWidget *_parent, QGridLayout *l,
+                                      int line ) :
+                    VIntConfigControl( _p_this, _p_item, _parent )
+{
+    checkbox = new QCheckBox( qfu(p_item->psz_text) );
+    finish();
+
+    if( !l )
+    {
+        QHBoxLayout *layout = new QHBoxLayout();
+        layout->addWidget( checkbox, 0 );
+        widget->setLayout( layout );
+    }
+    else
+    {
+        l->addWidget( checkbox, line, 0 );
+    }
+}
+BoolConfigControl::BoolConfigControl( vlc_object_t *_p_this,
+                                      module_config_t *_p_item,
+                                      QLabel *_label,
+                                      QCheckBox *_checkbox,
+                                      bool bycat ) :
+                   VIntConfigControl( _p_this, _p_item )
+{
+    checkbox = _checkbox;
+    finish();
+}
+
+void BoolConfigControl::finish()
+{
+    checkbox->setCheckState( p_item->i_value == VLC_TRUE ? Qt::Checked
+                                                        : Qt::Unchecked );
+    checkbox->setToolTip( qfu(p_item->psz_longtext) );
+}
+
+int BoolConfigControl::getValue()
+{
+    return checkbox->checkState() == Qt::Checked ? VLC_TRUE : VLC_FALSE;
+}
diff --git a/modules/gui/qt4/components/preferences_widgets.hpp b/modules/gui/qt4/components/preferences_widgets.hpp
index 5e0c59fb90ee..047da15a5ee4 100644
--- a/modules/gui/qt4/components/preferences_widgets.hpp
+++ b/modules/gui/qt4/components/preferences_widgets.hpp
@@ -29,15 +29,11 @@
 #include <QLineEdit>
 #include <QSpinBox>
 #include <QComboBox>
+#include <QCheckBox>
 #include "ui/input_stats.h"
 #include "qt4.hpp"
 #include <assert.h>
 
-class QSpinBox;
-class QString;
-class QComboBox;
-class QCheckBox;
-
 class ConfigControl : public QObject
 {
     Q_OBJECT;
@@ -122,17 +118,21 @@ private:
     QComboBox *combo;
 };
 
-#if 0
 class BoolConfigControl : public VIntConfigControl
 {
 public:
-    IntConfigControl( vlc_object_t *, module_config_t *, QWidget * );
-    virtual ~IntConfigControl();
+    BoolConfigControl( vlc_object_t *, module_config_t *, QWidget *,
+                       QGridLayout *, int );
+    BoolConfigControl( vlc_object_t *, module_config_t *,
+                       QLabel *, QCheckBox*, bool );
+    virtual ~BoolConfigControl() {};
     virtual int getValue();
+    virtual void show() { checkbox->show(); }
+    virtual void hide() { checkbox->hide(); }
 private:
-    wxCheckBox *checkbox;
+    QCheckBox *checkbox;
+    void finish();
 };
-#endif
 
 /*******************************************************
  * Float-based controls
diff --git a/modules/gui/qt4/components/simple_preferences.cpp b/modules/gui/qt4/components/simple_preferences.cpp
index a857e53a63a9..6dc21c0c7106 100644
--- a/modules/gui/qt4/components/simple_preferences.cpp
+++ b/modules/gui/qt4/components/simple_preferences.cpp
@@ -133,9 +133,30 @@ SPrefsPanel::SPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent,
     switch( number )
     {
         START_SPREFS_CAT( Video );
+
+            CONFIG_GENERIC( "video", Bool, NULL, enableVideo );
+
+            CONFIG_GENERIC( "fullscreen", Bool, NULL, fullscreen );
+            CONFIG_GENERIC( "overlay", Bool, NULL, overlay );
+            CONFIG_GENERIC( "video-on-top", Bool, NULL, alwaysOnTop );
+            CONFIG_GENERIC( "video-deco", Bool, NULL, windowDecorations );
+
+            CONFIG_GENERIC( "vout", Module, NULL, outputModule );
+
+            CONFIG_GENERIC( "snapshot-path", String, NULL,
+            snapshotsDirectory ); /* FIXME -> use file instead of string */
+            CONFIG_GENERIC( "snapshot-prefix", String, NULL, snapshotsPrefix );
+            CONFIG_GENERIC( "snapshot-sequential", Bool, NULL,
+                            snapshotsSequentialNumbering );
+            CONFIG_GENERIC( "snapshot-format", StringList, NULL,
+                            snapshotsFormat );
+
         END_SPREFS_CAT;
 
         START_SPREFS_CAT( Audio );
+
+            CONFIG_GENERIC( "audio", Bool, NULL, enableAudio );
+
         END_SPREFS_CAT;
 
         case SPrefsInputAndCodecs: break;
@@ -149,7 +170,7 @@ SPrefsPanel::SPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent,
 
             CONFIG_GENERIC( "subsdec-encoding", StringList, NULL, encoding );
             CONFIG_GENERIC( "sub-language", String, NULL, preferedLanguage );
-            CONFIG_GENERIC( "freetype-font", String, NULL, font );
+            CONFIG_GENERIC( "freetype-font", String, NULL, font ); /* FIXME -> use file instead of string */
             CONFIG_GENERIC( "freetype-color", IntegerList, NULL, fontColor );
             CONFIG_GENERIC( "freetype-rel-fontsize", IntegerList, NULL,
                             fontSize );
-- 
GitLab