Kaydet (Commit) 790b0c4d authored tarafından Noel Grandin's avatar Noel Grandin

fdo#46808, convert i18n::OrdinalSuffix to new-style

Change-Id: I62d0d3455d81bf9a2ea485b74faa5f1ecd417d87
üst e2ab5539
......@@ -31,7 +31,7 @@
#include <unotools/collatorwrapper.hxx>
#include <com/sun/star/i18n/CollatorOptions.hpp>
#include <com/sun/star/i18n/UnicodeScript.hpp>
#include <com/sun/star/i18n/XOrdinalSuffix.hpp>
#include <com/sun/star/i18n/OrdinalSuffix.hpp>
#include <unotools/localedatawrapper.hxx>
#include <unotools/transliterationwrapper.hxx>
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
......@@ -442,35 +442,29 @@ sal_Bool SvxAutoCorrect::FnChgOrdinalNumber(
sal_Int32 nNum = rTxt.Copy( nSttPos, nNumEnd - nSttPos + 1 ).ToInt32( );
// Check if the characters after that number correspond to the ordinal suffix
rtl::OUString sServiceName("com.sun.star.i18n.OrdinalSuffix");
uno::Reference< i18n::XOrdinalSuffix > xOrdSuffix(
comphelper::getProcessServiceFactory()->createInstance( sServiceName ),
uno::UNO_QUERY );
uno::Reference< i18n::XOrdinalSuffix > xOrdSuffix
= i18n::OrdinalSuffix::create( comphelper::getProcessComponentContext() );
if ( xOrdSuffix.is( ) )
uno::Sequence< rtl::OUString > aSuffixes = xOrdSuffix->getOrdinalSuffix( nNum, rCC.getLanguageTag().getLocale( ) );
for ( sal_Int32 nSuff = 0; nSuff < aSuffixes.getLength(); nSuff++ )
{
uno::Sequence< rtl::OUString > aSuffixes = xOrdSuffix->getOrdinalSuffix( nNum, rCC.getLanguageTag().getLocale( ) );
for ( sal_Int32 nSuff = 0; nSuff < aSuffixes.getLength(); nSuff++ )
{
String sSuffix( aSuffixes[ nSuff ] );
String sEnd = rTxt.Copy( nNumEnd + 1, nEndPos - nNumEnd - 1 );
String sSuffix( aSuffixes[ nSuff ] );
String sEnd = rTxt.Copy( nNumEnd + 1, nEndPos - nNumEnd - 1 );
if ( sSuffix == sEnd )
if ( sSuffix == sEnd )
{
// Check if the ordinal suffix has to be set as super script
if ( rCC.isLetter( sSuffix ) )
{
// Check if the ordinal suffix has to be set as super script
if ( rCC.isLetter( sSuffix ) )
{
// Do the change
SvxEscapementItem aSvxEscapementItem( DFLT_ESC_AUTO_SUPER,
DFLT_ESC_PROP, SID_ATTR_CHAR_ESCAPEMENT );
rDoc.SetAttr( nNumEnd + 1 , nEndPos,
SID_ATTR_CHAR_ESCAPEMENT,
aSvxEscapementItem);
}
// Do the change
SvxEscapementItem aSvxEscapementItem( DFLT_ESC_AUTO_SUPER,
DFLT_ESC_PROP, SID_ATTR_CHAR_ESCAPEMENT );
rDoc.SetAttr( nNumEnd + 1 , nEndPos,
SID_ATTR_CHAR_ESCAPEMENT,
aSvxEscapementItem);
}
}
}
}
return bChg;
}
......
......@@ -175,6 +175,7 @@ $(eval $(call gb_UnoApi_add_idlfiles_nohdl,offapi,offapi/com/sun/star/i18n,\
LocaleData \
NativeNumberSupplier \
NumberFormatMapper \
OrdinalSuffix \
TextConversion \
Transliteration \
))
......@@ -894,7 +895,6 @@ $(eval $(call gb_UnoApi_add_idlfiles_noheader,offapi,offapi/com/sun/star/graphic
$(eval $(call gb_UnoApi_add_idlfiles_noheader,offapi,offapi/com/sun/star/i18n,\
ChapterCollator \
IndexEntrySupplier \
OrdinalSuffix \
))
$(eval $(call gb_UnoApi_add_idlfiles_noheader,offapi,offapi/com/sun/star/image,\
ImageMap \
......
......@@ -30,7 +30,7 @@
#include <com/sun/star/ucb/XCommandEnvironment.hpp>
#include <com/sun/star/ucb/XContentAccess.hpp>
#include <com/sun/star/i18n/XOrdinalSuffix.hpp>
#include <com/sun/star/i18n/OrdinalSuffix.hpp>
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <comphelper/processfactory.hxx>
#include <comphelper/string.hxx>
......@@ -121,39 +121,22 @@ void ScGlobal::InitAddIns()
String ScGlobal::GetOrdinalSuffix( sal_Int32 nNumber)
{
if (!xOrdinalSuffix.is())
try
{
try
if (!xOrdinalSuffix.is())
{
Reference< lang::XMultiServiceFactory > xServiceManager =
::comphelper::getProcessServiceFactory();
Reference< XInterface > xInterface =
xServiceManager->createInstance(
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.i18n.OrdinalSuffix")));
if (xInterface.is())
xOrdinalSuffix = Reference< i18n::XOrdinalSuffix >( xInterface, UNO_QUERY);
}
catch ( Exception& )
{
OSL_FAIL( "GetOrdinalSuffix: exception caught during init" );
xOrdinalSuffix = i18n::OrdinalSuffix::create( ::comphelper::getProcessComponentContext() );
}
uno::Sequence< rtl::OUString > aSuffixes = xOrdinalSuffix->getOrdinalSuffix( nNumber,
ScGlobal::pLocaleData->getLanguageTag().getLocale());
if ( aSuffixes.getLength() > 0 )
return aSuffixes[0];
else
return String();
}
OSL_ENSURE( xOrdinalSuffix.is(), "GetOrdinalSuffix: createInstance failed");
if (xOrdinalSuffix.is())
catch ( Exception& )
{
try
{
uno::Sequence< rtl::OUString > aSuffixes = xOrdinalSuffix->getOrdinalSuffix( nNumber,
ScGlobal::pLocaleData->getLanguageTag().getLocale());
if ( aSuffixes.getLength() > 0 )
return aSuffixes[0];
else
return String();
}
catch ( Exception& )
{
OSL_FAIL( "GetOrdinalSuffix: exception caught during getOrdinalSuffix" );
}
OSL_FAIL( "GetOrdinalSuffix: exception caught during init" );
}
return String();
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment