diff options
author | Noel Power <noel.power@suse.com> | 2013-04-24 17:58:34 +0100 |
---|---|---|
committer | Noel Power <noel.power@suse.com> | 2013-04-26 15:30:36 +0100 |
commit | 4253c69b851bda470115d2b1a5f9a73d7f8e4da4 (patch) | |
tree | 35e79369bf7f98d4442d3ee60173579a4326c2a7 /vbahelper | |
parent | 0f9a9b5842ac747ddae6667e6c1e5b2ec0807f2d (diff) |
Parse workbook name correctly, don't fall over spaces etc.
Change-Id: I6b22cee7e417aeeff7fc9f41494c349398683a54
Diffstat (limited to 'vbahelper')
-rw-r--r-- | vbahelper/inc/vbahelper/vbadocumentbase.hxx | 2 | ||||
-rw-r--r-- | vbahelper/source/vbahelper/vbadocumentbase.cxx | 11 | ||||
-rw-r--r-- | vbahelper/source/vbahelper/vbadocumentsbase.cxx | 5 |
3 files changed, 13 insertions, 5 deletions
diff --git a/vbahelper/inc/vbahelper/vbadocumentbase.hxx b/vbahelper/inc/vbahelper/vbadocumentbase.hxx index 999cf551dc1a..aacbf4e1a1ab 100644 --- a/vbahelper/inc/vbahelper/vbadocumentbase.hxx +++ b/vbahelper/inc/vbahelper/vbadocumentbase.hxx @@ -59,6 +59,8 @@ public: // XHelperInterface virtual rtl::OUString getServiceImplName(); virtual css::uno::Sequence<rtl::OUString> getServiceNames(); + + static OUString getNameFromModel( const css::uno::Reference< css::frame::XModel >& xModel ); }; #endif /* VBA_DOCUMENTBASE_HXX */ diff --git a/vbahelper/source/vbahelper/vbadocumentbase.cxx b/vbahelper/source/vbahelper/vbadocumentbase.cxx index 7d1088314155..f6ace0778e66 100644 --- a/vbahelper/source/vbahelper/vbadocumentbase.cxx +++ b/vbahelper/source/vbahelper/vbadocumentbase.cxx @@ -58,16 +58,21 @@ VbaDocumentBase::VbaDocumentBase( uno::Sequence< uno::Any> const & args, OUString VbaDocumentBase::getName() throw (uno::RuntimeException) { - OUString sName = getModel()->getURL(); + return VbaDocumentBase::getNameFromModel( getModel() ); +} + +OUString VbaDocumentBase::getNameFromModel( const uno::Reference< frame::XModel >& xModel ) +{ + OUString sName = xModel.is() ? xModel->getURL() : OUString(); if ( !sName.isEmpty() ) { - INetURLObject aURL( getModel()->getURL() ); + INetURLObject aURL( xModel->getURL() ); ::osl::File::getSystemPathFromFileURL( aURL.GetLastName(), sName ); } else { - uno::Reference< frame::XTitle > xTitle( getModel(), uno::UNO_QUERY_THROW ); + uno::Reference< frame::XTitle > xTitle( xModel, uno::UNO_QUERY_THROW ); sName = xTitle->getTitle(); sName = sName.trim(); } diff --git a/vbahelper/source/vbahelper/vbadocumentsbase.cxx b/vbahelper/source/vbahelper/vbadocumentsbase.cxx index 479074f72a15..cb3be9bc5d02 100644 --- a/vbahelper/source/vbahelper/vbadocumentsbase.cxx +++ b/vbahelper/source/vbahelper/vbadocumentsbase.cxx @@ -49,6 +49,7 @@ #include "vbahelper/vbahelper.hxx" #include "vbahelper/vbaapplicationbase.hxx" +#include "vbahelper/vbadocumentbase.hxx" using namespace ::ooo::vba; using namespace ::com::sun::star; @@ -141,8 +142,8 @@ public: { uno::Reference< frame::XModel > xModel( xServiceInfo, uno::UNO_QUERY_THROW ); // that the spreadsheetdocument is a xmodel is a given m_documents.push_back( xModel ); - INetURLObject aURL( xModel->getURL() ); - namesToIndices[ aURL.GetLastName() ] = nIndex++; + OUString sName = VbaDocumentBase::getNameFromModel( xModel ); + namesToIndices[ sName ] = nIndex++; } } |