1789
1789
bool wxGtkDataViewModelNotifier::Cleared()
1791
GtkWxTreeModel *wxgtk_model = m_internal->GetGtkModel();
1793
// There is no call to tell the model that everything
1794
// has been deleted so call row_deleted() for every
1797
int count = m_internal->iter_n_children( NULL ); // number of children of root
1799
GtkTreePath *path = gtk_tree_path_new_first(); // points to root
1801
// It is important to avoid selection changed events being generated from
1802
// here as they would reference the already deleted model items, which
1803
// would result in crashes in any code attempting to handle these events.
1804
m_internal->GtkDisableSelectionEvents();
1806
// We also need to prevent wxGtkTreeCellDataFunc from using the model items
1807
// not existing any longer, so change the model stamp to indicate that it
1808
// temporarily can't be used.
1809
const gint stampOrig = wxgtk_model->stamp;
1810
wxgtk_model->stamp = 0;
1813
for (i = 0; i < count; i++)
1814
gtk_tree_model_row_deleted( GTK_TREE_MODEL(wxgtk_model), path );
1816
gtk_tree_path_free( path );
1818
wxgtk_model->stamp = stampOrig;
1820
m_internal->Cleared();
1822
m_internal->GtkEnableSelectionEvents();
1791
return BeforeReset() && AfterReset();
1827
1794
// ---------------------------------------------------------