diff options
author | Marco Cecchetti <marco.cecchetti@collabora.com> | 2021-01-12 15:29:44 +0100 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2021-01-19 15:15:43 +0100 |
commit | 8d29f3ab72ec91ab7fad55379a14afd41112532a (patch) | |
tree | b3056b005903a37e6a7856c19cfb60bf0d4b1c3e /filter | |
parent | c54784beade263fc8cb1a0b240dc3974887f22a3 (diff) |
filter: svg: when date/time field is edited directly in mp, is not shown
If a date/time or footer text field in the master page is editede
directly instead of being filled through the header/footer dialog, is
not displayed by the js engine.
Change-Id: I4a8aa3a6b5e9931ea0b997d611ce54e8481dbbcb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109175
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Andras Timar <andras.timar@collabora.com>
Diffstat (limited to 'filter')
-rw-r--r-- | filter/source/svg/presentation_engine.js | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/filter/source/svg/presentation_engine.js b/filter/source/svg/presentation_engine.js index 3d82aac0eaab..4dd876defba9 100644 --- a/filter/source/svg/presentation_engine.js +++ b/filter/source/svg/presentation_engine.js @@ -5556,9 +5556,9 @@ PlaceholderShape.prototype.init = function() } } } - this.element = aTextFieldElement; this.textElement = aPlaceholderElement; } + this.element = aTextFieldElement; } }; @@ -5769,9 +5769,10 @@ MasterPageView.prototype.initTextFieldHandler = function( sClassName, aPlaceholderShapeSet, aTextFieldContentProviderSet, aDefsElement, aTextFieldHandlerSet, sMasterSlideId ) { + var sRefId = null; var aTextFieldHandler = null; - if( aPlaceholderShapeSet[sClassName] && - aPlaceholderShapeSet[sClassName].isValid() + var aPlaceholderShape = aPlaceholderShapeSet[sClassName]; + if( aPlaceholderShape && aPlaceholderShape.isValid() && aTextFieldContentProviderSet[sClassName] ) { var sTextFieldContentProviderId = aTextFieldContentProviderSet[sClassName].sId; @@ -5780,7 +5781,7 @@ MasterPageView.prototype.initTextFieldHandler = if ( !aTextFieldHandlerSet[ sMasterSlideId ][ sTextFieldContentProviderId ] ) { aTextFieldHandlerSet[ sMasterSlideId ][ sTextFieldContentProviderId ] = - new TextFieldHandler( aPlaceholderShapeSet[sClassName], + new TextFieldHandler( aPlaceholderShape, aTextFieldContentProviderSet[sClassName] ); aTextFieldHandler = aTextFieldHandlerSet[ sMasterSlideId ][ sTextFieldContentProviderId ]; aTextFieldHandler.update(); @@ -5790,13 +5791,22 @@ MasterPageView.prototype.initTextFieldHandler = { aTextFieldHandler = aTextFieldHandlerSet[ sMasterSlideId ][ sTextFieldContentProviderId ]; } + sRefId = aTextFieldHandler.sId; + } + else if( aPlaceholderShape && aPlaceholderShape.element && aPlaceholderShape.element.firstElementChild + && !aPlaceholderShape.textElement && !aTextFieldContentProviderSet[sClassName] ) + { + sRefId = aPlaceholderShape.element.firstElementChild.getAttribute('id'); + } + if( sRefId ) + { // We create a <use> element referring to the cloned text field and // append it to the field group element. - var aTextFieldElement = document.createElementNS( NSS['svg'], 'use' ); - aTextFieldElement.setAttribute( 'class', sClassName ); - setNSAttribute( 'xlink', aTextFieldElement, - 'href', '#' + aTextFieldHandler.sId ); + var aTextFieldElement = document.createElementNS(NSS['svg'], 'use'); + aTextFieldElement.setAttribute('class', sClassName); + setNSAttribute('xlink', aTextFieldElement, + 'href', '#' + sRefId); // node linking this.aBackgroundObjectsElement.appendChild( aTextFieldElement ); } |