editeng/source/editeng/editeng.cxx | 34 +----------------------------- editeng/source/editeng/impedit.hxx | 5 ++-- editeng/source/editeng/impedit2.cxx | 40 ++++++++++++++++++++++++++++++++++++ 3 files changed, 45 insertions(+), 34 deletions(-)
New commits: commit 41d6c0895b2d9964113fbe468bca9b82fece1b7c Author: Noel Grandin <[email protected]> AuthorDate: Sun Jun 16 14:03:11 2024 +0200 Commit: Noel Grandin <[email protected]> CommitDate: Sun Jun 16 16:35:55 2024 +0200 move GetScriptType code from EditEngine to ImpEditEngine so we have the implementation in one class, instead of bouncing back and forth between two. Change-Id: I5aa2d12ff0c85893e2facd491d3c5ed00db77de0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168929 Tested-by: Jenkins Reviewed-by: Noel Grandin <[email protected]> diff --git a/editeng/source/editeng/editeng.cxx b/editeng/source/editeng/editeng.cxx index 0919bd3ab37d..ab3b26d476b7 100644 --- a/editeng/source/editeng/editeng.cxx +++ b/editeng/source/editeng/editeng.cxx @@ -322,8 +322,7 @@ EEHorizontalTextDirection EditEngine::GetDefaultHorizontalTextDirection() const SvtScriptType EditEngine::GetScriptType( const ESelection& rSelection ) const { - EditSelection aSel(getImpl().CreateSel(rSelection)); - return getImpl().GetItemScriptType( aSel ); + return getImpl().GetScriptType( rSelection ); } editeng::LanguageSpan EditEngine::GetLanguage(const EditPaM& rPaM) const diff --git a/editeng/source/editeng/impedit.hxx b/editeng/source/editeng/impedit.hxx index e8c144ea8cb9..274e3ba8da26 100644 --- a/editeng/source/editeng/impedit.hxx +++ b/editeng/source/editeng/impedit.hxx @@ -751,6 +751,7 @@ private: void InitScriptTypes( sal_Int32 nPara ); sal_uInt16 GetI18NScriptType( const EditPaM& rPaM, sal_Int32* pEndPos = nullptr ) const; + SvtScriptType GetScriptType( const ESelection& rSel ); SvtScriptType GetItemScriptType( const EditSelection& rSel ) const; bool IsScriptChange( const EditPaM& rPaM ) const; bool HasScriptType( sal_Int32 nPara, sal_uInt16 nType ) const; diff --git a/editeng/source/editeng/impedit2.cxx b/editeng/source/editeng/impedit2.cxx index 2e4a764f174e..ad974d5aff9c 100644 --- a/editeng/source/editeng/impedit2.cxx +++ b/editeng/source/editeng/impedit2.cxx @@ -1848,6 +1848,12 @@ sal_uInt16 ImpEditEngine::GetI18NScriptType( const EditPaM& rPaM, sal_Int32* pEn return nScriptType ? nScriptType : SvtLanguageOptions::GetI18NScriptTypeOfLanguage( GetDefaultLanguage() ); } +SvtScriptType ImpEditEngine::GetScriptType( const ESelection& rSel ) +{ + EditSelection aSel(CreateSel(rSel)); + return GetItemScriptType( aSel ); +} + SvtScriptType ImpEditEngine::GetItemScriptType( const EditSelection& rSel ) const { EditSelection aSel( rSel ); commit 197bca4e4cb36c0edbdc3ad51aeb165df6a3c09f Author: Noel Grandin <[email protected]> AuthorDate: Sun Jun 16 13:58:43 2024 +0200 Commit: Noel Grandin <[email protected]> CommitDate: Sun Jun 16 16:35:46 2024 +0200 move SetPaperSize code from EditEngine to ImpEditEngine so we have the implementation in one class, instead of bouncing back and forth between two. Change-Id: Ia58dd654872f96cb0eaf964df6a9cc7d3b5628f5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168928 Reviewed-by: Noel Grandin <[email protected]> Tested-by: Jenkins diff --git a/editeng/source/editeng/editeng.cxx b/editeng/source/editeng/editeng.cxx index dc3c0ca40d2b..0919bd3ab37d 100644 --- a/editeng/source/editeng/editeng.cxx +++ b/editeng/source/editeng/editeng.cxx @@ -262,36 +262,7 @@ void EditEngine::SetDefTab( sal_uInt16 nDefTab ) void EditEngine::SetPaperSize(const Size& rNewSize) { - Size aOldSize = getImpl().GetPaperSize(); - getImpl().SetValidPaperSize(rNewSize); - Size aNewSize = getImpl().GetPaperSize(); - - bool bAutoPageSize = getImpl().GetStatus().AutoPageSize(); - if ( !(bAutoPageSize || ( aNewSize.Width() != aOldSize.Width() )) ) - return; - - for (EditView* pView : getImpl().maEditViews) - { - if ( bAutoPageSize ) - pView->getImpl().RecalcOutputArea(); - else if (pView->getImpl().DoAutoSize()) - { - pView->getImpl().ResetOutputArea(tools::Rectangle(pView->getImpl().GetOutputArea().TopLeft(), aNewSize)); - } - } - - if ( bAutoPageSize || getImpl().IsFormatted() ) - { - // Changing the width has no effect for AutoPageSize, as this is - // determined by the text width. - // Optimization first after Vobis delivery was enabled ... - getImpl().FormatFullDoc(); - - getImpl().UpdateViews(getImpl().GetActiveView()); - - if (getImpl().IsUpdateLayout() && getImpl().GetActiveView()) - getImpl().mpActiveView->ShowCursor(false, false); - } + getImpl().SetPaperSize(rNewSize); } const Size& EditEngine::GetPaperSize() const diff --git a/editeng/source/editeng/impedit.hxx b/editeng/source/editeng/impedit.hxx index 50d84299d144..e8c144ea8cb9 100644 --- a/editeng/source/editeng/impedit.hxx +++ b/editeng/source/editeng/impedit.hxx @@ -874,8 +874,6 @@ private: css::uno::Reference< css::datatransfer::XTransferable > CreateTransferable( const EditSelection& rSelection ); - void SetValidPaperSize( const Size& rSz ); - css::uno::Reference < css::i18n::XBreakIterator > const & ImplGetBreakIterator() const; css::uno::Reference < css::i18n::XExtendedInputSequenceChecker > const & ImplGetInputSequenceChecker() const; @@ -946,7 +944,9 @@ public: void RemoveView(size_t nIndex); bool HasView( EditView* pView ) const; + void SetValidPaperSize( const Size& rSz ); const Size& GetPaperSize() const { return maPaperSize; } + void SetPaperSize(const Size& rNewSize); void SetPolygon(const basegfx::B2DPolyPolygon& rPolyPolygon, const basegfx::B2DPolyPolygon* pLinePolyPolygon); diff --git a/editeng/source/editeng/impedit2.cxx b/editeng/source/editeng/impedit2.cxx index 7635a061c297..2e4a764f174e 100644 --- a/editeng/source/editeng/impedit2.cxx +++ b/editeng/source/editeng/impedit2.cxx @@ -4505,6 +4505,40 @@ void ImpEditEngine::CalcHeight(ParaPortion& rPortion) } } +void ImpEditEngine::SetPaperSize(const Size& rNewSize) +{ + Size aOldSize = maPaperSize; + SetValidPaperSize(rNewSize); + Size aNewSize = maPaperSize; + + bool bAutoPageSize = GetStatus().AutoPageSize(); + if ( !(bAutoPageSize || ( aNewSize.Width() != aOldSize.Width() )) ) + return; + + for (EditView* pView : maEditViews) + { + if ( bAutoPageSize ) + pView->getImpl().RecalcOutputArea(); + else if (pView->getImpl().DoAutoSize()) + { + pView->getImpl().ResetOutputArea(tools::Rectangle(pView->getImpl().GetOutputArea().TopLeft(), aNewSize)); + } + } + + if ( bAutoPageSize || IsFormatted() ) + { + // Changing the width has no effect for AutoPageSize, as this is + // determined by the text width. + // Optimization first after Vobis delivery was enabled ... + FormatFullDoc(); + + UpdateViews(mpActiveView); + + if (IsUpdateLayout() && mpActiveView) + mpActiveView->ShowCursor(false, false); + } +} + void ImpEditEngine::SetValidPaperSize( const Size& rNewSz ) { maPaperSize = rNewSz;
