oovbaapi/ooo/vba/excel/XName.idl | 10 +-- sc/inc/nameuno.hxx | 3 sc/qa/extras/macros-test.cxx | 28 ++++++-- sc/qa/unit/data/xls/Names.xls |binary sc/qa/unit/data/xls/Workbooks.xls |binary sc/source/ui/vba/vbaapplication.cxx | 2 sc/source/ui/vba/vbaname.cxx | 114 +++++++++++++++--------------------- sc/source/ui/vba/vbaname.hxx | 5 - sc/source/ui/vba/vbanames.cxx | 107 ++++++++++++++++++++++++++++----- 9 files changed, 173 insertions(+), 96 deletions(-)
New commits: commit e9281c438b8cd8b34e8cbc1dd05c22e374f21fc0 Author: Noel Power <noel.po...@suse.com> Date: Tue May 14 12:07:43 2013 +0100 make some vba Name object attributes read/write and add test document cherry-picked from fbd74ed44cd011ebab95bb4bc4eb6b15c1272c43 Change-Id: Ibd12835cc5368080a302b3b8d7c6f52ccc434e3c diff --git a/oovbaapi/ooo/vba/excel/XName.idl b/oovbaapi/ooo/vba/excel/XName.idl index dc6ba1c..d46dc14 100644 --- a/oovbaapi/ooo/vba/excel/XName.idl +++ b/oovbaapi/ooo/vba/excel/XName.idl @@ -37,10 +37,10 @@ interface XName [attribute] string NameLocal; [attribute] boolean Visible; [attribute] string Value; - [attribute, readonly] string RefersTo; - [attribute, readonly] string RefersToLocal; - [attribute, readonly] string RefersToR1C1; - [attribute, readonly] string RefersToR1C1Local; + [attribute] string RefersTo; + [attribute] string RefersToLocal; + [attribute] string RefersToR1C1; + [attribute] string RefersToR1C1Local; [attribute, readonly] XRange RefersToRange; void Delete( ); diff --git a/sc/qa/extras/macros-test.cxx b/sc/qa/extras/macros-test.cxx index ad1df32..0ee6b9e 100644 --- a/sc/qa/extras/macros-test.cxx +++ b/sc/qa/extras/macros-test.cxx @@ -217,7 +217,10 @@ void ScMacrosTest::testVba() OUString("Workbooks."), OUString("vnd.sun.Star.script:VBAProject.testMacros.test?language=Basic&location=document") }, - + { + OUString("Names."), + OUString("vnd.sun.Star.script:VBAProject.testMacros.test?language=Basic&location=document") + }, }; rtl::OUString aFileExtension("xls"); diff --git a/sc/qa/unit/data/xls/Names.xls b/sc/qa/unit/data/xls/Names.xls new file mode 100755 index 0000000..fcacf9b Binary files /dev/null and b/sc/qa/unit/data/xls/Names.xls differ commit b4f069e21378c03a1306220b953eb1172df1a8bd Author: Noel Power <noel.po...@suse.com> Date: Wed May 15 09:50:05 2013 +0100 fix Workbooks.xls unit test ( was failing on windows ) was cherry-picked from f34c31560bb29f90d579a795cd9f7707163c025f Change-Id: I3f7bac8d071875a462f9f1a7180b8c6da93c8c70 diff --git a/sc/qa/extras/macros-test.cxx b/sc/qa/extras/macros-test.cxx index 0d792b1..ad1df32 100644 --- a/sc/qa/extras/macros-test.cxx +++ b/sc/qa/extras/macros-test.cxx @@ -225,12 +225,9 @@ void ScMacrosTest::testVba() OUString sTempDirURL; osl::FileBase:: getTempDirURL( sTempDirURL ); osl::FileBase::getSystemPathFromFileURL( sTempDirURL, sTempDir ); + sTempDir += OUString( SAL_PATHDELIMITER ); + OUString sTestFileName("My Test WorkBook.xls"); Sequence< uno::Any > aParams; - if ( !sTempDir.isEmpty() ) - { - aParams.realloc(1); - aParams[ 0 ] <<= sTempDir; - } for ( sal_uInt32 i=0; i<SAL_N_ELEMENTS( testInfo ); ++i ) { rtl::OUString aFileName; @@ -245,6 +242,14 @@ void ScMacrosTest::testVba() Sequence< sal_Int16 > aOutParamIndex; Sequence< Any > aOutParam; + bool bWorkbooksHandling = OUString( testInfo[i].sFileBaseName ).equalsAscii("Workbooks.") && !sTempDir.isEmpty() ; + if ( bWorkbooksHandling ) + { + aParams.realloc(2); + aParams[ 0 ] <<= sTempDir; + aParams[ 1 ] <<= sTestFileName; + } + SfxObjectShell* pFoundShell = SfxObjectShell::GetShellFromComponent(xComponent); CPPUNIT_ASSERT_MESSAGE("Failed to access document shell", pFoundShell); @@ -256,6 +261,14 @@ void ScMacrosTest::testVba() std::cout << "value of Ret " << rtl::OUStringToOString( aStringRes, RTL_TEXTENCODING_UTF8 ).getStr() << std::endl; CPPUNIT_ASSERT_MESSAGE( "script reported failure",aStringRes == "OK" ); pFoundShell->DoClose(); + if ( bWorkbooksHandling ) + { + OUString sFileUrl; + OUString sFilePath = sTempDir + sTestFileName; + osl::FileBase::getFileURLFromSystemPath( sFilePath, sFileUrl ); + if ( !sFileUrl.isEmpty() ) + osl::File::remove( sFileUrl ); + } } } diff --git a/sc/qa/unit/data/xls/Workbooks.xls b/sc/qa/unit/data/xls/Workbooks.xls index a732167..2e8a7e7 100755 Binary files a/sc/qa/unit/data/xls/Workbooks.xls and b/sc/qa/unit/data/xls/Workbooks.xls differ commit 999908d66f9960709ab4912177b9adb6b23ab337 Author: Noel Power <noel.po...@suse.com> Date: Fri May 10 20:09:04 2013 +0100 try fix build failure ( on some platforms ) uno::makeAny( 1 ) Change-Id: I0107fc919a785195a1247c08ae019ed3f48f7e7d (cherry picked from commit 5c20d05f925c9142f023ed910a1205acfc734c65) diff --git a/sc/source/ui/vba/vbanames.cxx b/sc/source/ui/vba/vbanames.cxx index e4f5503..f86b1d8 100644 --- a/sc/source/ui/vba/vbanames.cxx +++ b/sc/source/ui/vba/vbanames.cxx @@ -196,7 +196,8 @@ ScVbaNames::Add( const css::uno::Any& Name , if ( !xRange.is() ) xRange = new ScVbaRange( mxParent, mxContext, xUnoRange ); - uno::Reference< excel::XRange > xArea( xRange->Areas( uno::makeAny( 1 ) ), uno::UNO_QUERY ); + uno::Reference< excel::XRange > xArea( xRange->Areas( uno::makeAny( sal_Int32(1) ) ), uno::UNO_QUERY ); + uno::Any xAny = xArea->getCellRange() ; uno::Reference< sheet::XCellRangeAddressable > thisRangeAdd( xAny, ::uno::UNO_QUERY_THROW); commit 07334f694e413eb2f4839dddfa6feb9fa6a908b0 Author: Noel Power <noel.po...@suse.com> Date: Fri May 10 17:21:54 2013 +0100 fix various problems with vba Names & Names objects a) Name.Value attribute was read only b) Name.[Get|Set]Value not working property c) Name.ReferToR1C1xxx attributes not returning r1c1 related addresses d) Names.Add just not working( should return a reference to the new Name ) e) Names.Add not handling multi-area addresses, not constructing the Content for the names correctly cherry-picked from 566f52506e8e160540a3bcd0dc46f93e87e3155a Change-Id: I6f3c1cf029d5e4003c5900a4e9525f5a0d9a8ed6 diff --git a/oovbaapi/ooo/vba/excel/XName.idl b/oovbaapi/ooo/vba/excel/XName.idl index 379095b..dc6ba1c 100644 --- a/oovbaapi/ooo/vba/excel/XName.idl +++ b/oovbaapi/ooo/vba/excel/XName.idl @@ -36,7 +36,7 @@ interface XName [attribute] string Name; [attribute] string NameLocal; [attribute] boolean Visible; - [attribute, readonly] string Value; + [attribute] string Value; [attribute, readonly] string RefersTo; [attribute, readonly] string RefersToLocal; [attribute, readonly] string RefersToR1C1; diff --git a/sc/inc/nameuno.hxx b/sc/inc/nameuno.hxx index 02cf724..8e8a753 100644 --- a/sc/inc/nameuno.hxx +++ b/sc/inc/nameuno.hxx @@ -48,7 +48,7 @@ class ScRangeData; class ScTokenArray; class ScNamedRangesObj; -class ScNamedRangeObj : public ::cppu::WeakImplHelper6< +class SC_DLLPUBLIC ScNamedRangeObj : public ::cppu::WeakImplHelper6< ::com::sun::star::sheet::XNamedRange, ::com::sun::star::sheet::XFormulaTokens, ::com::sun::star::sheet::XCellRangeReferrer, @@ -64,6 +64,7 @@ private: com::sun::star::uno::Reference< com::sun::star::container::XNamed > mxSheet; private: +friend class ScVbaName; ScRangeData* GetRangeData_Impl(); void Modify_Impl( const String* pNewName, const ScTokenArray* pNewTokens, const String* pNewContent, diff --git a/sc/source/ui/vba/vbaname.cxx b/sc/source/ui/vba/vbaname.cxx index f6fc76e..b46b647 100644 --- a/sc/source/ui/vba/vbaname.cxx +++ b/sc/source/ui/vba/vbaname.cxx @@ -30,6 +30,9 @@ #include <vcl/msgbox.hxx> #include "tabvwsh.hxx" #include "viewdata.hxx" +#include "nameuno.hxx" +#include "compiler.hxx" +#include "tokenarray.hxx" using namespace ::ooo::vba; using namespace ::com::sun::star; @@ -94,81 +97,63 @@ ScVbaName::setVisible( sal_Bool /*bVisible*/ ) throw (css::uno::RuntimeException { } -::rtl::OUString -ScVbaName::getValue() throw (css::uno::RuntimeException) +OUString ScVbaName::getContent( const formula::FormulaGrammar::Grammar eGrammar, bool bPrependEquals ) { - ::rtl::OUString sValue = mxNamedRange->getContent(); - ::rtl::OUString sSheetName = getWorkSheet()->getName(); - ::rtl::OUString sSegmentation = ::rtl::OUString::createFromAscii( ";" ); - ::rtl::OUString sNewSegmentation = ::rtl::OUString::createFromAscii( "," ); - ::rtl::OUString sResult; - sal_Int32 nFrom = 0; - sal_Int32 nTo = 0; - nTo = sValue.indexOf( sSegmentation, nFrom ); - while ( nTo != -1 ) - { - ::rtl::OUString sTmpValue = sValue.copy( nFrom, nTo - nFrom ); - if ( sTmpValue.toChar() == '$' ) - { - ::rtl::OUString sTmp = sTmpValue.copy( 1 ); - sTmp = sTmp.replaceAt(0, OUString(sSheetName + ::rtl::OUString::createFromAscii(".")).getLength(), sSheetName + ::rtl::OUString::createFromAscii("!")); - sResult += sTmp; - sResult += sNewSegmentation; - } - nFrom = nTo + 1; - nTo = sValue.indexOf( sSegmentation, nFrom ); - } - ::rtl::OUString sTmpValue = sValue.copy( nFrom ); - if ( sTmpValue.toChar() == '$' ) + ScNamedRangeObj* pNamedRange = dynamic_cast< ScNamedRangeObj* >( mxNamedRange.get() ); + OUString aContent; + if ( pNamedRange ) { - ::rtl::OUString sTmp = sTmpValue.copy(1); - sTmp = sTmp.replaceAt(0, OUString(sSheetName + ::rtl::OUString::createFromAscii(".")).getLength(), sSheetName + ::rtl::OUString::createFromAscii("!")); - sResult += sTmp; + ScRangeData* pData = pNamedRange->GetRangeData_Impl(); + if (pData) + pData->GetSymbol( aContent, eGrammar ); } - if (sResult.indexOf('=') != 0) + if ( bPrependEquals ) { - sResult = ::rtl::OUString::createFromAscii("=") + sResult; + if (aContent.indexOf('=') != 0) + aContent = OUString::createFromAscii("=") + aContent; } - return sResult; + return aContent; } -void -ScVbaName::setValue( const ::rtl::OUString & rValue ) throw (css::uno::RuntimeException) +void ScVbaName::setContent( const OUString& rContent, const formula::FormulaGrammar::Grammar eGrammar, bool bRemoveEquals ) { - ::rtl::OUString sSheetName = getWorkSheet()->getName(); - ::rtl::OUString sValue = rValue; - ::rtl::OUString sSegmentation = ::rtl::OUString::createFromAscii( "," ); - ::rtl::OUString sNewSegmentation = ::rtl::OUString::createFromAscii( ";" ); - ::rtl::OUString sResult; - sal_Int32 nFrom = 0; - sal_Int32 nTo = 0; - if (sValue.indexOf('=') == 0) + OUString sContent( rContent ); + if ( bRemoveEquals ) { - ::rtl::OUString sTmp = sValue.copy(1); - sValue = sTmp; + if (sContent.indexOf('=') == 0) + sContent = sContent.copy(1); } - nTo = sValue.indexOf( sSegmentation, nFrom ); - while ( nTo != -1 ) + ScNamedRangeObj* pNamedRange = dynamic_cast< ScNamedRangeObj* >( mxNamedRange.get() ); + + // We should be able to do the below by just setting calling SetCode on pNamedRange + // right? + if ( pNamedRange && pNamedRange->pDocShell ) { - ::rtl::OUString sTmpValue = sValue.copy( nFrom, nTo - nFrom ); - sTmpValue = sTmpValue.replaceAt(0, OUString(sSheetName + ::rtl::OUString::createFromAscii("!")).getLength(), sSheetName + ::rtl::OUString::createFromAscii(".")); - if (sTmpValue.copy(0, sSheetName.getLength()).equals(sSheetName)) + ScDocument* pDoc = pNamedRange->pDocShell->GetDocument(); + ScRangeData* pOldData = pNamedRange->GetRangeData_Impl(); + if (pOldData) { - sTmpValue = ::rtl::OUString::createFromAscii("$") + sTmpValue; + // Shorter way of doing this ? + ScCompiler aComp( pDoc, pOldData->GetPos() ); + aComp.SetGrammar( eGrammar ); + ScTokenArray aArray(*aComp.CompileString( sContent ) ); + pOldData->SetCode( aArray ); } - sTmpValue += sNewSegmentation; - sResult += sTmpValue; - nFrom = nTo + 1; - nTo = sValue.indexOf( sSegmentation, nFrom ); } - ::rtl::OUString sTmpValue = sValue.copy( nFrom ); - sTmpValue = sTmpValue.replaceAt(0, OUString(sSheetName + ::rtl::OUString::createFromAscii("!")).getLength(), sSheetName + ::rtl::OUString::createFromAscii(".")); - if (sTmpValue.copy(0, sSheetName.getLength()).equals(sSheetName)) - { - sTmpValue = ::rtl::OUString::createFromAscii("$") + sTmpValue; - } - sResult += sTmpValue; - mxNamedRange->setContent(sResult); +} + +OUString +ScVbaName::getValue() throw (css::uno::RuntimeException) +{ + rtl::OUString sResult = getContent( formula::FormulaGrammar::GRAM_NATIVE_XL_A1, true ); + + return sResult; +} + +void +ScVbaName::setValue( const OUString & rValue ) throw (css::uno::RuntimeException) +{ + setContent( rValue, formula::FormulaGrammar::GRAM_NATIVE_XL_A1, true ); } ::rtl::OUString @@ -198,19 +183,20 @@ ScVbaName::setRefersToLocal( const ::rtl::OUString & rRefersTo ) throw (css::uno ::rtl::OUString ScVbaName::getRefersToR1C1() throw (css::uno::RuntimeException) { - return getRefersTo(); + rtl::OUString sResult = getContent( formula::FormulaGrammar::GRAM_NATIVE_XL_R1C1, true ); + return sResult; } void ScVbaName::setRefersToR1C1( const ::rtl::OUString & rRefersTo ) throw (css::uno::RuntimeException) { - setRefersTo( rRefersTo ); + setContent( rRefersTo, formula::FormulaGrammar::GRAM_NATIVE_XL_R1C1, true ); } ::rtl::OUString ScVbaName::getRefersToR1C1Local() throw (css::uno::RuntimeException) { - return getRefersTo(); + return getRefersToR1C1(); } void diff --git a/sc/source/ui/vba/vbaname.hxx b/sc/source/ui/vba/vbaname.hxx index 801d14f..85e4ce6 100644 --- a/sc/source/ui/vba/vbaname.hxx +++ b/sc/source/ui/vba/vbaname.hxx @@ -24,7 +24,7 @@ #include <com/sun/star/sheet/XNamedRanges.hpp> #include <vbahelper/vbahelperinterface.hxx> - +#include <formula/grammar.hxx> class ScDocument; typedef InheritedHelperInterfaceImpl1< ov::excel::XName > NameImpl_BASE; @@ -34,7 +34,8 @@ class ScVbaName : public NameImpl_BASE css::uno::Reference< css::frame::XModel > mxModel; css::uno::Reference< css::sheet::XNamedRange > mxNamedRange; css::uno::Reference< css::sheet::XNamedRanges > mxNames; - + OUString getContent( const formula::FormulaGrammar::Grammar eGrammar, bool prependEquals = true ); + void setContent( const OUString& sContent, const formula::FormulaGrammar::Grammar eGrammar, bool removeEquals = true ); protected: virtual css::uno::Reference< css::frame::XModel > getModel() { return mxModel; } virtual css::uno::Reference< ov::excel::XWorksheet > getWorkSheet() throw (css::uno::RuntimeException); diff --git a/sc/source/ui/vba/vbanames.cxx b/sc/source/ui/vba/vbanames.cxx index 5f1ea72..e4f5503 100644 --- a/sc/source/ui/vba/vbanames.cxx +++ b/sc/source/ui/vba/vbanames.cxx @@ -30,6 +30,9 @@ #include <vcl/msgbox.hxx> #include "tabvwsh.hxx" #include "viewdata.hxx" +#include "compiler.hxx" +#include "tokenarray.hxx" +#include "cellsuno.hxx" using namespace ::ooo::vba; using namespace ::com::sun::star; @@ -117,40 +120,109 @@ ScVbaNames::Add( const css::uno::Any& Name , uno::Reference< uno::XInterface >() ); } } + uno::Reference< table::XCellRange > xUnoRange; if ( RefersTo.hasValue() || RefersToR1C1.hasValue() || RefersToR1C1Local.hasValue() ) { + OUString sFormula; + + formula::FormulaGrammar::Grammar eGram = formula::FormulaGrammar::GRAM_NATIVE_XL_A1; if ( RefersTo.hasValue() ) - RefersTo >>= xRange; + { + if ( RefersTo.getValueTypeClass() == uno::TypeClass_STRING ) + RefersTo >>= sFormula; + else + RefersTo >>= xRange; + } if ( RefersToR1C1.hasValue() ) - RefersToR1C1 >>= xRange; + { + if ( RefersToR1C1.getValueTypeClass() == uno::TypeClass_STRING ) + { + RefersToR1C1 >>= sFormula; + eGram = formula::FormulaGrammar::GRAM_NATIVE_XL_R1C1; + } + else + RefersToR1C1 >>= xRange; + } if ( RefersToR1C1Local.hasValue() ) - RefersToR1C1Local >>= xRange; + { + if ( RefersToR1C1Local.getValueTypeClass() == uno::TypeClass_STRING ) + { + RefersToR1C1Local >>= sFormula; + eGram = formula::FormulaGrammar::GRAM_NATIVE_XL_R1C1; + } + else + RefersToR1C1Local >>= xRange; + } + if ( !xRange.is() && !sFormula.isEmpty() ) + { + ScAddress aBlank; + ScCompiler aComp( getScDocument(), aBlank ); + aComp.SetGrammar( eGram ); + ScTokenArray* pTokens = aComp.CompileString( sFormula ); + if ( pTokens ) + { + ScRange aRange; + ScDocShell* pDocSh = excel::getDocShell(getModel()); + if ( pTokens->IsValidReference( aRange ) ) + xUnoRange = new ScCellRangeObj( pDocSh, aRange ); + else + { + // assume it's an address try strip the '=' if it's there + // and try and create a range ( must be a better way ) + if ( sFormula.startsWith("=") ) + sFormula = sFormula.copy(1); + ScRangeList aCellRanges; + sal_uInt16 nFlags = 0; + + formula::FormulaGrammar::AddressConvention eConv = ( eGram == formula::FormulaGrammar::GRAM_NATIVE_XL_A1 ) ? formula::FormulaGrammar::CONV_XL_A1 : formula::FormulaGrammar::CONV_XL_R1C1; + if ( ScVbaRange::getCellRangesForAddress( nFlags, sFormula, pDocSh, aCellRanges, eConv , ',' ) ) + { + if ( aCellRanges.size() == 1 ) + xUnoRange = new ScCellRangeObj( pDocSh, *aCellRanges.front() ); + else + { + uno::Reference< sheet::XSheetCellRangeContainer > xRanges( new ScCellRangesObj( pDocSh, aCellRanges ) ); + xRange = new ScVbaRange( mxParent, mxContext, xRanges ); + } + } + + } + } + } } - if ( xRange.is() ) + if ( xRange.is() || xUnoRange.is() ) { - ScVbaRange* pRange = dynamic_cast< ScVbaRange* >( xRange.get() ); - uno::Reference< table::XCellRange > thisRange ; - uno::Any xAny = pRange->getCellRange() ; - if ( xAny.hasValue() ) - xAny >>= thisRange; - uno::Reference< sheet::XCellRangeAddressable > thisRangeAdd( thisRange, ::uno::UNO_QUERY_THROW); + if ( !xRange.is() ) + xRange = new ScVbaRange( mxParent, mxContext, xUnoRange ); + + uno::Reference< excel::XRange > xArea( xRange->Areas( uno::makeAny( 1 ) ), uno::UNO_QUERY ); + uno::Any xAny = xArea->getCellRange() ; + + uno::Reference< sheet::XCellRangeAddressable > thisRangeAdd( xAny, ::uno::UNO_QUERY_THROW); + table::CellRangeAddress aAddr = thisRangeAdd->getRangeAddress(); ScAddress aPos( static_cast< SCCOL >( aAddr.StartColumn ) , static_cast< SCROW >( aAddr.StartRow ) , static_cast< SCTAB >(aAddr.Sheet ) ); uno::Any xAny2 ; - String sRangeAdd = xRange->Address( xAny2, xAny2 , xAny2 , xAny2, xAny2 ); - String sTmp; - sTmp += "$"; - sTmp += UniString(xRange->getWorksheet()->getName()); - sTmp += "."; - sTmp += sRangeAdd; if ( mxNames.is() ) { RangeType nType = RT_NAME; table::CellAddress aCellAddr( aAddr.Sheet , aAddr.StartColumn , aAddr.StartRow ); if ( mxNames->hasByName( sName ) ) mxNames->removeByName(sName); - mxNames->addNewByName( sName , rtl::OUString(sTmp) , aCellAddr , (sal_Int32)nType); + OUString sTmp = "$"; + uno::Reference< ov::XCollection > xCol( xRange->Areas( uno::Any() ), uno::UNO_QUERY ); + for ( sal_Int32 nArea = 1; nArea <= xCol->getCount(); ++nArea ) + { + xArea.set( xRange->Areas( uno::makeAny( nArea ) ), uno::UNO_QUERY_THROW ); + + String sRangeAdd = xArea->Address( xAny2, xAny2 , xAny2 , xAny2, xAny2 ); + if ( nArea > 1 ) + sTmp += ","; + sTmp = sTmp + "'" + xRange->getWorksheet()->getName() + "'." + sRangeAdd; + } + mxNames->addNewByName( sName , sTmp , aCellAddr , (sal_Int32)nType); + return Item( uno::makeAny( sName ), uno::Any() ); } } return css::uno::Any(); commit 29f0c3dbe5a1266d0ef5df7fd144af3f3706cdc5 Author: Noel Power <noel.po...@suse.com> Date: Thu May 9 16:21:09 2013 +0100 fix wae Change-Id: I30481f8377d471a1bce50026adff53c15fbc6889 (cherry picked from commit d6fd3fa6e840c6374f53beeae54f4aa71d73ffcd) diff --git a/sc/source/ui/vba/vbaapplication.cxx b/sc/source/ui/vba/vbaapplication.cxx index 67b02ab..e1d0308 100644 --- a/sc/source/ui/vba/vbaapplication.cxx +++ b/sc/source/ui/vba/vbaapplication.cxx @@ -329,7 +329,7 @@ ScVbaApplication::getActiveCell() throw (uno::RuntimeException ) } uno::Any SAL_CALL -ScVbaApplication::International( sal_Int32 Index ) throw (uno::RuntimeException) +ScVbaApplication::International( sal_Int32 /*Index*/ ) throw (uno::RuntimeException) { // complete stub for now // #TODO flesh out some of the Indices we could handle _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits