This model was comparing its items by their positions in the list instead of
their values for some reason. This broke sorting in wxDataViewListCtrl using
this model and simply didn't make any sense.
Just remove the comparison code from wxDataViewIndexListModel entirely, the
base class version works just fine for it.
Closes #14116.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71055
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
virtual unsigned GetRow( const wxDataViewItem &item ) const;
wxDataViewItem GetItem( unsigned int row ) const;
- // compare based on index
-
- virtual int Compare( const wxDataViewItem &item1, const wxDataViewItem &item2,
- unsigned int column, bool ascending ) const;
- virtual bool HasDefaultCompare() const;
-
// implement base methods
virtual unsigned int GetChildren( const wxDataViewItem &item, wxDataViewItemArray &children ) const;
return wxDataViewItem( m_hash[row] );
}
-bool wxDataViewIndexListModel::HasDefaultCompare() const
-{
- return !m_ordered;
-}
-
-int wxDataViewIndexListModel::Compare(const wxDataViewItem& item1,
- const wxDataViewItem& item2,
- unsigned int WXUNUSED(column),
- bool ascending) const
-{
- if (m_ordered)
- {
- unsigned int pos1 = wxPtrToUInt(item1.GetID()); // -1 not needed here
- unsigned int pos2 = wxPtrToUInt(item2.GetID()); // -1 not needed here
-
- if (ascending)
- return pos1 - pos2;
- else
- return pos2 - pos1;
- }
-
- if (ascending)
- return GetRow(item1) - GetRow(item2);
-
- return GetRow(item2) - GetRow(item1);
-}
-
unsigned int wxDataViewIndexListModel::GetChildren( const wxDataViewItem &item, wxDataViewItemArray &children ) const
{
if (item.IsOk())