summaryrefslogtreecommitdiff
path: root/sd
diff options
context:
space:
mode:
authorBayram Çiçek <bayram.cicek@libreoffice.org>2023-04-14 00:34:52 +0300
committerMaxim Monastirsky <momonasmon@gmail.com>2023-04-18 01:18:57 +0200
commit059f99991e8f291404addeba9341d2c4989976af (patch)
tree65b6443d69e41d2d2aa85ec08a55066059168b15 /sd
parent3e4b8463f288d87f91cd5bc864d30ae02d4f5579 (diff)
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 <momonasmon@gmail.com>
Diffstat (limited to 'sd')
-rw-r--r--sd/source/ui/func/futext.cxx104
-rw-r--r--sd/source/ui/inc/futext.hxx1
2 files changed, 22 insertions, 83 deletions
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