diff options
-rw-r--r-- | svx/source/sidebar/possize/PosSizePropertyPanel.cxx | 57 | ||||
-rw-r--r-- | sw/source/core/draw/dcontact.cxx | 20 |
2 files changed, 48 insertions, 29 deletions
diff --git a/svx/source/sidebar/possize/PosSizePropertyPanel.cxx b/svx/source/sidebar/possize/PosSizePropertyPanel.cxx index 5854e36840d4..20879f1b3d0e 100644 --- a/svx/source/sidebar/possize/PosSizePropertyPanel.cxx +++ b/svx/source/sidebar/possize/PosSizePropertyPanel.cxx @@ -150,6 +150,34 @@ void PosSizePropertyPanel::ShowMenu (void) +namespace +{ + bool hasText(const SdrView& rSdrView) + { + const SdrMarkList& rMarkList = rSdrView.GetMarkedObjectList(); + + if(1 == rMarkList.GetMarkCount()) + { + const SdrObject* pObj = rMarkList.GetMark(0)->GetMarkedSdrObj(); + const SdrObjKind eKind((SdrObjKind)pObj->GetObjIdentifier()); + + if((pObj->GetObjInventor() == SdrInventor) && (OBJ_TEXT == eKind || OBJ_TITLETEXT == eKind || OBJ_OUTLINETEXT == eKind)) + { + const SdrTextObj* pSdrTextObj = dynamic_cast< const SdrTextObj* >(pObj); + + if(pSdrTextObj && pSdrTextObj->HasText()) + { + return true; + } + } + } + + return false; + } +} // end of anonymous namespace + + + void PosSizePropertyPanel::Initialize() { mpFtPosX->SetBackground(Wallpaper()); @@ -222,18 +250,7 @@ void PosSizePropertyPanel::Initialize() if ( mpView != NULL ) { maUIScale = mpView->GetModel()->GetUIScale(); - - const SdrMarkList& rMarkList = mpView->GetMarkedObjectList(); - if(1 == rMarkList.GetMarkCount()) - { - const SdrObject* pObj = rMarkList.GetMark(0)->GetMarkedSdrObj(); - const SdrObjKind eKind((SdrObjKind)pObj->GetObjIdentifier()); - - if((pObj->GetObjInventor() == SdrInventor) && (OBJ_TEXT == eKind || OBJ_TITLETEXT == eKind || OBJ_OUTLINETEXT == eKind) && ((SdrTextObj*)pObj)->HasText()) - { - mbAdjustEnabled = true; - } - } + mbAdjustEnabled = hasText(*mpView); } mePoolUnit = maTransfWidthControl.GetCoreMetric(); @@ -701,20 +718,7 @@ void PosSizePropertyPanel::NotifyItemUpdate( if ( mpView == NULL ) return; - const SdrMarkList& rMarkList = mpView->GetMarkedObjectList(); - - if(1 == rMarkList.GetMarkCount()) - { - const SdrObject* pObj = rMarkList.GetMark(0)->GetMarkedSdrObj(); - const SdrObjKind eKind((SdrObjKind)pObj->GetObjIdentifier()); - - if((pObj->GetObjInventor() == SdrInventor) && (OBJ_TEXT == eKind || OBJ_TITLETEXT == eKind || OBJ_OUTLINETEXT == eKind) && ((SdrTextObj*)pObj)->HasText()) - mbAdjustEnabled = true; - else - mbAdjustEnabled = false; - } - else - mbAdjustEnabled = false; + mbAdjustEnabled = hasText(*mpView); // Pool unit and dialog unit may have changed, make sure that we // have the current values. @@ -938,6 +942,7 @@ void PosSizePropertyPanel::NotifyItemUpdate( } const sal_Int32 nCombinedContext(maContext.GetCombinedContext_DI()); + const SdrMarkList& rMarkList = mpView->GetMarkedObjectList(); switch (rMarkList.GetMarkCount()) { diff --git a/sw/source/core/draw/dcontact.cxx b/sw/source/core/draw/dcontact.cxx index cc6f1a5252b0..602651362f6f 100644 --- a/sw/source/core/draw/dcontact.cxx +++ b/sw/source/core/draw/dcontact.cxx @@ -2332,8 +2332,16 @@ basegfx::B2DPolyPolygon SwDrawVirtObj::TakeContour() const SdrHdl* SwDrawVirtObj::GetHdl(sal_uInt32 nHdlNum) const { SdrHdl* pHdl = rRefObj.GetHdl(nHdlNum); - Point aP(pHdl->GetPos() + GetOffset()); - pHdl->SetPos(aP); + + if(pHdl) + { + Point aP(pHdl->GetPos() + GetOffset()); + pHdl->SetPos(aP); + } + else + { + OSL_ENSURE(false, "Got no SdrHdl(!)"); + } return pHdl; } @@ -2342,8 +2350,14 @@ SdrHdl* SwDrawVirtObj::GetPlusHdl(const SdrHdl& rHdl, sal_uInt16 nPlNum) const { SdrHdl* pHdl = rRefObj.GetPlusHdl(rHdl, nPlNum); - if (pHdl) + if(pHdl) + { pHdl->SetPos(pHdl->GetPos() + GetOffset()); + } + else + { + OSL_ENSURE(false, "Got no SdrHdl(!)"); + } return pHdl; } |