LCOV - code coverage report
Current view: top level - sc/source/core/data - docpool.cxx (source / functions) Hit Total Coverage
Test: libreoffice_filtered.info Lines: 288 445 64.7 %
Date: 2012-08-25 Functions: 10 14 71.4 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 299 906 33.0 %

           Branch data     Line data    Source code
       1                 :            : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
       2                 :            : /*************************************************************************
       3                 :            :  *
       4                 :            :  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
       5                 :            :  *
       6                 :            :  * Copyright 2000, 2010 Oracle and/or its affiliates.
       7                 :            :  *
       8                 :            :  * OpenOffice.org - a multi-platform office productivity suite
       9                 :            :  *
      10                 :            :  * This file is part of OpenOffice.org.
      11                 :            :  *
      12                 :            :  * OpenOffice.org is free software: you can redistribute it and/or modify
      13                 :            :  * it under the terms of the GNU Lesser General Public License version 3
      14                 :            :  * only, as published by the Free Software Foundation.
      15                 :            :  *
      16                 :            :  * OpenOffice.org is distributed in the hope that it will be useful,
      17                 :            :  * but WITHOUT ANY WARRANTY; without even the implied warranty of
      18                 :            :  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      19                 :            :  * GNU Lesser General Public License version 3 for more details
      20                 :            :  * (a copy is included in the LICENSE file that accompanied this code).
      21                 :            :  *
      22                 :            :  * You should have received a copy of the GNU Lesser General Public License
      23                 :            :  * version 3 along with OpenOffice.org.  If not, see
      24                 :            :  * <http://www.openoffice.org/license.html>
      25                 :            :  * for a copy of the LGPLv3 License.
      26                 :            :  *
      27                 :            :  ************************************************************************/
      28                 :            : 
      29                 :            : 
      30                 :            : #include "scitems.hxx"
      31                 :            : #include <comphelper/string.hxx>
      32                 :            : #include <tools/shl.hxx>
      33                 :            : #include <vcl/outdev.hxx>
      34                 :            : #include <svl/aeitem.hxx>
      35                 :            : #include <svl/itemiter.hxx>
      36                 :            : #include <svx/algitem.hxx>
      37                 :            : #include <editeng/boxitem.hxx>
      38                 :            : #include <editeng/bolnitem.hxx>
      39                 :            : #include <editeng/brshitem.hxx>
      40                 :            : #include <editeng/charreliefitem.hxx>
      41                 :            : #include <editeng/cntritem.hxx>
      42                 :            : #include <editeng/colritem.hxx>
      43                 :            : #include <editeng/crsditem.hxx>
      44                 :            : #include <svx/dialmgr.hxx>
      45                 :            : #include <editeng/emphitem.hxx>
      46                 :            : #include <editeng/fhgtitem.hxx>
      47                 :            : #include <editeng/fontitem.hxx>
      48                 :            : #include <editeng/forbiddenruleitem.hxx>
      49                 :            : #include <editeng/frmdiritem.hxx>
      50                 :            : #include <editeng/hngpnctitem.hxx>
      51                 :            : #include <editeng/itemtype.hxx>
      52                 :            : #include <editeng/langitem.hxx>
      53                 :            : #include <editeng/lrspitem.hxx>
      54                 :            : #include <svx/pageitem.hxx>
      55                 :            : #include <editeng/pbinitem.hxx>
      56                 :            : #include <editeng/postitem.hxx>
      57                 :            : #include <svx/rotmodit.hxx>
      58                 :            : #include <editeng/scriptspaceitem.hxx>
      59                 :            : #include <editeng/shaditem.hxx>
      60                 :            : #include <editeng/shdditem.hxx>
      61                 :            : #include <editeng/sizeitem.hxx>
      62                 :            : #include <svx/svxitems.hrc>
      63                 :            : #include <editeng/udlnitem.hxx>
      64                 :            : #include <editeng/ulspitem.hxx>
      65                 :            : #include <editeng/wghtitem.hxx>
      66                 :            : #include <editeng/wrlmitem.hxx>
      67                 :            : #include <editeng/xmlcnitm.hxx>
      68                 :            : #include <editeng/justifyitem.hxx>
      69                 :            : 
      70                 :            : #include "docpool.hxx"
      71                 :            : #include "global.hxx"
      72                 :            : #include "attrib.hxx"
      73                 :            : #include "patattr.hxx"
      74                 :            : #include "globstr.hrc"
      75                 :            : #include "sc.hrc"           // Slot-IDs
      76                 :            : 
      77                 :            : #define SC_MAX_POOLREF      (SFX_ITEMS_OLD_MAXREF - 39)
      78                 :            : #define SC_SAFE_POOLREF     (SC_MAX_POOLREF + 20)
      79                 :            : 
      80                 :            : // STATIC DATA -----------------------------------------------------------
      81                 :            : 
      82                 :            : sal_uInt16* ScDocumentPool::pVersionMap1 = 0;
      83                 :            : sal_uInt16* ScDocumentPool::pVersionMap2 = 0;
      84                 :            : sal_uInt16* ScDocumentPool::pVersionMap3 = 0;
      85                 :            : sal_uInt16* ScDocumentPool::pVersionMap4 = 0;
      86                 :            : sal_uInt16* ScDocumentPool::pVersionMap5 = 0;
      87                 :            : sal_uInt16* ScDocumentPool::pVersionMap6 = 0;
      88                 :            : sal_uInt16* ScDocumentPool::pVersionMap7 = 0;
      89                 :            : sal_uInt16* ScDocumentPool::pVersionMap8 = 0;
      90                 :            : sal_uInt16* ScDocumentPool::pVersionMap9 = 0;
      91                 :            : sal_uInt16* ScDocumentPool::pVersionMap10 = 0;
      92                 :            : sal_uInt16* ScDocumentPool::pVersionMap11 = 0;
      93                 :            : 
      94                 :            : // ATTR_FONT_TWOLINES (not used) was changed to ATTR_USERDEF (not saved in binary format) in 641c
      95                 :            : 
      96                 :            : static SfxItemInfo const  aItemInfos[] =
      97                 :            : {
      98                 :            :     { SID_ATTR_CHAR_FONT,           SFX_ITEM_POOLABLE },    // ATTR_FONT
      99                 :            :     { SID_ATTR_CHAR_FONTHEIGHT,     SFX_ITEM_POOLABLE },    // ATTR_FONT_HEIGHT
     100                 :            :     { SID_ATTR_CHAR_WEIGHT,         SFX_ITEM_POOLABLE },    // ATTR_FONT_WEIGHT
     101                 :            :     { SID_ATTR_CHAR_POSTURE,        SFX_ITEM_POOLABLE },    // ATTR_FONT_POSTURE
     102                 :            :     { SID_ATTR_CHAR_UNDERLINE,      SFX_ITEM_POOLABLE },    // ATTR_FONT_UNDERLINE
     103                 :            :     { SID_ATTR_CHAR_OVERLINE,       SFX_ITEM_POOLABLE },    // ATTR_FONT_OVERLINE
     104                 :            :     { SID_ATTR_CHAR_STRIKEOUT,      SFX_ITEM_POOLABLE },    // ATTR_FONT_CROSSEDOUT
     105                 :            :     { SID_ATTR_CHAR_CONTOUR,        SFX_ITEM_POOLABLE },    // ATTR_FONT_CONTOUR
     106                 :            :     { SID_ATTR_CHAR_SHADOWED,       SFX_ITEM_POOLABLE },    // ATTR_FONT_SHADOWED
     107                 :            :     { SID_ATTR_CHAR_COLOR,          SFX_ITEM_POOLABLE },    // ATTR_FONT_COLOR
     108                 :            :     { SID_ATTR_CHAR_LANGUAGE,       SFX_ITEM_POOLABLE },    // ATTR_FONT_LANGUAGE
     109                 :            :     { SID_ATTR_CHAR_CJK_FONT,       SFX_ITEM_POOLABLE },    // ATTR_CJK_FONT            from 614
     110                 :            :     { SID_ATTR_CHAR_CJK_FONTHEIGHT, SFX_ITEM_POOLABLE },    // ATTR_CJK_FONT_HEIGHT     from 614
     111                 :            :     { SID_ATTR_CHAR_CJK_WEIGHT,     SFX_ITEM_POOLABLE },    // ATTR_CJK_FONT_WEIGHT     from 614
     112                 :            :     { SID_ATTR_CHAR_CJK_POSTURE,    SFX_ITEM_POOLABLE },    // ATTR_CJK_FONT_POSTURE    from 614
     113                 :            :     { SID_ATTR_CHAR_CJK_LANGUAGE,   SFX_ITEM_POOLABLE },    // ATTR_CJK_FONT_LANGUAGE   from 614
     114                 :            :     { SID_ATTR_CHAR_CTL_FONT,       SFX_ITEM_POOLABLE },    // ATTR_CTL_FONT            from 614
     115                 :            :     { SID_ATTR_CHAR_CTL_FONTHEIGHT, SFX_ITEM_POOLABLE },    // ATTR_CTL_FONT_HEIGHT     from 614
     116                 :            :     { SID_ATTR_CHAR_CTL_WEIGHT,     SFX_ITEM_POOLABLE },    // ATTR_CTL_FONT_WEIGHT     from 614
     117                 :            :     { SID_ATTR_CHAR_CTL_POSTURE,    SFX_ITEM_POOLABLE },    // ATTR_CTL_FONT_POSTURE    from 614
     118                 :            :     { SID_ATTR_CHAR_CTL_LANGUAGE,   SFX_ITEM_POOLABLE },    // ATTR_CTL_FONT_LANGUAGE   from 614
     119                 :            :     { SID_ATTR_CHAR_EMPHASISMARK,   SFX_ITEM_POOLABLE },    // ATTR_FONT_EMPHASISMARK   from 614
     120                 :            :     { 0,                            SFX_ITEM_POOLABLE },    // ATTR_USERDEF             from 614 / 641c
     121                 :            :     { SID_ATTR_CHAR_WORDLINEMODE,   SFX_ITEM_POOLABLE },    // ATTR_FONT_WORDLINE       from 632b
     122                 :            :     { SID_ATTR_CHAR_RELIEF,         SFX_ITEM_POOLABLE },    // ATTR_FONT_RELIEF         from 632b
     123                 :            :     { SID_ATTR_ALIGN_HYPHENATION,   SFX_ITEM_POOLABLE },    // ATTR_HYPHENATE           from 632b
     124                 :            :     { 0,                            SFX_ITEM_POOLABLE },    // ATTR_SCRIPTSPACE         from 614d
     125                 :            :     { 0,                            SFX_ITEM_POOLABLE },    // ATTR_HANGPUNCTUATION     from 614d
     126                 :            :     { SID_ATTR_PARA_FORBIDDEN_RULES,SFX_ITEM_POOLABLE },    // ATTR_FORBIDDEN_RULES     from 614d
     127                 :            :     { SID_ATTR_ALIGN_HOR_JUSTIFY,   SFX_ITEM_POOLABLE },    // ATTR_HOR_JUSTIFY
     128                 :            :     { SID_ATTR_ALIGN_HOR_JUSTIFY_METHOD, SFX_ITEM_POOLABLE }, // ATTR_HOR_JUSTIFY_METHOD
     129                 :            :     { SID_ATTR_ALIGN_INDENT,        SFX_ITEM_POOLABLE },    // ATTR_INDENT          ab 350
     130                 :            :     { SID_ATTR_ALIGN_VER_JUSTIFY,   SFX_ITEM_POOLABLE },    // ATTR_VER_JUSTIFY
     131                 :            :     { SID_ATTR_ALIGN_VER_JUSTIFY_METHOD, SFX_ITEM_POOLABLE }, // ATTR_VER_JUSTIFY_METHOD
     132                 :            :     { SID_ATTR_ALIGN_STACKED,       SFX_ITEM_POOLABLE },    // ATTR_STACKED         from 680/dr14 (replaces ATTR_ORIENTATION)
     133                 :            :     { SID_ATTR_ALIGN_DEGREES,       SFX_ITEM_POOLABLE },    // ATTR_ROTATE_VALUE    ab 367
     134                 :            :     { SID_ATTR_ALIGN_LOCKPOS,       SFX_ITEM_POOLABLE },    // ATTR_ROTATE_MODE     ab 367
     135                 :            :     { SID_ATTR_ALIGN_ASIANVERTICAL, SFX_ITEM_POOLABLE },    // ATTR_VERTICAL_ASIAN  from 642
     136                 :            :     { SID_ATTR_FRAMEDIRECTION,      SFX_ITEM_POOLABLE },    // ATTR_WRITINGDIR      from 643
     137                 :            :     { SID_ATTR_ALIGN_LINEBREAK,     SFX_ITEM_POOLABLE },    // ATTR_LINEBREAK
     138                 :            :     { SID_ATTR_ALIGN_SHRINKTOFIT,   SFX_ITEM_POOLABLE },    // ATTR_SHRINKTOFIT     from 680/dr14
     139                 :            :     { SID_ATTR_BORDER_DIAG_TLBR,    SFX_ITEM_POOLABLE },    // ATTR_BORDER_TLBR     from 680/dr14
     140                 :            :     { SID_ATTR_BORDER_DIAG_BLTR,    SFX_ITEM_POOLABLE },    // ATTR_BORDER_BLTR     from 680/dr14
     141                 :            :     { SID_ATTR_ALIGN_MARGIN,        SFX_ITEM_POOLABLE },    // ATTR_MARGIN
     142                 :            :     { 0,                            SFX_ITEM_POOLABLE },    // ATTR_MERGE
     143                 :            :     { 0,                            SFX_ITEM_POOLABLE },    // ATTR_MERGE_FLAG
     144                 :            :     { SID_ATTR_NUMBERFORMAT_VALUE,  SFX_ITEM_POOLABLE },    // ATTR_VALUE_FORMAT
     145                 :            :     { ATTR_LANGUAGE_FORMAT,         SFX_ITEM_POOLABLE },    // ATTR_LANGUAGE_FORMAT ab 329, wird im Dialog mit SID_ATTR_NUMBERFORMAT_VALUE kombiniert
     146                 :            :     { SID_ATTR_BRUSH,               SFX_ITEM_POOLABLE },    // ATTR_BACKGROUND
     147                 :            :     { SID_SCATTR_PROTECTION,        SFX_ITEM_POOLABLE },    // ATTR_PROTECTION
     148                 :            :     { SID_ATTR_BORDER_OUTER,        SFX_ITEM_POOLABLE },    // ATTR_BORDER
     149                 :            :     { SID_ATTR_BORDER_INNER,        SFX_ITEM_POOLABLE },    // ATTR_BORDER_INNER
     150                 :            :     { SID_ATTR_BORDER_SHADOW,       SFX_ITEM_POOLABLE },    // ATTR_SHADOW
     151                 :            :     { 0,                            SFX_ITEM_POOLABLE },    // ATTR_VALIDDATA
     152                 :            :     { 0,                            SFX_ITEM_POOLABLE },    // ATTR_CONDITIONAL
     153                 :            :     { 0,                            SFX_ITEM_POOLABLE },    // ATTR_COLORSCALE
     154                 :            :     { 0,                            SFX_ITEM_POOLABLE },    // ATTR_PATTERN
     155                 :            :     { SID_ATTR_LRSPACE,             SFX_ITEM_POOLABLE },    // ATTR_LRSPACE
     156                 :            :     { SID_ATTR_ULSPACE,             SFX_ITEM_POOLABLE },    // ATTR_ULSPACE
     157                 :            :     { SID_ATTR_PAGE,                SFX_ITEM_POOLABLE },    // ATTR_PAGE
     158                 :            :     { 0,                            SFX_ITEM_POOLABLE },    // ATTR_PAGE_PAPERTRAY, seit 303 nur noch dummy
     159                 :            :     { SID_ATTR_PAGE_PAPERBIN,       SFX_ITEM_POOLABLE },    // ATTR_PAGE_PAPERBIN
     160                 :            :     { SID_ATTR_PAGE_SIZE,           SFX_ITEM_POOLABLE },    // ATTR_PAGE_SIZE
     161                 :            :     { SID_ATTR_PAGE_MAXSIZE,        SFX_ITEM_POOLABLE },    // ATTR_PAGE_MAXSIZE
     162                 :            :     { SID_ATTR_PAGE_EXT1,           SFX_ITEM_POOLABLE },    // ATTR_PAGE_HORCENTER
     163                 :            :     { SID_ATTR_PAGE_EXT2,           SFX_ITEM_POOLABLE },    // ATTR_PAGE_VERCENTER
     164                 :            :     { SID_ATTR_PAGE_ON,             SFX_ITEM_POOLABLE },    // ATTR_PAGE_ON
     165                 :            :     { SID_ATTR_PAGE_DYNAMIC,        SFX_ITEM_POOLABLE },    // ATTR_PAGE_DYNAMIC
     166                 :            :     { SID_ATTR_PAGE_SHARED,         SFX_ITEM_POOLABLE },    // ATTR_PAGE_SHARED
     167                 :            :     { SID_SCATTR_PAGE_NOTES,        SFX_ITEM_POOLABLE },    // ATTR_PAGE_NOTES
     168                 :            :     { SID_SCATTR_PAGE_GRID,         SFX_ITEM_POOLABLE },    // ATTR_PAGE_GRID
     169                 :            :     { SID_SCATTR_PAGE_HEADERS,      SFX_ITEM_POOLABLE },    // ATTR_PAGE_HEADERS
     170                 :            :     { SID_SCATTR_PAGE_CHARTS,       SFX_ITEM_POOLABLE },    // ATTR_PAGE_CHARTS
     171                 :            :     { SID_SCATTR_PAGE_OBJECTS,      SFX_ITEM_POOLABLE },    // ATTR_PAGE_OBJECTS
     172                 :            :     { SID_SCATTR_PAGE_DRAWINGS,     SFX_ITEM_POOLABLE },    // ATTR_PAGE_DRAWINGS
     173                 :            :     { SID_SCATTR_PAGE_TOPDOWN,      SFX_ITEM_POOLABLE },    // ATTR_PAGE_TOPDOWN
     174                 :            :     { SID_SCATTR_PAGE_SCALE,        SFX_ITEM_POOLABLE },    // ATTR_PAGE_SCALE
     175                 :            :     { SID_SCATTR_PAGE_SCALETOPAGES, SFX_ITEM_POOLABLE },    // ATTR_PAGE_SCALETOPAGES
     176                 :            :     { SID_SCATTR_PAGE_FIRSTPAGENO,  SFX_ITEM_POOLABLE },    // ATTR_PAGE_FIRSTPAGENO
     177                 :            :     { SID_SCATTR_PAGE_PRINTAREA,    SFX_ITEM_POOLABLE },    // ATTR_PAGE_PRINTAREA
     178                 :            :     { SID_SCATTR_PAGE_REPEATROW,    SFX_ITEM_POOLABLE },    // ATTR_PAGE_REPEATROW
     179                 :            :     { SID_SCATTR_PAGE_REPEATCOL,    SFX_ITEM_POOLABLE },    // ATTR_PAGE_REPEATCOL
     180                 :            :     { SID_SCATTR_PAGE_PRINTTABLES,  SFX_ITEM_POOLABLE },    // ATTR_PAGE_PRINTTABLES
     181                 :            :     { SID_SCATTR_PAGE_HEADERLEFT,   SFX_ITEM_POOLABLE },    // ATTR_PAGE_HEADERLEFT
     182                 :            :     { SID_SCATTR_PAGE_FOOTERLEFT,   SFX_ITEM_POOLABLE },    // ATTR_PAGE_FOOTERLEFT
     183                 :            :     { SID_SCATTR_PAGE_HEADERRIGHT,  SFX_ITEM_POOLABLE },    // ATTR_PAGE_HEADERRIGHT
     184                 :            :     { SID_SCATTR_PAGE_FOOTERRIGHT,  SFX_ITEM_POOLABLE },    // ATTR_PAGE_FOOTERRIGHT
     185                 :            :     { SID_ATTR_PAGE_HEADERSET,      SFX_ITEM_POOLABLE },    // ATTR_PAGE_HEADERSET
     186                 :            :     { SID_ATTR_PAGE_FOOTERSET,      SFX_ITEM_POOLABLE },    // ATTR_PAGE_FOOTERSET
     187                 :            :     { SID_SCATTR_PAGE_FORMULAS,     SFX_ITEM_POOLABLE },    // ATTR_PAGE_FORMULAS
     188                 :            :     { SID_SCATTR_PAGE_NULLVALS,     SFX_ITEM_POOLABLE },    // ATTR_PAGE_NULLVALS
     189                 :            :     { SID_SCATTR_PAGE_SCALETO,      SFX_ITEM_POOLABLE }     // ATTR_PAGE_SCALETO
     190                 :            : };
     191                 :            : 
     192                 :            : // -----------------------------------------------------------------------
     193                 :            : 
     194                 :        900 : ScDocumentPool::ScDocumentPool( SfxItemPool* pSecPool, sal_Bool bLoadRefCounts )
     195                 :            : 
     196                 :            :     :   SfxItemPool ( rtl::OUString("ScDocumentPool"),
     197                 :            :                         ATTR_STARTINDEX, ATTR_ENDINDEX,
     198                 :            :                         aItemInfos, NULL, bLoadRefCounts ),
     199         [ +  - ]:        900 :         pSecondary  ( pSecPool )
     200                 :            : {
     201                 :            :     //  latin font from GetDefaultFonts is not used, DEFAULTFONT_LATIN_SPREADSHEET instead
     202                 :            :     Font aStdFont = OutputDevice::GetDefaultFont( DEFAULTFONT_LATIN_SPREADSHEET, LANGUAGE_ENGLISH_US,
     203         [ +  - ]:        900 :                                                     DEFAULTFONT_FLAGS_ONLYONE );
     204                 :            :     SvxFontItem* pStdFont = new SvxFontItem( aStdFont.GetFamily(),
     205                 :            :                                             aStdFont.GetName(), aStdFont.GetStyleName(),
     206         [ +  - ]:        900 :                                             aStdFont.GetPitch(), aStdFont.GetCharSet(),
     207 [ +  - ][ +  - ]:       1800 :                                             ATTR_FONT );
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
     208                 :            : 
     209 [ +  - ][ +  - ]:        900 :     SvxFontItem* pCjkFont = new SvxFontItem( ATTR_CJK_FONT );
     210 [ +  - ][ +  - ]:        900 :     SvxFontItem* pCtlFont = new SvxFontItem( ATTR_CTL_FONT );
     211         [ +  - ]:        900 :     SvxFontItem aDummy( ATTR_FONT );
     212         [ +  - ]:        900 :     GetDefaultFonts( aDummy, *pCjkFont, *pCtlFont );
     213                 :            : 
     214 [ +  - ][ +  - ]:        900 :     SvxBoxInfoItem* pGlobalBorderInnerAttr = new SvxBoxInfoItem( ATTR_BORDER_INNER );
     215 [ +  - ][ +  - ]:        900 :     SfxItemSet*     pSet = new SfxItemSet( *this, ATTR_PATTERN_START, ATTR_PATTERN_END );
     216                 :            :     SfxItemSet      aSetItemItemSet( *this,
     217                 :            :                                      ATTR_BACKGROUND, ATTR_BACKGROUND,
     218                 :            :                                      ATTR_BORDER,     ATTR_SHADOW,
     219                 :            :                                      ATTR_LRSPACE,    ATTR_ULSPACE,
     220                 :            :                                      ATTR_PAGE_SIZE,  ATTR_PAGE_SIZE,
     221                 :            :                                      ATTR_PAGE_ON,    ATTR_PAGE_SHARED,
     222         [ +  - ]:        900 :                                      0 );
     223                 :            : 
     224         [ +  - ]:        900 :     pGlobalBorderInnerAttr->SetLine(NULL, BOXINFO_LINE_HORI);
     225         [ +  - ]:        900 :     pGlobalBorderInnerAttr->SetLine(NULL, BOXINFO_LINE_VERT);
     226                 :        900 :     pGlobalBorderInnerAttr->SetTable(sal_True);
     227                 :        900 :     pGlobalBorderInnerAttr->SetDist(sal_True);
     228                 :        900 :     pGlobalBorderInnerAttr->SetMinDist(false);
     229                 :            : 
     230         [ +  - ]:        900 :     ppPoolDefaults = new SfxPoolItem*[ATTR_ENDINDEX-ATTR_STARTINDEX+1];
     231                 :            : 
     232                 :        900 :     ppPoolDefaults[ ATTR_FONT            - ATTR_STARTINDEX ] = pStdFont;
     233 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_FONT_HEIGHT     - ATTR_STARTINDEX ] = new SvxFontHeightItem( 200, 100, ATTR_FONT_HEIGHT );       // 10 pt;
     234 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_FONT_WEIGHT     - ATTR_STARTINDEX ] = new SvxWeightItem( WEIGHT_NORMAL, ATTR_FONT_WEIGHT );
     235 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_FONT_POSTURE    - ATTR_STARTINDEX ] = new SvxPostureItem( ITALIC_NONE, ATTR_FONT_POSTURE );
     236 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_FONT_UNDERLINE  - ATTR_STARTINDEX ] = new SvxUnderlineItem( UNDERLINE_NONE, ATTR_FONT_UNDERLINE );
     237 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_FONT_OVERLINE   - ATTR_STARTINDEX ] = new SvxOverlineItem( UNDERLINE_NONE, ATTR_FONT_OVERLINE );
     238 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_FONT_CROSSEDOUT - ATTR_STARTINDEX ] = new SvxCrossedOutItem( STRIKEOUT_NONE, ATTR_FONT_CROSSEDOUT );
     239 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_FONT_CONTOUR    - ATTR_STARTINDEX ] = new SvxContourItem( false, ATTR_FONT_CONTOUR );
     240 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_FONT_SHADOWED   - ATTR_STARTINDEX ] = new SvxShadowedItem( false, ATTR_FONT_SHADOWED );
     241 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_FONT_COLOR      - ATTR_STARTINDEX ] = new SvxColorItem( Color(COL_AUTO), ATTR_FONT_COLOR );
     242 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_FONT_LANGUAGE   - ATTR_STARTINDEX ] = new SvxLanguageItem( LanguageType(LANGUAGE_DONTKNOW), ATTR_FONT_LANGUAGE );
     243                 :        900 :     ppPoolDefaults[ ATTR_CJK_FONT        - ATTR_STARTINDEX ] = pCjkFont;
     244 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_CJK_FONT_HEIGHT - ATTR_STARTINDEX ] = new SvxFontHeightItem( 200, 100, ATTR_CJK_FONT_HEIGHT );
     245 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_CJK_FONT_WEIGHT - ATTR_STARTINDEX ] = new SvxWeightItem( WEIGHT_NORMAL, ATTR_CJK_FONT_WEIGHT );
     246 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_CJK_FONT_POSTURE- ATTR_STARTINDEX ] = new SvxPostureItem( ITALIC_NONE, ATTR_CJK_FONT_POSTURE );
     247                 :        900 :     ppPoolDefaults[ ATTR_CJK_FONT_LANGUAGE-ATTR_STARTINDEX ] = new SvxLanguageItem( LanguageType(LANGUAGE_DONTKNOW),
     248 [ +  - ][ +  - ]:        900 :                                                                     ATTR_CJK_FONT_LANGUAGE );
     249                 :        900 :     ppPoolDefaults[ ATTR_CTL_FONT        - ATTR_STARTINDEX ] = pCtlFont;
     250 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_CTL_FONT_HEIGHT - ATTR_STARTINDEX ] = new SvxFontHeightItem( 200, 100, ATTR_CTL_FONT_HEIGHT );
     251 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_CTL_FONT_WEIGHT - ATTR_STARTINDEX ] = new SvxWeightItem( WEIGHT_NORMAL, ATTR_CTL_FONT_WEIGHT );
     252 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_CTL_FONT_POSTURE- ATTR_STARTINDEX ] = new SvxPostureItem( ITALIC_NONE, ATTR_CTL_FONT_POSTURE );
     253                 :        900 :     ppPoolDefaults[ ATTR_CTL_FONT_LANGUAGE-ATTR_STARTINDEX ] = new SvxLanguageItem( LanguageType(LANGUAGE_DONTKNOW),
     254 [ +  - ][ +  - ]:        900 :                                                                     ATTR_CTL_FONT_LANGUAGE );
     255 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_FONT_EMPHASISMARK-ATTR_STARTINDEX ] = new SvxEmphasisMarkItem( EMPHASISMARK_NONE, ATTR_FONT_EMPHASISMARK );
     256 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_USERDEF         - ATTR_STARTINDEX ] = new SvXMLAttrContainerItem( ATTR_USERDEF );
     257 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_FONT_WORDLINE   - ATTR_STARTINDEX ] = new SvxWordLineModeItem(false, ATTR_FONT_WORDLINE );
     258 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_FONT_RELIEF     - ATTR_STARTINDEX ] = new SvxCharReliefItem( RELIEF_NONE, ATTR_FONT_RELIEF );
     259 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_HYPHENATE       - ATTR_STARTINDEX ] = new SfxBoolItem( ATTR_HYPHENATE );
     260 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_SCRIPTSPACE     - ATTR_STARTINDEX ] = new SvxScriptSpaceItem( false, ATTR_SCRIPTSPACE);
     261 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_HANGPUNCTUATION - ATTR_STARTINDEX ] = new SvxHangingPunctuationItem( false, ATTR_HANGPUNCTUATION);
     262 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_FORBIDDEN_RULES - ATTR_STARTINDEX ] = new SvxForbiddenRuleItem( false, ATTR_FORBIDDEN_RULES);
     263 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_HOR_JUSTIFY     - ATTR_STARTINDEX ] = new SvxHorJustifyItem( SVX_HOR_JUSTIFY_STANDARD, ATTR_HOR_JUSTIFY);
     264 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_HOR_JUSTIFY_METHOD - ATTR_STARTINDEX ] = new SvxJustifyMethodItem( SVX_JUSTIFY_METHOD_AUTO, ATTR_HOR_JUSTIFY_METHOD);
     265 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_INDENT          - ATTR_STARTINDEX ] = new SfxUInt16Item( ATTR_INDENT, 0 );
     266 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_VER_JUSTIFY     - ATTR_STARTINDEX ] = new SvxVerJustifyItem( SVX_VER_JUSTIFY_STANDARD, ATTR_VER_JUSTIFY);
     267 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_VER_JUSTIFY_METHOD - ATTR_STARTINDEX ] = new SvxJustifyMethodItem( SVX_JUSTIFY_METHOD_AUTO, ATTR_VER_JUSTIFY_METHOD);
     268 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_STACKED         - ATTR_STARTINDEX ] = new SfxBoolItem( ATTR_STACKED, false );
     269 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_ROTATE_VALUE    - ATTR_STARTINDEX ] = new SfxInt32Item( ATTR_ROTATE_VALUE, 0 );
     270 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_ROTATE_MODE     - ATTR_STARTINDEX ] = new SvxRotateModeItem( SVX_ROTATE_MODE_BOTTOM, ATTR_ROTATE_MODE );
     271 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_VERTICAL_ASIAN  - ATTR_STARTINDEX ] = new SfxBoolItem( ATTR_VERTICAL_ASIAN );
     272                 :            :     //  The default for the ATTR_WRITINGDIR cell attribute must by FRMDIR_ENVIRONMENT,
     273                 :            :     //  so that value is returned when asking for a default cell's attributes.
     274                 :            :     //  The value from the page style is set as DefaultHorizontalTextDirection for the EditEngine.
     275 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_WRITINGDIR      - ATTR_STARTINDEX ] = new SvxFrameDirectionItem( FRMDIR_ENVIRONMENT, ATTR_WRITINGDIR );
     276 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_LINEBREAK       - ATTR_STARTINDEX ] = new SfxBoolItem( ATTR_LINEBREAK );
     277 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_SHRINKTOFIT     - ATTR_STARTINDEX ] = new SfxBoolItem( ATTR_SHRINKTOFIT );
     278 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_BORDER_TLBR     - ATTR_STARTINDEX ] = new SvxLineItem( ATTR_BORDER_TLBR );
     279 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_BORDER_BLTR     - ATTR_STARTINDEX ] = new SvxLineItem( ATTR_BORDER_BLTR );
     280 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_MARGIN          - ATTR_STARTINDEX ] = new SvxMarginItem( ATTR_MARGIN );
     281 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_MERGE           - ATTR_STARTINDEX ] = new ScMergeAttr;
     282 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_MERGE_FLAG      - ATTR_STARTINDEX ] = new ScMergeFlagAttr;
     283 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_VALUE_FORMAT    - ATTR_STARTINDEX ] = new SfxUInt32Item( ATTR_VALUE_FORMAT, 0 );
     284 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_LANGUAGE_FORMAT - ATTR_STARTINDEX ] = new SvxLanguageItem( ScGlobal::eLnge, ATTR_LANGUAGE_FORMAT );
     285 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_BACKGROUND      - ATTR_STARTINDEX ] = new SvxBrushItem( Color(COL_TRANSPARENT), ATTR_BACKGROUND );
     286 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_PROTECTION      - ATTR_STARTINDEX ] = new ScProtectionAttr;
     287 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_BORDER          - ATTR_STARTINDEX ] = new SvxBoxItem( ATTR_BORDER );
     288                 :        900 :     ppPoolDefaults[ ATTR_BORDER_INNER    - ATTR_STARTINDEX ] = pGlobalBorderInnerAttr;
     289 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_SHADOW          - ATTR_STARTINDEX ] = new SvxShadowItem( ATTR_SHADOW );
     290 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_VALIDDATA       - ATTR_STARTINDEX ] = new SfxUInt32Item( ATTR_VALIDDATA, 0 );
     291 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_CONDITIONAL     - ATTR_STARTINDEX ] = new SfxUInt32Item( ATTR_CONDITIONAL, 0 );
     292 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_COLORSCALE      - ATTR_STARTINDEX ] = new SfxUInt32Item( ATTR_COLORSCALE, 0 );
     293                 :            : 
     294                 :            :     //  GetRscString funktioniert erst nach ScGlobal::Init, zu erkennen am EmptyBrushItem
     295                 :            :     //! zusaetzliche Methode ScGlobal::IsInit() oder so...
     296                 :            :     //! oder erkennen, ob dies der Secondary-Pool fuer einen MessagePool ist
     297         [ +  + ]:        900 :     if ( ScGlobal::GetEmptyBrushItem() )
     298 [ +  - ][ +  - ]:        849 :         ppPoolDefaults[ ATTR_PATTERN     - ATTR_STARTINDEX ] = new ScPatternAttr( pSet, ScGlobal::GetRscString(STR_STYLENAME_STANDARD) );
                 [ +  - ]
     299                 :            :     else
     300                 :         51 :         ppPoolDefaults[ ATTR_PATTERN     - ATTR_STARTINDEX ] = new ScPatternAttr( pSet,
     301 [ +  - ][ +  - ]:         51 :             rtl::OUString(STRING_STANDARD) ); //! without name?
         [ +  - ][ +  - ]
     302                 :            : 
     303 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_LRSPACE         - ATTR_STARTINDEX ] = new SvxLRSpaceItem( ATTR_LRSPACE );
     304 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_ULSPACE         - ATTR_STARTINDEX ] = new SvxULSpaceItem( ATTR_ULSPACE );
     305 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_PAGE            - ATTR_STARTINDEX ] = new SvxPageItem( ATTR_PAGE );
     306 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_PAGE_PAPERTRAY  - ATTR_STARTINDEX ] = new SfxAllEnumItem( ATTR_PAGE_PAPERTRAY );
     307 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_PAGE_PAPERBIN   - ATTR_STARTINDEX ] = new SvxPaperBinItem( ATTR_PAGE_PAPERBIN );
     308 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_PAGE_SIZE       - ATTR_STARTINDEX ] = new SvxSizeItem( ATTR_PAGE_SIZE );
     309 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_PAGE_MAXSIZE    - ATTR_STARTINDEX ] = new SvxSizeItem( ATTR_PAGE_MAXSIZE );
     310 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_PAGE_HORCENTER  - ATTR_STARTINDEX ] = new SfxBoolItem( ATTR_PAGE_HORCENTER );
     311 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_PAGE_VERCENTER  - ATTR_STARTINDEX ] = new SfxBoolItem( ATTR_PAGE_VERCENTER );
     312 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_PAGE_ON         - ATTR_STARTINDEX ] = new SfxBoolItem( ATTR_PAGE_ON, sal_True );
     313 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_PAGE_DYNAMIC    - ATTR_STARTINDEX ] = new SfxBoolItem( ATTR_PAGE_DYNAMIC, sal_True );
     314 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_PAGE_SHARED     - ATTR_STARTINDEX ] = new SfxBoolItem( ATTR_PAGE_SHARED, sal_True );
     315 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_PAGE_NOTES      - ATTR_STARTINDEX ] = new SfxBoolItem( ATTR_PAGE_NOTES, false );
     316 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_PAGE_GRID       - ATTR_STARTINDEX ] = new SfxBoolItem( ATTR_PAGE_GRID, false );
     317 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_PAGE_HEADERS    - ATTR_STARTINDEX ] = new SfxBoolItem( ATTR_PAGE_HEADERS, false );
     318 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_PAGE_CHARTS     - ATTR_STARTINDEX ] = new ScViewObjectModeItem( ATTR_PAGE_CHARTS );
     319 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_PAGE_OBJECTS    - ATTR_STARTINDEX ] = new ScViewObjectModeItem( ATTR_PAGE_OBJECTS );
     320 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_PAGE_DRAWINGS   - ATTR_STARTINDEX ] = new ScViewObjectModeItem( ATTR_PAGE_DRAWINGS );
     321 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_PAGE_TOPDOWN    - ATTR_STARTINDEX ] = new SfxBoolItem( ATTR_PAGE_TOPDOWN, sal_True );
     322 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_PAGE_SCALE      - ATTR_STARTINDEX ] = new SfxUInt16Item( ATTR_PAGE_SCALE, 100 );
     323 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_PAGE_SCALETOPAGES-ATTR_STARTINDEX ] = new SfxUInt16Item( ATTR_PAGE_SCALETOPAGES, 1 );
     324 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_PAGE_FIRSTPAGENO- ATTR_STARTINDEX ] = new SfxUInt16Item( ATTR_PAGE_FIRSTPAGENO, 1 );
     325 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_PAGE_PRINTAREA  - ATTR_STARTINDEX ] = new ScRangeItem( ATTR_PAGE_PRINTAREA );
     326 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_PAGE_REPEATROW  - ATTR_STARTINDEX ] = new ScRangeItem( ATTR_PAGE_REPEATROW );
     327 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_PAGE_REPEATCOL  - ATTR_STARTINDEX ] = new ScRangeItem( ATTR_PAGE_REPEATCOL );
     328 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_PAGE_PRINTTABLES- ATTR_STARTINDEX ] = new ScTableListItem( ATTR_PAGE_PRINTTABLES );
     329 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_PAGE_HEADERLEFT - ATTR_STARTINDEX ] = new ScPageHFItem( ATTR_PAGE_HEADERLEFT );
     330 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_PAGE_FOOTERLEFT - ATTR_STARTINDEX ] = new ScPageHFItem( ATTR_PAGE_FOOTERLEFT );
     331 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_PAGE_HEADERRIGHT- ATTR_STARTINDEX ] = new ScPageHFItem( ATTR_PAGE_HEADERRIGHT );
     332 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_PAGE_FOOTERRIGHT- ATTR_STARTINDEX ] = new ScPageHFItem( ATTR_PAGE_FOOTERRIGHT );
     333 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_PAGE_HEADERSET  - ATTR_STARTINDEX ] = new SvxSetItem( ATTR_PAGE_HEADERSET, aSetItemItemSet );
     334 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_PAGE_FOOTERSET  - ATTR_STARTINDEX ] = new SvxSetItem( ATTR_PAGE_FOOTERSET, aSetItemItemSet );
     335 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_PAGE_FORMULAS   - ATTR_STARTINDEX ] = new SfxBoolItem( ATTR_PAGE_FORMULAS, false );
     336 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_PAGE_NULLVALS   - ATTR_STARTINDEX ] = new SfxBoolItem( ATTR_PAGE_NULLVALS, sal_True );
     337 [ +  - ][ +  - ]:        900 :     ppPoolDefaults[ ATTR_PAGE_SCALETO    - ATTR_STARTINDEX ] = new ScPageScaleToItem( 1, 1 );
     338                 :            : 
     339         [ +  - ]:        900 :     SetDefaults( ppPoolDefaults );
     340                 :            : 
     341         [ -  + ]:        900 :     if ( pSecondary )
     342         [ #  # ]:          0 :         SetSecondaryPool( pSecondary );
     343                 :            : 
     344                 :            :     // ATTR_LANGUAGE_FORMAT ab sv329 eingefuegt, VersionMap in _ScGlobal__Init
     345         [ +  - ]:        900 :     SetVersionMap( 1, 100, 157, pVersionMap1 );
     346                 :            : 
     347                 :            :     // ATTR_VALIDDATA, ATTR_CONDITIONAL ab 341
     348         [ +  - ]:        900 :     SetVersionMap( 2, 100, 158, pVersionMap2 );
     349                 :            : 
     350                 :            :     // ATTR_INDENT ab 350
     351         [ +  - ]:        900 :     SetVersionMap( 3, 100, 160, pVersionMap3 );
     352                 :            : 
     353                 :            :     // ATTR_ROTATE_VALUE, ATTR_ROTATE_MODE ab 367
     354         [ +  - ]:        900 :     SetVersionMap( 4, 100, 161, pVersionMap4 );
     355                 :            : 
     356                 :            :     // CJK, CTL, EMPHASISMARK, TWOLINES from 614
     357         [ +  - ]:        900 :     SetVersionMap( 5, 100, 163, pVersionMap5 );
     358                 :            : 
     359                 :            :     // ATTR_SCRIPTSPACE, ATTR_HANGPUNCTUATION, ATTR_FORBIDDEN_RULES from 614d
     360         [ +  - ]:        900 :     SetVersionMap( 6, 100, 175, pVersionMap6 );
     361                 :            : 
     362                 :            :     // ATTR_FONT_WORDLINE, ATTR_FONT_RELIEF, ATTR_HYPHENATE from 632b
     363         [ +  - ]:        900 :     SetVersionMap( 7, 100, 178, pVersionMap7 );
     364                 :            : 
     365                 :            :     // ATTR_VERTICAL_ASIAN from 642q
     366         [ +  - ]:        900 :     SetVersionMap( 8, 100, 181, pVersionMap8 );
     367                 :            : 
     368                 :            :     // ATTR_WRITINGDIR from 643y
     369         [ +  - ]:        900 :     SetVersionMap( 9, 100, 182, pVersionMap9 );
     370                 :            : 
     371                 :            :     // ATTR_PAGE_SCALETO added in 680/sab008
     372                 :            :     // new version map not required
     373                 :            : 
     374                 :            :     // ATTR_SHRINKTOFIT, ATTR_BORDER_TL_BR, ATTR_BORDER_BL_TR added in 680/dr14
     375         [ +  - ]:        900 :     SetVersionMap( 10, 100, 184, pVersionMap10 );
     376                 :            : 
     377                 :            :     // ATTR_FONT_OVERLINE added in DEV300/overline2
     378 [ +  - ][ +  - ]:        900 :     SetVersionMap( 11, 100, 187, pVersionMap11 );
         [ +  - ][ +  - ]
     379                 :        900 : }
     380                 :            : 
     381                 :        716 : ScDocumentPool::~ScDocumentPool()
     382                 :            : {
     383         [ +  - ]:        716 :     Delete();
     384                 :            : 
     385         [ +  + ]:      66588 :     for ( sal_uInt16 i=0; i < ATTR_ENDINDEX-ATTR_STARTINDEX+1; i++ )
     386                 :            :     {
     387                 :      65872 :         SetRefCount( *ppPoolDefaults[i], 0 );
     388 [ +  - ][ +  - ]:      65872 :         delete ppPoolDefaults[i];
     389                 :            :     }
     390                 :            : 
     391         [ +  - ]:        716 :     delete[] ppPoolDefaults;
     392         [ +  - ]:        716 :     SfxItemPool::Free(pSecondary);
     393         [ -  + ]:       1432 : }
     394                 :            : 
     395                 :         51 : void ScDocumentPool::InitVersionMaps()
     396                 :            : {
     397                 :            :     OSL_PRECOND( !pVersionMap1 && !pVersionMap2 &&
     398                 :            :                 !pVersionMap3 && !pVersionMap4 &&
     399                 :            :                 !pVersionMap5 && !pVersionMap6 &&
     400                 :            :                 !pVersionMap7 && !pVersionMap8 &&
     401                 :            :                 !pVersionMap9 && !pVersionMap10 &&
     402                 :            :                 !pVersionMap11, "InitVersionMaps call multiple times" );
     403                 :            : 
     404                 :            :     // alte WhichId's mappen
     405                 :            :     // nicht mit ATTR_* zaehlen, falls die sich nochmal aendern
     406                 :            : 
     407                 :            :     //  erste Map: ATTR_LANGUAGE_FORMAT ab sv329 eingefuegt
     408                 :            : 
     409                 :         51 :     const sal_uInt16 nMap1Start = 100;  // alter ATTR_STARTINDEX
     410                 :         51 :     const sal_uInt16 nMap1End   = 157;  // alter ATTR_ENDINDEX
     411                 :         51 :     const sal_uInt16 nMap1Count = nMap1End - nMap1Start + 1;
     412                 :         51 :     const sal_uInt16 nMap1New   = 18;   // ATTR_LANGUAGE_FORMAT - ATTR_STARTINDEX
     413                 :         51 :     pVersionMap1 = new sal_uInt16 [ nMap1Count ];
     414                 :            :     sal_uInt16 i, j;
     415         [ +  + ]:        969 :     for ( i=0, j=nMap1Start; i < nMap1New; i++, j++ )
     416                 :        918 :         pVersionMap1[i] = j;
     417                 :            :     // ein Eintrag eingefuegt...
     418         [ +  + ]:       2091 :     for ( i=nMap1New, j=nMap1Start+nMap1New+1; i < nMap1Count; i++, j++ )
     419                 :       2040 :         pVersionMap1[i] = j;
     420                 :            : 
     421                 :            :     //  zweite Map: ATTR_VALIDDATA und ATTR_CONDITIONAL ab 341 eingefuegt
     422                 :            : 
     423                 :         51 :     const sal_uInt16 nMap2Start = 100;  // ATTR_STARTINDEX
     424                 :         51 :     const sal_uInt16 nMap2End   = 158;  // ATTR_ENDINDEX
     425                 :         51 :     const sal_uInt16 nMap2Count = nMap2End - nMap2Start + 1;
     426                 :         51 :     const sal_uInt16 nMap2New   = 24;   // ATTR_VALIDDATA - ATTR_STARTINDEX
     427                 :         51 :     pVersionMap2 = new sal_uInt16 [ nMap2Count ];
     428         [ +  + ]:       1275 :     for ( i=0, j=nMap2Start; i < nMap2New; i++, j++ )
     429                 :       1224 :         pVersionMap2[i] = j;
     430                 :            :     // zwei Eintraege eingefuegt...
     431         [ +  + ]:       1836 :     for ( i=nMap2New, j=nMap2Start+nMap2New+2; i < nMap2Count; i++, j++ )
     432                 :       1785 :         pVersionMap2[i] = j;
     433                 :            : 
     434                 :            :     //  dritte Map: ATTR_INDENT ab 350 eingefuegt
     435                 :            : 
     436                 :         51 :     const sal_uInt16 nMap3Start = 100;  // ATTR_STARTINDEX
     437                 :         51 :     const sal_uInt16 nMap3End   = 160;  // ATTR_ENDINDEX
     438                 :         51 :     const sal_uInt16 nMap3Count = nMap3End - nMap3Start + 1;
     439                 :         51 :     const sal_uInt16 nMap3New   = 11;   // ATTR_INDENT - ATTR_STARTINDEX
     440                 :         51 :     pVersionMap3 = new sal_uInt16 [ nMap3Count ];
     441         [ +  + ]:        612 :     for ( i=0, j=nMap3Start; i < nMap3New; i++, j++ )
     442                 :        561 :         pVersionMap3[i] = j;
     443                 :            :     // ein Eintrag eingefuegt...
     444         [ +  + ]:       2601 :     for ( i=nMap3New, j=nMap3Start+nMap3New+1; i < nMap3Count; i++, j++ )
     445                 :       2550 :         pVersionMap3[i] = j;
     446                 :            : 
     447                 :            :     //  vierte Map: ATTR_ROTATE_VALUE und ATTR_ROTATE_MODE ab 367 eingefuegt
     448                 :            : 
     449                 :         51 :     const sal_uInt16 nMap4Start = 100;  // ATTR_STARTINDEX
     450                 :         51 :     const sal_uInt16 nMap4End   = 161;  // ATTR_ENDINDEX
     451                 :         51 :     const sal_uInt16 nMap4Count = nMap4End - nMap4Start + 1;
     452                 :         51 :     const sal_uInt16 nMap4New   = 14;   // ATTR_ROTATE_VALUE - ATTR_STARTINDEX
     453                 :         51 :     pVersionMap4 = new sal_uInt16 [ nMap4Count ];
     454         [ +  + ]:        765 :     for ( i=0, j=nMap4Start; i < nMap4New; i++, j++ )
     455                 :        714 :         pVersionMap4[i] = j;
     456                 :            :     // zwei Eintraege eingefuegt...
     457         [ +  + ]:       2499 :     for ( i=nMap4New, j=nMap4Start+nMap4New+2; i < nMap4Count; i++, j++ )
     458                 :       2448 :         pVersionMap4[i] = j;
     459                 :            : 
     460                 :            :     //  fifth map: CJK..., CTL..., EMPHASISMARK, TWOLINES (12 items) added in 614
     461                 :            : 
     462                 :         51 :     const sal_uInt16 nMap5Start = 100;  // ATTR_STARTINDEX
     463                 :         51 :     const sal_uInt16 nMap5End   = 163;  // ATTR_ENDINDEX
     464                 :         51 :     const sal_uInt16 nMap5Count = nMap5End - nMap5Start + 1;
     465                 :         51 :     const sal_uInt16 nMap5New   = 10;   // ATTR_CJK_FONT - ATTR_STARTINDEX
     466                 :         51 :     pVersionMap5 = new sal_uInt16 [ nMap5Count ];
     467         [ +  + ]:        561 :     for ( i=0, j=nMap5Start; i < nMap5New; i++, j++ )
     468                 :        510 :         pVersionMap5[i] = j;
     469                 :            :     // 12 entries inserted
     470         [ +  + ]:       2805 :     for ( i=nMap5New, j=nMap5Start+nMap5New+12; i < nMap5Count; i++, j++ )
     471                 :       2754 :         pVersionMap5[i] = j;
     472                 :            : 
     473                 :            :     // sixth map: ATTR_SCRIPTSPACE, ATTR_HANGPUNCTUATION, ATTR_FORBIDDEN_RULES added in 614d
     474                 :            : 
     475                 :         51 :     const sal_uInt16 nMap6Start = 100;  // ATTR_STARTINDEX
     476                 :         51 :     const sal_uInt16 nMap6End   = 175;  // ATTR_ENDINDEX
     477                 :         51 :     const sal_uInt16 nMap6Count = nMap6End - nMap6Start + 1;
     478                 :         51 :     const sal_uInt16 nMap6New   = 22;   // ATTR_SCRIPTSPACE - ATTR_STARTINDEX
     479                 :         51 :     pVersionMap6 = new sal_uInt16 [ nMap6Count ];
     480         [ +  + ]:       1173 :     for ( i=0, j=nMap6Start; i < nMap6New; i++, j++ )
     481                 :       1122 :         pVersionMap6[i] = j;
     482                 :            :     // 3 entries inserted
     483         [ +  + ]:       2805 :     for ( i=nMap6New, j=nMap6Start+nMap6New+3; i < nMap6Count; i++, j++ )
     484                 :       2754 :         pVersionMap6[i] = j;
     485                 :            : 
     486                 :            :     //  seventh map: ATTR_FONT_WORDLINE, ATTR_FONT_RELIEF, ATTR_HYPHENATE added in 632b
     487                 :            : 
     488                 :         51 :     const sal_uInt16 nMap7Start = 100;  // ATTR_STARTINDEX
     489                 :         51 :     const sal_uInt16 nMap7End   = 178;  // ATTR_ENDINDEX
     490                 :         51 :     const sal_uInt16 nMap7Count = nMap7End - nMap7Start + 1;
     491                 :         51 :     const sal_uInt16 nMap7New   = 22;   // ATTR_FONT_WORDLINE - ATTR_STARTINDEX
     492                 :         51 :     pVersionMap7 = new sal_uInt16 [ nMap7Count ];
     493         [ +  + ]:       1173 :     for ( i=0, j=nMap7Start; i < nMap7New; i++, j++ )
     494                 :       1122 :         pVersionMap7[i] = j;
     495                 :            :     // 3 entries inserted
     496         [ +  + ]:       2958 :     for ( i=nMap7New, j=nMap7Start+nMap7New+3; i < nMap7Count; i++, j++ )
     497                 :       2907 :         pVersionMap7[i] = j;
     498                 :            : 
     499                 :            :     //  eighth map: ATTR_VERTICAL_ASIAN added in 642q
     500                 :            : 
     501                 :         51 :     const sal_uInt16 nMap8Start = 100;  // ATTR_STARTINDEX
     502                 :         51 :     const sal_uInt16 nMap8End   = 181;  // ATTR_ENDINDEX
     503                 :         51 :     const sal_uInt16 nMap8Count = nMap8End - nMap8Start + 1;
     504                 :         51 :     const sal_uInt16 nMap8New   = 34;   // ATTR_VERTICAL_ASIAN - ATTR_STARTINDEX
     505                 :         51 :     pVersionMap8 = new sal_uInt16 [ nMap8Count ];
     506         [ +  + ]:       1785 :     for ( i=0, j=nMap8Start; i < nMap8New; i++, j++ )
     507                 :       1734 :         pVersionMap8[i] = j;
     508                 :            :     // 1 entry inserted
     509         [ +  + ]:       2499 :     for ( i=nMap8New, j=nMap8Start+nMap8New+1; i < nMap8Count; i++, j++ )
     510                 :       2448 :         pVersionMap8[i] = j;
     511                 :            : 
     512                 :            :     //  9th map: ATTR_WRITINGDIR added in 643y
     513                 :            : 
     514                 :         51 :     const sal_uInt16 nMap9Start = 100;  // ATTR_STARTINDEX
     515                 :         51 :     const sal_uInt16 nMap9End   = 182;  // ATTR_ENDINDEX
     516                 :         51 :     const sal_uInt16 nMap9Count = nMap9End - nMap9Start + 1;
     517                 :         51 :     const sal_uInt16 nMap9New   = 35;   // ATTR_WRITINGDIR - ATTR_STARTINDEX
     518                 :         51 :     pVersionMap9 = new sal_uInt16 [ nMap9Count ];
     519         [ +  + ]:       1836 :     for ( i=0, j=nMap9Start; i < nMap9New; i++, j++ )
     520                 :       1785 :         pVersionMap9[i] = j;
     521                 :            :     // 1 entry inserted
     522         [ +  + ]:       2499 :     for ( i=nMap9New, j=nMap9Start+nMap9New+1; i < nMap9Count; i++, j++ )
     523                 :       2448 :         pVersionMap9[i] = j;
     524                 :            : 
     525                 :            :     // ATTR_PAGE_SCALETO added in 680/sab008
     526                 :            : 
     527                 :            :     // 10th map: ATTR_SHRINKTOFIT, ATTR_BORDER_TL_BR, ATTR_BORDER_BL_TR added in 680/dr14
     528                 :            : 
     529                 :         51 :     const sal_uInt16 nMap10Start = 100;  // ATTR_STARTINDEX
     530                 :         51 :     const sal_uInt16 nMap10End   = 184;  // ATTR_ENDINDEX
     531                 :         51 :     const sal_uInt16 nMap10Count = nMap10End - nMap10Start + 1;
     532                 :         51 :     const sal_uInt16 nMap10New   = 37;   // ATTR_SHRINKTOFIT - ATTR_STARTINDEX
     533                 :         51 :     pVersionMap10 = new sal_uInt16 [ nMap10Count ];
     534         [ +  + ]:       1938 :     for ( i=0, j=nMap10Start; i < nMap10New; i++, j++ )
     535                 :       1887 :         pVersionMap10[i] = j;
     536                 :            :     // 3 entries inserted
     537         [ +  + ]:       2499 :     for ( i=nMap10New, j=nMap10Start+nMap10New+3; i < nMap10Count; i++, j++ )
     538                 :       2448 :         pVersionMap10[i] = j;
     539                 :            : 
     540                 :            :     // 11th map: ATTR_FONT_OVERLINE added in DEV300/overline2
     541                 :            : 
     542                 :         51 :     const sal_uInt16 nMap11Start = 100;  // ATTR_STARTINDEX
     543                 :         51 :     const sal_uInt16 nMap11End   = 187;  // ATTR_ENDINDEX
     544                 :         51 :     const sal_uInt16 nMap11Count = nMap11End - nMap11Start + 1;
     545                 :         51 :     const sal_uInt16 nMap11New   = 5;    // ATTR_FONT_OVERLINE - ATTR_STARTINDEX
     546                 :         51 :     pVersionMap11 = new sal_uInt16 [ nMap11Count ];
     547         [ +  + ]:        306 :     for ( i=0, j=nMap11Start; i < nMap11New; i++, j++ )
     548                 :        255 :         pVersionMap11[i] = j;
     549                 :            :     // 1 entry inserted
     550         [ +  + ]:       4284 :     for ( i=nMap11New, j=nMap11Start+nMap11New+1; i < nMap11Count; i++, j++ )
     551                 :       4233 :         pVersionMap11[i] = j;
     552                 :         51 : }
     553                 :            : 
     554                 :         18 : void ScDocumentPool::DeleteVersionMaps()
     555                 :            : {
     556                 :            :     OSL_PRECOND( pVersionMap1 && pVersionMap2 &&
     557                 :            :                 pVersionMap3 && pVersionMap4 &&
     558                 :            :                 pVersionMap5 && pVersionMap6 &&
     559                 :            :                 pVersionMap7 && pVersionMap8 &&
     560                 :            :                 pVersionMap9 && pVersionMap10 &&
     561                 :            :                 pVersionMap11, "DeleteVersionMaps without maps" );
     562                 :            : 
     563         [ +  - ]:         18 :     delete[] pVersionMap11;
     564                 :         18 :     pVersionMap11 = 0;
     565         [ +  - ]:         18 :     delete[] pVersionMap10;
     566                 :         18 :     pVersionMap10 = 0;
     567         [ +  - ]:         18 :     delete[] pVersionMap9;
     568                 :         18 :     pVersionMap9 = 0;
     569         [ +  - ]:         18 :     delete[] pVersionMap8;
     570                 :         18 :     pVersionMap8 = 0;
     571         [ +  - ]:         18 :     delete[] pVersionMap7;
     572                 :         18 :     pVersionMap7 = 0;
     573         [ +  - ]:         18 :     delete[] pVersionMap6;
     574                 :         18 :     pVersionMap6 = 0;
     575         [ +  - ]:         18 :     delete[] pVersionMap5;
     576                 :         18 :     pVersionMap5 = 0;
     577         [ +  - ]:         18 :     delete[] pVersionMap4;
     578                 :         18 :     pVersionMap4 = 0;
     579         [ +  - ]:         18 :     delete[] pVersionMap3;
     580                 :         18 :     pVersionMap3 = 0;
     581         [ +  - ]:         18 :     delete[] pVersionMap2;
     582                 :         18 :     pVersionMap2 = 0;
     583         [ +  - ]:         18 :     delete[] pVersionMap1;
     584                 :         18 :     pVersionMap1 = 0;
     585                 :         18 : }
     586                 :            : 
     587                 :            : // ----------------------------------------------------------------------------------------
     588                 :            : //
     589                 :            : //  Fuer die Pattern-Attribute (SetItems) kann der sal_uInt16 RefCount leicht ueberlaufen
     590                 :            : //  (z.B. 600 ganze Zeilen abwechselnd formatieren).
     591                 :            : //  Darum wird der RefCount bei SC_MAX_POOLREF festgehalten und nicht mehr hoch- oder
     592                 :            : //  heruntergezaehlt. Dieser RefCount wird dann erst beim naechsten Laden neu gezaehlt.
     593                 :            : //  Die Differenz zwischen SC_MAX_POOLREF und SC_SAFE_POOLREF ist ein wenig groesser
     594                 :            : //  als noetig, um zu erkennen, wenn der RefCount aus Versehen doch "normal" veraendert
     595                 :            : //  wird (Assertions).
     596                 :            : //
     597                 :            : 
     598                 :     364547 : const SfxPoolItem& ScDocumentPool::Put( const SfxPoolItem& rItem, sal_uInt16 nWhich )
     599                 :            : {
     600         [ +  + ]:     364547 :     if ( rItem.Which() != ATTR_PATTERN )                // nur Pattern ist special
     601                 :     163472 :         return SfxItemPool::Put( rItem, nWhich );
     602                 :            : 
     603                 :            :     //  das Default-Pattern dieses Pools nicht kopieren
     604         [ +  + ]:     201075 :     if (&rItem == ppPoolDefaults[ ATTR_PATTERN - ATTR_STARTINDEX ])
     605                 :      96845 :         return rItem;
     606                 :            : 
     607                 :            :     //  ansonsten muss Put immer passieren, weil es ein anderer Pool sein kann
     608                 :     104230 :     const SfxPoolItem& rNew = SfxItemPool::Put( rItem, nWhich );
     609                 :     104230 :     CheckRef( rNew );
     610                 :     364547 :     return rNew;
     611                 :            : }
     612                 :            : 
     613                 :    2102870 : void ScDocumentPool::Remove( const SfxPoolItem& rItem )
     614                 :            : {
     615         [ +  + ]:    2102870 :     if ( rItem.Which() == ATTR_PATTERN )                // nur Pattern ist special
     616                 :            :     {
     617                 :    2040721 :         sal_uLong nRef = rItem.GetRefCount();
     618 [ -  + ][ +  + ]:    2040721 :         if ( nRef >= (sal_uLong) SC_MAX_POOLREF && nRef <= (sal_uLong) SFX_ITEMS_OLD_MAXREF )
     619                 :            :         {
     620         [ #  # ]:          0 :             if ( nRef != (sal_uLong) SC_SAFE_POOLREF )
     621                 :            :             {
     622                 :            :                 OSL_FAIL("Wer fummelt da an meinen Ref-Counts herum");
     623                 :          0 :                 SetRefCount( (SfxPoolItem&)rItem, (sal_uLong) SC_SAFE_POOLREF );
     624                 :            :             }
     625                 :    2102870 :             return;                 // nicht herunterzaehlen
     626                 :            :         }
     627                 :            :     }
     628                 :    2102870 :     SfxItemPool::Remove( rItem );
     629                 :            : }
     630                 :            : 
     631                 :     214246 : void ScDocumentPool::CheckRef( const SfxPoolItem& rItem )
     632                 :            : {
     633                 :     214246 :     sal_uLong nRef = rItem.GetRefCount();
     634 [ -  + ][ +  + ]:     214246 :     if ( nRef >= (sal_uLong) SC_MAX_POOLREF && nRef <= (sal_uLong) SFX_ITEMS_OLD_MAXREF )
     635                 :            :     {
     636                 :            :         // beim Apply vom Cache wird evtl. um 2 hochgezaehlt (auf MAX+1 oder SAFE+2),
     637                 :            :         // heruntergezaehlt wird nur einzeln (in LoadCompleted)
     638                 :            :         OSL_ENSURE( nRef<=(sal_uLong)SC_MAX_POOLREF+1 || (nRef>=(sal_uLong)SC_SAFE_POOLREF-1 && nRef<=(sal_uLong)SC_SAFE_POOLREF+2),
     639                 :            :                 "ScDocumentPool::CheckRef" );
     640                 :          0 :         SetRefCount( (SfxPoolItem&)rItem, (sal_uLong) SC_SAFE_POOLREF );
     641                 :            :     }
     642                 :     214246 : }
     643                 :            : 
     644                 :            : // ----------------------------------------------------------------------------------------
     645                 :            : 
     646                 :          1 : void ScDocumentPool::StyleDeleted( ScStyleSheet* pStyle )
     647                 :            : {
     648                 :          1 :     sal_uInt32 nCount = GetItemCount2(ATTR_PATTERN);
     649         [ -  + ]:          1 :     for (sal_uInt32 i=0; i<nCount; i++)
     650                 :            :     {
     651                 :          0 :         ScPatternAttr* pPattern = (ScPatternAttr*)GetItem2(ATTR_PATTERN, i);
     652 [ #  # ][ #  # ]:          0 :         if ( pPattern && pPattern->GetStyleSheet() == pStyle )
                 [ #  # ]
     653                 :          0 :             pPattern->StyleToName();
     654                 :            :     }
     655                 :          1 : }
     656                 :            : 
     657                 :          4 : void ScDocumentPool::CellStyleCreated( const String& rName )
     658                 :            : {
     659                 :            :     // If a style was created, don't keep any pattern with its name string in the pool,
     660                 :            :     // because it would compare equal to a pattern with a pointer to the new style.
     661                 :            :     // Calling StyleSheetChanged isn't enough because the pool may still contain items
     662                 :            :     // for undo or clipboard content.
     663                 :            : 
     664                 :          4 :     sal_uInt32 nCount = GetItemCount2(ATTR_PATTERN);
     665         [ -  + ]:          4 :     for (sal_uInt32 i=0; i<nCount; i++)
     666                 :            :     {
     667                 :            :         ScPatternAttr *const pPattern =
     668                 :            :             const_cast<ScPatternAttr*>(
     669                 :          0 :                 static_cast<ScPatternAttr const*>(GetItem2(ATTR_PATTERN, i)));
     670 [ #  # ][ #  # ]:          0 :         if ( pPattern && pPattern->GetStyleSheet() == NULL )
                 [ #  # ]
     671                 :            :         {
     672                 :          0 :             const String* pStyleName = pPattern->GetStyleName();
     673 [ #  # ][ #  # ]:          0 :             if ( pStyleName && *pStyleName == rName )
                 [ #  # ]
     674                 :          0 :                 pPattern->UpdateStyleSheet();           // find and store style pointer
     675                 :            :         }
     676                 :            :     }
     677                 :          4 : }
     678                 :            : 
     679                 :          0 : SfxItemPool* ScDocumentPool::Clone() const
     680                 :            : {
     681         [ #  # ]:          0 :     return new SfxItemPool (*this, sal_True);
     682                 :            : }
     683                 :            : 
     684                 :          0 : SfxItemPresentation lcl_HFPresentation
     685                 :            : (
     686                 :            :     const SfxPoolItem&  rItem,
     687                 :            :     SfxItemPresentation ePresentation,
     688                 :            :     SfxMapUnit          eCoreMetric,
     689                 :            :     SfxMapUnit          ePresentationMetric,
     690                 :            :     String&             rText,
     691                 :            :     const IntlWrapper* pIntl
     692                 :            : )
     693                 :            : {
     694                 :          0 :     const SfxItemSet& rSet = ((const SfxSetItem&)rItem).GetItemSet();
     695                 :            :     const SfxPoolItem* pItem;
     696                 :            : 
     697 [ #  # ][ #  # ]:          0 :     if ( SFX_ITEM_SET == rSet.GetItemState(ATTR_PAGE_ON,false,&pItem) )
     698                 :            :     {
     699         [ #  # ]:          0 :         if( false == ((const SfxBoolItem*)pItem)->GetValue() )
     700                 :          0 :             return SFX_ITEM_PRESENTATION_NONE;
     701                 :            :     }
     702                 :            : 
     703         [ #  # ]:          0 :     SfxItemIter aIter( rSet );
     704                 :          0 :     pItem = aIter.FirstItem();
     705         [ #  # ]:          0 :     String  aText;
     706                 :          0 :     rtl::OUString aDel(" + ");
     707                 :            : 
     708         [ #  # ]:          0 :     while( pItem )
     709                 :            :     {
     710                 :          0 :         sal_uInt16 nWhich = pItem->Which();
     711                 :            : 
     712         [ #  # ]:          0 :         aText.Erase();
     713                 :            : 
     714      [ #  #  # ]:          0 :         switch( nWhich )
     715                 :            :         {
     716                 :            :             case ATTR_PAGE_ON:
     717                 :            :             case ATTR_PAGE_DYNAMIC:
     718                 :            :             case ATTR_PAGE_SHARED:
     719                 :          0 :             break;
     720                 :            : 
     721                 :            :             case ATTR_LRSPACE:
     722                 :            :             {
     723                 :          0 :                 SvxLRSpaceItem& rLRItem = (SvxLRSpaceItem&)*pItem;
     724                 :          0 :                 sal_uInt16 nPropLeftMargin  = rLRItem.GetPropLeft();
     725                 :          0 :                 sal_uInt16 nPropRightMargin = rLRItem.GetPropRight();
     726                 :            :                 sal_uInt16 nLeftMargin, nRightMargin;
     727                 :            :                 long nTmp;
     728                 :          0 :                 nTmp = rLRItem.GetLeft();
     729         [ #  # ]:          0 :                 nLeftMargin = nTmp < 0 ? 0 : sal_uInt16(nTmp);
     730                 :          0 :                 nTmp = rLRItem.GetRight();
     731         [ #  # ]:          0 :                 nRightMargin = nTmp < 0 ? 0 : sal_uInt16(nTmp);
     732                 :            : 
     733 [ #  # ][ #  # ]:          0 :                 aText = EE_RESSTR(RID_SVXITEMS_LRSPACE_LEFT);
                 [ #  # ]
     734         [ #  # ]:          0 :                 if ( 100 != nPropLeftMargin )
     735                 :            :                 {
     736 [ #  # ][ #  # ]:          0 :                     aText += String::CreateFromInt32( nPropLeftMargin );
                 [ #  # ]
     737         [ #  # ]:          0 :                     aText += '%';
     738                 :            :                 }
     739                 :            :                 else
     740                 :            :                 {
     741                 :            :                     aText += GetMetricText( (long)nLeftMargin,
     742 [ #  # ][ #  # ]:          0 :                                            eCoreMetric, ePresentationMetric, pIntl );
                 [ #  # ]
     743 [ #  # ][ #  # ]:          0 :                     aText += EE_RESSTR(GetMetricId(ePresentationMetric));
         [ #  # ][ #  # ]
     744                 :            :                 }
     745         [ #  # ]:          0 :                 aText += cpDelim;
     746                 :            : 
     747                 :            :                 // nPropFirstLineOfst haben wir nicht
     748                 :            : 
     749 [ #  # ][ #  # ]:          0 :                 aText += EE_RESSTR(RID_SVXITEMS_LRSPACE_RIGHT);
                 [ #  # ]
     750         [ #  # ]:          0 :                 if ( 100 != nPropRightMargin )
     751                 :            :                 {
     752 [ #  # ][ #  # ]:          0 :                     aText += String::CreateFromInt32( nPropRightMargin );
                 [ #  # ]
     753         [ #  # ]:          0 :                     aText += '%';
     754                 :            :                 }
     755                 :            :                 else
     756                 :            :                 {
     757                 :            :                     aText += GetMetricText( (long)nRightMargin,
     758 [ #  # ][ #  # ]:          0 :                                             eCoreMetric, ePresentationMetric, pIntl );
                 [ #  # ]
     759 [ #  # ][ #  # ]:          0 :                     aText += EE_RESSTR(GetMetricId(ePresentationMetric));
         [ #  # ][ #  # ]
     760                 :            :                 }
     761                 :            :             }
     762                 :          0 :             break;
     763                 :            : 
     764                 :            :             default:
     765         [ #  # ]:          0 :                 if ( !pIntl )
     766         [ #  # ]:          0 :                     pIntl = ScGlobal::GetScIntlWrapper();
     767         [ #  # ]:          0 :                 pItem->GetPresentation( ePresentation, eCoreMetric, ePresentationMetric, aText, pIntl );
     768                 :            : 
     769                 :            :         }
     770                 :            : 
     771         [ #  # ]:          0 :         if ( aText.Len() )
     772                 :            :         {
     773         [ #  # ]:          0 :             rText += aText;
     774         [ #  # ]:          0 :             rText += aDel;
     775                 :            :         }
     776                 :            : 
     777         [ #  # ]:          0 :         pItem = aIter.NextItem();
     778                 :            :     }
     779                 :            : 
     780 [ #  # ][ #  # ]:          0 :     rText = comphelper::string::stripEnd(rText, ' ');
                 [ #  # ]
     781 [ #  # ][ #  # ]:          0 :     rText = comphelper::string::stripEnd(rText, '+');
                 [ #  # ]
     782 [ #  # ][ #  # ]:          0 :     rText = comphelper::string::stripEnd(rText, ' ');
                 [ #  # ]
     783 [ #  # ][ #  # ]:          0 :     return ePresentation;
     784                 :            : }
     785                 :            : 
     786                 :          0 : SfxItemPresentation ScDocumentPool::GetPresentation(
     787                 :            :     const SfxPoolItem&  rItem,
     788                 :            :     SfxItemPresentation ePresentation,
     789                 :            :     SfxMapUnit          ePresentationMetric,
     790                 :            :     String&             rText,
     791                 :            :     const IntlWrapper* pIntl ) const
     792                 :            : {
     793                 :          0 :     sal_uInt16  nW = rItem.Which();
     794 [ #  # ][ #  # ]:          0 :     String aStrYes  ( ScGlobal::GetRscString(STR_YES) );
     795 [ #  # ][ #  # ]:          0 :     String aStrNo   ( ScGlobal::GetRscString(STR_NO) );
     796                 :          0 :     rtl::OUString aStrSep(": ");
     797                 :            : 
     798   [ #  #  #  #  :          0 :     switch( nW )
          #  #  #  #  #  
                #  #  # ]
     799                 :            :     {
     800                 :            :         case ATTR_PAGE_TOPDOWN:
     801      [ #  #  # ]:          0 :         switch ( ePresentation )
     802                 :            :         {
     803                 :            :             case SFX_ITEM_PRESENTATION_COMPLETE:
     804 [ #  # ][ #  # ]:          0 :             rText  = ScGlobal::GetRscString(STR_SCATTR_PAGE_PRINTDIR);
     805         [ #  # ]:          0 :             rText += aStrSep;
     806                 :            : //          break; // DURCHFALLEN!!!
     807                 :            :             case SFX_ITEM_PRESENTATION_NAMELESS:
     808                 :          0 :             rText += ((const SfxBoolItem&)rItem).GetValue() ?
     809                 :            :                 ScGlobal::GetRscString(STR_SCATTR_PAGE_TOPDOWN) :
     810 [ #  # ][ #  # ]:          0 :                 ScGlobal::GetRscString(STR_SCATTR_PAGE_LEFTRIGHT) ;
         [ #  # ][ #  # ]
     811                 :          0 :             break;
     812                 :            :             default:
     813                 :            :             {
     814                 :            :                 // added to avoid warnings
     815                 :            :             }
     816                 :            :         }
     817                 :          0 :         break;
     818                 :            : 
     819                 :            :         case ATTR_PAGE_HEADERS:
     820      [ #  #  # ]:          0 :         switch ( ePresentation )
     821                 :            :         {
     822                 :            :             case SFX_ITEM_PRESENTATION_COMPLETE:
     823 [ #  # ][ #  # ]:          0 :             rText  = ScGlobal::GetRscString(STR_SCATTR_PAGE_HEADERS);
     824         [ #  # ]:          0 :             rText += aStrSep;
     825                 :            : //          break; // DURCHFALLEN!!!
     826                 :            :             case SFX_ITEM_PRESENTATION_NAMELESS:
     827 [ #  # ][ #  # ]:          0 :             rText += ((const SfxBoolItem&)rItem).GetValue() ? aStrYes : aStrNo ;
     828                 :          0 :             break;
     829                 :            :             default:
     830                 :            :             {
     831                 :            :                 // added to avoid warnings
     832                 :            :             }
     833                 :            :         }
     834                 :          0 :         break;
     835                 :            : 
     836                 :            :         case ATTR_PAGE_NULLVALS:
     837      [ #  #  # ]:          0 :         switch ( ePresentation )
     838                 :            :         {
     839                 :            :             case SFX_ITEM_PRESENTATION_COMPLETE:
     840 [ #  # ][ #  # ]:          0 :             rText  = ScGlobal::GetRscString(STR_SCATTR_PAGE_NULLVALS);
     841         [ #  # ]:          0 :             rText += aStrSep;
     842                 :            : //          break; // DURCHFALLEN!!!
     843                 :            :             case SFX_ITEM_PRESENTATION_NAMELESS:
     844 [ #  # ][ #  # ]:          0 :             rText += ((const SfxBoolItem&)rItem).GetValue() ? aStrYes : aStrNo ;
     845                 :          0 :             break;
     846                 :            :             default:
     847                 :            :             {
     848                 :            :                 // added to avoid warnings
     849                 :            :             }
     850                 :            :         }
     851                 :          0 :         break;
     852                 :            : 
     853                 :            :         case ATTR_PAGE_FORMULAS:
     854      [ #  #  # ]:          0 :         switch ( ePresentation )
     855                 :            :         {
     856                 :            :             case SFX_ITEM_PRESENTATION_COMPLETE:
     857 [ #  # ][ #  # ]:          0 :             rText  = ScGlobal::GetRscString(STR_SCATTR_PAGE_FORMULAS);
     858         [ #  # ]:          0 :             rText += aStrSep;
     859                 :            : //          break; // DURCHFALLEN!!!
     860                 :            :             case SFX_ITEM_PRESENTATION_NAMELESS:
     861 [ #  # ][ #  # ]:          0 :             rText += ((const SfxBoolItem&)rItem).GetValue() ? aStrYes : aStrNo ;
     862                 :          0 :             break;
     863                 :            :             default:
     864                 :            :             {
     865                 :            :                 // added to avoid warnings
     866                 :            :             }
     867                 :            :         }
     868                 :          0 :         break;
     869                 :            : 
     870                 :            :         case ATTR_PAGE_NOTES:
     871      [ #  #  # ]:          0 :         switch ( ePresentation )
     872                 :            :         {
     873                 :            :             case SFX_ITEM_PRESENTATION_COMPLETE:
     874 [ #  # ][ #  # ]:          0 :             rText  = ScGlobal::GetRscString(STR_SCATTR_PAGE_NOTES);
     875         [ #  # ]:          0 :             rText += aStrSep;
     876                 :            : //          break; // DURCHFALLEN!!!
     877                 :            :             case SFX_ITEM_PRESENTATION_NAMELESS:
     878 [ #  # ][ #  # ]:          0 :             rText += ((const SfxBoolItem&)rItem).GetValue() ? aStrYes : aStrNo ;
     879                 :          0 :             break;
     880                 :            :             default:
     881                 :            :             {
     882                 :            :                 // added to avoid warnings
     883                 :            :             }
     884                 :            :         }
     885                 :          0 :         break;
     886                 :            : 
     887                 :            :         case ATTR_PAGE_GRID:
     888      [ #  #  # ]:          0 :         switch ( ePresentation )
     889                 :            :         {
     890                 :            :             case SFX_ITEM_PRESENTATION_COMPLETE:
     891 [ #  # ][ #  # ]:          0 :             rText  = ScGlobal::GetRscString(STR_SCATTR_PAGE_GRID);
     892         [ #  # ]:          0 :             rText += aStrSep;
     893                 :            : //          break; // DURCHFALLEN!!!
     894                 :            :             case SFX_ITEM_PRESENTATION_NAMELESS:
     895 [ #  # ][ #  # ]:          0 :             rText += ((const SfxBoolItem&)rItem).GetValue() ? aStrYes : aStrNo ;
     896                 :          0 :             break;
     897                 :            :             default:
     898                 :            :             {
     899                 :            :                 // added to avoid warnings
     900                 :            :             }
     901                 :            :         }
     902                 :          0 :         break;
     903                 :            : 
     904                 :            :         case ATTR_PAGE_SCALETOPAGES:
     905                 :            :         {
     906                 :          0 :             sal_uInt16  nPagNo = ((const SfxUInt16Item&)rItem).GetValue();
     907                 :            : 
     908         [ #  # ]:          0 :             if( nPagNo )
     909                 :            :             {
     910      [ #  #  # ]:          0 :                 switch ( ePresentation )
     911                 :            :                 {
     912                 :            :                     case SFX_ITEM_PRESENTATION_COMPLETE:
     913                 :            :                     {
     914 [ #  # ][ #  # ]:          0 :                         rText.Assign( ScGlobal::GetRscString( STR_SCATTR_PAGE_SCALETOPAGES ) ).Append( aStrSep );
         [ #  # ][ #  # ]
                 [ #  # ]
     915                 :            :                     }
     916                 :            : //                  break; // DURCHFALLEN!!!
     917                 :            :                     case SFX_ITEM_PRESENTATION_NAMELESS:
     918                 :            :                     {
     919 [ #  # ][ #  # ]:          0 :                         String aPages( ScGlobal::GetRscString( STR_SCATTR_PAGE_SCALE_PAGES ) );
     920 [ #  # ][ #  # ]:          0 :                         aPages.SearchAndReplaceAscii( "%1", String::CreateFromInt32( nPagNo ) );
                 [ #  # ]
     921 [ #  # ][ #  # ]:          0 :                         rText.Append( aPages );
     922                 :            :                     }
     923                 :          0 :                     break;
     924                 :            :                     default:
     925                 :            :                     {
     926                 :            :                         // added to avoid warnings
     927                 :            :                     }
     928                 :            :                 }
     929                 :            :             }
     930                 :            :             else
     931                 :            :             {
     932                 :          0 :                 ePresentation = SFX_ITEM_PRESENTATION_NONE;
     933                 :            :             }
     934                 :            :         }
     935                 :          0 :         break;
     936                 :            : 
     937                 :            :         case ATTR_PAGE_FIRSTPAGENO:
     938                 :            :         {
     939                 :          0 :             sal_uInt16  nPagNo = ((const SfxUInt16Item&)rItem).GetValue();
     940                 :            : 
     941         [ #  # ]:          0 :             if( nPagNo )
     942                 :            :             {
     943      [ #  #  # ]:          0 :                 switch ( ePresentation )
     944                 :            :                 {
     945                 :            :                     case SFX_ITEM_PRESENTATION_COMPLETE:
     946 [ #  # ][ #  # ]:          0 :                     rText  = ScGlobal::GetRscString(STR_SCATTR_PAGE_FIRSTPAGENO);
     947         [ #  # ]:          0 :                     rText += aStrSep;
     948                 :            : //                  break; // DURCHFALLEN!!!
     949                 :            :                     case SFX_ITEM_PRESENTATION_NAMELESS:
     950 [ #  # ][ #  # ]:          0 :                     rText += String::CreateFromInt32( nPagNo );
                 [ #  # ]
     951                 :          0 :                     break;
     952                 :            :                     default:
     953                 :            :                     {
     954                 :            :                         // added to avoid warnings
     955                 :            :                     }
     956                 :            :                 }
     957                 :            :             }
     958                 :            :             else
     959                 :            :             {
     960                 :          0 :                 ePresentation = SFX_ITEM_PRESENTATION_NONE;
     961                 :            :             }
     962                 :            :         }
     963                 :          0 :         break;
     964                 :            : 
     965                 :            :         case ATTR_PAGE_SCALE:
     966                 :            :         {
     967                 :          0 :             sal_uInt16  nPercent = ((const SfxUInt16Item&)rItem).GetValue();
     968                 :            : 
     969         [ #  # ]:          0 :             if( nPercent )
     970                 :            :             {
     971      [ #  #  # ]:          0 :                 switch ( ePresentation )
     972                 :            :                 {
     973                 :            :                     case SFX_ITEM_PRESENTATION_COMPLETE:
     974 [ #  # ][ #  # ]:          0 :                     rText  = ScGlobal::GetRscString(STR_SCATTR_PAGE_SCALE);
     975         [ #  # ]:          0 :                     rText += aStrSep;
     976                 :            : //                  break; // DURCHFALLEN!!!
     977                 :            :                     case SFX_ITEM_PRESENTATION_NAMELESS:
     978 [ #  # ][ #  # ]:          0 :                     rText += String::CreateFromInt32( nPercent );
                 [ #  # ]
     979         [ #  # ]:          0 :                     rText += '%';
     980                 :          0 :                     break;
     981                 :            :                     default:
     982                 :            :                     {
     983                 :            :                         // added to avoid warnings
     984                 :            :                     }
     985                 :            :                 }
     986                 :            :             }
     987                 :            :             else
     988                 :            :             {
     989                 :          0 :                 ePresentation = SFX_ITEM_PRESENTATION_NONE;
     990                 :            :             }
     991                 :            :         }
     992                 :          0 :         break;
     993                 :            : 
     994                 :            :         case ATTR_PAGE_HEADERSET:
     995                 :            :         {
     996         [ #  # ]:          0 :             String  aBuffer;
     997                 :            : 
     998 [ #  # ][ #  # ]:          0 :             if( lcl_HFPresentation( rItem, ePresentation, GetMetric( nW ), ePresentationMetric, aBuffer, pIntl ) != SFX_ITEM_PRESENTATION_NONE )
                 [ #  # ]
     999                 :            :             {
    1000 [ #  # ][ #  # ]:          0 :                 rText  = ScGlobal::GetRscString(STR_HEADER);
    1001         [ #  # ]:          0 :                 rText.AppendAscii(RTL_CONSTASCII_STRINGPARAM( " ( " ));
    1002         [ #  # ]:          0 :                 rText += aBuffer;
    1003         [ #  # ]:          0 :                 rText.AppendAscii(RTL_CONSTASCII_STRINGPARAM( " ) " ));
    1004         [ #  # ]:          0 :             }
    1005                 :            :         }
    1006                 :          0 :         break;
    1007                 :            : 
    1008                 :            :         case ATTR_PAGE_FOOTERSET:
    1009                 :            :         {
    1010         [ #  # ]:          0 :             String  aBuffer;
    1011                 :            : 
    1012 [ #  # ][ #  # ]:          0 :             if( lcl_HFPresentation( rItem, ePresentation, GetMetric( nW ), ePresentationMetric, aBuffer, pIntl ) != SFX_ITEM_PRESENTATION_NONE )
                 [ #  # ]
    1013                 :            :             {
    1014 [ #  # ][ #  # ]:          0 :                 rText  = ScGlobal::GetRscString(STR_FOOTER);
    1015         [ #  # ]:          0 :                 rText.AppendAscii(RTL_CONSTASCII_STRINGPARAM( " ( " ));
    1016         [ #  # ]:          0 :                 rText += aBuffer;
    1017         [ #  # ]:          0 :                 rText.AppendAscii(RTL_CONSTASCII_STRINGPARAM( " ) " ));
    1018         [ #  # ]:          0 :             }
    1019                 :            :         }
    1020                 :          0 :         break;
    1021                 :            : 
    1022                 :            :         default:
    1023         [ #  # ]:          0 :             if ( !pIntl )
    1024         [ #  # ]:          0 :                 pIntl = ScGlobal::GetScIntlWrapper();
    1025 [ #  # ][ #  # ]:          0 :             ePresentation = rItem.GetPresentation( ePresentation, GetMetric( nW ), ePresentationMetric, rText, pIntl );
    1026                 :          0 :         break;
    1027                 :            :     }
    1028                 :            : 
    1029 [ #  # ][ #  # ]:          0 :     return ePresentation;
    1030                 :            : }
    1031                 :            : 
    1032                 :          0 : SfxMapUnit ScDocumentPool::GetMetric( sal_uInt16 nWhich ) const
    1033                 :            : {
    1034                 :            :     //  eigene Attribute: Twips, alles andere 1/100 mm
    1035                 :            : 
    1036 [ #  # ][ #  # ]:          0 :     if ( nWhich >= ATTR_STARTINDEX && nWhich <= ATTR_ENDINDEX )
    1037                 :          0 :         return SFX_MAPUNIT_TWIP;
    1038                 :            :     else
    1039                 :          0 :         return SFX_MAPUNIT_100TH_MM;
    1040                 :            : }
    1041                 :            : 
    1042                 :            : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.10