[Libreoffice-commits] .: sc/source
Markus Mohrhard
mmohrhard at kemper.freedesktop.org
Tue Apr 17 13:15:14 PDT 2012
sc/source/filter/oox/workbookhelper.cxx | 32 ++++++++++++++++++--------------
1 file changed, 18 insertions(+), 14 deletions(-)
New commits:
commit e5322f13e0d433a7103edbf36cd3d2ab0d3e18c7
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date: Tue Apr 17 22:10:10 2012 +0200
some more uno removement in oox range name import
diff --git a/sc/source/filter/oox/workbookhelper.cxx b/sc/source/filter/oox/workbookhelper.cxx
index 83c67bd..6e5dce8 100644
--- a/sc/source/filter/oox/workbookhelper.cxx
+++ b/sc/source/filter/oox/workbookhelper.cxx
@@ -401,29 +401,33 @@ ScRangeData* WorkbookGlobals::createNamedRangeObject( OUString& orName, const Se
return pScRangeData;
}
+namespace {
+
+rtl::OUString findUnusedName( const ScRangeName* pRangeName, const rtl::OUString& rSuggestedName )
+{
+ rtl::OUString aNewName = rSuggestedName;
+ sal_Int32 nIndex = 0;
+ while(pRangeName->findByUpperName(ScGlobal::pCharClass->uppercase(aNewName)))
+ aNewName = rtl::OUStringBuffer(rSuggestedName).append( '_' ).append( nIndex++ ).makeStringAndClear();
+
+ return aNewName;
+}
+
+}
+
ScRangeData* WorkbookGlobals::createLocalNamedRangeObject( OUString& orName, const Sequence< FormulaToken >& rTokens, sal_Int32 nIndex, sal_Int32 nNameFlags, sal_Int32 nTab ) const
{
// create the name and insert it into the Calc document
ScRangeData* pScRangeData = NULL;
- if( !orName.isEmpty() ) try
+ if( !orName.isEmpty() )
{
- // find an unused name
- Reference< XIndexAccess > xSheets(mxDoc->getSheets(), UNO_QUERY_THROW);
- Reference< XSpreadsheet > xSheet (xSheets->getByIndex(nTab), UNO_QUERY_THROW);
- Reference< com::sun::star::container::XNamed > xNamed(xSheet, UNO_QUERY_THROW);
- rtl::OUString aName = xNamed->getName();
- PropertySet aSheetProps( xSheet );
- Reference< XNamedRanges > xNamedRanges( aSheetProps.getAnyProperty( PROP_NamedRanges ), UNO_QUERY_THROW );
- Reference< XNameAccess > xNameAccess( xNamedRanges, UNO_QUERY_THROW );
- orName = ContainerHelper::getUnusedName( xNameAccess, orName, '_' );
- // create the named range
ScDocument& rDoc = getScDocument();
ScRangeName* pNames = rDoc.GetRangeName( nTab );
+ // find an unused name
+ orName = findUnusedName( pNames, orName );
+ // create the named range
pScRangeData = lcl_addNewByNameAndTokens( rDoc, pNames, orName, rTokens, nIndex, nNameFlags );
}
- catch (const Exception&)
- {
- }
return pScRangeData;
}
More information about the Libreoffice-commits
mailing list