unsigned int r;
for (r = 0; r < row; r++)
{
- const wxDataViewTreeNode* node = GetTreeNodeByRow(r);
- if (!node) return start;
+ const wxDataViewTreeNode* node = GetTreeNodeByRow(r);
+ if (!node) return start;
- wxDataViewItem item = node->GetItem();
+ wxDataViewItem item = node->GetItem();
- unsigned int cols = GetOwner()->GetColumnCount();
- unsigned int col;
- int height = m_lineHeight;
- for (col = 0; col < cols; col++)
- {
+ if (node && !node->HasChildren())
+ {
+ // Yes, if the node does not have any child, it must be a leaf which
+ // mean that it is a temporarily created by GetTreeNodeByRow
+ wxDELETE(node)
+ }
+
+ unsigned int cols = GetOwner()->GetColumnCount();
+ unsigned int col;
+ int height = m_lineHeight;
+ for (col = 0; col < cols; col++)
+ {
const wxDataViewColumn *column = GetOwner()->GetColumn(col);
if (column->IsHidden())
continue; // skip it!
wxDataViewRenderer *renderer2 = const_cast<wxDataViewRenderer*>(renderer);
renderer2->SetValue( value );
height = wxMax( height, renderer->GetSize().y );
- }
+ }
+
- start += height;
+ start += height;
}
return start;
wxDataViewItem item = node->GetItem();
+ if (node && !node->HasChildren())
+ {
+ // Yes, if the node does not have any child, it must be a leaf which
+ // mean that it is a temporarily created by GetTreeNodeByRow
+ wxDELETE(node)
+ }
+
unsigned int cols = GetOwner()->GetColumnCount();
unsigned int col;
int height = m_lineHeight;
wxDataViewItem item = node->GetItem();
+ if (node && !node->HasChildren())
+ {
+ // Yes, if the node does not have any child, it must be a leaf which
+ // mean that it is a temporarily created by GetTreeNodeByRow
+ wxDELETE(node)
+ }
+
int height = m_lineHeight;
unsigned int cols = GetOwner()->GetColumnCount();