Hi, This patch removes the duplicate Get/Set methods in appoptio.hxx which the vba api uses. There was a long discussion back in the day about this:
http://lists.freedesktop.org/archives/libreoffice/2011-June/013114.html I CC:ing Noel Power if he as some opinion regarding this. Now to the problem with this patch: This patch makes the build fail in when linking vbaobj.uno.so: /home/thuswa/work/libo2/workdir/unxlngi6.pro/CxxObject/sc/source/ui/vba/vbaapplication.o: In function `ScVbaApplication::getSheetsInNewWorkbook()': /home/thuswa/work/libo2/sc/source/ui/vba/vbaapplication.cxx:942: undefined reference to `ScModule::GetDefaultsOptions()' /home/thuswa/work/libo2/workdir/unxlngi6.pro/CxxObject/sc/source/ui/vba/vbaapplication.o: In function `ScVbaApplication::setSheetsInNewWorkbook(long)': /home/thuswa/work/libo2/sc/source/ui/vba/vbaapplication.cxx:955: undefined reference to `ScModule::GetDefaultsOptions()' collect2: ld returned 1 exit status make[1]: *** [/home/thuswa/work/libo2/workdir/unxlngi6.pro/LinkTarget/Library/vbaobj.uno.so] Error 1 make[1]: *** Waiting for unfinished jobs.... make: *** [sc] Error 2 I cant find a logical reason why this fails. The "scmod.hxx" which defines the symbol is included as before, also considering the minimal changes that I have made to the file: diff --git a/sc/source/ui/vba/vbaapplication.cxx b/sc/source/ui/vba/vbaapplication.cxx index d0201a4..478e8f4 100644 --- a/sc/source/ui/vba/vbaapplication.cxx +++ b/sc/source/ui/vba/vbaapplication.cxx @@ -79,7 +79,7 @@ #include "global.hxx" #include "scmod.hxx" #include "docoptio.hxx" -#include "appoptio.hxx" +#include "defaultsoptions.hxx" #include <osl/file.hxx> #include <rtl/instance.hxx> @@ -939,8 +939,8 @@ ScVbaApplication::setEnableCancelKey(sal_Int32 /*lEnableCancelKey*/) throw (uno: sal_Int32 SAL_CALL ScVbaApplication::getSheetsInNewWorkbook() throw (uno::RuntimeException) { - const ScAppOptions& rAppOpt = SC_MOD()->GetAppOptions(); - return rAppOpt.GetTabCountInNewSpreadsheet(); + const ScDefaultsOptions& rOpt = SC_MOD()->GetDefaultsOptions(); + return rOpt.GetInitTabCount(); } void SAL_CALL ScVbaApplication::setSheetsInNewWorkbook( sal_Int32 SheetsInNewWorkbook ) throw (script::BasicErrorException, uno::RuntimeException) @@ -952,8 +952,8 @@ void SAL_CALL ScVbaApplication::setSheetsInNewWorkbook( sal_Int32 SheetsInNewWor } else { - ScAppOptions& rAppOpt = const_cast< ScAppOptions& >(SC_MOD()->GetAppOptions()); - rAppOpt.SetTabCountInNewSpreadsheet( SheetsInNewWorkbook ); + ScDefaultsOptions& rOpt = const_cast< ScDefaultsOptions& >(SC_MOD()->GetDefaultsOptions()); + rOpt.SetInitTabCount( SheetsInNewWorkbook ); } } Is the vba part of the code treated in some special way? Wild guess: all symbols are not automatically exported to here (don't know if that is even possible)? Or what might be the problem? Thanks for your help. /Albert
From 8bac82d6ae0aea9d20c0ab90a0f608c5dd0f9bb1 Mon Sep 17 00:00:00 2001 From: Albert Thuswaldner <albert.thuswald...@gmail.com> Date: Tue, 17 Apr 2012 20:25:53 +0200 Subject: [PATCH] Removed duplicate set/get methods for initial tab count --- sc/inc/appoptio.hxx | 5 ----- sc/source/core/tool/appoptio.cxx | 4 ---- sc/source/ui/vba/vbaapplication.cxx | 10 +++++----- sc/source/ui/view/tabvwsh4.cxx | 11 +---------- 4 files changed, 6 insertions(+), 24 deletions(-) diff --git a/sc/inc/appoptio.hxx b/sc/inc/appoptio.hxx index b7f5fe8..d4cc424 100644 --- a/sc/inc/appoptio.hxx +++ b/sc/inc/appoptio.hxx @@ -46,10 +46,6 @@ public: void SetDefaults(); - // Set or get the initial tab count for new spreadsheet, it is used by VBA API currently. - void SetTabCountInNewSpreadsheet( SCTAB nCount ) { nTabCountInNewSpreadsheet = nCount; } - SCTAB GetTabCountInNewSpreadsheet() const { return nTabCountInNewSpreadsheet; } - void SetAppMetric( FieldUnit eUnit ) { eMetric = eUnit; } FieldUnit GetAppMetric() const { return eMetric; } void SetZoom( sal_uInt16 nNew ) { nZoom = nNew; } @@ -94,7 +90,6 @@ public: const ScAppOptions& operator= ( const ScAppOptions& rOpt ); private: - SCTAB nTabCountInNewSpreadsheet; FieldUnit eMetric; sal_uInt16 nLRUFuncCount; sal_uInt16* pLRUList; diff --git a/sc/source/core/tool/appoptio.cxx b/sc/source/core/tool/appoptio.cxx index 9b352b8..b864804 100644 --- a/sc/source/core/tool/appoptio.cxx +++ b/sc/source/core/tool/appoptio.cxx @@ -78,9 +78,6 @@ ScAppOptions::~ScAppOptions() void ScAppOptions::SetDefaults() { - // Set default tab count for new spreadsheet. - nTabCountInNewSpreadsheet = 0; - if ( ScOptionsUtil::IsMetricSystem() ) eMetric = FUNIT_CM; // default for countries with metric system else @@ -118,7 +115,6 @@ void ScAppOptions::SetDefaults() const ScAppOptions& ScAppOptions::operator=( const ScAppOptions& rCpy ) { - nTabCountInNewSpreadsheet = rCpy.nTabCountInNewSpreadsheet; eMetric = rCpy.eMetric; eZoomType = rCpy.eZoomType; bSynchronizeZoom = rCpy.bSynchronizeZoom; diff --git a/sc/source/ui/vba/vbaapplication.cxx b/sc/source/ui/vba/vbaapplication.cxx index d0201a4..478e8f4 100644 --- a/sc/source/ui/vba/vbaapplication.cxx +++ b/sc/source/ui/vba/vbaapplication.cxx @@ -79,7 +79,7 @@ #include "global.hxx" #include "scmod.hxx" #include "docoptio.hxx" -#include "appoptio.hxx" +#include "defaultsoptions.hxx" #include <osl/file.hxx> #include <rtl/instance.hxx> @@ -939,8 +939,8 @@ ScVbaApplication::setEnableCancelKey(sal_Int32 /*lEnableCancelKey*/) throw (uno: sal_Int32 SAL_CALL ScVbaApplication::getSheetsInNewWorkbook() throw (uno::RuntimeException) { - const ScAppOptions& rAppOpt = SC_MOD()->GetAppOptions(); - return rAppOpt.GetTabCountInNewSpreadsheet(); + const ScDefaultsOptions& rOpt = SC_MOD()->GetDefaultsOptions(); + return rOpt.GetInitTabCount(); } void SAL_CALL ScVbaApplication::setSheetsInNewWorkbook( sal_Int32 SheetsInNewWorkbook ) throw (script::BasicErrorException, uno::RuntimeException) @@ -952,8 +952,8 @@ void SAL_CALL ScVbaApplication::setSheetsInNewWorkbook( sal_Int32 SheetsInNewWor } else { - ScAppOptions& rAppOpt = const_cast< ScAppOptions& >(SC_MOD()->GetAppOptions()); - rAppOpt.SetTabCountInNewSpreadsheet( SheetsInNewWorkbook ); + ScDefaultsOptions& rOpt = const_cast< ScDefaultsOptions& >(SC_MOD()->GetDefaultsOptions()); + rOpt.SetInitTabCount( SheetsInNewWorkbook ); } } diff --git a/sc/source/ui/view/tabvwsh4.cxx b/sc/source/ui/view/tabvwsh4.cxx index 4cf2624..238d124 100644 --- a/sc/source/ui/view/tabvwsh4.cxx +++ b/sc/source/ui/view/tabvwsh4.cxx @@ -1605,19 +1605,10 @@ void ScTabViewShell::Construct( sal_uInt8 nForceDesignMode ) // append additional sheets (not for OLE object) if ( pDocSh->GetCreateMode() != SFX_CREATE_MODE_EMBEDDED ) { - // Get the customized initial tab count... - - // ... from option dialog. + // Get the customized initial tab count const ScDefaultsOptions& rOpt = SC_MOD()->GetDefaultsOptions(); SCTAB nInitTabCount = rOpt.GetInitTabCount(); - // ... by VBA API. - const ScAppOptions& rAppOpt = SC_MOD()->GetAppOptions(); - SCTAB nNewTabCount = rAppOpt.GetTabCountInNewSpreadsheet(); - if ( nNewTabCount >= 1 && nNewTabCount <= MAXTAB ) - { - nInitTabCount = nNewTabCount; - } for (SCTAB i=1; i<nInitTabCount; i++) pDoc->MakeTable(i,false); } -- 1.7.3.4
_______________________________________________ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice