editeng/source/editeng/editeng.cxx  |   51 ++---------------------------
 editeng/source/editeng/impedit.hxx  |    6 +++
 editeng/source/editeng/impedit5.cxx |   62 ++++++++++++++++++++++++++++++++++++
 3 files changed, 73 insertions(+), 46 deletions(-)

New commits:
commit 37702339ec543710de7a122f4b9d01650e24d0ee
Author:     Noel Grandin <[email protected]>
AuthorDate: Sun Jun 16 13:54:26 2024 +0200
Commit:     Noel Grandin <[email protected]>
CommitDate: Sun Jun 16 16:35:37 2024 +0200

    move SetDefTab code from EditEngine to ImpEditEngine
    
    so we have the implementation in one class, instead of bouncing
    back and forth between two.
    
    Change-Id: Ia887c46c70971f51a77a74fd03132b7eebb6c192
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168927
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <[email protected]>

diff --git a/editeng/source/editeng/editeng.cxx 
b/editeng/source/editeng/editeng.cxx
index d78f07fb78e7..dc3c0ca40d2b 100644
--- a/editeng/source/editeng/editeng.cxx
+++ b/editeng/source/editeng/editeng.cxx
@@ -257,12 +257,7 @@ void EditEngine::SetActiveView(EditView* pView)
 
 void EditEngine::SetDefTab( sal_uInt16 nDefTab )
 {
-    getImpl().GetEditDoc().SetDefTab(nDefTab);
-    if (getImpl().IsFormatted())
-    {
-        getImpl().FormatFullDoc();
-        getImpl().UpdateViews();
-    }
+    getImpl().SetDefTab(nDefTab);
 }
 
 void EditEngine::SetPaperSize(const Size& rNewSize)
diff --git a/editeng/source/editeng/impedit.hxx 
b/editeng/source/editeng/impedit.hxx
index f63a0fc06a9d..50d84299d144 100644
--- a/editeng/source/editeng/impedit.hxx
+++ b/editeng/source/editeng/impedit.hxx
@@ -1366,6 +1366,8 @@ public:
     tools::Long getBottomDocOffset(const tools::Rectangle& rect) const;
     Size getTopLeftDocOffset(const tools::Rectangle& rect) const;
 
+    void SetDefTab( sal_uInt16 nDefTab );
+
 #ifdef DBG_UTIL
     void DumpData(bool bInfoBox);
 #endif
diff --git a/editeng/source/editeng/impedit5.cxx 
b/editeng/source/editeng/impedit5.cxx
index 9ca92cf856c5..99a1796bfc28 100644
--- a/editeng/source/editeng/impedit5.cxx
+++ b/editeng/source/editeng/impedit5.cxx
@@ -861,6 +861,16 @@ bool ImpEditEngine::HasView( EditView* pView ) const
     return std::find(maEditViews.begin(), maEditViews.end(), pView) != 
maEditViews.end();
 }
 
+void ImpEditEngine::SetDefTab( sal_uInt16 nDefTab )
+{
+    maEditDoc.SetDefTab(nDefTab);
+    if (IsFormatted())
+    {
+        FormatFullDoc();
+        UpdateViews();
+    }
+}
+
 IdleFormattter::IdleFormattter()
     : Idle("editeng::ImpEditEngine aIdleFormatter")
 {
commit 02f51dc8f51f431e99062ae1ac144ff3e0ecdd94
Author:     Noel Grandin <[email protected]>
AuthorDate: Sun Jun 16 13:49:48 2024 +0200
Commit:     Noel Grandin <[email protected]>
CommitDate: Sun Jun 16 16:35:28 2024 +0200

    move InsertView/RemoveView code from EditEngine to ImpEditEngine
    
    so we have the implementation in one class, instead of bouncing
    back and forth between two.
    
    Change-Id: Iec4edf42c3047823b4dce6af789a94a849dd5039
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168926
    Reviewed-by: Noel Grandin <[email protected]>
    Tested-by: Jenkins

diff --git a/editeng/source/editeng/editeng.cxx 
b/editeng/source/editeng/editeng.cxx
index 0c68a1e9bee8..d78f07fb78e7 100644
--- a/editeng/source/editeng/editeng.cxx
+++ b/editeng/source/editeng/editeng.cxx
@@ -217,52 +217,17 @@ void EditEngine::Draw( OutputDevice& rOutDev, const 
tools::Rectangle& rOutRect,
 
 void EditEngine::InsertView(EditView* pEditView, size_t nIndex)
 {
-    if (nIndex > getImpl().GetEditViews().size())
-        nIndex = getImpl().GetEditViews().size();
-
-    ImpEditEngine::ViewsType& rViews = getImpl().GetEditViews();
-    rViews.insert(rViews.begin()+nIndex, pEditView);
-
-    EditSelection aStartSel = getImpl().GetEditDoc().GetStartPaM();
-    pEditView->getImpl().SetEditSelection( aStartSel );
-    if (!getImpl().GetActiveView())
-        getImpl().SetActiveView(pEditView);
-
-    pEditView->getImpl().AddDragAndDropListeners();
+    getImpl().InsertView(pEditView, nIndex);
 }
 
 EditView* EditEngine::RemoveView( EditView* pView )
 {
-    pView->HideCursor();
-    EditView* pRemoved = nullptr;
-    ImpEditEngine::ViewsType& rViews = getImpl().GetEditViews();
-    ImpEditEngine::ViewsType::iterator it = std::find(rViews.begin(), 
rViews.end(), pView);
-
-    DBG_ASSERT( it != rViews.end(), "RemoveView with invalid index" );
-    if (it != rViews.end())
-    {
-        pRemoved = *it;
-        rViews.erase(it);
-        if (getImpl().GetActiveView() == pView)
-        {
-            getImpl().SetActiveView(nullptr);
-            getImpl().GetSelEngine().SetCurView(nullptr);
-        }
-        pView->getImpl().RemoveDragAndDropListeners();
-
-    }
-    return pRemoved;
+    return getImpl().RemoveView(pView);
 }
 
 void EditEngine::RemoveView(size_t nIndex)
 {
-    ImpEditEngine::ViewsType& rViews = getImpl().GetEditViews();
-    if (nIndex >= rViews.size())
-        return;
-
-    EditView* pView = rViews[nIndex];
-    if ( pView )
-        RemoveView( pView );
+    getImpl().RemoveView(nIndex);
 }
 
 EditView* EditEngine::GetView(size_t nIndex) const
@@ -277,8 +242,7 @@ size_t EditEngine::GetViewCount() const
 
 bool EditEngine::HasView( EditView* pView ) const
 {
-    ImpEditEngine::ViewsType const& rViews = getImpl().GetEditViews();
-    return std::find(rViews.begin(), rViews.end(), pView) != rViews.end();
+    return getImpl().HasView(pView);
 }
 
 EditView* EditEngine::GetActiveView() const
diff --git a/editeng/source/editeng/impedit.hxx 
b/editeng/source/editeng/impedit.hxx
index 36a276f3b935..f63a0fc06a9d 100644
--- a/editeng/source/editeng/impedit.hxx
+++ b/editeng/source/editeng/impedit.hxx
@@ -941,6 +941,10 @@ public:
 
     ViewsType& GetEditViews() { return maEditViews; }
     const ViewsType& GetEditViews() const { return maEditViews; }
+    void InsertView(EditView* pEditView, size_t nIndex);
+    EditView* RemoveView( EditView* pView );
+    void RemoveView(size_t nIndex);
+    bool HasView( EditView* pView ) const;
 
     const Size& GetPaperSize() const { return maPaperSize; }
 
diff --git a/editeng/source/editeng/impedit5.cxx 
b/editeng/source/editeng/impedit5.cxx
index 7246d4cc4c4c..9ca92cf856c5 100644
--- a/editeng/source/editeng/impedit5.cxx
+++ b/editeng/source/editeng/impedit5.cxx
@@ -809,6 +809,58 @@ void ImpEditEngine::SetPolygon(const 
basegfx::B2DPolyPolygon& rPolyPolygon, cons
     maPaperSize = pRanger->GetBoundRect().GetSize();
 }
 
+void ImpEditEngine::InsertView(EditView* pEditView, size_t nIndex)
+{
+    if (nIndex > maEditViews.size())
+        nIndex = maEditViews.size();
+
+    maEditViews.insert(maEditViews.begin()+nIndex, pEditView);
+
+    EditSelection aStartSel = maEditDoc.GetStartPaM();
+    pEditView->getImpl().SetEditSelection( aStartSel );
+    if (!mpActiveView)
+        SetActiveView(pEditView);
+
+    pEditView->getImpl().AddDragAndDropListeners();
+}
+
+EditView* ImpEditEngine::RemoveView( EditView* pView )
+{
+    pView->HideCursor();
+    EditView* pRemoved = nullptr;
+    ImpEditEngine::ViewsType::iterator it = std::find(maEditViews.begin(), 
maEditViews.end(), pView);
+
+    DBG_ASSERT( it != maEditViews.end(), "RemoveView with invalid index" );
+    if (it != maEditViews.end())
+    {
+        pRemoved = *it;
+        maEditViews.erase(it);
+        if (mpActiveView == pView)
+        {
+            SetActiveView(nullptr);
+            GetSelEngine().SetCurView(nullptr);
+        }
+        pView->getImpl().RemoveDragAndDropListeners();
+
+    }
+    return pRemoved;
+}
+
+void ImpEditEngine::RemoveView(size_t nIndex)
+{
+    if (nIndex >= maEditViews.size())
+        return;
+
+    EditView* pView = maEditViews[nIndex];
+    if ( pView )
+        RemoveView( pView );
+}
+
+bool ImpEditEngine::HasView( EditView* pView ) const
+{
+    return std::find(maEditViews.begin(), maEditViews.end(), pView) != 
maEditViews.end();
+}
+
 IdleFormattter::IdleFormattter()
     : Idle("editeng::ImpEditEngine aIdleFormatter")
 {

Reply via email to