do reset m_count to 0 after deleting all the items in the control (was broken by last commit)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@31645 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2005-01-29 21:26:25 +00:00
parent bc5f4d9899
commit 07763c990e

View File

@@ -480,8 +480,6 @@ void wxListCtrl::FreeAllInternalData()
m_ignoreChangeMessages = false; m_ignoreChangeMessages = false;
m_AnyInternalData = false; m_AnyInternalData = false;
m_count = 0;
} }
} }
@@ -497,9 +495,12 @@ wxListCtrl::~wxListCtrl()
m_textCtrl = NULL; m_textCtrl = NULL;
} }
if (m_ownsImageListNormal) delete m_imageListNormal; if (m_ownsImageListNormal)
if (m_ownsImageListSmall) delete m_imageListSmall; delete m_imageListNormal;
if (m_ownsImageListState) delete m_imageListState; if (m_ownsImageListSmall)
delete m_imageListSmall;
if (m_ownsImageListState)
delete m_imageListState;
} }
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
@@ -1925,10 +1926,12 @@ bool wxListCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result)
break; break;
case LVN_DELETEITEM: case LVN_DELETEITEM:
if (m_count == 0) if ( m_count == 0 )
// this should be prevented by the post-processing code below, {
// but "just in case" // this should be prevented by the post-processing code
// below, but "just in case"
return false; return false;
}
eventType = wxEVT_COMMAND_LIST_DELETE_ITEM; eventType = wxEVT_COMMAND_LIST_DELETE_ITEM;
event.m_itemIndex = iItem; event.m_itemIndex = iItem;
@@ -2194,6 +2197,10 @@ bool wxListCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result)
// also, we may free all user data now (couldn't do it before as // also, we may free all user data now (couldn't do it before as
// the user should have access to it in OnDeleteAllItems() handler) // the user should have access to it in OnDeleteAllItems() handler)
FreeAllInternalData(); FreeAllInternalData();
// the control is empty now, synchronize the cached number of items
// with the real one
m_count = 0;
return true; return true;
case LVN_ENDLABELEDITA: case LVN_ENDLABELEDITA: