Skip to content

Commit 65ac5a7

Browse files
committedJul 29, 2013
Drag and drop editor: Don't crash with hidden field (Fix #8380)
1 parent 0b92877 commit 65ac5a7

File tree

1 file changed

+25
-22
lines changed

1 file changed

+25
-22
lines changed
 

‎src/gui/qgsattributeeditor.cpp

Lines changed: 25 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1349,34 +1349,37 @@ QWidget* QgsAttributeEditor::createWidgetFromDef( const QgsAttributeEditorElemen
13491349
int fldIdx = fieldDef->idx();
13501350
newWidget = createAttributeEditor( parent, 0, vl, fldIdx, attrs.value( fldIdx, QVariant() ), proxyWidgets );
13511351

1352-
if ( vl->editType( fldIdx ) != QgsVectorLayer::Immutable )
1352+
if ( newWidget )
13531353
{
1354-
if ( newWidget->isEnabled() && vl->isEditable() && vl->fieldEditable( fldIdx ) )
1354+
if ( vl->editType( fldIdx ) != QgsVectorLayer::Immutable )
13551355
{
1356-
newWidget->setEnabled( true );
1357-
}
1358-
else if ( vl->editType( fldIdx ) == QgsVectorLayer::Photo )
1359-
{
1360-
foreach ( QWidget *w, newWidget->findChildren<QWidget *>() )
1356+
if ( newWidget->isEnabled() && vl->isEditable() && vl->fieldEditable( fldIdx ) )
13611357
{
1362-
w->setEnabled( qobject_cast<QLabel *>( w ) ? true : false );
1358+
newWidget->setEnabled( true );
13631359
}
1364-
}
1365-
else if ( vl->editType( fldIdx ) == QgsVectorLayer::WebView )
1366-
{
1367-
foreach ( QWidget *w, newWidget->findChildren<QWidget *>() )
1360+
else if ( vl->editType( fldIdx ) == QgsVectorLayer::Photo )
13681361
{
1369-
if ( qobject_cast<QWebView *>( w ) )
1370-
w->setEnabled( true );
1371-
else if ( qobject_cast<QPushButton *>( w ) && w->objectName() == "openUrl" )
1372-
w->setEnabled( true );
1373-
else
1374-
w->setEnabled( false );
1362+
foreach ( QWidget *w, newWidget->findChildren<QWidget *>() )
1363+
{
1364+
w->setEnabled( qobject_cast<QLabel *>( w ) ? true : false );
1365+
}
1366+
}
1367+
else if ( vl->editType( fldIdx ) == QgsVectorLayer::WebView )
1368+
{
1369+
foreach ( QWidget *w, newWidget->findChildren<QWidget *>() )
1370+
{
1371+
if ( qobject_cast<QWebView *>( w ) )
1372+
w->setEnabled( true );
1373+
else if ( qobject_cast<QPushButton *>( w ) && w->objectName() == "openUrl" )
1374+
w->setEnabled( true );
1375+
else
1376+
w->setEnabled( false );
1377+
}
1378+
}
1379+
else
1380+
{
1381+
newWidget->setEnabled( false );
13751382
}
1376-
}
1377-
else
1378-
{
1379-
newWidget->setEnabled( false );
13801383
}
13811384
}
13821385

0 commit comments

Comments
 (0)
Please sign in to comment.