LCOV - code coverage report
Current view: top level - sw/source/core/doc - SwStyleNameMapper.cxx (source / functions) Hit Total Coverage
Test: libreoffice_filtered.info Lines: 283 322 87.9 %
Date: 2012-08-25 Functions: 40 41 97.6 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 290 448 64.7 %

           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                 :            : #include <SwStyleNameMapper.hxx>
      30                 :            : #include <tools/resmgr.hxx>
      31                 :            : #include <poolfmt.hxx>
      32                 :            : #include <rcid.hrc>
      33                 :            : #ifdef _NEED_TO_DEBUG_MAPPING
      34                 :            : #include <stdlib.h>
      35                 :            : #endif
      36                 :            : 
      37                 :            : extern ResMgr* pSwResMgr;
      38                 :            : // Initialise UI names to 0
      39                 :            : boost::ptr_vector<String> *SwStyleNameMapper::pTextUINameArray = 0,
      40                 :            :                 *SwStyleNameMapper::pListsUINameArray = 0,
      41                 :            :                 *SwStyleNameMapper::pExtraUINameArray = 0,
      42                 :            :                 *SwStyleNameMapper::pRegisterUINameArray = 0,
      43                 :            :                 *SwStyleNameMapper::pDocUINameArray = 0,
      44                 :            :                 *SwStyleNameMapper::pHTMLUINameArray = 0,
      45                 :            :                 *SwStyleNameMapper::pFrmFmtUINameArray = 0,
      46                 :            :                 *SwStyleNameMapper::pChrFmtUINameArray = 0,
      47                 :            :                 *SwStyleNameMapper::pHTMLChrFmtUINameArray = 0,
      48                 :            :                 *SwStyleNameMapper::pPageDescUINameArray = 0,
      49                 :            :                 *SwStyleNameMapper::pNumRuleUINameArray = 0,
      50                 :            : 
      51                 :            : // Initialise programmatic names to 0
      52                 :            :                 *SwStyleNameMapper::pTextProgNameArray = 0,
      53                 :            :                 *SwStyleNameMapper::pListsProgNameArray = 0,
      54                 :            :                 *SwStyleNameMapper::pExtraProgNameArray = 0,
      55                 :            :                 *SwStyleNameMapper::pRegisterProgNameArray = 0,
      56                 :            :                 *SwStyleNameMapper::pDocProgNameArray = 0,
      57                 :            :                 *SwStyleNameMapper::pHTMLProgNameArray = 0,
      58                 :            :                 *SwStyleNameMapper::pFrmFmtProgNameArray = 0,
      59                 :            :                 *SwStyleNameMapper::pChrFmtProgNameArray = 0,
      60                 :            :                 *SwStyleNameMapper::pHTMLChrFmtProgNameArray = 0,
      61                 :            :                 *SwStyleNameMapper::pPageDescProgNameArray = 0,
      62                 :            :                 *SwStyleNameMapper::pNumRuleProgNameArray = 0;
      63                 :            : 
      64                 :            : NameToIdHash    *SwStyleNameMapper::pParaUIMap = 0,
      65                 :            :                 *SwStyleNameMapper::pCharUIMap = 0,
      66                 :            :                 *SwStyleNameMapper::pPageUIMap = 0,
      67                 :            :                 *SwStyleNameMapper::pFrameUIMap = 0,
      68                 :            :                 *SwStyleNameMapper::pNumRuleUIMap = 0,
      69                 :            : 
      70                 :            :                 *SwStyleNameMapper::pParaProgMap = 0,
      71                 :            :                 *SwStyleNameMapper::pCharProgMap = 0,
      72                 :            :                 *SwStyleNameMapper::pPageProgMap = 0,
      73                 :            :                 *SwStyleNameMapper::pFrameProgMap = 0,
      74                 :            :                 *SwStyleNameMapper::pNumRuleProgMap = 0;
      75                 :            : 
      76                 :            : // SwTableEntry so we can pass the length to the String CTOR
      77                 :            : struct SwTableEntry
      78                 :            : {
      79                 :            :     sal_uInt8 nLength;
      80                 :            :     const sal_Char *pChar;
      81                 :            : };
      82                 :            : 
      83                 :            : #define ENTRY( s ) { sizeof (s)-1, s }
      84                 :            : 
      85                 :            : // Hard coded Programmatic Name tables
      86                 :            : const struct SwTableEntry TextProgNameTable [] =
      87                 :            : {
      88                 :            :     ENTRY( "Standard" ), // RES_POOLCOLL_STANDARD
      89                 :            :     ENTRY( "Text body" ),
      90                 :            :     ENTRY( "First line indent" ),
      91                 :            :     ENTRY( "Hanging indent" ),
      92                 :            :     ENTRY( "Text body indent" ),
      93                 :            :     ENTRY( "Salutation" ),
      94                 :            :     ENTRY( "Signature" ),
      95                 :            :     ENTRY( "List Indent" ), // RES_POOLCOLL_CONFRONTATION
      96                 :            :     ENTRY( "Marginalia" ),
      97                 :            :     ENTRY( "Heading" ),
      98                 :            :     ENTRY( "Heading 1" ),
      99                 :            :     ENTRY( "Heading 2" ),
     100                 :            :     ENTRY( "Heading 3" ),
     101                 :            :     ENTRY( "Heading 4" ),
     102                 :            :     ENTRY( "Heading 5" ),
     103                 :            :     ENTRY( "Heading 6" ),
     104                 :            :     ENTRY( "Heading 7" ),
     105                 :            :     ENTRY( "Heading 8" ),
     106                 :            :     ENTRY( "Heading 9" ),
     107                 :            :     ENTRY( "Heading 10" ), // RES_POOLCOLL_TEXT_END
     108                 :            :     { 0, NULL }
     109                 :            : };
     110                 :            : 
     111                 :            : const struct SwTableEntry ListsProgNameTable [] =
     112                 :            : {
     113                 :            :     ENTRY( "List" ), // STR_POCO_PRGM_NUMBUL_BASE
     114                 :            :     ENTRY( "Numbering 1 Start" ), // STR_POCO_PRGM_NUM_LEVEL1S
     115                 :            :     ENTRY( "Numbering 1" ),
     116                 :            :     ENTRY( "Numbering 1 End" ),
     117                 :            :     ENTRY( "Numbering 1 Cont." ),
     118                 :            :     ENTRY( "Numbering 2 Start" ),
     119                 :            :     ENTRY( "Numbering 2" ),
     120                 :            :     ENTRY( "Numbering 2 End" ),
     121                 :            :     ENTRY( "Numbering 2 Cont." ),
     122                 :            :     ENTRY( "Numbering 3 Start" ),
     123                 :            :     ENTRY( "Numbering 3" ),
     124                 :            :     ENTRY( "Numbering 3 End" ),
     125                 :            :     ENTRY( "Numbering 3 Cont." ),
     126                 :            :     ENTRY( "Numbering 4 Start" ),
     127                 :            :     ENTRY( "Numbering 4" ),
     128                 :            :     ENTRY( "Numbering 4 End" ),
     129                 :            :     ENTRY( "Numbering 4 Cont." ),
     130                 :            :     ENTRY( "Numbering 5 Start" ),
     131                 :            :     ENTRY( "Numbering 5" ),
     132                 :            :     ENTRY( "Numbering 5 End" ),
     133                 :            :     ENTRY( "Numbering 5 Cont." ),
     134                 :            :     ENTRY( "List 1 Start" ),
     135                 :            :     ENTRY( "List 1" ),
     136                 :            :     ENTRY( "List 1 End" ),
     137                 :            :     ENTRY( "List 1 Cont." ),
     138                 :            :     ENTRY( "List 2 Start" ),
     139                 :            :     ENTRY( "List 2" ),
     140                 :            :     ENTRY( "List 2 End" ),
     141                 :            :     ENTRY( "List 2 Cont." ),
     142                 :            :     ENTRY( "List 3 Start" ),
     143                 :            :     ENTRY( "List 3" ),
     144                 :            :     ENTRY( "List 3 End" ),
     145                 :            :     ENTRY( "List 3 Cont." ),
     146                 :            :     ENTRY( "List 4 Start" ),
     147                 :            :     ENTRY( "List 4" ),
     148                 :            :     ENTRY( "List 4 End" ),
     149                 :            :     ENTRY( "List 4 Cont." ),
     150                 :            :     ENTRY( "List 5 Start" ),
     151                 :            :     ENTRY( "List 5" ),
     152                 :            :     ENTRY( "List 5 End" ),
     153                 :            :     ENTRY( "List 5 Cont." ), // STR_POCO_PRGM_BUL_NONUM5
     154                 :            :     { 0, NULL }
     155                 :            : };
     156                 :            : 
     157                 :            : const struct SwTableEntry ExtraProgNameTable [] =
     158                 :            : {
     159                 :            :     ENTRY( "Header" ), // RES_POOLCOLL_EXTRA_BEGIN
     160                 :            :     ENTRY( "Header left" ),
     161                 :            :     ENTRY( "Header right" ),
     162                 :            :     ENTRY( "Footer" ),
     163                 :            :     ENTRY( "Footer left" ),
     164                 :            :     ENTRY( "Footer right" ),
     165                 :            :     ENTRY( "Table Contents" ),
     166                 :            :     ENTRY( "Table Heading" ),
     167                 :            :     ENTRY( "Caption" ),
     168                 :            :     ENTRY( "Illustration" ),
     169                 :            :     ENTRY( "Table" ),
     170                 :            :     ENTRY( "Text" ),
     171                 :            :     ENTRY( "Frame contents" ),
     172                 :            :     ENTRY( "Footnote" ),
     173                 :            :     ENTRY( "Addressee" ),
     174                 :            :     ENTRY( "Sender" ),
     175                 :            :     ENTRY( "Endnote" ),
     176                 :            :     ENTRY( "Drawing" ), // RES_POOLCOLL_LABEL_DRAWING
     177                 :            :     { 0, NULL }
     178                 :            : };
     179                 :            : 
     180                 :            : const struct SwTableEntry RegisterProgNameTable [] =
     181                 :            : {
     182                 :            :     ENTRY( "Index" ), // STR_POCO_PRGM_REGISTER_BASE
     183                 :            :     ENTRY( "Index Heading" ), // STR_POCO_PRGM_TOX_IDXH
     184                 :            :     ENTRY( "Index 1" ),
     185                 :            :     ENTRY( "Index 2" ),
     186                 :            :     ENTRY( "Index 3" ),
     187                 :            :     ENTRY( "Index Separator" ),
     188                 :            :     ENTRY( "Contents Heading" ),
     189                 :            :     ENTRY( "Contents 1" ),
     190                 :            :     ENTRY( "Contents 2" ),
     191                 :            :     ENTRY( "Contents 3" ),
     192                 :            :     ENTRY( "Contents 4" ),
     193                 :            :     ENTRY( "Contents 5" ),
     194                 :            :     ENTRY( "User Index Heading" ),
     195                 :            :     ENTRY( "User Index 1" ),
     196                 :            :     ENTRY( "User Index 2" ),
     197                 :            :     ENTRY( "User Index 3" ),
     198                 :            :     ENTRY( "User Index 4" ),
     199                 :            :     ENTRY( "User Index 5" ),
     200                 :            :     ENTRY( "Contents 6" ),
     201                 :            :     ENTRY( "Contents 7" ),
     202                 :            :     ENTRY( "Contents 8" ),
     203                 :            :     ENTRY( "Contents 9" ),
     204                 :            :     ENTRY( "Contents 10" ),
     205                 :            :     ENTRY( "Illustration Index Heading" ),
     206                 :            :     ENTRY( "Illustration Index 1" ),
     207                 :            :     ENTRY( "Object index heading" ),
     208                 :            :     ENTRY( "Object index 1" ),
     209                 :            :     ENTRY( "Table index heading" ),
     210                 :            :     ENTRY( "Table index 1" ),
     211                 :            :     ENTRY( "Bibliography Heading" ),
     212                 :            :     ENTRY( "Bibliography 1" ),
     213                 :            :     ENTRY( "User Index 6" ),
     214                 :            :     ENTRY( "User Index 7" ),
     215                 :            :     ENTRY( "User Index 8" ),
     216                 :            :     ENTRY( "User Index 9" ),
     217                 :            :     ENTRY( "User Index 10" ), // STR_POCO_PRGM_TOX_USER10
     218                 :            :     { 0, NULL }
     219                 :            : };
     220                 :            : 
     221                 :            : const struct SwTableEntry DocProgNameTable [] =
     222                 :            : {
     223                 :            :     ENTRY( "Title" ), // STR_POCO_PRGM_DOC_TITEL
     224                 :            :     ENTRY( "Subtitle" ),
     225                 :            :     { 0, NULL }
     226                 :            : };
     227                 :            : 
     228                 :            : const struct SwTableEntry HTMLProgNameTable [] =
     229                 :            : {
     230                 :            :     ENTRY( "Quotations" ),
     231                 :            :     ENTRY( "Preformatted Text" ),
     232                 :            :     ENTRY( "Horizontal Line" ),
     233                 :            :     ENTRY( "List Contents" ),
     234                 :            :     ENTRY( "List Heading" ), // STR_POCO_PRGM_HTML_DT
     235                 :            :     { 0, NULL }
     236                 :            : };
     237                 :            : 
     238                 :            : const struct SwTableEntry FrmFmtProgNameTable [] =
     239                 :            : {
     240                 :            :     ENTRY( "Frame" ), // RES_POOLFRM_FRAME
     241                 :            :     ENTRY( "Graphics" ),
     242                 :            :     ENTRY( "OLE" ),
     243                 :            :     ENTRY( "Formula" ),
     244                 :            :     ENTRY( "Marginalia" ),
     245                 :            :     ENTRY( "Watermark" ),
     246                 :            :     ENTRY( "Labels" ), // RES_POOLFRM_LABEL
     247                 :            :     { 0, NULL }
     248                 :            : };
     249                 :            : 
     250                 :            : const struct SwTableEntry ChrFmtProgNameTable [] =
     251                 :            : {
     252                 :            :     ENTRY( "Footnote Symbol" ), // RES_POOLCHR_FOOTNOTE
     253                 :            :     ENTRY( "Page Number" ),
     254                 :            :     ENTRY( "Caption characters" ),
     255                 :            :     ENTRY( "Drop Caps" ),
     256                 :            :     ENTRY( "Numbering Symbols" ),
     257                 :            :     ENTRY( "Bullet Symbols" ),
     258                 :            :     ENTRY( "Internet link" ),
     259                 :            :     ENTRY( "Visited Internet Link" ),
     260                 :            :     ENTRY( "Placeholder" ),
     261                 :            :     ENTRY( "Index Link" ),
     262                 :            :     ENTRY( "Endnote Symbol" ),
     263                 :            :     ENTRY( "Line numbering" ),
     264                 :            :     ENTRY( "Main index entry" ),
     265                 :            :     ENTRY( "Footnote anchor" ),
     266                 :            :     ENTRY( "Endnote anchor" ),
     267                 :            :     ENTRY( "Rubies" ), // RES_POOLCHR_RUBYTEXT
     268                 :            :     ENTRY( "Vertical Numbering Symbols" ), // RES_POOLCHR_VERT_NUMBER
     269                 :            :     { 0, NULL }
     270                 :            : };
     271                 :            : 
     272                 :            : const struct SwTableEntry HTMLChrFmtProgNameTable [] =
     273                 :            : {
     274                 :            :     ENTRY( "Emphasis" ), // RES_POOLCHR_HTML_EMPHASIS
     275                 :            :     ENTRY( "Citation" ),
     276                 :            :     ENTRY( "Strong Emphasis" ),
     277                 :            :     ENTRY( "Source Text" ),
     278                 :            :     ENTRY( "Example" ),
     279                 :            :     ENTRY( "User Entry" ),
     280                 :            :     ENTRY( "Variable" ),
     281                 :            :     ENTRY( "Definition" ),
     282                 :            :     ENTRY( "Teletype" ), // RES_POOLCHR_HTML_TELETYPE
     283                 :            :     { 0, NULL }
     284                 :            : };
     285                 :            : 
     286                 :            : const struct SwTableEntry PageDescProgNameTable [] =
     287                 :            : {
     288                 :            :     ENTRY( "Standard" ), // STR_POOLPAGE_PRGM_STANDARD
     289                 :            :     ENTRY( "First Page" ),
     290                 :            :     ENTRY( "Left Page" ),
     291                 :            :     ENTRY( "Right Page" ),
     292                 :            :     ENTRY( "Envelope" ),
     293                 :            :     ENTRY( "Index" ),
     294                 :            :     ENTRY( "HTML" ),
     295                 :            :     ENTRY( "Footnote" ),
     296                 :            :     ENTRY( "Endnote" ), // STR_POOLPAGE_PRGM_ENDNOTE
     297                 :            :     ENTRY( "Landscape" ),
     298                 :            :     { 0, NULL }
     299                 :            : };
     300                 :            : 
     301                 :            : const struct SwTableEntry NumRuleProgNameTable [] =
     302                 :            : {
     303                 :            :     ENTRY( "Numbering 1" ), // STR_POOLNUMRULE_PRGM_NUM1
     304                 :            :     ENTRY( "Numbering 2" ),
     305                 :            :     ENTRY( "Numbering 3" ),
     306                 :            :     ENTRY( "Numbering 4" ),
     307                 :            :     ENTRY( "Numbering 5" ),
     308                 :            :     ENTRY( "List 1" ),
     309                 :            :     ENTRY( "List 2" ),
     310                 :            :     ENTRY( "List 3" ),
     311                 :            :     ENTRY( "List 4" ),
     312                 :            :     ENTRY( "List 5" ), // STR_POOLNUMRULE_PRGM_BUL5
     313                 :            :     { 0, NULL }
     314                 :            : };
     315                 :            : #undef ENTRY
     316                 :            : 
     317                 :       9081 : sal_Bool SwStyleNameMapper::SuffixIsUser ( const String & rString )
     318                 :            : {
     319                 :       9081 :     const sal_Unicode *pChar = rString.GetBuffer();
     320                 :       9081 :     sal_Int32 nLen = rString.Len();
     321                 :       9081 :     sal_Bool bRet = sal_False;
     322 [ +  + ][ -  + ]:       9081 :     if( nLen > 8 &&
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
         [ #  # ][ +  + ]
     323                 :       6231 :         pChar[nLen-7] == ' ' &&
     324                 :        963 :         pChar[nLen-6] == '(' &&
     325                 :          0 :         pChar[nLen-5] == 'u' &&
     326                 :          0 :         pChar[nLen-4] == 's' &&
     327                 :          0 :         pChar[nLen-3] == 'e' &&
     328                 :          0 :         pChar[nLen-2] == 'r' &&
     329                 :          0 :         pChar[nLen-1] == ')' )
     330                 :          0 :         bRet = sal_True;
     331                 :       9081 :     return bRet;
     332                 :            : }
     333                 :       7365 : void SwStyleNameMapper::CheckSuffixAndDelete ( String & rString )
     334                 :            : {
     335                 :       7365 :     const sal_Unicode *pChar = rString.GetBuffer();
     336                 :       7365 :     xub_StrLen nLen = rString.Len();
     337 [ +  + ][ -  + ]:       7365 :     if (nLen > 8 &&
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
         [ #  # ][ +  + ]
     338                 :       3309 :         pChar[nLen-7] == ' ' &&
     339                 :        310 :         pChar[nLen-6] == '(' &&
     340                 :          0 :         pChar[nLen-5] == 'u' &&
     341                 :          0 :         pChar[nLen-4] == 's' &&
     342                 :          0 :         pChar[nLen-3] == 'e' &&
     343                 :          0 :         pChar[nLen-2] == 'r' &&
     344                 :          0 :         pChar[nLen-1] == ')')
     345                 :            :     {
     346                 :          0 :         rString.Erase ( nLen - 7, 7 );
     347                 :            :     }
     348                 :       7365 : }
     349                 :     126181 : const NameToIdHash & SwStyleNameMapper::getHashTable ( SwGetPoolIdFromName eFlags, sal_Bool bProgName )
     350                 :            : {
     351                 :     126181 :     NameToIdHash *pHash = 0;
     352                 :            :     const boost::ptr_vector<String> *pStrings;
     353                 :            : 
     354   [ +  +  +  +  :     126181 :     switch ( eFlags )
                   +  - ]
     355                 :            :     {
     356                 :            :         case nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL:
     357                 :            :         {
     358                 :            :             sal_uInt16 nIndex;
     359                 :            :             sal_uInt16 nId;
     360                 :            : 
     361         [ +  + ]:      93664 :             pHash = bProgName ? pParaProgMap : pParaUIMap;
     362         [ +  + ]:      93664 :             if ( !pHash )
     363                 :            :             {
     364                 :            :                 pHash = new NameToIdHash ( RES_POOLCOLL_TEXT_END - RES_POOLCOLL_TEXT_BEGIN +
     365                 :            :                                            RES_POOLCOLL_LISTS_END - RES_POOLCOLL_LISTS_BEGIN +
     366                 :            :                                            RES_POOLCOLL_EXTRA_END - RES_POOLCOLL_EXTRA_BEGIN +
     367                 :            :                                            RES_POOLCOLL_REGISTER_END - RES_POOLCOLL_REGISTER_BEGIN +
     368                 :            :                                            RES_POOLCOLL_DOC_END - RES_POOLCOLL_DOC_BEGIN +
     369 [ +  - ][ +  - ]:        175 :                                            RES_POOLCOLL_HTML_END - RES_POOLCOLL_HTML_BEGIN );
     370         [ +  + ]:        175 :                 pStrings = bProgName ? &GetTextProgNameArray() : &GetTextUINameArray();
     371         [ +  + ]:       3675 :                 for ( nIndex = 0, nId = RES_POOLCOLL_TEXT_BEGIN ; nId < RES_POOLCOLL_TEXT_END ; nId++,nIndex++ )
     372         [ +  - ]:       3500 :                     (*pHash)[&((*pStrings)[nIndex])] = nId;
     373         [ +  + ]:        175 :                 pStrings = bProgName ? &GetListsProgNameArray() : &GetListsUINameArray();
     374         [ +  + ]:       7350 :                 for ( nIndex = 0, nId = RES_POOLCOLL_LISTS_BEGIN ; nId < RES_POOLCOLL_LISTS_END ; nId++,nIndex++ )
     375         [ +  - ]:       7175 :                     (*pHash)[&((*pStrings)[nIndex])] = nId;
     376         [ +  + ]:        175 :                 pStrings = bProgName ? &GetExtraProgNameArray() : &GetExtraUINameArray();
     377         [ +  + ]:       3325 :                 for ( nIndex = 0, nId = RES_POOLCOLL_EXTRA_BEGIN ; nId < RES_POOLCOLL_EXTRA_END ; nId++,nIndex++ )
     378         [ +  - ]:       3150 :                     (*pHash)[&((*pStrings)[nIndex])] = nId;
     379         [ +  + ]:        175 :                 pStrings = bProgName ? &GetRegisterProgNameArray() : &GetRegisterUINameArray();
     380         [ +  + ]:       6475 :                 for ( nIndex = 0, nId = RES_POOLCOLL_REGISTER_BEGIN ; nId < RES_POOLCOLL_REGISTER_END ; nId++,nIndex++ )
     381         [ +  - ]:       6300 :                     (*pHash)[&((*pStrings)[nIndex])] = nId;
     382         [ +  + ]:        175 :                 pStrings = bProgName ? &GetDocProgNameArray() : &GetDocUINameArray();
     383         [ +  + ]:        525 :                 for ( nIndex = 0, nId = RES_POOLCOLL_DOC_BEGIN ; nId < RES_POOLCOLL_DOC_END ; nId++,nIndex++ )
     384         [ +  - ]:        350 :                     (*pHash)[&((*pStrings)[nIndex])] = nId;
     385         [ +  + ]:        175 :                 pStrings = bProgName ? &GetHTMLProgNameArray() : &GetHTMLUINameArray();
     386         [ +  + ]:       1050 :                 for ( nIndex = 0, nId = RES_POOLCOLL_HTML_BEGIN ; nId < RES_POOLCOLL_HTML_END ; nId++,nIndex++ )
     387         [ +  - ]:        875 :                     (*pHash)[&((*pStrings)[nIndex])] = nId;
     388                 :            : 
     389         [ +  + ]:        175 :                 if ( bProgName )
     390                 :         85 :                     pParaProgMap = pHash;
     391                 :            :                 else
     392                 :         90 :                     pParaUIMap = pHash;
     393                 :            :             }
     394                 :            :         }
     395                 :      93664 :         break;
     396                 :            :         case nsSwGetPoolIdFromName::GET_POOLID_CHRFMT:
     397                 :            :         {
     398         [ +  + ]:      18321 :             pHash = bProgName ? pCharProgMap : pCharUIMap;
     399         [ +  + ]:      18321 :             if ( !pHash )
     400                 :            :             {
     401                 :            :                 sal_uInt16 nIndex;
     402                 :            :                 sal_uInt16 nId;
     403                 :            : 
     404                 :            :                 pHash = new NameToIdHash ( RES_POOLCHR_NORMAL_END - RES_POOLCHR_NORMAL_BEGIN +
     405 [ +  - ][ +  - ]:        118 :                                            RES_POOLCHR_HTML_END - RES_POOLCHR_HTML_BEGIN );
     406         [ +  + ]:        118 :                 pStrings = bProgName ? &GetChrFmtProgNameArray() : &GetChrFmtUINameArray();
     407         [ +  + ]:       2124 :                 for ( nIndex = 0, nId = RES_POOLCHR_NORMAL_BEGIN ; nId < RES_POOLCHR_NORMAL_END ; nId++,nIndex++ )
     408         [ +  - ]:       2006 :                     (*pHash)[&((*pStrings)[nIndex])] = nId;
     409         [ +  + ]:        118 :                 pStrings = bProgName ? &GetHTMLChrFmtProgNameArray() : &GetHTMLChrFmtUINameArray();
     410         [ +  + ]:       1180 :                 for ( nIndex = 0, nId = RES_POOLCHR_HTML_BEGIN ; nId < RES_POOLCHR_HTML_END ; nId++,nIndex++ )
     411         [ +  - ]:       1062 :                     (*pHash)[&((*pStrings)[nIndex])] = nId;
     412         [ +  + ]:        118 :                 if (bProgName )
     413                 :         55 :                     pCharProgMap = pHash;
     414                 :            :                 else
     415                 :         63 :                     pCharUIMap = pHash;
     416                 :            :             }
     417                 :            :         }
     418                 :      18321 :         break;
     419                 :            :         case nsSwGetPoolIdFromName::GET_POOLID_FRMFMT:
     420                 :            :         {
     421         [ +  + ]:       2951 :             pHash = bProgName ? pFrameProgMap : pFrameUIMap;
     422         [ +  + ]:       2951 :             if ( !pHash )
     423                 :            :             {
     424 [ +  - ][ +  - ]:        106 :                 pHash = new NameToIdHash ( RES_POOLFRM_END - RES_POOLFRM_BEGIN );
     425         [ +  + ]:        106 :                 pStrings = bProgName ? &GetFrmFmtProgNameArray() : &GetFrmFmtUINameArray();
     426         [ +  + ]:        848 :                 for ( sal_uInt16 nIndex=0,nId = RES_POOLFRM_BEGIN ; nId < RES_POOLFRM_END ; nId++,nIndex++ )
     427         [ +  - ]:        742 :                     (*pHash)[&((*pStrings)[nIndex])] = nId;
     428         [ +  + ]:        106 :                 if ( bProgName )
     429                 :         53 :                     pFrameProgMap = pHash;
     430                 :            :                 else
     431                 :         53 :                     pFrameUIMap = pHash;
     432                 :            :             }
     433                 :            :         }
     434                 :       2951 :         break;
     435                 :            :         case nsSwGetPoolIdFromName::GET_POOLID_PAGEDESC:
     436                 :            :         {
     437         [ +  + ]:       8196 :             pHash = bProgName ? pPageProgMap : pPageUIMap;
     438         [ +  + ]:       8196 :             if ( !pHash )
     439                 :            :             {
     440 [ +  - ][ +  - ]:        122 :                 pHash = new NameToIdHash ( RES_POOLPAGE_END - RES_POOLPAGE_BEGIN );
     441         [ +  + ]:        122 :                 pStrings = bProgName ? &GetPageDescProgNameArray() : &GetPageDescUINameArray();
     442         [ +  + ]:       1342 :                 for ( sal_uInt16 nIndex=0,nId = RES_POOLPAGE_BEGIN ; nId < RES_POOLPAGE_END ; nId++,nIndex++ )
     443         [ +  - ]:       1220 :                     (*pHash)[&((*pStrings)[nIndex])] = nId;
     444         [ +  + ]:        122 :                 if ( bProgName )
     445                 :         62 :                     pPageProgMap = pHash;
     446                 :            :                 else
     447                 :         60 :                     pPageUIMap = pHash;
     448                 :            :             }
     449                 :            :         }
     450                 :       8196 :         break;
     451                 :            :         case nsSwGetPoolIdFromName::GET_POOLID_NUMRULE:
     452                 :            :         {
     453         [ +  + ]:       3049 :             pHash = bProgName ? pNumRuleProgMap : pNumRuleUIMap;
     454         [ +  + ]:       3049 :             if ( !pHash )
     455                 :            :             {
     456 [ +  - ][ +  - ]:        106 :                 pHash = new NameToIdHash ( RES_POOLNUMRULE_END - RES_POOLNUMRULE_BEGIN );
     457         [ +  + ]:        106 :                 pStrings = bProgName ? &GetNumRuleProgNameArray() : &GetNumRuleUINameArray();
     458         [ +  + ]:       1166 :                 for ( sal_uInt16 nIndex=0,nId = RES_POOLNUMRULE_BEGIN ; nId < RES_POOLNUMRULE_END ; nId++,nIndex++ )
     459                 :            :                 {
     460         [ +  - ]:       1060 :                     (*pHash)[&((*pStrings)[nIndex])] = nId;
     461                 :            :                 }
     462         [ +  + ]:        106 :                 if ( bProgName )
     463                 :         53 :                     pNumRuleProgMap = pHash;
     464                 :            :                 else
     465                 :         53 :                     pNumRuleUIMap = pHash;
     466                 :            :             }
     467                 :            :         }
     468                 :       3049 :         break;
     469                 :            :     }
     470                 :            : #ifdef _NEED_TO_DEBUG_MAPPING
     471                 :            :     static sal_Bool bTested = sal_False;
     472                 :            :     if ( !bTested )
     473                 :            :     {
     474                 :            :         bTested = sal_True;
     475                 :            :         {
     476                 :            :             for ( sal_uInt16 nIndex = 0, nId = RES_POOLCOLL_TEXT_BEGIN ; nId < RES_POOLCOLL_TEXT_END ; nId++,nIndex++ )
     477                 :            :             {
     478                 :            :                 String aString, bString;
     479                 :            :                 FillUIName ( nId, aString );
     480                 :            :                 bString = GetProgName ( nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL, aString );
     481                 :            :                 sal_uInt16 nNewId = GetPoolIdFromProgName ( bString, nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL );
     482                 :            :                 FillProgName ( nNewId, aString );
     483                 :            :                 bString = GetUIName ( aString, nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL );
     484                 :            :                 nNewId = GetPoolIdFromUIName ( aString, nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL );
     485                 :            :                 if ( nNewId != nId )
     486                 :            :                     abort();
     487                 :            :             }
     488                 :            :             for ( nIndex = 0, nId = RES_POOLCOLL_LISTS_BEGIN ; nId < RES_POOLCOLL_LISTS_END ; nId++,nIndex++ )
     489                 :            :             {
     490                 :            :                 String aString, bString;
     491                 :            :                 FillUIName ( nId, aString );
     492                 :            :                 bString = GetProgName ( nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL, aString );
     493                 :            :                 sal_uInt16 nNewId = GetPoolIdFromProgName ( bString, nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL );
     494                 :            :                 FillProgName ( nNewId, aString );
     495                 :            :                 bString = GetUIName ( aString, nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL );
     496                 :            :                 nNewId = GetPoolIdFromUIName ( aString, nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL );
     497                 :            :                 if ( nNewId != nId )
     498                 :            :                     abort();
     499                 :            :             }
     500                 :            :             for ( nIndex = 0, nId = RES_POOLCOLL_EXTRA_BEGIN ; nId < RES_POOLCOLL_EXTRA_END ; nId++,nIndex++ )
     501                 :            :             {
     502                 :            :                 String aString, bString;
     503                 :            :                 FillUIName ( nId, aString );
     504                 :            :                 bString = GetProgName ( nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL, aString );
     505                 :            :                 sal_uInt16 nNewId = GetPoolIdFromProgName ( bString, nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL );
     506                 :            :                 FillProgName ( nNewId, aString );
     507                 :            :                 bString = GetUIName ( aString, nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL );
     508                 :            :                 nNewId = GetPoolIdFromUIName ( aString, nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL );
     509                 :            :                 if ( nNewId != nId )
     510                 :            :                     abort();
     511                 :            :             }
     512                 :            :             for ( nIndex = 0, nId = RES_POOLCOLL_REGISTER_BEGIN ; nId < RES_POOLCOLL_REGISTER_END ; nId++,nIndex++ )
     513                 :            :             {
     514                 :            :                 String aString, bString;
     515                 :            :                 FillUIName ( nId, aString );
     516                 :            :                 bString = GetProgName ( nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL, aString );
     517                 :            :                 sal_uInt16 nNewId = GetPoolIdFromProgName ( bString, nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL );
     518                 :            :                 FillProgName ( nNewId, aString );
     519                 :            :                 bString = GetUIName ( aString, nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL );
     520                 :            :                 nNewId = GetPoolIdFromUIName ( aString, nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL );
     521                 :            :                 if ( nNewId != nId )
     522                 :            :                     abort();
     523                 :            :             }
     524                 :            :             for ( nIndex = 0, nId = RES_POOLCOLL_DOC_BEGIN ; nId < RES_POOLCOLL_DOC_END ; nId++,nIndex++ )
     525                 :            :             {
     526                 :            :                 String aString, bString;
     527                 :            :                 FillUIName ( nId, aString );
     528                 :            :                 bString = GetProgName ( nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL, aString );
     529                 :            :                 sal_uInt16 nNewId = GetPoolIdFromProgName ( bString, nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL );
     530                 :            :                 FillProgName ( nNewId, aString );
     531                 :            :                 bString = GetUIName ( aString, nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL );
     532                 :            :                 nNewId = GetPoolIdFromUIName ( aString, nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL );
     533                 :            :                 if ( nNewId != nId )
     534                 :            :                     abort();
     535                 :            :             }
     536                 :            :             for ( nIndex = 0, nId = RES_POOLCOLL_HTML_BEGIN ; nId < RES_POOLCOLL_HTML_END ; nId++,nIndex++ )
     537                 :            :             {
     538                 :            :                 String aString, bString;
     539                 :            :                 FillUIName ( nId, aString );
     540                 :            :                 bString = GetProgName ( nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL, aString );
     541                 :            :                 sal_uInt16 nNewId = GetPoolIdFromProgName ( bString, nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL );
     542                 :            :                 FillProgName ( nNewId, aString );
     543                 :            :                 bString = GetUIName ( aString, nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL );
     544                 :            :                 nNewId = GetPoolIdFromUIName ( aString, nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL );
     545                 :            :                 if ( nNewId != nId )
     546                 :            :                     abort();
     547                 :            :             }
     548                 :            :         }
     549                 :            :         {
     550                 :            :             for ( sal_uInt16 nIndex = 0, nId = RES_POOLCHR_NORMAL_BEGIN ; nId < RES_POOLCHR_NORMAL_END ; nId++,nIndex++ )
     551                 :            :             {
     552                 :            :                 String aString, bString;
     553                 :            :                 FillUIName ( nId, aString );
     554                 :            :                 bString = GetProgName ( nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL, aString );
     555                 :            :                 sal_uInt16 nNewId = GetPoolIdFromProgName ( bString, nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL );
     556                 :            :                 FillProgName ( nNewId, aString );
     557                 :            :                 bString = GetUIName ( aString, nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL );
     558                 :            :                 nNewId = GetPoolIdFromUIName ( aString, nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL );
     559                 :            :                 if ( nNewId != nId )
     560                 :            :                     abort();
     561                 :            :             }
     562                 :            :             for ( nIndex = 0, nId = RES_POOLCHR_HTML_BEGIN ; nId < RES_POOLCHR_HTML_END ; nId++,nIndex++ )
     563                 :            :             {
     564                 :            :                 String aString, bString;
     565                 :            :                 FillUIName ( nId, aString );
     566                 :            :                 bString = GetProgName ( nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL, aString );
     567                 :            :                 sal_uInt16 nNewId = GetPoolIdFromProgName ( bString, nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL );
     568                 :            :                 FillProgName ( nNewId, aString );
     569                 :            :                 bString = GetUIName ( aString, nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL );
     570                 :            :                 nNewId = GetPoolIdFromUIName ( aString, nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL );
     571                 :            :                 if ( nNewId != nId )
     572                 :            :                     abort();
     573                 :            :             }
     574                 :            :         }
     575                 :            :         {
     576                 :            :             for ( sal_uInt16 nIndex=0,nId = RES_POOLFRM_BEGIN ; nId < RES_POOLFRM_END ; nId++,nIndex++ )
     577                 :            :             {
     578                 :            :                 String aString, bString;
     579                 :            :                 FillUIName ( nId, aString );
     580                 :            :                 bString = GetProgName ( nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL, aString );
     581                 :            :                 sal_uInt16 nNewId = GetPoolIdFromProgName ( bString, nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL );
     582                 :            :                 FillProgName ( nNewId, aString );
     583                 :            :                 bString = GetUIName ( aString, nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL );
     584                 :            :                 nNewId = GetPoolIdFromUIName ( aString, nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL );
     585                 :            :                 if ( nNewId != nId )
     586                 :            :                     abort();
     587                 :            :             }
     588                 :            :         }
     589                 :            :         {
     590                 :            :             for ( sal_uInt16 nIndex=0,nId = RES_POOLPAGE_BEGIN ; nId < RES_POOLPAGE_END ; nId++,nIndex++ )
     591                 :            :             {
     592                 :            :                 String aString, bString;
     593                 :            :                 FillUIName ( nId, aString );
     594                 :            :                 bString = GetProgName ( nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL, aString );
     595                 :            :                 sal_uInt16 nNewId = GetPoolIdFromProgName ( bString, nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL );
     596                 :            :                 FillProgName ( nNewId, aString );
     597                 :            :                 bString = GetUIName ( aString, nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL );
     598                 :            :                 nNewId = GetPoolIdFromUIName ( aString, nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL );
     599                 :            :                 if ( nNewId != nId )
     600                 :            :                     abort();
     601                 :            :             }
     602                 :            :         }
     603                 :            :         {
     604                 :            :             for ( sal_uInt16 nIndex=0,nId = RES_POOLNUMRULE_BEGIN ; nId < RES_POOLNUMRULE_END ; nId++,nIndex++ )
     605                 :            :             {
     606                 :            :                 String aString, bString;
     607                 :            :                 FillUIName ( nId, aString );
     608                 :            :                 bString = GetProgName ( nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL, aString );
     609                 :            :                 sal_uInt16 nNewId = GetPoolIdFromProgName ( bString, nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL );
     610                 :            :                 FillProgName ( nNewId, aString );
     611                 :            :                 bString = GetUIName ( aString, nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL );
     612                 :            :                 nNewId = GetPoolIdFromUIName ( aString, nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL );
     613                 :            :                 if ( nNewId != nId )
     614                 :            :                     abort();
     615                 :            :             }
     616                 :            :         }
     617                 :            :     }
     618                 :            : #endif
     619                 :     126181 :     return *pHash;
     620                 :            : }
     621                 :            : // This gets the UI Name from the programmatic name
     622                 :         75 : const String& SwStyleNameMapper::GetUIName ( const String& rName, SwGetPoolIdFromName eFlags )
     623                 :            : {
     624                 :         75 :     sal_uInt16 nId = GetPoolIdFromProgName ( rName, eFlags );
     625         [ -  + ]:         75 :     return nId != USHRT_MAX ? GetUIName( nId, rName ) : rName;
     626                 :            : }
     627                 :            : 
     628                 :            : 
     629                 :            : // Get the programmatic Name from the UI name
     630                 :        227 : const String& SwStyleNameMapper::GetProgName( const String& rName, SwGetPoolIdFromName eFlags )
     631                 :            : {
     632                 :        227 :     sal_uInt16 nId = GetPoolIdFromUIName ( rName, eFlags );
     633         [ +  + ]:        227 :     return nId != USHRT_MAX ? GetProgName( nId, rName ) : rName;
     634                 :            : }
     635                 :            : 
     636                 :            : // Get the programmatic name from the UI name in rName and put it into rFillName
     637                 :      34175 : void SwStyleNameMapper::FillProgName ( const String& rName, String& rFillName, SwGetPoolIdFromName eFlags, sal_Bool bDisambiguate )
     638                 :            : {
     639                 :      34175 :     sal_uInt16 nId = GetPoolIdFromUIName ( rName, eFlags );
     640 [ +  + ][ +  - ]:      34175 :     if ( bDisambiguate && nId == USHRT_MAX )
     641                 :            :     {
     642                 :            :         // rName isn't in our UI name table...check if it's in the programmatic one
     643                 :       9081 :         nId = GetPoolIdFromProgName ( rName, eFlags );
     644                 :            : 
     645                 :       9081 :         rFillName = rName;
     646         [ +  - ]:      18162 :         if (nId == USHRT_MAX )
     647                 :            :         {
     648                 :            :             // It isn't ...make sure the suffix isn't already " (user)"...if it is,
     649                 :            :             // we need to add another one
     650         [ -  + ]:       9081 :             if ( SuffixIsUser ( rFillName ) )
     651                 :          0 :                 rFillName.AppendAscii ( RTL_CONSTASCII_STRINGPARAM ( " (user)" ) );
     652                 :            :         }
     653                 :            :         else
     654                 :            :         {
     655                 :            :             // It's in the programmatic name table...append suffix
     656                 :          0 :             rFillName.AppendAscii ( RTL_CONSTASCII_STRINGPARAM ( " (user)" ) );
     657                 :            :         }
     658                 :            :     }
     659                 :            :     else
     660                 :            :     {
     661                 :            :         // If we aren't trying to disambiguate, then just do a normal fill
     662                 :      25094 :         fillNameFromId ( nId, rFillName, sal_True);
     663                 :            :     }
     664                 :      34175 : }
     665                 :            : // Get the UI name from the programmatic name in rName and put it into rFillName
     666                 :      32406 : void SwStyleNameMapper::FillUIName ( const String& rName, String& rFillName, SwGetPoolIdFromName eFlags, sal_Bool bDisambiguate )
     667                 :            : {
     668                 :      32406 :     sal_uInt16 nId = GetPoolIdFromProgName ( rName, eFlags );
     669 [ +  + ][ +  - ]:      32406 :     if ( bDisambiguate && nId == USHRT_MAX )
     670                 :            :     {
     671                 :       7365 :         rFillName = rName;
     672                 :            :         // rName isn't in our Prog name table...check if it has a " (user)" suffix, if so remove it
     673                 :       7365 :         CheckSuffixAndDelete ( rFillName );
     674                 :            :     }
     675                 :            :     else
     676                 :            :     {
     677                 :            :         // If we aren't trying to disambiguate, then just do a normal fill
     678                 :      25041 :         fillNameFromId ( nId, rFillName, sal_False);
     679                 :            :     }
     680                 :      32406 : }
     681                 :            : 
     682                 :        262 : const String& SwStyleNameMapper::getNameFromId( sal_uInt16 nId, const String& rFillName, sal_Bool bProgName )
     683                 :            : {
     684                 :        262 :     sal_uInt16 nStt = 0;
     685                 :        262 :     const boost::ptr_vector<String>* pStrArr = 0;
     686                 :            : 
     687   [ +  -  +  -  :        262 :     switch( (USER_FMT | COLL_GET_RANGE_BITS | POOLGRP_NOCOLLID) & nId )
          -  -  +  +  +  
                   -  - ]
     688                 :            :     {
     689                 :            :     case COLL_TEXT_BITS:
     690 [ +  - ][ +  - ]:        220 :         if( RES_POOLCOLL_TEXT_BEGIN <= nId && nId < RES_POOLCOLL_TEXT_END )
     691                 :            :         {
     692         [ -  + ]:        220 :             pStrArr = bProgName ? &GetTextProgNameArray() : &GetTextUINameArray();
     693                 :        220 :             nStt = RES_POOLCOLL_TEXT_BEGIN;
     694                 :            :         }
     695                 :        220 :         break;
     696                 :            :     case COLL_LISTS_BITS:
     697 [ #  # ][ #  # ]:          0 :         if( RES_POOLCOLL_LISTS_BEGIN <= nId && nId < RES_POOLCOLL_LISTS_END )
     698                 :            :         {
     699         [ #  # ]:          0 :             pStrArr = bProgName ? &GetListsProgNameArray() : &GetListsUINameArray();
     700                 :          0 :             nStt = RES_POOLCOLL_LISTS_BEGIN;
     701                 :            :         }
     702                 :          0 :         break;
     703                 :            :     case COLL_EXTRA_BITS:
     704 [ +  - ][ +  - ]:         20 :         if( RES_POOLCOLL_EXTRA_BEGIN <= nId && nId < RES_POOLCOLL_EXTRA_END )
     705                 :            :         {
     706         [ -  + ]:         20 :             pStrArr = bProgName ? &GetExtraProgNameArray() : &GetExtraUINameArray();
     707                 :         20 :             nStt = RES_POOLCOLL_EXTRA_BEGIN;
     708                 :            :         }
     709                 :         20 :         break;
     710                 :            :     case COLL_REGISTER_BITS:
     711 [ #  # ][ #  # ]:          0 :         if( RES_POOLCOLL_REGISTER_BEGIN <= nId && nId < RES_POOLCOLL_REGISTER_END )
     712                 :            :         {
     713         [ #  # ]:          0 :             pStrArr = bProgName ? &GetRegisterProgNameArray() : &GetRegisterUINameArray();
     714                 :          0 :             nStt = RES_POOLCOLL_REGISTER_BEGIN;
     715                 :            :         }
     716                 :          0 :         break;
     717                 :            :     case COLL_DOC_BITS:
     718 [ #  # ][ #  # ]:          0 :         if( RES_POOLCOLL_DOC_BEGIN <= nId && nId < RES_POOLCOLL_DOC_END )
     719                 :            :         {
     720         [ #  # ]:          0 :             pStrArr = bProgName ? &GetDocProgNameArray() : &GetDocUINameArray();
     721                 :          0 :             nStt = RES_POOLCOLL_DOC_BEGIN;
     722                 :            :         }
     723                 :          0 :         break;
     724                 :            :     case COLL_HTML_BITS:
     725 [ #  # ][ #  # ]:          0 :         if( RES_POOLCOLL_HTML_BEGIN <= nId && nId < RES_POOLCOLL_HTML_END )
     726                 :            :         {
     727         [ #  # ]:          0 :             pStrArr = bProgName ? &GetHTMLProgNameArray() : &GetHTMLUINameArray();
     728                 :          0 :             nStt = RES_POOLCOLL_HTML_BEGIN;
     729                 :            :         }
     730                 :          0 :         break;
     731                 :            :     case POOLGRP_CHARFMT:
     732 [ +  - ][ -  + ]:          8 :         if( RES_POOLCHR_NORMAL_BEGIN <= nId && nId < RES_POOLCHR_NORMAL_END )
     733                 :            :         {
     734         [ #  # ]:          0 :             pStrArr = bProgName ? &GetChrFmtProgNameArray() : &GetChrFmtUINameArray();
     735                 :          0 :             nStt = RES_POOLCHR_NORMAL_BEGIN;
     736                 :            :         }
     737 [ +  - ][ +  - ]:          8 :         else if( RES_POOLCHR_HTML_BEGIN <= nId && nId < RES_POOLCHR_HTML_END )
     738                 :            :         {
     739         [ +  - ]:          8 :             pStrArr = bProgName ? &GetHTMLChrFmtProgNameArray() : &GetHTMLChrFmtUINameArray();
     740                 :          8 :             nStt = RES_POOLCHR_HTML_BEGIN;
     741                 :            :         }
     742                 :          8 :         break;
     743                 :            :     case POOLGRP_FRAMEFMT:
     744 [ +  - ][ +  - ]:         12 :         if( RES_POOLFRM_BEGIN <= nId && nId < RES_POOLFRM_END )
     745                 :            :         {
     746         [ +  - ]:         12 :             pStrArr = bProgName ? &GetFrmFmtProgNameArray() : &GetFrmFmtUINameArray();
     747                 :         12 :             nStt = RES_POOLFRM_BEGIN;
     748                 :            :         }
     749                 :         12 :         break;
     750                 :            :     case POOLGRP_PAGEDESC:
     751 [ +  - ][ +  - ]:          2 :         if( RES_POOLPAGE_BEGIN <= nId && nId < RES_POOLPAGE_END )
     752                 :            :         {
     753         [ +  - ]:          2 :             pStrArr = bProgName ? &GetPageDescProgNameArray() : &GetPageDescUINameArray();
     754                 :          2 :             nStt = RES_POOLPAGE_BEGIN;
     755                 :            :         }
     756                 :          2 :         break;
     757                 :            :     case POOLGRP_NUMRULE:
     758 [ #  # ][ #  # ]:          0 :         if( RES_POOLNUMRULE_BEGIN <= nId && nId < RES_POOLNUMRULE_END )
     759                 :            :         {
     760         [ #  # ]:          0 :             pStrArr = bProgName ? &GetNumRuleProgNameArray() : &GetNumRuleUINameArray();
     761                 :          0 :             nStt = RES_POOLNUMRULE_BEGIN;
     762                 :            :         }
     763                 :          0 :         break;
     764                 :            :     }
     765         [ +  - ]:        262 :     return pStrArr ? (pStrArr->operator[] ( nId - nStt ) ) : rFillName;
     766                 :            : }
     767                 :      51309 : void SwStyleNameMapper::fillNameFromId( sal_uInt16 nId, String& rFillName, sal_Bool bProgName )
     768                 :            : {
     769                 :      51309 :     sal_uInt16 nStt = 0;
     770                 :      51309 :     const boost::ptr_vector<String>* pStrArr = 0;
     771                 :            : 
     772   [ +  +  +  +  :      51309 :     switch( (USER_FMT | COLL_GET_RANGE_BITS | POOLGRP_NOCOLLID) & nId )
          +  +  +  +  +  
                   +  - ]
     773                 :            :     {
     774                 :            :     case COLL_TEXT_BITS:
     775 [ +  - ][ +  - ]:      26744 :         if( RES_POOLCOLL_TEXT_BEGIN <= nId && nId < RES_POOLCOLL_TEXT_END )
     776                 :            :         {
     777         [ +  + ]:      26744 :             pStrArr = bProgName ? &GetTextProgNameArray() : &GetTextUINameArray();
     778                 :      26744 :             nStt = RES_POOLCOLL_TEXT_BEGIN;
     779                 :            :         }
     780                 :      26744 :         break;
     781                 :            :     case COLL_LISTS_BITS:
     782 [ +  - ][ +  - ]:       4261 :         if( RES_POOLCOLL_LISTS_BEGIN <= nId && nId < RES_POOLCOLL_LISTS_END )
     783                 :            :         {
     784         [ +  + ]:       4261 :             pStrArr = bProgName ? &GetListsProgNameArray() : &GetListsUINameArray();
     785                 :       4261 :             nStt = RES_POOLCOLL_LISTS_BEGIN;
     786                 :            :         }
     787                 :       4261 :         break;
     788                 :            :     case COLL_EXTRA_BITS:
     789 [ +  - ][ +  - ]:       4119 :         if( RES_POOLCOLL_EXTRA_BEGIN <= nId && nId < RES_POOLCOLL_EXTRA_END )
     790                 :            :         {
     791         [ +  + ]:       4119 :             pStrArr = bProgName ? &GetExtraProgNameArray() : &GetExtraUINameArray();
     792                 :       4119 :             nStt = RES_POOLCOLL_EXTRA_BEGIN;
     793                 :            :         }
     794                 :       4119 :         break;
     795                 :            :     case COLL_REGISTER_BITS:
     796 [ +  - ][ +  - ]:       4204 :         if( RES_POOLCOLL_REGISTER_BEGIN <= nId && nId < RES_POOLCOLL_REGISTER_END )
     797                 :            :         {
     798         [ +  + ]:       4204 :             pStrArr = bProgName ? &GetRegisterProgNameArray() : &GetRegisterUINameArray();
     799                 :       4204 :             nStt = RES_POOLCOLL_REGISTER_BEGIN;
     800                 :            :         }
     801                 :       4204 :         break;
     802                 :            :     case COLL_DOC_BITS:
     803 [ +  - ][ +  - ]:        348 :         if( RES_POOLCOLL_DOC_BEGIN <= nId && nId < RES_POOLCOLL_DOC_END )
     804                 :            :         {
     805         [ +  + ]:        348 :             pStrArr = bProgName ? &GetDocProgNameArray() : &GetDocUINameArray();
     806                 :        348 :             nStt = RES_POOLCOLL_DOC_BEGIN;
     807                 :            :         }
     808                 :        348 :         break;
     809                 :            :     case COLL_HTML_BITS:
     810 [ +  - ][ +  - ]:       1720 :         if( RES_POOLCOLL_HTML_BEGIN <= nId && nId < RES_POOLCOLL_HTML_END )
     811                 :            :         {
     812         [ +  + ]:       1720 :             pStrArr = bProgName ? &GetHTMLProgNameArray() : &GetHTMLUINameArray();
     813                 :       1720 :             nStt = RES_POOLCOLL_HTML_BEGIN;
     814                 :            :         }
     815                 :       1720 :         break;
     816                 :            :     case POOLGRP_CHARFMT:
     817 [ +  - ][ +  + ]:       3560 :         if( RES_POOLCHR_NORMAL_BEGIN <= nId && nId < RES_POOLCHR_NORMAL_END )
     818                 :            :         {
     819         [ +  + ]:       2443 :             pStrArr = bProgName ? &GetChrFmtProgNameArray() : &GetChrFmtUINameArray();
     820                 :       2443 :             nStt = RES_POOLCHR_NORMAL_BEGIN;
     821                 :            :         }
     822 [ +  - ][ +  - ]:       1117 :         else if( RES_POOLCHR_HTML_BEGIN <= nId && nId < RES_POOLCHR_HTML_END )
     823                 :            :         {
     824         [ +  + ]:       1117 :             pStrArr = bProgName ? &GetHTMLChrFmtProgNameArray() : &GetHTMLChrFmtUINameArray();
     825                 :       1117 :             nStt = RES_POOLCHR_HTML_BEGIN;
     826                 :            :         }
     827                 :       3560 :         break;
     828                 :            :     case POOLGRP_FRAMEFMT:
     829 [ +  - ][ +  - ]:       1363 :         if( RES_POOLFRM_BEGIN <= nId && nId < RES_POOLFRM_END )
     830                 :            :         {
     831         [ +  + ]:       1363 :             pStrArr = bProgName ? &GetFrmFmtProgNameArray() : &GetFrmFmtUINameArray();
     832                 :       1363 :             nStt = RES_POOLFRM_BEGIN;
     833                 :            :         }
     834                 :       1363 :         break;
     835                 :            :     case POOLGRP_PAGEDESC:
     836 [ +  - ][ +  - ]:       4496 :         if( RES_POOLPAGE_BEGIN <= nId && nId < RES_POOLPAGE_END )
     837                 :            :         {
     838         [ +  + ]:       4496 :             pStrArr = bProgName ? &GetPageDescProgNameArray() : &GetPageDescUINameArray();
     839                 :       4496 :             nStt = RES_POOLPAGE_BEGIN;
     840                 :            :         }
     841                 :       4496 :         break;
     842                 :            :     case POOLGRP_NUMRULE:
     843 [ +  - ][ +  - ]:        494 :         if( RES_POOLNUMRULE_BEGIN <= nId && nId < RES_POOLNUMRULE_END )
     844                 :            :         {
     845         [ +  + ]:        494 :             pStrArr = bProgName ? &GetNumRuleProgNameArray() : &GetNumRuleUINameArray();
     846                 :        494 :             nStt = RES_POOLNUMRULE_BEGIN;
     847                 :            :         }
     848                 :        494 :         break;
     849                 :            :     }
     850         [ +  - ]:      51309 :     if (pStrArr)
     851                 :      51309 :         rFillName = (pStrArr->operator[] ( nId - nStt ) );
     852                 :      51309 : }
     853                 :            : // Get the UI Name from the pool ID
     854                 :       1174 : void SwStyleNameMapper::FillUIName ( sal_uInt16 nId, String& rFillName )
     855                 :            : {
     856                 :       1174 :     fillNameFromId ( nId, rFillName, sal_False );
     857                 :       1174 : }
     858                 :            : // Get the UI Name from the pool ID
     859                 :        240 : const String& SwStyleNameMapper::GetUIName ( sal_uInt16 nId, const String& rName )
     860                 :            : {
     861                 :        240 :     return getNameFromId ( nId, rName, sal_False );
     862                 :            : }
     863                 :            : 
     864                 :            : // Get the programmatic Name from the pool ID
     865                 :          0 : void SwStyleNameMapper::FillProgName ( sal_uInt16 nId, String& rFillName )
     866                 :            : {
     867                 :          0 :     fillNameFromId ( nId, rFillName, sal_True );
     868                 :          0 : }
     869                 :            : // Get the programmatic Name from the pool ID
     870                 :         22 : const String& SwStyleNameMapper::GetProgName ( sal_uInt16 nId, const String& rName )
     871                 :            : {
     872                 :         22 :     return getNameFromId ( nId, rName, sal_True );
     873                 :            : }
     874                 :            : // This gets the PoolId from the UI Name
     875                 :      84619 : sal_uInt16 SwStyleNameMapper::GetPoolIdFromUIName( const String& rName, SwGetPoolIdFromName eFlags )
     876                 :            : {
     877         [ +  - ]:      84619 :     const NameToIdHash & rHashMap = getHashTable ( eFlags, sal_False );
     878         [ +  - ]:      84619 :     NameToIdHash::const_iterator aIter = rHashMap.find ( &rName );
     879 [ +  - ][ +  + ]:      84619 :     return aIter != rHashMap.end() ? (*aIter).second : USHRT_MAX;
                 [ +  - ]
     880                 :            : }
     881                 :            : // Get the Pool ID from the programmatic name
     882                 :      41562 : sal_uInt16 SwStyleNameMapper::GetPoolIdFromProgName( const String& rName, SwGetPoolIdFromName eFlags )
     883                 :            : {
     884         [ +  - ]:      41562 :     const NameToIdHash & rHashMap = getHashTable ( eFlags, sal_True );
     885         [ +  - ]:      41562 :     NameToIdHash::const_iterator aIter = rHashMap.find ( &rName );
     886 [ +  - ][ +  + ]:      41562 :     return aIter != rHashMap.end() ? (*aIter).second : USHRT_MAX;
                 [ +  - ]
     887                 :            : }
     888                 :            : 
     889                 :        834 : boost::ptr_vector<String>* SwStyleNameMapper::NewUINameArray( boost::ptr_vector<String>*& pNameArray, sal_uInt16 nStt, sal_uInt16 nEnd )
     890                 :            : {
     891         [ +  - ]:        834 :     if( !pNameArray )
     892                 :            :     {
     893         [ +  - ]:        834 :         pNameArray = new boost::ptr_vector<String>;
     894                 :        834 :         pNameArray->reserve(nEnd - nStt);
     895         [ +  + ]:      14973 :         while( nStt < nEnd )
     896                 :            :         {
     897                 :      14139 :             const ResId rRId( nStt, *pSwResMgr );
     898 [ +  - ][ +  - ]:      14139 :             pNameArray->push_back(new String(rRId));
                 [ +  - ]
     899                 :      14139 :             ++nStt;
     900                 :            :         }
     901                 :            :     }
     902                 :        834 :     return pNameArray;
     903                 :            : }
     904                 :            : 
     905                 :      32350 : const boost::ptr_vector<String>& SwStyleNameMapper::GetTextUINameArray()
     906                 :            : {
     907                 :            :     return pTextUINameArray ? *pTextUINameArray :
     908                 :            :            *NewUINameArray( pTextUINameArray, RC_POOLCOLL_TEXT_BEGIN,
     909                 :            :             ( RC_POOLCOLL_TEXT_BEGIN +
     910         [ +  + ]:      32350 :                     (RES_POOLCOLL_TEXT_END - RES_POOLCOLL_TEXT_BEGIN )) );
     911                 :            : }
     912                 :            : 
     913                 :       2935 : const boost::ptr_vector<String>& SwStyleNameMapper::GetListsUINameArray()
     914                 :            : {
     915                 :            :     return pListsUINameArray ? *pListsUINameArray :
     916                 :            :            *NewUINameArray( pListsUINameArray, RC_POOLCOLL_LISTS_BEGIN,
     917                 :            :             ( RC_POOLCOLL_LISTS_BEGIN +
     918         [ +  + ]:       2935 :                     (RES_POOLCOLL_LISTS_END - RES_POOLCOLL_LISTS_BEGIN )) );
     919                 :            : }
     920                 :            : 
     921                 :       4513 : const boost::ptr_vector<String>& SwStyleNameMapper::GetExtraUINameArray()
     922                 :            : {
     923                 :            :     return pExtraUINameArray ? *pExtraUINameArray :
     924                 :            :            *NewUINameArray( pExtraUINameArray, RC_POOLCOLL_EXTRA_BEGIN,
     925                 :            :                 ( RC_POOLCOLL_EXTRA_BEGIN +
     926         [ +  + ]:       4513 :                     (RES_POOLCOLL_EXTRA_END - RES_POOLCOLL_EXTRA_BEGIN )) );
     927                 :            : }
     928                 :            : 
     929                 :       2882 : const boost::ptr_vector<String>& SwStyleNameMapper::GetRegisterUINameArray()
     930                 :            : {
     931                 :            :     return pRegisterUINameArray ? *pRegisterUINameArray :
     932                 :            :            *NewUINameArray( pRegisterUINameArray, RC_POOLCOLL_REGISTER_BEGIN,
     933                 :            :             ( RC_POOLCOLL_REGISTER_BEGIN +
     934         [ +  + ]:       2882 :                 (RES_POOLCOLL_REGISTER_END - RES_POOLCOLL_REGISTER_BEGIN )) );
     935                 :            : }
     936                 :            : 
     937                 :       1115 : const boost::ptr_vector<String>& SwStyleNameMapper::GetDocUINameArray()
     938                 :            : {
     939                 :            :     return pDocUINameArray ? *pDocUINameArray :
     940                 :            :            *NewUINameArray( pDocUINameArray, RC_POOLCOLL_DOC_BEGIN,
     941                 :            :                     ( RC_POOLCOLL_DOC_BEGIN +
     942         [ +  + ]:       1115 :                         (RES_POOLCOLL_DOC_END - RES_POOLCOLL_DOC_BEGIN )) );
     943                 :            : }
     944                 :            : 
     945                 :       1105 : const boost::ptr_vector<String>& SwStyleNameMapper::GetHTMLUINameArray()
     946                 :            : {
     947                 :            :     return pHTMLUINameArray ? *pHTMLUINameArray :
     948                 :            :            *NewUINameArray( pHTMLUINameArray, RC_POOLCOLL_HTML_BEGIN,
     949                 :            :                     ( RC_POOLCOLL_HTML_BEGIN +
     950         [ +  + ]:       1105 :                         (RES_POOLCOLL_HTML_END - RES_POOLCOLL_HTML_BEGIN )) );
     951                 :            : }
     952                 :            : 
     953                 :       1114 : const boost::ptr_vector<String>& SwStyleNameMapper::GetFrmFmtUINameArray()
     954                 :            : {
     955                 :            :     return pFrmFmtUINameArray ? *pFrmFmtUINameArray :
     956                 :            :            *NewUINameArray( pFrmFmtUINameArray, RC_POOLFRMFMT_BEGIN,
     957                 :            :                     ( RC_POOLFRMFMT_BEGIN +
     958         [ +  + ]:       1114 :                         (RES_POOLFRM_END - RES_POOLFRM_BEGIN )) );
     959                 :            : }
     960                 :            : 
     961                 :        892 : const boost::ptr_vector<String>& SwStyleNameMapper::GetChrFmtUINameArray()
     962                 :            : {
     963                 :            :     return pChrFmtUINameArray ? *pChrFmtUINameArray :
     964                 :            :            *NewUINameArray( pChrFmtUINameArray, RC_POOLCHRFMT_BEGIN,
     965                 :            :             ( RC_POOLCHRFMT_BEGIN +
     966         [ +  + ]:        892 :                     (RES_POOLCHR_NORMAL_END - RES_POOLCHR_NORMAL_BEGIN )) );
     967                 :            : }
     968                 :            : 
     969                 :        400 : const boost::ptr_vector<String>& SwStyleNameMapper::GetHTMLChrFmtUINameArray()
     970                 :            : {
     971                 :            :     return pHTMLChrFmtUINameArray ? *pHTMLChrFmtUINameArray :
     972                 :            :            *NewUINameArray( pHTMLChrFmtUINameArray, RC_POOLCHRFMT_HTML_BEGIN,
     973                 :            :             ( RC_POOLCHRFMT_HTML_BEGIN +
     974         [ +  + ]:        400 :                     (RES_POOLCHR_HTML_END - RES_POOLCHR_HTML_BEGIN )) );
     975                 :            : }
     976                 :            : 
     977                 :       3269 : const boost::ptr_vector<String>& SwStyleNameMapper::GetPageDescUINameArray()
     978                 :            : {
     979                 :            :     return pPageDescUINameArray ? *pPageDescUINameArray :
     980                 :            :            *NewUINameArray( pPageDescUINameArray, RC_POOLPAGEDESC_BEGIN,
     981                 :            :             ( RC_POOLPAGEDESC_BEGIN +
     982         [ +  + ]:       3269 :                     (RES_POOLPAGE_END - RES_POOLPAGE_BEGIN )) );
     983                 :            : }
     984                 :            : 
     985                 :        317 : const boost::ptr_vector<String>& SwStyleNameMapper::GetNumRuleUINameArray()
     986                 :            : {
     987                 :            :     return pNumRuleUINameArray ? *pNumRuleUINameArray :
     988                 :            :            *NewUINameArray( pNumRuleUINameArray, RC_POOLNUMRULE_BEGIN,
     989                 :            :             ( RC_POOLNUMRULE_BEGIN +
     990         [ +  + ]:        317 :                     (RES_POOLNUMRULE_END - RES_POOLNUMRULE_BEGIN )) );
     991                 :            : }
     992                 :            : 
     993                 :        793 : boost::ptr_vector<String>* SwStyleNameMapper::NewProgNameArray( boost::ptr_vector<String>*& pProgNameArray, const SwTableEntry *pTable, sal_uInt8 nCount )
     994                 :            : {
     995         [ +  - ]:        793 :     if( !pProgNameArray )
     996                 :            :     {
     997         [ +  - ]:        793 :         pProgNameArray = new boost::ptr_vector<String>;
     998                 :        793 :         pProgNameArray->reserve(nCount);
     999         [ +  + ]:      14214 :         while (pTable->nLength)
    1000                 :            :         {
    1001         [ +  - ]:      13421 :             pProgNameArray->push_back(new String( pTable->pChar, pTable->nLength, RTL_TEXTENCODING_ASCII_US ));
    1002                 :      13421 :             pTable++;
    1003                 :            :         }
    1004                 :            :     }
    1005                 :        793 :     return pProgNameArray;
    1006                 :            : }
    1007                 :            : 
    1008                 :      12953 : const boost::ptr_vector<String>& SwStyleNameMapper::GetTextProgNameArray()
    1009                 :            : {
    1010                 :            :     return pTextProgNameArray ? *pTextProgNameArray :
    1011                 :            :            *NewProgNameArray( pTextProgNameArray, TextProgNameTable,
    1012         [ +  + ]:      12953 :             sizeof ( TextProgNameTable ) / sizeof ( SwTableEntry ) );
    1013                 :            : }
    1014                 :            : 
    1015                 :       2305 : const boost::ptr_vector<String>& SwStyleNameMapper::GetListsProgNameArray()
    1016                 :            : {
    1017                 :            :     return pListsProgNameArray ? *pListsProgNameArray :
    1018                 :            :            *NewProgNameArray( pListsProgNameArray, ListsProgNameTable,
    1019         [ +  + ]:       2305 :             sizeof ( ListsProgNameTable ) / sizeof ( SwTableEntry ) );
    1020                 :            : }
    1021                 :            : 
    1022                 :       2655 : const boost::ptr_vector<String>& SwStyleNameMapper::GetExtraProgNameArray()
    1023                 :            : {
    1024                 :            :     return pExtraProgNameArray ? *pExtraProgNameArray :
    1025                 :            :            *NewProgNameArray( pExtraProgNameArray, ExtraProgNameTable,
    1026         [ +  + ]:       2655 :             sizeof ( ExtraProgNameTable ) / sizeof ( SwTableEntry ) );
    1027                 :            : }
    1028                 :            : 
    1029                 :       2301 : const boost::ptr_vector<String>& SwStyleNameMapper::GetRegisterProgNameArray()
    1030                 :            : {
    1031                 :            :     return pRegisterProgNameArray ? *pRegisterProgNameArray :
    1032                 :            :            *NewProgNameArray( pRegisterProgNameArray, RegisterProgNameTable,
    1033         [ +  + ]:       2301 :             sizeof ( RegisterProgNameTable ) / sizeof ( SwTableEntry ) );
    1034                 :            : }
    1035                 :            : 
    1036                 :        212 : const boost::ptr_vector<String>& SwStyleNameMapper::GetDocProgNameArray()
    1037                 :            : {
    1038                 :            :     return pDocProgNameArray ? *pDocProgNameArray :
    1039                 :            :            *NewProgNameArray( pDocProgNameArray, DocProgNameTable,
    1040         [ +  + ]:        212 :             sizeof ( DocProgNameTable ) / sizeof ( SwTableEntry ) );
    1041                 :            : }
    1042                 :            : 
    1043                 :       1690 : const boost::ptr_vector<String>& SwStyleNameMapper::GetHTMLProgNameArray()
    1044                 :            : {
    1045                 :            :     return pHTMLProgNameArray ? *pHTMLProgNameArray :
    1046                 :            :            *NewProgNameArray( pHTMLProgNameArray, HTMLProgNameTable,
    1047         [ +  + ]:       1690 :             sizeof ( HTMLProgNameTable ) / sizeof ( SwTableEntry ) );
    1048                 :            : }
    1049                 :            : 
    1050                 :        415 : const boost::ptr_vector<String>& SwStyleNameMapper::GetFrmFmtProgNameArray()
    1051                 :            : {
    1052                 :            :     return pFrmFmtProgNameArray ? *pFrmFmtProgNameArray :
    1053                 :            :            *NewProgNameArray( pFrmFmtProgNameArray, FrmFmtProgNameTable,
    1054         [ +  + ]:        415 :             sizeof ( FrmFmtProgNameTable ) / sizeof ( SwTableEntry ) );
    1055                 :            : }
    1056                 :            : 
    1057                 :       1755 : const boost::ptr_vector<String>& SwStyleNameMapper::GetChrFmtProgNameArray()
    1058                 :            : {
    1059                 :            :     return pChrFmtProgNameArray ? *pChrFmtProgNameArray :
    1060                 :            :            *NewProgNameArray( pChrFmtProgNameArray, ChrFmtProgNameTable,
    1061         [ +  + ]:       1755 :             sizeof ( ChrFmtProgNameTable ) / sizeof ( SwTableEntry ) );
    1062                 :            : }
    1063                 :            : 
    1064                 :        929 : const boost::ptr_vector<String>& SwStyleNameMapper::GetHTMLChrFmtProgNameArray()
    1065                 :            : {
    1066                 :            :     return pHTMLChrFmtProgNameArray ? *pHTMLChrFmtProgNameArray :
    1067                 :            :            *NewProgNameArray( pHTMLChrFmtProgNameArray, HTMLChrFmtProgNameTable,
    1068         [ +  + ]:        929 :             sizeof ( HTMLChrFmtProgNameTable ) / sizeof ( SwTableEntry ) );
    1069                 :            : }
    1070                 :            : 
    1071                 :       1471 : const boost::ptr_vector<String>& SwStyleNameMapper::GetPageDescProgNameArray()
    1072                 :            : {
    1073                 :            :     return pPageDescProgNameArray ? *pPageDescProgNameArray :
    1074                 :            :            *NewProgNameArray( pPageDescProgNameArray, PageDescProgNameTable,
    1075         [ +  + ]:       1471 :             sizeof ( PageDescProgNameTable ) / sizeof ( SwTableEntry ) );
    1076                 :            : }
    1077                 :            : 
    1078                 :        283 : const boost::ptr_vector<String>& SwStyleNameMapper::GetNumRuleProgNameArray()
    1079                 :            : {
    1080                 :            :     return pNumRuleProgNameArray ? *pNumRuleProgNameArray :
    1081                 :            :            *NewProgNameArray( pNumRuleProgNameArray, NumRuleProgNameTable,
    1082         [ +  + ]:        283 :             sizeof ( NumRuleProgNameTable ) / sizeof ( SwTableEntry ) );
    1083                 :            : }
    1084                 :            : 
    1085                 :            : 
    1086                 :        104 : const String SwStyleNameMapper::GetSpecialExtraProgName( const String& rExtraUIName )
    1087                 :            : {
    1088                 :        104 :     String aRes = rExtraUIName;
    1089                 :        104 :     sal_Bool bChgName = sal_False;
    1090         [ +  - ]:        104 :     const boost::ptr_vector<String>& rExtraArr(GetExtraUINameArray());
    1091                 :            :     static sal_uInt16 nIds[] =
    1092                 :            :     {
    1093                 :            :         RES_POOLCOLL_LABEL_DRAWING - RES_POOLCOLL_EXTRA_BEGIN,
    1094                 :            :         RES_POOLCOLL_LABEL_ABB - RES_POOLCOLL_EXTRA_BEGIN,
    1095                 :            :         RES_POOLCOLL_LABEL_TABLE - RES_POOLCOLL_EXTRA_BEGIN,
    1096                 :            :         RES_POOLCOLL_LABEL_FRAME- RES_POOLCOLL_EXTRA_BEGIN,
    1097                 :            :         0
    1098                 :            :     };
    1099                 :            :     const sal_uInt16 * pIds;
    1100         [ +  - ]:        260 :     for ( pIds = nIds; *pIds; ++pIds)
    1101                 :            :     {
    1102 [ +  - ][ +  - ]:        260 :         if (aRes == rExtraArr[ *pIds ])
                 [ +  + ]
    1103                 :            :         {
    1104                 :        104 :             bChgName = sal_True;
    1105                 :        104 :             break;
    1106                 :            :         }
    1107                 :            :     }
    1108         [ +  - ]:        104 :     if (bChgName)
    1109 [ +  - ][ +  - ]:        104 :         aRes = GetExtraProgNameArray()[*pIds];
                 [ +  - ]
    1110                 :        104 :     return aRes;
    1111                 :            : }
    1112                 :            : 
    1113                 :        961 : const String SwStyleNameMapper::GetSpecialExtraUIName( const String& rExtraProgName )
    1114                 :            : {
    1115                 :        961 :     String aRes = rExtraProgName;
    1116                 :        961 :     sal_Bool bChgName = sal_False;
    1117         [ +  - ]:        961 :     const boost::ptr_vector<String>& rExtraArr(GetExtraProgNameArray());
    1118                 :            :     static sal_uInt16 nIds[] =
    1119                 :            :     {
    1120                 :            :         RES_POOLCOLL_LABEL_DRAWING - RES_POOLCOLL_EXTRA_BEGIN,
    1121                 :            :         RES_POOLCOLL_LABEL_ABB - RES_POOLCOLL_EXTRA_BEGIN,
    1122                 :            :         RES_POOLCOLL_LABEL_TABLE - RES_POOLCOLL_EXTRA_BEGIN,
    1123                 :            :         RES_POOLCOLL_LABEL_FRAME- RES_POOLCOLL_EXTRA_BEGIN,
    1124                 :            :         0
    1125                 :            :     };
    1126                 :            :     const sal_uInt16 * pIds;
    1127                 :            : 
    1128         [ +  + ]:       2613 :     for ( pIds = nIds; *pIds; ++pIds)
    1129                 :            :     {
    1130 [ +  - ][ +  - ]:       2528 :         if (aRes == rExtraArr[ *pIds ])
                 [ +  + ]
    1131                 :            :         {
    1132                 :        876 :             bChgName = sal_True;
    1133                 :        876 :             break;
    1134                 :            :         }
    1135                 :            :     }
    1136         [ +  + ]:        961 :     if (bChgName)
    1137 [ +  - ][ +  - ]:        876 :         aRes = GetExtraUINameArray()[*pIds];
                 [ +  - ]
    1138                 :        961 :     return aRes;
    1139                 :            : }
    1140                 :            : 
    1141                 :            : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.10