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

Noel Grandin (via logerrit) logerrit at kemper.freedesktop.org
Sat Aug 1 07:19:56 UTC 2020


 sw/source/core/fields/cellfml.cxx |  126 ++++++++++++-------------
 sw/source/core/fields/chpfld.cxx  |  106 ++++++++++-----------
 sw/source/core/fields/dbfld.cxx   |   26 ++---
 sw/source/core/fields/ddefld.cxx  |   26 ++---
 sw/source/core/fields/docufld.cxx |  152 +++++++++++++++---------------
 sw/source/core/fields/expfld.cxx  |   58 +++++------
 sw/source/core/fields/reffld.cxx  |  190 +++++++++++++++++++-------------------
 sw/source/core/fields/textapi.cxx |   22 ++--
 sw/source/core/fields/usrfld.cxx  |   32 +++---
 9 files changed, 369 insertions(+), 369 deletions(-)

New commits:
commit 197e11313b139c23b71bd949c3769d506610bc83
Author:     Noel Grandin <noel.grandin at collabora.co.uk>
AuthorDate: Thu Jul 30 10:34:53 2020 +0200
Commit:     Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Sat Aug 1 09:19:16 2020 +0200

    loplugin:flatten in sw/core/fields
    
    Change-Id: I42f9dd59300f215b6d8ff9f73a9f6893dbb9a8be
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99899
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>

diff --git a/sw/source/core/fields/cellfml.cxx b/sw/source/core/fields/cellfml.cxx
index db2375997e78..755d81f23fcc 100644
--- a/sw/source/core/fields/cellfml.cxx
+++ b/sw/source/core/fields/cellfml.cxx
@@ -946,42 +946,42 @@ void SwTableFormula::GetBoxes( const SwTableBox& rSttBox,
     const SwTable* pTable = pStt->FindTabFrame()->GetTable();
 
     // filter headline boxes
-    if( pTable->GetRowsToRepeat() > 0 )
-    {
-        do {    // middle-check loop
-            const SwTableLine* pLine = rSttBox.GetUpper();
-            while( pLine->GetUpper() )
-                pLine = pLine->GetUpper()->GetUpper();
+    if( pTable->GetRowsToRepeat() <= 0 )
+        return;
 
-            if( pTable->IsHeadline( *pLine ) )
-                break;      // headline in this area!
+    do {    // middle-check loop
+        const SwTableLine* pLine = rSttBox.GetUpper();
+        while( pLine->GetUpper() )
+            pLine = pLine->GetUpper()->GetUpper();
 
-            // maybe start and end are swapped
-            pLine = rEndBox.GetUpper();
-            while ( pLine->GetUpper() )
-                pLine = pLine->GetUpper()->GetUpper();
+        if( pTable->IsHeadline( *pLine ) )
+            break;      // headline in this area!
 
-            if( pTable->IsHeadline( *pLine ) )
-                break;      // headline in this area!
+        // maybe start and end are swapped
+        pLine = rEndBox.GetUpper();
+        while ( pLine->GetUpper() )
+            pLine = pLine->GetUpper()->GetUpper();
 
-            const SwTabFrame *pStartTable = pStt->FindTabFrame();
-            const SwTabFrame *pEndTable = pEnd->FindTabFrame();
+        if( pTable->IsHeadline( *pLine ) )
+            break;      // headline in this area!
 
-            if (pStartTable == pEndTable) // no split table
-                break;
+        const SwTabFrame *pStartTable = pStt->FindTabFrame();
+        const SwTabFrame *pEndTable = pEnd->FindTabFrame();
 
-            // then remove table headers
-            for (size_t n = 0; n < rBoxes.size(); ++n)
-            {
-                pLine = rBoxes[n]->GetUpper();
-                while( pLine->GetUpper() )
-                    pLine = pLine->GetUpper()->GetUpper();
+        if (pStartTable == pEndTable) // no split table
+            break;
 
-                if( pTable->IsHeadline( *pLine ) )
-                    rBoxes.erase( rBoxes.begin() + n-- );
-            }
-        } while( false );
-    }
+        // then remove table headers
+        for (size_t n = 0; n < rBoxes.size(); ++n)
+        {
+            pLine = rBoxes[n]->GetUpper();
+            while( pLine->GetUpper() )
+                pLine = pLine->GetUpper()->GetUpper();
+
+            if( pTable->IsHeadline( *pLine ) )
+                rBoxes.erase( rBoxes.begin() + n-- );
+        }
+    } while( false );
 }
 
 /// Are all boxes valid that are referenced by the formula?
@@ -989,48 +989,48 @@ void SwTableFormula::HasValidBoxes_( const SwTable& rTable, OUStringBuffer& ,
                     OUString& rFirstBox, OUString* pLastBox, void* pPara ) const
 {
     bool* pBValid = static_cast<bool*>(pPara);
-    if( *pBValid )      // wrong is wrong
-    {
-        SwTableBox* pSttBox = nullptr, *pEndBox = nullptr;
-        rFirstBox = rFirstBox.copy(1);       // delete identifier of box
+    if( !(*pBValid) )      // wrong is wrong
+        return;
 
-        // area in this parenthesis?
-        if( pLastBox )
-            rFirstBox = rFirstBox.copy( pLastBox->getLength()+1 );
+    SwTableBox* pSttBox = nullptr, *pEndBox = nullptr;
+    rFirstBox = rFirstBox.copy(1);       // delete identifier of box
 
-        switch (m_eNmType)
-        {
-        case INTRNL_NAME:
-            if( pLastBox )
-                pEndBox = reinterpret_cast<SwTableBox*>(sal::static_int_cast<sal_IntPtr>(pLastBox->toInt64()));
-            pSttBox = reinterpret_cast<SwTableBox*>(sal::static_int_cast<sal_IntPtr>(rFirstBox.toInt64()));
-            break;
+    // area in this parenthesis?
+    if( pLastBox )
+        rFirstBox = rFirstBox.copy( pLastBox->getLength()+1 );
 
-        case REL_NAME:
-            {
-                const SwNode* pNd = GetNodeOfFormula();
-                const SwTableBox* pBox = !pNd ? nullptr
-                                               : const_cast<SwTableBox *>(rTable.GetTableBox(
-                                    pNd->FindTableBoxStartNode()->GetIndex() ));
-                if( pLastBox )
-                    pEndBox = const_cast<SwTableBox*>(lcl_RelToBox( rTable, pBox, *pLastBox ));
-                pSttBox = const_cast<SwTableBox*>(lcl_RelToBox( rTable, pBox, rFirstBox ));
-            }
-            break;
+    switch (m_eNmType)
+    {
+    case INTRNL_NAME:
+        if( pLastBox )
+            pEndBox = reinterpret_cast<SwTableBox*>(sal::static_int_cast<sal_IntPtr>(pLastBox->toInt64()));
+        pSttBox = reinterpret_cast<SwTableBox*>(sal::static_int_cast<sal_IntPtr>(rFirstBox.toInt64()));
+        break;
 
-        case EXTRNL_NAME:
+    case REL_NAME:
+        {
+            const SwNode* pNd = GetNodeOfFormula();
+            const SwTableBox* pBox = !pNd ? nullptr
+                                           : const_cast<SwTableBox *>(rTable.GetTableBox(
+                                pNd->FindTableBoxStartNode()->GetIndex() ));
             if( pLastBox )
-                pEndBox = const_cast<SwTableBox*>(rTable.GetTableBox( *pLastBox ));
-            pSttBox = const_cast<SwTableBox*>(rTable.GetTableBox( rFirstBox ));
-            break;
+                pEndBox = const_cast<SwTableBox*>(lcl_RelToBox( rTable, pBox, *pLastBox ));
+            pSttBox = const_cast<SwTableBox*>(lcl_RelToBox( rTable, pBox, rFirstBox ));
         }
+        break;
 
-        // Are these valid pointers?
-        if( ( pLastBox &&
-              ( !pEndBox || rTable.GetTabSortBoxes().find( pEndBox ) == rTable.GetTabSortBoxes().end() ) ) ||
-            ( !pSttBox || rTable.GetTabSortBoxes().find( pSttBox ) == rTable.GetTabSortBoxes().end() ) )
-                *pBValid = false;
+    case EXTRNL_NAME:
+        if( pLastBox )
+            pEndBox = const_cast<SwTableBox*>(rTable.GetTableBox( *pLastBox ));
+        pSttBox = const_cast<SwTableBox*>(rTable.GetTableBox( rFirstBox ));
+        break;
     }
+
+    // Are these valid pointers?
+    if( ( pLastBox &&
+          ( !pEndBox || rTable.GetTabSortBoxes().find( pEndBox ) == rTable.GetTabSortBoxes().end() ) ) ||
+        ( !pSttBox || rTable.GetTabSortBoxes().find( pSttBox ) == rTable.GetTabSortBoxes().end() ) )
+            *pBValid = false;
 }
 
 bool SwTableFormula::HasValidBoxes() const
diff --git a/sw/source/core/fields/chpfld.cxx b/sw/source/core/fields/chpfld.cxx
index 9473b086d759..e85ba804a469 100644
--- a/sw/source/core/fields/chpfld.cxx
+++ b/sw/source/core/fields/chpfld.cxx
@@ -154,69 +154,69 @@ void SwChapterField::ChangeExpansion(const SwTextNode &rTextNd, bool bSrchNum,
 
     SwDoc* pDoc = const_cast<SwDoc*>(rTextNd.GetDoc());
     const SwTextNode *pTextNd = rTextNd.FindOutlineNodeOfLevel(rState.nLevel, pLayout);
-    if( pTextNd )
+    if( !pTextNd )
+        return;
+
+    if( bSrchNum )
     {
-        if( bSrchNum )
-        {
-            const SwTextNode* pONd = pTextNd;
-            do {
-                if( pONd && pONd->GetTextColl() )
+        const SwTextNode* pONd = pTextNd;
+        do {
+            if( pONd && pONd->GetTextColl() )
+            {
+                sal_uInt8 nPrevLvl = rState.nLevel;
+
+                OSL_ENSURE( pONd->GetAttrOutlineLevel() >= 0 && pONd->GetAttrOutlineLevel() <= MAXLEVEL,
+                        "<SwChapterField::ChangeExpansion(..)> - outline node with inconsistent outline level. Serious defect." );
+                rState.nLevel = static_cast<sal_uInt8>(pONd->GetAttrOutlineLevel());
+
+                if (nPrevLvl < rState.nLevel)
+                    rState.nLevel = nPrevLvl;
+                else if( SVX_NUM_NUMBER_NONE != pDoc->GetOutlineNumRule()
+                        ->Get( rState.nLevel ).GetNumberingType() )
                 {
-                    sal_uInt8 nPrevLvl = rState.nLevel;
-
-                    OSL_ENSURE( pONd->GetAttrOutlineLevel() >= 0 && pONd->GetAttrOutlineLevel() <= MAXLEVEL,
-                            "<SwChapterField::ChangeExpansion(..)> - outline node with inconsistent outline level. Serious defect." );
-                    rState.nLevel = static_cast<sal_uInt8>(pONd->GetAttrOutlineLevel());
-
-                    if (nPrevLvl < rState.nLevel)
-                        rState.nLevel = nPrevLvl;
-                    else if( SVX_NUM_NUMBER_NONE != pDoc->GetOutlineNumRule()
-                            ->Get( rState.nLevel ).GetNumberingType() )
-                    {
-                        pTextNd = pONd;
-                        break;
-                    }
-
-                    if (!rState.nLevel--)
-                        break;
-                    pONd = pTextNd->FindOutlineNodeOfLevel(rState.nLevel, pLayout);
+                    pTextNd = pONd;
+                    break;
                 }
-                else
+
+                if (!rState.nLevel--)
                     break;
-            } while( true );
-        }
+                pONd = pTextNd->FindOutlineNodeOfLevel(rState.nLevel, pLayout);
+            }
+            else
+                break;
+        } while( true );
+    }
 
-        // get the number without Pre-/Post-fixstrings
+    // get the number without Pre-/Post-fixstrings
 
-        if ( pTextNd->IsOutline() )
-        {
-            // correction of refactoring done by cws swnumtree:
-            // retrieve numbering string without prefix and suffix strings
-            // as stated in the above german comment.
-            rState.sNumber = pTextNd->GetNumString(false, MAXLEVEL, pLayout);
+    if ( pTextNd->IsOutline() )
+    {
+        // correction of refactoring done by cws swnumtree:
+        // retrieve numbering string without prefix and suffix strings
+        // as stated in the above german comment.
+        rState.sNumber = pTextNd->GetNumString(false, MAXLEVEL, pLayout);
 
-            SwNumRule* pRule( pTextNd->GetNumRule() );
-            if ( pTextNd->IsCountedInList() && pRule )
-            {
-                int nListLevel = pTextNd->GetActualListLevel();
-                if (nListLevel < 0)
-                    nListLevel = 0;
-                if (nListLevel >= MAXLEVEL)
-                    nListLevel = MAXLEVEL - 1;
-
-                const SwNumFormat& rNFormat = pRule->Get(nListLevel);
-                rState.sPost = rNFormat.GetSuffix();
-                rState.sPre = rNFormat.GetPrefix();
-            }
-        }
-        else
+        SwNumRule* pRule( pTextNd->GetNumRule() );
+        if ( pTextNd->IsCountedInList() && pRule )
         {
-            rState.sNumber = "??";
+            int nListLevel = pTextNd->GetActualListLevel();
+            if (nListLevel < 0)
+                nListLevel = 0;
+            if (nListLevel >= MAXLEVEL)
+                nListLevel = MAXLEVEL - 1;
+
+            const SwNumFormat& rNFormat = pRule->Get(nListLevel);
+            rState.sPost = rNFormat.GetSuffix();
+            rState.sPre = rNFormat.GetPrefix();
         }
-
-        rState.sTitle = removeControlChars(sw::GetExpandTextMerged(pLayout,
-                    *pTextNd, false, false, ExpandMode(0)));
     }
+    else
+    {
+        rState.sNumber = "??";
+    }
+
+    rState.sTitle = removeControlChars(sw::GetExpandTextMerged(pLayout,
+                *pTextNd, false, false, ExpandMode(0)));
 }
 
 bool SwChapterField::QueryValue( uno::Any& rAny, sal_uInt16 nWhichId ) const
diff --git a/sw/source/core/fields/dbfld.cxx b/sw/source/core/fields/dbfld.cxx
index abc9fbd375a8..6a898f6f0048 100644
--- a/sw/source/core/fields/dbfld.cxx
+++ b/sw/source/core/fields/dbfld.cxx
@@ -81,20 +81,20 @@ void SwDBFieldType::ReleaseRef()
 {
     OSL_ENSURE(m_nRefCnt > 0, "RefCount < 0!");
 
-    if (--m_nRefCnt <= 0)
+    if (--m_nRefCnt > 0)
+        return;
+
+    size_t nPos = 0;
+    for (auto const & pFieldType : *GetDoc()->getIDocumentFieldsAccess().GetFieldTypes())
     {
-        size_t nPos = 0;
-        for (auto const & pFieldType : *GetDoc()->getIDocumentFieldsAccess().GetFieldTypes())
-        {
-            if (pFieldType.get() == this)
-                break;
-            ++nPos;
-        }
-        if (nPos < GetDoc()->getIDocumentFieldsAccess().GetFieldTypes()->size())
-        {
-            GetDoc()->getIDocumentFieldsAccess().RemoveFieldType(nPos);
-            delete this;
-        }
+        if (pFieldType.get() == this)
+            break;
+        ++nPos;
+    }
+    if (nPos < GetDoc()->getIDocumentFieldsAccess().GetFieldTypes()->size())
+    {
+        GetDoc()->getIDocumentFieldsAccess().RemoveFieldType(nPos);
+        delete this;
     }
 }
 
diff --git a/sw/source/core/fields/ddefld.cxx b/sw/source/core/fields/ddefld.cxx
index 9402db0bf65c..0b80f7feb2ae 100644
--- a/sw/source/core/fields/ddefld.cxx
+++ b/sw/source/core/fields/ddefld.cxx
@@ -308,23 +308,23 @@ void SwDDEFieldType::PutValue( const uno::Any& rVal, sal_uInt16 nWhichId )
     default:
         assert(false);
     }
-    if( nPart>=0 )
+    if( nPart<0 )
+        return;
+
+    const OUString sOldCmd( GetCmd() );
+    OUStringBuffer sNewCmd;
+    sal_Int32 nIndex = 0;
+    for (sal_Int32 i=0; i<3; ++i)
     {
-        const OUString sOldCmd( GetCmd() );
-        OUStringBuffer sNewCmd;
-        sal_Int32 nIndex = 0;
-        for (sal_Int32 i=0; i<3; ++i)
+        OUString sToken = sOldCmd.getToken(0, sfx2::cTokenSeparator, nIndex);
+        if (i==nPart)
         {
-            OUString sToken = sOldCmd.getToken(0, sfx2::cTokenSeparator, nIndex);
-            if (i==nPart)
-            {
-                rVal >>= sToken;
-            }
-            sNewCmd.append((i < 2)
-                ? sToken + OUStringChar(sfx2::cTokenSeparator) : sToken);
+            rVal >>= sToken;
         }
-        SetCmd( sNewCmd.makeStringAndClear() );
+        sNewCmd.append((i < 2)
+            ? sToken + OUStringChar(sfx2::cTokenSeparator) : sToken);
     }
+    SetCmd( sNewCmd.makeStringAndClear() );
 }
 
 SwDDEField::SwDDEField( SwDDEFieldType* pInitType )
diff --git a/sw/source/core/fields/docufld.cxx b/sw/source/core/fields/docufld.cxx
index 92afe5024bc7..8529b27a05ad 100644
--- a/sw/source/core/fields/docufld.cxx
+++ b/sw/source/core/fields/docufld.cxx
@@ -133,30 +133,30 @@ void SwPageNumberFieldType::ChangeExpansion( SwDoc* pDoc,
         m_nNumberingType = *pNumFormat;
 
     m_bVirtual = false;
-    if (bVirt && pDoc)
+    if (!(bVirt && pDoc))
+        return;
+
+    // check the flag since the layout NEVER sets it back
+    const SfxItemPool &rPool = pDoc->GetAttrPool();
+    for (const SfxPoolItem* pItem : rPool.GetItemSurrogates(RES_PAGEDESC))
     {
-        // check the flag since the layout NEVER sets it back
-        const SfxItemPool &rPool = pDoc->GetAttrPool();
-        for (const SfxPoolItem* pItem : rPool.GetItemSurrogates(RES_PAGEDESC))
+        auto pDesc = dynamic_cast<const SwFormatPageDesc*>(pItem);
+        if( pDesc && pDesc->GetNumOffset() && pDesc->GetDefinedIn() )
         {
-            auto pDesc = dynamic_cast<const SwFormatPageDesc*>(pItem);
-            if( pDesc && pDesc->GetNumOffset() && pDesc->GetDefinedIn() )
+            const SwContentNode* pNd = dynamic_cast<const SwContentNode*>( pDesc->GetDefinedIn()  );
+            if( pNd )
             {
-                const SwContentNode* pNd = dynamic_cast<const SwContentNode*>( pDesc->GetDefinedIn()  );
-                if( pNd )
-                {
-                    if (SwIterator<SwFrame, SwContentNode, sw::IteratorMode::UnwrapMulti>(*pNd).First())
-                    // sw_redlinehide: not sure if this should happen only if
-                    // it's the first node, because that's where RES_PAGEDESC
-                    // is effective?
-                        m_bVirtual = true;
-                }
-                else if( dynamic_cast< const SwFormat* >(pDesc->GetDefinedIn()) !=  nullptr)
-                {
-                    SwAutoFormatGetDocNode aGetHt( &pDoc->GetNodes() );
-                    m_bVirtual = !pDesc->GetDefinedIn()->GetInfo( aGetHt );
-                    break;
-                }
+                if (SwIterator<SwFrame, SwContentNode, sw::IteratorMode::UnwrapMulti>(*pNd).First())
+                // sw_redlinehide: not sure if this should happen only if
+                // it's the first node, because that's where RES_PAGEDESC
+                // is effective?
+                    m_bVirtual = true;
+            }
+            else if( dynamic_cast< const SwFormat* >(pDesc->GetDefinedIn()) !=  nullptr)
+            {
+                SwAutoFormatGetDocNode aGetHt( &pDoc->GetNodes() );
+                m_bVirtual = !pDesc->GetDefinedIn()->GetInfo( aGetHt );
+                break;
             }
         }
     }
@@ -1323,56 +1323,56 @@ void SwHiddenTextField::Evaluate(SwDoc* pDoc)
 {
     OSL_ENSURE(pDoc, "got no document");
 
-    if( SwFieldTypesEnum::ConditionalText == m_nSubType )
-    {
+    if( SwFieldTypesEnum::ConditionalText != m_nSubType )
+        return;
+
 #if !HAVE_FEATURE_DBCONNECTIVITY
-        (void) pDoc;
+    (void) pDoc;
 #else
-        SwDBManager* pMgr = pDoc->GetDBManager();
+    SwDBManager* pMgr = pDoc->GetDBManager();
 #endif
-        m_bValid = false;
-        OUString sTmpName = (m_bCanToggle && !m_bIsHidden) ? m_aTRUEText : m_aFALSEText;
-
-        // Database expressions need to be different from normal text. Therefore, normal text is set
-        // in quotes. If the latter exist they will be removed. If not, check if potential DB name.
-        // Only if there are two or more dots and no quotes, we assume a database.
-        if (sTmpName.getLength()>1 &&
-            sTmpName.startsWith("\"") &&
-            sTmpName.endsWith("\""))
-        {
-            m_aContent = sTmpName.copy(1, sTmpName.getLength() - 2);
-            m_bValid = true;
+    m_bValid = false;
+    OUString sTmpName = (m_bCanToggle && !m_bIsHidden) ? m_aTRUEText : m_aFALSEText;
+
+    // Database expressions need to be different from normal text. Therefore, normal text is set
+    // in quotes. If the latter exist they will be removed. If not, check if potential DB name.
+    // Only if there are two or more dots and no quotes, we assume a database.
+    if (sTmpName.getLength()>1 &&
+        sTmpName.startsWith("\"") &&
+        sTmpName.endsWith("\""))
+    {
+        m_aContent = sTmpName.copy(1, sTmpName.getLength() - 2);
+        m_bValid = true;
+    }
+    else if(sTmpName.indexOf('\"')<0 &&
+        comphelper::string::getTokenCount(sTmpName, '.') > 2)
+    {
+        sTmpName = ::ReplacePoint(sTmpName);
+        if(sTmpName.startsWith("[") && sTmpName.endsWith("]"))
+        {   // remove brackets
+            sTmpName = sTmpName.copy(1, sTmpName.getLength() - 2);
         }
-        else if(sTmpName.indexOf('\"')<0 &&
-            comphelper::string::getTokenCount(sTmpName, '.') > 2)
-        {
-            sTmpName = ::ReplacePoint(sTmpName);
-            if(sTmpName.startsWith("[") && sTmpName.endsWith("]"))
-            {   // remove brackets
-                sTmpName = sTmpName.copy(1, sTmpName.getLength() - 2);
-            }
 #if HAVE_FEATURE_DBCONNECTIVITY
-            if( pMgr)
+        if( pMgr)
+        {
+            sal_Int32 nIdx{ 0 };
+            OUString sDBName( GetDBName( sTmpName, pDoc ));
+            OUString sDataSource(sDBName.getToken(0, DB_DELIM, nIdx));
+            OUString sDataTableOrQuery(sDBName.getToken(0, DB_DELIM, nIdx));
+            if( pMgr->IsInMerge() && !sDBName.isEmpty() &&
+                pMgr->IsDataSourceOpen( sDataSource,
+                                            sDataTableOrQuery, false))
             {
-                sal_Int32 nIdx{ 0 };
-                OUString sDBName( GetDBName( sTmpName, pDoc ));
-                OUString sDataSource(sDBName.getToken(0, DB_DELIM, nIdx));
-                OUString sDataTableOrQuery(sDBName.getToken(0, DB_DELIM, nIdx));
-                if( pMgr->IsInMerge() && !sDBName.isEmpty() &&
-                    pMgr->IsDataSourceOpen( sDataSource,
-                                                sDataTableOrQuery, false))
-                {
-                    double fNumber;
-                    pMgr->GetMergeColumnCnt(GetColumnName( sTmpName ),
-                        GetLanguage(), m_aContent, &fNumber );
-                    m_bValid = true;
-                }
-                else if( !sDBName.isEmpty() && !sDataSource.isEmpty() &&
-                         !sDataTableOrQuery.isEmpty() )
-                    m_bValid = true;
+                double fNumber;
+                pMgr->GetMergeColumnCnt(GetColumnName( sTmpName ),
+                    GetLanguage(), m_aContent, &fNumber );
+                m_bValid = true;
             }
-#endif
+            else if( !sDBName.isEmpty() && !sDataSource.isEmpty() &&
+                     !sDataTableOrQuery.isEmpty() )
+                m_bValid = true;
         }
+#endif
     }
 }
 
@@ -2391,20 +2391,20 @@ void SwRefPageGetField::ChangeExpansion(const SwFrame& rFrame,
     std::pair<Point, bool> const tmp(aPt, false);
     const SwContentFrame *const pRefFrame = pRefTextField->GetTextNode().getLayoutFrame(
             &rLayout, nullptr, &tmp);
-    if( pSetField->IsOn() && pRefFrame )
-    {
-        // determine the correct offset
-        const SwPageFrame* pPgFrame = rFrame.FindPageFrame();
-        const short nDiff = pPgFrame->GetPhyPageNum() -
-                            pRefFrame->FindPageFrame()->GetPhyPageNum() + 1;
+    if( !(pSetField->IsOn() && pRefFrame) )
+        return;
 
-        SwRefPageGetField* pGetField = const_cast<SwRefPageGetField*>(static_cast<const SwRefPageGetField*>(pField->GetFormatField().GetField()));
-        SvxNumType nTmpFormat = SVX_NUM_PAGEDESC == pGetField->GetFormat()
-                            ? pPgFrame->GetPageDesc()->GetNumType().GetNumberingType()
-                            : static_cast<SvxNumType>(pGetField->GetFormat());
-        const short nPageNum = std::max<short>(0, pSetField->GetOffset() + nDiff);
-        pGetField->SetText(FormatNumber(nPageNum, nTmpFormat), &rLayout);
-    }
+    // determine the correct offset
+    const SwPageFrame* pPgFrame = rFrame.FindPageFrame();
+    const short nDiff = pPgFrame->GetPhyPageNum() -
+                        pRefFrame->FindPageFrame()->GetPhyPageNum() + 1;
+
+    SwRefPageGetField* pGetField = const_cast<SwRefPageGetField*>(static_cast<const SwRefPageGetField*>(pField->GetFormatField().GetField()));
+    SvxNumType nTmpFormat = SVX_NUM_PAGEDESC == pGetField->GetFormat()
+                        ? pPgFrame->GetPageDesc()->GetNumType().GetNumberingType()
+                        : static_cast<SvxNumType>(pGetField->GetFormat());
+    const short nPageNum = std::max<short>(0, pSetField->GetOffset() + nDiff);
+    pGetField->SetText(FormatNumber(nPageNum, nTmpFormat), &rLayout);
 }
 
 bool SwRefPageGetField::QueryValue( uno::Any& rAny, sal_uInt16 nWhichId ) const
diff --git a/sw/source/core/fields/expfld.cxx b/sw/source/core/fields/expfld.cxx
index 2872101dcada..6860d57a0fa8 100644
--- a/sw/source/core/fields/expfld.cxx
+++ b/sw/source/core/fields/expfld.cxx
@@ -640,26 +640,26 @@ void SwSetExpFieldType::SetChapter(SwSetExpField& rField, const SwNode& rNd,
         SwRootFrame const*const pLayout)
 {
     const SwTextNode* pTextNd = rNd.FindOutlineNodeOfLevel(m_nLevel, pLayout);
-    if( pTextNd )
-    {
-        SwNumRule * pRule = pTextNd->GetNumRule();
+    if( !pTextNd )
+        return;
 
-        if (pRule)
-        {
-            // --> OD 2005-11-02 #i51089 - TUNING#
-            if (SwNodeNum const*const pNum = pTextNd->GetNum(pLayout))
-            {
-                // only get the number, without pre-/post-fixstrings
-                OUString const sNumber(pRule->MakeNumString(*pNum, false));
+    SwNumRule * pRule = pTextNd->GetNumRule();
 
-                if( !sNumber.isEmpty() )
-                    rField.ChgExpStr(sNumber + m_sDelim + rField.GetExpStr(pLayout), pLayout);
-            }
-            else
-            {
-                OSL_ENSURE(pTextNd->GetNum(nullptr), "<SwSetExpFieldType::SetChapter(..)> - text node with numbering rule, but without number. This is a serious defect");
-            }
-        }
+    if (!pRule)
+        return;
+
+    // --> OD 2005-11-02 #i51089 - TUNING#
+    if (SwNodeNum const*const pNum = pTextNd->GetNum(pLayout))
+    {
+        // only get the number, without pre-/post-fixstrings
+        OUString const sNumber(pRule->MakeNumString(*pNum, false));
+
+        if( !sNumber.isEmpty() )
+            rField.ChgExpStr(sNumber + m_sDelim + rField.GetExpStr(pLayout), pLayout);
+    }
+    else
+    {
+        OSL_ENSURE(pTextNd->GetNum(nullptr), "<SwSetExpFieldType::SetChapter(..)> - text node with numbering rule, but without number. This is a serious defect");
     }
 }
 
@@ -912,18 +912,18 @@ void SwSetExpField::SetValue(const double& rValue, SwRootFrame const*const pLayo
     {
         SetValue(rValue);
     }
-    if (!pLayout || pLayout->IsHideRedlines())
+    if (!(!pLayout || pLayout->IsHideRedlines()))
+        return;
+
+    m_fValueRLHidden = rValue;
+    if (IsSequenceField())
     {
-        m_fValueRLHidden = rValue;
-        if (IsSequenceField())
-        {
-            msExpandRLHidden = FormatNumber(rValue, static_cast<SvxNumType>(GetFormat()), GetLanguage());
-        }
-        else
-        {
-            msExpandRLHidden = static_cast<SwValueFieldType*>(GetTyp())->ExpandValue(
-                    rValue, GetFormat(), GetLanguage());
-        }
+        msExpandRLHidden = FormatNumber(rValue, static_cast<SvxNumType>(GetFormat()), GetLanguage());
+    }
+    else
+    {
+        msExpandRLHidden = static_cast<SwValueFieldType*>(GetTyp())->ExpandValue(
+                rValue, GetFormat(), GetLanguage());
     }
 }
 
diff --git a/sw/source/core/fields/reffld.cxx b/sw/source/core/fields/reffld.cxx
index 166bf24282d3..b96f35b999f4 100644
--- a/sw/source/core/fields/reffld.cxx
+++ b/sw/source/core/fields/reffld.cxx
@@ -326,22 +326,22 @@ static void lcl_formatReferenceLanguage( OUString& rRefText,
         }
     }
     // not a title text starting already with a definitive article
-    if ( !sNumbering.startsWith("A ") && !sNumbering.startsWith("Az ") &&
-         !sNumbering.startsWith("a ") && !sNumbering.startsWith("az ") )
-    {
-        // lowercase, if rReferenceLanguage == "hu", not "Hu"
-        OUString sArticle;
+    if ( !(!sNumbering.startsWith("A ") && !sNumbering.startsWith("Az ") &&
+         !sNumbering.startsWith("a ") && !sNumbering.startsWith("az ")) )
+        return;
 
-        if ( rReferenceLanguage == "hu" )
-            sArticle = "a";
-        else
-            sArticle = "A";
+    // lowercase, if rReferenceLanguage == "hu", not "Hu"
+    OUString sArticle;
+
+    if ( rReferenceLanguage == "hu" )
+        sArticle = "a";
+    else
+        sArticle = "A";
 
-        if (bArticleAz)
-            sArticle += "z";
+    if (bArticleAz)
+        sArticle += "z";
 
-        rRefText = sArticle + " " + rRefText;
-    }
+    rRefText = sArticle + " " + rRefText;
 }
 
 /// get references
@@ -433,28 +433,28 @@ static void FilterText(OUString & rText, LanguageType const eLang,
         OUString const& rSetReferenceLanguage)
 {
     // remove all special characters (replace them with blanks)
-    if (!rText.isEmpty())
+    if (rText.isEmpty())
+        return;
+
+    rText = rText.replaceAll(u"\u00ad", "");
+    OUStringBuffer aBuf(rText);
+    const sal_Int32 l = aBuf.getLength();
+    for (sal_Int32 i = 0; i < l; ++i)
     {
-        rText = rText.replaceAll(u"\u00ad", "");
-        OUStringBuffer aBuf(rText);
-        const sal_Int32 l = aBuf.getLength();
-        for (sal_Int32 i = 0; i < l; ++i)
+        if (aBuf[i] < ' ')
         {
-            if (aBuf[i] < ' ')
-            {
-                aBuf[i] = ' ';
-            }
-            else if (aBuf[i] == 0x2011)
-            {
-                aBuf[i] = '-';
-            }
+            aBuf[i] = ' ';
         }
-        rText = aBuf.makeStringAndClear();
-        if (!rSetReferenceLanguage.isEmpty())
+        else if (aBuf[i] == 0x2011)
         {
-            lcl_formatReferenceLanguage(rText, false, eLang, rSetReferenceLanguage);
+            aBuf[i] = '-';
         }
     }
+    rText = aBuf.makeStringAndClear();
+    if (!rSetReferenceLanguage.isEmpty())
+    {
+        lcl_formatReferenceLanguage(rText, false, eLang, rSetReferenceLanguage);
+    }
 }
 
 // #i81002# - parameter <pFieldTextAttr> added
@@ -1027,37 +1027,37 @@ bool SwGetRefField::PutValue( const uno::Any& rAny, sal_uInt16 nWhichId )
 
 void SwGetRefField::ConvertProgrammaticToUIName()
 {
-    if(GetTyp() && REF_SEQUENCEFLD == m_nSubType)
+    if(!(GetTyp() && REF_SEQUENCEFLD == m_nSubType))
+        return;
+
+    SwDoc* pDoc = static_cast<SwGetRefFieldType*>(GetTyp())->GetDoc();
+    const OUString rPar1 = GetPar1();
+    // don't convert when the name points to an existing field type
+    if(pDoc->getIDocumentFieldsAccess().GetFieldType(SwFieldIds::SetExp, rPar1, false))
+        return;
+
+    sal_uInt16 nPoolId = SwStyleNameMapper::GetPoolIdFromProgName( rPar1, SwGetPoolIdFromName::TxtColl );
+    const char* pResId = nullptr;
+    switch( nPoolId )
     {
-        SwDoc* pDoc = static_cast<SwGetRefFieldType*>(GetTyp())->GetDoc();
-        const OUString rPar1 = GetPar1();
-        // don't convert when the name points to an existing field type
-        if(!pDoc->getIDocumentFieldsAccess().GetFieldType(SwFieldIds::SetExp, rPar1, false))
-        {
-            sal_uInt16 nPoolId = SwStyleNameMapper::GetPoolIdFromProgName( rPar1, SwGetPoolIdFromName::TxtColl );
-            const char* pResId = nullptr;
-            switch( nPoolId )
-            {
-                case RES_POOLCOLL_LABEL_ABB:
-                    pResId = STR_POOLCOLL_LABEL_ABB;
-                break;
-                case RES_POOLCOLL_LABEL_TABLE:
-                    pResId = STR_POOLCOLL_LABEL_TABLE;
-                break;
-                case RES_POOLCOLL_LABEL_FRAME:
-                    pResId = STR_POOLCOLL_LABEL_FRAME;
-                break;
-                case RES_POOLCOLL_LABEL_DRAWING:
-                    pResId = STR_POOLCOLL_LABEL_DRAWING;
-                break;
-                case RES_POOLCOLL_LABEL_FIGURE:
-                    pResId = STR_POOLCOLL_LABEL_FIGURE;
-                break;
-            }
-            if (pResId)
-                SetPar1(SwResId(pResId));
-        }
+        case RES_POOLCOLL_LABEL_ABB:
+            pResId = STR_POOLCOLL_LABEL_ABB;
+        break;
+        case RES_POOLCOLL_LABEL_TABLE:
+            pResId = STR_POOLCOLL_LABEL_TABLE;
+        break;
+        case RES_POOLCOLL_LABEL_FRAME:
+            pResId = STR_POOLCOLL_LABEL_FRAME;
+        break;
+        case RES_POOLCOLL_LABEL_DRAWING:
+            pResId = STR_POOLCOLL_LABEL_DRAWING;
+        break;
+        case RES_POOLCOLL_LABEL_FIGURE:
+            pResId = STR_POOLCOLL_LABEL_FIGURE;
+        break;
     }
+    if (pResId)
+        SetPar1(SwResId(pResId));
 }
 
 SwGetRefFieldType::SwGetRefFieldType( SwDoc* pDc )
@@ -1408,54 +1408,54 @@ void RefIdsMap::Check( SwDoc& rDoc, SwDoc& rDestDoc, SwGetRefField& rField,
 ///    what is most desirable since it's going to be wrong anyway
 void SwGetRefFieldType::MergeWithOtherDoc( SwDoc& rDestDoc )
 {
-    if( &rDestDoc != m_pDoc )
+    if( &rDestDoc == m_pDoc )
+        return;
+
+    if (rDestDoc.IsClipBoard())
     {
-        if (rDestDoc.IsClipBoard())
-        {
-            // when copying _to_ clipboard, expectation is that no fields exist
-            // so no re-mapping is required to avoid collisions
-            assert(!rDestDoc.getIDocumentFieldsAccess().GetSysFieldType(SwFieldIds::GetRef)->HasWriterListeners());
-            return; // don't modify the fields in the source doc
-        }
+        // when copying _to_ clipboard, expectation is that no fields exist
+        // so no re-mapping is required to avoid collisions
+        assert(!rDestDoc.getIDocumentFieldsAccess().GetSysFieldType(SwFieldIds::GetRef)->HasWriterListeners());
+        return; // don't modify the fields in the source doc
+    }
 
-        // then there are RefFields in the DescDox - so all RefFields in the SourceDoc
-        // need to be converted to have unique IDs for both documents
-        RefIdsMap aFntMap { OUString() };
-        std::vector<std::unique_ptr<RefIdsMap>> aFieldMap;
+    // then there are RefFields in the DescDox - so all RefFields in the SourceDoc
+    // need to be converted to have unique IDs for both documents
+    RefIdsMap aFntMap { OUString() };
+    std::vector<std::unique_ptr<RefIdsMap>> aFieldMap;
 
-        std::vector<SwFormatField*> vFields;
-        GatherFields(vFields);
-        for(auto pField: vFields)
+    std::vector<SwFormatField*> vFields;
+    GatherFields(vFields);
+    for(auto pField: vFields)
+    {
+        SwGetRefField& rRefField = *static_cast<SwGetRefField*>(pField->GetField());
+        switch( rRefField.GetSubType() )
         {
-            SwGetRefField& rRefField = *static_cast<SwGetRefField*>(pField->GetField());
-            switch( rRefField.GetSubType() )
+        case REF_SEQUENCEFLD:
             {
-            case REF_SEQUENCEFLD:
+                RefIdsMap* pMap = nullptr;
+                for( auto n = aFieldMap.size(); n; )
                 {
-                    RefIdsMap* pMap = nullptr;
-                    for( auto n = aFieldMap.size(); n; )
+                    if (aFieldMap[ --n ]->GetName() == rRefField.GetSetRefName())
                     {
-                        if (aFieldMap[ --n ]->GetName() == rRefField.GetSetRefName())
-                        {
-                            pMap = aFieldMap[ n ].get();
-                            break;
-                        }
-                    }
-                    if( !pMap )
-                    {
-                        pMap = new RefIdsMap( rRefField.GetSetRefName() );
-                        aFieldMap.push_back(std::unique_ptr<RefIdsMap>(pMap));
+                        pMap = aFieldMap[ n ].get();
+                        break;
                     }
-
-                    pMap->Check( *m_pDoc, rDestDoc, rRefField, true );
                 }
-                break;
+                if( !pMap )
+                {
+                    pMap = new RefIdsMap( rRefField.GetSetRefName() );
+                    aFieldMap.push_back(std::unique_ptr<RefIdsMap>(pMap));
+                }
 
-            case REF_FOOTNOTE:
-            case REF_ENDNOTE:
-                aFntMap.Check( *m_pDoc, rDestDoc, rRefField, false );
-                break;
+                pMap->Check( *m_pDoc, rDestDoc, rRefField, true );
             }
+            break;
+
+        case REF_FOOTNOTE:
+        case REF_ENDNOTE:
+            aFntMap.Check( *m_pDoc, rDestDoc, rRefField, false );
+            break;
         }
     }
 }
diff --git a/sw/source/core/fields/textapi.cxx b/sw/source/core/fields/textapi.cxx
index 08331d40b882..647bcf102836 100644
--- a/sw/source/core/fields/textapi.cxx
+++ b/sw/source/core/fields/textapi.cxx
@@ -159,19 +159,19 @@ void SwTextAPIEditSource::SetText( OutlinerParaObject const & rText )
 
 void SwTextAPIEditSource::SetString( const OUString& rText )
 {
-    if ( pImpl->mpPool )
+    if ( !pImpl->mpPool )
+        return;
+
+    if( !pImpl->mpOutliner )
     {
-        if( !pImpl->mpOutliner )
-        {
-            //init draw model first
-            pImpl->mpDoc->getIDocumentDrawModelAccess().GetOrCreateDrawModel();
-            pImpl->mpOutliner.reset(new Outliner(pImpl->mpPool, OutlinerMode::TextObject));
-            pImpl->mpDoc->SetCalcFieldValueHdl(pImpl->mpOutliner.get());
-        }
-        else
-            pImpl->mpOutliner->Clear();
-        pImpl->mpOutliner->Insert( rText );
+        //init draw model first
+        pImpl->mpDoc->getIDocumentDrawModelAccess().GetOrCreateDrawModel();
+        pImpl->mpOutliner.reset(new Outliner(pImpl->mpPool, OutlinerMode::TextObject));
+        pImpl->mpDoc->SetCalcFieldValueHdl(pImpl->mpOutliner.get());
     }
+    else
+        pImpl->mpOutliner->Clear();
+    pImpl->mpOutliner->Insert( rText );
 }
 
 std::unique_ptr<OutlinerParaObject> SwTextAPIEditSource::CreateText()
diff --git a/sw/source/core/fields/usrfld.cxx b/sw/source/core/fields/usrfld.cxx
index 642f47c7f156..89914a2cc826 100644
--- a/sw/source/core/fields/usrfld.cxx
+++ b/sw/source/core/fields/usrfld.cxx
@@ -281,28 +281,28 @@ OUString SwUserFieldType::GetContent( sal_uInt32 nFormat )
 
 void SwUserFieldType::SetContent( const OUString& rStr, sal_uInt32 nFormat )
 {
-    if( m_aContent != rStr )
-    {
-        m_aContent = rStr;
+    if( m_aContent == rStr )
+        return;
 
-        if (nFormat && nFormat != SAL_MAX_UINT32)
-        {
-            double fValue;
+    m_aContent = rStr;
 
-            if (GetDoc()->IsNumberFormat(rStr, nFormat, fValue))
-            {
-                SetValue(fValue);
-                m_aContent = DoubleToString(fValue, nFormat);
-            }
-        }
+    if (nFormat && nFormat != SAL_MAX_UINT32)
+    {
+        double fValue;
 
-        bool bModified = GetDoc()->getIDocumentState().IsModified();
-        GetDoc()->getIDocumentState().SetModified();
-        if( !bModified )    // Bug 57028
+        if (GetDoc()->IsNumberFormat(rStr, nFormat, fValue))
         {
-            GetDoc()->GetIDocumentUndoRedo().SetUndoNoResetModified();
+            SetValue(fValue);
+            m_aContent = DoubleToString(fValue, nFormat);
         }
     }
+
+    bool bModified = GetDoc()->getIDocumentState().IsModified();
+    GetDoc()->getIDocumentState().SetModified();
+    if( !bModified )    // Bug 57028
+    {
+        GetDoc()->GetIDocumentUndoRedo().SetUndoNoResetModified();
+    }
 }
 
 void SwUserFieldType::QueryValue( uno::Any& rAny, sal_uInt16 nWhichId ) const


More information about the Libreoffice-commits mailing list