diff options
author | Martin van Zijl <martin.vanzijl@gmail.com> | 2018-11-20 12:14:20 +1300 |
---|---|---|
committer | Tamás Zolnai <tamas.zolnai@collabora.com> | 2018-11-22 09:59:53 +0100 |
commit | a995d10e27149dc701d7f6fa093545888b5250f5 (patch) | |
tree | b644f5bd063a8be039cd859f13789a01cd4d227c /oox | |
parent | 3c51ab7573d4c6e585a7142e73b8d84d5a238b79 (diff) |
tdf#119991 save checkbox tristate in oox format
Change-Id: I313bff6115d56c2567a4586daa43851a1db12b0b
Reviewed-on: https://gerrit.libreoffice.org/63670
Tested-by: Jenkins
Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com>
Diffstat (limited to 'oox')
-rw-r--r-- | oox/source/ole/axcontrol.cxx | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/oox/source/ole/axcontrol.cxx b/oox/source/ole/axcontrol.cxx index de849f9019e2..551f331c9bfa 100644 --- a/oox/source/ole/axcontrol.cxx +++ b/oox/source/ole/axcontrol.cxx @@ -531,7 +531,7 @@ void ControlConverter::convertToAxState( PropertySet const & rPropSet, sal_Int16 nState = API_STATE_DONTKNOW; - bool bTmp = false; + bool bTriStateEnabled = false; // need to use State for current state ( I think this is regardless of whether // control is awt or not ) rPropSet.getProperty( nState, PROP_State ); @@ -543,8 +543,12 @@ void ControlConverter::convertToAxState( PropertySet const & rPropSet, rValue = "1"; // tristate - if( bSupportsTriState && rPropSet.getProperty( bTmp, PROP_TriState ) ) - nMultiSelect = AX_SELECTION_MULTI; + if( bSupportsTriState ) + { + bool bPropertyExists = rPropSet.getProperty( bTriStateEnabled, PROP_TriState ); + if( bPropertyExists && bTriStateEnabled ) + nMultiSelect = AX_SELECTION_MULTI; + } } void ControlConverter::convertAxOrientation( PropertyMap& rPropMap, @@ -1510,7 +1514,7 @@ void AxMorphDataModelBase::exportBinaryModel( BinaryOutputStream& rOutStrm ) aWriter.skipProperty(); // mnShowDropButton ); aWriter.skipProperty(); aWriter.skipProperty(); // drop down style - if ( mnDisplayStyle == AX_DISPLAYSTYLE_LISTBOX && mnMultiSelect != AX_SELECTION_SINGLE ) + if ( (mnDisplayStyle == AX_DISPLAYSTYLE_LISTBOX || mnDisplayStyle == AX_DISPLAYSTYLE_CHECKBOX) && mnMultiSelect != AX_SELECTION_SINGLE ) aWriter.writeIntProperty< sal_uInt8 >( mnMultiSelect ); // although CheckBox, ListBox, OptionButton, ToggleButton are also supported // they can only have the fileformat default @@ -1663,7 +1667,7 @@ void AxCheckBoxModel::convertFromProperties( PropertySet& rPropSet, const Contro ControlConverter::convertToMSColor( rPropSet, PROP_BackgroundColor, mnBackColor ); ControlConverter::convertToMSColor( rPropSet, PROP_TextColor, mnTextColor ); // need to process the image if one exists - ControlConverter::convertToAxState( rPropSet, maValue, mnMultiSelect, API_DEFAULTSTATE_BOOLEAN ); + ControlConverter::convertToAxState( rPropSet, maValue, mnMultiSelect, API_DEFAULTSTATE_TRISTATE ); AxMorphDataModelBase::convertFromProperties( rPropSet, rConv ); } |