don't readd items in SetImageList() after changing the control mode, they are supposed to be preserved by wxListCtrl itself (correction for #9484)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60275 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
b7923f2ac1
commit
bd7bd09eb3
@ -304,22 +304,8 @@ void wxListbook::SetImageList(wxImageList *imageList)
|
||||
// If imageList presence has changed, we update the list control view
|
||||
if ( (imageList != NULL) != (GetImageList() != NULL) )
|
||||
{
|
||||
wxArrayString labels;
|
||||
labels.Alloc(GetPageCount());
|
||||
|
||||
wxArrayInt imageIds;
|
||||
imageIds.Alloc(GetPageCount());
|
||||
|
||||
// Preserve the selection which is lost when changing the mode
|
||||
const int oldSel = GetSelection();
|
||||
size_t i;
|
||||
|
||||
// Grab snapshot of all list control items before changing the window
|
||||
// style (which deletes the items)
|
||||
for ( i = 0; i < GetPageCount(); i++ )
|
||||
{
|
||||
labels.Add(GetPageText(i));
|
||||
imageIds.Add(GetPageImage(i));
|
||||
}
|
||||
|
||||
// Update the style to use icon view for images, report view otherwise
|
||||
long style = wxLC_SINGLE_SEL;
|
||||
@ -336,12 +322,6 @@ void wxListbook::SetImageList(wxImageList *imageList)
|
||||
if ( !imageList )
|
||||
list->InsertColumn(0, wxT("Pages"));
|
||||
|
||||
// Add back the list control items
|
||||
for ( i = 0; i < GetPageCount(); i++ )
|
||||
{
|
||||
list->InsertItem(i, labels[i], imageIds[i]);
|
||||
}
|
||||
|
||||
// Restore selection
|
||||
if ( oldSel != wxNOT_FOUND )
|
||||
SetSelection(oldSel);
|
||||
|
Loading…
Reference in New Issue
Block a user