summaryrefslogtreecommitdiff
path: root/sw
diff options
context:
space:
mode:
authorMatteo Casalin <matteo.casalin@yahoo.com>2013-08-25 02:14:52 +0200
committerMichael Stahl <mstahl@redhat.com>2013-08-25 15:17:40 +0000
commitab5c85f1307ceb3e0ac97b601e01d74ffd5778b7 (patch)
treed1a666543c8bca670265e524a3a6b2aff42459ec /sw
parenta3d10e95d24d9199de60b05e2ce4207f57988021 (diff)
Use support function for name of services
Change-Id: Ib77a2aebdf6d557b78d433c4d9a81e6e9ad0edf1 Reviewed-on: https://gerrit.libreoffice.org/5624 Reviewed-by: Michael Stahl <mstahl@redhat.com> Tested-by: Michael Stahl <mstahl@redhat.com>
Diffstat (limited to 'sw')
-rw-r--r--sw/source/core/unocore/unofield.cxx80
1 files changed, 38 insertions, 42 deletions
diff --git a/sw/source/core/unocore/unofield.cxx b/sw/source/core/unocore/unofield.cxx
index 57cb5bcf160b..8dee53aad6c4 100644
--- a/sw/source/core/unocore/unofield.cxx
+++ b/sw/source/core/unocore/unofield.cxx
@@ -455,35 +455,47 @@ throw (uno::RuntimeException)
return OUString("SwXFieldMaster");
}
+namespace
+{
+
+OUString getServiceName(const sal_uInt16 aId)
+{
+ const sal_Char* pEntry;
+ switch (aId)
+ {
+ case RES_USERFLD:
+ pEntry = "User";
+ break;
+ case RES_DBFLD:
+ pEntry = "Database";
+ break;
+ case RES_SETEXPFLD:
+ pEntry = "SetExpression";
+ break;
+ case RES_DDEFLD:
+ pEntry = "DDE";
+ break;
+ case RES_AUTHORITY:
+ pEntry = "Bibliography";
+ break;
+ default:
+ return OUString();
+ }
+
+ return "com.sun.star.text.fieldmaster." + OUString::createFromAscii(pEntry);
+}
+
+}
+
sal_Bool SAL_CALL
SwXFieldMaster::supportsService(const OUString& rServiceName)
throw (uno::RuntimeException)
{
- sal_Bool bRet = sal_False;
- if(rServiceName.equalsAsciiL(
- RTL_CONSTASCII_STRINGPARAM("com.sun.star.text.TextFieldMaster")))
- bRet = sal_True;
- else
- {
- const sal_Char* pEntry;
- switch (m_pImpl->m_nResTypeId)
- {
- case RES_USERFLD: pEntry = "User"; break;
- case RES_DBFLD: pEntry = "Database"; break;
- case RES_SETEXPFLD: pEntry = "SetExpression"; break;
- case RES_DDEFLD: pEntry = "DDE"; break;
- case RES_AUTHORITY: pEntry = "Bibliography"; break;
- default: pEntry = 0;
- }
- if( pEntry )
- {
- OString aTmp = OStringBuffer(RTL_CONSTASCII_STRINGPARAM(
- "com.sun.star.text.fieldmaster.")).append(pEntry).
- makeStringAndClear();
- bRet = rServiceName.equalsAsciiL(aTmp.getStr(), aTmp.getLength());
- }
- }
- return bRet;
+ if (rServiceName=="com.sun.star.text.TextFieldMaster")
+ return sal_True;
+
+ const OUString sName(getServiceName(m_pImpl->m_nResTypeId));
+ return !sName.isEmpty() && sName==rServiceName;
}
uno::Sequence< OUString > SAL_CALL
@@ -492,23 +504,7 @@ SwXFieldMaster::getSupportedServiceNames() throw (uno::RuntimeException)
uno::Sequence< OUString > aRet(2);
OUString* pArray = aRet.getArray();
pArray[0] = "com.sun.star.text.TextFieldMaster";
-
- const sal_Char* pEntry1;
- switch (m_pImpl->m_nResTypeId)
- {
- case RES_USERFLD: pEntry1 = "User"; break;
- case RES_DBFLD: pEntry1 = "Database"; break;
- case RES_SETEXPFLD: pEntry1 = "SetExpression"; break;
- case RES_DDEFLD: pEntry1 = "DDE"; break;
- case RES_AUTHORITY: pEntry1 = "Bibliography"; break;
- default: pEntry1 = 0;
- }
- if( pEntry1 )
- {
- String s;
- s.AppendAscii( "com.sun.star.text.fieldmaster." ).AppendAscii( pEntry1 );
- pArray[1] = s;
- }
+ pArray[1] = getServiceName(m_pImpl->m_nResTypeId);
return aRet;
}