[Libreoffice-commits] core.git: 3 commits - oovbaapi/ooo sw/inc sw/source
Michael Stahl (via logerrit)
logerrit at kemper.freedesktop.org
Tue Nov 26 10:11:08 UTC 2019
oovbaapi/ooo/vba/word/XDocuments.idl | 1
sw/inc/ndarr.hxx | 2 -
sw/source/core/crsr/pam.cxx | 10 ++++++++
sw/source/core/docnode/nodes.cxx | 43 +++++++----------------------------
4 files changed, 20 insertions(+), 36 deletions(-)
New commits:
commit 648758906e2d4a7a953d4eda27e95bc9478d336a
Author: Michael Stahl <Michael.Stahl at cib.de>
AuthorDate: Mon Nov 25 19:01:57 2019 +0100
Commit: Michael Stahl <michael.stahl at cib.de>
CommitDate: Tue Nov 26 11:10:11 2019 +0100
sw: remove SwNodes::CheckNodesRange()
Looks like it's the same as ::CheckNodesRange(..., false).
Change-Id: I1938892cdba9ff1d9758a0f1b6cb516e28f5d8bd
Reviewed-on: https://gerrit.libreoffice.org/83708
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl at cib.de>
diff --git a/sw/inc/ndarr.hxx b/sw/inc/ndarr.hxx
index 2f2958c977bc..da52d06377f6 100644
--- a/sw/inc/ndarr.hxx
+++ b/sw/inc/ndarr.hxx
@@ -181,8 +181,6 @@ public:
void SectionUp( SwNodeRange *);
void SectionDown( SwNodeRange *pRange, SwStartNodeType = SwNormalStartNode );
- bool CheckNodesRange( const SwNodeIndex& rStt, const SwNodeIndex& rEnd ) const;
-
static void GoStartOfSection(SwNodeIndex *);
static void GoEndOfSection(SwNodeIndex *);
diff --git a/sw/source/core/docnode/nodes.cxx b/sw/source/core/docnode/nodes.cxx
index c1fdb7f87d95..b0a6055d782f 100644
--- a/sw/source/core/docnode/nodes.cxx
+++ b/sw/source/core/docnode/nodes.cxx
@@ -893,8 +893,10 @@ void SwNodes::SectionDown(SwNodeRange *pRange, SwStartNodeType eSttNdTyp )
{
if( pRange->aStart >= pRange->aEnd ||
pRange->aEnd >= Count() ||
- !CheckNodesRange( pRange->aStart, pRange->aEnd ))
+ !::CheckNodesRange(pRange->aStart, pRange->aEnd, false))
+ {
return;
+ }
// If the beginning of a range is before or at a start node position, so
// delete it, otherwise empty S/E or E/S nodes would be created.
@@ -945,9 +947,11 @@ void SwNodes::SectionUp(SwNodeRange *pRange)
{
if( pRange->aStart >= pRange->aEnd ||
pRange->aEnd >= Count() ||
- !CheckNodesRange( pRange->aStart, pRange->aEnd ) ||
+ !::CheckNodesRange(pRange->aStart, pRange->aEnd, false) ||
( HighestLevel( *this, *pRange ) <= 1 ))
+ {
return;
+ }
// If the beginning of a range is before or at a start node position, so
// delete it, otherwise empty S/E or E/S nodes would be created.
@@ -1073,8 +1077,10 @@ void SwNodes::Delete(const SwNodeIndex &rIndex, sal_uLong nNodes)
// check if [rIndex..rIndex + nCnt] is larger than the range
if( ( !aRg.aStart.GetNode().StartOfSectionIndex() &&
!aRg.aStart.GetIndex() ) ||
- ! CheckNodesRange( aRg.aStart, aRg.aEnd ) )
+ !::CheckNodesRange(aRg.aStart, aRg.aEnd, false))
+ {
return;
+ }
// if aEnd is not on a ContentNode, search the previous one
while( ( pCurrentNode = &aRg.aEnd.GetNode())->GetStartNode() ||
@@ -1302,37 +1308,6 @@ SwContentNode* SwNodes::GoPrevious(SwNodeIndex *pIdx)
return static_cast<SwContentNode*>(pNd);
}
-static bool TstIdx( sal_uLong nSttIdx, sal_uLong nEndIdx, sal_uLong nStt, sal_uLong nEnd )
-{
- return nStt < nSttIdx && nEnd >= nSttIdx &&
- nStt < nEndIdx && nEnd >= nEndIdx;
-}
-
-/** Check if the given range is inside one of the defined top-level sections.
- *
- * The top-level sections are Content, AutoText, PostIts, Inserts, and Redlines.
- *
- * @param rStt start index of the range
- * @param rEnd end index of the range
- * @return <true> if valid range
- */
-bool SwNodes::CheckNodesRange( const SwNodeIndex& rStt, const SwNodeIndex& rEnd ) const
-{
- sal_uLong nStt = rStt.GetIndex(), nEnd = rEnd.GetIndex();
- if( TstIdx( nStt, nEnd, m_pEndOfContent->StartOfSectionIndex(),
- m_pEndOfContent->GetIndex() )) return true;
- if( TstIdx( nStt, nEnd, m_pEndOfAutotext->StartOfSectionIndex(),
- m_pEndOfAutotext->GetIndex() )) return true;
- if( TstIdx( nStt, nEnd, m_pEndOfPostIts->StartOfSectionIndex(),
- m_pEndOfPostIts->GetIndex() )) return true;
- if( TstIdx( nStt, nEnd, m_pEndOfInserts->StartOfSectionIndex(),
- m_pEndOfInserts->GetIndex() )) return true;
- if( TstIdx( nStt, nEnd, m_pEndOfRedlines->StartOfSectionIndex(),
- m_pEndOfRedlines->GetIndex() )) return true;
-
- return false; // is somewhere in the middle, ERROR
-}
-
/** Delete a number of nodes
*
* @param rStart starting position in this nodes array
commit 7424588115568576c61005386242e3d7e9662dfd
Author: Michael Stahl <Michael.Stahl at cib.de>
AuthorDate: Mon Nov 25 18:29:15 2019 +0100
Commit: Michael Stahl <michael.stahl at cib.de>
CommitDate: Tue Nov 26 11:09:46 2019 +0100
sw: document CheckNodesRange functions
Change-Id: I6ca104773eee6809258fdea6be6370b726da8fd4
Reviewed-on: https://gerrit.libreoffice.org/83707
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl at cib.de>
diff --git a/sw/source/core/crsr/pam.cxx b/sw/source/core/crsr/pam.cxx
index afc89c8bee0c..9b742776cae9 100644
--- a/sw/source/core/crsr/pam.cxx
+++ b/sw/source/core/crsr/pam.cxx
@@ -237,6 +237,16 @@ static bool lcl_ChkOneRange( CHKSECTION eSec, bool bChkSections,
nSttIdx <= nEnd && nEnd <= nEndIdx;
}
+/** Check if the given range is inside one of the defined top-level sections.
+ *
+ * The top-level sections are Content, AutoText, PostIts, Inserts, and Redlines.
+ *
+ * @param bChkSection if true, also check that the given range is inside
+ * a single second-level section inside any of the
+ * top-level sections, except for the Content section.
+ *
+ * @return <true> if valid range
+ */
bool CheckNodesRange( const SwNodeIndex& rStt,
const SwNodeIndex& rEnd, bool bChkSection )
{
diff --git a/sw/source/core/docnode/nodes.cxx b/sw/source/core/docnode/nodes.cxx
index 10cc05aec7af..c1fdb7f87d95 100644
--- a/sw/source/core/docnode/nodes.cxx
+++ b/sw/source/core/docnode/nodes.cxx
@@ -1308,9 +1308,9 @@ static bool TstIdx( sal_uLong nSttIdx, sal_uLong nEndIdx, sal_uLong nStt, sal_uL
nStt < nEndIdx && nEnd >= nEndIdx;
}
-/** Check if the given range is inside the defined ranges
+/** Check if the given range is inside one of the defined top-level sections.
*
- * The defined ranges are Content, AutoText, PostIts, Inserts, and Redlines.
+ * The top-level sections are Content, AutoText, PostIts, Inserts, and Redlines.
*
* @param rStt start index of the range
* @param rEnd end index of the range
commit 405c9f65c5dbfddf1f9162716fab0d30e44c420e
Author: Tor Lillqvist <tml at collabora.com>
AuthorDate: Wed Oct 23 11:54:54 2019 +0300
Commit: Tor Lillqvist <tml at collabora.com>
CommitDate: Tue Nov 26 12:09:35 2019 +0200
Add note that SwVbaDocuments::Close() does nothing
Change-Id: Ibf4d175b4b4a0b9f168401e52af6b0459aacd046
Reviewed-on: https://gerrit.libreoffice.org/81368
Reviewed-by: Tor Lillqvist <tml at collabora.com>
Tested-by: Tor Lillqvist <tml at collabora.com>
(cherry picked from commit 61a656cb9c7db1863e56d1183cb82c7e8be63cc5)
(cherry picked from commit 5c5034a6d5d411fedf1fb00e736c55b7bdd6f840)
diff --git a/oovbaapi/ooo/vba/word/XDocuments.idl b/oovbaapi/ooo/vba/word/XDocuments.idl
index 79517c53576f..dda25a4014ad 100644
--- a/oovbaapi/ooo/vba/word/XDocuments.idl
+++ b/oovbaapi/ooo/vba/word/XDocuments.idl
@@ -34,6 +34,7 @@ interface XDocuments : com::sun::star::uno::XInterface
any OpenOld([in] string FileName, [in] any ConfirmConversions, [in] any ReadOnly, [in] any AddToRecentFiles, [in] any PasswordDocument, [in] any PasswordTemplate, [in] any Revert, [in] any WritePasswordDocument, [in] any WritePasswordTemplate, [in] any Format);
+ // Note that this method doesn't actually do anhything, see sw/source/ui/vba/vbadocuments.cxx
void Close([in] any SaveChanges,[in] any OriginalFormat,[in] any RouteDocument);
};
More information about the Libreoffice-commits
mailing list