Kaydet (Commit) e463c960 authored tarafından Tamás Zolnai's avatar Tamás Zolnai

tdf#111980: DOCX: Handle ActiveX radio button group

Change-Id: I3372b3b69623bda5c6e8587215e8fb7056fdf0a7
Reviewed-on: https://gerrit.libreoffice.org/41586Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarTamás Zolnai <tamas.zolnai@collabora.com>
üst 1ab6d391
......@@ -616,6 +616,7 @@ public:
virtual bool importBinaryModel( BinaryInputStream& rInStrm ) override;
virtual void exportBinaryModel( BinaryOutputStream& rOutStrm ) override;
virtual void convertProperties( PropertyMap& rPropMap, const ControlConverter& rConv ) const override;
virtual void convertFromProperties( PropertySet& rPropSet, const ControlConverter& rConv ) override;
public: // direct access needed for legacy VML drawing controls
StreamDataSequence maPictureData; ///< Binary picture stream.
......
......@@ -1540,7 +1540,7 @@ void AxMorphDataModelBase::exportBinaryModel( BinaryOutputStream& rOutStrm )
aWriter.skipProperty(); // accelerator
aWriter.skipProperty(); // undefined
aWriter.writeBoolProperty(true); // must be 1 for morph
if ( ( mnDisplayStyle == AX_DISPLAYSTYLE_CHECKBOX ) || ( mnDisplayStyle == AX_DISPLAYSTYLE_OPTBUTTON ) )
if ( mnDisplayStyle == AX_DISPLAYSTYLE_OPTBUTTON )
aWriter.writeStringProperty( maGroupName );
else
aWriter.skipProperty(); //maGroupName
......@@ -1552,9 +1552,18 @@ void AxMorphDataModelBase::convertProperties( PropertyMap& rPropMap, const Contr
{
rPropMap.setProperty( PROP_Enabled, getFlag( mnFlags, AX_FLAGS_ENABLED ) );
rConv.convertColor( rPropMap, PROP_TextColor, mnTextColor );
if ( mnDisplayStyle == AX_DISPLAYSTYLE_OPTBUTTON )
rPropMap.setProperty( PROP_GroupName, maGroupName );
AxFontDataModel::convertProperties( rPropMap, rConv );
}
void AxMorphDataModelBase::convertFromProperties( PropertySet& rPropSet, const ControlConverter& rConv )
{
if ( mnDisplayStyle == AX_DISPLAYSTYLE_OPTBUTTON )
rPropSet.getProperty( maGroupName, PROP_GroupName );
AxFontDataModel::convertFromProperties( rPropSet, rConv );
}
AxToggleButtonModel::AxToggleButtonModel()
{
mnDisplayStyle = AX_DISPLAYSTYLE_TOGGLE;
......
......@@ -208,6 +208,7 @@ GraphicSize
GraphicURL
GridColor
GroupInfo
GroupName
HScroll
Handles
HasAutoShowInfo
......
......@@ -1007,6 +1007,23 @@ DECLARE_OOXMLEXPORT_TEST(testWatermarkLayer, "watermark-layer.docx")
CPPUNIT_ASSERT_EQUAL(static_cast<sal_uInt8>(1), pObject->GetLayer().get());
}
DECLARE_OOXMLEXPORT_TEST(testActiveXOptionButtonGroup, "activex_option_button_group.docx")
{
// Optionbutton groups were not handled
// The two optionbutton should have the same group name
const OUString sGroupName = "GroupX";
uno::Reference<drawing::XControlShape> xControlShape(getShape(1), uno::UNO_QUERY);
CPPUNIT_ASSERT(xControlShape.is());
uno::Reference<beans::XPropertySet> xPropertySet(xControlShape->getControl(), uno::UNO_QUERY);
CPPUNIT_ASSERT_EQUAL(sGroupName, getProperty<OUString>(xPropertySet, "GroupName"));
xControlShape.set(getShape(2), uno::UNO_QUERY);
CPPUNIT_ASSERT(xControlShape.is());
xPropertySet.set(xControlShape->getControl(), uno::UNO_QUERY);
CPPUNIT_ASSERT_EQUAL(sGroupName, getProperty<OUString>(xPropertySet, "GroupName"));
}
CPPUNIT_PLUGIN_IMPLEMENT();
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment