Fix querying the value of wxEnumProperty in wxPropertyGridEditor.
Doing this changed the internal state of the control and resulted in the choice not being updated. Fix this by using wxPG_PROPERTY_SPECIFIC. Closes #15449. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76557 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
268b33d8a3
commit
d94e807cfc
@ -1168,7 +1168,7 @@ bool wxPGChoiceEditor::GetValueFromControl( wxVariant& variant, wxPGProperty* pr
|
|||||||
property->IsValueUnspecified()
|
property->IsValueUnspecified()
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
return property->IntToValue( variant, index, 0 );
|
return property->IntToValue(variant, index, wxPG_PROPERTY_SPECIFIC);
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -1691,7 +1691,7 @@ bool wxPGCheckBoxEditor::GetValueFromControl( wxVariant& variant, wxPGProperty*
|
|||||||
property->IsValueUnspecified()
|
property->IsValueUnspecified()
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
return property->IntToValue(variant, index, 0);
|
return property->IntToValue(variant, index, wxPG_PROPERTY_SPECIFIC);
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -1305,22 +1305,27 @@ bool wxEnumProperty::ValueFromInt_( wxVariant& variant, int intVal, int argFlags
|
|||||||
{
|
{
|
||||||
// If wxPG_FULL_VALUE is *not* in argFlags, then intVal is index from combo box.
|
// If wxPG_FULL_VALUE is *not* in argFlags, then intVal is index from combo box.
|
||||||
//
|
//
|
||||||
ms_nextIndex = -2;
|
int setAsNextIndex = -2;
|
||||||
|
|
||||||
if ( argFlags & wxPG_FULL_VALUE )
|
if ( argFlags & wxPG_FULL_VALUE )
|
||||||
{
|
{
|
||||||
ms_nextIndex = GetIndexForValue( intVal );
|
setAsNextIndex = GetIndexForValue( intVal );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ( intVal != GetIndex() )
|
if ( intVal != GetIndex() )
|
||||||
{
|
{
|
||||||
ms_nextIndex = intVal;
|
setAsNextIndex = intVal;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( ms_nextIndex != -2 )
|
if ( setAsNextIndex != -2 )
|
||||||
{
|
{
|
||||||
|
// If wxPG_PROPERTY_SPECIFIC is set, then this is done for
|
||||||
|
// validation or fetching a data purposes only, and index must not be changed.
|
||||||
|
if ( !(argFlags & wxPG_PROPERTY_SPECIFIC) )
|
||||||
|
ms_nextIndex = setAsNextIndex;
|
||||||
|
|
||||||
if ( !(argFlags & wxPG_FULL_VALUE) )
|
if ( !(argFlags & wxPG_FULL_VALUE) )
|
||||||
intVal = m_choices.GetValue(intVal);
|
intVal = m_choices.GetValue(intVal);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user