summaryrefslogtreecommitdiffstats
path: root/oox
diff options
context:
space:
mode:
authorMartin van Zijl <martin.vanzijl@gmail.com>2018-11-20 12:14:20 +1300
committerTamás Zolnai <tamas.zolnai@collabora.com>2018-11-22 09:59:53 +0100
commita995d10e27149dc701d7f6fa093545888b5250f5 (patch)
treeb644f5bd063a8be039cd859f13789a01cd4d227c /oox
parentremove unused toktype::IDENT (diff)
downloadcore-a995d10e27149dc701d7f6fa093545888b5250f5.tar.gz
core-a995d10e27149dc701d7f6fa093545888b5250f5.zip
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.cxx14
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 );
}