From 9a444884c3b221c9bd7b0aa4476c160921c7fc35 Mon Sep 17 00:00:00 2001 From: Noel Grandin Date: Fri, 5 Aug 2022 14:11:41 +0200 Subject: tdf#150222 reporbuilder, set font for a text box crashes regression from commit c4cf2e82e8d0aaef9b1daedc033d6edf647e5284 Author: Samuel Mehrbrodt Date: Mon Jun 13 08:53:22 2022 +0200 tdf#128150 Add OOXML import/export for "use background fill" which modified XATTR_FILL_LAST. Ideally, I would just adjust the ranges for the pool, but I can't do that because we are using static defaults, and the range for static defaults has to be contiguous. Also update the aItemInfos array to avoid a DBG_UTIL check that complains about mapping a SID to itself Change-Id: Ie76bdc83fa0a0ad07b6b2afdb678193889373cb2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137867 Tested-by: Julien Nabet Reviewed-by: Julien Nabet Reviewed-by: Noel Grandin --- reportdesign/source/ui/misc/UITools.cxx | 127 +++++++++++++++++--------------- 1 file changed, 66 insertions(+), 61 deletions(-) (limited to 'reportdesign') diff --git a/reportdesign/source/ui/misc/UITools.cxx b/reportdesign/source/ui/misc/UITools.cxx index b77f3f77a77b..1c0ca7733e6a 100644 --- a/reportdesign/source/ui/misc/UITools.cxx +++ b/reportdesign/source/ui/misc/UITools.cxx @@ -120,46 +120,50 @@ #include #include -#define ITEMID_FONT TypedWhichId(XATTR_FILL_LAST + 1) -#define ITEMID_FONTHEIGHT TypedWhichId(XATTR_FILL_LAST + 2) -#define ITEMID_LANGUAGE TypedWhichId(XATTR_FILL_LAST + 3) - -#define ITEMID_POSTURE TypedWhichId(XATTR_FILL_LAST + 4) -#define ITEMID_WEIGHT TypedWhichId(XATTR_FILL_LAST + 5) -#define ITEMID_SHADOWED TypedWhichId(XATTR_FILL_LAST + 6) -#define ITEMID_WORDLINEMODE TypedWhichId(XATTR_FILL_LAST + 7) -#define ITEMID_CONTOUR TypedWhichId(XATTR_FILL_LAST + 8) -#define ITEMID_CROSSEDOUT TypedWhichId(XATTR_FILL_LAST + 9) -#define ITEMID_UNDERLINE TypedWhichId(XATTR_FILL_LAST + 10) - -#define ITEMID_COLOR TypedWhichId(XATTR_FILL_LAST + 11) -#define ITEMID_KERNING TypedWhichId(XATTR_FILL_LAST + 12) -#define ITEMID_CASEMAP TypedWhichId(XATTR_FILL_LAST + 13) - -#define ITEMID_ESCAPEMENT TypedWhichId(XATTR_FILL_LAST + 14) -#define ITEMID_FONTLIST XATTR_FILL_LAST + 15 -#define ITEMID_AUTOKERN TypedWhichId(XATTR_FILL_LAST + 16) -#define ITEMID_COLOR_TABLE TypedWhichId(XATTR_FILL_LAST + 17) -#define ITEMID_BLINK TypedWhichId(XATTR_FILL_LAST + 18) -#define ITEMID_EMPHASISMARK TypedWhichId(XATTR_FILL_LAST + 19) -#define ITEMID_TWOLINES TypedWhichId(XATTR_FILL_LAST + 20) -#define ITEMID_CHARROTATE TypedWhichId(XATTR_FILL_LAST + 21) -#define ITEMID_CHARSCALE_W TypedWhichId(XATTR_FILL_LAST + 22) -#define ITEMID_CHARRELIEF TypedWhichId(XATTR_FILL_LAST + 23) -#define ITEMID_CHARHIDDEN TypedWhichId(XATTR_FILL_LAST + 24) -#define ITEMID_BRUSH TypedWhichId(XATTR_FILL_LAST + 25) -#define ITEMID_HORJUSTIFY TypedWhichId(XATTR_FILL_LAST + 26) -#define ITEMID_VERJUSTIFY TypedWhichId(XATTR_FILL_LAST + 27) -#define ITEMID_FONT_ASIAN TypedWhichId(XATTR_FILL_LAST + 28) -#define ITEMID_FONTHEIGHT_ASIAN TypedWhichId(XATTR_FILL_LAST + 29) -#define ITEMID_LANGUAGE_ASIAN TypedWhichId(XATTR_FILL_LAST + 30) -#define ITEMID_POSTURE_ASIAN TypedWhichId(XATTR_FILL_LAST + 31) -#define ITEMID_WEIGHT_ASIAN TypedWhichId(XATTR_FILL_LAST + 32) -#define ITEMID_FONT_COMPLEX TypedWhichId(XATTR_FILL_LAST + 33) -#define ITEMID_FONTHEIGHT_COMPLEX TypedWhichId(XATTR_FILL_LAST + 34) -#define ITEMID_LANGUAGE_COMPLEX TypedWhichId(XATTR_FILL_LAST + 35) -#define ITEMID_POSTURE_COMPLEX TypedWhichId(XATTR_FILL_LAST + 36) -#define ITEMID_WEIGHT_COMPLEX TypedWhichId(XATTR_FILL_LAST + 37) +/// Note that we deliberately overlap an existing item id, so that we can have contiguous item ids for +/// the static defaults. +#define ITEMID_FIRST XATTR_FILL_LAST + +#define ITEMID_FONT TypedWhichId(ITEMID_FIRST) +#define ITEMID_FONTHEIGHT TypedWhichId(ITEMID_FIRST + 1) +#define ITEMID_LANGUAGE TypedWhichId(ITEMID_FIRST + 2) + +#define ITEMID_POSTURE TypedWhichId(ITEMID_FIRST + 3) +#define ITEMID_WEIGHT TypedWhichId(ITEMID_FIRST + 4) +#define ITEMID_SHADOWED TypedWhichId(ITEMID_FIRST + 5) +#define ITEMID_WORDLINEMODE TypedWhichId(ITEMID_FIRST + 6) +#define ITEMID_CONTOUR TypedWhichId(ITEMID_FIRST + 7) +#define ITEMID_CROSSEDOUT TypedWhichId(ITEMID_FIRST + 8) +#define ITEMID_UNDERLINE TypedWhichId(ITEMID_FIRST + 9) + +#define ITEMID_COLOR TypedWhichId(ITEMID_FIRST + 10) +#define ITEMID_KERNING TypedWhichId(ITEMID_FIRST + 11) +#define ITEMID_CASEMAP TypedWhichId(ITEMID_FIRST + 12) + +#define ITEMID_ESCAPEMENT TypedWhichId(ITEMID_FIRST + 13) +#define ITEMID_FONTLIST ITEMID_FIRST + 14 +#define ITEMID_AUTOKERN TypedWhichId(ITEMID_FIRST + 15) +#define ITEMID_COLOR_TABLE TypedWhichId(ITEMID_FIRST + 16) +#define ITEMID_BLINK TypedWhichId(ITEMID_FIRST + 17) +#define ITEMID_EMPHASISMARK TypedWhichId(ITEMID_FIRST + 18) +#define ITEMID_TWOLINES TypedWhichId(ITEMID_FIRST + 19) +#define ITEMID_CHARROTATE TypedWhichId(ITEMID_FIRST + 20) +#define ITEMID_CHARSCALE_W TypedWhichId(ITEMID_FIRST + 21) +#define ITEMID_CHARRELIEF TypedWhichId(ITEMID_FIRST + 22) +#define ITEMID_CHARHIDDEN TypedWhichId(ITEMID_FIRST + 23) +#define ITEMID_BRUSH TypedWhichId(ITEMID_FIRST + 24) +#define ITEMID_HORJUSTIFY TypedWhichId(ITEMID_FIRST + 25) +#define ITEMID_VERJUSTIFY TypedWhichId(ITEMID_FIRST + 26) +#define ITEMID_FONT_ASIAN TypedWhichId(ITEMID_FIRST + 27) +#define ITEMID_FONTHEIGHT_ASIAN TypedWhichId(ITEMID_FIRST + 28) +#define ITEMID_LANGUAGE_ASIAN TypedWhichId(ITEMID_FIRST + 29) +#define ITEMID_POSTURE_ASIAN TypedWhichId(ITEMID_FIRST + 30) +#define ITEMID_WEIGHT_ASIAN TypedWhichId(ITEMID_FIRST + 31) +#define ITEMID_FONT_COMPLEX TypedWhichId(ITEMID_FIRST + 32) +#define ITEMID_FONTHEIGHT_COMPLEX TypedWhichId(ITEMID_FIRST + 33) +#define ITEMID_LANGUAGE_COMPLEX TypedWhichId(ITEMID_FIRST + 34) +#define ITEMID_POSTURE_COMPLEX TypedWhichId(ITEMID_FIRST + 35) +#define ITEMID_WEIGHT_COMPLEX TypedWhichId(ITEMID_FIRST + 36) #define WESTERN 0 #define ASIAN 1 @@ -553,26 +557,26 @@ bool openCharDialog( const uno::Reference& _rxRep // UNO->ItemSet static SfxItemInfo aItemInfos[] = { - { XATTR_FILLSTYLE, true }, - { XATTR_FILLCOLOR, true }, - { XATTR_FILLGRADIENT, true }, - { XATTR_FILLHATCH, true }, - { XATTR_FILLBITMAP, true }, - { XATTR_FILLTRANSPARENCE, true }, - { XATTR_GRADIENTSTEPCOUNT, true }, - { XATTR_FILLBMP_TILE, true }, - { XATTR_FILLBMP_POS, true }, - { XATTR_FILLBMP_SIZEX, true }, - { XATTR_FILLBMP_SIZEY, true }, - { XATTR_FILLFLOATTRANSPARENCE, true }, - { XATTR_SECONDARYFILLCOLOR, true }, - { XATTR_FILLBMP_SIZELOG, true }, - { XATTR_FILLBMP_TILEOFFSETX, true }, - { XATTR_FILLBMP_TILEOFFSETY, true }, - { XATTR_FILLBMP_STRETCH, true }, - { XATTR_FILLBMP_POSOFFSETX, true }, - { XATTR_FILLBMP_POSOFFSETY, true }, - { XATTR_FILLBACKGROUND, true }, + { 0, true }, + { 0, true }, + { 0, true }, + { 0, true }, + { 0, true }, + { 0, true }, + { 0, true }, + { 0, true }, + { 0, true }, + { 0, true }, + { 0, true }, + { 0, true }, + { 0, true }, + { 0, true }, + { 0, true }, + { 0, true }, + { 0, true }, + { 0, true }, + { 0, true }, + { 0, true }, { SID_ATTR_CHAR_FONT, true }, { SID_ATTR_CHAR_FONTHEIGHT, true }, @@ -691,7 +695,8 @@ bool openCharDialog( const uno::Reference& _rxRep OSL_ASSERT( pDefaults.size() == SAL_N_ELEMENTS(aItemInfos) ); static const WhichRangesContainer pRanges(svl::Items< - XATTR_FILL_FIRST, ITEMID_WEIGHT_COMPLEX + XATTR_FILLSTYLE, XATTR_FILLBACKGROUND, + ITEMID_FONT, ITEMID_WEIGHT_COMPLEX >); rtl::Reference pPool(new SfxItemPool("ReportCharProperties", XATTR_FILL_FIRST,ITEMID_WEIGHT_COMPLEX, aItemInfos, &pDefaults)); -- cgit