Fixed a bug: Disabling a property didn't work properly if a child item was selected.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67719 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Jaakko Salli
2011-05-09 19:44:40 +00:00
parent d476d8541a
commit a6ca624a27
4 changed files with 20 additions and 1 deletions

View File

@@ -526,6 +526,8 @@ All (GUI):
- Added support for saving TGA files.
- Added wxArtProvider returning higher quality icons from Tango project.
- wxPropertyGrid: Added "HasAlpha" attribute for wxColourProperty.
- wxPropertyGrid: Disabling a property didn't work properly if a child item
was selected (Sébastien Gallou).
- Added support for saving PNG files with palette (troelsk).
- Added support for saving as GIF and animated GIF (troelsk).
- Fix wxWrapSizer minimal size calculation (Catalin Raceanu).

View File

@@ -2387,6 +2387,11 @@ protected:
void InitAfterAdded( wxPropertyGridPageState* pageState,
wxPropertyGrid* propgrid );
/**
Returns true if child property is selected.
*/
bool IsChildSelected() const;
// Removes child property with given pointer. Does not delete it.
void RemoveChild( wxPGProperty* p );

View File

@@ -2569,6 +2569,18 @@ void wxPGProperty::DeleteChildren()
}
}
bool wxPGProperty::IsChildSelected() const
{
size_t i;
for ( i = 0; i < GetChildCount(); i++ )
{
if ( m_parentState->DoIsPropertySelected( Item(i) ) )
return true;
}
return false;
}
wxVariant wxPGProperty::ChildChanged( wxVariant& WXUNUSED(thisValue),
int WXUNUSED(childIndex),
wxVariant& WXUNUSED(childValue) ) const

View File

@@ -2600,7 +2600,7 @@ void wxPropertyGrid::DrawItems( const wxPGProperty* p1, const wxPGProperty* p2 )
void wxPropertyGrid::RefreshProperty( wxPGProperty* p )
{
if ( m_pState->DoIsPropertySelected(p) )
if ( m_pState->DoIsPropertySelected(p) || p->IsChildSelected() )
{
// NB: We must copy the selection.
wxArrayPGProperty selection = m_pState->m_selection;