mirror of
https://code.videolan.org/videolan/vlc
synced 2024-10-03 01:31:53 +02:00
qt: enable creating controls in box layouts
Needed shortly for the editing dialog of 'expert' prefs mode. Note that I have not implemented it for `KeySelectorControl` since I intend to exclude hotkeys entirely from expert mode.
This commit is contained in:
parent
7f35d0fcfd
commit
3eb4edb38e
@ -85,8 +85,7 @@ QString formatTooltip(const QString & tooltip)
|
||||
}
|
||||
|
||||
ConfigControl *ConfigControl::createControl( module_config_t *p_item,
|
||||
QWidget *parent,
|
||||
QGridLayout *l, int line )
|
||||
QWidget *parent )
|
||||
{
|
||||
ConfigControl *p_control = NULL;
|
||||
|
||||
@ -144,10 +143,29 @@ ConfigControl *ConfigControl::createControl( module_config_t *p_item,
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if ( p_control ) p_control->insertInto( l, line );
|
||||
return p_control;
|
||||
}
|
||||
|
||||
ConfigControl *ConfigControl::createControl( module_config_t *item,
|
||||
QWidget *parent,
|
||||
QGridLayout *l, int line )
|
||||
{
|
||||
ConfigControl *control = createControl( item, parent );
|
||||
if ( control )
|
||||
control->insertInto( l, line );
|
||||
return control;
|
||||
}
|
||||
|
||||
ConfigControl *ConfigControl::createControl( module_config_t *item,
|
||||
QWidget *parent,
|
||||
QBoxLayout *l, int index )
|
||||
{
|
||||
ConfigControl *control = createControl( item, parent );
|
||||
if ( control )
|
||||
control->insertInto( l, index );
|
||||
return control;
|
||||
}
|
||||
|
||||
/*******************************************************
|
||||
* Simple widgets
|
||||
*******************************************************/
|
||||
@ -222,6 +240,12 @@ void StringConfigControl::insertInto( QGridLayout *l, int line )
|
||||
l->addWidget( text, line, LAST_COLUMN, Qt::AlignRight );
|
||||
}
|
||||
|
||||
void StringConfigControl::insertInto( QBoxLayout *l, int index )
|
||||
{
|
||||
l->insertWidget( index, label );
|
||||
l->insertWidget( index + 1, text );
|
||||
}
|
||||
|
||||
void StringConfigControl::finish()
|
||||
{
|
||||
text->setText( qfu(p_item->value.psz) );
|
||||
@ -305,6 +329,16 @@ void FileConfigControl::insertInto( QGridLayout *l, int line )
|
||||
l->addLayout( textAndButton, line, LAST_COLUMN );
|
||||
}
|
||||
|
||||
void FileConfigControl::insertInto( QBoxLayout *l, int index )
|
||||
{
|
||||
l->insertWidget( index, label );
|
||||
QHBoxLayout *textAndButton = new QHBoxLayout();
|
||||
textAndButton->setMargin( 0 );
|
||||
textAndButton->addWidget( text, 2 );
|
||||
textAndButton->addWidget( browse, 0 );
|
||||
l->insertLayout( index + 1, textAndButton );
|
||||
}
|
||||
|
||||
void FileConfigControl::updateField()
|
||||
{
|
||||
QString file;
|
||||
@ -406,6 +440,12 @@ void FontConfigControl::insertInto( QGridLayout *l, int line )
|
||||
l->addWidget( font, line, 1, 1, -1 );
|
||||
}
|
||||
|
||||
void FontConfigControl::insertInto( QBoxLayout *l, int index )
|
||||
{
|
||||
l->insertWidget( index, label );
|
||||
l->insertWidget( index + 1, font );
|
||||
}
|
||||
|
||||
void FontConfigControl::changeVisibility( bool visible )
|
||||
{
|
||||
font->setVisible( visible );
|
||||
@ -453,6 +493,12 @@ void StringListConfigControl::insertInto( QGridLayout *l, int line )
|
||||
l->addWidget( combo, line, LAST_COLUMN, Qt::AlignRight );
|
||||
}
|
||||
|
||||
void StringListConfigControl::insertInto( QBoxLayout *l, int index )
|
||||
{
|
||||
l->insertWidget( index, label );
|
||||
l->insertWidget( index + 1, combo );
|
||||
}
|
||||
|
||||
void StringListConfigControl::comboIndexChanged( int i_index )
|
||||
{
|
||||
Q_UNUSED( i_index );
|
||||
@ -572,6 +618,12 @@ void ModuleConfigControl::insertInto( QGridLayout *l, int line )
|
||||
l->addWidget( combo, line, LAST_COLUMN );
|
||||
}
|
||||
|
||||
void ModuleConfigControl::insertInto( QBoxLayout *l, int index )
|
||||
{
|
||||
l->insertWidget( index, label );
|
||||
l->insertWidget( index + 1, combo );
|
||||
}
|
||||
|
||||
void ModuleConfigControl::finish( )
|
||||
{
|
||||
combo->setEditable( false );
|
||||
@ -665,6 +717,11 @@ void ModuleListConfigControl::insertInto( QGridLayout *l, int line )
|
||||
l->addWidget( groupBox, line, 0, 1, -1 );
|
||||
}
|
||||
|
||||
void ModuleListConfigControl::insertInto( QBoxLayout *l, int index )
|
||||
{
|
||||
l->insertWidget( index, groupBox );
|
||||
}
|
||||
|
||||
ModuleListConfigControl::~ModuleListConfigControl()
|
||||
{
|
||||
foreach ( checkBoxListItem *it, modules )
|
||||
@ -822,6 +879,12 @@ void IntegerConfigControl::insertInto( QGridLayout *l, int line )
|
||||
l->addWidget( spin, line, LAST_COLUMN, Qt::AlignRight );
|
||||
}
|
||||
|
||||
void IntegerConfigControl::insertInto( QBoxLayout *l, int index )
|
||||
{
|
||||
l->insertWidget( index, label );
|
||||
l->insertWidget( index + 1, spin );
|
||||
}
|
||||
|
||||
void IntegerConfigControl::finish()
|
||||
{
|
||||
spin->setMaximum( 2000000000 );
|
||||
@ -904,7 +967,6 @@ int IntegerRangeSliderConfigControl::getValue() const
|
||||
return slider->value();
|
||||
}
|
||||
|
||||
|
||||
/********* Integer / choice list **********/
|
||||
IntegerListConfigControl::IntegerListConfigControl( module_config_t *_p_item,
|
||||
QWidget *p ) :
|
||||
@ -940,7 +1002,13 @@ void IntegerListConfigControl::insertInto( QGridLayout *l, int line )
|
||||
l->addWidget( combo, line, LAST_COLUMN, Qt::AlignRight );
|
||||
}
|
||||
|
||||
void IntegerListConfigControl::finish(module_config_t *p_module_config )
|
||||
void IntegerListConfigControl::insertInto( QBoxLayout *l, int index )
|
||||
{
|
||||
l->insertWidget( index, label );
|
||||
l->insertWidget( index + 1, combo );
|
||||
}
|
||||
|
||||
void IntegerListConfigControl::finish( module_config_t *p_module_config )
|
||||
{
|
||||
combo->setEditable( false );
|
||||
|
||||
@ -1004,6 +1072,11 @@ void BoolConfigControl::insertInto( QGridLayout *l, int line )
|
||||
l->addWidget( checkbox, line, 0, 1, -1 );
|
||||
}
|
||||
|
||||
void BoolConfigControl::insertInto( QBoxLayout *l, int index )
|
||||
{
|
||||
l->insertWidget( index, checkbox );
|
||||
}
|
||||
|
||||
void BoolConfigControl::finish()
|
||||
{
|
||||
checkbox->setChecked( p_item->value.i );
|
||||
@ -1047,6 +1120,12 @@ void ColorConfigControl::insertInto( QGridLayout *l, int line )
|
||||
l->addWidget( color_but, line, LAST_COLUMN, Qt::AlignRight );
|
||||
}
|
||||
|
||||
void ColorConfigControl::insertInto( QBoxLayout *l, int index )
|
||||
{
|
||||
l->insertWidget( index, label );
|
||||
l->insertWidget( index + 1, color_but );
|
||||
}
|
||||
|
||||
void ColorConfigControl::finish()
|
||||
{
|
||||
i_color = p_item->value.i;
|
||||
@ -1129,6 +1208,12 @@ void FloatConfigControl::insertInto( QGridLayout *l, int line )
|
||||
l->addWidget( spin, line, LAST_COLUMN, Qt::AlignRight );
|
||||
}
|
||||
|
||||
void FloatConfigControl::insertInto( QBoxLayout *l, int index )
|
||||
{
|
||||
l->insertWidget( index, label );
|
||||
l->insertWidget( index + 1, spin );
|
||||
}
|
||||
|
||||
void FloatConfigControl::finish()
|
||||
{
|
||||
spin->setMaximum( 2000000000. );
|
||||
|
@ -85,10 +85,15 @@ public:
|
||||
void hide() { changeVisibility( false ); }
|
||||
void show() { changeVisibility( true ); }
|
||||
/* ConfigControl factory */
|
||||
static ConfigControl * createControl( module_config_t*, QWidget* );
|
||||
static ConfigControl * createControl( module_config_t*, QWidget*,
|
||||
QGridLayout *, int line = 0 );
|
||||
static ConfigControl * createControl( module_config_t*, QWidget*,
|
||||
QBoxLayout *, int line = 0 );
|
||||
/** Inserts control into an existing grid layout */
|
||||
virtual void insertInto( QGridLayout*, int row = 0 ) { Q_UNUSED( row ); }
|
||||
/** Inserts control into an existing box layout */
|
||||
virtual void insertInto( QBoxLayout*, int index = 0 ) { Q_UNUSED( index ); }
|
||||
virtual void doApply() = 0;
|
||||
protected:
|
||||
ConfigControl( module_config_t *_p_conf ) : p_item( _p_conf ) {}
|
||||
@ -118,6 +123,7 @@ public:
|
||||
IntegerConfigControl( module_config_t *, QWidget * );
|
||||
IntegerConfigControl( module_config_t *, QLabel*, QSpinBox* );
|
||||
void insertInto( QGridLayout*, int row = 0 ) Q_DECL_OVERRIDE;
|
||||
void insertInto( QBoxLayout*, int index = 0 ) Q_DECL_OVERRIDE;
|
||||
int getValue() const Q_DECL_OVERRIDE;
|
||||
protected:
|
||||
QSpinBox *spin;
|
||||
@ -159,6 +165,7 @@ public:
|
||||
IntegerListConfigControl( module_config_t *, QWidget * );
|
||||
IntegerListConfigControl( module_config_t *, QLabel *, QComboBox* );
|
||||
void insertInto( QGridLayout*, int row = 0 ) Q_DECL_OVERRIDE;
|
||||
void insertInto( QBoxLayout*, int index = 0 ) Q_DECL_OVERRIDE;
|
||||
int getValue() const Q_DECL_OVERRIDE;
|
||||
protected:
|
||||
void changeVisibility( bool ) Q_DECL_OVERRIDE;
|
||||
@ -175,6 +182,7 @@ public:
|
||||
BoolConfigControl( module_config_t *, QWidget * );
|
||||
BoolConfigControl( module_config_t *, QLabel *, QAbstractButton* );
|
||||
void insertInto( QGridLayout*, int row = 0 ) Q_DECL_OVERRIDE;
|
||||
void insertInto( QBoxLayout*, int index = 0 ) Q_DECL_OVERRIDE;
|
||||
int getValue() const Q_DECL_OVERRIDE;
|
||||
protected:
|
||||
void changeVisibility( bool ) Q_DECL_OVERRIDE;
|
||||
@ -191,6 +199,7 @@ public:
|
||||
ColorConfigControl( module_config_t *, QLabel *, QAbstractButton* );
|
||||
virtual ~ColorConfigControl() { delete color_px; }
|
||||
void insertInto( QGridLayout*, int row = 0 ) Q_DECL_OVERRIDE;
|
||||
void insertInto( QBoxLayout*, int index = 0 ) Q_DECL_OVERRIDE;
|
||||
int getValue() const Q_DECL_OVERRIDE;
|
||||
protected:
|
||||
void changeVisibility( bool ) Q_DECL_OVERRIDE;
|
||||
@ -224,6 +233,7 @@ public:
|
||||
FloatConfigControl( module_config_t *, QWidget * );
|
||||
FloatConfigControl( module_config_t *, QLabel*, QDoubleSpinBox* );
|
||||
void insertInto( QGridLayout*, int row = 0 ) Q_DECL_OVERRIDE;
|
||||
void insertInto( QBoxLayout*, int index = 0 ) Q_DECL_OVERRIDE;
|
||||
float getValue() const Q_DECL_OVERRIDE;
|
||||
|
||||
protected:
|
||||
@ -265,6 +275,7 @@ public:
|
||||
StringConfigControl( module_config_t *, QWidget * );
|
||||
StringConfigControl( module_config_t *, QLabel *, QLineEdit* );
|
||||
void insertInto( QGridLayout*, int row = 0 ) Q_DECL_OVERRIDE;
|
||||
void insertInto( QBoxLayout*, int index = 0 ) Q_DECL_OVERRIDE;
|
||||
QString getValue() const Q_DECL_OVERRIDE;
|
||||
protected:
|
||||
void changeVisibility( bool ) Q_DECL_OVERRIDE;
|
||||
@ -291,6 +302,7 @@ public:
|
||||
FileConfigControl( module_config_t *, QWidget * );
|
||||
FileConfigControl( module_config_t *, QLabel *, QLineEdit *, QPushButton * );
|
||||
void insertInto( QGridLayout*, int row = 0 ) Q_DECL_OVERRIDE;
|
||||
void insertInto( QBoxLayout*, int index = 0 ) Q_DECL_OVERRIDE;
|
||||
QString getValue() const Q_DECL_OVERRIDE;
|
||||
public slots:
|
||||
virtual void updateField();
|
||||
@ -319,6 +331,7 @@ public:
|
||||
FontConfigControl( module_config_t *, QWidget * );
|
||||
FontConfigControl( module_config_t *, QLabel *, QFontComboBox *);
|
||||
void insertInto( QGridLayout*, int row = 0 ) Q_DECL_OVERRIDE;
|
||||
void insertInto( QBoxLayout*, int index = 0 ) Q_DECL_OVERRIDE;
|
||||
QString getValue() const Q_DECL_OVERRIDE;
|
||||
protected:
|
||||
void changeVisibility( bool ) Q_DECL_OVERRIDE;
|
||||
@ -333,6 +346,7 @@ public:
|
||||
ModuleConfigControl( module_config_t *, QWidget * );
|
||||
ModuleConfigControl( module_config_t *, QLabel *, QComboBox* );
|
||||
void insertInto( QGridLayout*, int row = 0 ) Q_DECL_OVERRIDE;
|
||||
void insertInto( QBoxLayout*, int index = 0 ) Q_DECL_OVERRIDE;
|
||||
QString getValue() const Q_DECL_OVERRIDE;
|
||||
protected:
|
||||
void changeVisibility( bool ) Q_DECL_OVERRIDE;
|
||||
@ -355,6 +369,7 @@ public:
|
||||
ModuleListConfigControl( module_config_t *, QWidget *, bool );
|
||||
virtual ~ModuleListConfigControl();
|
||||
void insertInto( QGridLayout*, int row = 0 ) Q_DECL_OVERRIDE;
|
||||
void insertInto( QBoxLayout*, int index = 0 ) Q_DECL_OVERRIDE;
|
||||
QString getValue() const Q_DECL_OVERRIDE;
|
||||
public slots:
|
||||
void onUpdate();
|
||||
@ -376,6 +391,7 @@ public:
|
||||
StringListConfigControl( module_config_t *, QWidget * );
|
||||
StringListConfigControl( module_config_t *, QLabel *, QComboBox* );
|
||||
void insertInto( QGridLayout*, int row = 0 ) Q_DECL_OVERRIDE;
|
||||
void insertInto( QBoxLayout*, int index = 0 ) Q_DECL_OVERRIDE;
|
||||
QString getValue() const Q_DECL_OVERRIDE;
|
||||
protected:
|
||||
void changeVisibility( bool ) Q_DECL_OVERRIDE;
|
||||
|
Loading…
Reference in New Issue
Block a user