Kaydet (Commit) 86fd5085 authored tarafından Kohei Yoshida's avatar Kohei Yoshida

Early bailout.

üst 17c6fee1
......@@ -488,38 +488,37 @@ ScEditFieldObj* ScHeaderFieldsObj::GetObjectByIndex_Impl(sal_Int32 Index) const
ScUnoEditEngine aTempEngine(pEditEngine);
SvxFieldData* pData = aTempEngine.FindByIndex((sal_uInt16)Index, 0);
if ( pData )
{
sal_uInt16 nPar = aTempEngine.GetFieldPar();
xub_StrLen nPos = aTempEngine.GetFieldPos();
sal_uInt16 nFieldType = 0;
if ( pData->ISA( SvxPageField ) ) nFieldType = SC_SERVICE_PAGEFIELD;
else if ( pData->ISA( SvxPagesField ) ) nFieldType = SC_SERVICE_PAGESFIELD;
else if ( pData->ISA( SvxDateField ) ) nFieldType = SC_SERVICE_DATEFIELD;
else if ( pData->ISA( SvxTimeField ) ) nFieldType = SC_SERVICE_TIMEFIELD;
else if ( pData->ISA( SvxFileField ) ) nFieldType = SC_SERVICE_TITLEFIELD;
else if ( pData->ISA( SvxExtFileField ) ) nFieldType = SC_SERVICE_FILEFIELD;
else if ( pData->ISA( SvxTableField ) ) nFieldType = SC_SERVICE_SHEETFIELD;
ESelection aSelection( nPar, nPos, nPar, nPos+1 ); // Field is 1 character
uno::Reference<text::XTextRange> xTextRange;
ScHeaderFooterContentObj& rContentObj = mrData.GetContentObj();
uno::Reference<text::XText> xText;
sal_uInt16 nPart = mrData.GetPart();
if ( nPart == SC_HDFT_LEFT )
xText = rContentObj.getLeftText();
else if (nPart == SC_HDFT_CENTER)
xText = rContentObj.getCenterText();
else
xText = rContentObj.getRightText();
if (!pData)
return NULL;
sal_uInt16 nPar = aTempEngine.GetFieldPar();
xub_StrLen nPos = aTempEngine.GetFieldPos();
sal_uInt16 nFieldType = 0;
if ( pData->ISA( SvxPageField ) ) nFieldType = SC_SERVICE_PAGEFIELD;
else if ( pData->ISA( SvxPagesField ) ) nFieldType = SC_SERVICE_PAGESFIELD;
else if ( pData->ISA( SvxDateField ) ) nFieldType = SC_SERVICE_DATEFIELD;
else if ( pData->ISA( SvxTimeField ) ) nFieldType = SC_SERVICE_TIMEFIELD;
else if ( pData->ISA( SvxFileField ) ) nFieldType = SC_SERVICE_TITLEFIELD;
else if ( pData->ISA( SvxExtFileField ) ) nFieldType = SC_SERVICE_FILEFIELD;
else if ( pData->ISA( SvxTableField ) ) nFieldType = SC_SERVICE_SHEETFIELD;
ESelection aSelection( nPar, nPos, nPar, nPos+1 ); // Field is 1 character
uno::Reference<text::XTextRange> xTextRange;
ScHeaderFooterContentObj& rContentObj = mrData.GetContentObj();
uno::Reference<text::XText> xText;
sal_uInt16 nPart = mrData.GetPart();
if ( nPart == SC_HDFT_LEFT )
xText = rContentObj.getLeftText();
else if (nPart == SC_HDFT_CENTER)
xText = rContentObj.getCenterText();
else
xText = rContentObj.getRightText();
uno::Reference<text::XTextRange> xTemp(xText, uno::UNO_QUERY);
xTextRange = xTemp;
ScEditFieldObj::FieldType eRealType = getFieldType(nFieldType);
return new ScEditFieldObj(xTextRange, new ScHeaderFooterEditSource(mrData), eRealType, aSelection);
}
return NULL;
uno::Reference<text::XTextRange> xTemp(xText, uno::UNO_QUERY);
xTextRange = xTemp;
ScEditFieldObj::FieldType eRealType = getFieldType(nFieldType);
return new ScEditFieldObj(xTextRange, new ScHeaderFooterEditSource(mrData), eRealType, aSelection);
}
sal_Int32 SAL_CALL ScHeaderFieldsObj::getCount() throw(uno::RuntimeException)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment