X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f231df8aa87a1f2a3a68bdaa62e1ee5f07de5ddf..a5bb451448bc5abdadd4ded3f3bc18dbbf07fedd:/src/propgrid/propgridpagestate.cpp diff --git a/src/propgrid/propgridpagestate.cpp b/src/propgrid/propgridpagestate.cpp index 5571a46b5b..74b1adbe1f 100644 --- a/src/propgrid/propgridpagestate.cpp +++ b/src/propgrid/propgridpagestate.cpp @@ -6,7 +6,7 @@ // Created: 2008-08-24 // RCS-ID: $Id$ // Copyright: (c) Jaakko Salli -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// // For compilers that support precompilation, includes "wx/wx.h". @@ -1299,13 +1299,8 @@ bool wxPropertyGridPageState::DoSetPropertyValueWxObjectPtr( wxPGProperty* p, wx bool wxPropertyGridPageState::DoIsPropertySelected( wxPGProperty* prop ) const { - const wxArrayPGProperty& selection = m_selection; - - for ( unsigned int i=0; iClearFlag( wxPG_PROP_HIDDEN ); - else - p->SetFlag( wxPG_PROP_HIDDEN ); - - if ( flags & wxPG_RECURSE ) - { - unsigned int i; - for ( i = 0; i < p->GetChildCount(); i++ ) - DoHideProperty(p->Item(i), hide, flags | wxPG_RECURSE_STARTS); - } - + p->DoHide(hide, flags); VirtualHeightChanged(); return true; @@ -1866,6 +1850,18 @@ void wxPropertyGridPageState::DoDelete( wxPGProperty* item, bool doDelete ) pg->m_deletedProperties.push_back(item); else pg->m_removedProperties.push_back(item); + + // Rename the property so it won't remain in the way + // of the user code. + + // Let's trust that no sane property uses prefix like + // this. It would be anyway fairly inconvenient (in + // current code) to check whether a new name is used + // by another property with parent (due to the child + // name notation). + wxString newName = wxS("_&/_%$") + item->GetBaseName(); + DoSetPropertyName(item, newName); + return; } @@ -1967,6 +1963,10 @@ void wxPropertyGridPageState::DoDelete( wxPGProperty* item, bool doDelete ) if ( pg && pg->m_propHover == item ) pg->m_propHover = NULL; + // Mark the property as 'unattached' + item->m_parentState = NULL; + item->m_parent = NULL; + // We can actually delete it now if ( doDelete ) delete item;