sd/source/ui/func/futext.cxx | 104 +++++++++---------------------------------- sd/source/ui/inc/futext.hxx | 1 2 files changed, 22 insertions(+), 83 deletions(-)
New commits: commit 059f99991e8f291404addeba9341d2c4989976af Author: Bayram Çiçek <bayram.ci...@libreoffice.org> AuthorDate: Fri Apr 14 00:34:52 2023 +0300 Commit: Maxim Monastirsky <momonas...@gmail.com> CommitDate: Tue Apr 18 01:18:57 2023 +0200 tdf#90253: Impress: make TextBox retain its height - [Impress] drawing a new Text Box and Vertical Text minimize itself to the height of one line. - This behavior has changed and inserting a new TextBox/VerticalText does not shrink itself to height of one line. - Unified some common Draw and Impress codes - removed unnecessary ImpSetAttributesFitCommon(pText) function, as ImpSetAttributesForNewTextObject(pText) takes care of the Text Box creations. - SID_ATTR_CHAR (.uno:Text) - SID_ATTR_CHAR_VERTICAL (.uno:VerticalText) Change-Id: Ia944c2b64d5b1fa6970f6afabf41d36bf1643efa Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150377 Tested-by: Jenkins Reviewed-by: Maxim Monastirsky <momonas...@gmail.com> diff --git a/sd/source/ui/func/futext.cxx b/sd/source/ui/func/futext.cxx index 60e36e2674b3..f01851668f76 100644 --- a/sd/source/ui/func/futext.cxx +++ b/sd/source/ui/func/futext.cxx @@ -509,59 +509,34 @@ bool FuText::MouseMove(const MouseEvent& rMEvt) void FuText::ImpSetAttributesForNewTextObject(SdrTextObj* pTxtObj) { - if(mpDoc->GetDocumentType() == DocumentType::Impress) + if( nSlotId == SID_ATTR_CHAR ) { - if( nSlotId == SID_ATTR_CHAR ) - { - /* Create Impress text object (rescales to line height) - We get the correct height during the subsequent creation of the - object, otherwise we draw too much */ - SfxItemSet aSet(mpViewShell->GetPool()); - aSet.Put(makeSdrTextMinFrameHeightItem(0)); - aSet.Put(makeSdrTextAutoGrowWidthItem(false)); - aSet.Put(makeSdrTextAutoGrowHeightItem(true)); - pTxtObj->SetMergedItemSet(aSet); - pTxtObj->AdjustTextFrameWidthAndHeight(); - aSet.Put(makeSdrTextMaxFrameHeightItem(pTxtObj->GetLogicRect().GetSize().Height())); - pTxtObj->SetMergedItemSet(aSet); - const SfxViewShell* pCurrentViewShell = SfxViewShell::Current(); - if (pCurrentViewShell && (pCurrentViewShell->isLOKMobilePhone() || pCurrentViewShell->isLOKTablet())) - pTxtObj->SetText(SdResId(STR_PRESOBJ_TEXT_EDIT_MOBILE)); - } - else if( nSlotId == SID_ATTR_CHAR_VERTICAL ) - { - SfxItemSet aSet(mpViewShell->GetPool()); - aSet.Put(makeSdrTextMinFrameWidthItem(0)); - aSet.Put(makeSdrTextAutoGrowWidthItem(true)); - aSet.Put(makeSdrTextAutoGrowHeightItem(false)); - - // Needs to be set since default is SDRTEXTHORZADJUST_BLOCK - aSet.Put(SdrTextHorzAdjustItem(SDRTEXTHORZADJUST_RIGHT)); - pTxtObj->SetMergedItemSet(aSet); - pTxtObj->AdjustTextFrameWidthAndHeight(); - aSet.Put(makeSdrTextMaxFrameWidthItem(pTxtObj->GetLogicRect().GetSize().Width())); - pTxtObj->SetMergedItemSet(aSet); - } + SfxItemSet aSet(mpViewShell->GetPool()); + aSet.Put(makeSdrTextAutoGrowWidthItem(false)); + aSet.Put(makeSdrTextAutoGrowHeightItem(true)); + pTxtObj->SetMergedItemSet(aSet); + pTxtObj->AdjustTextFrameWidthAndHeight(); + const SfxViewShell* pCurrentViewShell = SfxViewShell::Current(); + if (pCurrentViewShell && (pCurrentViewShell->isLOKMobilePhone() || pCurrentViewShell->isLOKTablet())) + pTxtObj->SetText(SdResId(STR_PRESOBJ_TEXT_EDIT_MOBILE)); } - else + else if( nSlotId == SID_ATTR_CHAR_VERTICAL ) { - if( nSlotId == SID_ATTR_CHAR_VERTICAL ) - { - // draw text object, needs to be initialized when vertical text is used - SfxItemSet aSet(mpViewShell->GetPool()); + // draw text object, needs to be initialized when vertical text is used + SfxItemSet aSet(mpViewShell->GetPool()); - aSet.Put(makeSdrTextAutoGrowWidthItem(true)); - aSet.Put(makeSdrTextAutoGrowHeightItem(false)); + aSet.Put(makeSdrTextAutoGrowWidthItem(true)); + aSet.Put(makeSdrTextAutoGrowHeightItem(false)); - // Set defaults for vertical click-n'drag text object, pool defaults are: - // SdrTextVertAdjustItem: SDRTEXTVERTADJUST_TOP - // SdrTextHorzAdjustItem: SDRTEXTHORZADJUST_BLOCK - // Analog to that: - aSet.Put(SdrTextVertAdjustItem(SDRTEXTVERTADJUST_BLOCK)); - aSet.Put(SdrTextHorzAdjustItem(SDRTEXTHORZADJUST_RIGHT)); + // Set defaults for vertical click-n'drag text object, pool defaults are: + // SdrTextVertAdjustItem: SDRTEXTVERTADJUST_TOP + // SdrTextHorzAdjustItem: SDRTEXTHORZADJUST_BLOCK + // Analog to that: + aSet.Put(SdrTextVertAdjustItem(SDRTEXTVERTADJUST_BLOCK)); + aSet.Put(SdrTextHorzAdjustItem(SDRTEXTHORZADJUST_RIGHT)); - pTxtObj->SetMergedItemSet(aSet); - } + pTxtObj->SetMergedItemSet(aSet); + pTxtObj->AdjustTextFrameWidthAndHeight(); } } @@ -586,35 +561,6 @@ void FuText::ImpSetAttributesFitToSizeVertical(SdrTextObj* pTxtObj) pTxtObj->AdjustTextFrameWidthAndHeight(); } -void FuText::ImpSetAttributesFitCommon(SdrTextObj* pTxtObj) -{ - // Normal Textobject - if (mpDoc->GetDocumentType() != DocumentType::Impress) - return; - - if( nSlotId == SID_ATTR_CHAR ) - { - // Impress text object (rescales to line height) - SfxItemSet aSet(mpViewShell->GetPool()); - aSet.Put(makeSdrTextMinFrameHeightItem(0)); - aSet.Put(makeSdrTextMaxFrameHeightItem(0)); - aSet.Put(makeSdrTextAutoGrowHeightItem(true)); - aSet.Put(makeSdrTextAutoGrowWidthItem(false)); - pTxtObj->SetMergedItemSet(aSet); - } - else if( nSlotId == SID_ATTR_CHAR_VERTICAL ) - { - SfxItemSet aSet(mpViewShell->GetPool()); - aSet.Put(makeSdrTextMinFrameWidthItem(0)); - aSet.Put(makeSdrTextMaxFrameWidthItem(0)); - aSet.Put(makeSdrTextAutoGrowWidthItem(true)); - aSet.Put(makeSdrTextAutoGrowHeightItem(false)); - pTxtObj->SetMergedItemSet(aSet); - } - - pTxtObj->AdjustTextFrameWidthAndHeight(); -} - bool FuText::MouseButtonUp(const MouseEvent& rMEvt) { bool bReturn = false; @@ -758,8 +704,6 @@ bool FuText::MouseButtonUp(const MouseEvent& rMEvt) } else { - ImpSetAttributesFitCommon(GetTextObj()); - // thereby the handles and the gray frame are correct mpView->AdjustMarkHdl(); mpView->PickHandle(aPnt); @@ -1356,10 +1300,6 @@ rtl::Reference<SdrObject> FuText::CreateDefaultObject(const sal_uInt16 nID, cons { ImpSetAttributesFitToSizeVertical(pText); } - else - { - ImpSetAttributesFitCommon(pText); - } // Put text object into edit mode. SdrPageView* pPV = mpView->GetSdrPageView(); diff --git a/sd/source/ui/inc/futext.hxx b/sd/source/ui/inc/futext.hxx index 681597b4cd6d..4ef6cc75df9a 100644 --- a/sd/source/ui/inc/futext.hxx +++ b/sd/source/ui/inc/futext.hxx @@ -89,7 +89,6 @@ private: void ImpSetAttributesForNewTextObject(SdrTextObj* pTxtObj); void ImpSetAttributesFitToSize(SdrTextObj* pTxtObj); void ImpSetAttributesFitToSizeVertical(SdrTextObj* pTxtObj); - void ImpSetAttributesFitCommon(SdrTextObj* pTxtObj); }; } // end of namespace sd