#include <QScrollArea>
#include <QVBoxLayout>
#include <QHBoxLayout>
+#include <QGridLayout>
#include <QHeaderView>
#define ITEM_HEIGHT 25
global_layout->addWidget( help );
QGroupBox *box = NULL;
- QVBoxLayout *boxlayout = NULL;
+ QGridLayout *boxlayout = NULL;
QScrollArea *scroller= new QScrollArea;
scroller->setFrameStyle( QFrame::NoFrame );
QWidget *scrolled_area = new QWidget;
- QVBoxLayout *layout = new QVBoxLayout();
+ QGridLayout *layout = new QGridLayout();
+ int i_line = 0, i_boxline = 0;
if( p_item ) do
{
if( box )
{
box->setLayout( boxlayout );
- layout->addWidget( box, 1 );
+ layout->addWidget( box, i_line, 0, 1, 2 );
+ i_line++;
}
box = new QGroupBox( qfu(p_item->psz_text) );
- boxlayout = new QVBoxLayout();
+ boxlayout = new QGridLayout();
+ }
+ ConfigControl *control;
+ if( ! box )
+ {
+ control = ConfigControl::createControl( VLC_OBJECT( p_intf ),
+ p_item, NULL, layout, i_line );
+ }
+ else
+ {
+ control = ConfigControl::createControl( VLC_OBJECT( p_intf ),
+ p_item, NULL, boxlayout, i_boxline );
}
-
- ConfigControl *control = ConfigControl::createControl(
- VLC_OBJECT( p_intf ), p_item,
- NULL );
if( !control )
{
continue;
}
- if( !box )
- layout->addWidget( control->getWidget() );
- else
- boxlayout->addWidget( control->getWidget() );
-
+ if( box ) i_boxline++;
+ else i_line++;
controls.append( control );
}
while( !(p_item->i_type == CONFIG_HINT_END ||
if( box )
{
box->setLayout( boxlayout );
- layout->addWidget( box, 1 );
+ layout->addWidget( box, i_line, 0, 1, 2 );
}
vlc_object_release( p_module );
{
if( (*i)->isAdvanced() )
{
- if( !advanced ) some_hidden = true;
- (*i)->getWidget()->setVisible( advanced );
+ if( !advanced )
+ {
+ some_hidden = true;
+ (*i)->hide();
+ }
+ else
+ (*i)->show();
}
}
if( some_hidden_text )
#include <QDoubleSpinBox>
#include <QVariant>
#include <QComboBox>
+#include <QGridLayout>
ConfigControl *ConfigControl::createControl( vlc_object_t *p_this,
module_config_t *p_item,
QWidget *parent )
+{
+ return createControl( p_this, p_item, parent, NULL, 0 );
+}
+
+ConfigControl *ConfigControl::createControl( vlc_object_t *p_this,
+ module_config_t *p_item,
+ QWidget *parent,
+ QGridLayout *l, int line )
{
ConfigControl *p_control = NULL;
if( p_item->psz_current ) return NULL;
switch( p_item->i_type )
{
case CONFIG_ITEM_MODULE:
- p_control = new ModuleConfigControl( p_this, p_item, parent, false );
+ p_control = new ModuleConfigControl( p_this, p_item, parent, false,
+ l, line );
break;
case CONFIG_ITEM_MODULE_CAT:
- p_control = new ModuleConfigControl( p_this, p_item, parent, true );
+ p_control = new ModuleConfigControl( p_this, p_item, parent, true,
+ l, line );
break;
case CONFIG_ITEM_STRING:
if( !p_item->i_list )
- p_control = new StringConfigControl( p_this, p_item, parent,false );
+ p_control = new StringConfigControl( p_this, p_item, parent,
+ l, line, false );
else
fprintf(stderr, "TODO\n" );
break;
else if( p_item->i_min || p_item->i_max )
fprintf( stderr, "Todo\n" );
else
- p_control = new IntegerConfigControl( p_this, p_item, parent );
+ p_control = new IntegerConfigControl( p_this, p_item, parent,
+ l, line );
break;
default:
break;
/*********** String **************/
StringConfigControl::StringConfigControl( vlc_object_t *_p_this,
module_config_t *_p_item,
- QWidget *_parent, bool pwd ) :
+ QWidget *_parent, QGridLayout *l,
+ int line, bool pwd ) :
VStringConfigControl( _p_this, _p_item, _parent )
{
- QLabel *label = new QLabel( qfu(p_item->psz_text) );
+ label = new QLabel( qfu(p_item->psz_text) );
text = new QLineEdit( qfu(p_item->psz_value) );
- finish(label);
+ finish();
- QHBoxLayout *layout = new QHBoxLayout();
- layout->addWidget( label, 0 ); layout->addWidget( text, 1 );
- widget->setLayout( layout );
+ if( !l )
+ {
+ QHBoxLayout *layout = new QHBoxLayout();
+ layout->addWidget( label, 0 ); layout->addWidget( text, 1 );
+ widget->setLayout( layout );
+ }
+ else
+ {
+ l->addWidget( label, line, 0 ); l->addWidget( text, line, 1 );
+ }
}
StringConfigControl::StringConfigControl( vlc_object_t *_p_this,
module_config_t *_p_item,
- QLabel *label, QLineEdit *_text, bool pwd ):
+ QLabel *_label, QLineEdit *_text, bool pwd ):
VStringConfigControl( _p_this, _p_item )
{
text = _text;
- finish( label );
+ label = _label;
+ finish( );
}
-void StringConfigControl::finish( QLabel *label )
+void StringConfigControl::finish()
{
text->setText( qfu(p_item->psz_value) );
text->setToolTip( qfu(p_item->psz_longtext) );
/********* Module **********/
ModuleConfigControl::ModuleConfigControl( vlc_object_t *_p_this,
- module_config_t *_p_item, QWidget *_parent,
- bool bycat ) : VStringConfigControl( _p_this, _p_item, _parent )
+ module_config_t *_p_item, QWidget *_parent, bool bycat,
+ QGridLayout *l, int line) :
+ VStringConfigControl( _p_this, _p_item, _parent )
{
- QLabel *label = new QLabel( qfu(p_item->psz_text) );
+ label = new QLabel( qfu(p_item->psz_text) );
combo = new QComboBox();
- finish( label, bycat );
- QHBoxLayout *layout = new QHBoxLayout();
- layout->addWidget( label ); layout->addWidget( combo );
- widget->setLayout( layout );
+ finish( bycat );
+ if( !l )
+ {
+ QHBoxLayout *layout = new QHBoxLayout();
+ layout->addWidget( label ); layout->addWidget( combo );
+ widget->setLayout( layout );
+ }
+ else
+ {
+ l->addWidget( label, line, 0 );
+ l->addWidget( combo, line, 1, Qt::AlignRight );
+ }
}
ModuleConfigControl::ModuleConfigControl( vlc_object_t *_p_this,
- module_config_t *_p_item, QLabel *label, QComboBox *_combo,
+ module_config_t *_p_item, QLabel *_label, QComboBox *_combo,
bool bycat ) : VStringConfigControl( _p_this, _p_item )
{
combo = _combo;
- finish( label, bycat );
+ label = _label;
+ finish( bycat );
}
-void ModuleConfigControl::finish( QLabel *label, bool bycat )
+void ModuleConfigControl::finish( bool bycat )
{
vlc_list_t *p_list;
module_t *p_parser;
/*********** Integer **************/
IntegerConfigControl::IntegerConfigControl( vlc_object_t *_p_this,
module_config_t *_p_item,
- QWidget *_parent ) :
+ QWidget *_parent, QGridLayout *l,
+ int line ) :
VIntConfigControl( _p_this, _p_item, _parent )
{
- QLabel *label = new QLabel( qfu(p_item->psz_text) );
- spin = new QSpinBox;
- finish( label );
+ label = new QLabel( qfu(p_item->psz_text) );
+ spin = new QSpinBox; spin->setMinimumWidth( 80 );
+ spin->setMaximumWidth( 90 );
+ finish();
- QHBoxLayout *layout = new QHBoxLayout();
- layout->addWidget( label, 0 ); layout->addWidget( spin, 1 );
- widget->setLayout( layout );
+ if( !l )
+ {
+ QHBoxLayout *layout = new QHBoxLayout();
+ layout->addWidget( label, 0 ); layout->addWidget( spin, 1 );
+ widget->setLayout( layout );
+ }
+ else
+ {
+ l->addWidget( label, line, 0 );
+ l->addWidget( spin, line, 1, Qt::AlignRight );
+ }
}
IntegerConfigControl::IntegerConfigControl( vlc_object_t *_p_this,
module_config_t *_p_item,
- QLabel *label, QSpinBox *_spin ) :
+ QLabel *_label, QSpinBox *_spin ) :
VIntConfigControl( _p_this, _p_item )
{
spin = _spin;
- finish(label);
+ label = _label;
+ finish();
}
-void IntegerConfigControl::finish( QLabel *label )
+void IntegerConfigControl::finish()
{
+ spin->setMaximum( 2000000000 );
spin->setValue( p_item->i_value );
spin->setToolTip( qfu(p_item->psz_longtext) );
label->setToolTip( qfu(p_item->psz_longtext) );
#include <vlc/vlc.h>
#include <QWidget>
#include <QLineEdit>
+#include <QSpinBox>
+#include <QComboBox>
#include "ui/input_stats.h"
#include "qt4.hpp"
#include <assert.h>
QString getName() { return qfu( p_item->psz_name ); }
QWidget *getWidget() { assert( widget ); return widget; }
bool isAdvanced() { return p_item->b_advanced; }
+ virtual void hide() { getWidget()->hide(); };
+ virtual void show() { getWidget()->show(); };
static ConfigControl * createControl( vlc_object_t*,
module_config_t*,QWidget* );
+ static ConfigControl * createControl( vlc_object_t*,
+ module_config_t*,QWidget*,
+ QGridLayout *, int);
protected:
vlc_object_t *p_this;
module_config_t *p_item;
class IntegerConfigControl : public VIntConfigControl
{
public:
- IntegerConfigControl( vlc_object_t *, module_config_t *, QWidget * );
+ IntegerConfigControl( vlc_object_t *, module_config_t *, QWidget *,
+ QGridLayout *, int );
IntegerConfigControl( vlc_object_t *, module_config_t *,
QLabel*, QSpinBox* );
virtual ~IntegerConfigControl() {};
virtual int getValue();
+ virtual void show() { spin->show(); label->show(); }
+ virtual void hide() { spin->hide(); label->hide(); }
private:
QSpinBox *spin;
- void finish( QLabel * );
+ QLabel *label;
+ void finish();
};
#if 0
{
public:
StringConfigControl( vlc_object_t *, module_config_t *, QWidget *,
- bool pwd );
+ QGridLayout *, int, bool pwd );
StringConfigControl( vlc_object_t *, module_config_t *, QLabel *,
QLineEdit*, bool pwd );
virtual ~StringConfigControl() {};
virtual QString getValue() { return text->text(); };
+ virtual void show() { text->show(); label->show(); }
+ virtual void hide() { text->hide(); label->hide(); }
private:
- void finish( QLabel * );
+ void finish();
QLineEdit *text;
+ QLabel *label;
};
class ModuleConfigControl : public VStringConfigControl
{
public:
- ModuleConfigControl( vlc_object_t *, module_config_t *, QWidget *, bool
- bycat );
+ ModuleConfigControl( vlc_object_t *, module_config_t *, QWidget *, bool,
+ QGridLayout*, int );
ModuleConfigControl( vlc_object_t *, module_config_t *, QLabel *,
QComboBox*, bool );
virtual ~ModuleConfigControl() {};
virtual QString getValue();
+ virtual void hide() { combo->hide(); label->hide(); }
+ virtual void show() { combo->show(); label->show(); }
private:
- void finish( QLabel *, bool );
+ void finish( bool );
+ QLabel *label;
QComboBox *combo;
};
#if 0