Reduce scope, simplify and reuse code

Change-Id: I94a5df5f947d51fe52f2fd2c9f02dc8558687b0a
Reviewed-on: https://gerrit.libreoffice.org/5190
Reviewed-by: Fridrich Strba <fridrich@documentfoundation.org>
Tested-by: Fridrich Strba <fridrich@documentfoundation.org>
This commit is contained in:
Matteo Casalin
2013-07-28 20:28:15 +02:00
committed by Fridrich Strba
parent 431d894f3e
commit 85992e23e7
2 changed files with 146 additions and 252 deletions

View File

@@ -121,19 +121,9 @@ protected:
*pFrameProgMap, *pFrameProgMap,
*pNumRuleProgMap; *pNumRuleProgMap;
static boost::ptr_vector<String>* NewUINameArray( boost::ptr_vector<String>*&,
sal_uInt16 nStt,
sal_uInt16 nEnd );
static boost::ptr_vector<String>* NewProgNameArray( boost::ptr_vector<String>*&,
const SwTableEntry *pTable,
sal_uInt8 nCount);
static void fillNameFromId ( sal_uInt16 nId, String &rName, bool bProgName ); static void fillNameFromId ( sal_uInt16 nId, String &rName, bool bProgName );
static const String& getNameFromId ( sal_uInt16 nId, const String &rName, bool bProgName ); static const String& getNameFromId ( sal_uInt16 nId, const String &rName, bool bProgName );
static const NameToIdHash& getHashTable ( SwGetPoolIdFromName, bool bProgName ); static const NameToIdHash& getHashTable ( SwGetPoolIdFromName, bool bProgName );
static bool SuffixIsUser ( const String & rString );
static void CheckSuffixAndDelete ( String & rString );
public: public:
// This gets the UI Name from the programmatic name // This gets the UI Name from the programmatic name

View File

@@ -71,6 +71,9 @@ struct SwTableEntry
const sal_Char *pChar; const sal_Char *pChar;
}; };
namespace
{
#define ENTRY( s ) { sizeof (s)-1, s } #define ENTRY( s ) { sizeof (s)-1, s }
// Hard coded Programmatic Name tables // Hard coded Programmatic Name tables
@@ -305,7 +308,58 @@ const struct SwTableEntry NumRuleProgNameTable [] =
}; };
#undef ENTRY #undef ENTRY
bool SwStyleNameMapper::SuffixIsUser ( const String & rString ) boost::ptr_vector<String>* lcl_NewUINameArray( sal_uInt16 nStt, sal_uInt16 nEnd )
{
boost::ptr_vector<String>* pNameArray = new boost::ptr_vector<String>;
pNameArray->reserve(nEnd - nStt);
while( nStt < nEnd )
{
const ResId rRId( nStt, *pSwResMgr );
pNameArray->push_back(new String(rRId));
++nStt;
}
return pNameArray;
}
boost::ptr_vector<String>* lcl_NewProgNameArray( const SwTableEntry *pTable, sal_uInt8 nCount )
{
boost::ptr_vector<String>* pProgNameArray = new boost::ptr_vector<String>;
pProgNameArray->reserve(nCount);
while (pTable->nLength)
{
pProgNameArray->push_back(new String( pTable->pChar, pTable->nLength, RTL_TEXTENCODING_ASCII_US ));
pTable++;
}
return pProgNameArray;
}
String lcl_GetSpecialExtraName( const String& rExtraName, const bool bIsUIName )
{
const boost::ptr_vector<String>& rExtraArr = bIsUIName
? SwStyleNameMapper::GetExtraUINameArray()
: SwStyleNameMapper::GetExtraProgNameArray();
static const sal_uInt16 nIds[] =
{
RES_POOLCOLL_LABEL_DRAWING - RES_POOLCOLL_EXTRA_BEGIN,
RES_POOLCOLL_LABEL_ABB - RES_POOLCOLL_EXTRA_BEGIN,
RES_POOLCOLL_LABEL_TABLE - RES_POOLCOLL_EXTRA_BEGIN,
RES_POOLCOLL_LABEL_FRAME- RES_POOLCOLL_EXTRA_BEGIN,
0
};
const sal_uInt16 * pIds;
for ( pIds = nIds; *pIds; ++pIds)
{
if (rExtraName == rExtraArr[ *pIds ])
{
return bIsUIName
? SwStyleNameMapper::GetExtraProgNameArray()[*pIds]
: SwStyleNameMapper::GetExtraUINameArray()[*pIds];
}
}
return rExtraName;
}
bool lcl_SuffixIsUser ( const String & rString )
{ {
const sal_Unicode *pChar = rString.GetBuffer(); const sal_Unicode *pChar = rString.GetBuffer();
sal_Int32 nLen = rString.Len(); sal_Int32 nLen = rString.Len();
@@ -321,22 +375,17 @@ bool SwStyleNameMapper::SuffixIsUser ( const String & rString )
bRet = true; bRet = true;
return bRet; return bRet;
} }
void SwStyleNameMapper::CheckSuffixAndDelete ( String & rString )
void lcl_CheckSuffixAndDelete ( String & rString )
{ {
const sal_Unicode *pChar = rString.GetBuffer(); if (lcl_SuffixIsUser(rString))
xub_StrLen nLen = rString.Len();
if (nLen > 8 &&
pChar[nLen-7] == ' ' &&
pChar[nLen-6] == '(' &&
pChar[nLen-5] == 'u' &&
pChar[nLen-4] == 's' &&
pChar[nLen-3] == 'e' &&
pChar[nLen-2] == 'r' &&
pChar[nLen-1] == ')')
{ {
rString.Erase ( nLen - 7, 7 ); rString.Erase ( rString.Len() - 7, 7 );
} }
} }
}
const NameToIdHash & SwStyleNameMapper::getHashTable ( SwGetPoolIdFromName eFlags, bool bProgName ) const NameToIdHash & SwStyleNameMapper::getHashTable ( SwGetPoolIdFromName eFlags, bool bProgName )
{ {
NameToIdHash *pHash = 0; NameToIdHash *pHash = 0;
@@ -638,7 +687,7 @@ void SwStyleNameMapper::FillProgName ( const String& rName, String& rFillName, S
{ {
// It isn't ...make sure the suffix isn't already " (user)"...if it is, // It isn't ...make sure the suffix isn't already " (user)"...if it is,
// we need to add another one // we need to add another one
if ( SuffixIsUser ( rFillName ) ) if ( lcl_SuffixIsUser ( rFillName ) )
rFillName.AppendAscii ( RTL_CONSTASCII_STRINGPARAM ( " (user)" ) ); rFillName.AppendAscii ( RTL_CONSTASCII_STRINGPARAM ( " (user)" ) );
} }
else else
@@ -661,7 +710,7 @@ void SwStyleNameMapper::FillUIName ( const String& rName, String& rFillName, SwG
{ {
rFillName = rName; rFillName = rName;
// rName isn't in our Prog name table...check if it has a " (user)" suffix, if so remove it // rName isn't in our Prog name table...check if it has a " (user)" suffix, if so remove it
CheckSuffixAndDelete ( rFillName ); lcl_CheckSuffixAndDelete ( rFillName );
} }
else else
{ {
@@ -755,92 +804,12 @@ const String& SwStyleNameMapper::getNameFromId( sal_uInt16 nId, const String& rF
} }
return pStrArr ? (pStrArr->operator[] ( nId - nStt ) ) : rFillName; return pStrArr ? (pStrArr->operator[] ( nId - nStt ) ) : rFillName;
} }
void SwStyleNameMapper::fillNameFromId( sal_uInt16 nId, String& rFillName, bool bProgName ) void SwStyleNameMapper::fillNameFromId( sal_uInt16 nId, String& rFillName, bool bProgName )
{ {
sal_uInt16 nStt = 0; rFillName = getNameFromId(nId, rFillName, bProgName);
const boost::ptr_vector<String>* pStrArr = 0;
switch( (USER_FMT | COLL_GET_RANGE_BITS | POOLGRP_NOCOLLID) & nId )
{
case COLL_TEXT_BITS:
if( RES_POOLCOLL_TEXT_BEGIN <= nId && nId < RES_POOLCOLL_TEXT_END )
{
pStrArr = bProgName ? &GetTextProgNameArray() : &GetTextUINameArray();
nStt = RES_POOLCOLL_TEXT_BEGIN;
}
break;
case COLL_LISTS_BITS:
if( RES_POOLCOLL_LISTS_BEGIN <= nId && nId < RES_POOLCOLL_LISTS_END )
{
pStrArr = bProgName ? &GetListsProgNameArray() : &GetListsUINameArray();
nStt = RES_POOLCOLL_LISTS_BEGIN;
}
break;
case COLL_EXTRA_BITS:
if( RES_POOLCOLL_EXTRA_BEGIN <= nId && nId < RES_POOLCOLL_EXTRA_END )
{
pStrArr = bProgName ? &GetExtraProgNameArray() : &GetExtraUINameArray();
nStt = RES_POOLCOLL_EXTRA_BEGIN;
}
break;
case COLL_REGISTER_BITS:
if( RES_POOLCOLL_REGISTER_BEGIN <= nId && nId < RES_POOLCOLL_REGISTER_END )
{
pStrArr = bProgName ? &GetRegisterProgNameArray() : &GetRegisterUINameArray();
nStt = RES_POOLCOLL_REGISTER_BEGIN;
}
break;
case COLL_DOC_BITS:
if( RES_POOLCOLL_DOC_BEGIN <= nId && nId < RES_POOLCOLL_DOC_END )
{
pStrArr = bProgName ? &GetDocProgNameArray() : &GetDocUINameArray();
nStt = RES_POOLCOLL_DOC_BEGIN;
}
break;
case COLL_HTML_BITS:
if( RES_POOLCOLL_HTML_BEGIN <= nId && nId < RES_POOLCOLL_HTML_END )
{
pStrArr = bProgName ? &GetHTMLProgNameArray() : &GetHTMLUINameArray();
nStt = RES_POOLCOLL_HTML_BEGIN;
}
break;
case POOLGRP_CHARFMT:
if( RES_POOLCHR_NORMAL_BEGIN <= nId && nId < RES_POOLCHR_NORMAL_END )
{
pStrArr = bProgName ? &GetChrFmtProgNameArray() : &GetChrFmtUINameArray();
nStt = RES_POOLCHR_NORMAL_BEGIN;
}
else if( RES_POOLCHR_HTML_BEGIN <= nId && nId < RES_POOLCHR_HTML_END )
{
pStrArr = bProgName ? &GetHTMLChrFmtProgNameArray() : &GetHTMLChrFmtUINameArray();
nStt = RES_POOLCHR_HTML_BEGIN;
}
break;
case POOLGRP_FRAMEFMT:
if( RES_POOLFRM_BEGIN <= nId && nId < RES_POOLFRM_END )
{
pStrArr = bProgName ? &GetFrmFmtProgNameArray() : &GetFrmFmtUINameArray();
nStt = RES_POOLFRM_BEGIN;
}
break;
case POOLGRP_PAGEDESC:
if( RES_POOLPAGE_BEGIN <= nId && nId < RES_POOLPAGE_END )
{
pStrArr = bProgName ? &GetPageDescProgNameArray() : &GetPageDescUINameArray();
nStt = RES_POOLPAGE_BEGIN;
}
break;
case POOLGRP_NUMRULE:
if( RES_POOLNUMRULE_BEGIN <= nId && nId < RES_POOLNUMRULE_END )
{
pStrArr = bProgName ? &GetNumRuleProgNameArray() : &GetNumRuleUINameArray();
nStt = RES_POOLNUMRULE_BEGIN;
}
break;
}
if (pStrArr)
rFillName = (pStrArr->operator[] ( nId - nStt ) );
} }
// Get the UI Name from the pool ID // Get the UI Name from the pool ID
void SwStyleNameMapper::FillUIName ( sal_uInt16 nId, String& rFillName ) void SwStyleNameMapper::FillUIName ( sal_uInt16 nId, String& rFillName )
{ {
@@ -877,256 +846,191 @@ sal_uInt16 SwStyleNameMapper::GetPoolIdFromProgName( const String& rName, SwGetP
return aIter != rHashMap.end() ? (*aIter).second : USHRT_MAX; return aIter != rHashMap.end() ? (*aIter).second : USHRT_MAX;
} }
boost::ptr_vector<String>* SwStyleNameMapper::NewUINameArray( boost::ptr_vector<String>*& pNameArray, sal_uInt16 nStt, sal_uInt16 nEnd )
{
if( !pNameArray )
{
pNameArray = new boost::ptr_vector<String>;
pNameArray->reserve(nEnd - nStt);
while( nStt < nEnd )
{
const ResId rRId( nStt, *pSwResMgr );
pNameArray->push_back(new String(rRId));
++nStt;
}
}
return pNameArray;
}
const boost::ptr_vector<String>& SwStyleNameMapper::GetTextUINameArray() const boost::ptr_vector<String>& SwStyleNameMapper::GetTextUINameArray()
{ {
return pTextUINameArray ? *pTextUINameArray : if (!pTextUINameArray)
*NewUINameArray( pTextUINameArray, RC_POOLCOLL_TEXT_BEGIN, pTextUINameArray = lcl_NewUINameArray( RC_POOLCOLL_TEXT_BEGIN,
( RC_POOLCOLL_TEXT_BEGIN + RC_POOLCOLL_TEXT_BEGIN + (RES_POOLCOLL_TEXT_END - RES_POOLCOLL_TEXT_BEGIN) );
(RES_POOLCOLL_TEXT_END - RES_POOLCOLL_TEXT_BEGIN )) ); return *pTextUINameArray;
} }
const boost::ptr_vector<String>& SwStyleNameMapper::GetListsUINameArray() const boost::ptr_vector<String>& SwStyleNameMapper::GetListsUINameArray()
{ {
return pListsUINameArray ? *pListsUINameArray : if (!pListsUINameArray)
*NewUINameArray( pListsUINameArray, RC_POOLCOLL_LISTS_BEGIN, pListsUINameArray = lcl_NewUINameArray( RC_POOLCOLL_LISTS_BEGIN,
( RC_POOLCOLL_LISTS_BEGIN + RC_POOLCOLL_LISTS_BEGIN + (RES_POOLCOLL_LISTS_END - RES_POOLCOLL_LISTS_BEGIN) );
(RES_POOLCOLL_LISTS_END - RES_POOLCOLL_LISTS_BEGIN )) ); return *pListsUINameArray;
} }
const boost::ptr_vector<String>& SwStyleNameMapper::GetExtraUINameArray() const boost::ptr_vector<String>& SwStyleNameMapper::GetExtraUINameArray()
{ {
return pExtraUINameArray ? *pExtraUINameArray : if (!pExtraUINameArray)
*NewUINameArray( pExtraUINameArray, RC_POOLCOLL_EXTRA_BEGIN, pExtraUINameArray = lcl_NewUINameArray( RC_POOLCOLL_EXTRA_BEGIN,
( RC_POOLCOLL_EXTRA_BEGIN + RC_POOLCOLL_EXTRA_BEGIN + (RES_POOLCOLL_EXTRA_END - RES_POOLCOLL_EXTRA_BEGIN) );
(RES_POOLCOLL_EXTRA_END - RES_POOLCOLL_EXTRA_BEGIN )) ); return *pExtraUINameArray;
} }
const boost::ptr_vector<String>& SwStyleNameMapper::GetRegisterUINameArray() const boost::ptr_vector<String>& SwStyleNameMapper::GetRegisterUINameArray()
{ {
return pRegisterUINameArray ? *pRegisterUINameArray : if (!pRegisterUINameArray)
*NewUINameArray( pRegisterUINameArray, RC_POOLCOLL_REGISTER_BEGIN, pRegisterUINameArray = lcl_NewUINameArray( RC_POOLCOLL_REGISTER_BEGIN,
( RC_POOLCOLL_REGISTER_BEGIN + RC_POOLCOLL_REGISTER_BEGIN + (RES_POOLCOLL_REGISTER_END - RES_POOLCOLL_REGISTER_BEGIN) );
(RES_POOLCOLL_REGISTER_END - RES_POOLCOLL_REGISTER_BEGIN )) ); return *pRegisterUINameArray;
} }
const boost::ptr_vector<String>& SwStyleNameMapper::GetDocUINameArray() const boost::ptr_vector<String>& SwStyleNameMapper::GetDocUINameArray()
{ {
return pDocUINameArray ? *pDocUINameArray : if (!pDocUINameArray)
*NewUINameArray( pDocUINameArray, RC_POOLCOLL_DOC_BEGIN, pDocUINameArray = lcl_NewUINameArray( RC_POOLCOLL_DOC_BEGIN,
( RC_POOLCOLL_DOC_BEGIN + RC_POOLCOLL_DOC_BEGIN + (RES_POOLCOLL_DOC_END - RES_POOLCOLL_DOC_BEGIN) );
(RES_POOLCOLL_DOC_END - RES_POOLCOLL_DOC_BEGIN )) ); return *pDocUINameArray;
} }
const boost::ptr_vector<String>& SwStyleNameMapper::GetHTMLUINameArray() const boost::ptr_vector<String>& SwStyleNameMapper::GetHTMLUINameArray()
{ {
return pHTMLUINameArray ? *pHTMLUINameArray : if (!pHTMLUINameArray)
*NewUINameArray( pHTMLUINameArray, RC_POOLCOLL_HTML_BEGIN, pHTMLUINameArray = lcl_NewUINameArray( RC_POOLCOLL_HTML_BEGIN,
( RC_POOLCOLL_HTML_BEGIN + RC_POOLCOLL_HTML_BEGIN + (RES_POOLCOLL_HTML_END - RES_POOLCOLL_HTML_BEGIN) );
(RES_POOLCOLL_HTML_END - RES_POOLCOLL_HTML_BEGIN )) ); return *pHTMLUINameArray;
} }
const boost::ptr_vector<String>& SwStyleNameMapper::GetFrmFmtUINameArray() const boost::ptr_vector<String>& SwStyleNameMapper::GetFrmFmtUINameArray()
{ {
return pFrmFmtUINameArray ? *pFrmFmtUINameArray : if (!pFrmFmtUINameArray)
*NewUINameArray( pFrmFmtUINameArray, RC_POOLFRMFMT_BEGIN, pFrmFmtUINameArray = lcl_NewUINameArray( RC_POOLFRMFMT_BEGIN,
( RC_POOLFRMFMT_BEGIN + RC_POOLFRMFMT_BEGIN + (RES_POOLFRM_END - RES_POOLFRM_BEGIN) );
(RES_POOLFRM_END - RES_POOLFRM_BEGIN )) ); return *pFrmFmtUINameArray;
} }
const boost::ptr_vector<String>& SwStyleNameMapper::GetChrFmtUINameArray() const boost::ptr_vector<String>& SwStyleNameMapper::GetChrFmtUINameArray()
{ {
return pChrFmtUINameArray ? *pChrFmtUINameArray : if (!pChrFmtUINameArray)
*NewUINameArray( pChrFmtUINameArray, RC_POOLCHRFMT_BEGIN, pChrFmtUINameArray = lcl_NewUINameArray( RC_POOLCHRFMT_BEGIN,
( RC_POOLCHRFMT_BEGIN + RC_POOLCHRFMT_BEGIN + (RES_POOLCHR_NORMAL_END - RES_POOLCHR_NORMAL_BEGIN) );
(RES_POOLCHR_NORMAL_END - RES_POOLCHR_NORMAL_BEGIN )) ); return *pChrFmtUINameArray;
} }
const boost::ptr_vector<String>& SwStyleNameMapper::GetHTMLChrFmtUINameArray() const boost::ptr_vector<String>& SwStyleNameMapper::GetHTMLChrFmtUINameArray()
{ {
return pHTMLChrFmtUINameArray ? *pHTMLChrFmtUINameArray : if (!pHTMLChrFmtUINameArray)
*NewUINameArray( pHTMLChrFmtUINameArray, RC_POOLCHRFMT_HTML_BEGIN, pHTMLChrFmtUINameArray = lcl_NewUINameArray( RC_POOLCHRFMT_HTML_BEGIN,
( RC_POOLCHRFMT_HTML_BEGIN + RC_POOLCHRFMT_HTML_BEGIN + (RES_POOLCHR_HTML_END - RES_POOLCHR_HTML_BEGIN) );
(RES_POOLCHR_HTML_END - RES_POOLCHR_HTML_BEGIN )) ); return *pHTMLChrFmtUINameArray;
} }
const boost::ptr_vector<String>& SwStyleNameMapper::GetPageDescUINameArray() const boost::ptr_vector<String>& SwStyleNameMapper::GetPageDescUINameArray()
{ {
return pPageDescUINameArray ? *pPageDescUINameArray : if (!pPageDescUINameArray)
*NewUINameArray( pPageDescUINameArray, RC_POOLPAGEDESC_BEGIN, pPageDescUINameArray = lcl_NewUINameArray( RC_POOLPAGEDESC_BEGIN,
( RC_POOLPAGEDESC_BEGIN + RC_POOLPAGEDESC_BEGIN + (RES_POOLPAGE_END - RES_POOLPAGE_BEGIN) );
(RES_POOLPAGE_END - RES_POOLPAGE_BEGIN )) ); return *pPageDescUINameArray;
} }
const boost::ptr_vector<String>& SwStyleNameMapper::GetNumRuleUINameArray() const boost::ptr_vector<String>& SwStyleNameMapper::GetNumRuleUINameArray()
{ {
return pNumRuleUINameArray ? *pNumRuleUINameArray : if (!pNumRuleUINameArray)
*NewUINameArray( pNumRuleUINameArray, RC_POOLNUMRULE_BEGIN, pNumRuleUINameArray = lcl_NewUINameArray( RC_POOLNUMRULE_BEGIN,
( RC_POOLNUMRULE_BEGIN + RC_POOLNUMRULE_BEGIN + (RES_POOLNUMRULE_END - RES_POOLNUMRULE_BEGIN) );
(RES_POOLNUMRULE_END - RES_POOLNUMRULE_BEGIN )) ); return *pNumRuleUINameArray;
}
boost::ptr_vector<String>* SwStyleNameMapper::NewProgNameArray( boost::ptr_vector<String>*& pProgNameArray, const SwTableEntry *pTable, sal_uInt8 nCount )
{
if( !pProgNameArray )
{
pProgNameArray = new boost::ptr_vector<String>;
pProgNameArray->reserve(nCount);
while (pTable->nLength)
{
pProgNameArray->push_back(new String( pTable->pChar, pTable->nLength, RTL_TEXTENCODING_ASCII_US ));
pTable++;
}
}
return pProgNameArray;
} }
const boost::ptr_vector<String>& SwStyleNameMapper::GetTextProgNameArray() const boost::ptr_vector<String>& SwStyleNameMapper::GetTextProgNameArray()
{ {
return pTextProgNameArray ? *pTextProgNameArray : if (!pTextProgNameArray)
*NewProgNameArray( pTextProgNameArray, TextProgNameTable, pTextProgNameArray = lcl_NewProgNameArray(TextProgNameTable,
sizeof ( TextProgNameTable ) / sizeof ( SwTableEntry ) ); sizeof ( TextProgNameTable ) / sizeof ( SwTableEntry ) );
return *pTextProgNameArray;
} }
const boost::ptr_vector<String>& SwStyleNameMapper::GetListsProgNameArray() const boost::ptr_vector<String>& SwStyleNameMapper::GetListsProgNameArray()
{ {
return pListsProgNameArray ? *pListsProgNameArray : if (!pListsProgNameArray)
*NewProgNameArray( pListsProgNameArray, ListsProgNameTable, pListsProgNameArray = lcl_NewProgNameArray( ListsProgNameTable,
sizeof ( ListsProgNameTable ) / sizeof ( SwTableEntry ) ); sizeof ( ListsProgNameTable ) / sizeof ( SwTableEntry ) );
return *pListsProgNameArray;
} }
const boost::ptr_vector<String>& SwStyleNameMapper::GetExtraProgNameArray() const boost::ptr_vector<String>& SwStyleNameMapper::GetExtraProgNameArray()
{ {
return pExtraProgNameArray ? *pExtraProgNameArray : if (!pExtraProgNameArray)
*NewProgNameArray( pExtraProgNameArray, ExtraProgNameTable, pExtraProgNameArray = lcl_NewProgNameArray( ExtraProgNameTable,
sizeof ( ExtraProgNameTable ) / sizeof ( SwTableEntry ) ); sizeof ( ExtraProgNameTable ) / sizeof ( SwTableEntry ) );
return *pExtraProgNameArray;
} }
const boost::ptr_vector<String>& SwStyleNameMapper::GetRegisterProgNameArray() const boost::ptr_vector<String>& SwStyleNameMapper::GetRegisterProgNameArray()
{ {
return pRegisterProgNameArray ? *pRegisterProgNameArray : if (!pRegisterProgNameArray)
*NewProgNameArray( pRegisterProgNameArray, RegisterProgNameTable, pRegisterProgNameArray = lcl_NewProgNameArray( RegisterProgNameTable,
sizeof ( RegisterProgNameTable ) / sizeof ( SwTableEntry ) ); sizeof ( RegisterProgNameTable ) / sizeof ( SwTableEntry ) );
return *pRegisterProgNameArray;
} }
const boost::ptr_vector<String>& SwStyleNameMapper::GetDocProgNameArray() const boost::ptr_vector<String>& SwStyleNameMapper::GetDocProgNameArray()
{ {
return pDocProgNameArray ? *pDocProgNameArray : if (!pDocProgNameArray)
*NewProgNameArray( pDocProgNameArray, DocProgNameTable, pDocProgNameArray = lcl_NewProgNameArray( DocProgNameTable,
sizeof ( DocProgNameTable ) / sizeof ( SwTableEntry ) ); sizeof ( DocProgNameTable ) / sizeof ( SwTableEntry ) );
return *pDocProgNameArray;
} }
const boost::ptr_vector<String>& SwStyleNameMapper::GetHTMLProgNameArray() const boost::ptr_vector<String>& SwStyleNameMapper::GetHTMLProgNameArray()
{ {
return pHTMLProgNameArray ? *pHTMLProgNameArray : if (!pHTMLProgNameArray)
*NewProgNameArray( pHTMLProgNameArray, HTMLProgNameTable, pHTMLProgNameArray = lcl_NewProgNameArray( HTMLProgNameTable,
sizeof ( HTMLProgNameTable ) / sizeof ( SwTableEntry ) ); sizeof ( HTMLProgNameTable ) / sizeof ( SwTableEntry ) );
return *pHTMLProgNameArray;
} }
const boost::ptr_vector<String>& SwStyleNameMapper::GetFrmFmtProgNameArray() const boost::ptr_vector<String>& SwStyleNameMapper::GetFrmFmtProgNameArray()
{ {
return pFrmFmtProgNameArray ? *pFrmFmtProgNameArray : if (!pFrmFmtProgNameArray)
*NewProgNameArray( pFrmFmtProgNameArray, FrmFmtProgNameTable, pFrmFmtProgNameArray = lcl_NewProgNameArray( FrmFmtProgNameTable,
sizeof ( FrmFmtProgNameTable ) / sizeof ( SwTableEntry ) ); sizeof ( FrmFmtProgNameTable ) / sizeof ( SwTableEntry ) );
return *pFrmFmtProgNameArray;
} }
const boost::ptr_vector<String>& SwStyleNameMapper::GetChrFmtProgNameArray() const boost::ptr_vector<String>& SwStyleNameMapper::GetChrFmtProgNameArray()
{ {
return pChrFmtProgNameArray ? *pChrFmtProgNameArray : if (!pChrFmtProgNameArray)
*NewProgNameArray( pChrFmtProgNameArray, ChrFmtProgNameTable, pChrFmtProgNameArray = lcl_NewProgNameArray( ChrFmtProgNameTable,
sizeof ( ChrFmtProgNameTable ) / sizeof ( SwTableEntry ) ); sizeof ( ChrFmtProgNameTable ) / sizeof ( SwTableEntry ) );
return *pChrFmtProgNameArray;
} }
const boost::ptr_vector<String>& SwStyleNameMapper::GetHTMLChrFmtProgNameArray() const boost::ptr_vector<String>& SwStyleNameMapper::GetHTMLChrFmtProgNameArray()
{ {
return pHTMLChrFmtProgNameArray ? *pHTMLChrFmtProgNameArray : if (!pHTMLChrFmtProgNameArray)
*NewProgNameArray( pHTMLChrFmtProgNameArray, HTMLChrFmtProgNameTable, pHTMLChrFmtProgNameArray = lcl_NewProgNameArray( HTMLChrFmtProgNameTable,
sizeof ( HTMLChrFmtProgNameTable ) / sizeof ( SwTableEntry ) ); sizeof ( HTMLChrFmtProgNameTable ) / sizeof ( SwTableEntry ) );
return *pHTMLChrFmtProgNameArray;
} }
const boost::ptr_vector<String>& SwStyleNameMapper::GetPageDescProgNameArray() const boost::ptr_vector<String>& SwStyleNameMapper::GetPageDescProgNameArray()
{ {
return pPageDescProgNameArray ? *pPageDescProgNameArray : if (!pPageDescProgNameArray)
*NewProgNameArray( pPageDescProgNameArray, PageDescProgNameTable, pPageDescProgNameArray = lcl_NewProgNameArray( PageDescProgNameTable,
sizeof ( PageDescProgNameTable ) / sizeof ( SwTableEntry ) ); sizeof ( PageDescProgNameTable ) / sizeof ( SwTableEntry ) );
return *pPageDescProgNameArray;
} }
const boost::ptr_vector<String>& SwStyleNameMapper::GetNumRuleProgNameArray() const boost::ptr_vector<String>& SwStyleNameMapper::GetNumRuleProgNameArray()
{ {
return pNumRuleProgNameArray ? *pNumRuleProgNameArray : if (!pNumRuleProgNameArray)
*NewProgNameArray( pNumRuleProgNameArray, NumRuleProgNameTable, pNumRuleProgNameArray = lcl_NewProgNameArray( NumRuleProgNameTable,
sizeof ( NumRuleProgNameTable ) / sizeof ( SwTableEntry ) ); sizeof ( NumRuleProgNameTable ) / sizeof ( SwTableEntry ) );
return *pNumRuleProgNameArray;
} }
const String SwStyleNameMapper::GetSpecialExtraProgName( const String& rExtraUIName ) const String SwStyleNameMapper::GetSpecialExtraProgName( const String& rExtraUIName )
{ {
String aRes = rExtraUIName; return lcl_GetSpecialExtraName( rExtraUIName, true );
bool bChgName = false;
const boost::ptr_vector<String>& rExtraArr(GetExtraUINameArray());
static const sal_uInt16 nIds[] =
{
RES_POOLCOLL_LABEL_DRAWING - RES_POOLCOLL_EXTRA_BEGIN,
RES_POOLCOLL_LABEL_ABB - RES_POOLCOLL_EXTRA_BEGIN,
RES_POOLCOLL_LABEL_TABLE - RES_POOLCOLL_EXTRA_BEGIN,
RES_POOLCOLL_LABEL_FRAME- RES_POOLCOLL_EXTRA_BEGIN,
0
};
const sal_uInt16 * pIds;
for ( pIds = nIds; *pIds; ++pIds)
{
if (aRes == rExtraArr[ *pIds ])
{
bChgName = true;
break;
}
}
if (bChgName)
aRes = GetExtraProgNameArray()[*pIds];
return aRes;
} }
const String SwStyleNameMapper::GetSpecialExtraUIName( const String& rExtraProgName ) const String SwStyleNameMapper::GetSpecialExtraUIName( const String& rExtraProgName )
{ {
String aRes = rExtraProgName; return lcl_GetSpecialExtraName( rExtraProgName, false );
bool bChgName = false;
const boost::ptr_vector<String>& rExtraArr(GetExtraProgNameArray());
static const sal_uInt16 nIds[] =
{
RES_POOLCOLL_LABEL_DRAWING - RES_POOLCOLL_EXTRA_BEGIN,
RES_POOLCOLL_LABEL_ABB - RES_POOLCOLL_EXTRA_BEGIN,
RES_POOLCOLL_LABEL_TABLE - RES_POOLCOLL_EXTRA_BEGIN,
RES_POOLCOLL_LABEL_FRAME- RES_POOLCOLL_EXTRA_BEGIN,
0
};
const sal_uInt16 * pIds;
for ( pIds = nIds; *pIds; ++pIds)
{
if (aRes == rExtraArr[ *pIds ])
{
bChgName = true;
break;
}
}
if (bChgName)
aRes = GetExtraUINameArray()[*pIds];
return aRes;
} }
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ /* vim:set shiftwidth=4 softtabstop=4 expandtab: */