diff --git a/0001-Use-PYTHON_FOR_BUILD-instead-of-calling-python-direc.patch b/0001-Use-PYTHON_FOR_BUILD-instead-of-calling-python-direc.patch deleted file mode 100644 index 4d1e033..0000000 --- a/0001-Use-PYTHON_FOR_BUILD-instead-of-calling-python-direc.patch +++ /dev/null @@ -1,77 +0,0 @@ -From 5c4c83dd7ee9145408d80dbac606547c8006ad2a Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Chv=C3=A1tal?= -Date: Tue, 13 Feb 2018 10:57:54 +0100 -Subject: [PATCH] Use PYTHON_FOR_BUILD instead of calling python directly - -Change-Id: I85ff669c3cfd6d9b3284972cfa1d8a805ea3b6d4 ---- - postprocess/CustomTarget_images.mk | 2 +- - testtools/source/bridgetest/pyuno/makefile.mk | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/postprocess/CustomTarget_images.mk b/postprocess/CustomTarget_images.mk -index 603c73d522d4..871c7bd6470c 100644 ---- a/postprocess/CustomTarget_images.mk -+++ b/postprocess/CustomTarget_images.mk -@@ -33,7 +33,7 @@ $(packimages_DIR)/%.zip : \ - $(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),PRL,2) - $(call gb_Helper_abbreviate_dirs, \ - ILSTFILE=$(call var2file,$(shell $(gb_MKTEMP)),100,$(filter %.ilst,$^)) && \ -- $(PYTHON) $(SRCDIR)/solenv/bin/pack_images.py \ -+ $(PYTHON_FOR_BUILD) $(SRCDIR)/solenv/bin/pack_images.py \ - $(if $(DEFAULT_THEME),\ - -g $(packimages_DIR) -m $(packimages_DIR) -c $(packimages_DIR),\ - -g $(SRCDIR)/icon-themes/$(subst images_,,$*) -m $(SRCDIR)/icon-themes/$(subst images_,,$*) -c $(SRCDIR)/icon-themes/$(subst images_,,$*) \ -diff --git a/testtools/source/bridgetest/pyuno/makefile.mk b/testtools/source/bridgetest/pyuno/makefile.mk -index 5dbd0038f009..112be23c9ce8 100644 ---- a/testtools/source/bridgetest/pyuno/makefile.mk -+++ b/testtools/source/bridgetest/pyuno/makefile.mk -@@ -46,7 +46,7 @@ REGEXC=$(DLLDEST)$/regcomp$(EXECPOST) - .IF "$(SYSTEM_PYTHON)"!="YES" - PYTHON=$(AUGMENT_LIBRARY_PATH) $(WRAPCMD) $(SOLARBINDIR)/python - .ELSE # "$(SYSTEM_PYTHON)"!="YES" --PYTHON=$(AUGMENT_LIBRARY_PATH) $(WRAPCMD) python -+PYTHON=$(AUGMENT_LIBRARY_PATH) $(WRAPCMD) $(PYTHON_FOR_BUILD) - .ENDIF # "$(SYSTEM_PYTHON)"!="YES" - .IF "$(OS)"=="WNT" - PYTHONPATH:=$(SOLARLIBDIR)$/pyuno;$(PWD);$(SOLARLIBDIR);$(SOLARLIBDIR)$/python;$(SOLARLIBDIR)$/python$/lib-dynload --- -2.16.1 - -From 76635096e9c9832d856e8eb1798ce70256f6d81b Mon Sep 17 00:00:00 2001 -From: Stephan Bergmann -Date: Fri, 23 Feb 2018 08:43:00 +0100 -Subject: Adapt CustomTarget_helpcontent2/source/auxiliary - -...to core 906a2e4fa4e9ce231126c608e741c0c0d809157d "Always execute -pack_images.py with the right Python interpreter" - -Change-Id: I7c6c9aed33222fb5b902e30a05cefe8f88c66df1 ---- - CustomTarget_imagelist.mk | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -(limited to 'CustomTarget_imagelist.mk') - -diff --git a/CustomTarget_imagelist.mk b/CustomTarget_imagelist.mk -index f0710e6..099bebe 100644 ---- a/helpcontent2/CustomTarget_imagelist.mk -+++ b/helpcontent2/CustomTarget_imagelist.mk -@@ -19,11 +19,12 @@ $(eval $(call gb_CustomTarget_register_targets,helpcontent2/source/auxiliary,\ - - $(call gb_CustomTarget_get_workdir,helpcontent2/source/auxiliary)/images_helpimg.zip : \ - $(call gb_CustomTarget_get_workdir,helpcontent2/source/auxiliary)/helpimg.ilst \ -- $(call gb_CustomTarget_get_workdir,helpcontent2/source/auxiliary)/screenshotimg.ilst -+ $(call gb_CustomTarget_get_workdir,helpcontent2/source/auxiliary)/screenshotimg.ilst \ -+ | $(call gb_ExternalExecutable_get_dependencies,python) - $(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),PRL,1) - $(call gb_Helper_abbreviate_dirs, \ - ILSTFILE=$(call var2file,$(shell $(gb_MKTEMP)),100,$(filter %.ilst,$^)) && \ -- $(PYTHON) $(SRCDIR)/solenv/bin/pack_images.py \ -+ $(call gb_ExternalExecutable_get_command,python) $(SRCDIR)/solenv/bin/pack_images.py \ - -g $(helpmedia_DIR) -m $(helpmedia_DIR) -c $(helpmedia_DIR) \ - -l $${ILSTFILE} \ - -s $< -o $@ \ --- -cgit v1.1 - diff --git a/a084cd548b586552cb7d3ee51f1af969-odfvalidator-1.1.8-incubating-SNAPSHOT-jar-with-dependencies.jar b/a084cd548b586552cb7d3ee51f1af969-odfvalidator-1.1.8-incubating-SNAPSHOT-jar-with-dependencies.jar deleted file mode 100644 index a825351..0000000 --- a/a084cd548b586552cb7d3ee51f1af969-odfvalidator-1.1.8-incubating-SNAPSHOT-jar-with-dependencies.jar +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a0bd3e0186e043223bfb231a888e2bfb06c78ee2e07c2f0eca434236d173cf34 -size 18033694 diff --git a/bnc1039203.patch b/bnc1039203.patch deleted file mode 100644 index 429a291..0000000 --- a/bnc1039203.patch +++ /dev/null @@ -1,605 +0,0 @@ -From 377af664602f5df27df5fcfad5e50a0f59dca38c Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Szymon=20K=C5=82os?= -Date: Fri, 2 Feb 2018 10:21:50 +0100 -Subject: [PATCH 1/4] tdf#115394 import custom slide transition time in PPTX -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -* custom values are imported correctly -* standard (fast, slow, medium) values are changed - to match values in the MSO - -Change-Id: I004242afbbf641fe414abc8df248a2844c104502 -Reviewed-on: https://gerrit.libreoffice.org/49139 -Tested-by: Jenkins -Reviewed-by: Szymon Kłos ---- - include/oox/ppt/slidetransition.hxx | 4 +++ - offapi/com/sun/star/presentation/DrawPage.idl | 9 +++++-- - oox/source/ppt/slidetransition.cxx | 22 ++++++++++++++--- - oox/source/ppt/slidetransitioncontext.cxx | 6 +++++ - oox/source/token/properties.txt | 1 + - sd/qa/unit/data/pptx/tdf115394.pptx | Bin 0 -> 31282 bytes - sd/qa/unit/import-tests.cxx | 34 ++++++++++++++++++++++++++ - sd/source/ui/inc/unoprnms.hxx | 1 + - sd/source/ui/unoidl/unopage.cxx | 2 +- - 9 files changed, 72 insertions(+), 7 deletions(-) - create mode 100644 sd/qa/unit/data/pptx/tdf115394.pptx - -diff --git a/include/oox/ppt/slidetransition.hxx b/include/oox/ppt/slidetransition.hxx -index 8986016f30aa..5a31b158334b 100644 ---- a/include/oox/ppt/slidetransition.hxx -+++ b/include/oox/ppt/slidetransition.hxx -@@ -43,7 +43,10 @@ namespace oox { namespace ppt { - void setSlideProperties( PropertyMap& props ); - void setTransitionFilterProperties( const css::uno::Reference< css::animations::XTransitionFilter > & xFilter ); - -+ /// Set one of standard values for slide transition duration - void setOoxTransitionSpeed( sal_Int32 nToken ); -+ /// Set slide transition time directly -+ void setOoxTransitionSpeed( double fDuration ); - void setMode( bool bMode ) - { mbMode = bMode; } - void setOoxAdvanceTime( sal_Int32 nAdvanceTime ) -@@ -66,6 +69,7 @@ namespace oox { namespace ppt { - ::sal_Int16 mnTransitionSubType; - bool mbTransitionDirectionNormal; - css::presentation::AnimationSpeed mnAnimationSpeed; -+ double mfTransitionDurationInSeconds; - bool mbMode; /**< http://api.libreoffice.org/docs/common/ref/com/sun/star/animations/XTransitionFilter.html Mode property */ - ::sal_Int32 mnAdvanceTime; - }; -diff --git a/offapi/com/sun/star/presentation/DrawPage.idl b/offapi/com/sun/star/presentation/DrawPage.idl -index 18e499e81420..0e070470ad25 100644 ---- a/offapi/com/sun/star/presentation/DrawPage.idl -+++ b/offapi/com/sun/star/presentation/DrawPage.idl -@@ -79,11 +79,11 @@ published service DrawPage - [property] short Layout; - - -- /** defines the speed of the fade-in effect of this page. -+ /** Defines the speed of the fade-in effect of this page. -+ @see TransitionSpeed - */ - [property] com::sun::star::presentation::AnimationSpeed Speed; - -- - /** defines if a header presentation shape from the master page is visible - on this page. - */ -@@ -142,6 +142,11 @@ published service DrawPage - */ - [optional, property] long DateTimeFormat; - -+ /** Specifies slide transition time in seconds. -+ @since LibreOffice 6.1 -+ @see Speed -+ */ -+ [property, optional] double TransitionDuration; - }; - - -diff --git a/oox/source/ppt/slidetransition.cxx b/oox/source/ppt/slidetransition.cxx -index e609e6709c2f..7c1555b7dc80 100644 ---- a/oox/source/ppt/slidetransition.cxx -+++ b/oox/source/ppt/slidetransition.cxx -@@ -45,6 +45,7 @@ namespace oox { namespace ppt { - , mnTransitionSubType( 0 ) - , mbTransitionDirectionNormal( true ) - , mnAnimationSpeed( AnimationSpeed_FAST ) -+ , mfTransitionDurationInSeconds( -1.0 ) - , mbMode( true ) - , mnAdvanceTime( -1 ) - { -@@ -56,6 +57,7 @@ namespace oox { namespace ppt { - , mnTransitionSubType( 0 ) - , mbTransitionDirectionNormal( true ) - , mnAnimationSpeed( AnimationSpeed_FAST ) -+ , mfTransitionDurationInSeconds( -1.0 ) - , mbMode( true ) - , mnAdvanceTime( -1 ) - { -@@ -76,6 +78,8 @@ namespace oox { namespace ppt { - aProps.setProperty( PROP_TransitionSubtype, mnTransitionSubType); - aProps.setProperty( PROP_TransitionDirection, mbTransitionDirectionNormal); - aProps.setProperty( PROP_Speed, mnAnimationSpeed); -+ if( mfTransitionDurationInSeconds >= 0.0 ) -+ aProps.setProperty( PROP_TransitionDuration, mfTransitionDurationInSeconds); - aProps.setProperty( PROP_TransitionFadeColor, sal_Int32(0)); - if( mnAdvanceTime != -1 ) { - aProps.setProperty( PROP_Duration, mnAdvanceTime/1000); -@@ -110,19 +114,21 @@ namespace oox { namespace ppt { - { - switch( nToken ) - { -- /* In case you want to use time values in second, -- * the speed values are located in the PPT97 importer -- * sd/source/filter/ppt/ppt97animations.cxx:664 -- * (void Ppt97Animation::UpdateCacheData() const) -+ /* the speed values are located in the PPT97 importer -+ * sd/source/filter/ppt/pptin.cxx:1783 -+ * (void ImplSdPPTImport::ImportPageEffect) - */ - case XML_fast: - mnAnimationSpeed = AnimationSpeed_FAST; -+ mfTransitionDurationInSeconds = 0.5; - break; - case XML_med: - mnAnimationSpeed = AnimationSpeed_MEDIUM; -+ mfTransitionDurationInSeconds = 0.75; - break; - case XML_slow: - mnAnimationSpeed = AnimationSpeed_SLOW; -+ mfTransitionDurationInSeconds = 1.0; - break; - default: - // should not happen. just ignore -@@ -130,6 +136,14 @@ namespace oox { namespace ppt { - } - } - -+ void SlideTransition::setOoxTransitionSpeed( double fDurationInSeconds ) -+ { -+ // for compatibility -+ mnAnimationSpeed = ( fDurationInSeconds <= 0.5 ) ? AnimationSpeed_FAST -+ : ( fDurationInSeconds >= 1.0 ) ? AnimationSpeed_SLOW : AnimationSpeed_MEDIUM; -+ mfTransitionDurationInSeconds = fDurationInSeconds; -+ } -+ - sal_Int16 SlideTransition::ooxToOdpEightDirections( ::sal_Int32 nOoxType ) - { - sal_Int16 nOdpDirection; -diff --git a/oox/source/ppt/slidetransitioncontext.cxx b/oox/source/ppt/slidetransitioncontext.cxx -index 64d6d5942ba3..7639df7c023b 100644 ---- a/oox/source/ppt/slidetransitioncontext.cxx -+++ b/oox/source/ppt/slidetransitioncontext.cxx -@@ -32,6 +32,7 @@ - #include - #include - #include -+#include - - using namespace ::com::sun::star; - using namespace ::oox::core; -@@ -50,6 +51,11 @@ SlideTransitionContext::SlideTransitionContext( FragmentHandler2 const & rParent - // ST_TransitionSpeed - maTransition.setOoxTransitionSpeed( rAttribs.getToken( XML_spd, XML_fast ) ); - -+ // p14:dur -+ sal_Int32 nDurationInMs = rAttribs.getInteger( P14_TOKEN( dur ), -1 ); -+ if( nDurationInMs > -1 ) -+ maTransition.setOoxTransitionSpeed( nDurationInMs / 1000.0 ); -+ - // TODO - rAttribs.getBool( XML_advClick, true ); - -diff --git a/oox/source/token/properties.txt b/oox/source/token/properties.txt -index e6bc79ff3d08..d5e945cc4342 100644 ---- a/oox/source/token/properties.txt -+++ b/oox/source/token/properties.txt -@@ -527,6 +527,7 @@ TopMargin - TotalsRow - Transformation - TransitionDirection -+TransitionDuration - TransitionFadeColor - TransitionSubtype - TransitionType -diff --git a/sd/source/ui/inc/unoprnms.hxx b/sd/source/ui/inc/unoprnms.hxx -index 3dd438f0ec28..1e5e3b910f3e 100644 ---- a/sd/source/ui/inc/unoprnms.hxx -+++ b/sd/source/ui/inc/unoprnms.hxx -@@ -33,6 +33,7 @@ - #define UNO_NAME_PAGE_NUMBER "Number" - #define UNO_NAME_PAGE_ORIENTATION "Orientation" - #define UNO_NAME_PAGE_SPEED "Speed" -+#define UNO_NAME_PAGE_TRANSITION_DURATION "TransitionDuration" - #define UNO_NAME_PAGE_WIDTH "Width" - #define UNO_NAME_PAGE_PREVIEW "Preview" - #define UNO_NAME_PAGE_PREVIEWBITMAP "PreviewBitmap" -diff --git a/sd/source/ui/unoidl/unopage.cxx b/sd/source/ui/unoidl/unopage.cxx -index 10f25204c810..532d10dbb569 100644 ---- a/sd/source/ui/unoidl/unopage.cxx -+++ b/sd/source/ui/unoidl/unopage.cxx -@@ -142,7 +142,7 @@ const SvxItemPropertySet* ImplGetDrawPagePropertySet( bool bImpress, PageKind eP - { OUString("TransitionSubtype"), WID_TRANSITION_SUBTYPE, ::cppu::UnoType::get(), 0, 0}, - { OUString("TransitionDirection"), WID_TRANSITION_DIRECTION, ::cppu::UnoType::get(), 0, 0}, - { OUString("TransitionFadeColor"), WID_TRANSITION_FADE_COLOR, ::cppu::UnoType::get(), 0, 0}, -- { OUString("TransitionDuration"), WID_TRANSITION_DURATION, ::cppu::UnoType::get(), 0, 0}, -+ { OUString(UNO_NAME_PAGE_TRANSITION_DURATION), WID_TRANSITION_DURATION, ::cppu::UnoType::get(), 0, 0}, - { OUString("LoopSound"), WID_LOOP_SOUND, cppu::UnoType::get(), 0, 0}, - { OUString("NavigationOrder"), WID_NAVORDER, cppu::UnoType::get(),0, 0}, - { OUString(), 0, css::uno::Type(), 0, 0 } --- -2.13.6 - - -From 9719741507be6daa92e4af9ddfb3177fa51404ca Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Szymon=20K=C5=82os?= -Date: Mon, 5 Feb 2018 12:41:58 +0100 -Subject: [PATCH 2/4] tdf#115394 export custom transition time in PPTX -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Change-Id: Ib8f4cef713895029dc18f68a07baa4b65e4260c0 -Reviewed-on: https://gerrit.libreoffice.org/49245 -Tested-by: Jenkins -Reviewed-by: Szymon Kłos ---- - sd/qa/unit/export-tests-ooxml2.cxx | 36 ++++++++ - sd/source/filter/eppt/pptx-epptooxml.cxx | 150 ++++++++++++++++++++++--------- - 2 files changed, 145 insertions(+), 41 deletions(-) - -diff --git a/sd/source/filter/eppt/pptx-epptooxml.cxx b/sd/source/filter/eppt/pptx-epptooxml.cxx -index c5c3ca580101..9ba23b0ac016 100644 ---- a/sd/source/filter/eppt/pptx-epptooxml.cxx -+++ b/sd/source/filter/eppt/pptx-epptooxml.cxx -@@ -650,7 +650,42 @@ void PowerPointExport::WriteTransition(const FSHelperPtr& pFS) - sal_Int32 advanceTiming = -1; - sal_Int32 changeType = 0; - -- if (GETA(Speed)) -+ sal_Int32 nTransitionDuration = -1; -+ bool isTransitionDurationSet = false; -+ -+ // try to use TransitionDuration instead of old Speed property -+ if (GETA(TransitionDuration)) -+ { -+ double fTransitionDuration = -1.0; -+ mAny >>= fTransitionDuration; -+ if (fTransitionDuration >= 0) -+ { -+ nTransitionDuration = fTransitionDuration * 1000.0; -+ -+ // override values because in MS formats meaning of fast/medium/slow is different -+ if (nTransitionDuration <= 500) -+ { -+ // fast is default -+ speed = nullptr; -+ } -+ else if (nTransitionDuration >= 1000) -+ { -+ speed = "slow"; -+ } -+ else -+ { -+ speed = "med"; -+ } -+ -+ bool isStandardValue = nTransitionDuration == 500 -+ || nTransitionDuration == 750 -+ || nTransitionDuration == 1000; -+ -+ if(!isStandardValue) -+ isTransitionDurationSet = true; -+ } -+ } -+ else if (GETA(Speed)) - { - mAny >>= animationSpeed; - -@@ -670,50 +705,12 @@ void PowerPointExport::WriteTransition(const FSHelperPtr& pFS) - - if (GETA(Change)) - mAny >>= changeType; -+ bool isAdvanceTimingSet = advanceTiming != -1; - - // 1 means automatic, 2 half automatic - not sure what it means - at least I don't see it in UI - if (changeType == 1 && GETA(Duration)) - mAny >>= advanceTiming; - -- if (nTransition14 || pPresetTransition) -- { -- const char* pRequiresNS = nTransition14 ? "p14" : "p15"; -- -- pFS->startElement(FSNS(XML_mc, XML_AlternateContent), FSEND); -- pFS->startElement(FSNS(XML_mc, XML_Choice), XML_Requires, pRequiresNS, FSEND); -- -- -- pFS->startElementNS(XML_p, XML_transition, -- XML_spd, speed, -- XML_advTm, advanceTiming != -1 ? I32S(advanceTiming*1000) : nullptr, -- FSEND); -- -- if (nTransition14) -- { -- pFS->singleElementNS(XML_p14, nTransition14, -- XML_isInverted, pInverted, -- XML_dir, pDirection14, -- XML_pattern, pPattern, -- FSEND); -- } -- else if (pPresetTransition) -- { -- pFS->singleElementNS(XML_p15, XML_prstTrans, -- XML_prst, pPresetTransition, -- FSEND); -- } -- -- pFS->endElement(FSNS(XML_p, XML_transition)); -- -- pFS->endElement(FSNS(XML_mc, XML_Choice)); -- pFS->startElement(FSNS(XML_mc, XML_Fallback), FSEND); -- } -- -- pFS->startElementNS(XML_p, XML_transition, -- XML_spd, speed, -- XML_advTm, advanceTiming != -1 ? I32S(advanceTiming*1000) : nullptr, -- FSEND); -- - if (!bOOXmlSpecificTransition) - { - switch (nPPTTransitionType) -@@ -807,6 +804,77 @@ void PowerPointExport::WriteTransition(const FSHelperPtr& pFS) - } - } - -+ if (nTransition14 || pPresetTransition || isTransitionDurationSet) -+ { -+ const char* pRequiresNS = (nTransition14 || isTransitionDurationSet) ? "p14" : "p15"; -+ -+ pFS->startElement(FSNS(XML_mc, XML_AlternateContent), FSEND); -+ pFS->startElement(FSNS(XML_mc, XML_Choice), XML_Requires, pRequiresNS, FSEND); -+ -+ if(isTransitionDurationSet && isAdvanceTimingSet) -+ { -+ pFS->startElementNS(XML_p, XML_transition, -+ XML_spd, speed, -+ XML_advTm, I32S(advanceTiming * 1000), -+ FSNS(XML_p14, XML_dur), I32S(nTransitionDuration), -+ FSEND); -+ } -+ else if(isTransitionDurationSet) -+ { -+ pFS->startElementNS(XML_p, XML_transition, -+ XML_spd, speed, -+ FSNS(XML_p14, XML_dur), I32S(nTransitionDuration), -+ FSEND); -+ } -+ else if(isAdvanceTimingSet) -+ { -+ pFS->startElementNS(XML_p, XML_transition, -+ XML_spd, speed, -+ XML_advTm, I32S(advanceTiming * 1000), -+ FSEND); -+ } -+ else -+ { -+ pFS->startElementNS(XML_p, XML_transition, -+ XML_spd, speed, -+ FSEND); -+ } -+ -+ if (nTransition14) -+ { -+ pFS->singleElementNS(XML_p14, nTransition14, -+ XML_isInverted, pInverted, -+ XML_dir, pDirection14, -+ XML_pattern, pPattern, -+ FSEND); -+ } -+ else if (pPresetTransition) -+ { -+ pFS->singleElementNS(XML_p15, XML_prstTrans, -+ XML_prst, pPresetTransition, -+ FSEND); -+ } -+ else if (isTransitionDurationSet && nTransition) -+ { -+ pFS->singleElementNS(XML_p, nTransition, -+ XML_dir, pDirection, -+ XML_orient, pOrientation, -+ XML_spokes, pSpokes, -+ XML_thruBlk, pThruBlk, -+ FSEND); -+ } -+ -+ pFS->endElement(FSNS(XML_p, XML_transition)); -+ -+ pFS->endElement(FSNS(XML_mc, XML_Choice)); -+ pFS->startElement(FSNS(XML_mc, XML_Fallback), FSEND); -+ } -+ -+ pFS->startElementNS(XML_p, XML_transition, -+ XML_spd, speed, -+ XML_advTm, isAdvanceTimingSet ? I32S(advanceTiming * 1000) : nullptr, -+ FSEND); -+ - if (nTransition) - { - pFS->singleElementNS(XML_p, nTransition, -@@ -819,7 +887,7 @@ void PowerPointExport::WriteTransition(const FSHelperPtr& pFS) - - pFS->endElementNS(XML_p, XML_transition); - -- if (nTransition14 || pPresetTransition) -+ if (nTransition14 || pPresetTransition || isTransitionDurationSet) - { - pFS->endElement(FSNS(XML_mc, XML_Fallback)); - pFS->endElement(FSNS(XML_mc, XML_AlternateContent)); --- -2.13.6 - - -From 41fe895bf25d6a0895cfd1ce78f3cbd1d3eb02b3 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Szymon=20K=C5=82os?= -Date: Wed, 7 Feb 2018 12:22:52 +0100 -Subject: [PATCH 3/4] tdf#115394 export correct slide transition time in PPT -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Change-Id: Ie293dd4cc128c256e39d54fdcd83bb5e13484662 -Reviewed-on: https://gerrit.libreoffice.org/49345 -Tested-by: Jenkins -Reviewed-by: Szymon Kłos ---- - sd/qa/unit/data/ppt/tdf115394.ppt | Bin 0 -> 90112 bytes - sd/qa/unit/export-tests.cxx | 39 ++++++++++++++++++++++++++++++++++++++ - sd/qa/unit/import-tests.cxx | 25 ++++++++++++++++++++++++ - sd/source/filter/eppt/eppt.cxx | 26 ++++++++++++++++++++++--- - sd/source/filter/ppt/pptin.cxx | 6 +++--- - 5 files changed, 90 insertions(+), 6 deletions(-) - create mode 100644 sd/qa/unit/data/ppt/tdf115394.ppt - -diff --git a/sd/source/filter/eppt/eppt.cxx b/sd/source/filter/eppt/eppt.cxx -index 2b3f76a41ebf..a506a376c20f 100644 ---- a/sd/source/filter/eppt/eppt.cxx -+++ b/sd/source/filter/eppt/eppt.cxx -@@ -241,11 +241,31 @@ void PPTWriter::ImplWriteSlide( sal_uInt32 nPageNum, sal_uInt32 nMasterNum, sal_ - sal_Int32 nSlideTime = 0; // still has to !!! - sal_uInt8 nSpeed = 1; - -- if ( GetPropertyValue( aAny, mXPagePropSet, "Speed" ) ) -+ if ( GetPropertyValue( aAny, mXPagePropSet, "TransitionDuration" ) ) - { - css::presentation::AnimationSpeed aAs; -- aAny >>= aAs; -- nSpeed = (sal_uInt8)aAs; -+ double fTransitionDuration = -1.0; -+ aAny >>= fTransitionDuration; -+ -+ if (fTransitionDuration >= 0) -+ { -+ if (fTransitionDuration <= 0.5) -+ { -+ aAs = css::presentation::AnimationSpeed::AnimationSpeed_FAST; -+ } -+ else if (fTransitionDuration >= 1.0) -+ { -+ aAs = css::presentation::AnimationSpeed::AnimationSpeed_SLOW; -+ } -+ else -+ { -+ aAs = css::presentation::AnimationSpeed::AnimationSpeed_MEDIUM; -+ } -+ } -+ else -+ aAs = css::presentation::AnimationSpeed::AnimationSpeed_MEDIUM; -+ -+ nSpeed = static_cast(aAs); - } - sal_Int16 nTT = 0; - if ( GetPropertyValue( aAny, mXPagePropSet, "TransitionType" ) -diff --git a/sd/source/filter/ppt/pptin.cxx b/sd/source/filter/ppt/pptin.cxx -index 4215cd7b60a8..91a541135204 100644 ---- a/sd/source/filter/ppt/pptin.cxx -+++ b/sd/source/filter/ppt/pptin.cxx -@@ -1786,11 +1786,11 @@ void ImplSdPPTImport::ImportPageEffect( SdPage* pPage, const bool bNewAnimations - } - - if ( nSpeed == 0 ) -- pPage->setTransitionDuration( 3.0 ); // slow -+ pPage->setTransitionDuration( 1.0 ); // slow - else if ( nSpeed == 1 ) -- pPage->setTransitionDuration( 2.0 ); // medium -+ pPage->setTransitionDuration( 0.75 ); // medium - else if ( nSpeed == 2 ) -- pPage->setTransitionDuration( 1.0 ); // fast -+ pPage->setTransitionDuration( 0.5 ); // fast - - if ( nBuildFlags & 0x400 ) // slidechange by time - { // time to show (in Ticks) --- -2.13.6 - - -From b49d7f142bf33a961b8a5ba1ba92e6dc85134940 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Szymon=20K=C5=82os?= -Date: Thu, 8 Feb 2018 23:21:38 +0100 -Subject: [PATCH 4/4] tdf#115394 correct transition in case of 0s -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Change-Id: I23d18acef0bd5db4a4ad6fc67d409e7ed5c93949 -Reviewed-on: https://gerrit.libreoffice.org/49462 -Tested-by: Jenkins -Reviewed-by: Szymon Kłos ---- - include/oox/ppt/slidetransitioncontext.hxx | 1 + - oox/source/ppt/slidetransitioncontext.cxx | 9 ++++++++- - sd/qa/unit/data/pptx/tdf115394-zero.pptx | Bin 0 -> 34352 bytes - sd/qa/unit/export-tests-ooxml2.cxx | 16 ++++++++++++++++ - sd/source/filter/eppt/pptx-epptooxml.cxx | 8 ++++---- - 5 files changed, 29 insertions(+), 5 deletions(-) - create mode 100644 sd/qa/unit/data/pptx/tdf115394-zero.pptx - -diff --git a/include/oox/ppt/slidetransitioncontext.hxx b/include/oox/ppt/slidetransitioncontext.hxx -index 3361fd07a5a5..f6b2e7a91d56 100644 ---- a/include/oox/ppt/slidetransitioncontext.hxx -+++ b/include/oox/ppt/slidetransitioncontext.hxx -@@ -47,6 +47,7 @@ namespace oox { namespace ppt { - private: - PropertyMap& maSlideProperties; - bool mbHasTransition; -+ bool mbHasTransitionDuration; - SlideTransition maTransition; - }; - -diff --git a/oox/source/ppt/slidetransitioncontext.cxx b/oox/source/ppt/slidetransitioncontext.cxx -index 7639df7c023b..94fc1c3862ae 100644 ---- a/oox/source/ppt/slidetransitioncontext.cxx -+++ b/oox/source/ppt/slidetransitioncontext.cxx -@@ -47,6 +47,7 @@ SlideTransitionContext::SlideTransitionContext( FragmentHandler2 const & rParent - : FragmentHandler2( rParent ) - , maSlideProperties( aProperties ) - , mbHasTransition( false ) -+, mbHasTransitionDuration( false ) - { - // ST_TransitionSpeed - maTransition.setOoxTransitionSpeed( rAttribs.getToken( XML_spd, XML_fast ) ); -@@ -54,7 +55,13 @@ SlideTransitionContext::SlideTransitionContext( FragmentHandler2 const & rParent - // p14:dur - sal_Int32 nDurationInMs = rAttribs.getInteger( P14_TOKEN( dur ), -1 ); - if( nDurationInMs > -1 ) -+ { -+ // In MSO 0 is visible as 0.01s -+ if( nDurationInMs == 0.0 ) -+ nDurationInMs = 10; - maTransition.setOoxTransitionSpeed( nDurationInMs / 1000.0 ); -+ mbHasTransitionDuration = true; -+ } - - // TODO - rAttribs.getBool( XML_advClick, true ); -@@ -182,7 +189,7 @@ void SlideTransitionContext::onEndElement() - { - if( isCurrentElement(PPT_TOKEN( transition )) ) - { -- if( mbHasTransition ) -+ if( mbHasTransition || mbHasTransitionDuration ) - { - maTransition.setSlideProperties( maSlideProperties ); - mbHasTransition = false; -diff --git a/sd/source/filter/eppt/pptx-epptooxml.cxx b/sd/source/filter/eppt/pptx-epptooxml.cxx -index 9ba23b0ac016..1ab1a7dc68ff 100644 ---- a/sd/source/filter/eppt/pptx-epptooxml.cxx -+++ b/sd/source/filter/eppt/pptx-epptooxml.cxx -@@ -641,10 +641,6 @@ void PowerPointExport::WriteTransition(const FSHelperPtr& pFS) - } - } - -- // check if we resolved what transition to export -- if (!nPPTTransitionType && !bOOXmlSpecificTransition) -- return; -- - AnimationSpeed animationSpeed = AnimationSpeed_MEDIUM; - const char* speed = nullptr; - sal_Int32 advanceTiming = -1; -@@ -703,6 +699,10 @@ void PowerPointExport::WriteTransition(const FSHelperPtr& pFS) - } - } - -+ // check if we resolved what transition to export or time is set -+ if (!nPPTTransitionType && !bOOXmlSpecificTransition && !isTransitionDurationSet) -+ return; -+ - if (GETA(Change)) - mAny >>= changeType; - bool isAdvanceTimingSet = advanceTiming != -1; --- -2.13.6 - diff --git a/bnc1060128.patch b/bnc1060128.patch deleted file mode 100644 index 483cf7c..0000000 --- a/bnc1060128.patch +++ /dev/null @@ -1,1130 +0,0 @@ -From 85753e0f2759960dd87f6ecf9245e764a9f9bf11 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Szymon=20K=C5=82os?= -Date: Thu, 4 Jan 2018 22:15:32 +0100 -Subject: [PATCH 1/2] tdf#114821 import complex data labels in bar chart -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -* import static text & fields: - VALUE, SERIESNAME, COLUMNNAME -* text is formatted -* DataPointCustomLabelField with field type - (DataPointCustomLabelFieldType) was introduced. -* text can have many portions & multiple lines -* unit tests for import data labels with formatting - -Not implemented: CELLREF field support which needs -importing some additional data from extLst - -Shows custom text as a label for data points. - -Change-Id: Iba8fd508eb16356b05586b93d7b8da32240d2b91 -Reviewed-on: https://gerrit.libreoffice.org/48243 -Tested-by: Jenkins -Reviewed-by: Szymon Kłos ---- - chart2/inc/unonames.hxx | 1 + - chart2/qa/extras/chart2import.cxx | 154 +++++++++++++++++++++ - chart2/qa/extras/data/pptx/tdf115107-2.pptx | Bin 0 -> 50519 bytes - chart2/qa/extras/data/pptx/tdf115107.pptx | Bin 0 -> 50726 bytes - chart2/source/chartcore.component | 1 + - chart2/source/model/main/DataPointProperties.cxx | 11 +- - chart2/source/model/main/DataPointProperties.hxx | 3 +- - chart2/source/model/main/FormattedString.cxx | 40 ++++++ - chart2/source/model/main/FormattedString.hxx | 16 ++- - chart2/source/view/charttypes/VSeriesPlotter.cxx | 126 +++++++++++++++-- - chart2/source/view/inc/AbstractShapeFactory.hxx | 7 + - chart2/source/view/inc/OpenglShapeFactory.hxx | 7 + - chart2/source/view/inc/ShapeFactory.hxx | 7 + - chart2/source/view/inc/VSeriesPlotter.hxx | 2 + - chart2/source/view/main/OpenglShapeFactory.cxx | 12 ++ - chart2/source/view/main/ShapeFactory.cxx | 94 +++++++++++++ - offapi/UnoApi_offapi.mk | 3 + - .../sun/star/chart2/DataPointCustomLabelField.idl | 26 ++++ - .../star/chart2/DataPointCustomLabelFieldType.idl | 33 +++++ - offapi/com/sun/star/chart2/DataPointProperties.idl | 8 ++ - .../sun/star/chart2/XDataPointCustomLabelField.idl | 43 ++++++ - oox/inc/drawingml/textfield.hxx | 2 + - oox/source/drawingml/chart/seriesconverter.cxx | 78 +++++++++++ - oox/source/token/properties.txt | 1 + - 24 files changed, 657 insertions(+), 18 deletions(-) - create mode 100644 chart2/qa/extras/data/pptx/tdf115107-2.pptx - create mode 100644 chart2/qa/extras/data/pptx/tdf115107.pptx - create mode 100644 offapi/com/sun/star/chart2/DataPointCustomLabelField.idl - create mode 100644 offapi/com/sun/star/chart2/DataPointCustomLabelFieldType.idl - create mode 100644 offapi/com/sun/star/chart2/XDataPointCustomLabelField.idl - -diff --git a/chart2/inc/unonames.hxx b/chart2/inc/unonames.hxx -index 867a155e14aa..44c3bf67d3cb 100644 ---- a/chart2/inc/unonames.hxx -+++ b/chart2/inc/unonames.hxx -@@ -29,6 +29,7 @@ - #define CHART_UNONAME_LABEL_BORDER_DASH "LabelBorderDash" - #define CHART_UNONAME_LABEL_BORDER_DASHNAME "LabelBorderDashName" - #define CHART_UNONAME_LABEL_BORDER_TRANS "LabelBorderTransparency" -+#define CHART_UNONAME_CUSTOM_LABEL_FIELDS "CustomLabelFields" - - #endif - -diff --git a/chart2/source/chartcore.component b/chart2/source/chartcore.component -index f7a1783eda68..45c87f93d633 100644 ---- a/chart2/source/chartcore.component -+++ b/chart2/source/chartcore.component -@@ -158,6 +158,7 @@ - constructor="com_sun_star_comp_chart_FormattedString_get_implementation"> - - -+ - - -diff --git a/chart2/source/model/main/DataPointProperties.cxx b/chart2/source/model/main/DataPointProperties.cxx -index 66e0b88d1f5a..dbc950c2195b 100644 ---- a/chart2/source/model/main/DataPointProperties.cxx -+++ b/chart2/source/model/main/DataPointProperties.cxx -@@ -30,7 +30,7 @@ - #include - #include - #include -- -+#include - #include - #include - #include -@@ -406,6 +406,12 @@ void DataPointProperties::AddPropertiesToVector( - cppu::UnoType::get(), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT ); -+ -+ rOutProperties.emplace_back( CHART_UNONAME_CUSTOM_LABEL_FIELDS, -+ PROP_DATAPOINT_CUSTOM_LABEL_FIELDS, -+ cppu::UnoType>>::get(), -+ beans::PropertyAttribute::BOUND -+ | beans::PropertyAttribute::MAYBEDEFAULT); - } - - void DataPointProperties::AddDefaultsToMap( -@@ -486,6 +492,9 @@ void DataPointProperties::AddDefaultsToMap( - PropertyHelper::setPropertyValueDefault(rOutMap, PROP_DATAPOINT_LABEL_BORDER_DASH, drawing::LineDash()); - PropertyHelper::setEmptyPropertyValueDefault(rOutMap, PROP_DATAPOINT_LABEL_BORDER_DASH_NAME); - PropertyHelper::setPropertyValueDefault(rOutMap, PROP_DATAPOINT_LABEL_BORDER_TRANS, 0); -+ -+ uno::Sequence> aFields(0); -+ PropertyHelper::setPropertyValueDefault(rOutMap, PROP_DATAPOINT_CUSTOM_LABEL_FIELDS, aFields); - } - - } // namespace chart -diff --git a/chart2/source/model/main/DataPointProperties.hxx b/chart2/source/model/main/DataPointProperties.hxx -index 3daf838e5da5..6490b5c8cfe5 100644 ---- a/chart2/source/model/main/DataPointProperties.hxx -+++ b/chart2/source/model/main/DataPointProperties.hxx -@@ -80,7 +80,8 @@ namespace DataPointProperties - PROP_DATAPOINT_LABEL_BORDER_WIDTH, - PROP_DATAPOINT_LABEL_BORDER_DASH, - PROP_DATAPOINT_LABEL_BORDER_DASH_NAME, -- PROP_DATAPOINT_LABEL_BORDER_TRANS -+ PROP_DATAPOINT_LABEL_BORDER_TRANS, -+ PROP_DATAPOINT_CUSTOM_LABEL_FIELDS - - // additionally some properites from ::chart::LineProperties - }; -diff --git a/chart2/source/model/main/FormattedString.cxx b/chart2/source/model/main/FormattedString.cxx -index 4f26acc95e3f..2dfcca2d35c5 100644 ---- a/chart2/source/model/main/FormattedString.cxx -+++ b/chart2/source/model/main/FormattedString.cxx -@@ -95,6 +95,8 @@ namespace chart - FormattedString::FormattedString() : - ::property::OPropertySet( m_aMutex ), - m_aString(), -+ m_aType(chart2::DataPointCustomLabelFieldType::DataPointCustomLabelFieldType_TEXT), -+ m_aGuid(), - m_xModifyEventForwarder( ModifyListenerHelper::createModifyEventForwarder()) - {} - -@@ -103,6 +105,8 @@ FormattedString::FormattedString( const FormattedString & rOther ) : - impl::FormattedString_Base(), - ::property::OPropertySet( rOther, m_aMutex ), - m_aString( rOther.m_aString ), -+ m_aType(rOther.m_aType), -+ m_aGuid(rOther.m_aGuid), - m_xModifyEventForwarder( ModifyListenerHelper::createModifyEventForwarder()) - {} - -@@ -133,6 +137,41 @@ void SAL_CALL FormattedString::setString( const OUString& String ) - - } - -+// ____ XDataPointCustomLabelField ____ -+css::chart2::DataPointCustomLabelFieldType SAL_CALL FormattedString::getFieldType() -+{ -+ MutexGuard aGuard(GetMutex()); -+ return m_aType; -+} -+ -+void SAL_CALL -+FormattedString::setFieldType(const css::chart2::DataPointCustomLabelFieldType Type) -+{ -+ { -+ MutexGuard aGuard(GetMutex()); -+ m_aType = Type; -+ } -+ //don't keep the mutex locked while calling out -+ fireModifyEvent(); -+} -+ -+OUString SAL_CALL FormattedString::getGuid() -+{ -+ MutexGuard aGuard( GetMutex()); -+ return m_aGuid; -+} -+ -+void SAL_CALL FormattedString::setGuid( const OUString& guid ) -+{ -+ { -+ MutexGuard aGuard( GetMutex()); -+ m_aGuid= guid; -+ } -+ //don't keep the mutex locked while calling out -+ fireModifyEvent(); -+ -+} -+ - // ____ XModifyBroadcaster ____ - void SAL_CALL FormattedString::addModifyListener( const uno::Reference< util::XModifyListener >& aListener ) - { -@@ -226,6 +265,7 @@ sal_Bool SAL_CALL FormattedString::supportsService( const OUString& rServiceName - css::uno::Sequence< OUString > SAL_CALL FormattedString::getSupportedServiceNames() - { - return { -+ "com.sun.star.chart2.DataPointCustomLabelField", - "com.sun.star.chart2.FormattedString", - "com.sun.star.beans.PropertySet" }; - } -diff --git a/chart2/source/model/main/FormattedString.hxx b/chart2/source/model/main/FormattedString.hxx -index 16c73372ebcc..aee7674081be 100644 ---- a/chart2/source/model/main/FormattedString.hxx -+++ b/chart2/source/model/main/FormattedString.hxx -@@ -26,6 +26,8 @@ - #include - #include - #include -+#include -+#include - #include - #include - -@@ -35,7 +37,7 @@ namespace chart - namespace impl - { - typedef ::cppu::WeakImplHelper< -- css::chart2::XFormattedString2, -+ css::chart2::XDataPointCustomLabelField, // inherits from XFormattedString2 - css::lang::XServiceInfo, - css::util::XCloneable, - css::util::XModifyBroadcaster, -@@ -82,6 +84,13 @@ private: - virtual OUString SAL_CALL getString() override; - virtual void SAL_CALL setString( const OUString& String ) override; - -+ // ____ XDataPointCustomLabelField ____ -+ virtual css::chart2::DataPointCustomLabelFieldType SAL_CALL getFieldType() override; -+ virtual void SAL_CALL -+ setFieldType( const css::chart2::DataPointCustomLabelFieldType FieldType ) override; -+ virtual OUString SAL_CALL getGuid() override; -+ void SAL_CALL setGuid( const OUString& guid ) override; -+ - // ____ OPropertySet ____ - virtual css::uno::Any GetDefaultValue( sal_Int32 nHandle ) const override; - -@@ -115,8 +124,13 @@ private: - - void fireModifyEvent(); - -+ // ____ XFormattedString ____ - OUString m_aString; - -+ // ____ XDataPointCustomLabelField ____ -+ css::chart2::DataPointCustomLabelFieldType m_aType; -+ OUString m_aGuid; -+ - css::uno::Reference< css::util::XModifyListener > m_xModifyEventForwarder; - }; - -diff --git a/chart2/source/view/charttypes/VSeriesPlotter.cxx b/chart2/source/view/charttypes/VSeriesPlotter.cxx -index af1544b22815..23cad6ada542 100644 ---- a/chart2/source/view/charttypes/VSeriesPlotter.cxx -+++ b/chart2/source/view/charttypes/VSeriesPlotter.cxx -@@ -56,6 +56,7 @@ - - #include - #include -+#include - #include - #include - #include -@@ -413,9 +414,21 @@ uno::Reference< drawing::XShape > VSeriesPlotter::createDataLabel( const uno::Re - , sal_Int32 nTextWidth ) - { - uno::Reference< drawing::XShape > xTextShape; -+ Sequence> aCustomLabels; - - try - { -+ const uno::Reference< css::beans::XPropertySet >& xPropertySet( -+ rDataSeries.getPropertiesOfPoint( nPointIndex ) ); -+ if( xPropertySet.is() ) -+ { -+ uno::Any aAny = xPropertySet->getPropertyValue( CHART_UNONAME_CUSTOM_LABEL_FIELDS ); -+ if( aAny.hasValue() ) -+ { -+ aAny >>= aCustomLabels; -+ } -+ } -+ - awt::Point aScreenPosition2D(rScreenPosition2D); - if(eAlignment==LABEL_ALIGN_LEFT) - aScreenPosition2D.X -= nOffset; -@@ -495,26 +508,75 @@ uno::Reference< drawing::XShape > VSeriesPlotter::createDataLabel( const uno::Re - } - - sal_Int32 nLineCountForSymbolsize = 0; -- Sequence< OUString > aTextList(3); -+ sal_uInt32 nTextListLength = 3; -+ sal_uInt32 nCustomLabelsCount = aCustomLabels.getLength(); -+ bool bUseCustomLabel = false; -+ Sequence< OUString > aTextList( nTextListLength ); -+ -+ bUseCustomLabel = nCustomLabelsCount > 0; -+ if( bUseCustomLabel ) - { -- if(pLabel->ShowCategoryName) -+ nTextListLength = ( nCustomLabelsCount > 3 ) ? nCustomLabelsCount : 3; -+ aSeparator = ""; -+ aTextList = Sequence< OUString >( nTextListLength ); -+ for( sal_uInt32 i = 0; i < nCustomLabelsCount; ++i ) - { -- if( m_pExplicitCategoriesProvider ) -+ switch( aCustomLabels[i]->getFieldType() ) - { -- Sequence< OUString > aCategories( m_pExplicitCategoriesProvider->getSimpleCategories() ); -- if( nPointIndex >= 0 && nPointIndex < aCategories.getLength() ) -+ case DataPointCustomLabelFieldType_VALUE: -+ { -+ aTextList[i] = getLabelTextForValue( rDataSeries, nPointIndex, fValue, false ); -+ break; -+ } -+ case DataPointCustomLabelFieldType_CATEGORYNAME: -+ { -+ aTextList[i] = getCategoryName( nPointIndex ); -+ break; -+ } -+ case DataPointCustomLabelFieldType_SERIESNAME: - { -- aTextList[0] = aCategories[nPointIndex]; -+ OUString aRole; -+ if ( m_xChartTypeModel ) -+ aRole = m_xChartTypeModel->getRoleOfSequenceForSeriesLabel(); -+ uno::Reference< XDataSeries > xSeries( rDataSeries.getModel() ); -+ aTextList[i] = DataSeriesHelper::getDataSeriesLabel( xSeries, aRole ); -+ break; - } -+ case DataPointCustomLabelFieldType_CELLREF: -+ { -+ // TODO: for now doesn't show placeholder -+ aTextList[i] = OUString(); -+ break; -+ } -+ case DataPointCustomLabelFieldType_TEXT: -+ { -+ aTextList[i] = aCustomLabels[i]->getString(); -+ break; -+ } -+ case DataPointCustomLabelFieldType_NEWLINE: -+ { -+ aTextList[i] = "\n"; -+ break; -+ } -+ default: -+ break; - } -+ aCustomLabels[i]->setString( aTextList[i] ); -+ } -+ } -+ else -+ { -+ if( pLabel->ShowCategoryName ) -+ { -+ aTextList[0] = getCategoryName( nPointIndex ); - } - -- if(pLabel->ShowNumber) -+ if( pLabel->ShowNumber ) - { - aTextList[1] = getLabelTextForValue(rDataSeries, nPointIndex, fValue, false); - } - -- if(pLabel->ShowNumberInPercent) -+ if( pLabel->ShowNumberInPercent ) - { - if(fSumValue==0.0) - fSumValue=1.0; -@@ -524,13 +586,13 @@ uno::Reference< drawing::XShape > VSeriesPlotter::createDataLabel( const uno::Re - - aTextList[2] = getLabelTextForValue(rDataSeries, nPointIndex, fValue, true); - } -+ } - -- for( sal_Int32 nN = 0; nN < 3; ++nN) -+ for( sal_Int32 nN = 0; nN < aTextList.getLength(); ++nN ) -+ { -+ if( !aTextList[nN].isEmpty() ) - { -- if( !aTextList[nN].isEmpty() ) -- { -- ++nLineCountForSymbolsize; -- } -+ ++nLineCountForSymbolsize; - } - } - -@@ -549,7 +611,28 @@ uno::Reference< drawing::XShape > VSeriesPlotter::createDataLabel( const uno::Re - // a multi-line label. - bool bMultiLineLabel = ( aSeparator == "\n" ); - -- if( bMultiLineLabel ) -+ if( bUseCustomLabel ) -+ { -+ Sequence< uno::Reference< XFormattedString > > aFormattedLabels( aCustomLabels.getLength() ); -+ for( int i = 0; i < aFormattedLabels.getLength(); i++ ) -+ { -+ uno::Reference< XFormattedString > xString( aCustomLabels[i], uno::UNO_QUERY ); -+ aFormattedLabels[i] = xString; -+ } -+ -+ // center the text -+ sal_uInt32 nProperties = pPropNames->getLength(); -+ pPropNames->realloc( nProperties + 1 ); -+ pPropValues->realloc( nProperties + 1 ); -+ (*pPropNames)[ nProperties ] = UNO_NAME_EDIT_PARA_ADJUST; -+ (*pPropValues)[ nProperties ] <<= style::ParagraphAdjust_CENTER; -+ -+ // create text shape -+ xTextShape = AbstractShapeFactory::getOrCreateShapeFactory( m_xShapeFactory )-> -+ createText( xTarget_, aFormattedLabels, *pPropNames, *pPropValues, -+ AbstractShapeFactory::makeTransformation( aScreenPosition2D ) ); -+ } -+ else if( bMultiLineLabel ) - { - // prepare properties for each paragraph - // we want to have the value and percent value centered respect -@@ -575,7 +658,7 @@ uno::Reference< drawing::XShape > VSeriesPlotter::createDataLabel( const uno::Re - { - // join text list elements - OUStringBuffer aText; -- for( sal_Int32 nN = 0; nN < 3; ++nN) -+ for( sal_uInt32 nN = 0; nN < nTextListLength; ++nN) - { - if( !aTextList[nN].isEmpty() ) - { -@@ -2050,6 +2133,19 @@ VDataSeries* VSeriesPlotter::getFirstSeries() const - return nullptr; - } - -+OUString VSeriesPlotter::getCategoryName( sal_Int32 nPointIndex ) const -+{ -+ if (m_pExplicitCategoriesProvider) -+ { -+ Sequence< OUString > aCategories(m_pExplicitCategoriesProvider->getSimpleCategories()); -+ if (nPointIndex >= 0 && nPointIndex < aCategories.getLength()) -+ { -+ return aCategories[nPointIndex]; -+ } -+ } -+ return OUString(); -+} -+ - uno::Sequence< OUString > VSeriesPlotter::getSeriesNames() const - { - std::vector aRetVector; -diff --git a/chart2/source/view/inc/AbstractShapeFactory.hxx b/chart2/source/view/inc/AbstractShapeFactory.hxx -index 26512214341d..e281e6291ebf 100644 ---- a/chart2/source/view/inc/AbstractShapeFactory.hxx -+++ b/chart2/source/view/inc/AbstractShapeFactory.hxx -@@ -200,6 +200,13 @@ public: - , const css::uno::Any& rATransformation ) = 0; - - virtual css::uno::Reference< css::drawing::XShape > -+ createText(const css::uno::Reference< css::drawing::XShapes >& xTarget -+ , css::uno::Sequence< css::uno::Reference< css::chart2::XFormattedString > >& xFormattedString -+ , const tNameSequence& rPropNames -+ , const tAnySequence& rPropValues -+ , const css::uno::Any& rATransformation) = 0; -+ -+ virtual css::uno::Reference< css::drawing::XShape > - createText( const css::uno::Reference< css::drawing::XShapes >& xTarget2D, - const css::awt::Size& rSize, - const css::awt::Point& rPosition, -diff --git a/chart2/source/view/inc/OpenglShapeFactory.hxx b/chart2/source/view/inc/OpenglShapeFactory.hxx -index 01b2223cf59c..7963068ce79e 100644 ---- a/chart2/source/view/inc/OpenglShapeFactory.hxx -+++ b/chart2/source/view/inc/OpenglShapeFactory.hxx -@@ -151,6 +151,13 @@ public: - , const css::uno::Any& rATransformation ) override; - - virtual css::uno::Reference< css::drawing::XShape > -+ createText( const css::uno::Reference< css::drawing::XShapes >& xTarget -+ , css::uno::Sequence< css::uno::Reference< css::chart2::XFormattedString > >& xFormattedString -+ , const tNameSequence& rPropNames -+ , const tAnySequence& rPropValues -+ , const css::uno::Any& rATransformation ) override; -+ -+ virtual css::uno::Reference< css::drawing::XShape > - createText( const css::uno::Reference< css::drawing::XShapes >& xTarget2D, - const css::awt::Size& rSize, - const css::awt::Point& rPosition, -diff --git a/chart2/source/view/inc/ShapeFactory.hxx b/chart2/source/view/inc/ShapeFactory.hxx -index 02a75d3a0764..ec1080732142 100644 ---- a/chart2/source/view/inc/ShapeFactory.hxx -+++ b/chart2/source/view/inc/ShapeFactory.hxx -@@ -189,6 +189,13 @@ public: - , const css::uno::Any& rATransformation ) override; - - virtual css::uno::Reference< css::drawing::XShape > -+ createText(const css::uno::Reference< css::drawing::XShapes >& xTarget -+ , css::uno::Sequence< css::uno::Reference< css::chart2::XFormattedString > >& xFormattedString -+ , const tNameSequence& rPropNames -+ , const tAnySequence& rPropValues -+ , const css::uno::Any& rATransformation) override; -+ -+ virtual css::uno::Reference< css::drawing::XShape > - createText( const css::uno::Reference< css::drawing::XShapes >& xTarget2D, - const css::awt::Size& rSize, - const css::awt::Point& rPosition, -diff --git a/chart2/source/view/inc/VSeriesPlotter.hxx b/chart2/source/view/inc/VSeriesPlotter.hxx -index 54f3f7733d63..d8b1cf05eb2b 100644 ---- a/chart2/source/view/inc/VSeriesPlotter.hxx -+++ b/chart2/source/view/inc/VSeriesPlotter.hxx -@@ -389,6 +389,8 @@ protected: - - VDataSeries* getFirstSeries() const; - -+ OUString getCategoryName( sal_Int32 nPointIndex ) const; -+ - protected: - PlottingPositionHelper* m_pMainPosHelper; - -diff --git a/chart2/source/view/main/OpenglShapeFactory.cxx b/chart2/source/view/main/OpenglShapeFactory.cxx -index 9cb3318f7fa2..e6c4980b8017 100644 ---- a/chart2/source/view/main/OpenglShapeFactory.cxx -+++ b/chart2/source/view/main/OpenglShapeFactory.cxx -@@ -408,6 +408,18 @@ uno::Reference< drawing::XShape > - } - - uno::Reference< drawing::XShape > -+ OpenglShapeFactory::createText( const uno::Reference< drawing::XShapes >& xTarget -+ , uno::Sequence< uno::Reference< chart2::XFormattedString > >& rFormattedString -+ , const tNameSequence& rPropNames -+ , const tAnySequence& rPropValues -+ , const uno::Any& rATransformation ) -+{ -+ dummy::DummyText* pText = new dummy::DummyText( rFormattedString[0]->getString(), rPropNames, rPropValues, -+ rATransformation, xTarget, 0 ); -+ return pText; -+} -+ -+uno::Reference< drawing::XShape > - OpenglShapeFactory::createText( const uno::Reference< drawing::XShapes >& xTarget, - const awt::Size& , const awt::Point& rPos, - uno::Sequence< uno::Reference< chart2::XFormattedString > >& rFormattedString, -diff --git a/chart2/source/view/main/ShapeFactory.cxx b/chart2/source/view/main/ShapeFactory.cxx -index 3ed37f316225..2a72f969fa10 100644 ---- a/chart2/source/view/main/ShapeFactory.cxx -+++ b/chart2/source/view/main/ShapeFactory.cxx -@@ -2237,6 +2237,100 @@ uno::Reference< drawing::XShape > - } - - uno::Reference< drawing::XShape > -+ ShapeFactory::createText( const uno::Reference< drawing::XShapes >& xTarget -+ , uno::Sequence< uno::Reference< chart2::XFormattedString > >& xFormattedString -+ , const tNameSequence& rPropNames -+ , const tAnySequence& rPropValues -+ , const uno::Any& rATransformation ) -+{ -+ if( !xTarget.is() ) -+ return nullptr; -+ -+ if( !xFormattedString.hasElements() ) -+ return nullptr; -+ -+ sal_Int32 nNumberOfParagraphs = xFormattedString.getLength(); -+ -+ bool bNotEmpty = false; -+ for( sal_Int32 nN = 0; nN < nNumberOfParagraphs; ++nN ) -+ { -+ if( !xFormattedString[nN]->getString().isEmpty() ) -+ { -+ bNotEmpty = true; -+ break; -+ } -+ } -+ if( !bNotEmpty ) -+ return nullptr; -+ -+ //create shape and add to page -+ uno::Reference< drawing::XShape > xShape( -+ m_xShapeFactory->createInstance( -+ "com.sun.star.drawing.TextShape" ), uno::UNO_QUERY ); -+ xTarget->add(xShape); -+ -+ //set paragraph properties -+ bNotEmpty = false; -+ Reference< text::XText > xText( xShape, uno::UNO_QUERY ); -+ if( xText.is() ) -+ { -+ // the first cursor is used for appending the next paragraph, -+ // after a new string has been inserted the cursor is moved at the end -+ // of the inserted string -+ // the second cursor is used for selecting the paragraph and apply the -+ // passed text properties -+ Reference< text::XTextCursor > xInsertCursor = xText->createTextCursor(); -+ Reference< text::XTextCursor > xSelectionCursor = xText->createTextCursor(); -+ if( xInsertCursor.is() && xSelectionCursor.is() ) -+ { -+ uno::Reference< beans::XPropertySet > xSelectionProp( xSelectionCursor, uno::UNO_QUERY ); -+ if( xSelectionProp.is() ) -+ { -+ for( sal_Int32 nN = 0; nN < nNumberOfParagraphs; ++nN ) -+ { -+ if( !xFormattedString[nN]->getString().isEmpty() ) -+ { -+ xInsertCursor->gotoEnd( false ); -+ xSelectionCursor->gotoEnd( false ); -+ xText->insertString( xInsertCursor, xFormattedString[nN]->getString(), false ); -+ bNotEmpty = true; -+ xSelectionCursor->gotoEnd( true ); // select current paragraph -+ uno::Reference< beans::XPropertySet > xStringProperties( xFormattedString[nN], uno::UNO_QUERY ); -+ PropertyMapper::setMappedProperties( xSelectionProp, xStringProperties, -+ PropertyMapper::getPropertyNameMapForTextShapeProperties() ); -+ } -+ } -+ } -+ } -+ } -+ -+ if( !bNotEmpty ) -+ return nullptr; -+ -+ uno::Reference< beans::XPropertySet > xProp( xShape, uno::UNO_QUERY ); -+ if( xProp.is() ) -+ { -+ //set whole text shape properties -+ PropertyMapper::setMultiProperties( rPropNames, rPropValues, xProp ); -+ -+ if( rATransformation.hasValue() ) -+ { -+ //set position matrix -+ //the matrix needs to be set at the end behind autogrow and such position influencing properties -+ try -+ { -+ xProp->setPropertyValue( "Transformation", rATransformation ); -+ } -+ catch( const uno::Exception& e ) -+ { -+ SAL_WARN("chart2", "Exception caught. " << e ); -+ } -+ } -+ } -+ return xShape; -+} -+ -+uno::Reference< drawing::XShape > - ShapeFactory::createText( const uno::Reference< drawing::XShapes >& xTarget, - const awt::Size& rSize, - const awt::Point& rPos, -diff --git a/offapi/UnoApi_offapi.mk b/offapi/UnoApi_offapi.mk -index 472771a5c15d..b50864a25880 100644 ---- a/offapi/UnoApi_offapi.mk -+++ b/offapi/UnoApi_offapi.mk -@@ -69,6 +69,8 @@ $(eval $(call gb_UnoApi_add_idlfiles_nohdl,offapi,com/sun/star/awt/tree,\ - $(eval $(call gb_UnoApi_add_idlfiles_nohdl,offapi,com/sun/star/chart2,\ - CartesianCoordinateSystem2d \ - CartesianCoordinateSystem3d \ -+ DataPointCustomLabelField \ -+ DataPointCustomLabelFieldType \ - ExponentialRegressionCurve \ - ExponentialScaling \ - FormattedString \ -@@ -2024,6 +2026,7 @@ $(eval $(call gb_UnoApi_add_idlfiles,offapi,com/sun/star/chart2,\ - XCoordinateSystem \ - XCoordinateSystemContainer \ - XDataInterpreter \ -+ XDataPointCustomLabelField \ - XDataSeries \ - XDataSeriesContainer \ - XDefaultSizeTransmitter \ -diff --git a/offapi/com/sun/star/chart2/DataPointCustomLabelField.idl b/offapi/com/sun/star/chart2/DataPointCustomLabelField.idl -new file mode 100644 -index 000000000000..cebe1c3273f3 ---- /dev/null -+++ b/offapi/com/sun/star/chart2/DataPointCustomLabelField.idl -@@ -0,0 +1,26 @@ -+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ -+/* -+ * This file is part of the LibreOffice project. -+ * -+ * This Source Code Form is subject to the terms of the Mozilla Public -+ * License, v. 2.0. If a copy of the MPL was not distributed with this -+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. -+ */ -+ -+#ifndef com_sun_star_chart2_DataPointCustomLabelField_idl -+#define com_sun_star_chart2_DataPointCustomLabelField_idl -+ -+#include -+ -+module com { module sun { module star { module chart2 { -+ -+/** -+ @since LibreOffice 6.1 -+*/ -+service DataPointCustomLabelField : XDataPointCustomLabelField; -+ -+}; }; }; }; -+ -+#endif -+ -+/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ -\ No newline at end of file -diff --git a/offapi/com/sun/star/chart2/DataPointCustomLabelFieldType.idl b/offapi/com/sun/star/chart2/DataPointCustomLabelFieldType.idl -new file mode 100644 -index 000000000000..0b7f925342a6 ---- /dev/null -+++ b/offapi/com/sun/star/chart2/DataPointCustomLabelFieldType.idl -@@ -0,0 +1,33 @@ -+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ -+/* -+ * This file is part of the LibreOffice project. -+ * -+ * This Source Code Form is subject to the terms of the Mozilla Public -+ * License, v. 2.0. If a copy of the MPL was not distributed with this -+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. -+ */ -+ -+#ifndef com_sun_star_chart2_DataPointCustomLabelFieldType_idl -+#define com_sun_star_chart2_DataPointCustomLabelFieldType_idl -+ -+module com { module sun { module star { module chart2 { -+ -+/** The Field type enumeration for custom data point labels. -+ -+ @since LibreOffice 6.1 -+ */ -+enum DataPointCustomLabelFieldType -+{ -+ TEXT, -+ VALUE, -+ SERIESNAME, -+ CATEGORYNAME, -+ CELLREF, -+ NEWLINE -+}; -+ -+}; }; }; }; -+ -+#endif -+ -+/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ -\ No newline at end of file -diff --git a/offapi/com/sun/star/chart2/DataPointProperties.idl b/offapi/com/sun/star/chart2/DataPointProperties.idl -index 31bd0a42696c..df5cf071ee90 100644 ---- a/offapi/com/sun/star/chart2/DataPointProperties.idl -+++ b/offapi/com/sun/star/chart2/DataPointProperties.idl -@@ -31,6 +31,7 @@ - #include - #include - #include -+#include - - module com - { -@@ -258,6 +259,13 @@ service DataPointProperties - - [property] DataPointLabel Label; - -+ /** specifies a text with possible fields that is used as a data point label, -+ if set then Label property is ignored -+ -+ @since LibreOffice 6.1 -+ */ -+ [optional, property] sequence CustomLabelFields; -+ - /** specifies a string that is used to separate the parts of a data label (caption) - */ - [optional, property] string LabelSeparator; -diff --git a/offapi/com/sun/star/chart2/XDataPointCustomLabelField.idl b/offapi/com/sun/star/chart2/XDataPointCustomLabelField.idl -new file mode 100644 -index 000000000000..a6a1b0151c94 ---- /dev/null -+++ b/offapi/com/sun/star/chart2/XDataPointCustomLabelField.idl -@@ -0,0 +1,43 @@ -+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ -+/* -+ * This file is part of the LibreOffice project. -+ * -+ * This Source Code Form is subject to the terms of the Mozilla Public -+ * License, v. 2.0. If a copy of the MPL was not distributed with this -+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. -+ */ -+#ifndef com_sun_star_chart2_DataPointCustomLabelField_idl -+#define com_sun_star_chart2_DataPointCustomLabelField_idl -+ -+#include -+#include -+ -+module com { module sun { module star { module chart2 { -+ -+/** -+ Provides interface for DataPointCustomLabelField service. -+ -+ @since LibreOffice 6.1 -+*/ -+interface XDataPointCustomLabelField : XFormattedString2 -+{ -+ DataPointCustomLabelFieldType getFieldType(); -+ -+ void setFieldType( [in] DataPointCustomLabelFieldType fieldType ); -+ -+ string getGuid(); -+ -+ void setGuid( [in] string guid ); -+ -+}; -+ -+ -+ -+} ; // chart2 -+} ; // com -+} ; // sun -+} ; // star -+ -+#endif -+ -+/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ -diff --git a/oox/inc/drawingml/textfield.hxx b/oox/inc/drawingml/textfield.hxx -index 9f5bf9cf27af..7cc15a04fce4 100644 ---- a/oox/inc/drawingml/textfield.hxx -+++ b/oox/inc/drawingml/textfield.hxx -@@ -38,7 +38,9 @@ public: - const TextParagraphProperties& getTextParagraphProperties() const { return maTextParagraphProperties; } - - void setType( const OUString& sType ) { msType = sType; } -+ const OUString& getType() const { return msType; } - void setUuid( const OUString & sUuid ) { msUuid = sUuid; } -+ const OUString& getUuid() const { return msUuid; } - - virtual sal_Int32 insertAt( - const ::oox::core::XmlFilterBase& rFilterBase, -diff --git a/oox/source/drawingml/chart/seriesconverter.cxx b/oox/source/drawingml/chart/seriesconverter.cxx -index 6eceb213ea04..1a5c2ba8d96d 100644 ---- a/oox/source/drawingml/chart/seriesconverter.cxx -+++ b/oox/source/drawingml/chart/seriesconverter.cxx -@@ -22,11 +22,16 @@ - #include - #include - #include -+#include -+#include -+#include - #include - #include - #include - #include - #include -+#include -+#include - #include - #include - #include -@@ -41,6 +46,10 @@ - #include - #include - #include -+#include -+#include -+#include -+#include - - namespace oox { - namespace drawingml { -@@ -200,6 +209,20 @@ void importBorderProperties( PropertySet& rPropSet, Shape& rShape, const Graphic - rPropSet.setProperty(PROP_LabelBorderColor, uno::makeAny(nColor)); - } - -+DataPointCustomLabelFieldType lcl_ConvertFieldNameToFieldEnum( const OUString& rField ) -+{ -+ if (rField == "VALUE") -+ return DataPointCustomLabelFieldType::DataPointCustomLabelFieldType_VALUE; -+ else if (rField == "SERIESNAME") -+ return DataPointCustomLabelFieldType::DataPointCustomLabelFieldType_SERIESNAME; -+ else if (rField == "CATEGORYNAME") -+ return DataPointCustomLabelFieldType::DataPointCustomLabelFieldType_CATEGORYNAME; -+ else if (rField == "CELLREF") -+ return DataPointCustomLabelFieldType::DataPointCustomLabelFieldType_CELLREF; -+ else -+ return DataPointCustomLabelFieldType::DataPointCustomLabelFieldType_TEXT; -+} -+ - } // namespace - - DataLabelConverter::DataLabelConverter( const ConverterRoot& rParent, DataLabelModel& rModel ) : -@@ -247,6 +270,61 @@ void DataLabelConverter::convertFromModel( const Reference< XDataSeries >& rxDat - - if (mrModel.mxShapeProp) - importBorderProperties(aPropSet, *mrModel.mxShapeProp, getFilter().getGraphicHelper()); -+ -+ if( mrModel.mxText && mrModel.mxText->mxTextBody && mrModel.mxText->mxTextBody->getParagraphs().size() ) -+ { -+ css::uno::Reference< XComponentContext > xContext = getComponentContext(); -+ uno::Sequence< css::uno::Reference< XDataPointCustomLabelField > > aSequence; -+ -+ auto& rParagraphs = mrModel.mxText->mxTextBody->getParagraphs(); -+ -+ int nSequenceSize = 0; -+ for( auto& pParagraph : rParagraphs ) -+ nSequenceSize += pParagraph->getRuns().size(); -+ -+ int nParagraphs = rParagraphs.size(); -+ if( nParagraphs > 1 ) -+ nSequenceSize += nParagraphs - 1; -+ -+ aSequence.realloc( nSequenceSize ); -+ -+ int nPos = 0; -+ for( auto& pParagraph : rParagraphs ) -+ { -+ for( auto& pRun : pParagraph->getRuns() ) -+ { -+ css::uno::Reference< XDataPointCustomLabelField > xCustomLabel = DataPointCustomLabelField::create( xContext ); -+ -+ // Store properties -+ oox::PropertySet aPropertySet( xCustomLabel ); -+ pRun->getTextCharacterProperties().pushToPropSet( aPropertySet, getFilter() ); -+ -+ TextField* pField = nullptr; -+ if( ( pField = dynamic_cast< TextField* >( pRun.get() ) ) ) -+ { -+ xCustomLabel->setString( pField->getText() ); -+ xCustomLabel->setFieldType( lcl_ConvertFieldNameToFieldEnum( pField->getType() ) ); -+ xCustomLabel->setGuid( pField->getUuid() ); -+ } -+ else if( pRun.get() ) -+ { -+ xCustomLabel->setString( pRun->getText() ); -+ xCustomLabel->setFieldType( DataPointCustomLabelFieldType::DataPointCustomLabelFieldType_TEXT ); -+ } -+ aSequence[ nPos++ ] = xCustomLabel; -+ } -+ -+ if( nParagraphs > 1 && nPos < nSequenceSize ) -+ { -+ css::uno::Reference< XDataPointCustomLabelField > xCustomLabel = DataPointCustomLabelField::create( xContext ); -+ xCustomLabel->setFieldType( DataPointCustomLabelFieldType::DataPointCustomLabelFieldType_NEWLINE ); -+ xCustomLabel->setString("\n"); -+ aSequence[ nPos++ ] = xCustomLabel; -+ } -+ } -+ -+ aPropSet.setProperty( PROP_CustomLabelFields, makeAny( aSequence ) ); -+ } - } - catch( Exception& ) - { -diff --git a/oox/source/token/properties.txt b/oox/source/token/properties.txt -index e6bc79ff3d08..1c700894a112 100644 ---- a/oox/source/token/properties.txt -+++ b/oox/source/token/properties.txt -@@ -278,6 +278,7 @@ LabelBorderWidth - LabelPlacement - LabelPosition - LabelSeparator -+CustomLabelFields - LayoutInfo - LeftBorder - LeftBorderDistance --- -2.13.6 - - -From 12415c5d82817b4d056d205b6afc940872b83682 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Szymon=20K=C5=82os?= -Date: Sat, 27 Jan 2018 20:29:38 +0100 -Subject: [PATCH 2/2] tdf#114821 export complex data labels in charts -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Change-Id: I9b0893dfde4efc10bb05e6e17b7128b016efeb71 -Reviewed-on: https://gerrit.libreoffice.org/48788 -Tested-by: Jenkins -Reviewed-by: Szymon Kłos ---- - chart2/qa/extras/chart2export.cxx | 159 ++++++++++++++++++++++++++++++++++++++ - oox/source/export/chartexport.cxx | 107 ++++++++++++++++++++++++- - 2 files changed, 262 insertions(+), 4 deletions(-) - -diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx -index 128a166c6c4a..63375d6c2fca 100644 ---- a/oox/source/export/chartexport.cxx -+++ b/oox/source/export/chartexport.cxx -@@ -60,6 +60,8 @@ - #include - #include - #include -+#include -+#include - #include - #include - #include -@@ -2866,17 +2868,111 @@ const char* toOOXMLPlacement( sal_Int32 nPlacement ) - return "outEnd"; - } - --void writeLabelProperties( -- const FSHelperPtr& pFS, const uno::Reference& xPropSet, const LabelPlacementParam& rLabelParam ) -+OUString getFieldTypeString( const chart2::DataPointCustomLabelFieldType aType ) -+{ -+ switch (aType) -+ { -+ case chart2::DataPointCustomLabelFieldType_CATEGORYNAME: -+ return OUString("CATEGORYNAME"); -+ -+ case chart2::DataPointCustomLabelFieldType_SERIESNAME: -+ return OUString("SERIESNAME"); -+ -+ case chart2::DataPointCustomLabelFieldType_VALUE: -+ return OUString("VALUE"); -+ -+ case chart2::DataPointCustomLabelFieldType_CELLREF: -+ return OUString("CELLREF"); -+ -+ default: -+ break; -+ } -+ return OUString(); -+} -+ -+void writeRunProperties( ChartExport* pChartExport, Reference& xPropertySet ) -+{ -+ bool bDummy = false; -+ sal_Int32 nDummy; -+ pChartExport->WriteRunProperties(xPropertySet, false, XML_rPr, true, bDummy, nDummy); -+} -+ -+void writeCustomLabel( const FSHelperPtr& pFS, ChartExport* pChartExport, -+ const Sequence>& rCustomLabelFields ) -+{ -+ pFS->startElement(FSNS(XML_c, XML_tx), FSEND); -+ pFS->startElement(FSNS(XML_c, XML_rich), FSEND); -+ -+ // TODO: body properties? -+ pFS->singleElement(FSNS(XML_a, XML_bodyPr), FSEND); -+ -+ OUString sFieldType; -+ bool bNewParagraph; -+ pFS->startElement(FSNS(XML_a, XML_p), FSEND); -+ -+ for (auto& rField : rCustomLabelFields) -+ { -+ Reference xPropertySet(rField, UNO_QUERY); -+ chart2::DataPointCustomLabelFieldType aType = rField->getFieldType(); -+ sFieldType.clear(); -+ bNewParagraph = false; -+ -+ if (aType == chart2::DataPointCustomLabelFieldType_NEWLINE) -+ bNewParagraph = true; -+ else if (aType != chart2::DataPointCustomLabelFieldType_TEXT) -+ sFieldType = getFieldTypeString(aType); -+ -+ if (bNewParagraph) -+ { -+ pFS->endElement(FSNS(XML_a, XML_p)); -+ pFS->startElement(FSNS(XML_a, XML_p), FSEND); -+ continue; -+ } -+ -+ if (sFieldType.isEmpty()) -+ { -+ // Normal text run -+ pFS->startElement(FSNS(XML_a, XML_r), FSEND); -+ writeRunProperties(pChartExport, xPropertySet); -+ -+ pFS->startElement(FSNS(XML_a, XML_t), FSEND); -+ pFS->writeEscaped(rField->getString()); -+ pFS->endElement(FSNS(XML_a, XML_t)); -+ -+ pFS->endElement(FSNS(XML_a, XML_r)); -+ } -+ else -+ { -+ // Field -+ pFS->startElement(FSNS(XML_a, XML_fld), XML_id, USS(rField->getGuid()), XML_type, USS(sFieldType), FSEND); -+ writeRunProperties(pChartExport, xPropertySet); -+ -+ pFS->startElement(FSNS(XML_a, XML_t), FSEND); -+ pFS->writeEscaped(rField->getString()); -+ pFS->endElement(FSNS(XML_a, XML_t)); -+ -+ pFS->endElement(FSNS(XML_a, XML_fld)); -+ } -+ } -+ -+ pFS->endElement(FSNS(XML_a, XML_p)); -+ pFS->endElement(FSNS(XML_c, XML_rich)); -+ pFS->endElement(FSNS(XML_c, XML_tx)); -+} -+ -+void writeLabelProperties( const FSHelperPtr& pFS, ChartExport* pChartExport, -+ const uno::Reference& xPropSet, const LabelPlacementParam& rLabelParam ) - { - if (!xPropSet.is()) - return; - - chart2::DataPointLabel aLabel; -+ Sequence> aCustomLabelFields; - sal_Int32 nLabelBorderWidth = 0; - sal_Int32 nLabelBorderColor = 0x00FFFFFF; - - xPropSet->getPropertyValue("Label") >>= aLabel; -+ xPropSet->getPropertyValue("CustomLabelFields") >>= aCustomLabelFields; - xPropSet->getPropertyValue("LabelBorderWidth") >>= nLabelBorderWidth; - xPropSet->getPropertyValue("LabelBorderColor") >>= nLabelBorderColor; - -@@ -2897,6 +2993,9 @@ void writeLabelProperties( - pFS->endElement(FSNS(XML_c, XML_spPr)); - } - -+ if (aCustomLabelFields.getLength() > 0) -+ writeCustomLabel(pFS, pChartExport, aCustomLabelFields); -+ - if (rLabelParam.mbExport) - { - sal_Int32 nLabelPlacement = rLabelParam.meDefault; -@@ -2992,12 +3091,12 @@ void ChartExport::exportDataLabels( - // Individual label property that overwrites the baseline. - pFS->startElement(FSNS(XML_c, XML_dLbl), FSEND); - pFS->singleElement(FSNS(XML_c, XML_idx), XML_val, I32S(nIdx), FSEND); -- writeLabelProperties(pFS, xLabelPropSet, aParam); -+ writeLabelProperties(pFS, this, xLabelPropSet, aParam); - pFS->endElement(FSNS(XML_c, XML_dLbl)); - } - - // Baseline label properties for all labels. -- writeLabelProperties(pFS, xPropSet, aParam); -+ writeLabelProperties(pFS, this, xPropSet, aParam); - - pFS->singleElement(FSNS(XML_c, XML_showLeaderLines), - XML_val, "0", --- -2.13.6 - diff --git a/bnc1094359.patch b/bnc1094359.patch deleted file mode 100644 index ae80283..0000000 --- a/bnc1094359.patch +++ /dev/null @@ -1,262 +0,0 @@ -From 68dc10a1767d8c555d48699ad6349799b4aea286 Mon Sep 17 00:00:00 2001 -From: Miklos Vajna -Date: Mon, 16 Apr 2018 10:11:26 +0200 -Subject: [PATCH] tdf#117028 sw: conditionally consider fill of shape for - in-textbox auto color - -Commit f966767e1ccfa432da33e1a0fd6de69e17a36bc3 (tdf#116925 sw: consider -fill styles of shape for in-textbox auto color, 2018-04-10) did this -unconditionally, but there are two cases: - -1) Shape (with textbox) has a fill, in that case auto text color of -textbox should consider the shape fill. - -2) Shape has no fill, in that case the shape fill should not be -considered when counting the background of a transparent fly frame. - -Fix 2) without breaking 1) by making the change to -SwFrame::GetBackgroundBrush() opt-in, and only use it for auto font -color, not in other cases. - -Change-Id: I761a1b7d6ecf47586edbe5641ec012f22f6a53d7 -Reviewed-on: https://gerrit.libreoffice.org/52941 -Reviewed-by: Miklos Vajna -Tested-by: Jenkins -(cherry picked from commit d9420a64fbb288020d33b681f40a858db49afca7) -Reviewed-on: https://gerrit.libreoffice.org/52972 -Reviewed-by: Mike Kaganski -(cherry picked from commit 15593a5421a7f14ac8a4056aa233443130bcda6f) ---- - sw/qa/extras/layout/data/tdf117028.docx | Bin 0 -> 13619 bytes - sw/qa/extras/layout/layout.cxx | 24 ++++++++++++++++++++++++ - sw/source/core/access/accpara.cxx | 2 +- - sw/source/core/doc/notxtfrm.cxx | 2 +- - sw/source/core/inc/frame.hxx | 3 ++- - sw/source/core/layout/paintfrm.cxx | 23 ++++++++++++++--------- - sw/source/core/text/inftxt.cxx | 2 +- - sw/source/core/txtnode/fntcache.cxx | 2 +- - 8 files changed, 44 insertions(+), 14 deletions(-) - create mode 100644 sw/qa/extras/layout/data/tdf117028.docx - -diff --git a/sw/source/core/access/accpara.cxx b/sw/source/core/access/accpara.cxx -index 0d60a9d09af3..83527b5102c3 100644 ---- a/sw/source/core/access/accpara.cxx -+++ b/sw/source/core/access/accpara.cxx -@@ -998,7 +998,7 @@ static bool lcl_GetBackgroundColor( Color & rColor, - drawinglayer::attribute::SdrAllFillAttributesHelperPtr aFillAttributes; - - if ( pFrame && -- pFrame->GetBackgroundBrush( aFillAttributes, pBackgrdBrush, pSectionTOXColor, aDummyRect, false ) ) -+ pFrame->GetBackgroundBrush( aFillAttributes, pBackgrdBrush, pSectionTOXColor, aDummyRect, false, /*bConsiderTextBox=*/false ) ) - { - if ( pSectionTOXColor ) - { -diff --git a/sw/source/core/doc/notxtfrm.cxx b/sw/source/core/doc/notxtfrm.cxx -index 4a5176d50e6b..fd21b43bb3c7 100644 ---- a/sw/source/core/doc/notxtfrm.cxx -+++ b/sw/source/core/doc/notxtfrm.cxx -@@ -187,7 +187,7 @@ static void lcl_ClearArea( const SwFrame &rFrame, - SwRect aOrigRect; - drawinglayer::attribute::SdrAllFillAttributesHelperPtr aFillAttributes; - -- if ( rFrame.GetBackgroundBrush( aFillAttributes, pItem, pCol, aOrigRect, false ) ) -+ if ( rFrame.GetBackgroundBrush( aFillAttributes, pItem, pCol, aOrigRect, false, /*bConsiderTextBox=*/false ) ) - { - SwRegionRects const region(rPtArea); - basegfx::utils::B2DClipState aClipState; -diff --git a/sw/source/core/inc/frame.hxx b/sw/source/core/inc/frame.hxx -index ca26c68bcc15..71363e95e2b1 100644 ---- a/sw/source/core/inc/frame.hxx -+++ b/sw/source/core/inc/frame.hxx -@@ -555,7 +555,8 @@ public: - const SvxBrushItem*& rpBrush, - const Color*& rpColor, - SwRect &rOrigRect, -- bool bLowerMode ) const; -+ bool bLowerMode, -+ bool bConsiderTextBox ) const; - - inline void SetCompletePaint() const; - inline void ResetCompletePaint() const; -diff --git a/sw/source/core/layout/paintfrm.cxx b/sw/source/core/layout/paintfrm.cxx -index 4c54017b14b7..fedcd36f2266 100644 ---- a/sw/source/core/layout/paintfrm.cxx -+++ b/sw/source/core/layout/paintfrm.cxx -@@ -3783,7 +3783,7 @@ bool SwFlyFrame::IsBackgroundTransparent() const - SwRect aDummyRect; - drawinglayer::attribute::SdrAllFillAttributesHelperPtr aFillAttributes; - -- if ( GetBackgroundBrush( aFillAttributes, pBackgrdBrush, pSectionTOXColor, aDummyRect, false) ) -+ if ( GetBackgroundBrush( aFillAttributes, pBackgrdBrush, pSectionTOXColor, aDummyRect, false, /*bConsiderTextBox=*/false) ) - { - if ( pSectionTOXColor && - (pSectionTOXColor->GetTransparency() != 0) && -@@ -6364,7 +6364,7 @@ void SwFrame::PaintBackground( const SwRect &rRect, const SwPageFrame *pPage, - bool bLowMode = true; - drawinglayer::attribute::SdrAllFillAttributesHelperPtr aFillAttributes; - -- bool bBack = GetBackgroundBrush( aFillAttributes, pItem, pCol, aOrigBackRect, bLowerMode ); -+ bool bBack = GetBackgroundBrush( aFillAttributes, pItem, pCol, aOrigBackRect, bLowerMode, /*bConsiderTextBox=*/false ); - //- Output if a separate background is used. - bool bNoFlyBackground = !gProp.bSFlyMetafile && !bBack && IsFlyFrame(); - if ( bNoFlyBackground ) -@@ -6374,7 +6374,7 @@ void SwFrame::PaintBackground( const SwRect &rRect, const SwPageFrame *pPage, - // disabled this option with the parameter - if ( bLowerMode ) - { -- bBack = GetBackgroundBrush( aFillAttributes, pItem, pCol, aOrigBackRect, false ); -+ bBack = GetBackgroundBrush( aFillAttributes, pItem, pCol, aOrigBackRect, false, /*bConsiderTextBox=*/false ); - } - // If still no background found for the fly frame, initialize the - // background brush with global retouche color and set -@@ -7164,7 +7164,7 @@ const Color SwPageFrame::GetDrawBackgrdColor() const - SwRect aDummyRect; - drawinglayer::attribute::SdrAllFillAttributesHelperPtr aFillAttributes; - -- if ( GetBackgroundBrush( aFillAttributes, pBrushItem, pDummyColor, aDummyRect, true) ) -+ if ( GetBackgroundBrush( aFillAttributes, pBrushItem, pDummyColor, aDummyRect, true, /*bConsiderTextBox=*/false) ) - { - if(aFillAttributes.get() && aFillAttributes->isUsed()) - { -@@ -7328,6 +7328,10 @@ void SwFrame::Retouch( const SwPageFrame * pPage, const SwRect &rRect ) const - * input parameter - boolean indicating, if background brush should *not* be - * taken from parent. - * -+ * @param bConsiderTextBox -+ * consider the TextBox of this fly frame (if there is any) when determining -+ * the background color, useful for automatic font color. -+ * - * @return true, if a background brush for the frame is found - */ - bool SwFrame::GetBackgroundBrush( -@@ -7335,7 +7339,8 @@ bool SwFrame::GetBackgroundBrush( - const SvxBrushItem* & rpBrush, - const Color*& rpCol, - SwRect &rOrigRect, -- bool bLowerMode ) const -+ bool bLowerMode, -+ bool bConsiderTextBox ) const - { - const SwFrame *pFrame = this; - SwViewShell *pSh = getRootFrame()->GetCurrShell(); -@@ -7349,8 +7354,8 @@ bool SwFrame::GetBackgroundBrush( - - if (pFrame->supportsFullDrawingLayerFillAttributeSet()) - { -- bool bTextBox = false; -- if (pFrame->IsFlyFrame()) -+ bool bHandledTextBox = false; -+ if (pFrame->IsFlyFrame() && bConsiderTextBox) - { - const SwFlyFrame* pFlyFrame = static_cast(pFrame); - SwFrameFormat* pShape -@@ -7364,12 +7369,12 @@ bool SwFrame::GetBackgroundBrush( - rFillAttributes.reset( - new drawinglayer::attribute::SdrAllFillAttributesHelper( - pObject->GetMergedItemSet())); -- bTextBox = true; -+ bHandledTextBox = true; - } - } - } - -- if (!bTextBox) -+ if (!bHandledTextBox) - rFillAttributes = pFrame->getSdrAllFillAttributesHelper(); - } - const SvxBrushItem &rBack = pFrame->GetAttrSet()->GetBackground(); -diff --git a/sw/source/core/text/inftxt.cxx b/sw/source/core/text/inftxt.cxx -index de131470c958..8001e94143c4 100644 ---- a/sw/source/core/text/inftxt.cxx -+++ b/sw/source/core/text/inftxt.cxx -@@ -534,7 +534,7 @@ static bool lcl_IsDarkBackground( const SwTextPaintInfo& rInf ) - // See implementation in /core/layout/paintfrm.cxx - // There is a background color, if there is a background brush and - // its color is *not* "no fill"/"auto fill". -- if( rInf.GetTextFrame()->GetBackgroundBrush( aFillAttributes, pItem, pCol, aOrigBackRect, false ) ) -+ if( rInf.GetTextFrame()->GetBackgroundBrush( aFillAttributes, pItem, pCol, aOrigBackRect, false, /*bConsiderTextBox=*/false ) ) - { - if ( !pCol ) - pCol = &pItem->GetColor(); -diff --git a/sw/source/core/txtnode/fntcache.cxx b/sw/source/core/txtnode/fntcache.cxx -index a7484a5ac4a7..a6d89f1add2a 100644 ---- a/sw/source/core/txtnode/fntcache.cxx -+++ b/sw/source/core/txtnode/fntcache.cxx -@@ -2510,7 +2510,7 @@ bool SwDrawTextInfo::ApplyAutoColor( vcl::Font* pFont ) - /// OD 21.08.2002 #99657# - /// There is a user defined setting for the background, if there - /// is a background brush and its color is *not* "no fill"/"auto fill". -- if( GetFrame()->GetBackgroundBrush( aFillAttributes, pItem, pCol, aOrigBackRect, false ) ) -+ if( GetFrame()->GetBackgroundBrush( aFillAttributes, pItem, pCol, aOrigBackRect, false, /*bConsiderTextBox=*/true ) ) - { - if (aFillAttributes.get() && aFillAttributes->isUsed()) - { - -diff --git a/writerfilter/source/dmapper/GraphicImport.cxx b/writerfilter/source/dmapper/GraphicImport.cxx -index b6c11b58c603..6830e9db71b1 100644 ---- a/writerfilter/source/dmapper/GraphicImport.cxx -+++ b/writerfilter/source/dmapper/GraphicImport.cxx -@@ -1065,10 +1065,12 @@ void GraphicImport::lcl_sprm(Sprm& rSprm) - break; - case NS_ooxml::LN_CT_SizeRelH_pctWidth: - case NS_ooxml::LN_CT_SizeRelV_pctHeight: -- if (m_xShape.is() && !m_pImpl->m_rPositivePercentages.empty()) -+ if (m_pImpl->m_rPositivePercentages.empty()) -+ break; -+ -+ if (m_xShape.is()) - { - sal_Int16 nPositivePercentage = rtl::math::round(m_pImpl->m_rPositivePercentages.front().toDouble() / oox::drawingml::PER_PERCENT); -- m_pImpl->m_rPositivePercentages.pop(); - - if (nPositivePercentage) - { -@@ -1077,6 +1079,10 @@ void GraphicImport::lcl_sprm(Sprm& rSprm) - xPropertySet->setPropertyValue(aProperty, uno::makeAny(nPositivePercentage)); - } - } -+ -+ // Make sure the token is consumed even if xShape is an empty -+ // reference. -+ m_pImpl->m_rPositivePercentages.pop(); - break; - case NS_ooxml::LN_EG_WrapType_wrapNone: // 90944; - doesn't contain attributes - //depending on the behindDoc attribute text wraps through behind or in front of the object - -diff --git a/sw/source/core/layout/anchoreddrawobject.cxx b/sw/source/core/layout/anchoreddrawobject.cxx -index dfbdce3021bb..ca5014f7e9b5 100644 ---- a/sw/source/core/layout/anchoreddrawobject.cxx -+++ b/sw/source/core/layout/anchoreddrawobject.cxx -@@ -32,6 +32,8 @@ - #include - #include - #include -+#include -+#include - - using namespace ::com::sun::star; - -@@ -661,9 +663,22 @@ const SwRect SwAnchoredDrawObject::GetObjBoundRect() const - - bool bEnableSetModified = pDoc->getIDocumentState().IsEnableSetModified(); - pDoc->getIDocumentState().SetEnableSetModified(false); -- const_cast< SdrObject* >( GetDrawObj() )->Resize( aCurrObjRect.TopLeft(), -+ auto pObject = const_cast(GetDrawObj()); -+ pObject->Resize( aCurrObjRect.TopLeft(), - Fraction( nTargetWidth, aCurrObjRect.GetWidth() ), - Fraction( nTargetHeight, aCurrObjRect.GetHeight() ), false ); -+ -+ if (SwFrameFormat* pFrameFormat = FindFrameFormat(pObject)) -+ { -+ if (SwTextBoxHelper::isTextBox(pFrameFormat, RES_DRAWFRMFMT)) -+ { -+ // Shape has relative size and also a textbox, update its text area as well. -+ uno::Reference xShape(pObject->getUnoShape(), uno::UNO_QUERY); -+ SwTextBoxHelper::syncProperty(pFrameFormat, RES_FRM_SIZE, MID_FRMSIZE_SIZE, -+ uno::makeAny(xShape->getSize())); -+ } -+ } -+ - pDoc->getIDocumentState().SetEnableSetModified(bEnableSetModified); - } - } diff --git a/kde5-configure-checks.patch b/kde5-configure-checks.patch deleted file mode 100644 index 114017a..0000000 --- a/kde5-configure-checks.patch +++ /dev/null @@ -1,102 +0,0 @@ -diff --git a/configure.ac b/configure.ac -index fd06712066a4..e904fe3c29cc 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -10841,97 +10841,6 @@ the root of your Qt installation by exporting QT5DIR before running "configure". - [ - QT5_HAVE_GLIB=1 - AC_DEFINE(QT5_HAVE_GLIB,1) -- QT5_GLIB_CFLAGS=$(printf '%s' "$QT5_GLIB_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g") -- FilterLibs "${QT5_GLIB_LIBS}" -- QT5_GLIB_LIBS="${filteredlibs}" -- -- qt5_fix_warning= -- -- AC_LANG_PUSH([C++]) -- # tst_exclude_socket_notifiers.moc:70:28: runtime error: member access within address 0x60d00000bb20 which does not point to an object of type 'QO -- # 0x60d00000bb20: note: object is of type 'QObjectPrivate' -- # 02 00 80 3a 90 8a 4e d2 3a 00 00 00 f0 b4 b9 a7 ff 7f 00 00 00 00 00 00 00 00 00 00 20 d8 4e d2 -- # ^~~~~~~~~~~~~~~~~~~~~~~ -- # vptr for 'QObjectPrivate' -- save_CXX=$CXX -- CXX=$(printf %s "$CXX" \ -- | sed -e 's/-fno-sanitize-recover\(=[[0-9A-Za-z,_-]]*\)*//') -- save_CXXFLAGS=$CXXFLAGS -- CXXFLAGS="$CXXFLAGS $QT5_CFLAGS" -- save_LIBS=$LIBS -- LIBS="$LIBS $QT5_LIBS" -- AC_MSG_CHECKING([whether Qt has fixed ExcludeSocketNotifiers]) -- # Prepare meta object data -- TSTBASE="tst_exclude_socket_notifiers" -- TSTMOC="${SRC_ROOT}/vcl/unx/qt5/${TSTBASE}" -- ln -fs "${TSTMOC}.hxx" -- $MOC5 "${TSTBASE}.hxx" -o "${TSTBASE}.moc" -- -- AC_RUN_IFELSE([AC_LANG_SOURCE([[ --#include --#include "tst_exclude_socket_notifiers.moc" -- --int main(int argc, char *argv[]) --{ -- QCoreApplication app(argc, argv); -- exit(tst_processEventsExcludeSocket()); -- return 0; --} -- ]])],[ -- AC_MSG_RESULT([yes]) -- ],[ -- AC_MSG_RESULT([no]) -- AC_MSG_WARN([native Qt5 file pickers will be disabled at runtime]) -- if test -z "$qt5_fix_warning"; then -- add_warning "native QT5 file pickers will be disabled at runtime, Qt5 fixes needed" -- fi -- qt5_fix_warning=1 -- add_warning " https://bugreports.qt-project.org/browse/QTBUG-37380 (needed)" -- ]) -- -- # Remove meta object data -- rm -f "${TSTBASE}."* -- -- AC_MSG_CHECKING([whether Qt avoids QClipboard recursion caused by posted events]) -- # Prepare meta object data -- TSTBASE="tst_exclude_posted_events" -- TSTMOC="${SRC_ROOT}/vcl/unx/qt5/${TSTBASE}" -- ln -fs "${TSTMOC}.hxx" -- $MOC5 "${TSTBASE}.hxx" -o "${TSTBASE}.moc" -- -- AC_RUN_IFELSE([AC_LANG_SOURCE([[ --#include --#include "tst_exclude_posted_events.moc" -- --int main(int argc, char *argv[]) --{ -- QCoreApplication app(argc, argv); -- exit(tst_excludePostedEvents()); -- return 0; --} -- ]])],[ -- AC_MSG_RESULT([yes]) -- ],[ -- AC_MSG_RESULT([no]) -- AC_MSG_WARN([native QT5 file pickers will be disabled at runtime]) -- if test -z "$qt5_fix_warning"; then -- add_warning "native QT5 file pickers will be disabled at runtime, Qt5 fixes needed" -- fi -- qt5_fix_warning=1 -- add_warning " https://bugreports.qt-project.org/browse/QTBUG-34614 (needed)" -- ]) -- -- # Remove meta object data -- rm -f "${TSTBASE}."* -- -- if test -n "$qt5_fix_warning"; then -- add_warning " https://bugreports.qt-project.org/browse/QTBUG-38585 (recommended)" -- fi -- -- LIBS=$save_LIBS -- CXXFLAGS=$save_CXXFLAGS -- CXX=$save_CXX -- AC_LANG_POP([C++]) - ], - AC_MSG_WARN([[No Glib found, Qt5 support will not use native file pickers!]]) - ) diff --git a/libreoffice-6.0.4.2.tar.xz b/libreoffice-6.0.4.2.tar.xz deleted file mode 100644 index c6ed593..0000000 --- a/libreoffice-6.0.4.2.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9081fb132090e9fe1ed8896ba4085e6f7ceef145f3a76889caeaed6c032510f7 -size 204556512 diff --git a/libreoffice-6.0.4.2.tar.xz.asc b/libreoffice-6.0.4.2.tar.xz.asc deleted file mode 100644 index dfa1a1b..0000000 --- a/libreoffice-6.0.4.2.tar.xz.asc +++ /dev/null @@ -1,16 +0,0 @@ ------BEGIN PGP SIGNATURE----- - -iQIcBAABAgAGBQJa7Gp/AAoJEPQ0oe+v7q6j9yoQANGF6k/+37D19kssT73GrVAP -nl7Wq1DOPOFw4MN/5WVCi3inyOq8VpYGvIRRcJba3X3abTxNNWRzENJBu+qKG9S5 -RLhQVk5x2U87akREOkpbHocmkzkJi2Pnnky+P7lyhHwlSaPjvyL3kdR4qtoVh8W3 -xSZs/lKZeeRoWGlH2CGF57rS8lFNqLV7gIEsY2zGv90hUqTY/DsO44PGCggUSrgK -yVrSG0HjRQ5GqSrE19LfzflnvsUS7UKtv3syYG0aOreT6hILoC6Qp5UHNwjEioLN -APzOtnwFe4fT7/xyV4CiWBghRr7yJQkeR2OzzHxVdn6zelI1wgw137nkA76qXcvY -5iZ9Wbge9tTURphQTJFf41/AF1G1qWtCcZgQSnyMzdPTeUOqpJET6J2tF9BkZz9W -UjxUDeRtv/ovDmuDzuN381M6s4tRQ050L5vr+4tJ4NC8P7M9bjfvwKG94GbutuyF -cMdwJRd63hJGEg4VsY91jpmr95shwUz1vQfvR1GkwuGlnuxiTaVAlyTYIjchlRoa -XtWDBlbxGCaujDMZPw178AOI9znAKG/plZdjsuM5FstMoQUFMgo/DnBctiyTiwcH -MMPUjozIlqriO7tkEyk3CTi7wzZzj0ksX2TrY2NStLUZtGFa+Zi2q6Tb/Vc6qkFb -6YIE/MNCLw4cQ3hSN1LT -=amm+ ------END PGP SIGNATURE----- diff --git a/libreoffice-6.1.0.0.beta1.tar.xz b/libreoffice-6.1.0.0.beta1.tar.xz new file mode 100644 index 0000000..5db7ca9 --- /dev/null +++ b/libreoffice-6.1.0.0.beta1.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:177c61f1a2b5fb572b97f765893cb6856493e110d516a95d8a106e384aac905e +size 207771572 diff --git a/libreoffice-6.1.0.0.beta1.tar.xz.asc b/libreoffice-6.1.0.0.beta1.tar.xz.asc new file mode 100644 index 0000000..7f0a486 --- /dev/null +++ b/libreoffice-6.1.0.0.beta1.tar.xz.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIcBAABAgAGBQJbBvZyAAoJEPQ0oe+v7q6jpbAP/iQNDlVNSiyylxyIMYQLwUtQ +kFff3Xc8zeJtDEmJLoXAx8SQ7jK63ZqNvRmxZhchg5X6EIcsHvgOEVV6gquatbBi +FQcd3Yw8Zfkp0U1p3YdJOWB/skFsCuYoZVTrt3V6F+0/k6H9N7qp0aBQDvdAY8ly +jOMmYoJuJrT/Gbdr4/QS0oxhdTgCf56jzAJT1kcW+EXjMFFHxdheKieE2bVhyRW5 +UeP43LUd3TFPTDYZDoDxzYTh3BoA3t/4NPuH9fClqk9ypzYC2E90561+fVcanReV +xROZFYa3IpVVCA/E1FXaloTwiEHjOCoiTns1hRxh/flHX76YCewwK5kMzK9u2a2F +aXkdN7XKM3Mzrld6ofyt3ZJ/usYjT/vCXojH9FB2PHlxhV+r6KmIo8N/N1ad/ZtA +GK+KwkdmY8VR9+HNUXq5U2JntFwpoOQ+2cEmYA+mXEmj/bhTAjn/Q8QGjgHzKR78 +TFkIYiPpuqCM2OdHBUdUgrcyjY/2dfn71z7Ex+Jii3uAupmZotS4NlaTjk17PPjq +ocBHGE38qKzY50HjbUZ4qTbIiNK/eu+PFpXr6uQ2lO98SbecDAzpbcRfMmDeWWcW +Vm1JqypcDd63/IDZ2BhszcVl2jGYdkWn7yx2W0jn4FmkZ9DdmMPQEpB2jUN1xRa0 +SrPO4hpvDulp3qb974Zk +=thzp +-----END PGP SIGNATURE----- diff --git a/libreoffice-help-6.0.4.2.tar.xz b/libreoffice-help-6.0.4.2.tar.xz deleted file mode 100644 index 4f6f375..0000000 --- a/libreoffice-help-6.0.4.2.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:cef0f0d54da925bb9a69725177ba8594683f5f7500f226bdeeaf344ecb5c41fc -size 2972636 diff --git a/libreoffice-help-6.0.4.2.tar.xz.asc b/libreoffice-help-6.0.4.2.tar.xz.asc deleted file mode 100644 index b36f973..0000000 --- a/libreoffice-help-6.0.4.2.tar.xz.asc +++ /dev/null @@ -1,16 +0,0 @@ ------BEGIN PGP SIGNATURE----- - -iQIcBAABAgAGBQJa7GqHAAoJEPQ0oe+v7q6j+XwP/2+6CKjRo1KUKD459ZDg5gUj -d6/ujSPvpCly2tsfVQ+gSmtXY/c+qFYWHG7tGGp20lxOfbpfG3oUTPBCTW4QMHw/ -kAyvoMz4vGU9bS7vv5nJwuFEAE3qWESWPNDgkr+0IO3F+m8P7w5XzxE8z78jPJyw -7jxwLcl9eKzySnq08hvTpXzuvo5lMal3TH2bO6lkJv6U1HR4Fxm8BVA2mfH+wrBQ -tyb5Nofp0MG7Y8wPVa/Fku+dZgXMhz2WBpOUtjjnfK3qZNUZtjJGt1IeBJt7UPm2 -nRkem593KjR0fTFjglS/zjW1BlnpZDPE0h7JhBNkHjSAtU0Lbn3Kx9h4bYb6fBgX -G9PDPpKS/88Y1dBwpYk+ys9qfiFHYzg/hDu4bbQXMcvY+XM/Fog81tEij1iMRqLQ -RF8hTeQqnzGkaRMToDKnWbzJnQpFx2s2B9WHhcVU6+lfv4YmtTchBnammIcRTx2l -lx6+0VirGjHTFHuY7fROcEcGh4kMuwMrFvlPM9aUJt3RqVHKYSSkAzgJDQk9PIzJ -nC+mw7D7D7oOjvy0Yb08qI+Sd//rFZDeBfpvd3+69vT20rWlsJcwNTLoNp2XDDHq -9cZmWi4ePVz3tuaqIZAURvacwPUr/uX4GY6a51agXPh6I9E4J4VaBkSvkgLwYj3Y -J0ZBeve4JWQ68Aoi0+IV -=rdh3 ------END PGP SIGNATURE----- diff --git a/libreoffice-help-6.1.0.0.beta1.tar.xz b/libreoffice-help-6.1.0.0.beta1.tar.xz new file mode 100644 index 0000000..09a6fed --- /dev/null +++ b/libreoffice-help-6.1.0.0.beta1.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:98e453f80a4bf4d182b6f482c83942fbf4608f6b0e83bc27e3e4a1c12b025a77 +size 15705880 diff --git a/libreoffice-help-6.1.0.0.beta1.tar.xz.asc b/libreoffice-help-6.1.0.0.beta1.tar.xz.asc new file mode 100644 index 0000000..6648dcb --- /dev/null +++ b/libreoffice-help-6.1.0.0.beta1.tar.xz.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIcBAABAgAGBQJbBvZ6AAoJEPQ0oe+v7q6jfIMP/14CUXMmp1iCbCsfn8VbXlVw +gAJ9FGKxdYAXszQtdXW4WmWEk8jqbGxUhK/wF/OgrN4kUPLA7q+Ryjmg+gxutku+ +1rV2V1QHmZb6i03R38jApsOKDqIOuHQ5i1lJGFZib5k9mP8fdXangV/LY7FHcSQ/ +waJjxYgtnkq9rMnnH+Wv5wUZQkyzYaljPlhMsBl7HHJdxpeK/OStsWvNVzAXBqUk +1fRHazaDBvmFcHnO+zIcAPXVXnC0HUqkpfcBkncnfHN6zyfNNsHDsalS+kvVCR1M +Z9hwHgr8Ht/tprHr9hmHdfeMouGJLwaSnIhFNwylUIyjrhyWjUwLP7+TLE7kkAfV +JbPt+DvdV/+PLbWlrgeZJSlmcCQMF5K040ybWb2BYAmN/eBpEAogA/v9SX8Dag5f +mzuJVbEC92w6KPgJTY78b7CMnJcyHoGCiPGkTfuYM09yXJZqZXPl9nCK0aAVH3g4 +fz+qXsHRGbU6/8SEydqV1q31/KxEUZ80G2rHReN0Dw3iHv+5n4ufleY4sRlTTZRm +yvV4i/STsjR0D58elf3tP2/qdmNnGgKVrPnsP5xjS4c6IcJUN6Tsbf635qopqJIk +9sQNYCVCDeooiKS/68G/zyeTvLCYSVgV3iyGg2ZyWjJatBLdmQK3GtG5JiC/nn42 +jYrdl0FlfNRuI/HCcVk+ +=8/K8 +-----END PGP SIGNATURE----- diff --git a/libreoffice-icu61.patch b/libreoffice-icu61.patch deleted file mode 100644 index a4407c1..0000000 --- a/libreoffice-icu61.patch +++ /dev/null @@ -1,394 +0,0 @@ -From ad3b7c27cdc957a8a38876c040e86a81c3cf7003 Mon Sep 17 00:00:00 2001 -From: Eike Rathke -Date: Mon, 18 Dec 2017 20:33:03 +0100 -Subject: Explicitly qualify ICU types with icu:: namespace - -It will be required by ICU 61 anyway, see -https://ssl.icu-project.org/repos/icu/trunk/icu4c/readme.html#RecBuild - -Change-Id: Ia051e8e2aa64b0e32a7f16a2afebaef0e4ebf531 -Reviewed-on: https://gerrit.libreoffice.org/46739 -Reviewed-by: Eike Rathke -Tested-by: Eike Rathke ---- - i18nutil/source/utility/unicode.cxx | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/i18nutil/source/utility/unicode.cxx b/i18nutil/source/utility/unicode.cxx -index 96c0194..f225b3a 100644 ---- a/i18nutil/source/utility/unicode.cxx -+++ b/i18nutil/source/utility/unicode.cxx -@@ -750,15 +750,15 @@ OUString unicode::formatPercent(double dNumber, - - icu::Locale aLocale = LanguageTagIcu::getIcuLocale(aLangTag); - -- std::unique_ptr xF( -- NumberFormat::createPercentInstance(aLocale, errorCode)); -+ std::unique_ptr xF( -+ icu::NumberFormat::createPercentInstance(aLocale, errorCode)); - if(U_FAILURE(errorCode)) - { -- SAL_WARN("i18n", "NumberFormat::createPercentInstance failed"); -+ SAL_WARN("i18n", "icu::NumberFormat::createPercentInstance failed"); - return OUString::number(dNumber) + "%"; - } - -- UnicodeString output; -+ icu::UnicodeString output; - xF->format(dNumber/100, output); - OUString aRet(reinterpret_cast(output.getBuffer()), - output.length()); --- -cgit v1.1 - -From f240332f8e965ea17b70b0ccaa9990ce0a53cfc6 Mon Sep 17 00:00:00 2001 -From: Eike Rathke -Date: Tue, 19 Dec 2017 15:22:09 +0100 -Subject: vcl: explicitly qualify ICU types with icu:: namespace - -It will be required by ICU 61 anyway, see -https://ssl.icu-project.org/repos/icu/trunk/icu4c/readme.html#RecBuild - -Change-Id: Iecb30b903e9a67252147a8cc78c641621d763755 ---- - vcl/inc/scrptrun.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/vcl/inc/scrptrun.h b/vcl/inc/scrptrun.h -index cbe151d..46a5c08 100644 ---- a/vcl/inc/scrptrun.h -+++ b/vcl/inc/scrptrun.h -@@ -58,7 +58,7 @@ struct ParenStackEntry - } - }; - --class ScriptRun : public UObject { -+class ScriptRun : public icu::UObject { - public: - - ScriptRun(const UChar chars[], int32_t length); --- -cgit v1.1 - -From f7961456d81c3ee6ee4c13eac9ef7add6c7ea6b5 Mon Sep 17 00:00:00 2001 -From: Eike Rathke -Date: Mon, 18 Dec 2017 20:28:07 +0100 -Subject: Explicitly qualify ICU types with icu:: namespace - -It will be required by ICU 61 anyway, see -https://ssl.icu-project.org/repos/icu/trunk/icu4c/readme.html#RecBuild - -Change-Id: I16b6bc8b8c49713f32424df5fc6db494df7b6892 -Reviewed-on: https://gerrit.libreoffice.org/46738 -Reviewed-by: Eike Rathke -Tested-by: Eike Rathke ---- - i18npool/inc/collator_unicode.hxx | 2 +- - .../source/breakiterator/breakiterator_unicode.cxx | 26 +++++++++++----------- - i18npool/source/collator/collator_unicode.cxx | 16 ++++++------- - i18npool/source/collator/gencoll_rule.cxx | 2 +- - i18npool/source/ordinalsuffix/ordinalsuffix.cxx | 2 +- - .../transliteration/ignoreDiacritics_CTL.cxx | 6 ++--- - 6 files changed, 27 insertions(+), 27 deletions(-) - -diff --git a/i18npool/inc/collator_unicode.hxx b/i18npool/inc/collator_unicode.hxx -index 69d3177..d943bc9 100644 ---- a/i18npool/inc/collator_unicode.hxx -+++ b/i18npool/inc/collator_unicode.hxx -@@ -63,7 +63,7 @@ public: - - private: - const sal_Char *implementationName; -- RuleBasedCollator *uca_base, *collator; -+ icu::RuleBasedCollator *uca_base, *collator; - #ifndef DISABLE_DYNLOADING - oslModule hModule; - #endif -diff --git a/i18npool/source/breakiterator/breakiterator_unicode.cxx b/i18npool/source/breakiterator/breakiterator_unicode.cxx -index a81a80e..02da856 100644 ---- a/i18npool/source/breakiterator/breakiterator_unicode.cxx -+++ b/i18npool/source/breakiterator/breakiterator_unicode.cxx -@@ -56,14 +56,14 @@ BreakIterator_Unicode::~BreakIterator_Unicode() - } - - /* -- Wrapper class to provide public access to the RuleBasedBreakIterator's -+ Wrapper class to provide public access to the icu::RuleBasedBreakIterator's - setbreakType method. - */ --class OOoRuleBasedBreakIterator : public RuleBasedBreakIterator -+class OOoRuleBasedBreakIterator : public icu::RuleBasedBreakIterator - { - public: - #if (U_ICU_VERSION_MAJOR_NUM < 58) -- // RuleBasedBreakIterator::setBreakType() is private as of ICU 58. -+ // icu::RuleBasedBreakIterator::setBreakType() is private as of ICU 58. - void publicSetBreakType(int32_t type) - { - setBreakType(type); -@@ -71,7 +71,7 @@ class OOoRuleBasedBreakIterator : public RuleBasedBreakIterator - #endif - OOoRuleBasedBreakIterator(UDataMemory* image, - UErrorCode &status) -- : RuleBasedBreakIterator(image, status) -+ : icu::RuleBasedBreakIterator(image, status) - { }; - - }; -@@ -334,7 +334,7 @@ sal_Int32 SAL_CALL BreakIterator_Unicode::nextCharacters( const OUString& Text, - icu::BreakIterator* pBI = character.mpValue->mpBreakIterator.get(); - for (nDone = 0; nDone < nCount; nDone++) { - nStartPos = pBI->following(nStartPos); -- if (nStartPos == BreakIterator::DONE) -+ if (nStartPos == icu::BreakIterator::DONE) - return Text.getLength(); - } - } else { // for CHARACTER mode -@@ -353,7 +353,7 @@ sal_Int32 SAL_CALL BreakIterator_Unicode::previousCharacters( const OUString& Te - icu::BreakIterator* pBI = character.mpValue->mpBreakIterator.get(); - for (nDone = 0; nDone < nCount; nDone++) { - nStartPos = pBI->preceding(nStartPos); -- if (nStartPos == BreakIterator::DONE) -+ if (nStartPos == icu::BreakIterator::DONE) - return 0; - } - } else { // for BS to delete one char and CHARACTER mode. -@@ -371,7 +371,7 @@ Boundary SAL_CALL BreakIterator_Unicode::nextWord( const OUString& Text, sal_Int - - Boundary rv; - rv.startPos = icuBI->mpValue->mpBreakIterator->following(nStartPos); -- if( rv.startPos >= Text.getLength() || rv.startPos == BreakIterator::DONE ) -+ if( rv.startPos >= Text.getLength() || rv.startPos == icu::BreakIterator::DONE ) - rv.endPos = result.startPos; - else { - if ( (rWordType == WordType::ANYWORD_IGNOREWHITESPACES || -@@ -380,7 +380,7 @@ Boundary SAL_CALL BreakIterator_Unicode::nextWord( const OUString& Text, sal_Int - rv.startPos = icuBI->mpValue->mpBreakIterator->following(rv.startPos); - - rv.endPos = icuBI->mpValue->mpBreakIterator->following(rv.startPos); -- if(rv.endPos == BreakIterator::DONE) -+ if(rv.endPos == icu::BreakIterator::DONE) - rv.endPos = rv.startPos; - } - return rv; -@@ -394,7 +394,7 @@ Boundary SAL_CALL BreakIterator_Unicode::previousWord(const OUString& Text, sal_ - - Boundary rv; - rv.startPos = icuBI->mpValue->mpBreakIterator->preceding(nStartPos); -- if( rv.startPos < 0 || rv.startPos == BreakIterator::DONE) -+ if( rv.startPos < 0 || rv.startPos == icu::BreakIterator::DONE) - rv.endPos = rv.startPos; - else { - if ( (rWordType == WordType::ANYWORD_IGNOREWHITESPACES || -@@ -403,7 +403,7 @@ Boundary SAL_CALL BreakIterator_Unicode::previousWord(const OUString& Text, sal_ - rv.startPos = icuBI->mpValue->mpBreakIterator->preceding(rv.startPos); - - rv.endPos = icuBI->mpValue->mpBreakIterator->following(rv.startPos); -- if(rv.endPos == BreakIterator::DONE) -+ if(rv.endPos == icu::BreakIterator::DONE) - rv.endPos = rv.startPos; - } - return rv; -@@ -435,9 +435,9 @@ Boundary SAL_CALL BreakIterator_Unicode::getWordBoundary( const OUString& Text, - rv.endPos = icuBI->mpValue->mpBreakIterator->following(nPos); - } - } -- if (rv.startPos == BreakIterator::DONE) -+ if (rv.startPos == icu::BreakIterator::DONE) - rv.startPos = rv.endPos; -- else if (rv.endPos == BreakIterator::DONE) -+ else if (rv.endPos == icu::BreakIterator::DONE) - rv.endPos = rv.startPos; - - return rv; -@@ -502,7 +502,7 @@ LineBreakResults SAL_CALL BreakIterator_Unicode::getLineBreak( - lbr.breakIndex = nStartPos; - lbr.breakType = BreakType::WORDBOUNDARY; - } else if (hOptions.rHyphenator.is()) { //Hyphenation break -- sal_Int32 boundary_with_punctuation = (pLineBI->next() != BreakIterator::DONE) ? pLineBI->current() : 0; -+ sal_Int32 boundary_with_punctuation = (pLineBI->next() != icu::BreakIterator::DONE) ? pLineBI->current() : 0; - pLineBI->preceding(nStartPos + 1); // reset to check correct hyphenation of "word-word" - - sal_Int32 nStartPosWordEnd = nStartPos; -diff --git a/i18npool/source/collator/collator_unicode.cxx b/i18npool/source/collator/collator_unicode.cxx -index 71bc4ed..37dc7ee 100644 ---- a/i18npool/source/collator/collator_unicode.cxx -+++ b/i18npool/source/collator/collator_unicode.cxx -@@ -138,7 +138,7 @@ Collator_Unicode::loadCollatorAlgorithm(const OUString& rAlgorithm, const lang:: - UErrorCode status = U_ZERO_ERROR; - OUString rule = LocaleDataImpl::get()->getCollatorRuleByAlgorithm(rLocale, rAlgorithm); - if (!rule.isEmpty()) { -- collator = new RuleBasedCollator(reinterpret_cast(rule.getStr()), status); -+ collator = new icu::RuleBasedCollator(reinterpret_cast(rule.getStr()), status); - if (! U_SUCCESS(status)) throw RuntimeException(); - } - if (!collator && OUString(LOCAL_RULE_LANGS).indexOf(rLocale.Language) >= 0) { -@@ -343,7 +343,7 @@ Collator_Unicode::loadCollatorAlgorithm(const OUString& rAlgorithm, const lang:: - size_t ruleImageSize = funclen(); - - #if (U_ICU_VERSION_MAJOR_NUM == 4) && (U_ICU_VERSION_MINOR_NUM <= 2) -- uca_base = new RuleBasedCollator(static_cast(NULL), status); -+ uca_base = new icu::RuleBasedCollator(static_cast(NULL), status); - #else - // Not only changed ICU 53.1 the API behavior that a negative - // length (ruleImageSize) now leads to failure, but also that -@@ -354,11 +354,11 @@ Collator_Unicode::loadCollatorAlgorithm(const OUString& rAlgorithm, const lang:: - // The default collator of the en-US locale would also fulfill - // the requirement. The collator of the actual locale or the - // NULL (default) locale does not. -- uca_base = static_cast(icu::Collator::createInstance( -+ uca_base = static_cast(icu::Collator::createInstance( - icu::Locale::getRoot(), status)); - #endif - if (! U_SUCCESS(status)) throw RuntimeException(); -- collator = new RuleBasedCollator( -+ collator = new icu::RuleBasedCollator( - reinterpret_cast(ruleImage), ruleImageSize, uca_base, status); - if (! U_SUCCESS(status)) throw RuntimeException(); - } -@@ -372,17 +372,17 @@ Collator_Unicode::loadCollatorAlgorithm(const OUString& rAlgorithm, const lang:: - */ - icu::Locale icuLocale( LanguageTagIcu::getIcuLocale( LanguageTag( rLocale), rAlgorithm)); - // load ICU collator -- collator = static_cast( icu::Collator::createInstance(icuLocale, status) ); -+ collator = static_cast( icu::Collator::createInstance(icuLocale, status) ); - if (! U_SUCCESS(status)) throw RuntimeException(); - } - } - - if (options & CollatorOptions::CollatorOptions_IGNORE_CASE_ACCENT) -- collator->setStrength(Collator::PRIMARY); -+ collator->setStrength(icu::Collator::PRIMARY); - else if (options & CollatorOptions::CollatorOptions_IGNORE_CASE) -- collator->setStrength(Collator::SECONDARY); -+ collator->setStrength(icu::Collator::SECONDARY); - else -- collator->setStrength(Collator::TERTIARY); -+ collator->setStrength(icu::Collator::TERTIARY); - - return 0; - } -diff --git a/i18npool/source/collator/gencoll_rule.cxx b/i18npool/source/collator/gencoll_rule.cxx -index 7d795b5..3048d12 100644 ---- a/i18npool/source/collator/gencoll_rule.cxx -+++ b/i18npool/source/collator/gencoll_rule.cxx -@@ -113,7 +113,7 @@ SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv) - //UCollator *coll = ucol_openRules(Obuf.getStr(), Obuf.getLength(), UCOL_OFF, - // UCOL_DEFAULT_STRENGTH, &parseError, &status); - -- auto coll = o3tl::make_unique(reinterpret_cast(Obuf.getStr()), status); -+ auto coll = o3tl::make_unique(reinterpret_cast(Obuf.getStr()), status); - - if (U_SUCCESS(status)) { - std::vector data; -diff --git a/i18npool/source/ordinalsuffix/ordinalsuffix.cxx b/i18npool/source/ordinalsuffix/ordinalsuffix.cxx -index 1a63dcb..b9efd51 100644 ---- a/i18npool/source/ordinalsuffix/ordinalsuffix.cxx -+++ b/i18npool/source/ordinalsuffix/ordinalsuffix.cxx -@@ -79,7 +79,7 @@ uno::Sequence< OUString > SAL_CALL OrdinalSuffixService::getOrdinalSuffix( sal_I - if (!U_SUCCESS(nCode)) - return retValue; - -- std::unique_ptr xNumberFormat(icu::NumberFormat::createInstance(aIcuLocale, nCode)); -+ std::unique_ptr xNumberFormat(icu::NumberFormat::createInstance(aIcuLocale, nCode)); - if (!U_SUCCESS(nCode)) - return retValue; - -diff --git a/i18npool/source/transliteration/ignoreDiacritics_CTL.cxx b/i18npool/source/transliteration/ignoreDiacritics_CTL.cxx -index 0ddfe64..2b5ca1e 100644 ---- a/i18npool/source/transliteration/ignoreDiacritics_CTL.cxx -+++ b/i18npool/source/transliteration/ignoreDiacritics_CTL.cxx -@@ -35,7 +35,7 @@ ignoreDiacritics_CTL::transliterateChar2Char(sal_Unicode nInChar) - if (!m_transliterator) - throw css::uno::RuntimeException(); - -- UnicodeString aChar(nInChar); -+ icu::UnicodeString aChar(nInChar); - m_transliterator->transliterate(aChar); - - if (aChar.isEmpty()) -@@ -68,7 +68,7 @@ ignoreDiacritics_CTL::folding(const OUString& rInStr, sal_Int32 nStartPos, - { - sal_Int32 nIndex = nPosition; - UChar32 nChar = rInStr.iterateCodePoints(&nIndex); -- UnicodeString aUStr(nChar); -+ icu::UnicodeString aUStr(nChar); - m_transliterator->transliterate(aUStr); - - if (nOffset + aUStr.length() > rOffset.getLength()) -@@ -87,7 +87,7 @@ ignoreDiacritics_CTL::folding(const OUString& rInStr, sal_Int32 nStartPos, - } - else - { -- UnicodeString aUStr(reinterpret_cast(rInStr.getStr()) + nStartPos, nCount); -+ icu::UnicodeString aUStr(reinterpret_cast(rInStr.getStr()) + nStartPos, nCount); - m_transliterator->transliterate(aUStr); - return OUString(reinterpret_cast(aUStr.getBuffer()), aUStr.length()); - } --- -cgit v1.1 - -From 7c46e0086802c22f5a5040d9161d4d2b3b2a3aff Mon Sep 17 00:00:00 2001 -From: Eike Rathke -Date: Mon, 18 Dec 2017 20:38:59 +0100 -Subject: Explicitly qualify ICU types with icu:: namespace - -It will be required by ICU 61 anyway, see -https://ssl.icu-project.org/repos/icu/trunk/icu4c/readme.html#RecBuild - -Change-Id: If7f1330550981fd28eb7eea6329f21e116291cca -Reviewed-on: https://gerrit.libreoffice.org/46740 -Reviewed-by: Eike Rathke -Tested-by: Eike Rathke ---- - lotuswordpro/source/filter/localtime.cxx | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/lotuswordpro/source/filter/localtime.cxx b/lotuswordpro/source/filter/localtime.cxx -index 47d2024..3805c5d 100644 ---- a/lotuswordpro/source/filter/localtime.cxx -+++ b/lotuswordpro/source/filter/localtime.cxx -@@ -174,7 +174,7 @@ bool LtgLocalTime(long rtime,LtTm& rtm) - - if ((rtime > 3 * DAY_SEC)&&(rtime < LONG_MAX - 3 * DAY_SEC)) - { -- TimeZone* pLocalZone = TimeZone::createDefault(); -+ icu::TimeZone* pLocalZone = icu::TimeZone::createDefault(); - long offset = (pLocalZone->getRawOffset())/1000; - delete pLocalZone; - long ltime = rtime + offset; --- -cgit v1.1 - -From 8960ecc689ce41cfaa40b65d75830d7491b06463 Mon Sep 17 00:00:00 2001 -From: Eike Rathke -Date: Mon, 18 Dec 2017 20:41:30 +0100 -Subject: Explicitly qualify ICU types with icu:: namespace - -It will be required by ICU 61 anyway, see -https://ssl.icu-project.org/repos/icu/trunk/icu4c/readme.html#RecBuild - -Change-Id: Ib7accd75a6e35932048d779cf7bf0a5a33f8ed0d -Reviewed-on: https://gerrit.libreoffice.org/46741 -Reviewed-by: Eike Rathke -Tested-by: Eike Rathke ---- - opencl/source/openclconfig.cxx | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/opencl/source/openclconfig.cxx b/opencl/source/openclconfig.cxx -index b81ffed..0ec2347 100644 ---- a/opencl/source/openclconfig.cxx -+++ b/opencl/source/openclconfig.cxx -@@ -119,7 +119,7 @@ bool match(const OUString& rPattern, const OUString& rInput) - UErrorCode nIcuError(U_ZERO_ERROR); - icu::UnicodeString sIcuPattern(reinterpret_cast(rPattern.getStr()), rPattern.getLength()); - icu::UnicodeString sIcuInput(reinterpret_cast(rInput.getStr()), rInput.getLength()); -- RegexMatcher aMatcher(sIcuPattern, sIcuInput, 0, nIcuError); -+ icu::RegexMatcher aMatcher(sIcuPattern, sIcuInput, 0, nIcuError); - - return U_SUCCESS(nIcuError) && aMatcher.matches(nIcuError) && U_SUCCESS(nIcuError); - } --- -cgit v1.1 - diff --git a/libreoffice-java-sched.patch b/libreoffice-java-sched.patch new file mode 100644 index 0000000..b7c50ac --- /dev/null +++ b/libreoffice-java-sched.patch @@ -0,0 +1,13 @@ +diff --git a/configure.ac b/configure.ac +index aa44107f8e79..8a40119e9bc6 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -6824,7 +6824,7 @@ you must use the "--with-jdk-home" configure option explicitly]) + JDK=sun + + dnl Sun JDK specific tests +- _jdk=`$JAVAINTERPRETER -version 2>&1 | $AWK -F'"' '{ print \$2 }' | $SED s/[[-A-Za-z]]*//` ++ _jdk=`$JAVAINTERPRETER -version 2>&1 | $AWK -F'"' '{ print \$2 }' | $SED '/^$/d' | $SED s/[[-A-Za-z]]*//` + _jdk_ver=`echo "$_jdk" | $AWK -F. '{ print (($1 * 100) + $2) * 100 + $3;}'` + + if test "$_jdk_ver" -lt 10600; then diff --git a/libreoffice-libxmlsec.patch b/libreoffice-libxmlsec.patch new file mode 100644 index 0000000..57f56b4 --- /dev/null +++ b/libreoffice-libxmlsec.patch @@ -0,0 +1,39 @@ +diff --git a/xmlsecurity/source/xmlsec/xmlstreamio.cxx b/xmlsecurity/source/xmlsec/xmlstreamio.cxx +index de32f8286c1b..83dd83e66a25 100644 +--- a/xmlsecurity/source/xmlsec/xmlstreamio.cxx ++++ b/xmlsecurity/source/xmlsec/xmlstreamio.cxx +@@ -157,6 +157,25 @@ XSECXMLSEC_DLLPUBLIC int xmlEnableStreamInputCallbacks() + //Notes: all none default callbacks will lose. + xmlSecIOCleanupCallbacks() ; + ++ // Newer xmlsec wants the callback order in the opposite direction. ++#if XMLSEC_VERSION_MAJOR > 1 || (XMLSEC_VERSION_MAJOR == 1 && XMLSEC_VERSION_MINOR > 2) || (XMLSEC_VERSION_MAJOR == 1 && XMLSEC_VERSION_MINOR == 2 && XMLSEC_VERSION_SUBMINOR >= 26) ++ //Register the default callbacks. ++ //Notes: the error will cause xmlsec working problems. ++ int cbs = xmlSecIORegisterDefaultCallbacks() ; ++ if( cbs < 0 ) { ++ return -1 ; ++ } ++ ++ //Register my classbacks. ++ cbs = xmlSecIORegisterCallbacks( ++ xmlStreamMatch, ++ xmlStreamOpen, ++ xmlStreamRead, ++ xmlStreamClose ) ; ++ if( cbs < 0 ) { ++ return -1 ; ++ } ++#else + //Register my classbacks. + int cbs = xmlSecIORegisterCallbacks( + xmlStreamMatch, +@@ -173,6 +192,7 @@ XSECXMLSEC_DLLPUBLIC int xmlEnableStreamInputCallbacks() + if( cbs < 0 ) { + return -1 ; + } ++#endif + + enableXmlStreamIO |= XMLSTREAMIO_INITIALIZED ; + } + \ No newline at end of file diff --git a/libreoffice-translations-6.0.4.2.tar.xz b/libreoffice-translations-6.0.4.2.tar.xz deleted file mode 100644 index 72083d7..0000000 --- a/libreoffice-translations-6.0.4.2.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:865f78003114c9333d8df63ee64197b25f1894c5dd1038f563abb4c91a1c542e -size 139214448 diff --git a/libreoffice-translations-6.0.4.2.tar.xz.asc b/libreoffice-translations-6.0.4.2.tar.xz.asc deleted file mode 100644 index 32015e9..0000000 --- a/libreoffice-translations-6.0.4.2.tar.xz.asc +++ /dev/null @@ -1,16 +0,0 @@ ------BEGIN PGP SIGNATURE----- - -iQIcBAABAgAGBQJa7GqKAAoJEPQ0oe+v7q6jSeAP/0iOer7KQKJ83xCzJDFCzkeU -Cq/Nxs0vwgUeMCjdr4dMofkOyjJjwvNwvYEn0HPZa+QKlmcDPswdqFw4l6cB4rDj -dCsGvBTWXXbMZG95vvfq96AGyupcKVV9tT+Xi5PMvrHCdHukYt+lWG4mZ//0XKzQ -7AT8kl5ki+X3kXutSCJZHU3GfUwHNi2UTgO7UHh4Zx3K5ZHo43uaosoCK/keF9Kd -jYAT0JQZx1QxfThTXh7/UTRPwrYr2OXBHgWuSCUPBlOE9BDjUDDhDjqqKP1gVJnN -yPCNqmUICgPaKmjHDbYS8eDaY6XR8T73YxAKrfSTJBE98zbyLUSsjyNKYFnjyHeR -YQAS+G8nGO8nDh8Wvim705mRjL6oNLV68DMCVN1ljiAgWxwHn0eZc/l6FlAwYXUc -0Tw1zMt76jkVHLPG+pPVHb4gg1/R5DD9bmC+geO0Qp2QEMpxcI4XMJ/+dcNBYr4g -t9Yl0dXWykxSaKrGC4KmmE+rsByWuqcRDXXzrnQO1duMT4Q8eT18JECmqVJeFYdj -H5qb9dVUxIlQdppoEAbXsy/+VJLRLe7XMr44lSyatvyF/NjZES9Bgj49iTExePEh -2O9u3mQvXJttpz2XkhDdr1sJhhChYPoLW3VBKucG6T6guNHXObokgPanrPnR82IG -GbDJqakXguuTEgeJAGpZ -=Afez ------END PGP SIGNATURE----- diff --git a/libreoffice-translations-6.1.0.0.beta1.tar.xz b/libreoffice-translations-6.1.0.0.beta1.tar.xz new file mode 100644 index 0000000..9bae28f --- /dev/null +++ b/libreoffice-translations-6.1.0.0.beta1.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:360e544bbc7b5440ed62e3003768fbf214e1d55604e2e34e74cc05d278390443 +size 140381320 diff --git a/libreoffice-translations-6.1.0.0.beta1.tar.xz.asc b/libreoffice-translations-6.1.0.0.beta1.tar.xz.asc new file mode 100644 index 0000000..7bb4fe2 --- /dev/null +++ b/libreoffice-translations-6.1.0.0.beta1.tar.xz.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIcBAABAgAGBQJbBvZ+AAoJEPQ0oe+v7q6jFbwQAJZNbUrKR4thLBiBPKWqQkh3 +Ci088rbXgez1I0msTxl9+bbf9PYSaEqoZKGpx3+ez4kivR372tG5IGjg5nx8BYCx +o5YSc5UzGf8nZxWZIMgwBqEoBfC8OFvDaQeZ7GPtQDYLfCb0FAAUvevn175Mh+Mj +Di4Sk5Bu1kXYwa1Itn6rT2OVlLERBkT8iE02X4yOGZEcpoTVohkEuyAohf56VYDV +xDWvGQg/uxUq8A4kRL7qfMwbIvGJZ/fBEYlGRcL/gYz1TMeXFcDCfTJ7NDs3xbP1 +QEeiAhUuU/HK08+ODPehW49GXhXrh7OXl5Wd+zBEIkXmXn7Qci68k9fMytzvyU0E +Tio0Yk0MCEgbdguOZ/+PkK7+vzCAJzg+lXttsyj1jNeUWjq8rW2dgw6mAC4DZR/E +TyjRLncoAuMpqyHGIrzn6kHivmwMTczFjB2jZ4YYS2LL6aAmmbETsuKbBiHKl8M8 +HC7LNxwHU//ZiY2nix0E+r2NspE/jd8k3p5JB9JN1QqNnUnVChjfeq6V2qvPgbTr +sI4/GPbGUgpw+RcsOBZL7QHlF889bznBr2E4iEZuhsB81kpUW5pOSDUOaAt3sjbE +vMfmZ26ZGKux/VQDg4DPUipZoo8OSsMZZhEm3IrnO6Wsy63juxkV7QlyMJ3uR9+n +26G8YfkIwWfmONqnLCG0 +=d1qm +-----END PGP SIGNATURE----- diff --git a/libreoffice.changes b/libreoffice.changes index e187e84..b7eec42 100644 --- a/libreoffice.changes +++ b/libreoffice.changes @@ -1,3 +1,26 @@ +------------------------------------------------------------------- +Thu Jun 7 11:01:54 UTC 2018 - tchvatal@suse.com + +- Update to 6.1.0.0.beta1: + * 6.1 series first beta, many fixes and features around + * Notably kde5_gtk3 integration, on by default now +- Remove merged patches: + * 0001-Use-PYTHON_FOR_BUILD-instead-of-calling-python-direc.patch + * libreoffice-icu61.patch + * kde5-configure-checks.patch + * bnc1060128.patch + * bnc1039203.patch + * bnc1094359.patch +- Disable firebird everywhere for now as it causes issues +- Try to implement safeguarding to avoid bsc#1050305 +- Disable base-drivers-mysql as it needs mysqlcppcon that is only + for mysql and not mariadb, causes issues bsc#1094779 + * Users can still connect using jdbc/odbc +- Fix java detection on machines with too many cpus + * libreoffice-java-sched.patch +- Remove galaxy icon theme replaced by colibri +- Add karasa jaga icon theme + ------------------------------------------------------------------- Thu May 31 10:29:55 UTC 2018 - andras.timar@collabora.com diff --git a/libreoffice.spec b/libreoffice.spec index d9a873b..6d7c8b6 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -21,9 +21,9 @@ # extensions %define numbertext_version 0.9.5 # Urls -%define external_url http://dev-www.libreoffice.org/src/ -%define tarball_url http://download.documentfoundation.org/libreoffice/src/6.0.4 -#%define tarball_url http://dev-builds.libreoffice.org/pre-releases/src/ +%define external_url https://dev-www.libreoffice.org/src/ +%define tarball_url https://download.documentfoundation.org/libreoffice/src/6.1.0 +#%define tarball_url https://dev-builds.libreoffice.org/pre-releases/src/ # LTO needs newer toolchain stack only %if 0%{?suse_version} >= 1500 %bcond_without lto @@ -37,7 +37,7 @@ %bcond_with kdeintegration %endif %if 0%{?suse_version} > 1320 && 0%{?is_opensuse} -%bcond_without firebird +%bcond_with firebird %else %bcond_with firebird %endif @@ -54,12 +54,12 @@ %bcond_with gtk3 %endif Name: libreoffice -Version: 6.0.4.2 +Version: 6.1.0.0.beta1 Release: 0 Summary: A Free Office Suite (Framework) License: LGPL-3.0-or-later AND MPL-2.0+ Group: Productivity/Office/Suite -URL: http://www.documentfoundation.org/ +URL: https://www.documentfoundation.org/ Source0: %{tarball_url}/libreoffice-%{version}.tar.xz Source1: %{tarball_url}/libreoffice-%{version}.tar.xz.asc Source2: %{tarball_url}/libreoffice-help-%{version}.tar.xz @@ -81,7 +81,7 @@ Source1001: %{external_url}/libgpg-error-1.27.tar.bz2 Source1002: %{external_url}/libassuan-2.4.3.tar.bz2 # Internal bundled stuff we can't remove # To build this we would pull cygwin; not worth it -Source2001: http://dev-www.libreoffice.org/extern/185d60944ea767075d27247c3162b3bc-unowinreg.dll +Source2001: https://dev-www.libreoffice.org/extern/185d60944ea767075d27247c3162b3bc-unowinreg.dll # hsqldb simply does not work with new system version, but luckily we migrate to firebird Source2002: %{external_url}/17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip # Heavily patched and not possible to use system one @@ -90,10 +90,10 @@ Source2004: %{external_url}/35c94d2df8893241173de1d16b6034c0-swingExSrc.zip # Needed for wiki-published and always taken as bundled Source2005: %{external_url}/a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip # Needed for integration tests -Source2006: http://dev-www.libreoffice.org/extern/8249374c274932a21846fa7629c2aa9b-officeotron-0.7.4-master.jar -Source2007: http://dev-www.libreoffice.org/extern/a084cd548b586552cb7d3ee51f1af969-odfvalidator-1.1.8-incubating-SNAPSHOT-jar-with-dependencies.jar +Source2006: https://dev-www.libreoffice.org/extern/8249374c274932a21846fa7629c2aa9b-officeotron-0.7.4-master.jar +Source2007: https://dev-www.libreoffice.org/extern/odfvalidator-1.2.0-incubating-SNAPSHOT-jar-with-dependencies%2BODFTOOLKIT-460%2BODFTOOLKIT-475.jar # PDFium is bundled everywhere -Source2008: %{external_url}/pdfium-3235.tar.bz2 +Source2008: %{external_url}/pdfium-3426.tar.bz2 # change user config dir name from ~/.libreoffice/3 to ~/.libreoffice/3-suse # to avoid BerkleyDB incompatibility with the plain build Patch1: scp2-user-config-suse.diff @@ -101,16 +101,10 @@ Patch1: scp2-user-config-suse.diff # FIXME: the right fix is to compile the help and produce the .db_, .ht_, and other files Patch2: nlpsolver-no-broken-help.diff Patch3: mediawiki-no-broken-help.diff -Patch4: kde5-configure-checks.patch -Patch5: 0001-Use-PYTHON_FOR_BUILD-instead-of-calling-python-direc.patch -# LO-L3: Wrong transition time -Patch7: bnc1039203.patch -# LO-L3: Slide with chart has some strange (too large?) elements (PPTX) -Patch8: bnc1060128.patch -# PATCH-FROM-UPSTREAM fix build with new icu -Patch9: libreoffice-icu61.patch -# LO-L3: LO Writer: Text in boxes not visible -Patch10: bnc1094359.patch +# Fix java detection on pcs with 99+ cpus, it prints too many warnings and then +# math does not work +Patch4: libreoffice-java-sched.patch +Patch5: libreoffice-libxmlsec.patch # try to save space by using hardlinks Patch990: install-with-hardlinks.diff BuildRequires: %{name}-share-linker @@ -125,14 +119,16 @@ BuildRequires: curl-devel # Needed for tests BuildRequires: dejavu-fonts BuildRequires: doxygen >= 1.8.4 +# Dot is used by doxygen BuildRequires: fdupes BuildRequires: flex BuildRequires: flute BuildRequires: gcc-c++ BuildRequires: glm-devel +BuildRequires: graphviz # Needed for tests BuildRequires: google-carlito-fonts -BuildRequires: gperf +BuildRequires: gperf >= 3.0.0 BuildRequires: hyphen-devel # genbrk binary is required BuildRequires: icu @@ -147,8 +143,6 @@ BuildRequires: libformula BuildRequires: libjpeg-devel BuildRequires: liblayout BuildRequires: libloader -BuildRequires: libmysqlclient-devel -BuildRequires: libmysqlcppconn-devel >= 1.0.6 BuildRequires: librepository BuildRequires: libserializer BuildRequires: libtool @@ -160,6 +154,7 @@ BuildRequires: openldap2-devel BuildRequires: pentaho-libxml BuildRequires: pentaho-reporting-flow-engine BuildRequires: pkgconfig +BuildRequires: python3-lxml BuildRequires: python3-xml BuildRequires: sac BuildRequires: ucpp @@ -195,12 +190,13 @@ BuildRequires: pkgconfig(libcmis-0.5) >= 0.5.0 BuildRequires: pkgconfig(libe-book-0.1) >= 0.1.1 BuildRequires: pkgconfig(libeot) >= 0.01 BuildRequires: pkgconfig(libepubgen-0.1) -BuildRequires: pkgconfig(libetonyek-0.1) >= 0.1.7 +BuildRequires: pkgconfig(libetonyek-0.1) >= 0.1.8 BuildRequires: pkgconfig(libexttextcat) >= 3.1.1 BuildRequires: pkgconfig(libfreehand-0.1) BuildRequires: pkgconfig(liblangtag) BuildRequires: pkgconfig(libmspub-0.1) >= 0.1 BuildRequires: pkgconfig(libmwaw-0.3) >= 0.3.13 +BuildRequires: pkgconfig(libnumbertext) >= 1.0.0 BuildRequires: pkgconfig(libodfgen-0.1) >= 0.1.4 BuildRequires: pkgconfig(liborcus-0.13) BuildRequires: pkgconfig(libpagemaker-0.0) @@ -208,11 +204,11 @@ BuildRequires: pkgconfig(libpq) BuildRequires: pkgconfig(libqxp-0.0) BuildRequires: pkgconfig(librevenge-0.0) >= 0.0.1 BuildRequires: pkgconfig(librsvg-2.0) -BuildRequires: pkgconfig(libstaroffice-0.0) >= 0.0.4 +BuildRequires: pkgconfig(libstaroffice-0.0) >= 0.0.6 BuildRequires: pkgconfig(libvisio-0.1) >= 0.1 BuildRequires: pkgconfig(libwpd-0.10) >= 0.10 BuildRequires: pkgconfig(libwpg-0.3) -BuildRequires: pkgconfig(libwps-0.4) >= 0.4.7 +BuildRequires: pkgconfig(libwps-0.4) >= 0.4.9 BuildRequires: pkgconfig(libxml-2.0) BuildRequires: pkgconfig(libxslt) BuildRequires: pkgconfig(libzmf-0.0) @@ -261,7 +257,7 @@ Requires(postun): update-desktop-files %endif %if %{with gtk3} BuildRequires: pkgconfig(glib-2.0) >= 2.40 -BuildRequires: pkgconfig(gtk+-3.0) +BuildRequires: pkgconfig(gtk+-3.0) >= 3.18 %else Provides: libreofficekit = %{version} Obsoletes: libreofficekit < %{version} @@ -288,7 +284,17 @@ BuildRequires: boost-devel BuildRequires: pkgconfig(fbclient) %endif %if %{with kdeintegration} -BuildRequires: libkde4-devel +BuildRequires: libqt5-qtbase-common-devel +BuildRequires: cmake(KF5Config) +BuildRequires: cmake(KF5CoreAddons) +BuildRequires: cmake(KF5I18n) +BuildRequires: cmake(KF5KIO) +BuildRequires: cmake(KF5WindowSystem) +BuildRequires: pkgconfig(Qt5Core) +BuildRequires: pkgconfig(Qt5Gui) +BuildRequires: pkgconfig(Qt5Network) +BuildRequires: pkgconfig(Qt5Widgets) +BuildRequires: pkgconfig(Qt5X11Extras) %else Provides: %{name}-kde4 = %{version} Obsoletes: %{name}-kde4 < %{version} @@ -386,6 +392,7 @@ Summary: LibreOffice Base Group: Productivity/Office/Suite Requires: %{name} = %{version} Requires: pentaho-reporting-flow-engine +Obsoletes: %{name}-base-drivers-mysql %if 0%{?suse_version} <= 1500 Supplements: %{name} %endif @@ -626,16 +633,6 @@ developers to access the complete LibreOffice API from their Java environment giving them full control over the embedded document, its appearance and behavior. -%package base-drivers-mysql -Summary: MySQL Database Driver for LibreOffice -Group: Productivity/Office/Suite -Requires: libreoffice-base = %{version} -Requires(pre): libreoffice = %{version} -Supplements: packageand(libreoffice-base:mysql-client) - -%description base-drivers-mysql -This package allows to access MySQL databases from LibreOffice Base. - %package calc-extensions Summary: LibreOffice Calc Extensions Group: Productivity/Office/Suite @@ -915,10 +912,13 @@ Provides additional %{langname} translations and resources for %{project}. \ %patch3 %patch4 -p1 %patch5 -p1 +<<<<<<< ./libreoffice.spec.mine +======= %patch7 -p1 %patch8 -p1 %patch9 -p1 %patch10 -p1 +>>>>>>> ./libreoffice.spec.r39e201c4a7e11cf1b55d4dcd6e9ae3d2 %patch990 -p1 # Disable some of the failing tests (some are random) @@ -997,6 +997,9 @@ export NOCONFIGURE=yes --enable-gstreamer-1-0 \ %if %{with gtk3} --enable-gtk3 \ +%if %{with kdeintegration} + --enable-gtk3-kde5 \ +%endif %else --disable-gtk3 \ %endif @@ -1020,13 +1023,9 @@ export NOCONFIGURE=yes --with-help \ --without-export-validation \ --enable-odk \ -%if %{with kdeintegration} - --disable-qt5 \ - --enable-kde4 \ -%else --disable-qt5 \ + --disable-kde5 \ --disable-kde4 \ -%endif %if %{with system_gpgme} --with-system-gpgmepp \ %else @@ -1043,7 +1042,7 @@ export NOCONFIGURE=yes --enable-ext-nlpsolver \ --enable-ext-numbertext \ --enable-ext-wiki-publisher \ - --enable-ext-mariadb-connector \ + --disable-ext-mariadb-connector \ --enable-scripting-beanshell \ --enable-scripting-javascript \ --disable-vlc \ @@ -1061,7 +1060,11 @@ make build-nocheck %check # Run tests only on 64b intel as they are resource hogs %ifarch x86_64 +# safeguard jarfires that can get magically overriden by the make +mkdir savejar +cp %{buildroot}%{_libdir}/%{name}/program/classes/*.jar savejar/ make +cp savejar/*.jar %{buildroot}%{_libdir}/%{name}/program/classes/ %endif %install @@ -1448,9 +1451,6 @@ exit 0 %files -f file-lists/sdk_doc_list.txt sdk-doc -%files base-drivers-mysql -%{_libdir}/%{name}/share/extensions/mysql-connector-ooo - %files calc-extensions %{_libdir}/%{name}/share/extensions/ConvertTextToNumber %{_libdir}/%{name}/share/extensions/nlpsolver @@ -1466,8 +1466,8 @@ exit 0 %{_datadir}/%{name}/share/config/images_breeze.zip %{_datadir}/%{name}/share/config/images_breeze_dark.zip %{_datadir}/%{name}/share/config/images_elementary.zip -%{_datadir}/%{name}/share/config/images_galaxy.zip -%{_datadir}/%{name}/share/config/images_hicontrast.zip +%{_datadir}/%{name}/share/config/images_colibre.zip +%{_datadir}/%{name}/share/config/images_karasa_jaga.zip %{_datadir}/%{name}/share/config/images_sifr.zip %{_datadir}/%{name}/share/config/images_sifr_dark.zip %{_datadir}/%{name}/share/config/images_tango.zip diff --git a/odfvalidator-1.2.0-incubating-SNAPSHOT-jar-with-dependencies%2BODFTOOLKIT-460%2BODFTOOLKIT-475.jar b/odfvalidator-1.2.0-incubating-SNAPSHOT-jar-with-dependencies%2BODFTOOLKIT-460%2BODFTOOLKIT-475.jar new file mode 100644 index 0000000..8cb3d87 --- /dev/null +++ b/odfvalidator-1.2.0-incubating-SNAPSHOT-jar-with-dependencies%2BODFTOOLKIT-460%2BODFTOOLKIT-475.jar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:702413413a5d8076c17fe79c0808dfba145a7260020f6c8627ea529a0cf83769 +size 23988041 diff --git a/pdfium-3235.tar.bz2 b/pdfium-3235.tar.bz2 deleted file mode 100644 index 1c29c7c..0000000 --- a/pdfium-3235.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7dc0d33fc24b1612865f5e173d48800ba3f2db891c57e3f92b9d2ce56ffeb72f -size 5836207 diff --git a/pdfium-3426.tar.bz2 b/pdfium-3426.tar.bz2 new file mode 100644 index 0000000..5457804 --- /dev/null +++ b/pdfium-3426.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:80331b48166501a192d65476932f17044eeb5f10faa6ea50f4f175169475c957 +size 6348500