diff options
Diffstat (limited to 'svx/source/svdraw/svdotext.cxx')
-rw-r--r-- | svx/source/svdraw/svdotext.cxx | 124 |
1 files changed, 62 insertions, 62 deletions
diff --git a/svx/source/svdraw/svdotext.cxx b/svx/source/svdraw/svdotext.cxx index 9c943843d083..4662f70df497 100644 --- a/svx/source/svdraw/svdotext.cxx +++ b/svx/source/svdraw/svdotext.cxx @@ -189,23 +189,23 @@ void SdrTextObj::FitFrameToTextSize() ImpJustifyRect(maRect); SdrText* pText = getActiveText(); - if( pText!=nullptr && pText->GetOutlinerParaObject() && pModel!=nullptr) - { - SdrOutliner& rOutliner=ImpGetDrawOutliner(); - rOutliner.SetPaperSize(Size(maRect.Right()-maRect.Left(),maRect.Bottom()-maRect.Top())); - rOutliner.SetUpdateMode(true); - rOutliner.SetText(*pText->GetOutlinerParaObject()); - Size aNewSize(rOutliner.CalcTextSize()); - rOutliner.Clear(); - aNewSize.Width()++; // because of possible rounding errors - aNewSize.Width()+=GetTextLeftDistance()+GetTextRightDistance(); - aNewSize.Height()+=GetTextUpperDistance()+GetTextLowerDistance(); - tools::Rectangle aNewRect(maRect); - aNewRect.SetSize(aNewSize); - ImpJustifyRect(aNewRect); - if (aNewRect!=maRect) { - SetLogicRect(aNewRect); - } + if( pText==nullptr || !pText->GetOutlinerParaObject() || pModel==nullptr) + return; + + SdrOutliner& rOutliner=ImpGetDrawOutliner(); + rOutliner.SetPaperSize(Size(maRect.Right()-maRect.Left(),maRect.Bottom()-maRect.Top())); + rOutliner.SetUpdateMode(true); + rOutliner.SetText(*pText->GetOutlinerParaObject()); + Size aNewSize(rOutliner.CalcTextSize()); + rOutliner.Clear(); + aNewSize.Width()++; // because of possible rounding errors + aNewSize.Width()+=GetTextLeftDistance()+GetTextRightDistance(); + aNewSize.Height()+=GetTextUpperDistance()+GetTextLowerDistance(); + tools::Rectangle aNewRect(maRect); + aNewRect.SetSize(aNewSize); + ImpJustifyRect(aNewRect); + if (aNewRect!=maRect) { + SetLogicRect(aNewRect); } } @@ -1530,60 +1530,60 @@ void SdrTextObj::SetVerticalWriting(bool bVertical) pOutlinerParaObject = GetOutlinerParaObject(); } - if (pOutlinerParaObject && - (pOutlinerParaObject->IsVertical() != bVertical)) - { - // get item settings - const SfxItemSet& rSet = GetObjectItemSet(); - bool bAutoGrowWidth = rSet.Get(SDRATTR_TEXT_AUTOGROWWIDTH).GetValue(); - bool bAutoGrowHeight = rSet.Get(SDRATTR_TEXT_AUTOGROWHEIGHT).GetValue(); + if (!pOutlinerParaObject || + (pOutlinerParaObject->IsVertical() == bVertical)) + return; - // Also exchange hor/ver adjust items - SdrTextHorzAdjust eHorz = rSet.Get(SDRATTR_TEXT_HORZADJUST).GetValue(); - SdrTextVertAdjust eVert = rSet.Get(SDRATTR_TEXT_VERTADJUST).GetValue(); + // get item settings + const SfxItemSet& rSet = GetObjectItemSet(); + bool bAutoGrowWidth = rSet.Get(SDRATTR_TEXT_AUTOGROWWIDTH).GetValue(); + bool bAutoGrowHeight = rSet.Get(SDRATTR_TEXT_AUTOGROWHEIGHT).GetValue(); - // rescue object size - tools::Rectangle aObjectRect = GetSnapRect(); + // Also exchange hor/ver adjust items + SdrTextHorzAdjust eHorz = rSet.Get(SDRATTR_TEXT_HORZADJUST).GetValue(); + SdrTextVertAdjust eVert = rSet.Get(SDRATTR_TEXT_VERTADJUST).GetValue(); - // prepare ItemSet to set exchanged width and height items - SfxItemSet aNewSet(*rSet.GetPool(), - svl::Items<SDRATTR_TEXT_AUTOGROWHEIGHT, SDRATTR_TEXT_AUTOGROWHEIGHT, - // Expanded item ranges to also support hor and ver adjust. - SDRATTR_TEXT_VERTADJUST, SDRATTR_TEXT_VERTADJUST, - SDRATTR_TEXT_AUTOGROWWIDTH, SDRATTR_TEXT_HORZADJUST>{}); + // rescue object size + tools::Rectangle aObjectRect = GetSnapRect(); - aNewSet.Put(rSet); - aNewSet.Put(makeSdrTextAutoGrowWidthItem(bAutoGrowHeight)); - aNewSet.Put(makeSdrTextAutoGrowHeightItem(bAutoGrowWidth)); + // prepare ItemSet to set exchanged width and height items + SfxItemSet aNewSet(*rSet.GetPool(), + svl::Items<SDRATTR_TEXT_AUTOGROWHEIGHT, SDRATTR_TEXT_AUTOGROWHEIGHT, + // Expanded item ranges to also support hor and ver adjust. + SDRATTR_TEXT_VERTADJUST, SDRATTR_TEXT_VERTADJUST, + SDRATTR_TEXT_AUTOGROWWIDTH, SDRATTR_TEXT_HORZADJUST>{}); - // Exchange horz and vert adjusts - switch (eVert) - { - case SDRTEXTVERTADJUST_TOP: aNewSet.Put(SdrTextHorzAdjustItem(SDRTEXTHORZADJUST_RIGHT)); break; - case SDRTEXTVERTADJUST_CENTER: aNewSet.Put(SdrTextHorzAdjustItem(SDRTEXTHORZADJUST_CENTER)); break; - case SDRTEXTVERTADJUST_BOTTOM: aNewSet.Put(SdrTextHorzAdjustItem(SDRTEXTHORZADJUST_LEFT)); break; - case SDRTEXTVERTADJUST_BLOCK: aNewSet.Put(SdrTextHorzAdjustItem(SDRTEXTHORZADJUST_BLOCK)); break; - } - switch (eHorz) - { - case SDRTEXTHORZADJUST_LEFT: aNewSet.Put(SdrTextVertAdjustItem(SDRTEXTVERTADJUST_BOTTOM)); break; - case SDRTEXTHORZADJUST_CENTER: aNewSet.Put(SdrTextVertAdjustItem(SDRTEXTVERTADJUST_CENTER)); break; - case SDRTEXTHORZADJUST_RIGHT: aNewSet.Put(SdrTextVertAdjustItem(SDRTEXTVERTADJUST_TOP)); break; - case SDRTEXTHORZADJUST_BLOCK: aNewSet.Put(SdrTextVertAdjustItem(SDRTEXTVERTADJUST_BLOCK)); break; - } + aNewSet.Put(rSet); + aNewSet.Put(makeSdrTextAutoGrowWidthItem(bAutoGrowHeight)); + aNewSet.Put(makeSdrTextAutoGrowHeightItem(bAutoGrowWidth)); - SetObjectItemSet(aNewSet); + // Exchange horz and vert adjusts + switch (eVert) + { + case SDRTEXTVERTADJUST_TOP: aNewSet.Put(SdrTextHorzAdjustItem(SDRTEXTHORZADJUST_RIGHT)); break; + case SDRTEXTVERTADJUST_CENTER: aNewSet.Put(SdrTextHorzAdjustItem(SDRTEXTHORZADJUST_CENTER)); break; + case SDRTEXTVERTADJUST_BOTTOM: aNewSet.Put(SdrTextHorzAdjustItem(SDRTEXTHORZADJUST_LEFT)); break; + case SDRTEXTVERTADJUST_BLOCK: aNewSet.Put(SdrTextHorzAdjustItem(SDRTEXTHORZADJUST_BLOCK)); break; + } + switch (eHorz) + { + case SDRTEXTHORZADJUST_LEFT: aNewSet.Put(SdrTextVertAdjustItem(SDRTEXTVERTADJUST_BOTTOM)); break; + case SDRTEXTHORZADJUST_CENTER: aNewSet.Put(SdrTextVertAdjustItem(SDRTEXTVERTADJUST_CENTER)); break; + case SDRTEXTHORZADJUST_RIGHT: aNewSet.Put(SdrTextVertAdjustItem(SDRTEXTVERTADJUST_TOP)); break; + case SDRTEXTHORZADJUST_BLOCK: aNewSet.Put(SdrTextVertAdjustItem(SDRTEXTVERTADJUST_BLOCK)); break; + } - pOutlinerParaObject = GetOutlinerParaObject(); - if (pOutlinerParaObject) - { - // set ParaObject orientation accordingly - pOutlinerParaObject->SetVertical(bVertical); - } + SetObjectItemSet(aNewSet); - // restore object size - SetSnapRect(aObjectRect); + pOutlinerParaObject = GetOutlinerParaObject(); + if (pOutlinerParaObject) + { + // set ParaObject orientation accordingly + pOutlinerParaObject->SetVertical(bVertical); } + + // restore object size + SetSnapRect(aObjectRect); } // transformation interface for StarOfficeAPI. This implements support for |