summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2024-04-24 13:16:25 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2024-04-28 15:59:26 +0200
commit6a11bf9f7bd209a082254c861d5a04c7f5729d68 (patch)
tree65d68259d6bd771ff8310881b002b1348a7d7747
parent83236587bfca52513515b0b7a7dbfa18eed11503 (diff)
use more concrete UNO classes in writerfilter (SwXBookmark)
Change-Id: I8a0e9a83ef2bad7920067d108443b7b682f0660e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166786 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
-rw-r--r--sw/inc/unotxdoc.hxx2
-rw-r--r--sw/source/uibase/uno/unotxdoc.cxx8
-rw-r--r--sw/source/writerfilter/dmapper/DomainMapper_Impl.cxx20
3 files changed, 17 insertions, 13 deletions
diff --git a/sw/inc/unotxdoc.hxx b/sw/inc/unotxdoc.hxx
index 30edc2fb7c84..6a9b9de6fbe6 100644
--- a/sw/inc/unotxdoc.hxx
+++ b/sw/inc/unotxdoc.hxx
@@ -107,6 +107,7 @@ class SwXLinkTargetSupplier;
class SwXRedlines;
class SwXDocumentSettings;
class SwXTextDefaults;
+class SwXBookmark;
namespace com::sun::star::container { class XNameContainer; }
namespace com::sun::star::frame { class XController; }
namespace com::sun::star::lang { struct Locale; }
@@ -511,6 +512,7 @@ public:
SW_DLLPUBLIC rtl::Reference<SwXDocumentSettings> createDocumentSettings();
SW_DLLPUBLIC rtl::Reference<SwXTextDefaults> createTextDefaults();
+ SW_DLLPUBLIC rtl::Reference<SwXBookmark> createBookmark();
};
class SwXLinkTargetSupplier final : public cppu::WeakImplHelper
diff --git a/sw/source/uibase/uno/unotxdoc.cxx b/sw/source/uibase/uno/unotxdoc.cxx
index 3bbaa1014aff..e72cf2a59ec5 100644
--- a/sw/source/uibase/uno/unotxdoc.cxx
+++ b/sw/source/uibase/uno/unotxdoc.cxx
@@ -1667,6 +1667,14 @@ rtl::Reference< SwXTextDefaults > SwXTextDocument::createTextDefaults()
return new SwXTextDefaults(&GetDocOrThrow());
}
+rtl::Reference< SwXBookmark > SwXTextDocument::createBookmark()
+{
+ SolarMutexGuard aGuard;
+ ThrowIfInvalid();
+ return SwXBookmark::CreateXBookmark(GetDocOrThrow(), nullptr);
+}
+
+
Reference< XInterface > SwXTextDocument::createInstance(const OUString& rServiceName)
{
return create(rServiceName, nullptr);
diff --git a/sw/source/writerfilter/dmapper/DomainMapper_Impl.cxx b/sw/source/writerfilter/dmapper/DomainMapper_Impl.cxx
index db22d7f25fe6..103a836536bc 100644
--- a/sw/source/writerfilter/dmapper/DomainMapper_Impl.cxx
+++ b/sw/source/writerfilter/dmapper/DomainMapper_Impl.cxx
@@ -134,6 +134,7 @@
#include <unotxdoc.hxx>
#include <SwXDocumentSettings.hxx>
#include <SwXTextDefaults.hxx>
+#include <unobookmark.hxx>
#define REFFLDFLAG_STYLE_FROM_BOTTOM 0xc100
#define REFFLDFLAG_STYLE_HIDE_NON_NUMERICAL 0xc200
@@ -875,13 +876,8 @@ void DomainMapper_Impl::RemoveLastParagraph( )
if (sBookmarkNameAfterRemoval.isEmpty())
{
// Yes, it was removed. Restore
- uno::Reference<text::XTextContent> xBookmark(
- m_xTextDocument->createInstance("com.sun.star.text.Bookmark"),
- uno::UNO_QUERY_THROW);
-
- uno::Reference<container::XNamed> xBkmNamed(xBookmark,
- uno::UNO_QUERY_THROW);
- xBkmNamed->setName(sLastBookmarkName);
+ rtl::Reference<SwXBookmark> xBookmark(m_xTextDocument->createBookmark());
+ xBookmark->setName(sLastBookmarkName);
xTextAppend->insertTextContent(xCursor, xBookmark, !xCursor->isCollapsed());
}
}
@@ -8914,7 +8910,7 @@ void DomainMapper_Impl::StartOrEndBookmark( const OUString& rId )
{
if (m_xTextDocument)
{
- uno::Reference< text::XTextContent > xBookmark( m_xTextDocument->createInstance( "com.sun.star.text.Bookmark" ), uno::UNO_QUERY_THROW );
+ rtl::Reference<SwXBookmark> xBookmark( m_xTextDocument->createBookmark() );
uno::Reference< text::XTextCursor > xCursor;
uno::Reference< text::XText > xText = aBookmarkIter->second.m_xTextRange->getText();
if( aBookmarkIter->second.m_bIsStartOfText && !bIsAfterDummyPara)
@@ -8944,10 +8940,9 @@ void DomainMapper_Impl::StartOrEndBookmark( const OUString& rId )
xCursor->gotoRange(xStart, true );
}
}
- uno::Reference< container::XNamed > xBkmNamed( xBookmark, uno::UNO_QUERY_THROW );
SAL_WARN_IF(aBookmarkIter->second.m_sBookmarkName.isEmpty(), "writerfilter.dmapper", "anonymous bookmark");
//todo: make sure the name is not used already!
- xBkmNamed->setName( aBookmarkIter->second.m_sBookmarkName );
+ xBookmark->setName( aBookmarkIter->second.m_sBookmarkName );
xTextAppend->insertTextContent( uno::Reference< text::XTextRange >( xCursor, uno::UNO_QUERY_THROW), xBookmark, !xCursor->isCollapsed() );
}
m_aBookmarkMap.erase( aBookmarkIter );
@@ -9088,9 +9083,8 @@ void DomainMapper_Impl::startOrEndPermissionRange(sal_Int32 permissinId)
}
// create a new bookmark using specific bookmark name pattern for permissions
- uno::Reference< text::XTextContent > xPerm(m_xTextDocument->createInstance("com.sun.star.text.Bookmark"), uno::UNO_QUERY_THROW);
- uno::Reference< container::XNamed > xPermNamed(xPerm, uno::UNO_QUERY_THROW);
- xPermNamed->setName(aPermIter->second.createBookmarkName());
+ rtl::Reference< SwXBookmark > xPerm(m_xTextDocument->createBookmark());
+ xPerm->setName(aPermIter->second.createBookmarkName());
// add new bookmark
const bool bAbsorb = !xCursor->isCollapsed();