summaryrefslogtreecommitdiff
path: root/sw/source/ui/vba/vbafield.cxx
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2024-12-17 14:54:08 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2024-12-18 14:49:14 +0100
commit7e4b7be35cf38acdd67ecaeb63c1c5f152afd4f5 (patch)
tree5039f5aaee2a4c785d89c3f17089cb02f96de8bd /sw/source/ui/vba/vbafield.cxx
parent6b63318f73de07b9a9697284d018e1271cb3307c (diff)
use more concrete UNO in sw
Change-Id: Ie83d957349f123bca0fd46ce3144ce778c3ec101 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/178704 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Jenkins
Diffstat (limited to 'sw/source/ui/vba/vbafield.cxx')
-rw-r--r--sw/source/ui/vba/vbafield.cxx48
1 files changed, 31 insertions, 17 deletions
diff --git a/sw/source/ui/vba/vbafield.cxx b/sw/source/ui/vba/vbafield.cxx
index 75e5ee5ce965..d1114e1cacd7 100644
--- a/sw/source/ui/vba/vbafield.cxx
+++ b/sw/source/ui/vba/vbafield.cxx
@@ -29,6 +29,8 @@
#include <cppuhelper/implbase.hxx>
#include <sal/log.hxx>
#include <tools/long.hxx>
+#include <unotxdoc.hxx>
+#include <unofieldcoll.hxx>
#include <utility>
using namespace ::ooo::vba;
@@ -217,10 +219,11 @@ sal_Int32 SwVbaReadFieldParams::FindNextStringPiece(const sal_Int32 nStart)
// SwVbaFields
-static uno::Any lcl_createField( const uno::Reference< XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< frame::XModel >& xModel, const uno::Any& aSource )
+static uno::Any lcl_createField( const uno::Reference< XHelperInterface >& xParent,
+ const uno::Reference< uno::XComponentContext >& xContext,
+ const uno::Any& aSource )
{
uno::Reference< text::XTextField > xTextField( aSource, uno::UNO_QUERY_THROW );
- uno::Reference< text::XTextDocument > xTextDocument( xModel, uno::UNO_QUERY_THROW );
uno::Reference< word::XField > xField( new SwVbaField( xParent, xContext, xTextField ) );
return uno::Any( xField );
}
@@ -231,10 +234,17 @@ class FieldEnumeration : public ::cppu::WeakImplHelper< css::container::XEnumera
{
uno::Reference< XHelperInterface > mxParent;
uno::Reference< uno::XComponentContext > mxContext;
- uno::Reference< frame::XModel > mxModel;
+ rtl::Reference< SwXTextDocument > mxModel;
uno::Reference< container::XEnumeration > mxEnumeration;
public:
- FieldEnumeration( uno::Reference< XHelperInterface > xParent, uno::Reference< uno::XComponentContext > xContext, uno::Reference< frame::XModel > xModel, uno::Reference< container::XEnumeration > xEnumeration ) : mxParent(std::move( xParent )), mxContext(std::move( xContext )), mxModel(std::move( xModel )), mxEnumeration(std::move( xEnumeration ))
+ FieldEnumeration( uno::Reference< XHelperInterface > xParent,
+ uno::Reference< uno::XComponentContext > xContext,
+ rtl::Reference< SwXTextDocument > xModel,
+ uno::Reference< container::XEnumeration > xEnumeration )
+ : mxParent(std::move( xParent )),
+ mxContext(std::move( xContext )),
+ mxModel(std::move( xModel )),
+ mxEnumeration(std::move( xEnumeration ))
{
}
virtual sal_Bool SAL_CALL hasMoreElements( ) override
@@ -245,7 +255,7 @@ public:
{
if ( !hasMoreElements() )
throw container::NoSuchElementException();
- return lcl_createField( mxParent, mxContext, mxModel, mxEnumeration->nextElement() );
+ return lcl_createField( mxParent, mxContext, mxEnumeration->nextElement() );
}
};
@@ -254,14 +264,16 @@ class FieldCollectionHelper : public ::cppu::WeakImplHelper< container::XIndexAc
{
uno::Reference< XHelperInterface > mxParent;
uno::Reference< uno::XComponentContext > mxContext;
- uno::Reference< frame::XModel > mxModel;
- uno::Reference< container::XEnumerationAccess > mxEnumerationAccess;
+ rtl::Reference< SwXTextDocument > mxModel;
+ rtl::Reference< SwXTextFieldTypes > mxEnumerationAccess;
public:
/// @throws css::uno::RuntimeException
- FieldCollectionHelper( uno::Reference< XHelperInterface > xParent, uno::Reference< uno::XComponentContext > xContext, const uno::Reference< frame::XModel >& xModel ) : mxParent(std::move( xParent )), mxContext(std::move( xContext )), mxModel( xModel )
+ FieldCollectionHelper( uno::Reference< XHelperInterface > xParent,
+ uno::Reference< uno::XComponentContext > xContext,
+ const rtl::Reference< SwXTextDocument >& xModel )
+ : mxParent(std::move( xParent )), mxContext(std::move( xContext )), mxModel( xModel )
{
- uno::Reference< text::XTextFieldsSupplier > xSupp( xModel, uno::UNO_QUERY_THROW );
- mxEnumerationAccess.set( xSupp->getTextFields(), uno::UNO_SET_THROW );
+ mxEnumerationAccess = xModel->getSwTextFields();
}
// XElementAccess
virtual uno::Type SAL_CALL getElementType( ) override { return mxEnumerationAccess->getElementType(); }
@@ -305,9 +317,12 @@ public:
}
-SwVbaFields::SwVbaFields( const uno::Reference< XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext > & xContext, const uno::Reference< frame::XModel >& xModel ) : SwVbaFields_BASE( xParent, xContext , uno::Reference< container::XIndexAccess >( new FieldCollectionHelper( xParent, xContext, xModel ) ) ), mxModel( xModel )
+SwVbaFields::SwVbaFields( const uno::Reference< XHelperInterface >& xParent,
+ const uno::Reference< uno::XComponentContext > & xContext,
+ const rtl::Reference< SwXTextDocument >& xModel )
+: SwVbaFields_BASE( xParent, xContext , uno::Reference< container::XIndexAccess >( new FieldCollectionHelper( xParent, xContext, xModel ) ) ),
+ mxModel( xModel )
{
- mxMSF.set( mxModel, uno::UNO_QUERY_THROW );
}
uno::Reference< word::XField > SAL_CALL
@@ -349,7 +364,7 @@ SwVbaFields::Add( const css::uno::Reference< ::ooo::vba::word::XRange >& Range,
uno::Reference< text::XTextField > SwVbaFields::Create_Field_FileName( const OUString& _text )
{
- uno::Reference< text::XTextField > xTextField( mxMSF->createInstance(u"com.sun.star.text.TextField.FileName"_ustr), uno::UNO_QUERY_THROW );
+ uno::Reference< text::XTextField > xTextField( mxModel->createInstance(u"com.sun.star.text.TextField.FileName"_ustr), uno::UNO_QUERY_THROW );
sal_Int16 nFileFormat = text::FilenameDisplayFormat::NAME_AND_EXT;
if( !_text.isEmpty() )
{
@@ -469,7 +484,7 @@ uno::Reference< text::XTextField > SwVbaFields::Create_Field_DocProperty( const
throw uno::RuntimeException(u"Not implemented"_ustr );
}
- uno::Reference< text::XTextField > xTextField( mxMSF->createInstance( sFieldService ), uno::UNO_QUERY_THROW );
+ uno::Reference< text::XTextField > xTextField( mxModel->createInstance( sFieldService ), uno::UNO_QUERY_THROW );
if( bCustom )
{
@@ -491,7 +506,7 @@ SwVbaFields::createEnumeration()
uno::Any
SwVbaFields::createCollectionObject( const uno::Any& aSource )
{
- return lcl_createField( mxParent, mxContext, mxModel, aSource );
+ return lcl_createField( mxParent, mxContext, aSource );
}
sal_Int32 SAL_CALL SwVbaFields::Update()
@@ -499,8 +514,7 @@ sal_Int32 SAL_CALL SwVbaFields::Update()
sal_Int32 nUpdate = 1;
try
{
- uno::Reference< text::XTextFieldsSupplier > xSupp( mxModel, uno::UNO_QUERY_THROW );
- uno::Reference< util::XRefreshable > xRef( xSupp->getTextFields(), uno::UNO_QUERY_THROW );
+ rtl::Reference< SwXTextFieldTypes > xRef( mxModel->getSwTextFields() );
xRef->refresh();
nUpdate = 0;
}