sw/source/filter/basflt/fltshell.cxx |    2 +-
 sw/source/filter/inc/fltshell.hxx    |   12 +++++++++++-
 sw/source/filter/ww8/ww8par.cxx      |   15 ---------------
 sw/source/filter/ww8/ww8par.hxx      |   20 +-------------------
 sw/source/filter/ww8/ww8par5.cxx     |   10 ++++------
 5 files changed, 17 insertions(+), 42 deletions(-)

New commits:
commit 4f35958c64d5e63c30e67434936c3a0352f57698
Author:     Caolán McNamara <caol...@redhat.com>
AuthorDate: Mon Mar 1 12:25:48 2021 +0000
Commit:     Caolán McNamara <caol...@redhat.com>
CommitDate: Mon Mar 1 21:24:13 2021 +0100

    merge sw::hack::Position and SwFltPosition
    
    because they both attempt the same thing
    
    Change-Id: Ica0201fc114dd6251f05aa94c685258e322f7314
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111749
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caol...@redhat.com>

diff --git a/sw/source/filter/basflt/fltshell.cxx 
b/sw/source/filter/basflt/fltshell.cxx
index 153ccf42a37b..9514f2534095 100644
--- a/sw/source/filter/basflt/fltshell.cxx
+++ b/sw/source/filter/basflt/fltshell.cxx
@@ -101,7 +101,7 @@ void SwFltStackEntry::SetEndPos(const SwPosition& rEndPos)
     // the cursor position moves the attribute's range
     // That's not the desired behavior!
     bOpen = false;                  // release and remember END
-    m_aPtPos.SetPos(rEndPos);
+    m_aPtPos.FromSwPosition(rEndPos);
 }
 
 bool SwFltStackEntry::MakeRegion(SwDoc& rDoc, SwPaM& rRegion, RegionMode const 
eCheck,
diff --git a/sw/source/filter/inc/fltshell.hxx 
b/sw/source/filter/inc/fltshell.hxx
index e6e74e111e0d..4019c2c0ff9c 100644
--- a/sw/source/filter/inc/fltshell.hxx
+++ b/sw/source/filter/inc/fltshell.hxx
@@ -60,6 +60,7 @@ public:
         m_nNode = rNode;
         m_nContent = nIdx;
     }
+
     //operators with SwPosition, where the node is hacked to the previous one,
     //and the offset to content is de-dynamic-ified
     SwFltPosition(const SwPosition &rPos)
@@ -67,11 +68,20 @@ public:
         , m_nContent(rPos.nContent.GetIndex())
     {
     }
-    void SetPos(const SwPosition &rPos)
+
+    void FromSwPosition(const SwPosition &rPos)
     {
         m_nNode = rPos.nNode.GetIndex()-1;
         m_nContent = rPos.nContent.GetIndex();
     }
+
+    SwPosition ToSwPosition() const
+    {
+        SwNodeIndex m_nCorrectNode(m_nNode, +1);
+        SwPosition aRet(m_nCorrectNode);
+        aRet.nContent.Assign(m_nCorrectNode.GetNode().GetContentNode(), 
m_nContent);
+        return aRet;
+    }
 };
 
 // Stack entry for the attributes. It is always pointers to new attributes 
that are passed.
diff --git a/sw/source/filter/ww8/ww8par.cxx b/sw/source/filter/ww8/ww8par.cxx
index abab8b7d91c4..68069d83a7a1 100644
--- a/sw/source/filter/ww8/ww8par.cxx
+++ b/sw/source/filter/ww8/ww8par.cxx
@@ -6651,21 +6651,6 @@ bool SwWW8ImplReader::InEqualApo(int nLvl) const
     return m_aApos[nLvl];
 }
 
-namespace sw::hack
-{
-        Position::Position(const SwPosition &rPos)
-            : maPtNode(rPos.nNode), mnPtContent(rPos.nContent.GetIndex())
-        {
-        }
-
-        Position::operator SwPosition() const
-        {
-            SwPosition aRet(maPtNode);
-            aRet.nContent.Assign(maPtNode.GetNode().GetContentNode(), 
mnPtContent);
-            return aRet;
-        }
-}
-
 SwMacroInfo::SwMacroInfo()
     : SdrObjUserData( SdrInventor::ScOrSwDraw, SW_UD_IMAPDATA )
     , mnShapeId(-1)
diff --git a/sw/source/filter/ww8/ww8par.hxx b/sw/source/filter/ww8/ww8par.hxx
index c4c60f30f586..21975f20fac8 100644
--- a/sw/source/filter/ww8/ww8par.hxx
+++ b/sw/source/filter/ww8/ww8par.hxx
@@ -543,21 +543,6 @@ struct HyperLinksTable
 
 namespace sw
 {
-    namespace hack
-    {
-        class Position
-        {
-        private:
-            SwNodeIndex maPtNode;
-            sal_Int32 mnPtContent;
-        public:
-            explicit Position(const SwPosition &rPos);
-            operator SwPosition() const;
-            const SwNodeIndex& GetPtNode() const { return maPtNode; };
-            sal_Int32 GetPtContent() const { return mnPtContent; };
-        };
-    }
-
     auto FilterControlChars(OUString const& rString) -> OUString;
 }
 
@@ -570,7 +555,7 @@ class WW8FieldEntry
         ::sw::mark::IFieldmark::parameter_map_t maParams;
 
     public:
-        sw::hack::Position maStartPos;
+        SwFltPosition maStartPos;
         sal_uInt16 mnFieldId;
         sal_uLong mnObjLocFc;
         WW8FieldEntry(SwPosition const &rPos, sal_uInt16 nFieldId) throw();
@@ -578,9 +563,6 @@ class WW8FieldEntry
         WW8FieldEntry &operator=(const WW8FieldEntry &rOther) throw();
         void Swap(WW8FieldEntry &rOther) throw();
 
-        SwNodeIndex GetPtNode() const { return maStartPos.GetPtNode(); };
-        sal_Int32 GetPtContent() const { return maStartPos.GetPtContent(); };
-
         const OUString& GetBookmarkName() const { return msBookmarkName;}
         const OUString& GetBookmarkCode() const { return msMarkCode;}
         void SetBookmarkName(const OUString& bookmarkName);
diff --git a/sw/source/filter/ww8/ww8par5.cxx b/sw/source/filter/ww8/ww8par5.cxx
index 88b952099e6a..202f9a2d629f 100644
--- a/sw/source/filter/ww8/ww8par5.cxx
+++ b/sw/source/filter/ww8/ww8par5.cxx
@@ -220,7 +220,7 @@ tools::Long SwWW8ImplReader::Read_Book(WW8PLCFManResult*)
     if (!m_aFieldStack.empty())
     {
         const WW8FieldEntry &rTest = m_aFieldStack.back();
-        aStart = rTest.maStartPos;
+        aStart = rTest.maStartPos.ToSwPosition();
     }
 
     const OUString sOrigName = BookmarkToWriter(*pName);
@@ -522,7 +522,7 @@ sal_uInt16 SwWW8ImplReader::End_Field()
         case ww::eFORMTEXT:
         if (bUseEnhFields && m_pPaM!=nullptr && m_pPaM->GetPoint()!=nullptr) {
             SwPosition aEndPos = *m_pPaM->GetPoint();
-            SwPaM aFieldPam( m_aFieldStack.back().GetPtNode(), 
m_aFieldStack.back().GetPtContent(), aEndPos.nNode, 
aEndPos.nContent.GetIndex());
+            SwPaM aFieldPam(m_aFieldStack.back().maStartPos.ToSwPosition(), 
aEndPos);
             IDocumentMarkAccess* pMarksAccess = m_rDoc.getIDocumentMarkAccess( 
);
             IFieldmark *pFieldmark = pMarksAccess->makeFieldBookmark(
                         aFieldPam, m_aFieldStack.back().GetBookmarkName(), 
ODF_FORMTEXT,
@@ -584,7 +584,7 @@ sal_uInt16 SwWW8ImplReader::End_Field()
             case ww::eMERGEINC:
             case ww::eINCLUDETEXT:
                 //Move outside the section associated with this type of field
-                *m_pPaM->GetPoint() = m_aFieldStack.back().maStartPos;
+                *m_pPaM->GetPoint() = 
m_aFieldStack.back().maStartPos.ToSwPosition();
                 break;
             case ww::eIF: // IF-field
             {
@@ -616,9 +616,7 @@ sal_uInt16 SwWW8ImplReader::End_Field()
                 {
                     // Unhandled field with stored code
                     SwPosition aEndPos = *m_pPaM->GetPoint();
-                    SwPaM aFieldPam(
-                            m_aFieldStack.back().GetPtNode(), 
m_aFieldStack.back().GetPtContent(),
-                            aEndPos.nNode, aEndPos.nContent.GetIndex());
+                    SwPaM 
aFieldPam(m_aFieldStack.back().maStartPos.ToSwPosition(), aEndPos);
 
                     IDocumentMarkAccess* pMarksAccess = 
m_rDoc.getIDocumentMarkAccess( );
 
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to