Commit 3f8d1856 authored by Antoine Cellerier's avatar Antoine Cellerier

Skeleton for modules list widgets in the prefs. I'm not working on it atm so i...

Skeleton for modules list widgets in the prefs. I'm not working on it atm so i figure that it's best to commit what's already done.
parent bcbf3337
...@@ -45,13 +45,14 @@ ConfigControl *ConfigControl::createControl( vlc_object_t *p_this, ...@@ -45,13 +45,14 @@ ConfigControl *ConfigControl::createControl( vlc_object_t *p_this,
module_config_t *p_item, module_config_t *p_item,
QWidget *parent ) QWidget *parent )
{ {
return createControl( p_this, p_item, parent, NULL, 0 ); int i=0;
return createControl( p_this, p_item, parent, NULL, i );
} }
ConfigControl *ConfigControl::createControl( vlc_object_t *p_this, ConfigControl *ConfigControl::createControl( vlc_object_t *p_this,
module_config_t *p_item, module_config_t *p_item,
QWidget *parent, QWidget *parent,
QGridLayout *l, int line ) QGridLayout *l, int &line )
{ {
ConfigControl *p_control = NULL; ConfigControl *p_control = NULL;
if( p_item->psz_current ) return NULL; if( p_item->psz_current ) return NULL;
...@@ -66,6 +67,14 @@ ConfigControl *ConfigControl::createControl( vlc_object_t *p_this, ...@@ -66,6 +67,14 @@ ConfigControl *ConfigControl::createControl( vlc_object_t *p_this,
p_control = new ModuleConfigControl( p_this, p_item, parent, true, p_control = new ModuleConfigControl( p_this, p_item, parent, true,
l, line ); l, line );
break; break;
case CONFIG_ITEM_MODULE_LIST:
p_control = new ModuleListConfigControl( p_this, p_item, parent, false,
l, line );
break;
case CONFIG_ITEM_MODULE_LIST_CAT:
p_control = new ModuleListConfigControl( p_this, p_item, parent, true,
l, line );
break;
case CONFIG_ITEM_STRING: case CONFIG_ITEM_STRING:
if( !p_item->i_list ) if( !p_item->i_list )
p_control = new StringConfigControl( p_this, p_item, parent, p_control = new StringConfigControl( p_this, p_item, parent,
...@@ -86,7 +95,10 @@ ConfigControl *ConfigControl::createControl( vlc_object_t *p_this, ...@@ -86,7 +95,10 @@ ConfigControl *ConfigControl::createControl( vlc_object_t *p_this,
l, line ); l, line );
break; break;
case CONFIG_ITEM_FILE: case CONFIG_ITEM_FILE:
fprintf( stderr, "Todo\n" ); fprintf( stderr, "Todo (CONFIG_ITEM_FILE)\n" );
break;
case CONFIG_ITEM_DIRECTORY:
fprintf( stderr, "Todo (CONFIG_ITEM_DIRECTORY)\n" );
break; break;
case CONFIG_ITEM_BOOL: case CONFIG_ITEM_BOOL:
p_control = new BoolConfigControl( p_this, p_item, parent, l, line ); p_control = new BoolConfigControl( p_this, p_item, parent, l, line );
...@@ -139,7 +151,7 @@ void ConfigControl::doApply( intf_thread_t *p_intf ) ...@@ -139,7 +151,7 @@ void ConfigControl::doApply( intf_thread_t *p_intf )
StringConfigControl::StringConfigControl( vlc_object_t *_p_this, StringConfigControl::StringConfigControl( vlc_object_t *_p_this,
module_config_t *_p_item, module_config_t *_p_item,
QWidget *_parent, QGridLayout *l, QWidget *_parent, QGridLayout *l,
int line, bool pwd ) : int &line, bool pwd ) :
VStringConfigControl( _p_this, _p_item, _parent ) VStringConfigControl( _p_this, _p_item, _parent )
{ {
label = new QLabel( qfu(p_item->psz_text) ); label = new QLabel( qfu(p_item->psz_text) );
...@@ -179,7 +191,7 @@ void StringConfigControl::finish() ...@@ -179,7 +191,7 @@ void StringConfigControl::finish()
/********* String / choice list **********/ /********* String / choice list **********/
StringListConfigControl::StringListConfigControl( vlc_object_t *_p_this, StringListConfigControl::StringListConfigControl( vlc_object_t *_p_this,
module_config_t *_p_item, QWidget *_parent, bool bycat, module_config_t *_p_item, QWidget *_parent, bool bycat,
QGridLayout *l, int line) : QGridLayout *l, int &line) :
VStringConfigControl( _p_this, _p_item, _parent ) VStringConfigControl( _p_this, _p_item, _parent )
{ {
label = new QLabel( qfu(p_item->psz_text) ); label = new QLabel( qfu(p_item->psz_text) );
...@@ -233,7 +245,7 @@ QString StringListConfigControl::getValue() ...@@ -233,7 +245,7 @@ QString StringListConfigControl::getValue()
/********* Module **********/ /********* Module **********/
ModuleConfigControl::ModuleConfigControl( vlc_object_t *_p_this, ModuleConfigControl::ModuleConfigControl( vlc_object_t *_p_this,
module_config_t *_p_item, QWidget *_parent, bool bycat, module_config_t *_p_item, QWidget *_parent, bool bycat,
QGridLayout *l, int line) : QGridLayout *l, int &line) :
VStringConfigControl( _p_this, _p_item, _parent ) VStringConfigControl( _p_this, _p_item, _parent )
{ {
label = new QLabel( qfu(p_item->psz_text) ); label = new QLabel( qfu(p_item->psz_text) );
...@@ -311,6 +323,135 @@ QString ModuleConfigControl::getValue() ...@@ -311,6 +323,135 @@ QString ModuleConfigControl::getValue()
return combo->itemData( combo->currentIndex() ).toString(); return combo->itemData( combo->currentIndex() ).toString();
} }
/********* Module list **********/
ModuleListConfigControl::ModuleListConfigControl( vlc_object_t *_p_this,
module_config_t *_p_item, QWidget *_parent, bool bycat,
QGridLayout *l, int &line) :
VStringConfigControl( _p_this, _p_item, _parent )
{
label = new QLabel( qfu(p_item->psz_text) );
text = new QLineEdit();
finish( bycat );
bool pom = false;
if( !l )
{
l = new QGridLayout();
line = 0;
pom = true;
}
for( QVector<QCheckBox*>::iterator it = modules.begin();
it != modules.end(); it++ )
{
l->addWidget( *it, line++, 1 );
}
l->addWidget( label, line, 0 );
l->addWidget( text, line, 1 );
if( pom )
widget->setLayout( l );
}
#if 0
ModuleConfigControl::ModuleConfigControl( vlc_object_t *_p_this,
module_config_t *_p_item, QLabel *_label, QComboBox *_combo,
bool bycat ) : VStringConfigControl( _p_this, _p_item )
{
combo = _combo;
label = _label;
finish( bycat );
}
#endif
ModuleListConfigControl::~ModuleListConfigControl()
{
for( QVector<QCheckBox*>::iterator it = modules.begin();
it != modules.end(); it++ )
{
delete *it;
}
delete label;
delete text;
}
void ModuleListConfigControl::finish( bool bycat )
{
vlc_list_t *p_list;
module_t *p_parser;
/* build a list of available modules */
p_list = vlc_list_find( p_this, VLC_OBJECT_MODULE, FIND_ANYWHERE );
for( int i_index = 0; i_index < p_list->i_count; i_index++ )
{
p_parser = (module_t *)p_list->p_values[i_index].p_object ;
if( bycat )
{
if( !strcmp( p_parser->psz_object_name, "main" ) ) continue;
module_config_t *p_config = p_parser->p_config;
if( p_config ) do
{
/* Hack: required subcategory is stored in i_min */
if( p_config->i_type == CONFIG_SUBCATEGORY &&
p_config->i_value == p_item->i_min )
{
QCheckBox *cb =
new QCheckBox( qfu( p_parser->psz_object_name ) );
cb->setToolTip( qfu(p_parser->psz_longname) );
modules.push_back( cb );
}
} while( p_config->i_type != CONFIG_HINT_END && p_config++ );
}
else if( !strcmp( p_parser->psz_capability, p_item->psz_type ) )
{
QCheckBox *cb =
new QCheckBox( qfu( p_parser->psz_object_name ) );
cb->setToolTip( qfu(p_parser->psz_longname) );
modules.push_back( cb );
}
}
vlc_list_release( p_list );
text->setToolTip( qfu(p_item->psz_longtext) );
if( label )
label->setToolTip( qfu(p_item->psz_longtext) );
}
QString ModuleListConfigControl::getValue()
{
return text->text();
}
void ModuleListConfigControl::hide()
{
for( QVector<QCheckBox*>::iterator it = modules.begin();
it != modules.end(); it++ )
{
(*it)->hide();
}
text->hide();
label->hide();
}
void ModuleListConfigControl::show()
{
for( QVector<QCheckBox*>::iterator it = modules.begin();
it != modules.end(); it++ )
{
(*it)->show();
}
text->show();
label->show();
}
void ModuleListConfigControl::wakeUp_TheUserJustClickedOnSomething( int value )
{
text->clear();
for( QVector<QCheckBox*>::iterator it = modules.begin();
it != modules.end(); it++ )
{
}
}
/************************************************************************** /**************************************************************************
* Integer-based controls * Integer-based controls
*************************************************************************/ *************************************************************************/
...@@ -319,7 +460,7 @@ QString ModuleConfigControl::getValue() ...@@ -319,7 +460,7 @@ QString ModuleConfigControl::getValue()
IntegerConfigControl::IntegerConfigControl( vlc_object_t *_p_this, IntegerConfigControl::IntegerConfigControl( vlc_object_t *_p_this,
module_config_t *_p_item, module_config_t *_p_item,
QWidget *_parent, QGridLayout *l, QWidget *_parent, QGridLayout *l,
int line ) : int &line ) :
VIntConfigControl( _p_this, _p_item, _parent ) VIntConfigControl( _p_this, _p_item, _parent )
{ {
label = new QLabel( qfu(p_item->psz_text) ); label = new QLabel( qfu(p_item->psz_text) );
...@@ -368,7 +509,7 @@ int IntegerConfigControl::getValue() ...@@ -368,7 +509,7 @@ int IntegerConfigControl::getValue()
IntegerRangeConfigControl::IntegerRangeConfigControl( vlc_object_t *_p_this, IntegerRangeConfigControl::IntegerRangeConfigControl( vlc_object_t *_p_this,
module_config_t *_p_item, module_config_t *_p_item,
QWidget *_parent, QGridLayout *l, QWidget *_parent, QGridLayout *l,
int line ) : int &line ) :
IntegerConfigControl( _p_this, _p_item, _parent, l, line ) IntegerConfigControl( _p_this, _p_item, _parent, l, line )
{ {
finish(); finish();
...@@ -391,7 +532,7 @@ void IntegerRangeConfigControl::finish() ...@@ -391,7 +532,7 @@ void IntegerRangeConfigControl::finish()
/********* Integer / choice list **********/ /********* Integer / choice list **********/
IntegerListConfigControl::IntegerListConfigControl( vlc_object_t *_p_this, IntegerListConfigControl::IntegerListConfigControl( vlc_object_t *_p_this,
module_config_t *_p_item, QWidget *_parent, bool bycat, module_config_t *_p_item, QWidget *_parent, bool bycat,
QGridLayout *l, int line) : QGridLayout *l, int &line) :
VIntConfigControl( _p_this, _p_item, _parent ) VIntConfigControl( _p_this, _p_item, _parent )
{ {
label = new QLabel( qfu(p_item->psz_text) ); label = new QLabel( qfu(p_item->psz_text) );
...@@ -443,7 +584,7 @@ int IntegerListConfigControl::getValue() ...@@ -443,7 +584,7 @@ int IntegerListConfigControl::getValue()
BoolConfigControl::BoolConfigControl( vlc_object_t *_p_this, BoolConfigControl::BoolConfigControl( vlc_object_t *_p_this,
module_config_t *_p_item, module_config_t *_p_item,
QWidget *_parent, QGridLayout *l, QWidget *_parent, QGridLayout *l,
int line ) : int &line ) :
VIntConfigControl( _p_this, _p_item, _parent ) VIntConfigControl( _p_this, _p_item, _parent )
{ {
checkbox = new QCheckBox( qfu(p_item->psz_text) ); checkbox = new QCheckBox( qfu(p_item->psz_text) );
...@@ -491,7 +632,7 @@ int BoolConfigControl::getValue() ...@@ -491,7 +632,7 @@ int BoolConfigControl::getValue()
FloatConfigControl::FloatConfigControl( vlc_object_t *_p_this, FloatConfigControl::FloatConfigControl( vlc_object_t *_p_this,
module_config_t *_p_item, module_config_t *_p_item,
QWidget *_parent, QGridLayout *l, QWidget *_parent, QGridLayout *l,
int line ) : int &line ) :
VFloatConfigControl( _p_this, _p_item, _parent ) VFloatConfigControl( _p_this, _p_item, _parent )
{ {
label = new QLabel( qfu(p_item->psz_text) ); label = new QLabel( qfu(p_item->psz_text) );
...@@ -543,7 +684,7 @@ float FloatConfigControl::getValue() ...@@ -543,7 +684,7 @@ float FloatConfigControl::getValue()
FloatRangeConfigControl::FloatRangeConfigControl( vlc_object_t *_p_this, FloatRangeConfigControl::FloatRangeConfigControl( vlc_object_t *_p_this,
module_config_t *_p_item, module_config_t *_p_item,
QWidget *_parent, QGridLayout *l, QWidget *_parent, QGridLayout *l,
int line ) : int &line ) :
FloatConfigControl( _p_this, _p_item, _parent, l, line ) FloatConfigControl( _p_this, _p_item, _parent, l, line )
{ {
finish(); finish();
......
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
#include <QDoubleSpinBox> #include <QDoubleSpinBox>
#include <QComboBox> #include <QComboBox>
#include <QCheckBox> #include <QCheckBox>
#include <QVector>
#include "ui/input_stats.h" #include "ui/input_stats.h"
#include "qt4.hpp" #include "qt4.hpp"
#include <assert.h> #include <assert.h>
...@@ -61,7 +62,7 @@ public: ...@@ -61,7 +62,7 @@ public:
module_config_t*,QWidget* ); module_config_t*,QWidget* );
static ConfigControl * createControl( vlc_object_t*, static ConfigControl * createControl( vlc_object_t*,
module_config_t*,QWidget*, module_config_t*,QWidget*,
QGridLayout *, int); QGridLayout *, int& );
void doApply( intf_thread_t *); void doApply( intf_thread_t *);
protected: protected:
vlc_object_t *p_this; vlc_object_t *p_this;
...@@ -92,7 +93,7 @@ class IntegerConfigControl : public VIntConfigControl ...@@ -92,7 +93,7 @@ class IntegerConfigControl : public VIntConfigControl
{ {
public: public:
IntegerConfigControl( vlc_object_t *, module_config_t *, QWidget *, IntegerConfigControl( vlc_object_t *, module_config_t *, QWidget *,
QGridLayout *, int ); QGridLayout *, int& );
IntegerConfigControl( vlc_object_t *, module_config_t *, IntegerConfigControl( vlc_object_t *, module_config_t *,
QLabel*, QSpinBox* ); QLabel*, QSpinBox* );
virtual ~IntegerConfigControl() {}; virtual ~IntegerConfigControl() {};
...@@ -112,7 +113,7 @@ class IntegerRangeConfigControl : public IntegerConfigControl ...@@ -112,7 +113,7 @@ class IntegerRangeConfigControl : public IntegerConfigControl
{ {
public: public:
IntegerRangeConfigControl( vlc_object_t *, module_config_t *, QWidget *, IntegerRangeConfigControl( vlc_object_t *, module_config_t *, QWidget *,
QGridLayout *, int ); QGridLayout *, int& );
IntegerRangeConfigControl( vlc_object_t *, module_config_t *, IntegerRangeConfigControl( vlc_object_t *, module_config_t *,
QLabel*, QSpinBox* ); QLabel*, QSpinBox* );
private: private:
...@@ -123,7 +124,7 @@ class IntegerListConfigControl : public VIntConfigControl ...@@ -123,7 +124,7 @@ class IntegerListConfigControl : public VIntConfigControl
{ {
public: public:
IntegerListConfigControl( vlc_object_t *, module_config_t *, QWidget *, IntegerListConfigControl( vlc_object_t *, module_config_t *, QWidget *,
bool, QGridLayout*, int ); bool, QGridLayout*, int& );
IntegerListConfigControl( vlc_object_t *, module_config_t *, QLabel *, IntegerListConfigControl( vlc_object_t *, module_config_t *, QLabel *,
QComboBox*, bool ); QComboBox*, bool );
virtual ~IntegerListConfigControl() {}; virtual ~IntegerListConfigControl() {};
...@@ -140,7 +141,7 @@ class BoolConfigControl : public VIntConfigControl ...@@ -140,7 +141,7 @@ class BoolConfigControl : public VIntConfigControl
{ {
public: public:
BoolConfigControl( vlc_object_t *, module_config_t *, QWidget *, BoolConfigControl( vlc_object_t *, module_config_t *, QWidget *,
QGridLayout *, int ); QGridLayout *, int& );
BoolConfigControl( vlc_object_t *, module_config_t *, BoolConfigControl( vlc_object_t *, module_config_t *,
QLabel *, QCheckBox*, bool ); QLabel *, QCheckBox*, bool );
virtual ~BoolConfigControl() {}; virtual ~BoolConfigControl() {};
...@@ -171,7 +172,7 @@ class FloatConfigControl : public VFloatConfigControl ...@@ -171,7 +172,7 @@ class FloatConfigControl : public VFloatConfigControl
{ {
public: public:
FloatConfigControl( vlc_object_t *, module_config_t *, QWidget *, FloatConfigControl( vlc_object_t *, module_config_t *, QWidget *,
QGridLayout *, int ); QGridLayout *, int& );
FloatConfigControl( vlc_object_t *, module_config_t *, FloatConfigControl( vlc_object_t *, module_config_t *,
QLabel*, QDoubleSpinBox* ); QLabel*, QDoubleSpinBox* );
virtual ~FloatConfigControl() {}; virtual ~FloatConfigControl() {};
...@@ -191,7 +192,7 @@ class FloatRangeConfigControl : public FloatConfigControl ...@@ -191,7 +192,7 @@ class FloatRangeConfigControl : public FloatConfigControl
{ {
public: public:
FloatRangeConfigControl( vlc_object_t *, module_config_t *, QWidget *, FloatRangeConfigControl( vlc_object_t *, module_config_t *, QWidget *,
QGridLayout *, int ); QGridLayout *, int& );
FloatRangeConfigControl( vlc_object_t *, module_config_t *, FloatRangeConfigControl( vlc_object_t *, module_config_t *,
QLabel*, QDoubleSpinBox* ); QLabel*, QDoubleSpinBox* );
private: private:
...@@ -217,7 +218,7 @@ class StringConfigControl : public VStringConfigControl ...@@ -217,7 +218,7 @@ class StringConfigControl : public VStringConfigControl
{ {
public: public:
StringConfigControl( vlc_object_t *, module_config_t *, QWidget *, StringConfigControl( vlc_object_t *, module_config_t *, QWidget *,
QGridLayout *, int, bool pwd ); QGridLayout *, int&, bool pwd );
StringConfigControl( vlc_object_t *, module_config_t *, QLabel *, StringConfigControl( vlc_object_t *, module_config_t *, QLabel *,
QLineEdit*, bool pwd ); QLineEdit*, bool pwd );
virtual ~StringConfigControl() {}; virtual ~StringConfigControl() {};
...@@ -234,7 +235,7 @@ class ModuleConfigControl : public VStringConfigControl ...@@ -234,7 +235,7 @@ class ModuleConfigControl : public VStringConfigControl
{ {
public: public:
ModuleConfigControl( vlc_object_t *, module_config_t *, QWidget *, bool, ModuleConfigControl( vlc_object_t *, module_config_t *, QWidget *, bool,
QGridLayout*, int ); QGridLayout*, int& );
ModuleConfigControl( vlc_object_t *, module_config_t *, QLabel *, ModuleConfigControl( vlc_object_t *, module_config_t *, QLabel *,
QComboBox*, bool ); QComboBox*, bool );
virtual ~ModuleConfigControl() {}; virtual ~ModuleConfigControl() {};
...@@ -247,11 +248,32 @@ private: ...@@ -247,11 +248,32 @@ private:
QComboBox *combo; QComboBox *combo;
}; };
class ModuleListConfigControl : public VStringConfigControl
{
Q_OBJECT;
public:
ModuleListConfigControl( vlc_object_t *, module_config_t *, QWidget *,
bool, QGridLayout*, int& );
// ModuleListConfigControl( vlc_object_t *, module_config_t *, QLabel *,
// QComboBox*, bool );
virtual ~ModuleListConfigControl();
virtual QString getValue();
virtual void hide();
virtual void show();
public slots:
void wakeUp_TheUserJustClickedOnSomething( int value );
private:
void finish( bool );
QVector<QCheckBox*> modules;
QLabel *label;
QLineEdit *text;
};
class StringListConfigControl : public VStringConfigControl class StringListConfigControl : public VStringConfigControl
{ {
public: public:
StringListConfigControl( vlc_object_t *, module_config_t *, QWidget *, StringListConfigControl( vlc_object_t *, module_config_t *, QWidget *,
bool, QGridLayout*, int ); bool, QGridLayout*, int& );
StringListConfigControl( vlc_object_t *, module_config_t *, QLabel *, StringListConfigControl( vlc_object_t *, module_config_t *, QLabel *,
QComboBox*, bool ); QComboBox*, bool );
virtual ~StringListConfigControl() {}; virtual ~StringListConfigControl() {};
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment