reportdesign/source/ui/misc/UITools.cxx |  127 ++++++++++++++++----------------
 1 file changed, 66 insertions(+), 61 deletions(-)

New commits:
commit a61f383af95374814f3131c2a3c0247fa312971a
Author:     Noel Grandin <noel.gran...@collabora.co.uk>
AuthorDate: Fri Aug 5 14:11:41 2022 +0200
Commit:     Xisco Fauli <xiscofa...@libreoffice.org>
CommitDate: Wed Aug 10 09:08:15 2022 +0200

    tdf#150222 reporbuilder, set font for a text box crashes
    
    regression from
        commit c4cf2e82e8d0aaef9b1daedc033d6edf647e5284
        Author: Samuel Mehrbrodt <samuel.mehrbr...@allotropia.de>
        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 <serval2...@yahoo.fr>
    Reviewed-by: Julien Nabet <serval2...@yahoo.fr>
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>
    (cherry picked from commit 9a444884c3b221c9bd7b0aa4476c160921c7fc35)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137826
    Tested-by: Jenkins
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>

diff --git a/reportdesign/source/ui/misc/UITools.cxx 
b/reportdesign/source/ui/misc/UITools.cxx
index 87062e35c6f6..9e00b4ad57b3 100644
--- a/reportdesign/source/ui/misc/UITools.cxx
+++ b/reportdesign/source/ui/misc/UITools.cxx
@@ -120,46 +120,50 @@
 #include <svx/xflftrit.hxx>
 #include <svx/xsflclit.hxx>
 
-#define ITEMID_FONT                     
TypedWhichId<SvxFontItem>(XATTR_FILL_LAST + 1)
-#define ITEMID_FONTHEIGHT               
TypedWhichId<SvxFontHeightItem>(XATTR_FILL_LAST + 2)
-#define ITEMID_LANGUAGE                 
TypedWhichId<SvxLanguageItem>(XATTR_FILL_LAST + 3)
-
-#define ITEMID_POSTURE                  
TypedWhichId<SvxPostureItem>(XATTR_FILL_LAST + 4)
-#define ITEMID_WEIGHT                   
TypedWhichId<SvxWeightItem>(XATTR_FILL_LAST + 5)
-#define ITEMID_SHADOWED                 
TypedWhichId<SvxShadowedItem>(XATTR_FILL_LAST + 6)
-#define ITEMID_WORDLINEMODE             
TypedWhichId<SvxWordLineModeItem>(XATTR_FILL_LAST + 7)
-#define ITEMID_CONTOUR                  
TypedWhichId<SvxContourItem>(XATTR_FILL_LAST + 8)
-#define ITEMID_CROSSEDOUT               
TypedWhichId<SvxCrossedOutItem>(XATTR_FILL_LAST + 9)
-#define ITEMID_UNDERLINE                
TypedWhichId<SvxUnderlineItem>(XATTR_FILL_LAST + 10)
-
-#define ITEMID_COLOR                    
TypedWhichId<SvxColorItem>(XATTR_FILL_LAST + 11)
-#define ITEMID_KERNING                  
TypedWhichId<SvxKerningItem>(XATTR_FILL_LAST + 12)
-#define ITEMID_CASEMAP                  
TypedWhichId<SvxCaseMapItem>(XATTR_FILL_LAST + 13)
-
-#define ITEMID_ESCAPEMENT               
TypedWhichId<SvxEscapementItem>(XATTR_FILL_LAST + 14)
-#define ITEMID_FONTLIST                 XATTR_FILL_LAST + 15
-#define ITEMID_AUTOKERN                 
TypedWhichId<SvxAutoKernItem>(XATTR_FILL_LAST + 16)
-#define ITEMID_COLOR_TABLE              
TypedWhichId<SvxColorListItem>(XATTR_FILL_LAST + 17)
-#define ITEMID_BLINK                    
TypedWhichId<SvxBlinkItem>(XATTR_FILL_LAST + 18)
-#define ITEMID_EMPHASISMARK             
TypedWhichId<SvxEmphasisMarkItem>(XATTR_FILL_LAST + 19)
-#define ITEMID_TWOLINES                 
TypedWhichId<SvxTwoLinesItem>(XATTR_FILL_LAST + 20)
-#define ITEMID_CHARROTATE               
TypedWhichId<SvxCharRotateItem>(XATTR_FILL_LAST + 21)
-#define ITEMID_CHARSCALE_W              
TypedWhichId<SvxCharScaleWidthItem>(XATTR_FILL_LAST + 22)
-#define ITEMID_CHARRELIEF               
TypedWhichId<SvxCharReliefItem>(XATTR_FILL_LAST + 23)
-#define ITEMID_CHARHIDDEN               
TypedWhichId<SvxCharHiddenItem>(XATTR_FILL_LAST + 24)
-#define ITEMID_BRUSH                    
TypedWhichId<SvxBrushItem>(XATTR_FILL_LAST + 25)
-#define ITEMID_HORJUSTIFY               
TypedWhichId<SvxHorJustifyItem>(XATTR_FILL_LAST + 26)
-#define ITEMID_VERJUSTIFY               
TypedWhichId<SvxVerJustifyItem>(XATTR_FILL_LAST + 27)
-#define ITEMID_FONT_ASIAN               
TypedWhichId<SvxFontItem>(XATTR_FILL_LAST + 28)
-#define ITEMID_FONTHEIGHT_ASIAN         
TypedWhichId<SvxFontHeightItem>(XATTR_FILL_LAST + 29)
-#define ITEMID_LANGUAGE_ASIAN           
TypedWhichId<SvxLanguageItem>(XATTR_FILL_LAST + 30)
-#define ITEMID_POSTURE_ASIAN            
TypedWhichId<SvxPostureItem>(XATTR_FILL_LAST + 31)
-#define ITEMID_WEIGHT_ASIAN             
TypedWhichId<SvxWeightItem>(XATTR_FILL_LAST + 32)
-#define ITEMID_FONT_COMPLEX             
TypedWhichId<SvxFontItem>(XATTR_FILL_LAST + 33)
-#define ITEMID_FONTHEIGHT_COMPLEX       
TypedWhichId<SvxFontHeightItem>(XATTR_FILL_LAST + 34)
-#define ITEMID_LANGUAGE_COMPLEX         
TypedWhichId<SvxLanguageItem>(XATTR_FILL_LAST + 35)
-#define ITEMID_POSTURE_COMPLEX          
TypedWhichId<SvxPostureItem>(XATTR_FILL_LAST + 36)
-#define ITEMID_WEIGHT_COMPLEX           
TypedWhichId<SvxWeightItem>(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<SvxFontItem>(ITEMID_FIRST)
+#define ITEMID_FONTHEIGHT               
TypedWhichId<SvxFontHeightItem>(ITEMID_FIRST + 1)
+#define ITEMID_LANGUAGE                 
TypedWhichId<SvxLanguageItem>(ITEMID_FIRST + 2)
+
+#define ITEMID_POSTURE                  
TypedWhichId<SvxPostureItem>(ITEMID_FIRST + 3)
+#define ITEMID_WEIGHT                   
TypedWhichId<SvxWeightItem>(ITEMID_FIRST + 4)
+#define ITEMID_SHADOWED                 
TypedWhichId<SvxShadowedItem>(ITEMID_FIRST + 5)
+#define ITEMID_WORDLINEMODE             
TypedWhichId<SvxWordLineModeItem>(ITEMID_FIRST + 6)
+#define ITEMID_CONTOUR                  
TypedWhichId<SvxContourItem>(ITEMID_FIRST + 7)
+#define ITEMID_CROSSEDOUT               
TypedWhichId<SvxCrossedOutItem>(ITEMID_FIRST + 8)
+#define ITEMID_UNDERLINE                
TypedWhichId<SvxUnderlineItem>(ITEMID_FIRST + 9)
+
+#define ITEMID_COLOR                    
TypedWhichId<SvxColorItem>(ITEMID_FIRST + 10)
+#define ITEMID_KERNING                  
TypedWhichId<SvxKerningItem>(ITEMID_FIRST + 11)
+#define ITEMID_CASEMAP                  
TypedWhichId<SvxCaseMapItem>(ITEMID_FIRST + 12)
+
+#define ITEMID_ESCAPEMENT               
TypedWhichId<SvxEscapementItem>(ITEMID_FIRST + 13)
+#define ITEMID_FONTLIST                 ITEMID_FIRST + 14
+#define ITEMID_AUTOKERN                 
TypedWhichId<SvxAutoKernItem>(ITEMID_FIRST + 15)
+#define ITEMID_COLOR_TABLE              
TypedWhichId<SvxColorListItem>(ITEMID_FIRST + 16)
+#define ITEMID_BLINK                    
TypedWhichId<SvxBlinkItem>(ITEMID_FIRST + 17)
+#define ITEMID_EMPHASISMARK             
TypedWhichId<SvxEmphasisMarkItem>(ITEMID_FIRST + 18)
+#define ITEMID_TWOLINES                 
TypedWhichId<SvxTwoLinesItem>(ITEMID_FIRST + 19)
+#define ITEMID_CHARROTATE               
TypedWhichId<SvxCharRotateItem>(ITEMID_FIRST + 20)
+#define ITEMID_CHARSCALE_W              
TypedWhichId<SvxCharScaleWidthItem>(ITEMID_FIRST + 21)
+#define ITEMID_CHARRELIEF               
TypedWhichId<SvxCharReliefItem>(ITEMID_FIRST + 22)
+#define ITEMID_CHARHIDDEN               
TypedWhichId<SvxCharHiddenItem>(ITEMID_FIRST + 23)
+#define ITEMID_BRUSH                    
TypedWhichId<SvxBrushItem>(ITEMID_FIRST + 24)
+#define ITEMID_HORJUSTIFY               
TypedWhichId<SvxHorJustifyItem>(ITEMID_FIRST + 25)
+#define ITEMID_VERJUSTIFY               
TypedWhichId<SvxVerJustifyItem>(ITEMID_FIRST + 26)
+#define ITEMID_FONT_ASIAN               TypedWhichId<SvxFontItem>(ITEMID_FIRST 
+ 27)
+#define ITEMID_FONTHEIGHT_ASIAN         
TypedWhichId<SvxFontHeightItem>(ITEMID_FIRST + 28)
+#define ITEMID_LANGUAGE_ASIAN           
TypedWhichId<SvxLanguageItem>(ITEMID_FIRST + 29)
+#define ITEMID_POSTURE_ASIAN            
TypedWhichId<SvxPostureItem>(ITEMID_FIRST + 30)
+#define ITEMID_WEIGHT_ASIAN             
TypedWhichId<SvxWeightItem>(ITEMID_FIRST + 31)
+#define ITEMID_FONT_COMPLEX             TypedWhichId<SvxFontItem>(ITEMID_FIRST 
+ 32)
+#define ITEMID_FONTHEIGHT_COMPLEX       
TypedWhichId<SvxFontHeightItem>(ITEMID_FIRST + 33)
+#define ITEMID_LANGUAGE_COMPLEX         
TypedWhichId<SvxLanguageItem>(ITEMID_FIRST + 34)
+#define ITEMID_POSTURE_COMPLEX          
TypedWhichId<SvxPostureItem>(ITEMID_FIRST + 35)
+#define ITEMID_WEIGHT_COMPLEX           
TypedWhichId<SvxWeightItem>(ITEMID_FIRST + 36)
 
 #define WESTERN 0
 #define ASIAN   1
@@ -553,26 +557,26 @@ bool openCharDialog( const 
uno::Reference<report::XReportControlFormat >& _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 },
@@ -692,7 +696,8 @@ bool openCharDialog( const 
uno::Reference<report::XReportControlFormat >& _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<SfxItemPool> pPool(new SfxItemPool("ReportCharProperties", 
XATTR_FILL_FIRST,ITEMID_WEIGHT_COMPLEX, aItemInfos, &pDefaults));

Reply via email to