- wxDataViewItem item( (void*) parent->user_data );
-
- if (!m_wx_model->IsContainer( item ))
- return FALSE;
-
- wxGtkTreeModelNode *parent_node = FindNode( parent );
- BuildBranch( parent_node );
-
- if (parent_node->GetChildCount() == 0)
- return FALSE;
-
- iter->stamp = m_gtk_model->stamp;
- iter->user_data = (gpointer) parent_node->GetChildren().Item( 0 );
+ if (m_wx_model->IsIndexListModel())
+ {
+ // this is a list, nodes have no children
+ if (parent)
+ return FALSE;
+
+ iter->stamp = m_gtk_model->stamp;
+ iter->user_data = (gpointer) -1;
+
+ return TRUE;
+ }
+ else
+ {
+ wxDataViewItem item( (void*) parent->user_data );
+
+ if (!m_wx_model->IsContainer( item ))
+ return FALSE;
+
+ wxGtkTreeModelNode *parent_node = FindNode( parent );
+ BuildBranch( parent_node );
+
+ if (parent_node->GetChildCount() == 0)
+ return FALSE;
+
+ iter->stamp = m_gtk_model->stamp;
+ iter->user_data = (gpointer) parent_node->GetChildren().Item( 0 );
+ }