Resolves: #i121917# Corrected access to text object

(cherry picked from commit 2c9c9923fdf042c41cebaf9a15def7caac86032d)

Conflicts:
	sw/source/core/draw/dcontact.cxx

Change-Id: Ia214127ca540c4f4036a0006e7c227649fb39134
This commit is contained in:
Armin Le Grand
2013-06-18 13:10:42 +00:00
committed by Caolán McNamara
parent 297b41ebbe
commit 6c5c5584eb
2 changed files with 48 additions and 29 deletions

View File

@@ -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())
{

View File

@@ -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;
}