bool bWeb = dynamic_cast<SwWebView*>( this ) != nullptr; if (pModOpt->IsInsWithCaption(bWeb))
{ const InsCaptionOpt *pOpt = pModOpt->GetCapOption(bWeb, static_cast<SwCapObjType>(nType), pOleId); if (pOpt && pOpt->UseCaption())
InsertCaption(pOpt);
}
}
void SwView::InsertCaption(const InsCaptionOpt *pOpt)
{ if (!pOpt) return;
const OUString &rName = pOpt->GetCategory();
// Is there a pool template with the same name?
SwWrtShell &rSh = GetWrtShell(); if(!rName.isEmpty())
{
sal_uInt16 nPoolId = SwStyleNameMapper::GetPoolIdFromUIName(UIName(rName), SwGetPoolIdFromName::TxtColl); if( USHRT_MAX != nPoolId )
rSh.GetTextCollFromPool(nPoolId); // Pool template does not exist: Does it exist on the document? elseif( !rSh.GetParaStyle(UIName(rName)) )
{ // It also does not exist in the document: generate
SwTextFormatColl* pDerivedFrom = rSh.GetTextCollFromPool(RES_POOLCOLL_LABEL);
rSh.MakeTextFormatColl(UIName(rName), pDerivedFrom);
}
}
SwFieldMgr aMgr(&rSh);
SwSetExpFieldType* pFieldType = static_cast<SwSetExpFieldType*>(aMgr.GetFieldType(SwFieldIds::SetExp, rName)); if (!pFieldType && !rName.isEmpty() )
{ // Create new field types
SwSetExpFieldType aSwSetExpFieldType(rSh.GetDoc(), UIName(rName), nsSwGetSetExpType::GSE_SEQ);
aMgr.InsertFieldType(aSwSetExpFieldType);
pFieldType = static_cast<SwSetExpFieldType*>(aMgr.GetFieldType(SwFieldIds::SetExp, rName));
}
if (!pOpt->IgnoreSeqOpts())
{ if (pFieldType)
{
pFieldType->SetDelimiter(pOpt->GetSeparator());
pFieldType->SetOutlineLvl( static_cast< sal_uInt8 >(pOpt->GetLevel()) );
}
}
sal_uInt16 nID = USHRT_MAX;
SwFieldType* pType = nullptr; const size_t nCount = aMgr.GetFieldTypeCount(); if( !rName.isEmpty() )
{ for (size_t i = 0; i < nCount; ++i)
{
pType = aMgr.GetFieldType(SwFieldIds::Unknown, i);
UIName aTmpName( pType->GetName() ); if (aTmpName == rName && pType->Which() == SwFieldIds::SetExp)
{
nID = i;
OSL_ENSURE(nID==i, "Downcasting to sal_uInt16 lost information!"); break;
}
}
}
rSh.StartAllAction();
GetWrtShell().InsertLabel( eT,
pOpt->GetCaption(),
!pOpt->IgnoreSeqOpts() ? OUString() : pOpt->GetSeparator(),
pOpt->GetNumSeparator(),
!pOpt->GetPos(),
nID,
pOpt->GetCharacterStyle(),
pOpt->CopyAttributes() ); // Set Number Format if(pType) static_cast<SwSetExpFieldType*>(pType)->SetSeqFormat(pOpt->GetNumType());
rSh.UpdateExpFields( true );
rSh.EndAllAction();
if ( rSh.IsFrameSelected() )
{
GetEditWin().StopInsFrame();
rSh.EnterSelFrameMode();
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.