Improve composite flags handling in the property grid wxFlagsProperty.

Don't consider that a flag is on just because one of its bits is enabled in
the current flags, for the composite flags (e.g. something like "BOTH = ONE |
TWO") all the bits composing the flag must be on for it to be enabled.

Closes #15499.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74808 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2013-09-15 00:14:41 +00:00
parent 88ff049184
commit 0d17c5b66a
2 changed files with 3 additions and 2 deletions

View File

@@ -1490,7 +1490,7 @@ wxString wxFlagsProperty::ValueToString( wxVariant& value,
for ( i = 0; i < GetItemCount(); i++ )
{
int doAdd;
doAdd = ( flags & choices.GetValue(i) );
doAdd = ( (flags & choices.GetValue(i)) == choices.GetValue(i) );
if ( doAdd )
{
@@ -1578,7 +1578,7 @@ void wxFlagsProperty::RefreshChildren()
if ( subVal != (m_oldValue & flag) )
p->ChangeFlag( wxPG_PROP_MODIFIED, true );
p->SetValue( subVal?true:false );
p->SetValue( subVal == flag?true:false );
}
m_oldValue = flags;