update ooo310-m15
[ooovba.git] / applied_patches / 0471-oox-import-shape-textbox-hyperlink.diff
blob35a9396bec678e721311e0d0b611b92b52ca2d16
1 From cd870d90fd3dd23796464251323ffbbaa4d06669 Mon Sep 17 00:00:00 2001
2 From: Jan Nieuwenhuizen <janneke@gnu.org>
3 Date: Tue, 31 Mar 2009 15:35:26 +0200
4 Subject: [PATCH] OOXML: parse <a:hlinkClick> in <xdr:sp> (shapecontext). Fixes n#480854.
6 Hyperlinks can apparently be set in ooxml in several ways. If
7 an hyperlink is specified as an external relation with a textbox
8 shape inside a drawing, this link should be set on the textbox.
10 * Modified oox/inc/oox/drawingml/shapecontext.hxx
11 * Modified oox/source/drawingml/shapecontext.cxx
12 ---
13 oox/inc/oox/drawingml/shapecontext.hxx | 1 +
14 oox/source/drawingml/shapecontext.cxx | 10 ++++++++++
15 2 files changed, 11 insertions(+), 0 deletions(-)
17 diff --git oox/inc/oox/drawingml/shapecontext.hxx oox/inc/oox/drawingml/shapecontext.hxx
18 index 815f808..3236876 100644
19 --- oox/inc/oox/drawingml/shapecontext.hxx
20 +++ oox/inc/oox/drawingml/shapecontext.hxx
21 @@ -54,6 +54,7 @@ protected:
23 ShapePtr mpMasterShapePtr;
24 ShapePtr mpShapePtr;
25 + rtl::OUString maHyperLink;
28 } }
29 diff --git oox/source/drawingml/shapecontext.cxx oox/source/drawingml/shapecontext.cxx
30 index 6b94270..a678a39 100644
31 --- oox/source/drawingml/shapecontext.cxx
32 +++ oox/source/drawingml/shapecontext.cxx
33 @@ -42,6 +42,7 @@
34 #include "oox/drawingml/drawingmltypes.hxx"
35 #include "oox/drawingml/customshapegeometry.hxx"
36 #include "oox/drawingml/textbodycontext.hxx"
37 +#include "oox/core/xmlfilterbase.hxx"
38 #include "tokens.hxx"
40 using rtl::OUString;
41 @@ -91,6 +92,13 @@ Reference< XFastContextHandler > ShapeContext::createFastChildContext( sal_Int32
42 mpShapePtr->setId( xAttribs->getOptionalValue( XML_id ) );
43 mpShapePtr->setName( xAttribs->getOptionalValue( XML_name ) );
44 break;
45 + // let upstream do C-x h M-x indent-region
46 + case XML_hlinkClick:
47 + {
48 + OUString aRelId = xAttribs->getOptionalValue( NMSP_RELATIONSHIPS|XML_id );
49 + maHyperLink = getRelations().getTargetFromRelId( aRelId );
50 + break;
51 + }
52 case XML_ph:
53 mpShapePtr->setSubType( xAttribs->getOptionalValueToken( XML_type, XML_obj ) );
54 mpShapePtr->setIndex( xAttribs->getOptionalValue( XML_idx ).toInt32() );
55 @@ -108,6 +116,8 @@ Reference< XFastContextHandler > ShapeContext::createFastChildContext( sal_Int32
56 case XML_txBody:
58 TextBodyPtr xTextBody( new TextBody );
59 + if (maHyperLink.getLength ())
60 + xTextBody->getTextProperties ().maPropertyMap[CREATE_OUSTRING ("Hyperlink")] <<= maHyperLink;
61 mpShapePtr->setTextBody( xTextBody );
62 xRet = new TextBodyContext( *this, *xTextBody );
63 break;
64 --
65 1.6.0.rc1.49.g98a8