]> git.saurik.com Git - wxWidgets.git/commitdiff
Improve composite flags handling in the property grid wxFlagsProperty.
authorVadim Zeitlin <vadim@wxwidgets.org>
Sun, 15 Sep 2013 00:14:41 +0000 (00:14 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Sun, 15 Sep 2013 00:14:41 +0000 (00:14 +0000)
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

docs/changes.txt
src/propgrid/props.cpp

index 18b61b88ea5eb5d9e2ffe891a1d83d50557f6a6f..d822b9852fb128ab4399dd09bd16b91d6226b4f4 100644 (file)
@@ -575,6 +575,7 @@ All (GUI):
 - Set correct cursor when the mouse is over image map links in wxHTML (LukasK).
 - Add wxPropertyGridPageState::GetColumnFullWidth() (Teodor Petrov).
 - wxRTC: extracted XML utilities into a separate class for potential reuse.
+- wxPropertyGrid: improve composite flags handling (Jens Lody).
 
 wxGTK:
 
index f1112a0ac8a8a11f0984b49f16d18c5038b849e0..c79faae1595330db21f38346aabcfa0d11c3e071 100644 (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;