From 0d17c5b66a4cea4b687243d7b0ee95ff1a5fe924 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sun, 15 Sep 2013 00:14:41 +0000 Subject: [PATCH] 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 --- docs/changes.txt | 1 + src/propgrid/props.cpp | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/changes.txt b/docs/changes.txt index 18b61b8..d822b98 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -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: diff --git a/src/propgrid/props.cpp b/src/propgrid/props.cpp index f1112a0..c79faae 100644 --- a/src/propgrid/props.cpp +++ b/src/propgrid/props.cpp @@ -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; -- 2.7.4