]> git.sesse.net Git - vlc/blobdiff - modules/gui/qt4/components/preferences_widgets.cpp
Qt: Drop the no longer used sample_classic
[vlc] / modules / gui / qt4 / components / preferences_widgets.cpp
index 5f15961da0a2a847ffa5a79bf2af0b1f1419c4c4..fa697f3f5413ad5d541c014a1946b15977f6f666 100644 (file)
@@ -38,6 +38,7 @@
 #include "util/customwidgets.hpp"
 #include "util/qt_dirs.hpp"
 #include <vlc_keys.h>
+#include <vlc_intf_strings.h>
 
 #include <QString>
 #include <QVariant>
@@ -48,6 +49,7 @@
 #include <QTreeWidgetItem>
 #include <QSignalMapper>
 #include <QDialogButtonBox>
+#include <QKeyEvent>
 
 #define MINWIDTH_BOX 90
 #define LAST_COLUMN 10
@@ -98,9 +100,6 @@ ConfigControl *ConfigControl::createControl( vlc_object_t *p_this,
     case CONFIG_ITEM_MODULE_LIST_CAT:
         p_control = new ModuleListConfigControl( p_this, p_item, parent, true,
                                              l, line );
-        /* Special Hack for a bug in video-filter */
-        if( qobject_cast<ModuleListConfigControl *>( p_control )->groupBox == NULL )
-            return NULL;
         break;
     case CONFIG_ITEM_STRING:
         if( !p_item->i_list )
@@ -206,16 +205,31 @@ InterfacePreviewWidget::InterfacePreviewWidget ( QWidget *parent ) : QLabel( par
     setSizePolicy( QSizePolicy::Fixed, QSizePolicy::Fixed );
 }
 
-void InterfacePreviewWidget::setPreview( int comboid )
+void InterfacePreviewWidget::setNormalPreview( bool b_minimal )
 {
-    /* Need to move resources references as soon as qt4.cpp
-       local defines has been moved somewhere else
-    */
-    const char pixmaps[][28] = { ":/prefsmenu/sample_classic",
-                                 ":/prefsmenu/sample_complete",
-                                 ":/prefsmenu/sample_minimal",
-                                 ":/prefsmenu/sample_skins" };
-    setPixmap( QPixmap( pixmaps[ comboid ] ) );
+    setPreview( ( b_minimal )?MINIMAL:COMPLETE );
+}
+
+void InterfacePreviewWidget::setPreview( enum_style e_style )
+{
+    QString pixmapLocationString(":/prefsmenu/");
+
+    switch( e_style )
+    {
+    default:
+    case COMPLETE:
+        pixmapLocationString += "sample_complete";
+        break;
+    case MINIMAL:
+        pixmapLocationString += "sample_minimal";
+        break;
+    case SKINS:
+        pixmapLocationString += "sample_skins";
+        break;
+    }
+
+    setPixmap( QPixmap( pixmapLocationString ) );
+    update();
 }
 
 
@@ -359,7 +373,7 @@ DirectoryConfigControl::DirectoryConfigControl( vlc_object_t *_p_this,
 void DirectoryConfigControl::updateField()
 {
     QString dir = QFileDialog::getExistingDirectory( NULL,
-                      qtr( "Select Directory" ),
+                      qtr( I_OP_SEL_DIR ),
                       text->text().isEmpty() ?
                         QVLCUserDir( VLC_HOME_DIR ) : text->text(),
                   QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks );
@@ -413,20 +427,6 @@ StringListConfigControl::StringListConfigControl( vlc_object_t *_p_this,
     combo->setSizePolicy( QSizePolicy::MinimumExpanding, QSizePolicy::Preferred );
 
     module_config_t *p_module_config = config_FindConfig( p_this, p_item->psz_name );
-    if(p_module_config && p_module_config->pf_update_list)
-    {
-       vlc_value_t val;
-       val.psz_string = strdup(p_module_config->value.psz);
-
-       p_module_config->pf_update_list(p_this, p_item->psz_name, val, val, NULL);
-
-       // assume in any case that dirty was set to true
-       // because lazy programmes will use the same callback for
-       // this, like the one behind the refresh push button?
-       p_module_config->b_dirty = false;
-
-       free( val.psz_string );
-    }
 
     finish( p_module_config, bycat );
     if( !l )
@@ -499,6 +499,21 @@ void StringListConfigControl::finish(module_config_t *p_module_config, bool byca
 
     if(!p_module_config) return;
 
+    if( p_module_config->pf_update_list )
+    {
+       vlc_value_t val;
+       val.psz_string = strdup(p_module_config->value.psz);
+
+       p_module_config->pf_update_list(p_this, p_item->psz_name, val, val, NULL);
+
+       // assume in any case that dirty was set to true
+       // because lazy programmes will use the same callback for
+       // this, like the one behind the refresh push button?
+       p_module_config->b_dirty = false;
+
+       free( val.psz_string );
+    }
+
     for( int i_index = 0; i_index < p_module_config->i_list; i_index++ )
     {
         combo->addItem( qfu((p_module_config->ppsz_list_text &&
@@ -913,19 +928,6 @@ IntegerListConfigControl::IntegerListConfigControl( vlc_object_t *_p_this,
     combo->setMinimumWidth( MINWIDTH_BOX );
 
     module_config_t *p_module_config = config_FindConfig( p_this, p_item->psz_name );
-    if(p_module_config && p_module_config->pf_update_list)
-    {
-       vlc_value_t val;
-       val.i_int = p_module_config->value.i;
-
-       p_module_config->pf_update_list(p_this, p_item->psz_name, val, val, NULL);
-
-       // assume in any case that dirty was set to true
-       // because lazy programmes will use the same callback for
-       // this, like the one behind the refresh push button?
-       p_module_config->b_dirty = false;
-    }
-
 
     finish( p_module_config, bycat );
     if( !l )
@@ -977,6 +979,19 @@ void IntegerListConfigControl::finish(module_config_t *p_module_config, bool byc
 
     if(!p_module_config) return;
 
+    if( p_module_config->pf_update_list )
+    {
+       vlc_value_t val;
+       val.i_int = p_module_config->value.i;
+
+       p_module_config->pf_update_list(p_this, p_item->psz_name, val, val, NULL);
+
+       // assume in any case that dirty was set to true
+       // because lazy programmes will use the same callback for
+       // this, like the one behind the refresh push button?
+       p_module_config->b_dirty = false;
+    }
+
     for( int i_index = 0; i_index < p_module_config->i_list; i_index++ )
     {
         combo->addItem( qtr(p_module_config->ppsz_list_text[i_index] ),
@@ -1040,6 +1055,7 @@ BoolConfigControl::BoolConfigControl( vlc_object_t *_p_this,
         l->addWidget( checkbox, line, 0 );
     }
 }
+
 BoolConfigControl::BoolConfigControl( vlc_object_t *_p_this,
                                       module_config_t *_p_item,
                                       QLabel *_label,