summaryrefslogtreecommitdiff
path: root/vbahelper
diff options
context:
space:
mode:
authorNoel Power <noel.power@suse.com>2013-04-24 17:58:34 +0100
committerNoel Power <noel.power@suse.com>2013-04-26 15:30:36 +0100
commit4253c69b851bda470115d2b1a5f9a73d7f8e4da4 (patch)
tree35e79369bf7f98d4442d3ee60173579a4326c2a7 /vbahelper
parent0f9a9b5842ac747ddae6667e6c1e5b2ec0807f2d (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.hxx2
-rw-r--r--vbahelper/source/vbahelper/vbadocumentbase.cxx11
-rw-r--r--vbahelper/source/vbahelper/vbadocumentsbase.cxx5
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++;
}
}