[Libreoffice-commits] core.git: sw/source
Arkadiy Illarionov (via logerrit)
logerrit at kemper.freedesktop.org
Mon Jul 8 19:47:31 UTC 2019
sw/source/core/unocore/unoidx.cxx | 125 +++++++++++++++-----------------------
1 file changed, 51 insertions(+), 74 deletions(-)
New commits:
commit 499c54334a40ae969e3c7c85590a991a53b8de2e
Author: Arkadiy Illarionov <qarkai at gmail.com>
AuthorDate: Sat Jul 6 17:45:51 2019 +0300
Commit: Arkadiy Illarionov <qarkai at gmail.com>
CommitDate: Mon Jul 8 21:46:36 2019 +0200
tdf#39593 Replace copy-pasted functions with template
Change-Id: If61852ec6294a7b411fe506b46c6bea3c000b055
Reviewed-on: https://gerrit.libreoffice.org/75168
Tested-by: Jenkins
Reviewed-by: Arkadiy Illarionov <qarkai at gmail.com>
diff --git a/sw/source/core/unocore/unoidx.cxx b/sw/source/core/unocore/unoidx.cxx
index 48ac53e30dcd..d8c0f3a538c2 100644
--- a/sw/source/core/unocore/unoidx.cxx
+++ b/sw/source/core/unocore/unoidx.cxx
@@ -71,39 +71,16 @@
using namespace ::com::sun::star;
/// @throws lang::IllegalArgumentException
-static OUString
-lcl_AnyToString(uno::Any const& rVal)
-{
- OUString sRet;
- if(!(rVal >>= sRet))
- {
- throw lang::IllegalArgumentException();
- }
- return sRet;
-}
-
-/// @throws lang::IllegalArgumentException
-static sal_Int16
-lcl_AnyToInt16(uno::Any const& rVal)
-{
- sal_Int16 nRet = 0;
- if(!(rVal >>= nRet))
- {
- throw lang::IllegalArgumentException();
- }
- return nRet;
-}
-
-/// @throws lang::IllegalArgumentException
-static bool
-lcl_AnyToBool(uno::Any const& rVal)
+template<typename T>
+static T
+lcl_AnyToType(uno::Any const& rVal)
{
- bool bRet = false;
- if(!(rVal >>= bRet))
+ T aRet{};
+ if(!(rVal >>= aRet))
{
throw lang::IllegalArgumentException();
}
- return bRet;
+ return aRet;
}
/// @throws lang::IllegalArgumentException
@@ -111,7 +88,7 @@ template<typename T>
static void lcl_AnyToBitMask(uno::Any const& rValue,
T & rBitMask, const T nBit)
{
- rBitMask = lcl_AnyToBool(rValue)
+ rBitMask = lcl_AnyToType<bool>(rValue)
? (rBitMask | nBit)
: (rBitMask & ~nBit);
}
@@ -650,19 +627,19 @@ SwXDocumentIndex::setPropertyValue(
break;
case WID_LEVEL:
{
- rTOXBase.SetLevel(lcl_AnyToInt16(rValue));
+ rTOXBase.SetLevel(lcl_AnyToType<sal_Int16>(rValue));
}
break;
case WID_TOC_BOOKMARK:
{
- rTOXBase.SetBookmarkName(lcl_AnyToString(rValue));
+ rTOXBase.SetBookmarkName(lcl_AnyToType<OUString>(rValue));
nCreate = SwTOXElement::Bookmark;
rTOXBase.SetCreate(nCreate);
}
break;
case WID_INDEX_ENTRY_TYPE:
{
- rTOXBase.SetEntryTypeName(lcl_AnyToString(rValue));
+ rTOXBase.SetEntryTypeName(lcl_AnyToType<OUString>(rValue));
nCreate = SwTOXElement::IndexEntryType;
rTOXBase.SetCreate(nCreate);
}
@@ -688,14 +665,14 @@ SwXDocumentIndex::setPropertyValue(
lcl_AnyToBitMask(rValue, nCreate, SwTOXElement::TableLeader);
break ;
case WID_CREATE_FROM_CHAPTER:
- rTOXBase.SetFromChapter(lcl_AnyToBool(rValue));
+ rTOXBase.SetFromChapter(lcl_AnyToType<bool>(rValue));
break;
case WID_CREATE_FROM_LABELS:
- rTOXBase.SetFromObjectNames(! lcl_AnyToBool(rValue));
+ rTOXBase.SetFromObjectNames(! lcl_AnyToType<bool>(rValue));
break;
case WID_PROTECTED:
{
- bool bSet = lcl_AnyToBool(rValue);
+ bool bSet = lcl_AnyToType<bool>(rValue);
rTOXBase.SetProtected(bSet);
if (pSectionFormat)
{
@@ -731,19 +708,19 @@ SwXDocumentIndex::setPropertyValue(
break;
case WID_IS_COMMA_SEPARATED:
bForm = true;
- aForm.SetCommaSeparated(lcl_AnyToBool(rValue));
+ aForm.SetCommaSeparated(lcl_AnyToType<bool>(rValue));
break;
case WID_LABEL_CATEGORY:
{
// convert file-format/API/external programmatic english name
// to internal UI name before usage
rTOXBase.SetSequenceName( SwStyleNameMapper::GetSpecialExtraUIName(
- lcl_AnyToString(rValue) ) );
+ lcl_AnyToType<OUString>(rValue) ) );
}
break;
case WID_LABEL_DISPLAY_TYPE:
{
- const sal_Int16 nVal = lcl_AnyToInt16(rValue);
+ const sal_Int16 nVal = lcl_AnyToType<sal_Int16>(rValue);
sal_uInt16 nSet = CAPTION_COMPLETE;
switch (nVal)
{
@@ -763,12 +740,12 @@ SwXDocumentIndex::setPropertyValue(
}
break;
case WID_USE_LEVEL_FROM_SOURCE:
- rTOXBase.SetLevelFromChapter(lcl_AnyToBool(rValue));
+ rTOXBase.SetLevelFromChapter(lcl_AnyToType<bool>(rValue));
break;
case WID_MAIN_ENTRY_CHARACTER_STYLE_NAME:
{
OUString aString;
- SwStyleNameMapper::FillUIName(lcl_AnyToString(rValue),
+ SwStyleNameMapper::FillUIName(lcl_AnyToType<OUString>(rValue),
aString, SwGetPoolIdFromName::ChrFmt);
rTOXBase.SetMainEntryCharStyle( aString );
}
@@ -804,7 +781,7 @@ SwXDocumentIndex::setPropertyValue(
case WID_PARA_HEAD:
{
OUString aString;
- SwStyleNameMapper::FillUIName( lcl_AnyToString(rValue),
+ SwStyleNameMapper::FillUIName( lcl_AnyToType<OUString>(rValue),
aString, SwGetPoolIdFromName::TxtColl);
bForm = true;
// Header is on Pos 0
@@ -813,13 +790,13 @@ SwXDocumentIndex::setPropertyValue(
break;
case WID_IS_RELATIVE_TABSTOPS:
bForm = true;
- aForm.SetRelTabPos(lcl_AnyToBool(rValue));
+ aForm.SetRelTabPos(lcl_AnyToType<bool>(rValue));
break;
case WID_PARA_SEP:
{
OUString aString;
bForm = true;
- SwStyleNameMapper::FillUIName( lcl_AnyToString(rValue),
+ SwStyleNameMapper::FillUIName( lcl_AnyToType<OUString>(rValue),
aString, SwGetPoolIdFromName::TxtColl);
aForm.SetTemplate( 1, aString );
}
@@ -843,7 +820,7 @@ SwXDocumentIndex::setPropertyValue(
// in sdbcx::Index Label 1 begins at Pos 2 otherwise at Pos 1
const sal_uInt16 nLPos = rTOXBase.GetType() == TOX_INDEX ? 2 : 1;
OUString aString;
- SwStyleNameMapper::FillUIName( lcl_AnyToString(rValue),
+ SwStyleNameMapper::FillUIName( lcl_AnyToType<OUString>(rValue),
aString, SwGetPoolIdFromName::TxtColl);
aForm.SetTemplate(nLPos + pEntry->nWID - WID_PARA_LEV1, aString );
}
@@ -2088,35 +2065,35 @@ SwXDocumentIndexMark::setPropertyValue(
switch(pEntry->nWID)
{
case WID_ALT_TEXT:
- aMark.SetAlternativeText(lcl_AnyToString(rValue));
+ aMark.SetAlternativeText(lcl_AnyToType<OUString>(rValue));
break;
case WID_LEVEL:
aMark.SetLevel(std::min( static_cast<sal_Int8>( MAXLEVEL ),
- static_cast<sal_Int8>(lcl_AnyToInt16(rValue)+1)));
+ static_cast<sal_Int8>(lcl_AnyToType<sal_Int16>(rValue)+1)));
break;
case WID_TOC_BOOKMARK :
- aMark.SetBookmarkName(lcl_AnyToString(rValue));
+ aMark.SetBookmarkName(lcl_AnyToType<OUString>(rValue));
break;
case WID_INDEX_ENTRY_TYPE :
- aMark.SetEntryTypeName(lcl_AnyToString(rValue));
+ aMark.SetEntryTypeName(lcl_AnyToType<OUString>(rValue));
break;
case WID_PRIMARY_KEY :
- aMark.SetPrimaryKey(lcl_AnyToString(rValue));
+ aMark.SetPrimaryKey(lcl_AnyToType<OUString>(rValue));
break;
case WID_SECONDARY_KEY:
- aMark.SetSecondaryKey(lcl_AnyToString(rValue));
+ aMark.SetSecondaryKey(lcl_AnyToType<OUString>(rValue));
break;
case WID_MAIN_ENTRY:
- aMark.SetMainEntry(lcl_AnyToBool(rValue));
+ aMark.SetMainEntry(lcl_AnyToType<bool>(rValue));
break;
case WID_TEXT_READING:
- aMark.SetTextReading(lcl_AnyToString(rValue));
+ aMark.SetTextReading(lcl_AnyToType<OUString>(rValue));
break;
case WID_PRIMARY_KEY_READING:
- aMark.SetPrimaryKeyReading(lcl_AnyToString(rValue));
+ aMark.SetPrimaryKeyReading(lcl_AnyToType<OUString>(rValue));
break;
case WID_SECONDARY_KEY_READING:
- aMark.SetSecondaryKeyReading(lcl_AnyToString(rValue));
+ aMark.SetSecondaryKeyReading(lcl_AnyToType<OUString>(rValue));
break;
}
SwTextTOXMark const*const pTextMark =
@@ -2139,11 +2116,11 @@ SwXDocumentIndexMark::setPropertyValue(
switch(pEntry->nWID)
{
case WID_ALT_TEXT:
- m_pImpl->m_sAltText = lcl_AnyToString(rValue);
+ m_pImpl->m_sAltText = lcl_AnyToType<OUString>(rValue);
break;
case WID_LEVEL:
{
- const sal_Int16 nVal = lcl_AnyToInt16(rValue);
+ const sal_Int16 nVal = lcl_AnyToType<sal_Int16>(rValue);
if(nVal < 0 || nVal >= MAXLEVEL)
{
throw lang::IllegalArgumentException();
@@ -2153,38 +2130,38 @@ SwXDocumentIndexMark::setPropertyValue(
break;
case WID_TOC_BOOKMARK :
{
- m_pImpl->m_aBookmarkName = lcl_AnyToString(rValue);
+ m_pImpl->m_aBookmarkName = lcl_AnyToType<OUString>(rValue);
}
break;
case WID_INDEX_ENTRY_TYPE :
{
- m_pImpl->m_aEntryTypeName = lcl_AnyToString(rValue);
+ m_pImpl->m_aEntryTypeName = lcl_AnyToType<OUString>(rValue);
}
break;
case WID_PRIMARY_KEY:
- m_pImpl->m_sPrimaryKey = lcl_AnyToString(rValue);
+ m_pImpl->m_sPrimaryKey = lcl_AnyToType<OUString>(rValue);
break;
case WID_SECONDARY_KEY:
- m_pImpl->m_sSecondaryKey = lcl_AnyToString(rValue);
+ m_pImpl->m_sSecondaryKey = lcl_AnyToType<OUString>(rValue);
break;
case WID_TEXT_READING:
- m_pImpl->m_sTextReading = lcl_AnyToString(rValue);
+ m_pImpl->m_sTextReading = lcl_AnyToType<OUString>(rValue);
break;
case WID_PRIMARY_KEY_READING:
- m_pImpl->m_sPrimaryKeyReading = lcl_AnyToString(rValue);
+ m_pImpl->m_sPrimaryKeyReading = lcl_AnyToType<OUString>(rValue);
break;
case WID_SECONDARY_KEY_READING:
- m_pImpl->m_sSecondaryKeyReading = lcl_AnyToString(rValue);
+ m_pImpl->m_sSecondaryKeyReading = lcl_AnyToType<OUString>(rValue);
break;
case WID_USER_IDX_NAME:
{
- OUString sTmp(lcl_AnyToString(rValue));
+ OUString sTmp(lcl_AnyToType<OUString>(rValue));
lcl_ConvertTOUNameToUserName(sTmp);
m_pImpl->m_sUserIndexName = sTmp;
}
break;
case WID_MAIN_ENTRY:
- m_pImpl->m_bMainEntry = lcl_AnyToBool(rValue);
+ m_pImpl->m_bMainEntry = lcl_AnyToType<bool>(rValue);
break;
case PROPERTY_MAP_INDEX_OBJECTS:
// unsupported
@@ -2711,7 +2688,7 @@ SwXDocumentIndex::TokenAccess_Impl::replaceByIndex(
if ( pProperties[j].Name == "TokenType" )
{
const OUString sTokenType =
- lcl_AnyToString(pProperties[j].Value);
+ lcl_AnyToType<OUString>(pProperties[j].Value);
for (TokenType_ const* pTokenType = g_TokenTypes;
pTokenType->pName; ++pTokenType)
{
@@ -2726,7 +2703,7 @@ SwXDocumentIndex::TokenAccess_Impl::replaceByIndex(
{
OUString sCharStyleName;
SwStyleNameMapper::FillUIName(
- lcl_AnyToString(pProperties[j].Value),
+ lcl_AnyToType<OUString>(pProperties[j].Value),
sCharStyleName,
SwGetPoolIdFromName::ChrFmt);
aToken.sCharStyleName = sCharStyleName;
@@ -2735,7 +2712,7 @@ SwXDocumentIndex::TokenAccess_Impl::replaceByIndex(
}
else if ( pProperties[j].Name == "TabStopRightAligned" )
{
- const bool bRight = lcl_AnyToBool(pProperties[j].Value);
+ const bool bRight = lcl_AnyToType<bool>(pProperties[j].Value);
aToken.eTabAlign = bRight ?
SvxTabAdjust::End : SvxTabAdjust::Left;
}
@@ -2756,7 +2733,7 @@ SwXDocumentIndex::TokenAccess_Impl::replaceByIndex(
else if ( pProperties[j].Name == "TabStopFillCharacter" )
{
const OUString sFillChar =
- lcl_AnyToString(pProperties[j].Value);
+ lcl_AnyToType<OUString>(pProperties[j].Value);
if (sFillChar.getLength() > 1)
{
throw lang::IllegalArgumentException();
@@ -2766,11 +2743,11 @@ SwXDocumentIndex::TokenAccess_Impl::replaceByIndex(
}
else if ( pProperties[j].Name == "Text" )
{
- aToken.sText = lcl_AnyToString(pProperties[j].Value);
+ aToken.sText = lcl_AnyToType<OUString>(pProperties[j].Value);
}
else if ( pProperties[j].Name == "ChapterFormat" )
{
- sal_Int16 nFormat = lcl_AnyToInt16(pProperties[j].Value);
+ sal_Int16 nFormat = lcl_AnyToType<sal_Int16>(pProperties[j].Value);
switch(nFormat)
{
case text::ChapterFormat::NUMBER:
@@ -2796,7 +2773,7 @@ SwXDocumentIndex::TokenAccess_Impl::replaceByIndex(
// #i53420#
else if ( pProperties[j].Name == "ChapterLevel" )
{
- const sal_Int16 nLevel = lcl_AnyToInt16(pProperties[j].Value);
+ const sal_Int16 nLevel = lcl_AnyToType<sal_Int16>(pProperties[j].Value);
if( nLevel < 1 || nLevel > MAXLEVEL )
{
throw lang::IllegalArgumentException();
@@ -2819,7 +2796,7 @@ SwXDocumentIndex::TokenAccess_Impl::replaceByIndex(
// #i21237#
else if ( pProperties[j].Name == "WithTab" )
{
- aToken.bWithTab = lcl_AnyToBool(pProperties[j].Value);
+ aToken.bWithTab = lcl_AnyToType<bool>(pProperties[j].Value);
}
}
More information about the Libreoffice-commits
mailing list