Commit 5a9b7f9d authored by Jean-Baptiste Kempf's avatar Jean-Baptiste Kempf

Qt4 - Open dialog: fix segfault on capture cards and fix the problematic layout on Win32.

parent ebc34a37
......@@ -909,7 +909,6 @@ CaptureOpenPanel::CaptureOpenPanel( QWidget *_parent, intf_thread_t *_p_intf ) :
CaptureOpenPanel::~CaptureOpenPanel()
{
if( adv ) delete adv;
}
void CaptureOpenPanel::clear()
......@@ -1046,37 +1045,42 @@ void CaptureOpenPanel::updateButtons()
break;
}
if( adv )
{
delete adv;
advMRL.clear();
}
}
void CaptureOpenPanel::advancedDialog()
{
/* Get selected device type */
int i_devicetype = ui.deviceCombo->itemData(
ui.deviceCombo->currentIndex() ).toInt();
/* Get the corresponding module */
module_t *p_module =
module_Find( VLC_OBJECT(p_intf), psz_devModule[i_devicetype] );
if( NULL == p_module ) return;
unsigned int i_confsize;
/* Init */
QList<ConfigControl *> controls;
/* Get the confsize */
unsigned int i_confsize;
module_config_t *p_config;
p_config = module_GetConfig( p_module, &i_confsize );
/* New Adv Prop dialog */
adv = new QDialog( this );
adv->setWindowTitle( qtr( "Advanced options..." ) );
/* A main Layout with a Frame */
QVBoxLayout *mainLayout = new QVBoxLayout( adv );
//TODO QScrollArea
QFrame *advFrame = new QFrame;
mainLayout->addWidget( advFrame );
/* GridLayout inside the Frame */
QGridLayout *gLayout = new QGridLayout( advFrame );
/* Create the options inside the FrameLayout */
for( int n = 0; n < i_confsize; n++ )
{
module_config_t *p_item = p_config + n;
......@@ -1085,17 +1089,7 @@ void CaptureOpenPanel::advancedDialog()
controls.append( config );
}
/* QGroupBox *optionGroup = new QGroupBox( qtr( "Advanced options..." ) );
QHBoxLayout *grLayout = new QHBoxLayout( optionGroup );
QLabel *optionLabel = new QLabel( qtr( "Options" ) + ":" );
grLayout->addWidget( optionLabel );
QLineEdit *optionLine = new QLineEdit;
grLayout->addWidget( optionLine );
gLayout->addWidget( optionGroup, i_confsize, 0, 1, -1 );*/
/* Button stuffs */
QDialogButtonBox *advButtonBox = new QDialogButtonBox( adv );
QPushButton *closeButton = new QPushButton( qtr( "Ok" ) );
QPushButton *cancelButton = new QPushButton( qtr( "Cancel" ) );
......@@ -1108,6 +1102,7 @@ void CaptureOpenPanel::advancedDialog()
gLayout->addWidget( advButtonBox, i_confsize + 1, 0, 1, -1 );
/* Creation of the MRL */
if( adv->exec() )
{
QString tempMRL = "";
......@@ -1123,7 +1118,7 @@ void CaptureOpenPanel::advancedDialog()
tempMRL += (i ? " :" : ":");
if( control->getType() == CONFIG_ITEM_BOOL )
if( !( qobject_cast<VIntConfigControl *>(control)->getValue() ) )
if( !(qobject_cast<VIntConfigControl *>(control)->getValue() ) )
tempMRL += "no-";
tempMRL += control->getName();
......@@ -1145,7 +1140,9 @@ void CaptureOpenPanel::advancedDialog()
}
}
advMRL = tempMRL;
msg_Dbg( p_intf, "%s", qtu( advMRL ) );
updateMRL();
msg_Dbg( p_intf, "%s", qtu( advMRL ) );
}
delete adv;
}
......@@ -9,8 +9,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>450</width>
<height>296</height>
<width>432</width>
<height>285</height>
</rect>
</property>
<property name="sizePolicy" >
......@@ -22,8 +22,8 @@
<property name="windowTitle" >
<string>Dialog</string>
</property>
<layout class="QVBoxLayout" >
<item>
<layout class="QGridLayout" >
<item row="0" column="0" colspan="2" >
<widget class="QTabWidget" name="Tab" >
<property name="sizePolicy" >
<sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
......@@ -36,7 +36,7 @@
</property>
</widget>
</item>
<item>
<item row="1" column="0" colspan="2" >
<widget class="QCheckBox" name="advancedCheckBox" >
<property name="toolTip" >
<string>_("Show extended options")</string>
......@@ -46,7 +46,7 @@
</property>
</widget>
</item>
<item>
<item row="2" column="0" colspan="2" >
<widget class="QFrame" name="advancedFrame" >
<property name="sizePolicy" >
<sizepolicy vsizetype="MinimumExpanding" hsizetype="Minimum" >
......@@ -180,31 +180,7 @@
</layout>
</widget>
</item>
<item>
<spacer>
<property name="orientation" >
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType" >
<enum>QSizePolicy::MinimumExpanding</enum>
</property>
<property name="sizeHint" >
<size>
<width>20</width>
<height>1</height>
</size>
</property>
</spacer>
</item>
<item>
<layout class="QHBoxLayout" >
<property name="spacing" >
<number>6</number>
</property>
<property name="margin" >
<number>0</number>
</property>
<item>
<item row="3" column="0" >
<spacer>
<property name="orientation" >
<enum>Qt::Horizontal</enum>
......@@ -220,7 +196,7 @@
</property>
</spacer>
</item>
<item>
<item row="3" column="1" >
<widget class="QDialogButtonBox" name="buttonsBox" >
<property name="orientation" >
<enum>Qt::Horizontal</enum>
......@@ -231,8 +207,6 @@
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<tabstops>
<tabstop>Tab</tabstop>
......
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