From 41abc29aa6d7a44cbf4e01b05d239868e216e4af Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Fri, 25 May 2012 17:02:31 +0000 Subject: [PATCH] Use wxUIntPtr instead of wxClientData in wxDataViewListCtrl. Do not delete the client data in wxDataViewListCtrl, this class mainly exists for compatibility with wxListCtrl and as the latter doesn't delete its client data, neither should the former. See #11088. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71561 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- docs/changes.txt | 5 +++++ include/wx/dataview.h | 26 +++++++++++--------------- interface/wx/dataview.h | 12 ++++++------ src/common/datavcmn.cpp | 6 +++--- 4 files changed, 25 insertions(+), 24 deletions(-) diff --git a/docs/changes.txt b/docs/changes.txt index b4bf4a9290..84b20935c6 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -505,6 +505,11 @@ Major new features in this release 2.9.4: ------ +INCOMPATIBLE CHANGES SINCE 2.9.3 + +- wxDataViewListCtrl doesn't delete its client data any more for compatibility + with wxListCtrl, use full wxDataViewCtrl if you don't need compatibility. + All: - Added wxLogFormatter to allow customizing wxLog output (Sébastien Gallou). diff --git a/include/wx/dataview.h b/include/wx/dataview.h index cd7be97bed..234ec4170f 100644 --- a/include/wx/dataview.h +++ b/include/wx/dataview.h @@ -939,24 +939,20 @@ typedef void (wxEvtHandler::*wxDataViewEventFunction)(wxDataViewEvent&); class WXDLLIMPEXP_ADV wxDataViewListStoreLine { public: - wxDataViewListStoreLine( wxClientData *data = NULL ) + wxDataViewListStoreLine( wxUIntPtr data = NULL ) { m_data = data; } - virtual ~wxDataViewListStoreLine() - { - delete m_data; - } - void SetData( wxClientData *data ) - { if (m_data) delete m_data; m_data = data; } - wxClientData *GetData() const + void SetData( wxUIntPtr data ) + { m_data = data; } + wxUIntPtr GetData() const { return m_data; } wxVector m_values; private: - wxClientData *m_data; + wxUIntPtr m_data; }; @@ -970,9 +966,9 @@ public: void InsertColumn( unsigned int pos, const wxString &varianttype ); void AppendColumn( const wxString &varianttype ); - void AppendItem( const wxVector &values, wxClientData *data = NULL ); - void PrependItem( const wxVector &values, wxClientData *data = NULL ); - void InsertItem( unsigned int row, const wxVector &values, wxClientData *data = NULL ); + void AppendItem( const wxVector &values, wxUIntPtr data = NULL ); + void PrependItem( const wxVector &values, wxUIntPtr data = NULL ); + void InsertItem( unsigned int row, const wxVector &values, wxUIntPtr data = NULL ); void DeleteItem( unsigned int pos ); void DeleteAllItems(); @@ -1052,11 +1048,11 @@ public: wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, int width = -1, wxAlignment align = wxALIGN_LEFT, int flags = wxDATAVIEW_COL_RESIZABLE ); - void AppendItem( const wxVector &values, wxClientData *data = NULL ) + void AppendItem( const wxVector &values, wxUIntPtr data = NULL ) { GetStore()->AppendItem( values, data ); } - void PrependItem( const wxVector &values, wxClientData *data = NULL ) + void PrependItem( const wxVector &values, wxUIntPtr data = NULL ) { GetStore()->PrependItem( values, data ); } - void InsertItem( unsigned int row, const wxVector &values, wxClientData *data = NULL ) + void InsertItem( unsigned int row, const wxVector &values, wxUIntPtr data = NULL ) { GetStore()->InsertItem( row, values, data ); } void DeleteItem( unsigned row ) { GetStore()->DeleteItem( row ); } diff --git a/interface/wx/dataview.h b/interface/wx/dataview.h index 9cfd3c3553..5b00916342 100644 --- a/interface/wx/dataview.h +++ b/interface/wx/dataview.h @@ -2315,17 +2315,17 @@ public: /** Appends an item (=row) to the control and store. */ - void AppendItem( const wxVector &values, wxClientData *data = NULL ); + void AppendItem( const wxVector &values, wxUIntPtr data = NULL ); /** Prepends an item (=row) to the control and store. */ - void PrependItem( const wxVector &values, wxClientData *data = NULL ); + void PrependItem( const wxVector &values, wxUIntPtr data = NULL ); /** Inserts an item (=row) to the control and store. */ - void InsertItem( unsigned int row, const wxVector &values, wxClientData *data = NULL ); + void InsertItem( unsigned int row, const wxVector &values, wxUIntPtr data = NULL ); /** Delete the row at position @a row. @@ -2658,7 +2658,7 @@ public: in number and type. No (default) values are filled in automatically. */ - void AppendItem( const wxVector &values, wxClientData *data = NULL ); + void AppendItem( const wxVector &values, wxUIntPtr data = NULL ); /** Prepends an item (=row) and fills it with @a values. @@ -2667,7 +2667,7 @@ public: in number and type. No (default) values are filled in automatically. */ - void PrependItem( const wxVector &values, wxClientData *data = NULL ); + void PrependItem( const wxVector &values, wxUIntPtr data = NULL ); /** Inserts an item (=row) and fills it with @a values. @@ -2676,7 +2676,7 @@ public: in number and type. No (default) values are filled in automatically. */ - void InsertItem( unsigned int row, const wxVector &values, wxClientData *data = NULL ); + void InsertItem( unsigned int row, const wxVector &values, wxUIntPtr data = NULL ); /** Delete the item (=row) at position @a pos. diff --git a/src/common/datavcmn.cpp b/src/common/datavcmn.cpp index f687e7f9a0..ef43faa33b 100644 --- a/src/common/datavcmn.cpp +++ b/src/common/datavcmn.cpp @@ -1710,7 +1710,7 @@ wxString wxDataViewListStore::GetColumnType( unsigned int pos ) const return m_cols[pos]; } -void wxDataViewListStore::AppendItem( const wxVector &values, wxClientData *data ) +void wxDataViewListStore::AppendItem( const wxVector &values, wxUIntPtr data ) { wxDataViewListStoreLine *line = new wxDataViewListStoreLine( data ); line->m_values = values; @@ -1719,7 +1719,7 @@ void wxDataViewListStore::AppendItem( const wxVector &values, wxClien RowAppended(); } -void wxDataViewListStore::PrependItem( const wxVector &values, wxClientData *data ) +void wxDataViewListStore::PrependItem( const wxVector &values, wxUIntPtr data ) { wxDataViewListStoreLine *line = new wxDataViewListStoreLine( data ); line->m_values = values; @@ -1729,7 +1729,7 @@ void wxDataViewListStore::PrependItem( const wxVector &values, wxClie } void wxDataViewListStore::InsertItem( unsigned int row, const wxVector &values, - wxClientData *data ) + wxUIntPtr data ) { wxDataViewListStoreLine *line = new wxDataViewListStoreLine( data ); line->m_values = values; -- 2.45.2