summaryrefslogtreecommitdiff
path: root/lotuswordpro/source/filter/lwpfribptr.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'lotuswordpro/source/filter/lwpfribptr.cxx')
-rw-r--r--lotuswordpro/source/filter/lwpfribptr.cxx30
1 files changed, 14 insertions, 16 deletions
diff --git a/lotuswordpro/source/filter/lwpfribptr.cxx b/lotuswordpro/source/filter/lwpfribptr.cxx
index 7815cc2c3d34..3511baf03a4f 100644
--- a/lotuswordpro/source/filter/lwpfribptr.cxx
+++ b/lotuswordpro/source/filter/lwpfribptr.cxx
@@ -90,7 +90,8 @@
LwpFribPtr::LwpFribPtr()
: m_pFribs(NULL),m_pXFPara(NULL),m_pPara(NULL)
-{}
+{
+}
LwpFribPtr::~LwpFribPtr()
{
@@ -226,7 +227,7 @@ void LwpFribPtr::XFConvert()
case FRIB_TAG_PAGEBREAK:
{
LwpFribPageBreak* pPageBreak = static_cast<LwpFribPageBreak*>(pFrib);
- LwpPageLayout* pLayout = static_cast<LwpPageLayout*>(pPageBreak->GetLayout()->obj());
+ LwpPageLayout* pLayout = dynamic_cast<LwpPageLayout*>(pPageBreak->GetLayout()->obj());
if(pLayout)
{
pPageBreak->ParseLayout();
@@ -291,13 +292,8 @@ void LwpFribPtr::XFConvert()
{
LwpFribFrame* frameFrib= static_cast<LwpFribFrame*>(pFrib);
LwpObject* pLayout = frameFrib->GetLayout();
- if (pLayout->GetTag() == VO_DROPCAPLAYOUT)
- {
+ if (pLayout && pLayout->GetTag() == VO_DROPCAPLAYOUT)
m_pPara->GetFoundry()->GetDropcapMgr()->SetXFPara(m_pXFPara);
- //LwpObject* pDropCap = frameFrib->GetLayout();
- //pDropCap ->XFConvert(m_pXFPara);
- }
- //pLayout->XFConvert(m_pXFPara);
frameFrib->XFConvert(m_pXFPara);
}
break;
@@ -406,8 +402,9 @@ void LwpFribPtr::FindLayouts()
//StartWithinColume type not support now
break;
}
- LwpStory* pStory = static_cast<LwpStory*>(m_pPara->GetStoryID()->obj());
- pStory->AddPageLayout(pSection->GetPageLayout());
+ LwpStory* pStory = dynamic_cast<LwpStory*>(m_pPara->GetStoryID()->obj());
+ if (pStory)
+ pStory->AddPageLayout(pSection->GetPageLayout());
}
}
@@ -416,11 +413,12 @@ void LwpFribPtr::FindLayouts()
case FRIB_TAG_PAGEBREAK:
{
LwpFribPageBreak* pPageBreak = static_cast<LwpFribPageBreak*>(pFrib);
- LwpPageLayout* pLayout = static_cast<LwpPageLayout*>(pPageBreak->GetLayout()->obj());
+ LwpPageLayout* pLayout = dynamic_cast<LwpPageLayout*>(pPageBreak->GetLayout()->obj());
if(pLayout)
{
- LwpStory* pStory = static_cast<LwpStory*>(m_pPara->GetStoryID()->obj());
- pStory->AddPageLayout(pLayout);
+ LwpStory* pStory = dynamic_cast<LwpStory*>(m_pPara->GetStoryID()->obj());
+ if (pStory)
+ pStory->AddPageLayout(pLayout);
}
break;
}
@@ -614,9 +612,9 @@ void LwpFribPtr::ProcessDropcap(LwpStory* pStory,LwpFrib* pFrib,sal_uInt32 nLen)
XFTextStyle* pFribStyle = pXFStyleManager->FindTextStyle(pFrib->GetStyleName());
pFribStyle->GetFont()->SetFontSize(0);
- LwpObject* pObj= pStory->GetLayoutsWithMe()->GetOnlyLayout()->obj();
+ LwpDropcapLayout* pObj = dynamic_cast<LwpDropcapLayout*>(pStory->GetLayoutsWithMe()->GetOnlyLayout()->obj());
if (pObj)
- static_cast<LwpDropcapLayout*>(pObj)->SetChars(nLen);
+ pObj->SetChars(nLen);
}
}
}
@@ -649,7 +647,7 @@ sal_Bool LwpFribPtr::ComparePagePosition(LwpVirtualLayout* pPreLayout, LwpVirtua
case FRIB_TAG_PAGEBREAK:
{
LwpFribPageBreak* pPageBreak = static_cast<LwpFribPageBreak*>(pFrib);
- pLayout = static_cast<LwpVirtualLayout*>(pPageBreak->GetLayout()->obj());
+ pLayout = dynamic_cast<LwpVirtualLayout*>(pPageBreak->GetLayout()->obj());
break;
}
default: