Fix wxListCtrl::Insert() bug reported by Riccardo Cohen
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56468 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -3107,11 +3107,12 @@ Boolean wxMacDataBrowserListCtrlControl::CompareItems(DataBrowserItemID itemOneI
|
|||||||
wxMacListCtrlItem* otherItem = (wxMacListCtrlItem*)itemTwoID;
|
wxMacListCtrlItem* otherItem = (wxMacListCtrlItem*)itemTwoID;
|
||||||
|
|
||||||
itemOrder = item->GetOrder();
|
itemOrder = item->GetOrder();
|
||||||
otherItemOrder = item->GetOrder();
|
otherItemOrder = otherItem->GetOrder();
|
||||||
|
|
||||||
wxListCtrlCompare func = list->GetCompareFunc();
|
wxListCtrlCompare func = list->GetCompareFunc();
|
||||||
if (func != NULL)
|
if (func != NULL)
|
||||||
{
|
{
|
||||||
|
|
||||||
long item1 = -1;
|
long item1 = -1;
|
||||||
long item2 = -1;
|
long item2 = -1;
|
||||||
if (item && item->HasColumnInfo(0))
|
if (item && item->HasColumnInfo(0))
|
||||||
|
@@ -1038,10 +1038,9 @@ void wxMacDataItemBrowserControl::MacDelete( unsigned int n )
|
|||||||
|
|
||||||
void wxMacDataItemBrowserControl::MacInsert( unsigned int n, wxMacDataItem* item)
|
void wxMacDataItemBrowserControl::MacInsert( unsigned int n, wxMacDataItem* item)
|
||||||
{
|
{
|
||||||
SInt32 frontLineOrder = 0;
|
|
||||||
|
|
||||||
if ( m_sortOrder == SortOrder_None )
|
if ( m_sortOrder == SortOrder_None )
|
||||||
{
|
{
|
||||||
|
|
||||||
// increase the order of the lines to be shifted
|
// increase the order of the lines to be shifted
|
||||||
unsigned int lines = MacGetCount();
|
unsigned int lines = MacGetCount();
|
||||||
for ( unsigned int i = n; i < lines; ++i)
|
for ( unsigned int i = n; i < lines; ++i)
|
||||||
@@ -1049,22 +1048,21 @@ void wxMacDataItemBrowserControl::MacInsert( unsigned int n, wxMacDataItem* item
|
|||||||
wxMacDataItem* iter = (wxMacDataItem*) GetItemFromLine(i);
|
wxMacDataItem* iter = (wxMacDataItem*) GetItemFromLine(i);
|
||||||
iter->SetOrder( iter->GetOrder() + 1 );
|
iter->SetOrder( iter->GetOrder() + 1 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
// I don't understand what this code is supposed to do, RR.
|
||||||
|
SInt32 frontLineOrder = 0;
|
||||||
if ( n > 0 )
|
if ( n > 0 )
|
||||||
{
|
{
|
||||||
wxMacDataItem* iter = (wxMacDataItem*) GetItemFromLine(n-1);
|
wxMacDataItem* iter = (wxMacDataItem*) GetItemFromLine(n-1);
|
||||||
frontLineOrder = iter->GetOrder();
|
frontLineOrder = iter->GetOrder()+1;
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
item->SetOrder( n );
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
wxArrayMacDataItemPtr ids;
|
AddItem( wxMacDataBrowserRootContainer, item );
|
||||||
ids.SetCount( 1 );
|
|
||||||
|
|
||||||
if ( m_sortOrder == SortOrder_None )
|
|
||||||
item->SetOrder( frontLineOrder + 1 );
|
|
||||||
|
|
||||||
ids[0] = item;
|
|
||||||
|
|
||||||
AddItems( wxMacDataBrowserRootContainer, ids );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxMacDataItemBrowserControl::MacClear()
|
void wxMacDataItemBrowserControl::MacClear()
|
||||||
|
Reference in New Issue
Block a user