summaryrefslogtreecommitdiff
path: root/editeng
diff options
context:
space:
mode:
authorNoel Grandin <noelgrandin@gmail.com>2024-06-16 13:49:48 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2024-06-16 16:35:28 +0200
commit02f51dc8f51f431e99062ae1ac144ff3e0ecdd94 (patch)
tree30ef97108f1b6fcee80ba6cb0e3700f3f0184ad0 /editeng
parentfab293ebc59c583f4cd17a6802f7d538b6b53556 (diff)
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 <noel.grandin@collabora.co.uk> Tested-by: Jenkins
Diffstat (limited to 'editeng')
-rw-r--r--editeng/source/editeng/editeng.cxx44
-rw-r--r--editeng/source/editeng/impedit.hxx4
-rw-r--r--editeng/source/editeng/impedit5.cxx52
3 files changed, 60 insertions, 40 deletions
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")
{