[Libreoffice-commits] core.git: sw/source

Noel Grandin noel.grandin at collabora.co.uk
Tue Sep 26 12:16:34 UTC 2017


 sw/source/core/access/accpara.cxx            |   77 --
 sw/source/core/unocore/SwXTextDefaults.cxx   |   61 -
 sw/source/core/unocore/unobkm.cxx            |   11 
 sw/source/core/unocore/unochart.cxx          |   17 
 sw/source/core/unocore/unocoll.cxx           |  282 +++----
 sw/source/core/unocore/unodraw.cxx           |  502 ++++++-------
 sw/source/core/unocore/unofield.cxx          |  130 +--
 sw/source/core/unocore/unoframe.cxx          |  853 +++++++++++-----------
 sw/source/core/unocore/unoidx.cxx            |    7 
 sw/source/core/unocore/unoobj.cxx            |   16 
 sw/source/core/unocore/unoport.cxx           |    7 
 sw/source/core/unocore/unoredline.cxx        |   41 -
 sw/source/core/unocore/unoredlines.cxx       |   12 
 sw/source/core/unocore/unosett.cxx           | 1007 +++++++++++++--------------
 sw/source/core/unocore/unosrch.cxx           |   94 +-
 sw/source/core/unocore/unostyle.cxx          |   61 -
 sw/source/core/unocore/unotbl.cxx            |  332 ++++----
 sw/source/core/unocore/unotextmarkup.cxx     |    7 
 sw/source/ui/vba/vbaborders.cxx              |   83 +-
 sw/source/ui/vba/vbaselection.cxx            |   22 
 sw/source/ui/vba/vbastyle.cxx                |   50 -
 sw/source/ui/vba/vbatemplate.cxx             |    8 
 sw/source/uibase/misc/glosdoc.cxx            |   12 
 sw/source/uibase/uno/SwXDocumentSettings.cxx |   78 +-
 sw/source/uibase/uno/unoatxt.cxx             |   49 -
 sw/source/uibase/uno/unomailmerge.cxx        |   10 
 sw/source/uibase/uno/unomod.cxx              |   54 -
 sw/source/uibase/uno/unotxdoc.cxx            |  348 ++++-----
 sw/source/uibase/uno/unotxvw.cxx             |  763 +++++++++-----------
 29 files changed, 2426 insertions(+), 2568 deletions(-)

New commits:
commit 0b4135ec9945ea627318ecf5fccc4b7d0940ff0d
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date:   Tue Sep 26 11:32:13 2017 +0200

    loplugin:flatten in sw
    
    Change-Id: I77d92e7adc9af5c88ca1930c25a0585713f9e0d3
    Reviewed-on: https://gerrit.libreoffice.org/42788
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>

diff --git a/sw/source/core/access/accpara.cxx b/sw/source/core/access/accpara.cxx
index d413cda631af..e25061c79c33 100644
--- a/sw/source/core/access/accpara.cxx
+++ b/sw/source/core/access/accpara.cxx
@@ -1289,12 +1289,10 @@ sal_Unicode SwAccessibleParagraph::getCharacter( sal_Int32 nIndex )
     OUString sText( GetString() );
 
     // return character (if valid)
-    if( IsValidChar(nIndex, sText.getLength() ) )
-    {
-        return sText[nIndex];
-    }
-    else
+    if( !IsValidChar(nIndex, sText.getLength() ) )
         throw lang::IndexOutOfBoundsException();
+
+    return sText[nIndex];
 }
 
 css::uno::Sequence< css::style::TabStop > SwAccessibleParagraph::GetCurrentTabStop( sal_Int32 nIndex  )
@@ -2515,13 +2513,11 @@ OUString SwAccessibleParagraph::getTextRange(
 
     OUString sText( GetString() );
 
-    if ( IsValidRange( nStartIndex, nEndIndex, sText.getLength() ) )
-    {
-        OrderRange( nStartIndex, nEndIndex );
-        return sText.copy(nStartIndex, nEndIndex-nStartIndex );
-    }
-    else
+    if ( !IsValidRange( nStartIndex, nEndIndex, sText.getLength() ) )
         throw lang::IndexOutOfBoundsException();
+
+    OrderRange( nStartIndex, nEndIndex );
+    return sText.copy(nStartIndex, nEndIndex-nStartIndex );
 }
 
 /*accessibility::*/TextSegment SwAccessibleParagraph::getTextAtIndex( sal_Int32 nIndex, sal_Int16 nTextType )
@@ -2792,44 +2788,43 @@ sal_Bool SwAccessibleParagraph::replaceText(
 
     const OUString& rText = GetString();
 
-    if( IsValidRange( nStartIndex, nEndIndex, rText.getLength() ) )
-    {
-        if( !IsEditableState() )
-            return false;
+    if( !IsValidRange( nStartIndex, nEndIndex, rText.getLength() ) )
+        throw lang::IndexOutOfBoundsException();
 
-        SwTextNode* pNode = const_cast<SwTextNode*>( GetTextNode() );
+    if( !IsEditableState() )
+        return false;
 
-        // translate positions
-        sal_Int32 nStart;
-        sal_Int32 nEnd;
-        bool bSuccess = GetPortionData().GetEditableRange(
-                                        nStartIndex, nEndIndex, nStart, nEnd );
+    SwTextNode* pNode = const_cast<SwTextNode*>( GetTextNode() );
 
-        // edit only if the range is editable
-        if( bSuccess )
-        {
-            // create SwPosition for nStartIndex
-            SwIndex aIndex( pNode, nStart );
-            SwPosition aStartPos( *pNode, aIndex );
+    // translate positions
+    sal_Int32 nStart;
+    sal_Int32 nEnd;
+    bool bSuccess = GetPortionData().GetEditableRange(
+                                    nStartIndex, nEndIndex, nStart, nEnd );
 
-            // create SwPosition for nEndIndex
-            SwPosition aEndPos( aStartPos );
-            aEndPos.nContent = nEnd;
+    // edit only if the range is editable
+    if( bSuccess )
+    {
+        // create SwPosition for nStartIndex
+        SwIndex aIndex( pNode, nStart );
+        SwPosition aStartPos( *pNode, aIndex );
 
-            // now create XTextRange as helper and set string
-            const uno::Reference<text::XTextRange> xRange(
-                SwXTextRange::CreateXTextRange(
-                    *pNode->GetDoc(), aStartPos, &aEndPos));
-            xRange->setString(sReplacement);
+        // create SwPosition for nEndIndex
+        SwPosition aEndPos( aStartPos );
+        aEndPos.nContent = nEnd;
 
-            // delete portion data
-            ClearPortionData();
-        }
+        // now create XTextRange as helper and set string
+        const uno::Reference<text::XTextRange> xRange(
+            SwXTextRange::CreateXTextRange(
+                *pNode->GetDoc(), aStartPos, &aEndPos));
+        xRange->setString(sReplacement);
 
-        return bSuccess;
+        // delete portion data
+        ClearPortionData();
     }
-    else
-        throw lang::IndexOutOfBoundsException();
+
+    return bSuccess;
+
 }
 
 sal_Bool SwAccessibleParagraph::setAttributes(
diff --git a/sw/source/core/unocore/SwXTextDefaults.cxx b/sw/source/core/unocore/SwXTextDefaults.cxx
index c90e1212a8f7..4cc17c2ab7cd 100644
--- a/sw/source/core/unocore/SwXTextDefaults.cxx
+++ b/sw/source/core/unocore/SwXTextDefaults.cxx
@@ -80,40 +80,37 @@ void SAL_CALL SwXTextDefaults::setPropertyValue( const OUString& rPropertyName,
              (RES_TXTATR_CHARFMT == pMap->nWID))
     {
         OUString uStyle;
-        if(aValue >>= uStyle)
+        if(!(aValue >>= uStyle))
+            throw lang::IllegalArgumentException();
+
+        OUString sStyle;
+        SwStyleNameMapper::FillUIName(uStyle, sStyle, SwGetPoolIdFromName::ChrFmt, true );
+        SwDocStyleSheet* pStyle =
+            static_cast<SwDocStyleSheet*>(m_pDoc->GetDocShell()->GetStyleSheetPool()->Find(sStyle, SfxStyleFamily::Char));
+        SwFormatDrop* pDrop = nullptr;
+        SwFormatCharFormat *pCharFormat = nullptr;
+        if(!pStyle)
+            throw lang::IllegalArgumentException();
+
+        rtl::Reference< SwDocStyleSheet > xStyle( new SwDocStyleSheet( *pStyle ) );
+        if (xStyle->GetCharFormat() == m_pDoc->GetDfltCharFormat())
+            return; // don't SetCharFormat with formats from mpDfltCharFormat
+
+        if (RES_PARATR_DROP == pMap->nWID)
         {
-            OUString sStyle;
-            SwStyleNameMapper::FillUIName(uStyle, sStyle, SwGetPoolIdFromName::ChrFmt, true );
-            SwDocStyleSheet* pStyle =
-                static_cast<SwDocStyleSheet*>(m_pDoc->GetDocShell()->GetStyleSheetPool()->Find(sStyle, SfxStyleFamily::Char));
-            SwFormatDrop* pDrop = nullptr;
-            SwFormatCharFormat *pCharFormat = nullptr;
-            if(pStyle)
-            {
-                rtl::Reference< SwDocStyleSheet > xStyle( new SwDocStyleSheet( *pStyle ) );
-                if (xStyle->GetCharFormat() == m_pDoc->GetDfltCharFormat())
-                    return; // don't SetCharFormat with formats from mpDfltCharFormat
-
-                if (RES_PARATR_DROP == pMap->nWID)
-                {
-                    pDrop = static_cast<SwFormatDrop*>(rItem.Clone());   // because rItem is const...
-                    pDrop->SetCharFormat(xStyle->GetCharFormat());
-                    m_pDoc->SetDefault(*pDrop);
-                }
-                else // RES_TXTATR_CHARFMT == pMap->nWID
-                {
-                    pCharFormat = static_cast<SwFormatCharFormat*>(rItem.Clone());   // because rItem is const...
-                    pCharFormat->SetCharFormat(xStyle->GetCharFormat());
-                    m_pDoc->SetDefault(*pCharFormat);
-                }
-            }
-            else
-                throw lang::IllegalArgumentException();
-            delete pDrop;
-            delete pCharFormat;
+            pDrop = static_cast<SwFormatDrop*>(rItem.Clone());   // because rItem is const...
+            pDrop->SetCharFormat(xStyle->GetCharFormat());
+            m_pDoc->SetDefault(*pDrop);
         }
-        else
-            throw lang::IllegalArgumentException();
+        else // RES_TXTATR_CHARFMT == pMap->nWID
+        {
+            pCharFormat = static_cast<SwFormatCharFormat*>(rItem.Clone());   // because rItem is const...
+            pCharFormat->SetCharFormat(xStyle->GetCharFormat());
+            m_pDoc->SetDefault(*pCharFormat);
+        }
+
+        delete pDrop;
+        delete pCharFormat;
     }
     else
     {
diff --git a/sw/source/core/unocore/unobkm.cxx b/sw/source/core/unocore/unobkm.cxx
index 6574c92ff75c..94b6c8053215 100644
--- a/sw/source/core/unocore/unobkm.cxx
+++ b/sw/source/core/unocore/unobkm.cxx
@@ -621,11 +621,10 @@ SwXFieldmark::setPropertyValue(const OUString& PropertyName,
     {
         ::sw::mark::ICheckboxFieldmark* pCheckboxFm = getCheckboxFieldmark();
         bool bChecked( false );
-        if ( pCheckboxFm && ( rValue >>= bChecked ) )
-            pCheckboxFm->SetChecked( bChecked );
-        else
+        if ( !(pCheckboxFm && ( rValue >>= bChecked )) )
             throw uno::RuntimeException();
 
+        pCheckboxFm->SetChecked( bChecked );
     }
     else
         SwXFieldmark_Base::setPropertyValue( PropertyName, rValue );
@@ -640,10 +639,10 @@ uno::Any SAL_CALL SwXFieldmark::getPropertyValue(const OUString& rPropertyName)
     if ( rPropertyName == "Checked" )
     {
         ::sw::mark::ICheckboxFieldmark* pCheckboxFm = getCheckboxFieldmark();
-        if ( pCheckboxFm )
-            return uno::makeAny( pCheckboxFm->IsChecked() );
-        else
+        if ( !pCheckboxFm )
             throw uno::RuntimeException();
+
+        return uno::makeAny( pCheckboxFm->IsChecked() );
     }
     return SwXFieldmark_Base::getPropertyValue( rPropertyName );
 }
diff --git a/sw/source/core/unocore/unochart.cxx b/sw/source/core/unocore/unochart.cxx
index 25217f56e2fa..03dac9d63e22 100644
--- a/sw/source/core/unocore/unochart.cxx
+++ b/sw/source/core/unocore/unochart.cxx
@@ -2172,13 +2172,11 @@ void SAL_CALL SwChartDataSequence::setPropertyValue(
     if (m_bDisposed)
         throw lang::DisposedException();
 
-    if (rPropertyName == UNO_NAME_ROLE)
-    {
-        if ( !(rValue >>= m_aRole) )
-            throw lang::IllegalArgumentException();
-    }
-    else
+    if (rPropertyName != UNO_NAME_ROLE)
         throw beans::UnknownPropertyException();
+
+    if ( !(rValue >>= m_aRole) )
+        throw lang::IllegalArgumentException();
 }
 
 uno::Any SAL_CALL SwChartDataSequence::getPropertyValue(
@@ -2188,13 +2186,10 @@ uno::Any SAL_CALL SwChartDataSequence::getPropertyValue(
     if (m_bDisposed)
         throw lang::DisposedException();
 
-    uno::Any aRes;
-    if (rPropertyName == UNO_NAME_ROLE)
-        aRes <<= m_aRole;
-    else
+    if (!(rPropertyName == UNO_NAME_ROLE))
         throw beans::UnknownPropertyException();
 
-    return aRes;
+    return uno::Any(m_aRole);
 }
 
 void SAL_CALL SwChartDataSequence::addPropertyChangeListener(
diff --git a/sw/source/core/unocore/unocoll.cxx b/sw/source/core/unocore/unocoll.cxx
index fa647bcf9f18..b02349a9e483 100644
--- a/sw/source/core/unocore/unocoll.cxx
+++ b/sw/source/core/unocore/unocoll.cxx
@@ -860,58 +860,55 @@ uno::Any SAL_CALL SwXTextTables::getByIndex(sal_Int32 nInputIndex)
 {
     SolarMutexGuard aGuard;
     uno::Any aRet;
-    if (IsValid())
-    {
-        if (nInputIndex < 0)
-            throw IndexOutOfBoundsException();
+    if (!IsValid())
+        throw uno::RuntimeException();
 
-        SwAutoFormatGetDocNode aGetHt( &GetDoc()->GetNodes() );
-        size_t nIndex = static_cast<size_t>(nInputIndex);
-        size_t nCurrentIndex = 0;
+    if (nInputIndex < 0)
+        throw IndexOutOfBoundsException();
 
-        for (SwFrameFormat* const & pFormat : *GetDoc()->GetTableFrameFormats())
+    SwAutoFormatGetDocNode aGetHt( &GetDoc()->GetNodes() );
+    size_t nIndex = static_cast<size_t>(nInputIndex);
+    size_t nCurrentIndex = 0;
+
+    for (SwFrameFormat* const & pFormat : *GetDoc()->GetTableFrameFormats())
+    {
+        if (!pFormat->GetInfo(aGetHt))
         {
-            if (!pFormat->GetInfo(aGetHt))
+            if (nCurrentIndex == nIndex)
             {
-                if (nCurrentIndex == nIndex)
-                {
-                    uno::Reference<XTextTable> xTable = SwXTextTables::GetObject(*pFormat);
-                    aRet <<= xTable;
-                    return aRet;
-                }
-                else
-                    nCurrentIndex++;
+                uno::Reference<XTextTable> xTable = SwXTextTables::GetObject(*pFormat);
+                aRet <<= xTable;
+                return aRet;
             }
+            else
+                nCurrentIndex++;
         }
-        throw IndexOutOfBoundsException();
     }
-    else
-        throw uno::RuntimeException();
+    throw IndexOutOfBoundsException();
 }
 
 uno::Any SwXTextTables::getByName(const OUString& rItemName)
 {
     SolarMutexGuard aGuard;
     uno::Any aRet;
-    if(IsValid())
+    if(!IsValid())
+        throw uno::RuntimeException();
+
+    const size_t nCount = GetDoc()->GetTableFrameFormatCount(true);
+    uno::Reference< XTextTable >  xTable;
+    for( size_t i = 0; i < nCount; ++i)
     {
-        const size_t nCount = GetDoc()->GetTableFrameFormatCount(true);
-        uno::Reference< XTextTable >  xTable;
-        for( size_t i = 0; i < nCount; ++i)
+        SwFrameFormat& rFormat = GetDoc()->GetTableFrameFormat(i, true);
+        if (rItemName == rFormat.GetName())
         {
-            SwFrameFormat& rFormat = GetDoc()->GetTableFrameFormat(i, true);
-            if (rItemName == rFormat.GetName())
-            {
-                xTable = SwXTextTables::GetObject(rFormat);
-                aRet <<= xTable;
-                break;
-            }
+            xTable = SwXTextTables::GetObject(rFormat);
+            aRet <<= xTable;
+            break;
         }
-        if(!xTable.is())
-            throw NoSuchElementException();
     }
-    else
-        throw uno::RuntimeException();
+    if(!xTable.is())
+        throw NoSuchElementException();
+
     return aRet;
 }
 
@@ -939,21 +936,19 @@ sal_Bool SwXTextTables::hasByName(const OUString& rName)
 {
     SolarMutexGuard aGuard;
     bool bRet= false;
-    if(IsValid())
+    if(!IsValid())
+        throw uno::RuntimeException();
+
+    const size_t nCount = GetDoc()->GetTableFrameFormatCount(true);
+    for( size_t i = 0; i < nCount; ++i)
     {
-        const size_t nCount = GetDoc()->GetTableFrameFormatCount(true);
-        for( size_t i = 0; i < nCount; ++i)
+        SwFrameFormat& rFormat = GetDoc()->GetTableFrameFormat(i, true);
+        if (rName == rFormat.GetName())
         {
-            SwFrameFormat& rFormat = GetDoc()->GetTableFrameFormat(i, true);
-            if (rName == rFormat.GetName())
-            {
-                bRet = true;
-                break;
-            }
+            bRet = true;
+            break;
         }
     }
-    else
-        throw uno::RuntimeException();
     return bRet;
 }
 
@@ -1416,31 +1411,28 @@ uno::Any SwXTextSections::getByIndex(sal_Int32 nIndex)
 {
     SolarMutexGuard aGuard;
     uno::Reference< XTextSection >  xRet;
-    if(IsValid())
-    {
-        SwSectionFormats& rFormats = GetDoc()->GetSections();
+    if(!IsValid())
+        throw uno::RuntimeException();
 
-        const SwSectionFormats& rSectFormats = GetDoc()->GetSections();
-        const size_t nCount = rSectFormats.size();
-        for(size_t i = 0; i < nCount; ++i)
-        {
-            if( !rSectFormats[i]->IsInNodesArr())
-                nIndex ++;
-            else if(static_cast<size_t>(nIndex) == i)
-                break;
-            if(static_cast<size_t>(nIndex) == i)
-                break;
-        }
-        if(nIndex >= 0 && static_cast<size_t>(nIndex) < rFormats.size())
-        {
-            SwSectionFormat* pFormat = rFormats[nIndex];
-            xRet = GetObject(*pFormat);
-        }
-        else
-            throw IndexOutOfBoundsException();
+    SwSectionFormats& rFormats = GetDoc()->GetSections();
+
+    const SwSectionFormats& rSectFormats = GetDoc()->GetSections();
+    const size_t nCount = rSectFormats.size();
+    for(size_t i = 0; i < nCount; ++i)
+    {
+        if( !rSectFormats[i]->IsInNodesArr())
+            nIndex ++;
+        else if(static_cast<size_t>(nIndex) == i)
+            break;
+        if(static_cast<size_t>(nIndex) == i)
+            break;
     }
-    else
-        throw uno::RuntimeException();
+    if(!(nIndex >= 0 && static_cast<size_t>(nIndex) < rFormats.size()))
+        throw IndexOutOfBoundsException();
+
+    SwSectionFormat* pFormat = rFormats[nIndex];
+    xRet = GetObject(*pFormat);
+
     return makeAny(xRet);
 }
 
@@ -1448,26 +1440,25 @@ uno::Any SwXTextSections::getByName(const OUString& rName)
 {
     SolarMutexGuard aGuard;
     uno::Any aRet;
-    if(IsValid())
+    if(!IsValid())
+        throw uno::RuntimeException();
+
+    SwSectionFormats& rFormats = GetDoc()->GetSections();
+    uno::Reference< XTextSection >  xSect;
+    for(size_t i = 0; i < rFormats.size(); ++i)
     {
-        SwSectionFormats& rFormats = GetDoc()->GetSections();
-        uno::Reference< XTextSection >  xSect;
-        for(size_t i = 0; i < rFormats.size(); ++i)
+        SwSectionFormat* pFormat = rFormats[i];
+        if (pFormat->IsInNodesArr()
+            && (rName == pFormat->GetSection()->GetSectionName()))
         {
-            SwSectionFormat* pFormat = rFormats[i];
-            if (pFormat->IsInNodesArr()
-                && (rName == pFormat->GetSection()->GetSectionName()))
-            {
-                xSect = GetObject(*pFormat);
-                aRet <<= xSect;
-                break;
-            }
+            xSect = GetObject(*pFormat);
+            aRet <<= xSect;
+            break;
         }
-        if(!xSect.is())
-            throw NoSuchElementException();
     }
-    else
-        throw uno::RuntimeException();
+    if(!xSect.is())
+        throw NoSuchElementException();
+
     return aRet;
 }
 
@@ -1538,13 +1529,12 @@ sal_Bool SwXTextSections::hasElements()
 {
     SolarMutexGuard aGuard;
     size_t nCount = 0;
-    if(IsValid())
-    {
-        SwSectionFormats& rFormats = GetDoc()->GetSections();
-        nCount = rFormats.size();
-    }
-    else
+    if(!IsValid())
         throw uno::RuntimeException();
+
+    SwSectionFormats& rFormats = GetDoc()->GetSections();
+    nCount = rFormats.size();
+
     return nCount > 0;
 }
 
@@ -1723,20 +1713,19 @@ uno::Any SwXNumberingRulesCollection::getByIndex(sal_Int32 nIndex)
 {
     SolarMutexGuard aGuard;
     uno::Any aRet;
-    if(IsValid())
-    {
-        uno::Reference< XIndexReplace >  xRef;
-        if ( static_cast<size_t>(nIndex) < GetDoc()->GetNumRuleTable().size() )
-        {
-            xRef = new SwXNumberingRules( *GetDoc()->GetNumRuleTable()[ nIndex ], GetDoc());
-            aRet <<= xRef;
-        }
+    if(!IsValid())
+        throw uno::RuntimeException();
 
-        if(!xRef.is())
-            throw IndexOutOfBoundsException();
+    uno::Reference< XIndexReplace >  xRef;
+    if ( static_cast<size_t>(nIndex) < GetDoc()->GetNumRuleTable().size() )
+    {
+        xRef = new SwXNumberingRules( *GetDoc()->GetNumRuleTable()[ nIndex ], GetDoc());
+        aRet <<= xRef;
     }
-    else
-        throw uno::RuntimeException();
+
+    if(!xRef.is())
+        throw IndexOutOfBoundsException();
+
     return aRet;
 }
 
@@ -1803,32 +1792,31 @@ uno::Any SwXFootnotes::getByIndex(sal_Int32 nIndex)
     SolarMutexGuard aGuard;
     uno::Any aRet;
     sal_Int32 nCount = 0;
-    if(IsValid())
+    if(!IsValid())
+        throw uno::RuntimeException();
+
+    const size_t nFootnoteCnt = GetDoc()->GetFootnoteIdxs().size();
+    SwTextFootnote* pTextFootnote;
+    uno::Reference< XFootnote >  xRef;
+    for( size_t n = 0; n < nFootnoteCnt; ++n )
     {
-        const size_t nFootnoteCnt = GetDoc()->GetFootnoteIdxs().size();
-        SwTextFootnote* pTextFootnote;
-        uno::Reference< XFootnote >  xRef;
-        for( size_t n = 0; n < nFootnoteCnt; ++n )
-        {
-            pTextFootnote = GetDoc()->GetFootnoteIdxs()[ n ];
-            const SwFormatFootnote& rFootnote = pTextFootnote->GetFootnote();
-            if ( rFootnote.IsEndNote() != m_bEndnote )
-                continue;
+        pTextFootnote = GetDoc()->GetFootnoteIdxs()[ n ];
+        const SwFormatFootnote& rFootnote = pTextFootnote->GetFootnote();
+        if ( rFootnote.IsEndNote() != m_bEndnote )
+            continue;
 
-            if(nCount == nIndex)
-            {
-                xRef = SwXFootnote::CreateXFootnote(*GetDoc(),
-                        &const_cast<SwFormatFootnote&>(rFootnote));
-                aRet <<= xRef;
-                break;
-            }
-            nCount++;
+        if(nCount == nIndex)
+        {
+            xRef = SwXFootnote::CreateXFootnote(*GetDoc(),
+                    &const_cast<SwFormatFootnote&>(rFootnote));
+            aRet <<= xRef;
+            break;
         }
-        if(!xRef.is())
-            throw IndexOutOfBoundsException();
+        nCount++;
     }
-    else
-        throw uno::RuntimeException();
+    if(!xRef.is())
+        throw IndexOutOfBoundsException();
+
     return aRet;
 }
 
@@ -1909,21 +1897,18 @@ uno::Any SwXReferenceMarks::getByName(const OUString& rName)
 {
     SolarMutexGuard aGuard;
     uno::Any aRet;
-    if(IsValid())
-    {
-        SwFormatRefMark *const pMark =
-            const_cast<SwFormatRefMark*>(GetDoc()->GetRefMark(rName));
-        if(pMark)
-        {
-            uno::Reference<XTextContent> const xRef =
-                SwXReferenceMark::CreateXReferenceMark(*GetDoc(), pMark);
-            aRet <<= xRef;
-        }
-        else
-            throw NoSuchElementException();
-    }
-    else
+    if(!IsValid())
         throw uno::RuntimeException();
+
+    SwFormatRefMark *const pMark =
+        const_cast<SwFormatRefMark*>(GetDoc()->GetRefMark(rName));
+    if(!pMark)
+        throw NoSuchElementException();
+
+    uno::Reference<XTextContent> const xRef =
+        SwXReferenceMark::CreateXReferenceMark(*GetDoc(), pMark);
+    aRet <<= xRef;
+
     return aRet;
 }
 
@@ -1931,17 +1916,16 @@ uno::Sequence< OUString > SwXReferenceMarks::getElementNames()
 {
     SolarMutexGuard aGuard;
     uno::Sequence<OUString> aRet;
-    if(IsValid())
-    {
-        std::vector<OUString> aStrings;
-        const sal_uInt16 nCount = GetDoc()->GetRefMarks( &aStrings );
-        aRet.realloc(nCount);
-        OUString* pNames = aRet.getArray();
-        for(sal_uInt16 i = 0; i < nCount; i++)
-            pNames[i] = aStrings[i];
-    }
-    else
+    if(!IsValid())
         throw uno::RuntimeException();
+
+    std::vector<OUString> aStrings;
+    const sal_uInt16 nCount = GetDoc()->GetRefMarks( &aStrings );
+    aRet.realloc(nCount);
+    OUString* pNames = aRet.getArray();
+    for(sal_uInt16 i = 0; i < nCount; i++)
+        pNames[i] = aStrings[i];
+
     return aRet;
 }
 
diff --git a/sw/source/core/unocore/unodraw.cxx b/sw/source/core/unocore/unodraw.cxx
index 6a6da5c57d9e..f76260626e28 100644
--- a/sw/source/core/unocore/unodraw.cxx
+++ b/sw/source/core/unocore/unodraw.cxx
@@ -673,20 +673,19 @@ void SwXDrawPage::add(const uno::Reference< drawing::XShape > & xShape)
     if( pDesc && (xRg = pDesc->GetTextRange()).is() )
     {
         pInternalPam = new SwUnoInternalPaM(*pDoc);
-        if (::sw::XTextRangeToSwPaM(*pInternalPam, xRg))
+        if (!::sw::XTextRangeToSwPaM(*pInternalPam, xRg))
+            throw uno::RuntimeException();
+
+        if(RndStdIds::FLY_AT_FLY == aAnchor.GetAnchorId() &&
+                            !pInternalPam->GetNode().FindFlyStartNode())
         {
-            if(RndStdIds::FLY_AT_FLY == aAnchor.GetAnchorId() &&
-                                !pInternalPam->GetNode().FindFlyStartNode())
-            {
-                        aAnchor.SetType(RndStdIds::FLY_AS_CHAR);
-            }
-            else if (RndStdIds::FLY_AT_PAGE == aAnchor.GetAnchorId())
-            {
-                aAnchor.SetAnchor(pInternalPam->Start());
-            }
+                    aAnchor.SetType(RndStdIds::FLY_AS_CHAR);
         }
-        else
-            throw uno::RuntimeException();
+        else if (RndStdIds::FLY_AT_PAGE == aAnchor.GetAnchorId())
+        {
+            aAnchor.SetAnchor(pInternalPam->Start());
+        }
+
     }
     else if ((aAnchor.GetAnchorId() != RndStdIds::FLY_AT_PAGE) && pDoc->getIDocumentLayoutAccess().GetCurrentLayout())
     {
@@ -1128,49 +1127,48 @@ void SwXShape::setPropertyValue(const OUString& rPropertyName, const uno::Any& a
                                         new SwUnoInternalPaM( *(pFormat->GetDoc()) ));
                         uno::Reference< text::XTextRange > xRg;
                         aValue >>= xRg;
-                        if (::sw::XTextRangeToSwPaM(*pInternalPam, xRg) )
+                        if (!::sw::XTextRangeToSwPaM(*pInternalPam, xRg) )
                         {
-                            if (aAnchor.GetAnchorId() == RndStdIds::FLY_AS_CHAR)
-                            {
-                                //delete old SwFormatFlyCnt
-                                //With AnchorAsCharacter the current TextAttribute has to be deleted.
-                                //Tbis removes the frame format too.
-                                //To prevent this the connection between format and attribute has to be broken before.
-                                const SwPosition *pPos = aAnchor.GetContentAnchor();
-                                SwTextNode *pTextNode = pPos->nNode.GetNode().GetTextNode();
-                                SAL_WARN_IF( !pTextNode->HasHints(), "sw.uno", "Missing FlyInCnt-Hint." );
-                                const sal_Int32 nIdx = pPos->nContent.GetIndex();
-                                SwTextAttr * const pHint =
-                                    pTextNode->GetTextAttrForCharAt(
-                                        nIdx, RES_TXTATR_FLYCNT );
-                                assert(pHint && "Missing Hint.");
-                                SAL_WARN_IF( pHint->Which() != RES_TXTATR_FLYCNT,
-                                            "sw.uno", "Missing FlyInCnt-Hint." );
-                                SAL_WARN_IF( pHint->GetFlyCnt().GetFrameFormat() != pFormat,
-                                            "sw.uno", "Wrong TextFlyCnt-Hint." );
-                                const_cast<SwFormatFlyCnt&>(pHint->GetFlyCnt())
-                                    .SetFlyFormat();
-
-                                //The connection is removed now the attribute can be deleted.
-                                pTextNode->DeleteAttributes( RES_TXTATR_FLYCNT, nIdx );
-                                //create a new one
-                                SwTextNode *pNd = pInternalPam->GetNode().GetTextNode();
-                                SAL_WARN_IF( !pNd, "sw.uno", "Cursor not at TextNode." );
-                                SwFormatFlyCnt aFormat( pFormat );
-                                pNd->InsertItem(aFormat, pInternalPam->GetPoint()
-                                        ->nContent.GetIndex(), 0 );
-                            }
-                            else
-                            {
-                                aAnchor.SetAnchor( pInternalPam->GetPoint() );
-                                aSet.Put(aAnchor);
-                                pFormat->SetFormatAttr(aSet);
-                            }
+                            throw uno::RuntimeException();
+                        }
+
+                        if (aAnchor.GetAnchorId() == RndStdIds::FLY_AS_CHAR)
+                        {
+                            //delete old SwFormatFlyCnt
+                            //With AnchorAsCharacter the current TextAttribute has to be deleted.
+                            //Tbis removes the frame format too.
+                            //To prevent this the connection between format and attribute has to be broken before.
+                            const SwPosition *pPos = aAnchor.GetContentAnchor();
+                            SwTextNode *pTextNode = pPos->nNode.GetNode().GetTextNode();
+                            SAL_WARN_IF( !pTextNode->HasHints(), "sw.uno", "Missing FlyInCnt-Hint." );
+                            const sal_Int32 nIdx = pPos->nContent.GetIndex();
+                            SwTextAttr * const pHint =
+                                pTextNode->GetTextAttrForCharAt(
+                                    nIdx, RES_TXTATR_FLYCNT );
+                            assert(pHint && "Missing Hint.");
+                            SAL_WARN_IF( pHint->Which() != RES_TXTATR_FLYCNT,
+                                        "sw.uno", "Missing FlyInCnt-Hint." );
+                            SAL_WARN_IF( pHint->GetFlyCnt().GetFrameFormat() != pFormat,
+                                        "sw.uno", "Wrong TextFlyCnt-Hint." );
+                            const_cast<SwFormatFlyCnt&>(pHint->GetFlyCnt())
+                                .SetFlyFormat();
+
+                            //The connection is removed now the attribute can be deleted.
+                            pTextNode->DeleteAttributes( RES_TXTATR_FLYCNT, nIdx );
+                            //create a new one
+                            SwTextNode *pNd = pInternalPam->GetNode().GetTextNode();
+                            SAL_WARN_IF( !pNd, "sw.uno", "Cursor not at TextNode." );
+                            SwFormatFlyCnt aFormat( pFormat );
+                            pNd->InsertItem(aFormat, pInternalPam->GetPoint()
+                                    ->nContent.GetIndex(), 0 );
                         }
                         else
                         {
-                            throw uno::RuntimeException();
+                            aAnchor.SetAnchor( pInternalPam->GetPoint() );
+                            aSet.Put(aAnchor);
+                            pFormat->SetFormatAttr(aSet);
                         }
+
                     }
                 }
                 else if (pEntry->nWID == FN_TEXT_BOX)
@@ -1760,112 +1758,111 @@ uno::Sequence< beans::PropertyState > SwXShape::getPropertyStates(
     SolarMutexGuard aGuard;
     SwFrameFormat*   pFormat = GetFrameFormat();
     uno::Sequence< beans::PropertyState > aRet(aPropertyNames.getLength());
-    if(xShapeAgg.is())
+    if(!xShapeAgg.is())
+        throw uno::RuntimeException();
+
+    SvxShape* pSvxShape = GetSvxShape();
+    bool bGroupMember = false;
+    bool bFormControl = false;
+    SdrObject* pObject = pSvxShape ? pSvxShape->GetSdrObject() : nullptr;
+    if(pObject)
     {
-        SvxShape* pSvxShape = GetSvxShape();
-        bool bGroupMember = false;
-        bool bFormControl = false;
-        SdrObject* pObject = pSvxShape ? pSvxShape->GetSdrObject() : nullptr;
-        if(pObject)
-        {
-            bGroupMember = pObject->GetUpGroup() != nullptr;
-            bFormControl = pObject->GetObjInventor() == SdrInventor::FmForm;
-        }
-        const OUString* pNames = aPropertyNames.getConstArray();
-        beans::PropertyState* pRet = aRet.getArray();
-        uno::Reference< XPropertyState >  xShapePrState;
-        for(sal_Int32 nProperty = 0; nProperty < aPropertyNames.getLength(); nProperty++)
+        bGroupMember = pObject->GetUpGroup() != nullptr;
+        bFormControl = pObject->GetObjInventor() == SdrInventor::FmForm;
+    }
+    const OUString* pNames = aPropertyNames.getConstArray();
+    beans::PropertyState* pRet = aRet.getArray();
+    uno::Reference< XPropertyState >  xShapePrState;
+    for(sal_Int32 nProperty = 0; nProperty < aPropertyNames.getLength(); nProperty++)
+    {
+        const SfxItemPropertySimpleEntry*  pEntry = m_pPropSet->getPropertyMap().getByName( pNames[nProperty] );
+        if(pEntry)
         {
-            const SfxItemPropertySimpleEntry*  pEntry = m_pPropSet->getPropertyMap().getByName( pNames[nProperty] );
-            if(pEntry)
+            if(RES_OPAQUE == pEntry->nWID)
+                pRet[nProperty] = bFormControl ?
+                    beans::PropertyState_DEFAULT_VALUE : beans::PropertyState_DIRECT_VALUE;
+            else if(FN_ANCHOR_POSITION == pEntry->nWID)
+                pRet[nProperty] = beans::PropertyState_DIRECT_VALUE;
+            else if(FN_TEXT_RANGE == pEntry->nWID)
+                pRet[nProperty] = beans::PropertyState_DIRECT_VALUE;
+            else if(bGroupMember)
+                pRet[nProperty] = beans::PropertyState_DEFAULT_VALUE;
+            else if (pEntry->nWID == RES_FRM_SIZE &&
+                     (pEntry->nMemberId == MID_FRMSIZE_REL_HEIGHT_RELATION ||
+                      pEntry->nMemberId == MID_FRMSIZE_REL_WIDTH_RELATION))
+                pRet[nProperty] = beans::PropertyState_DIRECT_VALUE;
+            else if (pEntry->nWID == FN_TEXT_BOX)
             {
-                if(RES_OPAQUE == pEntry->nWID)
-                    pRet[nProperty] = bFormControl ?
-                        beans::PropertyState_DEFAULT_VALUE : beans::PropertyState_DIRECT_VALUE;
-                else if(FN_ANCHOR_POSITION == pEntry->nWID)
-                    pRet[nProperty] = beans::PropertyState_DIRECT_VALUE;
-                else if(FN_TEXT_RANGE == pEntry->nWID)
+                // The TextBox property is set, if we can find a textbox for this shape.
+                if (pFormat && SwTextBoxHelper::isTextBox(pFormat, RES_DRAWFRMFMT))
                     pRet[nProperty] = beans::PropertyState_DIRECT_VALUE;
-                else if(bGroupMember)
+                else
                     pRet[nProperty] = beans::PropertyState_DEFAULT_VALUE;
-                else if (pEntry->nWID == RES_FRM_SIZE &&
-                         (pEntry->nMemberId == MID_FRMSIZE_REL_HEIGHT_RELATION ||
-                          pEntry->nMemberId == MID_FRMSIZE_REL_WIDTH_RELATION))
-                    pRet[nProperty] = beans::PropertyState_DIRECT_VALUE;
-                else if (pEntry->nWID == FN_TEXT_BOX)
-                {
-                    // The TextBox property is set, if we can find a textbox for this shape.
-                    if (pFormat && SwTextBoxHelper::isTextBox(pFormat, RES_DRAWFRMFMT))
-                        pRet[nProperty] = beans::PropertyState_DIRECT_VALUE;
-                    else
-                        pRet[nProperty] = beans::PropertyState_DEFAULT_VALUE;
-                }
-                else if(pFormat)
-                {
-                    const SwAttrSet& rSet = pFormat->GetAttrSet();
-                    SfxItemState eItemState = rSet.GetItemState(pEntry->nWID, false);
+            }
+            else if(pFormat)
+            {
+                const SwAttrSet& rSet = pFormat->GetAttrSet();
+                SfxItemState eItemState = rSet.GetItemState(pEntry->nWID, false);
 
-                    if(SfxItemState::SET == eItemState)
-                        pRet[nProperty] = beans::PropertyState_DIRECT_VALUE;
-                    else if(SfxItemState::DEFAULT == eItemState)
-                        pRet[nProperty] = beans::PropertyState_DEFAULT_VALUE;
-                    else
-                        pRet[nProperty] = beans::PropertyState_AMBIGUOUS_VALUE;
-                }
+                if(SfxItemState::SET == eItemState)
+                    pRet[nProperty] = beans::PropertyState_DIRECT_VALUE;
+                else if(SfxItemState::DEFAULT == eItemState)
+                    pRet[nProperty] = beans::PropertyState_DEFAULT_VALUE;
                 else
+                    pRet[nProperty] = beans::PropertyState_AMBIGUOUS_VALUE;
+            }
+            else
+            {
+                SfxPoolItem* pItem = nullptr;
+                switch(pEntry->nWID)
                 {
-                    SfxPoolItem* pItem = nullptr;
-                    switch(pEntry->nWID)
+                    case RES_ANCHOR:
+                        pItem = pImpl->GetAnchor();
+                    break;
+                    case RES_HORI_ORIENT:
+                        pItem = pImpl->GetHOrient();
+                    break;
+                    case RES_VERT_ORIENT:
+                        pItem = pImpl->GetVOrient();
+                    break;
+                    case  RES_LR_SPACE:
+                        pItem = pImpl->GetLRSpace();
+                    break;
+                    case  RES_UL_SPACE:
+                        pItem = pImpl->GetULSpace();
+                    break;
+                    case  RES_SURROUND:
+                        pItem = pImpl->GetSurround();
+                    break;
+                    // #i28701#
+                    case RES_WRAP_INFLUENCE_ON_OBJPOS:
                     {
-                        case RES_ANCHOR:
-                            pItem = pImpl->GetAnchor();
-                        break;
-                        case RES_HORI_ORIENT:
-                            pItem = pImpl->GetHOrient();
-                        break;
-                        case RES_VERT_ORIENT:
-                            pItem = pImpl->GetVOrient();
-                        break;
-                        case  RES_LR_SPACE:
-                            pItem = pImpl->GetLRSpace();
-                        break;
-                        case  RES_UL_SPACE:
-                            pItem = pImpl->GetULSpace();
-                        break;
-                        case  RES_SURROUND:
-                            pItem = pImpl->GetSurround();
-                        break;
-                        // #i28701#
-                        case RES_WRAP_INFLUENCE_ON_OBJPOS:
-                        {
-                            pItem = pImpl->GetWrapInfluenceOnObjPos();
-                        }
-                        break;
+                        pItem = pImpl->GetWrapInfluenceOnObjPos();
                     }
-                    if(pItem)
-                        pRet[nProperty] = beans::PropertyState_DIRECT_VALUE;
-                    else
-                        pRet[nProperty] = beans::PropertyState_DEFAULT_VALUE;
+                    break;
                 }
+                if(pItem)
+                    pRet[nProperty] = beans::PropertyState_DIRECT_VALUE;
+                else
+                    pRet[nProperty] = beans::PropertyState_DEFAULT_VALUE;
             }
-            else
+        }
+        else
+        {
+            if(!xShapePrState.is())
             {
-                if(!xShapePrState.is())
-                {
-                    const uno::Type& rPStateType = cppu::UnoType<XPropertyState>::get();
-                    uno::Any aPState = xShapeAgg->queryAggregation(rPStateType);
-                    auto ps = o3tl::tryAccess<uno::Reference<XPropertyState>>(
-                        aPState);
-                    if(!ps)
-                        throw uno::RuntimeException();
-                    xShapePrState = *ps;
-                }
-                pRet[nProperty] = xShapePrState->getPropertyState(pNames[nProperty]);
+                const uno::Type& rPStateType = cppu::UnoType<XPropertyState>::get();
+                uno::Any aPState = xShapeAgg->queryAggregation(rPStateType);
+                auto ps = o3tl::tryAccess<uno::Reference<XPropertyState>>(
+                    aPState);
+                if(!ps)
+                    throw uno::RuntimeException();
+                xShapePrState = *ps;
             }
+            pRet[nProperty] = xShapePrState->getPropertyState(pNames[nProperty]);
         }
     }
-    else
-        throw uno::RuntimeException();
+
     return aRet;
 }
 
@@ -1873,62 +1870,61 @@ void SwXShape::setPropertyToDefault( const OUString& rPropertyName )
 {
     SolarMutexGuard aGuard;
     SwFrameFormat*   pFormat = GetFrameFormat();
-    if(xShapeAgg.is())
+    if(!xShapeAgg.is())
+        throw uno::RuntimeException();
+
+    const SfxItemPropertySimpleEntry*  pEntry = m_pPropSet->getPropertyMap().getByName( rPropertyName );
+    if(pEntry)
     {
-        const SfxItemPropertySimpleEntry*  pEntry = m_pPropSet->getPropertyMap().getByName( rPropertyName );
-        if(pEntry)
+        if ( pEntry->nFlags & beans::PropertyAttribute::READONLY)
+            throw uno::RuntimeException("Property is read-only: " + rPropertyName, static_cast < cppu::OWeakObject * > ( this ) );
+        if(pFormat)
         {
-            if ( pEntry->nFlags & beans::PropertyAttribute::READONLY)
-                throw uno::RuntimeException("Property is read-only: " + rPropertyName, static_cast < cppu::OWeakObject * > ( this ) );
-            if(pFormat)
-            {
-                const SfxItemSet& rSet = pFormat->GetAttrSet();
-                SfxItemSet aSet(pFormat->GetDoc()->GetAttrPool(), {{pEntry->nWID, pEntry->nWID}});
-                aSet.SetParent(&rSet);
-                aSet.ClearItem(pEntry->nWID);
-                pFormat->GetDoc()->SetAttr(aSet, *pFormat);
-            }
-            else
+            const SfxItemSet& rSet = pFormat->GetAttrSet();
+            SfxItemSet aSet(pFormat->GetDoc()->GetAttrPool(), {{pEntry->nWID, pEntry->nWID}});
+            aSet.SetParent(&rSet);
+            aSet.ClearItem(pEntry->nWID);
+            pFormat->GetDoc()->SetAttr(aSet, *pFormat);
+        }
+        else
+        {
+            switch(pEntry->nWID)
             {
-                switch(pEntry->nWID)
+                case RES_ANCHOR:        pImpl->RemoveAnchor();  break;
+                case RES_HORI_ORIENT:   pImpl->RemoveHOrient(); break;
+                case RES_VERT_ORIENT:   pImpl->RemoveVOrient(); break;
+                case  RES_LR_SPACE:     pImpl->RemoveLRSpace(); break;
+                case  RES_UL_SPACE:     pImpl->RemoveULSpace(); break;
+                case  RES_SURROUND:     pImpl->RemoveSurround();break;
+                case RES_OPAQUE :       pImpl->SetOpaque(false);  break;
+                case FN_TEXT_RANGE :
+                break;
+                // #i26791#
+                case RES_FOLLOW_TEXT_FLOW:
                 {
-                    case RES_ANCHOR:        pImpl->RemoveAnchor();  break;
-                    case RES_HORI_ORIENT:   pImpl->RemoveHOrient(); break;
-                    case RES_VERT_ORIENT:   pImpl->RemoveVOrient(); break;
-                    case  RES_LR_SPACE:     pImpl->RemoveLRSpace(); break;
-                    case  RES_UL_SPACE:     pImpl->RemoveULSpace(); break;
-                    case  RES_SURROUND:     pImpl->RemoveSurround();break;
-                    case RES_OPAQUE :       pImpl->SetOpaque(false);  break;
-                    case FN_TEXT_RANGE :
-                    break;
-                    // #i26791#
-                    case RES_FOLLOW_TEXT_FLOW:
-                    {
-                        pImpl->RemoveFollowTextFlow();
-                    }
-                    break;
-                    // #i28701#
-                    case RES_WRAP_INFLUENCE_ON_OBJPOS:
-                    {
-                        pImpl->RemoveWrapInfluenceOnObjPos();
-                    }
-                    break;
+                    pImpl->RemoveFollowTextFlow();
                 }
+                break;
+                // #i28701#
+                case RES_WRAP_INFLUENCE_ON_OBJPOS:
+                {
+                    pImpl->RemoveWrapInfluenceOnObjPos();
+                }
+                break;
             }
         }
-        else
-        {
-            const uno::Type& rPStateType = cppu::UnoType<XPropertyState>::get();
-            uno::Any aPState = xShapeAgg->queryAggregation(rPStateType);
-            auto xShapePrState = o3tl::tryAccess<uno::Reference<XPropertyState>>(
-                aPState);
-            if(!xShapePrState)
-                throw uno::RuntimeException();
-            (*xShapePrState)->setPropertyToDefault( rPropertyName );
-        }
     }
     else
-        throw uno::RuntimeException();
+    {
+        const uno::Type& rPStateType = cppu::UnoType<XPropertyState>::get();
+        uno::Any aPState = xShapeAgg->queryAggregation(rPStateType);
+        auto xShapePrState = o3tl::tryAccess<uno::Reference<XPropertyState>>(
+            aPState);
+        if(!xShapePrState)
+            throw uno::RuntimeException();
+        (*xShapePrState)->setPropertyToDefault( rPropertyName );
+    }
+
 }
 
 uno::Any SwXShape::getPropertyDefault( const OUString& rPropertyName )
@@ -1936,33 +1932,31 @@ uno::Any SwXShape::getPropertyDefault( const OUString& rPropertyName )
     SolarMutexGuard aGuard;
     SwFrameFormat*   pFormat = GetFrameFormat();
     uno::Any aRet;
-    if(xShapeAgg.is())
+    if(!xShapeAgg.is())
+        throw uno::RuntimeException();
+
+    const SfxItemPropertySimpleEntry*  pEntry = m_pPropSet->getPropertyMap().getByName( rPropertyName );
+    if(pEntry)
     {
-        const SfxItemPropertySimpleEntry*  pEntry = m_pPropSet->getPropertyMap().getByName( rPropertyName );
-        if(pEntry)
-        {
-            if(pEntry->nWID < RES_FRMATR_END && pFormat)
-            {
-                const SfxPoolItem& rDefItem =
-                    pFormat->GetDoc()->GetAttrPool().GetDefaultItem(pEntry->nWID);
-                rDefItem.QueryValue(aRet, pEntry->nMemberId);
-            }
-            else
-                throw uno::RuntimeException();
-        }
-        else
-        {
-            const uno::Type& rPStateType = cppu::UnoType<XPropertyState>::get();
-            uno::Any aPState = xShapeAgg->queryAggregation(rPStateType);
-            auto xShapePrState = o3tl::tryAccess<uno::Reference<XPropertyState>>(
-                aPState);
-            if(!xShapePrState)
-                throw uno::RuntimeException();
-            (*xShapePrState)->getPropertyDefault( rPropertyName );
-        }
+        if(!(pEntry->nWID < RES_FRMATR_END && pFormat))
+            throw uno::RuntimeException();
+
+        const SfxPoolItem& rDefItem =
+            pFormat->GetDoc()->GetAttrPool().GetDefaultItem(pEntry->nWID);
+        rDefItem.QueryValue(aRet, pEntry->nMemberId);
+
     }
     else
-        throw uno::RuntimeException();
+    {
+        const uno::Type& rPStateType = cppu::UnoType<XPropertyState>::get();
+        uno::Any aPState = xShapeAgg->queryAggregation(rPStateType);
+        auto xShapePrState = o3tl::tryAccess<uno::Reference<XPropertyState>>(
+            aPState);
+        if(!xShapePrState)
+            throw uno::RuntimeException();
+        (*xShapePrState)->getPropertyDefault( rPropertyName );
+    }
+
     return aRet;
 }
 
@@ -2740,58 +2734,58 @@ void SwXGroupShape::add( const uno::Reference< XShape >& xShape )
     SolarMutexGuard aGuard;
     SvxShape* pSvxShape = GetSvxShape();
     SwFrameFormat* pFormat = GetFrameFormat();
-    if(pSvxShape && pFormat)
+    if(!(pSvxShape && pFormat))
+        throw uno::RuntimeException();
+
+    uno::Reference<XShapes> xShapes;
+    if( xShapeAgg.is() )
     {
-        uno::Reference<XShapes> xShapes;
-        if( xShapeAgg.is() )
-        {
-            const uno::Type& rType = cppu::UnoType<XShapes>::get();
-            uno::Any aAgg = xShapeAgg->queryAggregation( rType );
-            aAgg >>= xShapes;
-        }
-        if(xShapes.is())
-            xShapes->add(xShape);
-        else
-            throw uno::RuntimeException();
+        const uno::Type& rType = cppu::UnoType<XShapes>::get();
+        uno::Any aAgg = xShapeAgg->queryAggregation( rType );
+        aAgg >>= xShapes;
+    }
+    if(!xShapes.is())
+        throw uno::RuntimeException();
 
-        uno::Reference<lang::XUnoTunnel> xTunnel(xShape, uno::UNO_QUERY);
-        SwXShape* pSwShape = nullptr;
-        if(xShape.is())
-            pSwShape = reinterpret_cast< SwXShape * >(
-                    sal::static_int_cast< sal_IntPtr >( xTunnel->getSomething(SwXShape::getUnoTunnelId()) ));
-        if(pSwShape && pSwShape->m_bDescriptor)
+    xShapes->add(xShape);
+
+
+    uno::Reference<lang::XUnoTunnel> xTunnel(xShape, uno::UNO_QUERY);
+    SwXShape* pSwShape = nullptr;
+    if(xShape.is())
+        pSwShape = reinterpret_cast< SwXShape * >(
+                sal::static_int_cast< sal_IntPtr >( xTunnel->getSomething(SwXShape::getUnoTunnelId()) ));
+    if(pSwShape && pSwShape->m_bDescriptor)
+    {
+        SvxShape* pAddShape = reinterpret_cast< SvxShape * >(
+                sal::static_int_cast< sal_IntPtr >( xTunnel->getSomething(SvxShape::getUnoTunnelId()) ));
+        if(pAddShape)
         {
-            SvxShape* pAddShape = reinterpret_cast< SvxShape * >(
-                    sal::static_int_cast< sal_IntPtr >( xTunnel->getSomething(SvxShape::getUnoTunnelId()) ));
-            if(pAddShape)
+            SdrObject* pObj = pAddShape->GetSdrObject();
+            if(pObj)
             {
-                SdrObject* pObj = pAddShape->GetSdrObject();
-                if(pObj)
+                SwDoc* pDoc = pFormat->GetDoc();
+                // set layer of new drawing
+                // object to corresponding invisible layer.
+                if( SdrInventor::FmForm != pObj->GetObjInventor())
                 {
-                    SwDoc* pDoc = pFormat->GetDoc();
-                    // set layer of new drawing
-                    // object to corresponding invisible layer.
-                    if( SdrInventor::FmForm != pObj->GetObjInventor())
-                    {
-                        pObj->SetLayer( pSwShape->pImpl->GetOpaque()
-                                        ? pDoc->getIDocumentDrawModelAccess().GetInvisibleHeavenId()
-                                        : pDoc->getIDocumentDrawModelAccess().GetInvisibleHellId() );
-                    }
-                    else
-                    {
-                        pObj->SetLayer(pDoc->getIDocumentDrawModelAccess().GetInvisibleControlsId());
-                    }
+                    pObj->SetLayer( pSwShape->pImpl->GetOpaque()
+                                    ? pDoc->getIDocumentDrawModelAccess().GetInvisibleHeavenId()
+                                    : pDoc->getIDocumentDrawModelAccess().GetInvisibleHellId() );
+                }
+                else
+                {
+                    pObj->SetLayer(pDoc->getIDocumentDrawModelAccess().GetInvisibleControlsId());
                 }
             }
-            pSwShape->m_bDescriptor = false;
-            //add the group member to the format of the group
-            SwFrameFormat* pShapeFormat = ::FindFrameFormat( pSvxShape->GetSdrObject() );
-            if(pShapeFormat)
-                pFormat->Add(pSwShape);
         }
+        pSwShape->m_bDescriptor = false;
+        //add the group member to the format of the group
+        SwFrameFormat* pShapeFormat = ::FindFrameFormat( pSvxShape->GetSdrObject() );
+        if(pShapeFormat)
+            pFormat->Add(pSwShape);
     }
-    else
-        throw uno::RuntimeException();
+
 }
 
 void SwXGroupShape::remove( const uno::Reference< XShape >& xShape )
diff --git a/sw/source/core/unocore/unofield.cxx b/sw/source/core/unocore/unofield.cxx
index bee8055a0fa6..0b0d8d0859a1 100644
--- a/sw/source/core/unocore/unofield.cxx
+++ b/sw/source/core/unocore/unofield.cxx
@@ -610,21 +610,20 @@ void SAL_CALL SwXFieldMaster::setPropertyValue(
             // Thus the last property set will be used as Data Source.
 
             const sal_uInt16 nMemberValueId = GetFieldTypeMId( rPropertyName, *pType );
-            if ( USHRT_MAX != nMemberValueId )
-            {
-                pType->PutValue( rValue, nMemberValueId );
-                if ( pType->Which() == SwFieldIds::User )
-                {
-                    // trigger update of User field in order to get depending Input Fields updated.
-                    pType->UpdateFields();
-                }
-            }
-            else
+            if ( USHRT_MAX == nMemberValueId )
             {
                 throw beans::UnknownPropertyException(
                     "Unknown property: " + rPropertyName,
                     static_cast< cppu::OWeakObject * >( this ) );
             }
+
+            pType->PutValue( rValue, nMemberValueId );
+            if ( pType->Which() == SwFieldIds::User )
+            {
+                // trigger update of User field in order to get depending Input Fields updated.
+                pType->UpdateFields();
+            }
+
         }
     }
     else if (!pType && m_pImpl->m_pDoc && rPropertyName == UNO_NAME_NAME)
@@ -1925,26 +1924,25 @@ void SAL_CALL SwXTextField::attach(
         SwTextAttr* pTextAttr = aPam.GetNode().GetTextNode()->GetFieldTextAttrAt( aPam.GetPoint()->nContent.GetIndex()-1, true );
 
         // What about updating the fields? (see fldmgr.cxx)
-        if (pTextAttr)
-        {
-            const SwFormatField& rField = pTextAttr->GetFormatField();
-            m_pImpl->m_pFormatField = &rField;
+        if (!pTextAttr)
+            throw uno::RuntimeException("no SwTextAttr inserted?");  // could theoretically happen, if paragraph is full
 
-            if ( pTextAttr->Which() == RES_TXTATR_ANNOTATION
-                 && *aPam.GetPoint() != *aPam.GetMark() )
+        const SwFormatField& rField = pTextAttr->GetFormatField();
+        m_pImpl->m_pFormatField = &rField;
+
+        if ( pTextAttr->Which() == RES_TXTATR_ANNOTATION
+             && *aPam.GetPoint() != *aPam.GetMark() )
+        {
+            // create annotation mark
+            const SwPostItField* pPostItField = dynamic_cast< const SwPostItField* >(pTextAttr->GetFormatField().GetField());
+            OSL_ENSURE( pPostItField != nullptr, "<SwXTextField::attachToRange(..)> - annotation field missing!" );
+            if ( pPostItField != nullptr )
             {
-                // create annotation mark
-                const SwPostItField* pPostItField = dynamic_cast< const SwPostItField* >(pTextAttr->GetFormatField().GetField());
-                OSL_ENSURE( pPostItField != nullptr, "<SwXTextField::attachToRange(..)> - annotation field missing!" );
-                if ( pPostItField != nullptr )
-                {
-                    IDocumentMarkAccess* pMarksAccess = pDoc->getIDocumentMarkAccess();
-                    pMarksAccess->makeAnnotationMark( aPam, pPostItField->GetName() );
-                }
+                IDocumentMarkAccess* pMarksAccess = pDoc->getIDocumentMarkAccess();
+                pMarksAccess->makeAnnotationMark( aPam, pPostItField->GetName() );
             }
         }
-        else // could theoretically happen, if paragraph is full
-            throw uno::RuntimeException("no SwTextAttr inserted?");
+
     }
     delete pField;
 
@@ -1966,52 +1964,51 @@ void SAL_CALL SwXTextField::attach(
               && m_pImpl->m_nServiceId == SwServiceType::FieldTypeAnnotation )
     {
         SwUnoInternalPaM aIntPam( *m_pImpl->m_pDoc );
-        if ( ::sw::XTextRangeToSwPaM( aIntPam, xTextRange ) )
-        {
-            // nothing to do, if the text range only covers the former annotation field
-            if ( aIntPam.Start()->nNode != aIntPam.End()->nNode
-                 || aIntPam.Start()->nContent.GetIndex() != aIntPam.End()->nContent.GetIndex()-1 )
+        if ( !::sw::XTextRangeToSwPaM( aIntPam, xTextRange ) )
+            throw lang::IllegalArgumentException();
+
+        // nothing to do, if the text range only covers the former annotation field
+        if ( aIntPam.Start()->nNode != aIntPam.End()->nNode
+             || aIntPam.Start()->nContent.GetIndex() != aIntPam.End()->nContent.GetIndex()-1 )
+        {
+            UnoActionContext aCont( m_pImpl->m_pDoc );
+            // insert copy of annotation at new text range
+            SwPostItField* pPostItField = static_cast< SwPostItField* >(m_pImpl->m_pFormatField->GetField()->CopyField());
+            SwFormatField aFormatField( *pPostItField );
+            delete pPostItField;
+            SwPaM aEnd( *aIntPam.End(), *aIntPam.End() );
+            m_pImpl->m_pDoc->getIDocumentContentOperations().InsertPoolItem( aEnd, aFormatField );
+            // delete former annotation
             {
-                UnoActionContext aCont( m_pImpl->m_pDoc );
-                // insert copy of annotation at new text range
-                SwPostItField* pPostItField = static_cast< SwPostItField* >(m_pImpl->m_pFormatField->GetField()->CopyField());
-                SwFormatField aFormatField( *pPostItField );
-                delete pPostItField;
-                SwPaM aEnd( *aIntPam.End(), *aIntPam.End() );
-                m_pImpl->m_pDoc->getIDocumentContentOperations().InsertPoolItem( aEnd, aFormatField );
-                // delete former annotation
-                {
-                    const SwTextField* pTextField = m_pImpl->m_pFormatField->GetTextField();
-                    SwTextNode& rTextNode = *pTextField->GetpTextNode();
-                    SwPaM aPam( rTextNode, pTextField->GetStart() );
-                    aPam.SetMark();
-                    aPam.Move();
-                    m_pImpl->m_pDoc->getIDocumentContentOperations().DeleteAndJoin(aPam);
-                }
-                // keep inserted annotation
+                const SwTextField* pTextField = m_pImpl->m_pFormatField->GetTextField();
+                SwTextNode& rTextNode = *pTextField->GetpTextNode();
+                SwPaM aPam( rTextNode, pTextField->GetStart() );
+                aPam.SetMark();
+                aPam.Move();
+                m_pImpl->m_pDoc->getIDocumentContentOperations().DeleteAndJoin(aPam);
+            }
+            // keep inserted annotation
+            {
+                SwTextField* pTextAttr = aEnd.GetNode().GetTextNode()->GetFieldTextAttrAt( aEnd.End()->nContent.GetIndex()-1, true );
+                if ( pTextAttr != nullptr )
                 {
-                    SwTextField* pTextAttr = aEnd.GetNode().GetTextNode()->GetFieldTextAttrAt( aEnd.End()->nContent.GetIndex()-1, true );
-                    if ( pTextAttr != nullptr )
-                    {
-                        m_pImpl->m_pFormatField = &pTextAttr->GetFormatField();
+                    m_pImpl->m_pFormatField = &pTextAttr->GetFormatField();
 
-                        if ( *aIntPam.GetPoint() != *aIntPam.GetMark() )
+                    if ( *aIntPam.GetPoint() != *aIntPam.GetMark() )
+                    {
+                        // create annotation mark
+                        const SwPostItField* pField = dynamic_cast< const SwPostItField* >(pTextAttr->GetFormatField().GetField());
+                        OSL_ENSURE( pField != nullptr, "<SwXTextField::attach(..)> - annotation field missing!" );
+                        if ( pField != nullptr )
                         {
-                            // create annotation mark
-                            const SwPostItField* pField = dynamic_cast< const SwPostItField* >(pTextAttr->GetFormatField().GetField());
-                            OSL_ENSURE( pField != nullptr, "<SwXTextField::attach(..)> - annotation field missing!" );
-                            if ( pField != nullptr )
-                            {
-                                IDocumentMarkAccess* pMarksAccess = aIntPam.GetDoc()->getIDocumentMarkAccess();
-                                pMarksAccess->makeAnnotationMark( aIntPam, pField->GetName() );
-                            }
+                            IDocumentMarkAccess* pMarksAccess = aIntPam.GetDoc()->getIDocumentMarkAccess();
+                            pMarksAccess->makeAnnotationMark( aIntPam, pField->GetName() );
                         }
                     }
                 }
             }
         }
-        else
-            throw lang::IllegalArgumentException();
+
     }
     else
         throw lang::IllegalArgumentException();
@@ -2251,10 +2248,11 @@ SwXTextField::setPropertyValue(
         }
         if (pBool)
         {
-            if( auto b = o3tl::tryAccess<bool>(rValue) )
-                *pBool = *b;
-            else
+            auto b = o3tl::tryAccess<bool>(rValue);
+            if( !b )
                 throw lang::IllegalArgumentException();
+            *pBool = *b;
+
         }
     }
     else
diff --git a/sw/source/core/unocore/unoframe.cxx b/sw/source/core/unocore/unoframe.cxx
index 9b33f94a1387..87828b3eb23e 100644
--- a/sw/source/core/unocore/unoframe.cxx
+++ b/sw/source/core/unocore/unoframe.cxx
@@ -1498,11 +1498,11 @@ void SwXFrame::setPropertyValue(const OUString& rPropertyName, const ::uno::Any&
                     // is no contour, or if the contour has been set by the
                     // API itself (or in other words, if the contour isn't
                     // used already).
-                    if( !pNoText->HasContour_() ||
-                        !pNoText->IsContourMapModeValid() )
-                        pNoText->SetPixelContour( *o3tl::doAccess<bool>(aValue) );
-                    else
+                    if( pNoText->HasContour_() && pNoText->IsContourMapModeValid() )
                         throw lang::IllegalArgumentException();
+
+                    pNoText->SetPixelContour( *o3tl::doAccess<bool>(aValue) );
+
                 }
                 else
                 {
@@ -1535,45 +1535,44 @@ void SwXFrame::setPropertyValue(const OUString& rPropertyName, const ::uno::Any&
         else if(FN_UNO_FRAME_STYLE_NAME == pEntry->nWID)
         {
             SwFrameFormat *pFrameFormat = lcl_GetFrameFormat( aValue, pFormat->GetDoc() );
-            if( pFrameFormat )
-            {
-                UnoActionContext aAction(pFormat->GetDoc());
+            if( !pFrameFormat )
+                throw lang::IllegalArgumentException();
 
-                SfxItemSet* pSet = nullptr;
-                // #i31771#, #i25798# - No adjustment of
-                // anchor ( no call of method <sw_ChkAndSetNewAnchor(..)> ),
-                // if document is currently in reading mode.
-                if ( !pFormat->GetDoc()->IsInReading() )
+            UnoActionContext aAction(pFormat->GetDoc());
+
+            SfxItemSet* pSet = nullptr;
+            // #i31771#, #i25798# - No adjustment of
+            // anchor ( no call of method <sw_ChkAndSetNewAnchor(..)> ),
+            // if document is currently in reading mode.
+            if ( !pFormat->GetDoc()->IsInReading() )
+            {
+                // see SwFEShell::SetFrameFormat( SwFrameFormat *pNewFormat, bool bKeepOrient, Point* pDocPos )
+                SwFlyFrame *pFly = nullptr;
                 {
-                    // see SwFEShell::SetFrameFormat( SwFrameFormat *pNewFormat, bool bKeepOrient, Point* pDocPos )
-                    SwFlyFrame *pFly = nullptr;
-                    {
-                        const SwFrameFormat* pFormatXX = pFormat;
-                        if (dynamic_cast<const SwFlyFrameFormat*>( pFormatXX) )
-                            pFly = static_cast<const SwFlyFrameFormat*>(pFormatXX)->GetFrame();
-                    }
-                    if ( pFly )
+                    const SwFrameFormat* pFormatXX = pFormat;
+                    if (dynamic_cast<const SwFlyFrameFormat*>( pFormatXX) )
+                        pFly = static_cast<const SwFlyFrameFormat*>(pFormatXX)->GetFrame();
+                }
+                if ( pFly )
+                {
+                    const ::SfxPoolItem* pItem;
+                    if( SfxItemState::SET == pFrameFormat->GetItemState( RES_ANCHOR, false, &pItem ))
                     {
-                        const ::SfxPoolItem* pItem;
-                        if( SfxItemState::SET == pFrameFormat->GetItemState( RES_ANCHOR, false, &pItem ))
+                        pSet = new SfxItemSet( pDoc->GetAttrPool(), aFrameFormatSetRange );
+                        pSet->Put( *pItem );
+                        if ( pFormat->GetDoc()->GetEditShell() != nullptr
+                             && !sw_ChkAndSetNewAnchor( *pFly, *pSet ) )
                         {
-                            pSet = new SfxItemSet( pDoc->GetAttrPool(), aFrameFormatSetRange );
-                            pSet->Put( *pItem );
-                            if ( pFormat->GetDoc()->GetEditShell() != nullptr
-                                 && !sw_ChkAndSetNewAnchor( *pFly, *pSet ) )
-                            {
-                                delete pSet;
-                                pSet = nullptr;
-                            }
+                            delete pSet;
+                            pSet = nullptr;
                         }
                     }
                 }
-
-                pFormat->GetDoc()->SetFrameFormatToFly( *pFormat, *pFrameFormat, pSet );
-                delete pSet;
             }
-            else
-                throw lang::IllegalArgumentException();
+
+            pFormat->GetDoc()->SetFrameFormatToFly( *pFormat, *pFrameFormat, pSet );
+            delete pSet;
+
         }
         else if( FN_UNO_GRAPHIC_U_R_L == pEntry->nWID ||
                 FN_UNO_GRAPHIC_FILTER == pEntry->nWID)
@@ -2569,19 +2568,18 @@ uno::Any SwXFrame::getPropertyDefault( const OUString& rPropertyName )
     if(pFormat)
     {
         const SfxItemPropertySimpleEntry* pEntry = m_pPropSet->getPropertyMap().getByName(rPropertyName);
-        if(pEntry)
+        if(!pEntry)
+            throw beans::UnknownPropertyException( "Unknown property: " + rPropertyName, static_cast < cppu::OWeakObject * > ( this ) );
+
+        if ( pEntry->nWID < RES_FRMATR_END )
         {
-            if ( pEntry->nWID < RES_FRMATR_END )
-            {
-                const SfxPoolItem& rDefItem =
-                    pFormat->GetDoc()->GetAttrPool().GetDefaultItem(pEntry->nWID);
-                const sal_uInt8 nMemberId(pEntry->nMemberId & (~SFX_METRIC_ITEM));
+            const SfxPoolItem& rDefItem =
+                pFormat->GetDoc()->GetAttrPool().GetDefaultItem(pEntry->nWID);
+            const sal_uInt8 nMemberId(pEntry->nMemberId & (~SFX_METRIC_ITEM));
 
-                rDefItem.QueryValue(aRet, nMemberId);
-            }
+            rDefItem.QueryValue(aRet, nMemberId);
         }
-        else
-            throw beans::UnknownPropertyException( "Unknown property: " + rPropertyName, static_cast < cppu::OWeakObject * > ( this ) );
+
     }
     else if(!IsDescriptor())
         throw uno::RuntimeException();
@@ -2655,20 +2653,19 @@ uno::Reference< text::XTextRange >  SwXFrame::getAnchor()
     SolarMutexGuard aGuard;
     uno::Reference< text::XTextRange >  aRef;
     SwFrameFormat* pFormat = GetFrameFormat();
-    if(pFormat)
+    if(!pFormat)
+        throw uno::RuntimeException();
+
+    const SwFormatAnchor& rAnchor = pFormat->GetAnchor();
+    // return an anchor for non-page bound frames
+    // and for page bound frames that have a page no == NULL and a content position
+    if ((rAnchor.GetAnchorId() != RndStdIds::FLY_AT_PAGE) ||
+        (rAnchor.GetContentAnchor() && !rAnchor.GetPageNum()))
     {
-        const SwFormatAnchor& rAnchor = pFormat->GetAnchor();
-        // return an anchor for non-page bound frames
-        // and for page bound frames that have a page no == NULL and a content position
-        if ((rAnchor.GetAnchorId() != RndStdIds::FLY_AT_PAGE) ||
-            (rAnchor.GetContentAnchor() && !rAnchor.GetPageNum()))
-        {
-            const SwPosition &rPos = *(rAnchor.GetContentAnchor());
-            aRef = SwXTextRange::CreateXTextRange(*pFormat->GetDoc(), rPos, nullptr);
-        }
+        const SwPosition &rPos = *(rAnchor.GetContentAnchor());
+        aRef = SwXTextRange::CreateXTextRange(*pFormat->GetDoc(), rPos, nullptr);
     }
-    else
-        throw uno::RuntimeException();
+
     return aRef;
 }
 
@@ -2697,379 +2694,378 @@ void SwXFrame::attachToRange(const uno::Reference< text::XTextRange > & xTextRan
     }
 
     SwDoc* pDoc = pRange ? &pRange->GetDoc() : pCursor ? pCursor->GetDoc() : nullptr;
-    if(pDoc)
+    if(!pDoc)
+        throw lang::IllegalArgumentException();
+
+    SwUnoInternalPaM aIntPam(*pDoc);
+    // this now needs to return TRUE
+    ::sw::XTextRangeToSwPaM(aIntPam, xTextRange);
+
+    SwNode& rNode = pDoc->GetNodes().GetEndOfContent();
+    SwPaM aPam(rNode);
+    aPam.Move( fnMoveBackward, GoInDoc );
+    static sal_uInt16 const aFrameAttrRange[] =
     {
-        SwUnoInternalPaM aIntPam(*pDoc);
-        // this now needs to return TRUE
-        ::sw::XTextRangeToSwPaM(aIntPam, xTextRange);
+        RES_FRMATR_BEGIN,       RES_FRMATR_END-1,
+        RES_UNKNOWNATR_CONTAINER, RES_UNKNOWNATR_CONTAINER,
 
-        SwNode& rNode = pDoc->GetNodes().GetEndOfContent();
-        SwPaM aPam(rNode);
-        aPam.Move( fnMoveBackward, GoInDoc );
-        static sal_uInt16 const aFrameAttrRange[] =
-        {
-            RES_FRMATR_BEGIN,       RES_FRMATR_END-1,
-            RES_UNKNOWNATR_CONTAINER, RES_UNKNOWNATR_CONTAINER,
+        // FillAttribute support
+        XATTR_FILL_FIRST, XATTR_FILL_LAST,
 
-            // FillAttribute support
-            XATTR_FILL_FIRST, XATTR_FILL_LAST,
+        SID_ATTR_BORDER_INNER,  SID_ATTR_BORDER_INNER,
+        0
+    };
+    static sal_uInt16 const aGrAttrRange[] =
+    {
+        RES_GRFATR_BEGIN,       RES_GRFATR_END-1,
+        0
+    };
+    SfxItemSet aGrSet(pDoc->GetAttrPool(), aGrAttrRange );
 
-            SID_ATTR_BORDER_INNER,  SID_ATTR_BORDER_INNER,
-            0
-        };
-        static sal_uInt16 const aGrAttrRange[] =
-        {
-            RES_GRFATR_BEGIN,       RES_GRFATR_END-1,
-            0
-        };
-        SfxItemSet aGrSet(pDoc->GetAttrPool(), aGrAttrRange );
+    SfxItemSet aFrameSet(pDoc->GetAttrPool(), aFrameAttrRange );
 
-        SfxItemSet aFrameSet(pDoc->GetAttrPool(), aFrameAttrRange );
+    // set correct parent to get the XFILL_NONE FillStyle as needed
+    aFrameSet.SetParent(&pDoc->GetDfltFrameFormat()->GetAttrSet());
 
-        // set correct parent to get the XFILL_NONE FillStyle as needed
-        aFrameSet.SetParent(&pDoc->GetDfltFrameFormat()->GetAttrSet());
+    // no the related items need to be added to the set
+    bool bSizeFound;
+    if(!pProps->AnyToItemSet( pDoc, aFrameSet, aGrSet, bSizeFound))
+        throw lang::IllegalArgumentException();
+    // a TextRange is handled separately
+    *aPam.GetPoint() = *aIntPam.GetPoint();
+    if(aIntPam.HasMark())
+    {
+        aPam.SetMark();
+        *aPam.GetMark() = *aIntPam.GetMark();
+    }
 
-        // no the related items need to be added to the set
-        bool bSizeFound;
-        if(!pProps->AnyToItemSet( pDoc, aFrameSet, aGrSet, bSizeFound))
-            throw lang::IllegalArgumentException();
-        // a TextRange is handled separately
-        *aPam.GetPoint() = *aIntPam.GetPoint();
-        if(aIntPam.HasMark())
+    const SfxPoolItem* pItem;
+    RndStdIds eAnchorId = RndStdIds::FLY_AT_PARA;
+    if(SfxItemState::SET == aFrameSet.GetItemState(RES_ANCHOR, false, &pItem) )
+    {
+        eAnchorId = static_cast<const SwFormatAnchor*>(pItem)->GetAnchorId();
+        if( RndStdIds::FLY_AT_FLY == eAnchorId &&
+            !aPam.GetNode().FindFlyStartNode())
         {
-            aPam.SetMark();
-            *aPam.GetMark() = *aIntPam.GetMark();
+            // framebound only where a frame exists
+            SwFormatAnchor aAnchor(RndStdIds::FLY_AT_PARA);
+            aFrameSet.Put(aAnchor);
         }
-
-        const SfxPoolItem* pItem;
-        RndStdIds eAnchorId = RndStdIds::FLY_AT_PARA;
-        if(SfxItemState::SET == aFrameSet.GetItemState(RES_ANCHOR, false, &pItem) )
+        else if ((RndStdIds::FLY_AT_PAGE == eAnchorId) &&
+                 0 == static_cast<const SwFormatAnchor*>(pItem)->GetPageNum() )
         {
-            eAnchorId = static_cast<const SwFormatAnchor*>(pItem)->GetAnchorId();
-            if( RndStdIds::FLY_AT_FLY == eAnchorId &&
-                !aPam.GetNode().FindFlyStartNode())
-            {
-                // framebound only where a frame exists
-                SwFormatAnchor aAnchor(RndStdIds::FLY_AT_PARA);
-                aFrameSet.Put(aAnchor);
-            }
-            else if ((RndStdIds::FLY_AT_PAGE == eAnchorId) &&
-                     0 == static_cast<const SwFormatAnchor*>(pItem)->GetPageNum() )
-            {
-                SwFormatAnchor aAnchor( *static_cast<const SwFormatAnchor*>(pItem) );
-                aAnchor.SetAnchor( aPam.GetPoint() );
-                aFrameSet.Put(aAnchor);
-            }
+            SwFormatAnchor aAnchor( *static_cast<const SwFormatAnchor*>(pItem) );
+            aAnchor.SetAnchor( aPam.GetPoint() );
+            aFrameSet.Put(aAnchor);
         }
+    }
 
-        const ::uno::Any* pStyle;
-        SwFrameFormat *pParentFrameFormat = nullptr;
-        if(pProps->GetProperty(FN_UNO_FRAME_STYLE_NAME, 0, pStyle))
-            pParentFrameFormat = lcl_GetFrameFormat( *pStyle, pDoc );
+    const ::uno::Any* pStyle;
+    SwFrameFormat *pParentFrameFormat = nullptr;
+    if(pProps->GetProperty(FN_UNO_FRAME_STYLE_NAME, 0, pStyle))
+        pParentFrameFormat = lcl_GetFrameFormat( *pStyle, pDoc );
 
-        SwFlyFrameFormat* pFormat = nullptr;
-        if( eType == FLYCNTTYPE_FRM)
+    SwFlyFrameFormat* pFormat = nullptr;
+    if( eType == FLYCNTTYPE_FRM)
+    {
+        UnoActionContext aCont(pDoc);
+        if(m_pCopySource)
         {
-            UnoActionContext aCont(pDoc);
-            if(m_pCopySource)
-            {
-                SwFormatAnchor* pAnchorItem = nullptr;
-                // the frame is inserted bound to page
-                // to prevent conflicts if the to-be-anchored position is part of the to-be-copied text
-                if (eAnchorId != RndStdIds::FLY_AT_PAGE)
-                {
-                    pAnchorItem = static_cast<SwFormatAnchor*>(aFrameSet.Get(RES_ANCHOR).Clone());
-                    aFrameSet.Put( SwFormatAnchor( RndStdIds::FLY_AT_PAGE, 1 ));
-                }
-
-                aPam.DeleteMark(); // mark position node will be deleted!
-                aIntPam.DeleteMark(); // mark position node will be deleted!
-                pFormat = pDoc->MakeFlyAndMove( *m_pCopySource, aFrameSet,
-                               nullptr,
-                               pParentFrameFormat );
-                if(pAnchorItem && pFormat)
-                {
-                    pFormat->DelFrames();
-                    pAnchorItem->SetAnchor( m_pCopySource->Start() );
-                    SfxItemSet aAnchorSet( pDoc->GetAttrPool(), svl::Items<RES_ANCHOR, RES_ANCHOR>{} );
-                    aAnchorSet.Put( *pAnchorItem );
-                    pDoc->SetFlyFrameAttr( *pFormat, aAnchorSet );
-                    delete pAnchorItem;
-                }
-                DELETEZ( m_pCopySource );
-            }
-            else
+            SwFormatAnchor* pAnchorItem = nullptr;
+            // the frame is inserted bound to page
+            // to prevent conflicts if the to-be-anchored position is part of the to-be-copied text
+            if (eAnchorId != RndStdIds::FLY_AT_PAGE)
             {
-                pFormat = pDoc->MakeFlySection( RndStdIds::FLY_AT_PARA, aPam.GetPoint(),
-                                         &aFrameSet, pParentFrameFormat );
+                pAnchorItem = static_cast<SwFormatAnchor*>(aFrameSet.Get(RES_ANCHOR).Clone());
+                aFrameSet.Put( SwFormatAnchor( RndStdIds::FLY_AT_PAGE, 1 ));
             }
-            if(pFormat)
+
+            aPam.DeleteMark(); // mark position node will be deleted!
+            aIntPam.DeleteMark(); // mark position node will be deleted!
+            pFormat = pDoc->MakeFlyAndMove( *m_pCopySource, aFrameSet,
+                           nullptr,
+                           pParentFrameFormat );
+            if(pAnchorItem && pFormat)
             {
-                pFormat->Add(this);
-                if(!m_sName.isEmpty())
-                    pDoc->SetFlyName(*pFormat, m_sName);
+                pFormat->DelFrames();
+                pAnchorItem->SetAnchor( m_pCopySource->Start() );
+                SfxItemSet aAnchorSet( pDoc->GetAttrPool(), svl::Items<RES_ANCHOR, RES_ANCHOR>{} );
+                aAnchorSet.Put( *pAnchorItem );
+                pDoc->SetFlyFrameAttr( *pFormat, aAnchorSet );
+                delete pAnchorItem;
             }
-            // wake up the SwXTextFrame
-            static_cast<SwXTextFrame*>(this)->SetDoc( bIsDescriptor ? m_pDoc : GetFrameFormat()->GetDoc() );
+            DELETEZ( m_pCopySource );
         }
-        else if( eType == FLYCNTTYPE_GRF)
+        else
         {
-            UnoActionContext aCont(pDoc);
-            const ::uno::Any* pGraphicURL;
-            OUString sGraphicURL;
-            GraphicObject *pGrfObj = nullptr;
-            if(pProps->GetProperty(FN_UNO_GRAPHIC_U_R_L, 0, pGraphicURL))
-            {
-                (*pGraphicURL) >>= sGraphicURL;
-                if( sGraphicURL.startsWith(sPackageProtocol) )
-                {
-                    pGrfObj = new GraphicObject;
-                    pGrfObj->SetUserData( sGraphicURL );
-                    sGraphicURL.clear();
-                }
-                else if( sGraphicURL.startsWith(sGraphicObjectProtocol) )
-                {
-                    OString sId(OUStringToOString(
-                        sGraphicURL.copy( sizeof(sGraphicObjectProtocol)-1 ),
-                        RTL_TEXTENCODING_ASCII_US));
-                    pGrfObj = new GraphicObject( sId );
-                    sGraphicURL.clear();
-                }
-            }
-            Graphic aGraphic;
-            const ::uno::Any* pGraphic;
-            if( pProps->GetProperty( FN_UNO_GRAPHIC, 0, pGraphic ))
+            pFormat = pDoc->MakeFlySection( RndStdIds::FLY_AT_PARA, aPam.GetPoint(),
+                                     &aFrameSet, pParentFrameFormat );
+        }
+        if(pFormat)
+        {
+            pFormat->Add(this);
+            if(!m_sName.isEmpty())
+                pDoc->SetFlyName(*pFormat, m_sName);
+        }
+        // wake up the SwXTextFrame
+        static_cast<SwXTextFrame*>(this)->SetDoc( bIsDescriptor ? m_pDoc : GetFrameFormat()->GetDoc() );
+    }
+    else if( eType == FLYCNTTYPE_GRF)
+    {
+        UnoActionContext aCont(pDoc);
+        const ::uno::Any* pGraphicURL;
+        OUString sGraphicURL;
+        GraphicObject *pGrfObj = nullptr;
+        if(pProps->GetProperty(FN_UNO_GRAPHIC_U_R_L, 0, pGraphicURL))
+        {
+            (*pGraphicURL) >>= sGraphicURL;
+            if( sGraphicURL.startsWith(sPackageProtocol) )
             {
-                uno::Reference< graphic::XGraphic > xGraphic;
-                (*pGraphic) >>= xGraphic;
-                aGraphic = Graphic( xGraphic );
+                pGrfObj = new GraphicObject;
+                pGrfObj->SetUserData( sGraphicURL );
+                sGraphicURL.clear();
             }
-
-            OUString sFltName;
-            const ::uno::Any* pFilter;
-            if(pProps->GetProperty(FN_UNO_GRAPHIC_FILTER, 0, pFilter))
+            else if( sGraphicURL.startsWith(sGraphicObjectProtocol) )
             {
-                (*pFilter) >>= sFltName;
+                OString sId(OUStringToOString(
+                    sGraphicURL.copy( sizeof(sGraphicObjectProtocol)-1 ),
+                    RTL_TEXTENCODING_ASCII_US));
+                pGrfObj = new GraphicObject( sId );
+                sGraphicURL.clear();
             }
-
-            pFormat = (pGrfObj)
-                ? pDoc->getIDocumentContentOperations().InsertGraphicObject(
-                        aPam, *pGrfObj, &aFrameSet, &aGrSet, pParentFrameFormat)
-                : pDoc->getIDocumentContentOperations().InsertGraphic(
-                        aPam, sGraphicURL, sFltName, &aGraphic,
-                        &aFrameSet, &aGrSet, pParentFrameFormat);
-            delete pGrfObj;
-            if(pFormat)
-            {
-                SwGrfNode *pGrfNd = pDoc->GetNodes()[ pFormat->GetContent().GetContentIdx()
-                                            ->GetIndex()+1 ]->GetGrfNode();
-                if (pGrfNd)
-                    pGrfNd->SetChgTwipSize( !bSizeFound );
-                pFormat->Add(this);
-                if(!m_sName.isEmpty())
-                    pDoc->SetFlyName(*pFormat, m_sName);
-
-            }
-            const ::uno::Any* pSurroundContour;
-            if(pProps->GetProperty(RES_SURROUND, MID_SURROUND_CONTOUR, pSurroundContour))
-                setPropertyValue(UNO_NAME_SURROUND_CONTOUR, *pSurroundContour);
-            const ::uno::Any* pContourOutside;
-            if(pProps->GetProperty(RES_SURROUND, MID_SURROUND_CONTOUROUTSIDE, pContourOutside))
-                setPropertyValue(UNO_NAME_CONTOUR_OUTSIDE, *pContourOutside);
-            const ::uno::Any* pContourPoly;
-            if(pProps->GetProperty(FN_PARAM_CONTOUR_PP, 0, pContourPoly))
-                setPropertyValue(UNO_NAME_CONTOUR_POLY_POLYGON, *pContourPoly);
-            const ::uno::Any* pPixelContour;
-            if(pProps->GetProperty(FN_UNO_IS_PIXEL_CONTOUR, 0, pPixelContour))
-                setPropertyValue(UNO_NAME_IS_PIXEL_CONTOUR, *pPixelContour);
-            const ::uno::Any* pAutoContour;
-            if(pProps->GetProperty(FN_UNO_IS_AUTOMATIC_CONTOUR, 0, pAutoContour))
-                setPropertyValue(UNO_NAME_IS_AUTOMATIC_CONTOUR, *pAutoContour);
         }
-        else
+        Graphic aGraphic;
+        const ::uno::Any* pGraphic;
+        if( pProps->GetProperty( FN_UNO_GRAPHIC, 0, pGraphic ))
         {
-            const ::uno::Any* pCLSID = nullptr;
-            const ::uno::Any* pStreamName = nullptr;
-            const ::uno::Any* pEmbeddedObject = nullptr;
-            if(!pProps->GetProperty(FN_UNO_CLSID, 0, pCLSID)
-                && !pProps->GetProperty( FN_UNO_STREAM_NAME, 0, pStreamName )
-                && !pProps->GetProperty( FN_EMBEDDED_OBJECT, 0, pEmbeddedObject ))
-                throw uno::RuntimeException();
-            if(pCLSID)
-            {
-                OUString aCLSID;
-                SvGlobalName aClassName;
-                uno::Reference < embed::XEmbeddedObject > xIPObj;
-                std::unique_ptr < comphelper::EmbeddedObjectContainer > pCnt;
-                if( (*pCLSID) >>= aCLSID )
+            uno::Reference< graphic::XGraphic > xGraphic;
+            (*pGraphic) >>= xGraphic;
+            aGraphic = Graphic( xGraphic );
+        }
+
+        OUString sFltName;
+        const ::uno::Any* pFilter;
+        if(pProps->GetProperty(FN_UNO_GRAPHIC_FILTER, 0, pFilter))
+        {
+            (*pFilter) >>= sFltName;
+        }
+
+        pFormat = (pGrfObj)
+            ? pDoc->getIDocumentContentOperations().InsertGraphicObject(
+                    aPam, *pGrfObj, &aFrameSet, &aGrSet, pParentFrameFormat)
+            : pDoc->getIDocumentContentOperations().InsertGraphic(
+                    aPam, sGraphicURL, sFltName, &aGraphic,
+                    &aFrameSet, &aGrSet, pParentFrameFormat);
+        delete pGrfObj;
+        if(pFormat)
+        {
+            SwGrfNode *pGrfNd = pDoc->GetNodes()[ pFormat->GetContent().GetContentIdx()
+                                        ->GetIndex()+1 ]->GetGrfNode();
+            if (pGrfNd)
+                pGrfNd->SetChgTwipSize( !bSizeFound );
+            pFormat->Add(this);
+            if(!m_sName.isEmpty())
+                pDoc->SetFlyName(*pFormat, m_sName);
+
+        }
+        const ::uno::Any* pSurroundContour;
+        if(pProps->GetProperty(RES_SURROUND, MID_SURROUND_CONTOUR, pSurroundContour))
+            setPropertyValue(UNO_NAME_SURROUND_CONTOUR, *pSurroundContour);
+        const ::uno::Any* pContourOutside;
+        if(pProps->GetProperty(RES_SURROUND, MID_SURROUND_CONTOUROUTSIDE, pContourOutside))
+            setPropertyValue(UNO_NAME_CONTOUR_OUTSIDE, *pContourOutside);
+        const ::uno::Any* pContourPoly;
+        if(pProps->GetProperty(FN_PARAM_CONTOUR_PP, 0, pContourPoly))
+            setPropertyValue(UNO_NAME_CONTOUR_POLY_POLYGON, *pContourPoly);
+        const ::uno::Any* pPixelContour;
+        if(pProps->GetProperty(FN_UNO_IS_PIXEL_CONTOUR, 0, pPixelContour))
+            setPropertyValue(UNO_NAME_IS_PIXEL_CONTOUR, *pPixelContour);
+        const ::uno::Any* pAutoContour;
+        if(pProps->GetProperty(FN_UNO_IS_AUTOMATIC_CONTOUR, 0, pAutoContour))
+            setPropertyValue(UNO_NAME_IS_AUTOMATIC_CONTOUR, *pAutoContour);
+    }
+    else
+    {
+        const ::uno::Any* pCLSID = nullptr;
+        const ::uno::Any* pStreamName = nullptr;
+        const ::uno::Any* pEmbeddedObject = nullptr;
+        if(!pProps->GetProperty(FN_UNO_CLSID, 0, pCLSID)
+            && !pProps->GetProperty( FN_UNO_STREAM_NAME, 0, pStreamName )
+            && !pProps->GetProperty( FN_EMBEDDED_OBJECT, 0, pEmbeddedObject ))
+            throw uno::RuntimeException();
+        if(pCLSID)
+        {
+            OUString aCLSID;
+            SvGlobalName aClassName;
+            uno::Reference < embed::XEmbeddedObject > xIPObj;
+            std::unique_ptr < comphelper::EmbeddedObjectContainer > pCnt;
+            if( (*pCLSID) >>= aCLSID )
+            {
+                if( !aClassName.MakeId( aCLSID ) )
                 {
-                    if( !aClassName.MakeId( aCLSID ) )
-                    {
-                        lang::IllegalArgumentException aExcept;
-                        aExcept.Message = "CLSID invalid";
-                        throw aExcept;
-                    }
-
-                    pCnt.reset( new comphelper::EmbeddedObjectContainer );
-                    OUString aName;
-
-                    OUString sDocumentBaseURL = pDoc->GetPersist()->getDocumentBaseURL();
-                    xIPObj = pCnt->CreateEmbeddedObject(aClassName.GetByteSequence(), aName,
-                                                        &sDocumentBaseURL);
+                    lang::IllegalArgumentException aExcept;
+                    aExcept.Message = "CLSID invalid";
+                    throw aExcept;
                 }
-                if ( xIPObj.is() )
-                {
-                    UnoActionContext aAction(pDoc);
-                    pDoc->GetIDocumentUndoRedo().StartUndo(SwUndoId::INSERT, nullptr);
-                    if(!bSizeFound)
-                    {
-                        //TODO/LATER: how do I transport it to the OLENode?
-                        sal_Int64 nAspect = m_nDrawAspect;
 
-                        // TODO/LEAN: VisualArea still needs running state
-                        svt::EmbeddedObjectRef::TryRunningState( xIPObj );
+                pCnt.reset( new comphelper::EmbeddedObjectContainer );
+                OUString aName;
 
-                        // set parent to get correct VisArea(in case of object needing parent printer)
-                        uno::Reference < container::XChild > xChild( xIPObj, uno::UNO_QUERY );
-                        if ( xChild.is() )
-                            xChild->setParent( pDoc->GetDocShell()->GetModel() );
-
-                        //The Size should be suggested by the OLE server if not manually set
-                        MapUnit aRefMap = VCLUnoHelper::UnoEmbed2VCLMapUnit( xIPObj->getMapUnit( nAspect ) );
-                        awt::Size aSize;
-                        try
-                        {
-                            aSize = xIPObj->getVisualAreaSize( nAspect );
-                        }
-                        catch ( embed::NoVisualAreaSizeException& )
-                        {
-                            // the default size will be set later
-                        }
-
-                        Size aSz( aSize.Width, aSize.Height );
-                        if ( !aSz.Width() || !aSz.Height() )
-                        {
-                            aSz.Width() = aSz.Height() = 5000;
-                            aSz = OutputDevice::LogicToLogic
-                                                    ( aSz, MapMode( MapUnit::Map100thMM ), aRefMap );
-                        }
-                        MapMode aMyMap( MapUnit::MapTwip );
-                        aSz = OutputDevice::LogicToLogic( aSz, aRefMap, aMyMap );
-                        SwFormatFrameSize aFrameSz;
-                        aFrameSz.SetSize(aSz);
-                        aFrameSet.Put(aFrameSz);
-                    }
-                    SwFlyFrameFormat* pFormat2 = nullptr;
-
-                    ::svt::EmbeddedObjectRef xObjRef( xIPObj, m_nDrawAspect);
-                    pFormat2 = pDoc->getIDocumentContentOperations().InsertEmbObject(
-                            aPam, xObjRef, &aFrameSet );
-
-                    // store main document name to show in the title bar
-                    uno::Reference< frame::XTitle > xModelTitle( pDoc->GetDocShell()->GetModel(), css::uno::UNO_QUERY );
-                    if( xModelTitle.is() )
-                        xIPObj->setContainerName( xModelTitle->getTitle() );
-
-                    assert(pFormat2 && "Doc->Insert(notxt) failed.");
-
-                    pDoc->GetIDocumentUndoRedo().EndUndo(SwUndoId::INSERT, nullptr);
-                    pFormat2->Add(this);
-                    if(!m_sName.isEmpty())
-                        pDoc->SetFlyName(*pFormat2, m_sName);
-                }
+                OUString sDocumentBaseURL = pDoc->GetPersist()->getDocumentBaseURL();
+                xIPObj = pCnt->CreateEmbeddedObject(aClassName.GetByteSequence(), aName,
+                                                    &sDocumentBaseURL);
             }
-            else if( pStreamName )
+            if ( xIPObj.is() )
             {
-                OUString sStreamName;
-                (*pStreamName) >>= sStreamName;
+                UnoActionContext aAction(pDoc);
                 pDoc->GetIDocumentUndoRedo().StartUndo(SwUndoId::INSERT, nullptr);
+                if(!bSizeFound)
+                {
+                    //TODO/LATER: how do I transport it to the OLENode?
+                    sal_Int64 nAspect = m_nDrawAspect;
 
-                SwFlyFrameFormat* pFrameFormat = nullptr;
-                pFrameFormat = pDoc->getIDocumentContentOperations().InsertOLE( aPam, sStreamName, m_nDrawAspect, &aFrameSet, nullptr );
+                    // TODO/LEAN: VisualArea still needs running state
+                    svt::EmbeddedObjectRef::TryRunningState( xIPObj );
 
-                // store main document name to show in the title bar
-                SwOLENode* pNd = nullptr;
-                const SwNodeIndex* pIdx = pFrameFormat->GetContent().GetContentIdx();
-                if( pIdx )
-                {
-                    SwNodeIndex aIdx( *pIdx, 1 );
-                    SwNoTextNode* pNoText = aIdx.GetNode().GetNoTextNode();
-                    pNd = pNoText->GetOLENode();
-                }
-                if( pNd )
-                {
-                    uno::Reference < embed::XEmbeddedObject > xObj = pNd->GetOLEObj().GetOleRef();
-                    if( xObj.is() )
+                    // set parent to get correct VisArea(in case of object needing parent printer)
+                    uno::Reference < container::XChild > xChild( xIPObj, uno::UNO_QUERY );
+                    if ( xChild.is() )
+                        xChild->setParent( pDoc->GetDocShell()->GetModel() );
+
+                    //The Size should be suggested by the OLE server if not manually set
+                    MapUnit aRefMap = VCLUnoHelper::UnoEmbed2VCLMapUnit( xIPObj->getMapUnit( nAspect ) );
+                    awt::Size aSize;
+                    try
                     {
-                        uno::Reference< frame::XTitle > xModelTitle( pDoc->GetDocShell()->GetModel(), css::uno::UNO_QUERY );
-                        if( xModelTitle.is() )
-                            xObj->setContainerName( xModelTitle->getTitle() );
+                        aSize = xIPObj->getVisualAreaSize( nAspect );
                     }
+                    catch ( embed::NoVisualAreaSizeException& )
+                    {
+                        // the default size will be set later
+                    }
+
+                    Size aSz( aSize.Width, aSize.Height );
+                    if ( !aSz.Width() || !aSz.Height() )
+                    {
+                        aSz.Width() = aSz.Height() = 5000;
+                        aSz = OutputDevice::LogicToLogic
+                                                ( aSz, MapMode( MapUnit::Map100thMM ), aRefMap );
+                    }
+                    MapMode aMyMap( MapUnit::MapTwip );
+                    aSz = OutputDevice::LogicToLogic( aSz, aRefMap, aMyMap );
+                    SwFormatFrameSize aFrameSz;
+                    aFrameSz.SetSize(aSz);
+                    aFrameSet.Put(aFrameSz);
                 }
+                SwFlyFrameFormat* pFormat2 = nullptr;
 
-                pDoc->GetIDocumentUndoRedo().EndUndo(SwUndoId::INSERT, nullptr);
-                pFrameFormat->Add(this);
-                if(!m_sName.isEmpty())
-                    pDoc->SetFlyName(*pFrameFormat, m_sName);
-            }
-            else if (pEmbeddedObject)
-            {
-                uno::Reference< embed::XEmbeddedObject > obj;
-                (*pEmbeddedObject) >>= obj;
-                svt::EmbeddedObjectRef xObj;
-                xObj.Assign( obj, embed::Aspects::MSOLE_CONTENT );
+                ::svt::EmbeddedObjectRef xObjRef( xIPObj, m_nDrawAspect);
+                pFormat2 = pDoc->getIDocumentContentOperations().InsertEmbObject(
+                        aPam, xObjRef, &aFrameSet );
 
-                pDoc->GetIDocumentUndoRedo().StartUndo(SwUndoId::INSERT, nullptr);
+                // store main document name to show in the title bar
+                uno::Reference< frame::XTitle > xModelTitle( pDoc->GetDocShell()->GetModel(), css::uno::UNO_QUERY );
+                if( xModelTitle.is() )
+                    xIPObj->setContainerName( xModelTitle->getTitle() );
+
+                assert(pFormat2 && "Doc->Insert(notxt) failed.");
 
-                // Not sure if these setParent() and InsertEmbeddedObject() calls are really
-                // needed, it seems to work without, but logic from code elsewhere suggests
-                // they should be done.
-                SfxObjectShell& rPers = *pDoc->GetPersist();
-                uno::Reference < container::XChild > xChild( obj, uno::UNO_QUERY );
-                if ( xChild.is() )
-                    xChild->setParent( rPers.GetModel() );
-                OUString rName;
-                rPers.GetEmbeddedObjectContainer().InsertEmbeddedObject( obj, rName );
-
-                SwFlyFrameFormat* pFrameFormat = nullptr;
-                pFrameFormat = pDoc->getIDocumentContentOperations().InsertEmbObject(
-                        aPam, xObj, &aFrameSet);
                 pDoc->GetIDocumentUndoRedo().EndUndo(SwUndoId::INSERT, nullptr);
-                pFrameFormat->Add(this);
+                pFormat2->Add(this);
                 if(!m_sName.isEmpty())
-                    pDoc->SetFlyName(*pFrameFormat, m_sName);
+                    pDoc->SetFlyName(*pFormat2, m_sName);
             }
         }
-        if( pFormat && pDoc->getIDocumentDrawModelAccess().GetDrawModel() )
-            GetOrCreateSdrObject(*pFormat);
-        const ::uno::Any* pOrder;
-        if( pProps->GetProperty(FN_UNO_Z_ORDER, 0, pOrder) )
-            setPropertyValue(UNO_NAME_Z_ORDER, *pOrder);
-        const ::uno::Any* pReplacement;
-        if( pProps->GetProperty(FN_UNO_REPLACEMENT_GRAPHIC, 0, pReplacement) )
-            setPropertyValue(UNO_NAME_GRAPHIC, *pReplacement);
-        // new attribute Title
-        const ::uno::Any* pTitle;
-        if ( pProps->GetProperty(FN_UNO_TITLE, 0, pTitle) )
+        else if( pStreamName )
         {
-            setPropertyValue(UNO_NAME_TITLE, *pTitle);
+            OUString sStreamName;
+            (*pStreamName) >>= sStreamName;
+            pDoc->GetIDocumentUndoRedo().StartUndo(SwUndoId::INSERT, nullptr);
+
+            SwFlyFrameFormat* pFrameFormat = nullptr;
+            pFrameFormat = pDoc->getIDocumentContentOperations().InsertOLE( aPam, sStreamName, m_nDrawAspect, &aFrameSet, nullptr );
+
+            // store main document name to show in the title bar
+            SwOLENode* pNd = nullptr;
+            const SwNodeIndex* pIdx = pFrameFormat->GetContent().GetContentIdx();
+            if( pIdx )
+            {
+                SwNodeIndex aIdx( *pIdx, 1 );
+                SwNoTextNode* pNoText = aIdx.GetNode().GetNoTextNode();
+                pNd = pNoText->GetOLENode();
+            }
+            if( pNd )
+            {
+                uno::Reference < embed::XEmbeddedObject > xObj = pNd->GetOLEObj().GetOleRef();
+                if( xObj.is() )
+                {
+                    uno::Reference< frame::XTitle > xModelTitle( pDoc->GetDocShell()->GetModel(), css::uno::UNO_QUERY );
+                    if( xModelTitle.is() )
+                        xObj->setContainerName( xModelTitle->getTitle() );
+                }
+            }
+
+            pDoc->GetIDocumentUndoRedo().EndUndo(SwUndoId::INSERT, nullptr);
+            pFrameFormat->Add(this);
+            if(!m_sName.isEmpty())
+                pDoc->SetFlyName(*pFrameFormat, m_sName);
         }
-        // new attribute Description
-        const ::uno::Any* pDescription;
-        if ( pProps->GetProperty(FN_UNO_DESCRIPTION, 0, pDescription) )
+        else if (pEmbeddedObject)
         {
-            setPropertyValue(UNO_NAME_DESCRIPTION, *pDescription);
-        }
+            uno::Reference< embed::XEmbeddedObject > obj;
+            (*pEmbeddedObject) >>= obj;
+            svt::EmbeddedObjectRef xObj;
+            xObj.Assign( obj, embed::Aspects::MSOLE_CONTENT );
 
-        // For grabbag
-        const uno::Any* pFrameIntropgrabbagItem;
-        if( pProps->GetProperty(RES_FRMATR_GRABBAG, 0, pFrameIntropgrabbagItem) )
-        {
-            setPropertyValue(UNO_NAME_FRAME_INTEROP_GRAB_BAG, *pFrameIntropgrabbagItem);
+            pDoc->GetIDocumentUndoRedo().StartUndo(SwUndoId::INSERT, nullptr);
+
+            // Not sure if these setParent() and InsertEmbeddedObject() calls are really
+            // needed, it seems to work without, but logic from code elsewhere suggests
+            // they should be done.
+            SfxObjectShell& rPers = *pDoc->GetPersist();
+            uno::Reference < container::XChild > xChild( obj, uno::UNO_QUERY );
+            if ( xChild.is() )
+                xChild->setParent( rPers.GetModel() );
+            OUString rName;
+            rPers.GetEmbeddedObjectContainer().InsertEmbeddedObject( obj, rName );
+
+            SwFlyFrameFormat* pFrameFormat = nullptr;
+            pFrameFormat = pDoc->getIDocumentContentOperations().InsertEmbObject(
+                    aPam, xObj, &aFrameSet);
+            pDoc->GetIDocumentUndoRedo().EndUndo(SwUndoId::INSERT, nullptr);
+            pFrameFormat->Add(this);
+            if(!m_sName.isEmpty())
+                pDoc->SetFlyName(*pFrameFormat, m_sName);
         }
     }
-    else
-        throw lang::IllegalArgumentException();
+    if( pFormat && pDoc->getIDocumentDrawModelAccess().GetDrawModel() )
+        GetOrCreateSdrObject(*pFormat);
+    const ::uno::Any* pOrder;
+    if( pProps->GetProperty(FN_UNO_Z_ORDER, 0, pOrder) )
+        setPropertyValue(UNO_NAME_Z_ORDER, *pOrder);
+    const ::uno::Any* pReplacement;
+    if( pProps->GetProperty(FN_UNO_REPLACEMENT_GRAPHIC, 0, pReplacement) )
+        setPropertyValue(UNO_NAME_GRAPHIC, *pReplacement);
+    // new attribute Title
+    const ::uno::Any* pTitle;
+    if ( pProps->GetProperty(FN_UNO_TITLE, 0, pTitle) )
+    {
+        setPropertyValue(UNO_NAME_TITLE, *pTitle);
+    }
+    // new attribute Description
+    const ::uno::Any* pDescription;
+    if ( pProps->GetProperty(FN_UNO_DESCRIPTION, 0, pDescription) )
+    {
+        setPropertyValue(UNO_NAME_DESCRIPTION, *pDescription);
+    }
+
+    // For grabbag
+    const uno::Any* pFrameIntropgrabbagItem;
+    if( pProps->GetProperty(RES_FRMATR_GRABBAG, 0, pFrameIntropgrabbagItem) )
+    {
+        setPropertyValue(UNO_NAME_FRAME_INTEROP_GRAB_BAG, *pFrameIntropgrabbagItem);
+    }
+
     // reset the flag and delete Descriptor pointer
     ResetDescriptor();
 }
@@ -3083,17 +3079,16 @@ void SwXFrame::attach(const uno::Reference< text::XTextRange > & xTextRange)
     {
         SwDoc* pDoc = pFormat->GetDoc();
         SwUnoInternalPaM aIntPam(*pDoc);
-        if (::sw::XTextRangeToSwPaM(aIntPam, xTextRange))
-        {
-            SfxItemSet aSet( pDoc->GetAttrPool(), svl::Items<RES_ANCHOR, RES_ANCHOR>{} );

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list