diff options
Diffstat (limited to 'sw/source/filter/ww8')
-rw-r--r-- | sw/source/filter/ww8/attributeoutputbase.hxx | 2 | ||||
-rw-r--r-- | sw/source/filter/ww8/wrtw8esh.cxx | 5 | ||||
-rw-r--r-- | sw/source/filter/ww8/wrtw8nds.cxx | 23 | ||||
-rw-r--r-- | sw/source/filter/ww8/ww8atr.cxx | 25 | ||||
-rw-r--r-- | sw/source/filter/ww8/ww8par.cxx | 43 | ||||
-rw-r--r-- | sw/source/filter/ww8/ww8par3.cxx | 156 | ||||
-rw-r--r-- | sw/source/filter/ww8/ww8par5.cxx | 8 |
7 files changed, 126 insertions, 136 deletions
diff --git a/sw/source/filter/ww8/attributeoutputbase.hxx b/sw/source/filter/ww8/attributeoutputbase.hxx index a644371385ce..b3a0f03cfad1 100644 --- a/sw/source/filter/ww8/attributeoutputbase.hxx +++ b/sw/source/filter/ww8/attributeoutputbase.hxx @@ -437,7 +437,7 @@ protected: /// Sfx item RES_TXTATR_CHARFMT virtual void TextCharFormat( const SwFmtCharFmt& ) = 0; - /// Sfx item RES_TXTATR_FIELD + /// Sfx item RES_TXTATR_FIELD and RES_TXTATR_INPUTFIELD void TextField( const SwFmtFld& ); /// Sfx item RES_TXTATR_FLYCNT diff --git a/sw/source/filter/ww8/wrtw8esh.cxx b/sw/source/filter/ww8/wrtw8esh.cxx index 4355fcdc7148..47c21884c4da 100644 --- a/sw/source/filter/ww8/wrtw8esh.cxx +++ b/sw/source/filter/ww8/wrtw8esh.cxx @@ -563,11 +563,10 @@ void WW8Export::DoFormText(const SwInputField * pFld) OutputField(0, ww::eFORMTEXT, aEmptyStr, WRITEFIELD_CMD_END); - String const fieldStr( pFld->ExpandField(true) ); + const String fieldStr( pFld->ExpandField(true) ); SwWW8Writer::WriteString16(Strm(), fieldStr, false); static sal_uInt8 aArr2[] = { - 0x03, 0x6a, 0x00, 0x00, 0x00, 0x00, // sprmCPicLocation 0x55, 0x08, 0x01, // sprmCFSpec 0x75, 0x08, 0x01 // ??? }; @@ -2105,7 +2104,7 @@ sal_Int32 SwBasicEscherEx::WriteFlyFrameAttr(const SwFrmFmt& rFmt, { const SvxShadowItem* pSI = (const SvxShadowItem*)pShadItem; - const sal_uInt16 nCstScale = 635; // unit scale between SODC and MS Word + const sal_uInt16 nCstScale = 635; // unit scale between AOO and MS Word const sal_uInt32 nShadowType = 131074; // shadow type of ms word. need to set the default value. sal_uInt32 nColor = (sal_uInt32)(pSI->GetColor().GetColor()) ; diff --git a/sw/source/filter/ww8/wrtw8nds.cxx b/sw/source/filter/ww8/wrtw8nds.cxx index cf2032f164ba..813b9e821496 100644 --- a/sw/source/filter/ww8/wrtw8nds.cxx +++ b/sw/source/filter/ww8/wrtw8nds.cxx @@ -396,9 +396,9 @@ xub_StrLen WW8SwAttrIter::SearchNext( xub_StrLen nStartPos ) if( nPos >= nStartPos && nPos <= nMinPos ) nMinPos = nPos; - if( pHt->GetEnd() ) // Attr mit Ende + if( pHt->End() ) // Attr mit Ende { - nPos = *pHt->GetEnd(); // gibt letztes Attr-Zeichen + 1 + nPos = *pHt->End(); // gibt letztes Attr-Zeichen + 1 if( nPos >= nStartPos && nPos <= nMinPos ) nMinPos = nPos; } @@ -491,7 +491,7 @@ void WW8SwAttrIter::OutAttr( xub_StrLen nSwPos ) for (xub_StrLen i = 0; i < pTxtAttrs->Count(); ++i) { const SwTxtAttr* pHt = (*pTxtAttrs)[i]; - const xub_StrLen* pEnd = pHt->GetEnd(); + const xub_StrLen* pEnd = pHt->End(); if (pEnd ? ( nSwPos >= *pHt->GetStart() && nSwPos < *pEnd) : nSwPos == *pHt->GetStart() ) @@ -601,14 +601,17 @@ void WW8SwAttrIter::OutFlys(xub_StrLen nSwPos) bool WW8SwAttrIter::IsTxtAttr( xub_StrLen nSwPos ) { - // search for attrs with CH_TXTATR + // search for attrs with dummy character or content if (const SwpHints* pTxtAttrs = rNd.GetpSwpHints()) { for (sal_uInt16 i = 0; i < pTxtAttrs->Count(); ++i) { const SwTxtAttr* pHt = (*pTxtAttrs)[i]; - if ( pHt->HasDummyChar() && (*pHt->GetStart() == nSwPos) ) + if ( ( pHt->HasDummyChar() || pHt->HasContent() ) + && (*pHt->GetStart() == nSwPos) ) + { return true; + } } } @@ -666,7 +669,7 @@ const SfxPoolItem* WW8SwAttrIter::HasTextItem( sal_uInt16 nWhich ) const const SwTxtAttr* pHt = (*pTxtAttrs)[i]; const SfxPoolItem* pItem = &pHt->GetAttr(); const xub_StrLen* pAtrEnd = 0; - if( 0 != ( pAtrEnd = pHt->GetEnd() ) && // nur Attr mit Ende + if( 0 != ( pAtrEnd = pHt->End() ) && // nur Attr mit Ende nWhich == pItem->Which() && // nTmpSwPos >= *pHt->GetStart() && nTmpSwPos < *pAtrEnd ) { @@ -1115,7 +1118,7 @@ void AttributeOutputBase::TOXMark( const SwTxtNode& rNode, const SwTOXMark& rAtt ww::eField eType = ww::eNONE; const SwTxtTOXMark& rTxtTOXMark = *rAttr.GetTxtTOXMark(); - const xub_StrLen* pTxtEnd = rTxtTOXMark.GetEnd(); + const xub_StrLen* pTxtEnd = rTxtTOXMark.End(); if ( pTxtEnd ) // has range? { sTxt = rNode.GetExpandTxt( *rTxtTOXMark.GetStart(), @@ -1188,7 +1191,7 @@ int WW8SwAttrIter::OutAttrWithRange(xub_StrLen nPos) if ( m_rExport.AttrOutput().StartURL( rINet->GetValue(), rINet->GetTargetFrame() ) ) ++nRet; } - if ( 0 != ( pEnd = pHt->GetEnd() ) && nPos == *pEnd ) + if ( 0 != ( pEnd = pHt->End() ) && nPos == *pEnd ) { if ( m_rExport.AttrOutput().EndURL() ) --nRet; @@ -1200,7 +1203,7 @@ int WW8SwAttrIter::OutAttrWithRange(xub_StrLen nPos) OutSwFmtRefMark( *static_cast< const SwFmtRefMark* >( pItem ), true ); ++nRet; } - if ( 0 != ( pEnd = pHt->GetEnd() ) && nPos == *pEnd ) + if ( 0 != ( pEnd = pHt->End() ) && nPos == *pEnd ) { OutSwFmtRefMark( *static_cast< const SwFmtRefMark* >( pItem ), false ); --nRet; @@ -1216,7 +1219,7 @@ int WW8SwAttrIter::OutAttrWithRange(xub_StrLen nPos) m_rExport.AttrOutput().StartRuby( rNd, *static_cast< const SwFmtRuby* >( pItem ) ); ++nRet; } - if ( 0 != ( pEnd = pHt->GetEnd() ) && nPos == *pEnd ) + if ( 0 != ( pEnd = pHt->End() ) && nPos == *pEnd ) { m_rExport.AttrOutput().EndRuby(); --nRet; diff --git a/sw/source/filter/ww8/ww8atr.cxx b/sw/source/filter/ww8/ww8atr.cxx index 7616c90c4ca8..e5e137f4596a 100644 --- a/sw/source/filter/ww8/ww8atr.cxx +++ b/sw/source/filter/ww8/ww8atr.cxx @@ -1843,9 +1843,7 @@ void WW8Export::OutputField( const SwField* pFld, ww::eField eFldType, bool bUnicode = IsUnicode(); WW8_WrPlcFld* pFldP = CurrentFieldPlc(); - // --> OD 2008-08-14 #158418# const bool bIncludeEmptyPicLocation = ( eFldType == ww::ePAGE ); - // <-- if (WRITEFIELD_START & nMode) { sal_uInt8 aFld13[2] = { 0x13, 0x00 }; // will change @@ -1854,9 +1852,7 @@ void WW8Export::OutputField( const SwField* pFld, ww::eField eFldType, aFld13[0] |= 0x80; aFld13[1] = static_cast< sal_uInt8 >(eFldType); // Typ nachtragen pFldP->Append( Fc2Cp( Strm().Tell() ), aFld13 ); - // --> OD 2008-08-14 #158418# InsertSpecialChar( *this, 0x13, 0, bIncludeEmptyPicLocation ); - // <-- } if (WRITEFIELD_CMD_START & nMode) { @@ -1867,8 +1863,8 @@ void WW8Export::OutputField( const SwField* pFld, ww::eField eFldType, SwWW8Writer::WriteString8(Strm(), rFldCmd, false, RTL_TEXTENCODING_MS_1252); } - // --> OD 2005-06-08 #i43956# - write hyperlink character including - // attributes and corresponding binary data for certain reference fields. + // write hyperlink character including attributes and + // corresponding binary data for certain reference fields. bool bHandleBookmark = false; if (pFld) @@ -1877,12 +1873,6 @@ void WW8Export::OutputField( const SwField* pFld, ww::eField eFldType, ( eFldType == ww::ePAGEREF || eFldType == ww::eREF || eFldType == ww::eNOTEREF || eFldType == ww::eFOOTREF )) bHandleBookmark = true; - -#if 0 - if (pFld->GetTyp()->Which() == RES_INPUTFLD && - eFldType == ww::eFORMTEXT) - bHandleBookmark = true; -#endif } if ( bHandleBookmark ) @@ -1908,16 +1898,13 @@ void WW8Export::OutputField( const SwField* pFld, ww::eField eFldType, // insert hyperlink character including attributes and data. InsertSpecialChar( *this, 0x01, &aLinkStr ); } - // <-- } if (WRITEFIELD_CMD_END & nMode) { static const sal_uInt8 aFld14[2] = { 0x14, 0xff }; pFldP->Append( Fc2Cp( Strm().Tell() ), aFld14 ); pFldP->ResultAdded(); - // --> OD 2008-08-14 #158418# InsertSpecialChar( *this, 0x14, 0, bIncludeEmptyPicLocation ); - // <-- } if (WRITEFIELD_END & nMode) { @@ -1985,9 +1972,7 @@ void WW8Export::OutputField( const SwField* pFld, ww::eField eFldType, } pFldP->Append( Fc2Cp( Strm().Tell() ), aFld15 ); - // --> OD 2008-08-14 #158418# InsertSpecialChar( *this, 0x15, 0, bIncludeEmptyPicLocation ); - // <-- } } @@ -2619,7 +2604,7 @@ void AttributeOutputBase::TextField( const SwFmtFld& rField ) const SwField* pFld = rField.GetField(); String sStr; // fuer optionale Parameter bool bWriteExpand = false; - sal_uInt16 nSubType = pFld->GetSubType(); + const sal_uInt16 nSubType = pFld->GetSubType(); switch (pFld->GetTyp()->Which()) { @@ -2866,8 +2851,7 @@ void AttributeOutputBase::TextField( const SwFmtFld& rField ) break; case RES_INPUTFLD: { - const SwInputField * pInputField = - dynamic_cast<const SwInputField *>(pFld); + const SwInputField * pInputField = dynamic_cast<const SwInputField *>(pFld); if (pInputField->isFormField()) GetExport().DoFormText(pInputField); @@ -5182,6 +5166,7 @@ void AttributeOutputBase::OutputItem( const SfxPoolItem& rHt ) TextCharFormat( static_cast< const SwFmtCharFmt& >( rHt ) ); break; case RES_TXTATR_FIELD: + case RES_TXTATR_INPUTFIELD: TextField( static_cast< const SwFmtFld& >( rHt ) ); break; case RES_TXTATR_FLYCNT: diff --git a/sw/source/filter/ww8/ww8par.cxx b/sw/source/filter/ww8/ww8par.cxx index 2e75bd06defc..9d6c6c9c7888 100644 --- a/sw/source/filter/ww8/ww8par.cxx +++ b/sw/source/filter/ww8/ww8par.cxx @@ -1091,6 +1091,8 @@ void SwWW8FltControlStack::NewAttr(const SwPosition& rPos, { ASSERT(RES_TXTATR_FIELD != rAttr.Which(), "probably don't want to put" "fields into the control stack"); + ASSERT(RES_TXTATR_INPUTFIELD != rAttr.Which(), "probably don't want to put" + "input fields into the control stack"); ASSERT(RES_FLTR_REDLINE != rAttr.Which(), "probably don't want to put" "redlines into the control stack"); SwFltControlStack::NewAttr(rPos, rAttr); @@ -1332,6 +1334,12 @@ void SwWW8FltControlStack::SetAttrInDoc(const SwPosition& rTmpPos, ASSERT(!this, "What is a field doing in the control stack," "probably should have been in the endstack"); break; + + case RES_TXTATR_INPUTFIELD: + ASSERT(!this, "What is a input field doing in the control stack," + "probably should have been in the endstack"); + break; + case RES_TXTATR_INETFMT: { SwPaM aRegion(rTmpPos); @@ -1451,6 +1459,7 @@ void SwWW8FltRefStack::SetAttrInDoc(const SwPosition& rTmpPos, do normal (?) strange stuff */ case RES_TXTATR_FIELD: + case RES_TXTATR_INPUTFIELD: { SwNodeIndex aIdx(pEntry->nMkNode, 1); SwPaM aPaM(aIdx, pEntry->nMkCntnt); @@ -1788,10 +1797,13 @@ void SwWW8ImplReader::ImportDop() mpDocShell->SetModifyPasswordHash(pWDop->lKeyProtDoc); - const SvtFilterOptions* pOpt = SvtFilterOptions::Get(); - sal_Bool bUseEnhFields=(pOpt && pOpt->IsUseEnhancedFields()); - if (bUseEnhFields) { - rDoc.set(IDocumentSettingAccess::PROTECT_FORM, pWDop->fProtEnabled ); + { + const SvtFilterOptions* pOpt = SvtFilterOptions::Get(); + const sal_Bool bUseEnhFields=(pOpt && pOpt->IsUseEnhancedFields()); + if (bUseEnhFields) + { + rDoc.set(IDocumentSettingAccess::PROTECT_FORM, pWDop->fProtEnabled ); + } } maTracer.LeaveEnvironment(sw::log::eDocumentProperties); @@ -3886,26 +3898,6 @@ void wwSectionManager::SetUseOn(wwSection &rSection) rSection.mpTitlePage->WriteUseOn( (UseOnPage) (eUseBase | nsUseOnPage::PD_HEADERSHARE | nsUseOnPage::PD_FOOTERSHARE)); } - - if( nsUseOnPage::PD_MIRROR != (UseOnPage)(eUse & nsUseOnPage::PD_MIRROR) ) - { - if( rSection.maSep.bkc == 3 ) - { - if( rSection.mpPage ) - rSection.mpPage->SetUseOn( nsUseOnPage::PD_LEFT ); - if( rSection.mpTitlePage ) - rSection.mpTitlePage->SetUseOn( nsUseOnPage::PD_LEFT ); - } - else if( rSection.maSep.bkc == 4 ) - { - if( rSection.mpPage ) - rSection.mpPage->SetUseOn( nsUseOnPage::PD_RIGHT ); - if( rSection.mpTitlePage ) - rSection.mpTitlePage->SetUseOn( nsUseOnPage::PD_RIGHT ); - } - - } - } //Set the page descriptor on this node, handle the different cases for a text @@ -4044,7 +4036,8 @@ void wwSectionManager::InsertSegments() bool bInsertSection = (aIter != aStart) ? (aIter->IsContinous() && bThisAndPreviousAreCompatible): false; bool bInsertPageDesc = !bInsertSection; bool bProtected = SectionIsProtected(*aIter); // do we really need this ?? I guess I have a different logic in editshell which disales this... - if (bUseEnhFields && mrReader.pWDop->fProtEnabled && aIter->IsNotProtected()) { + if (bUseEnhFields && mrReader.pWDop->fProtEnabled && aIter->IsNotProtected()) + { // here we have the special case that the whole document is protected, with the execption of this section. // I want to address this when I do the section rework, so for the moment we disable the overall protection then... mrReader.rDoc.set(IDocumentSettingAccess::PROTECT_FORM, false ); diff --git a/sw/source/filter/ww8/ww8par3.cxx b/sw/source/filter/ww8/ww8par3.cxx index 4a00e026367c..b607f5920dda 100644 --- a/sw/source/filter/ww8/ww8par3.cxx +++ b/sw/source/filter/ww8/ww8par3.cxx @@ -133,55 +133,62 @@ eF_ResT SwWW8ImplReader::Read_F_FormTextBox( WW8FieldDesc* pF, String& rStr ) */ const SvtFilterOptions* pOpt = SvtFilterOptions::Get(); - sal_Bool bUseEnhFields=(pOpt && pOpt->IsUseEnhancedFields()); + const sal_Bool bUseEnhFields=(pOpt && pOpt->IsUseEnhancedFields()); - if (!bUseEnhFields) { - aFormula.sDefault = GetFieldResult(pF); + if (!bUseEnhFields) + { + aFormula.sDefault = GetFieldResult(pF); #if 0 // why not? (flr) - //substituting Unicode spacing 0x2002 with double space for layout - aFormula.sDefault.SearchAndReplaceAll( - String(static_cast< sal_Unicode >(0x2002)), - CREATE_CONST_ASC(" ")); + //substituting Unicode spacing 0x2002 with double space for layout + aFormula.sDefault.SearchAndReplaceAll( + String(static_cast< sal_Unicode >(0x2002)), + CREATE_CONST_ASC(" ")); #endif - SwInputField aFld((SwInputFieldType*)rDoc.GetSysFldType( RES_INPUTFLD ), - aFormula.sDefault , aFormula.sTitle , INP_TXT, 0 ); - aFld.SetHelp(aFormula.sHelp); - aFld.SetToolTip(aFormula.sToolTip); - - rDoc.InsertPoolItem(*pPaM, SwFmtFld(aFld), 0); - return FLD_OK; - } else { - WW8PLCFx_Book* pB = pPlcxMan->GetBook(); - String aBookmarkName; - if (pB!=NULL) { - WW8_CP currentCP=pF->nSCode; - WW8_CP currentLen=pF->nLen; - - sal_uInt16 bkmFindIdx; - String aBookmarkFind=pB->GetBookmark(currentCP-1, currentCP+currentLen-1, bkmFindIdx); - - if (aBookmarkFind.Len()>0) { - pB->SetStatus(bkmFindIdx, BOOK_FIELD); // mark bookmark as consumed, such that tl'll not get inserted as a "normal" bookmark again + SwInputField aFld( + static_cast<SwInputFieldType*>(rDoc.GetSysFldType( RES_INPUTFLD )), + aFormula.sDefault, + aFormula.sTitle, + INP_TXT, + 0 ); + aFld.SetHelp(aFormula.sHelp); + aFld.SetToolTip(aFormula.sToolTip); + + rDoc.InsertPoolItem( *pPaM, SwFmtFld(aFld), 0 ); + return FLD_OK; + } + else + { + WW8PLCFx_Book* pB = pPlcxMan->GetBook(); + String aBookmarkName; + if (pB!=NULL) { + WW8_CP currentCP=pF->nSCode; + WW8_CP currentLen=pF->nLen; + + sal_uInt16 bkmFindIdx; + String aBookmarkFind=pB->GetBookmark(currentCP-1, currentCP+currentLen-1, bkmFindIdx); + if (aBookmarkFind.Len()>0) { - aBookmarkName=aBookmarkFind; + pB->SetStatus(bkmFindIdx, BOOK_FIELD); // mark bookmark as consumed, such that tl'll not get inserted as a "normal" bookmark again + if (aBookmarkFind.Len()>0) { + aBookmarkName=aBookmarkFind; + } } } - } - if (pB!=NULL && aBookmarkName.Len()==0) { - aBookmarkName=pB->GetUniqueBookmarkName(aFormula.sTitle); - } + if (pB!=NULL && aBookmarkName.Len()==0) { + aBookmarkName=pB->GetUniqueBookmarkName(aFormula.sTitle); + } - if (aBookmarkName.Len()>0) { - maFieldStack.back().SetBookmarkName(aBookmarkName); - maFieldStack.back().SetBookmarkType(::rtl::OUString::createFromAscii(ODF_FORMTEXT)); - maFieldStack.back().getParameters()[::rtl::OUString::createFromAscii("Description")] = uno::makeAny(::rtl::OUString(aFormula.sToolTip)); - maFieldStack.back().getParameters()[::rtl::OUString::createFromAscii("Name")] = uno::makeAny(::rtl::OUString(aFormula.sTitle)); - } - return FLD_TEXT; + if (aBookmarkName.Len()>0) { + maFieldStack.back().SetBookmarkName(aBookmarkName); + maFieldStack.back().SetBookmarkType(::rtl::OUString::createFromAscii(ODF_FORMTEXT)); + maFieldStack.back().getParameters()[::rtl::OUString::createFromAscii("Description")] = uno::makeAny(::rtl::OUString(aFormula.sToolTip)); + maFieldStack.back().getParameters()[::rtl::OUString::createFromAscii("Name")] = uno::makeAny(::rtl::OUString(aFormula.sTitle)); + } + return FLD_TEXT; } } @@ -197,49 +204,52 @@ eF_ResT SwWW8ImplReader::Read_F_FormCheckBox( WW8FieldDesc* pF, String& rStr ) const SvtFilterOptions* pOpt = SvtFilterOptions::Get(); sal_Bool bUseEnhFields=(pOpt && pOpt->IsUseEnhancedFields()); - if (!bUseEnhFields) { - pFormImpl->InsertFormula(aFormula); - return FLD_OK; - } else { - String aBookmarkName; - WW8PLCFx_Book* pB = pPlcxMan->GetBook(); - if (pB!=NULL) { - WW8_CP currentCP=pF->nSCode; - WW8_CP currentLen=pF->nLen; - - sal_uInt16 bkmFindIdx; - String aBookmarkFind=pB->GetBookmark(currentCP-1, currentCP+currentLen-1, bkmFindIdx); - - if (aBookmarkFind.Len()>0) { - pB->SetStatus(bkmFindIdx, BOOK_FIELD); // mark as consumed by field + if (!bUseEnhFields) + { + pFormImpl->InsertFormula(aFormula); + return FLD_OK; + } + else + { + String aBookmarkName; + WW8PLCFx_Book* pB = pPlcxMan->GetBook(); + if (pB!=NULL) { + WW8_CP currentCP=pF->nSCode; + WW8_CP currentLen=pF->nLen; + + sal_uInt16 bkmFindIdx; + String aBookmarkFind=pB->GetBookmark(currentCP-1, currentCP+currentLen-1, bkmFindIdx); + if (aBookmarkFind.Len()>0) { - aBookmarkName=aBookmarkFind; + pB->SetStatus(bkmFindIdx, BOOK_FIELD); // mark as consumed by field + if (aBookmarkFind.Len()>0) { + aBookmarkName=aBookmarkFind; + } } } - } - if (pB!=NULL && aBookmarkName.Len()==0) { - aBookmarkName=pB->GetUniqueBookmarkName(aFormula.sTitle); - } + if (pB!=NULL && aBookmarkName.Len()==0) { + aBookmarkName=pB->GetUniqueBookmarkName(aFormula.sTitle); + } - if (aBookmarkName.Len()>0) - { - IDocumentMarkAccess* pMarksAccess = rDoc.getIDocumentMarkAccess( ); - IFieldmark* pFieldmark = dynamic_cast<IFieldmark*>( pMarksAccess->makeNoTextFieldBookmark( + if (aBookmarkName.Len()>0) + { + IDocumentMarkAccess* pMarksAccess = rDoc.getIDocumentMarkAccess( ); + IFieldmark* pFieldmark = dynamic_cast<IFieldmark*>( pMarksAccess->makeNoTextFieldBookmark( *pPaM, aBookmarkName, rtl::OUString::createFromAscii( ODF_FORMCHECKBOX ) ) ); - ASSERT(pFieldmark!=NULL, "hmmm; why was the bookmark not created?"); - if (pFieldmark!=NULL) { - IFieldmark::parameter_map_t* const pParameters = pFieldmark->GetParameters(); - ICheckboxFieldmark* pCheckboxFm = dynamic_cast<ICheckboxFieldmark*>(pFieldmark); - (*pParameters)[::rtl::OUString::createFromAscii(ODF_FORMCHECKBOX_NAME)] = uno::makeAny(::rtl::OUString(aFormula.sTitle)); - (*pParameters)[::rtl::OUString::createFromAscii(ODF_FORMCHECKBOX_HELPTEXT)] = uno::makeAny(::rtl::OUString(aFormula.sToolTip)); - if(pCheckboxFm) - pCheckboxFm->SetChecked(aFormula.nChecked); - // set field data here... + ASSERT(pFieldmark!=NULL, "hmmm; why was the bookmark not created?"); + if (pFieldmark!=NULL) { + IFieldmark::parameter_map_t* const pParameters = pFieldmark->GetParameters(); + ICheckboxFieldmark* pCheckboxFm = dynamic_cast<ICheckboxFieldmark*>(pFieldmark); + (*pParameters)[::rtl::OUString::createFromAscii(ODF_FORMCHECKBOX_NAME)] = uno::makeAny(::rtl::OUString(aFormula.sTitle)); + (*pParameters)[::rtl::OUString::createFromAscii(ODF_FORMCHECKBOX_HELPTEXT)] = uno::makeAny(::rtl::OUString(aFormula.sToolTip)); + if(pCheckboxFm) + pCheckboxFm->SetChecked(aFormula.nChecked); + // set field data here... + } } - } - return FLD_OK; + return FLD_OK; } } diff --git a/sw/source/filter/ww8/ww8par5.cxx b/sw/source/filter/ww8/ww8par5.cxx index d6c1278a25df..115d982cbdb5 100644 --- a/sw/source/filter/ww8/ww8par5.cxx +++ b/sw/source/filter/ww8/ww8par5.cxx @@ -1227,8 +1227,8 @@ eF_ResT SwWW8ImplReader::Read_F_Input( WW8FieldDesc* pF, String& rStr ) if( !aDef.Len() ) aDef = GetFieldResult( pF ); - SwInputField aFld( (SwInputFieldType*)rDoc.GetSysFldType( RES_INPUTFLD ), - aDef, aQ, INP_TXT, 0 ); // sichtbar ( geht z.Zt. nicht anders ) + SwInputField aFld( static_cast<SwInputFieldType*>(rDoc.GetSysFldType( RES_INPUTFLD )), + aDef, aQ, INP_TXT, 0, false ); rDoc.InsertPoolItem( *pPaM, SwFmtFld( aFld ), 0 ); return FLD_OK; @@ -2668,8 +2668,8 @@ void SwWW8ImplReader::Read_SubF_Combined( _ReadFieldParams& rReadParam) sCombinedCharacters = sPart.Copy( nBegin+1, nEnd-nBegin-1 ); if ( sCombinedCharacters.Len() ) { - SwInputField aFld( (SwInputFieldType*)rDoc.GetSysFldType( RES_INPUTFLD ), - sCombinedCharacters, sCombinedCharacters, INP_TXT, 0 ); + SwInputField aFld( static_cast<SwInputFieldType*>(rDoc.GetSysFldType( RES_INPUTFLD )), + sCombinedCharacters, sCombinedCharacters, INP_TXT, 0, false ); rDoc.InsertPoolItem( *pPaM, SwFmtFld( aFld ), 0 ); // insert input field } } |