it) to get informed about the destruction of the child
model in a sorted model. Removed Freed() method used for
that so far.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45627
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
{
public:
wxDataViewListModelNotifier() { }
- virtual ~wxDataViewListModelNotifier() { }
+ virtual ~wxDataViewListModelNotifier() { m_owner = NULL; }
virtual bool RowAppended() = 0;
virtual bool RowPrepended() = 0;
virtual bool ValueChanged( unsigned int col, unsigned int row ) = 0;
virtual bool RowsReordered( unsigned int *new_order ) = 0;
virtual bool Cleared() = 0;
- virtual bool Freed()
- { m_owner = NULL; return true; }
void SetOwner( wxDataViewListModel *owner ) { m_owner = owner; }
wxDataViewListModel *GetOwner() { return m_owner; }
bool ChildCleared();
virtual void Resort();
+
+ void DetachChild();
private:
bool m_ascending;
wxDataViewListModel::~wxDataViewListModel()
{
- wxList::compatibility_iterator node = m_notifiers.GetFirst();
- while (node)
- {
- wxDataViewListModelNotifier* notifier = (wxDataViewListModelNotifier*) node->GetData();
- notifier->Freed();
- node = node->GetNext();
- }
}
bool wxDataViewListModel::RowAppended()
public:
wxDataViewSortedListModelNotifier( wxDataViewSortedListModel *model )
{ m_model = model; }
+
+ ~wxDataViewSortedListModelNotifier()
+ { m_model->DetachChild(); }
virtual bool RowAppended()
{ return m_model->ChildRowAppended(); }
virtual bool Cleared()
{ return m_model->ChildCleared(); }
- virtual bool Freed()
- { m_model->m_child = NULL; return wxDataViewListModelNotifier::Freed(); }
-
wxDataViewSortedListModel *m_model;
};
wxDataViewSortedListModel::~wxDataViewSortedListModel()
{
if (m_child)
- m_child->RemoveNotifier( m_notifierOnChild );
+ m_child->RemoveNotifier( m_notifierOnChild );
+}
+
+void wxDataViewSortedListModel::DetachChild()
+{
+ m_child = NULL;
}
// FIXME
{
public:
wxGtkDataViewListModelNotifier( GtkWxListStore* gtk_store, wxDataViewListModel *wx_model );
+ ~wxGtkDataViewListModelNotifier();
virtual bool RowAppended();
virtual bool RowPrepended();
virtual bool RowsReordered( unsigned int *new_order );
virtual bool Cleared();
- virtual bool Freed()
- {
- m_wx_model = NULL;
- m_gtk_store = NULL;
- return wxDataViewListModelNotifier::Freed();
- }
-
GtkWxListStore *m_gtk_store;
wxDataViewListModel *m_wx_model;
};
m_wx_model = wx_model;
}
+wxGtkDataViewListModelNotifier::~wxGtkDataViewListModelNotifier()
+{
+ m_wx_model = NULL;
+ m_gtk_store = NULL;
+}
+
bool wxGtkDataViewListModelNotifier::RowAppended()
{
unsigned int pos = m_wx_model->GetRowCount()-1;