Kaydet (Commit) 938f8a6b authored tarafından Michael Stahl's avatar Michael Stahl Kaydeden (comit) Thorsten Behrens

sw_redlinehide_4a: SwAutoFormat::AutoCorrect()

Change-Id: I0ab7665f8635d6716fce996408db1e2bedf54d0c
(cherry picked from commit c03da6a4)
üst 4cf5a46f
...@@ -187,7 +187,7 @@ class SwAutoFormat ...@@ -187,7 +187,7 @@ class SwAutoFormat
/// join with the previous paragraph /// join with the previous paragraph
void JoinPrevPara(); void JoinPrevPara();
/// execute AutoCorrect on current TextNode /// execute AutoCorrect on current TextNode
void AutoCorrect( sal_Int32 nSttPos = 0 ); void AutoCorrect(TextFrameIndex nSttPos = TextFrameIndex(0));
bool CanJoin(const SwTextFrame * pNextFrame) const bool CanJoin(const SwTextFrame * pNextFrame) const
{ {
...@@ -1496,7 +1496,7 @@ void SwAutoFormat::BuildEnum( sal_uInt16 nLvl, sal_uInt16 nDigitLevel ) ...@@ -1496,7 +1496,7 @@ void SwAutoFormat::BuildEnum( sal_uInt16 nLvl, sal_uInt16 nDigitLevel )
DeleteLeadingTrailingBlanks(); DeleteLeadingTrailingBlanks();
bool bChgBullet = false, bChgEnum = false; bool bChgBullet = false, bChgEnum = false;
sal_Int32 nAutoCorrPos = 0; TextFrameIndex nAutoCorrPos(0);
// if numbering is set, get the current one // if numbering is set, get the current one
SwNumRule aRule( m_pDoc->GetUniqueNumRuleName(), SwNumRule aRule( m_pDoc->GetUniqueNumRuleName(),
...@@ -1749,7 +1749,7 @@ void SwAutoFormat::BuildEnum( sal_uInt16 nLvl, sal_uInt16 nDigitLevel ) ...@@ -1749,7 +1749,7 @@ void SwAutoFormat::BuildEnum( sal_uInt16 nLvl, sal_uInt16 nDigitLevel )
RES_CHRATR_FONT ) ); RES_CHRATR_FONT ) );
m_pDoc->SetFormatItemByAutoFormat( m_aDelPam, aSet ); m_pDoc->SetFormatItemByAutoFormat( m_aDelPam, aSet );
m_aDelPam.DeleteMark(); m_aDelPam.DeleteMark();
nAutoCorrPos = 2; nAutoCorrPos = TextFrameIndex(2);
aSet.ClearItem(); aSet.ClearItem();
} }
SvxTabStopItem aTStops( RES_PARATR_TABSTOP ); SvxTabStopItem aTStops( RES_PARATR_TABSTOP );
...@@ -1907,7 +1907,7 @@ void SwAutoFormat::BuildHeadLine( sal_uInt16 nLvl ) ...@@ -1907,7 +1907,7 @@ void SwAutoFormat::BuildHeadLine( sal_uInt16 nLvl )
} }
/// Start autocorrection for the current TextNode /// Start autocorrection for the current TextNode
void SwAutoFormat::AutoCorrect( sal_Int32 nPos ) void SwAutoFormat::AutoCorrect(TextFrameIndex nPos)
{ {
SvxAutoCorrect* pATst = SvxAutoCorrCfg::Get().GetAutoCorrect(); SvxAutoCorrect* pATst = SvxAutoCorrCfg::Get().GetAutoCorrect();
ACFlags aSvxFlags = pATst->GetFlags( ); ACFlags aSvxFlags = pATst->GetFlags( );
...@@ -1922,8 +1922,8 @@ void SwAutoFormat::AutoCorrect( sal_Int32 nPos ) ...@@ -1922,8 +1922,8 @@ void SwAutoFormat::AutoCorrect( sal_Int32 nPos )
!m_aFlags.bChgWeightUnderl && !m_aFlags.bAddNonBrkSpace) ) !m_aFlags.bChgWeightUnderl && !m_aFlags.bAddNonBrkSpace) )
return; return;
const OUString* pText = &m_pCurTextNd->GetText(); const OUString* pText = &m_pCurTextFrame->GetText();
if (nPos >= pText->getLength()) if (TextFrameIndex(pText->getLength()) <= nPos)
return; return;
bool bGetLanguage = m_aFlags.bChgOrdinalNumber || bool bGetLanguage = m_aFlags.bChgOrdinalNumber ||
...@@ -1932,14 +1932,13 @@ void SwAutoFormat::AutoCorrect( sal_Int32 nPos ) ...@@ -1932,14 +1932,13 @@ void SwAutoFormat::AutoCorrect( sal_Int32 nPos )
m_aFlags.bAddNonBrkSpace; m_aFlags.bAddNonBrkSpace;
m_aDelPam.DeleteMark(); m_aDelPam.DeleteMark();
m_aDelPam.GetPoint()->nNode = m_aNdIdx; *m_aDelPam.GetPoint() = m_pCurTextFrame->MapViewToModelPos(TextFrameIndex(0));
m_aDelPam.GetPoint()->nContent.Assign( m_pCurTextNd, 0 );
SwAutoCorrDoc aACorrDoc( *m_pEditShell, m_aDelPam ); SwAutoCorrDoc aACorrDoc( *m_pEditShell, m_aDelPam );
SwTextFrameInfo aFInfo( nullptr ); SwTextFrameInfo aFInfo( nullptr );
sal_Int32 nSttPos, nLastBlank = nPos; TextFrameIndex nSttPos, nLastBlank = nPos;
bool bFirst = m_aFlags.bCapitalStartSentence, bFirstSent = bFirst; bool bFirst = m_aFlags.bCapitalStartSentence, bFirstSent = bFirst;
sal_Unicode cChar = 0; sal_Unicode cChar = 0;
bool bNbspRunNext = false; bool bNbspRunNext = false;
...@@ -1947,14 +1946,15 @@ void SwAutoFormat::AutoCorrect( sal_Int32 nPos ) ...@@ -1947,14 +1946,15 @@ void SwAutoFormat::AutoCorrect( sal_Int32 nPos )
CharClass& rAppCC = GetAppCharClass(); CharClass& rAppCC = GetAppCharClass();
do { do {
while (nPos < pText->getLength() && IsSpace(cChar = (*pText)[nPos])) while (nPos < TextFrameIndex(pText->getLength())
&& IsSpace(cChar = (*pText)[sal_Int32(nPos)]))
++nPos; ++nPos;
if (nPos == pText->getLength()) if (nPos == TextFrameIndex(pText->getLength()))
break; // that's it break; // that's it
if( ( ( bReplaceQuote && '\"' == cChar ) || if( ( ( bReplaceQuote && '\"' == cChar ) ||
( bReplaceSglQuote && '\'' == cChar ) ) && ( bReplaceSglQuote && '\'' == cChar ) ) &&
(!nPos || ' ' == (*pText)[nPos-1])) (!nPos || ' ' == (*pText)[sal_Int32(nPos)-1]))
{ {
// note: special case symbol fonts !!! // note: special case symbol fonts !!!
...@@ -1963,14 +1963,14 @@ void SwAutoFormat::AutoCorrect( sal_Int32 nPos ) ...@@ -1963,14 +1963,14 @@ void SwAutoFormat::AutoCorrect( sal_Int32 nPos )
if( !aFInfo.IsBullet( nPos )) if( !aFInfo.IsBullet( nPos ))
{ {
SetRedlineText( STR_AUTOFMTREDL_TYPO ); SetRedlineText( STR_AUTOFMTREDL_TYPO );
m_aDelPam.GetPoint()->nContent = nPos; *m_aDelPam.GetPoint() = m_pCurTextFrame->MapViewToModelPos(nPos);
bool bSetHardBlank = false; bool bSetHardBlank = false;
OUString sReplace( pATst->GetQuote( aACorrDoc, OUString sReplace( pATst->GetQuote( aACorrDoc,
nPos, cChar, true )); sal_Int32(nPos), cChar, true ));
m_aDelPam.SetMark(); m_aDelPam.SetMark();
m_aDelPam.GetPoint()->nContent = nPos+1; m_aDelPam.GetPoint()->nContent = m_aDelPam.GetMark()->nContent.GetIndex() + 1;
if( 2 == sReplace.getLength() && ' ' == sReplace[ 1 ]) if( 2 == sReplace.getLength() && ' ' == sReplace[ 1 ])
{ {
sReplace = sReplace.copy( 0, 1 ); sReplace = sReplace.copy( 0, 1 );
...@@ -1982,12 +1982,13 @@ void SwAutoFormat::AutoCorrect( sal_Int32 nPos ) ...@@ -1982,12 +1982,13 @@ void SwAutoFormat::AutoCorrect( sal_Int32 nPos )
{ {
m_aNdIdx = m_aDelPam.GetPoint()->nNode; m_aNdIdx = m_aDelPam.GetPoint()->nNode;
m_pCurTextNd = m_aNdIdx.GetNode().GetTextNode(); m_pCurTextNd = m_aNdIdx.GetNode().GetTextNode();
pText = &m_pCurTextNd->GetText(); m_pCurTextFrame = GetFrame( *m_pCurTextNd );
pText = &m_pCurTextFrame->GetText();
m_aDelPam.SetMark(); m_aDelPam.SetMark();
aFInfo.SetFrame( nullptr ); aFInfo.SetFrame( nullptr );
} }
nPos += sReplace.getLength() - 1; nPos += TextFrameIndex(sReplace.getLength() - 1);
m_aDelPam.DeleteMark(); m_aDelPam.DeleteMark();
if( bSetHardBlank ) if( bSetHardBlank )
{ {
...@@ -1999,11 +2000,11 @@ void SwAutoFormat::AutoCorrect( sal_Int32 nPos ) ...@@ -1999,11 +2000,11 @@ void SwAutoFormat::AutoCorrect( sal_Int32 nPos )
bool bCallACorr = false; bool bCallACorr = false;
int bBreak = 0; int bBreak = 0;
if (nPos && IsSpace((*pText)[nPos-1])) if (nPos && IsSpace((*pText)[sal_Int32(nPos) - 1]))
nLastBlank = nPos; nLastBlank = nPos;
for (nSttPos = nPos; !bBreak && nPos < pText->getLength(); ++nPos) for (nSttPos = nPos; !bBreak && nPos < TextFrameIndex(pText->getLength()); ++nPos)
{ {
cChar = (*pText)[nPos]; cChar = (*pText)[sal_Int32(nPos)];
switch (cChar) switch (cChar)
{ {
case '\"': case '\"':
...@@ -2017,9 +2018,9 @@ void SwAutoFormat::AutoCorrect( sal_Int32 nPos ) ...@@ -2017,9 +2018,9 @@ void SwAutoFormat::AutoCorrect( sal_Int32 nPos )
{ {
SetRedlineText( STR_AUTOFMTREDL_TYPO ); SetRedlineText( STR_AUTOFMTREDL_TYPO );
bool bSetHardBlank = false; bool bSetHardBlank = false;
m_aDelPam.GetPoint()->nContent = nPos; *m_aDelPam.GetPoint() = m_pCurTextFrame->MapViewToModelPos(nPos);
OUString sReplace( pATst->GetQuote( aACorrDoc, OUString sReplace( pATst->GetQuote( aACorrDoc,
nPos, cChar, false )); sal_Int32(nPos), cChar, false) );
if( 2 == sReplace.getLength() && ' ' == sReplace[ 0 ]) if( 2 == sReplace.getLength() && ' ' == sReplace[ 0 ])
{ {
...@@ -2028,27 +2029,29 @@ void SwAutoFormat::AutoCorrect( sal_Int32 nPos ) ...@@ -2028,27 +2029,29 @@ void SwAutoFormat::AutoCorrect( sal_Int32 nPos )
} }
m_aDelPam.SetMark(); m_aDelPam.SetMark();
m_aDelPam.GetPoint()->nContent = nPos+1; m_aDelPam.GetPoint()->nContent = m_aDelPam.GetMark()->nContent.GetIndex() + 1;
m_pDoc->getIDocumentContentOperations().ReplaceRange( m_aDelPam, sReplace, false ); m_pDoc->getIDocumentContentOperations().ReplaceRange( m_aDelPam, sReplace, false );
if( m_aFlags.bWithRedlining ) if( m_aFlags.bWithRedlining )
{ {
m_aNdIdx = m_aDelPam.GetPoint()->nNode; m_aNdIdx = m_aDelPam.GetPoint()->nNode;
m_pCurTextNd = m_aNdIdx.GetNode().GetTextNode(); m_pCurTextNd = m_aNdIdx.GetNode().GetTextNode();
pText = &m_pCurTextNd->GetText(); m_pCurTextFrame = GetFrame( *m_pCurTextNd );
pText = &m_pCurTextFrame->GetText();
m_aDelPam.SetMark(); m_aDelPam.SetMark();
m_aDelPam.DeleteMark(); m_aDelPam.DeleteMark();
aFInfo.SetFrame( nullptr ); aFInfo.SetFrame( nullptr );
} }
nPos += sReplace.getLength() - 1; nPos += TextFrameIndex(sReplace.getLength() - 1);
m_aDelPam.DeleteMark(); m_aDelPam.DeleteMark();
if( bSetHardBlank ) if( bSetHardBlank )
{ {
m_aDelPam.GetPoint()->nContent = nPos; *m_aDelPam.GetPoint() = m_pCurTextFrame->MapViewToModelPos(nPos);
m_pDoc->getIDocumentContentOperations().InsertString( m_aDelPam, OUString(CHAR_HARDBLANK) ); m_pDoc->getIDocumentContentOperations().InsertString( m_aDelPam, OUString(CHAR_HARDBLANK) );
m_aDelPam.GetPoint()->nContent = ++nPos; ++nPos;
*m_aDelPam.GetPoint() = m_pCurTextFrame->MapViewToModelPos(nPos);
} }
} }
} }
...@@ -2066,25 +2069,26 @@ void SwAutoFormat::AutoCorrect( sal_Int32 nPos ) ...@@ -2066,25 +2069,26 @@ void SwAutoFormat::AutoCorrect( sal_Int32 nPos )
? STR_AUTOFMTREDL_BOLD ? STR_AUTOFMTREDL_BOLD
: STR_AUTOFMTREDL_UNDER ); : STR_AUTOFMTREDL_UNDER );
sal_Unicode cBlank = nSttPos ? (*pText)[nSttPos - 1] : 0; sal_Unicode cBlank = nSttPos ? (*pText)[sal_Int32(nSttPos) - 1] : 0;
m_aDelPam.GetPoint()->nContent = nPos; *m_aDelPam.GetPoint() = m_pCurTextFrame->MapViewToModelPos(nPos);
if( pATst->FnChgWeightUnderl( aACorrDoc, *pText, nPos )) if (pATst->FnChgWeightUnderl(aACorrDoc, *pText, sal_Int32(nPos)))
{ {
if( m_aFlags.bWithRedlining ) if( m_aFlags.bWithRedlining )
{ {
m_aNdIdx = m_aDelPam.GetPoint()->nNode; m_aNdIdx = m_aDelPam.GetPoint()->nNode;
m_pCurTextNd = m_aNdIdx.GetNode().GetTextNode(); m_pCurTextNd = m_aNdIdx.GetNode().GetTextNode();
pText = &m_pCurTextNd->GetText(); m_pCurTextFrame = GetFrame( *m_pCurTextNd );
pText = &m_pCurTextFrame->GetText();
m_aDelPam.SetMark(); m_aDelPam.SetMark();
m_aDelPam.DeleteMark(); m_aDelPam.DeleteMark();
aFInfo.SetFrame( nullptr ); aFInfo.SetFrame( nullptr );
} }
//#125102# in case of the mode RedlineFlags::ShowDelete the ** are still contained in pText //#125102# in case of the mode RedlineFlags::ShowDelete the ** are still contained in pText
if(!(m_pDoc->getIDocumentRedlineAccess().GetRedlineFlags() & RedlineFlags::ShowDelete)) if(!(m_pDoc->getIDocumentRedlineAccess().GetRedlineFlags() & RedlineFlags::ShowDelete))
nPos = m_aDelPam.GetPoint()->nContent.GetIndex() - 1; nPos = m_pCurTextFrame->MapModelToViewPos(*m_aDelPam.GetPoint()) - TextFrameIndex(1);
// Was a character deleted before starting? // Was a character deleted before starting?
if (cBlank && cBlank != (*pText)[nSttPos - 1]) if (cBlank && cBlank != (*pText)[sal_Int32(nSttPos) - 1])
--nSttPos; --nSttPos;
} }
} }
...@@ -2094,11 +2098,11 @@ void SwAutoFormat::AutoCorrect( sal_Int32 nPos ) ...@@ -2094,11 +2098,11 @@ void SwAutoFormat::AutoCorrect( sal_Int32 nPos )
if ( m_aFlags.bAddNonBrkSpace ) if ( m_aFlags.bAddNonBrkSpace )
{ {
LanguageType eLang = bGetLanguage LanguageType eLang = bGetLanguage
? m_pCurTextNd->GetLang( nSttPos ) ? m_pCurTextFrame->GetLangOfChar(nSttPos, 0, true)
: LANGUAGE_SYSTEM; : LANGUAGE_SYSTEM;
SetRedlineText( STR_AUTOFMTREDL_NON_BREAK_SPACE ); SetRedlineText( STR_AUTOFMTREDL_NON_BREAK_SPACE );
if ( pATst->FnAddNonBrkSpace( aACorrDoc, *pText, nPos, eLang, bNbspRunNext ) ) if (pATst->FnAddNonBrkSpace(aACorrDoc, *pText, sal_Int32(nPos), eLang, bNbspRunNext))
--nPos; --nPos;
} }
break; break;
...@@ -2110,7 +2114,7 @@ void SwAutoFormat::AutoCorrect( sal_Int32 nPos ) ...@@ -2110,7 +2114,7 @@ void SwAutoFormat::AutoCorrect( sal_Int32 nPos )
bFirstSent = true; bFirstSent = true;
SAL_FALLTHROUGH; SAL_FALLTHROUGH;
default: default:
if( !( rAppCC.isLetterNumeric( *pText, nPos ) if (!(rAppCC.isLetterNumeric(*pText, sal_Int32(nPos))
|| '/' == cChar )) // '/' should not be a word separator (e.g. '1/2' needs to be handled as one word for replacement) || '/' == cChar )) // '/' should not be a word separator (e.g. '1/2' needs to be handled as one word for replacement)
{ {
--nPos; // revert ++nPos which was decremented in for loop --nPos; // revert ++nPos which was decremented in for loop
...@@ -2122,7 +2126,7 @@ void SwAutoFormat::AutoCorrect( sal_Int32 nPos ) ...@@ -2122,7 +2126,7 @@ void SwAutoFormat::AutoCorrect( sal_Int32 nPos )
if( nPos == nSttPos ) if( nPos == nSttPos )
{ {
if (++nPos == pText->getLength()) if (++nPos == TextFrameIndex(pText->getLength()))
bCallACorr = true; bCallACorr = true;
} }
else else
...@@ -2130,18 +2134,19 @@ void SwAutoFormat::AutoCorrect( sal_Int32 nPos ) ...@@ -2130,18 +2134,19 @@ void SwAutoFormat::AutoCorrect( sal_Int32 nPos )
if( bCallACorr ) if( bCallACorr )
{ {
m_aDelPam.GetPoint()->nContent = nPos; *m_aDelPam.GetPoint() = m_pCurTextFrame->MapViewToModelPos(nPos);
SetRedlineText( STR_AUTOFMTREDL_USE_REPLACE ); SetRedlineText( STR_AUTOFMTREDL_USE_REPLACE );
if( m_aFlags.bAutoCorrect && if( m_aFlags.bAutoCorrect &&
aACorrDoc.ChgAutoCorrWord( nSttPos, nPos, *pATst, nullptr ) ) aACorrDoc.ChgAutoCorrWord(reinterpret_cast<sal_Int32&>(nSttPos), sal_Int32(nPos), *pATst, nullptr))
{ {
nPos = m_aDelPam.GetPoint()->nContent.GetIndex(); nPos = m_pCurTextFrame->MapModelToViewPos(*m_aDelPam.GetPoint()) - TextFrameIndex(1);
if( m_aFlags.bWithRedlining ) if( m_aFlags.bWithRedlining )
{ {
m_aNdIdx = m_aDelPam.GetPoint()->nNode; m_aNdIdx = m_aDelPam.GetPoint()->nNode;
m_pCurTextNd = m_aNdIdx.GetNode().GetTextNode(); m_pCurTextNd = m_aNdIdx.GetNode().GetTextNode();
pText = &m_pCurTextNd->GetText(); m_pCurTextFrame = GetFrame( *m_pCurTextNd );
pText = &m_pCurTextFrame->GetText();
m_aDelPam.SetMark(); m_aDelPam.SetMark();
m_aDelPam.DeleteMark(); m_aDelPam.DeleteMark();
} }
...@@ -2150,39 +2155,41 @@ void SwAutoFormat::AutoCorrect( sal_Int32 nPos ) ...@@ -2150,39 +2155,41 @@ void SwAutoFormat::AutoCorrect( sal_Int32 nPos )
} }
LanguageType eLang = bGetLanguage LanguageType eLang = bGetLanguage
? m_pCurTextNd->GetLang( nSttPos ) ? m_pCurTextFrame->GetLangOfChar(nSttPos, 0, true)
: LANGUAGE_SYSTEM; : LANGUAGE_SYSTEM;
if ( m_aFlags.bAddNonBrkSpace ) if ( m_aFlags.bAddNonBrkSpace )
{ {
SetRedlineText( STR_AUTOFMTREDL_NON_BREAK_SPACE ); SetRedlineText( STR_AUTOFMTREDL_NON_BREAK_SPACE );
pATst->FnAddNonBrkSpace( aACorrDoc, *pText, nPos, eLang, bNbspRunNext ); pATst->FnAddNonBrkSpace(aACorrDoc, *pText, sal_Int32(nPos), eLang, bNbspRunNext);
} }
if( ( m_aFlags.bChgOrdinalNumber && if( ( m_aFlags.bChgOrdinalNumber &&
SetRedlineText( STR_AUTOFMTREDL_ORDINAL ) && SetRedlineText( STR_AUTOFMTREDL_ORDINAL ) &&
pATst->FnChgOrdinalNumber( aACorrDoc, *pText, nSttPos, nPos, eLang ) ) || pATst->FnChgOrdinalNumber(aACorrDoc, *pText, sal_Int32(nSttPos), sal_Int32(nPos), eLang)) ||
( m_aFlags.bChgToEnEmDash && ( m_aFlags.bChgToEnEmDash &&
SetRedlineText( STR_AUTOFMTREDL_DASH ) && SetRedlineText( STR_AUTOFMTREDL_DASH ) &&
pATst->FnChgToEnEmDash( aACorrDoc, *pText, nSttPos, nPos, eLang ) ) || pATst->FnChgToEnEmDash(aACorrDoc, *pText, sal_Int32(nSttPos), sal_Int32(nPos), eLang)) ||
( m_aFlags.bSetINetAttr && ( m_aFlags.bSetINetAttr &&
(nPos == pText->getLength() || IsSpace((*pText)[nPos])) && (nPos == TextFrameIndex(pText->getLength()) || IsSpace((*pText)[sal_Int32(nPos)])) &&
SetRedlineText( STR_AUTOFMTREDL_DETECT_URL ) && SetRedlineText( STR_AUTOFMTREDL_DETECT_URL ) &&
pATst->FnSetINetAttr( aACorrDoc, *pText, nLastBlank, nPos, eLang ) ) ) pATst->FnSetINetAttr(aACorrDoc, *pText, sal_Int32(nLastBlank), sal_Int32(nPos), eLang)))
nPos = m_aDelPam.GetPoint()->nContent.GetIndex(); {
nPos = m_pCurTextFrame->MapModelToViewPos(*m_aDelPam.GetPoint()) - TextFrameIndex(1);
}
else else
{ {
// two capital letters at the beginning of a word? // two capital letters at the beginning of a word?
if( m_aFlags.bCapitalStartWord ) if( m_aFlags.bCapitalStartWord )
{ {
SetRedlineText( STR_AUTOFMTREDL_CPTL_STT_WORD ); SetRedlineText( STR_AUTOFMTREDL_CPTL_STT_WORD );
pATst->FnCapitalStartWord( aACorrDoc, *pText, nSttPos, nPos, eLang ); pATst->FnCapitalStartWord(aACorrDoc, *pText, sal_Int32(nSttPos), sal_Int32(nPos), eLang);
} }
// capital letter at the beginning of a sentence? // capital letter at the beginning of a sentence?
if( m_aFlags.bCapitalStartSentence && bFirst ) if( m_aFlags.bCapitalStartSentence && bFirst )
{ {
SetRedlineText( STR_AUTOFMTREDL_CPTL_STT_SENT ); SetRedlineText( STR_AUTOFMTREDL_CPTL_STT_SENT );
pATst->FnCapitalStartSentence( aACorrDoc, *pText, true, nSttPos, nPos, eLang); pATst->FnCapitalStartSentence(aACorrDoc, *pText, true, sal_Int32(nSttPos), sal_Int32(nPos), eLang);
} }
bFirst = bFirstSent; bFirst = bFirstSent;
...@@ -2192,13 +2199,15 @@ void SwAutoFormat::AutoCorrect( sal_Int32 nPos ) ...@@ -2192,13 +2199,15 @@ void SwAutoFormat::AutoCorrect( sal_Int32 nPos )
{ {
m_aNdIdx = m_aDelPam.GetPoint()->nNode; m_aNdIdx = m_aDelPam.GetPoint()->nNode;
m_pCurTextNd = m_aNdIdx.GetNode().GetTextNode(); m_pCurTextNd = m_aNdIdx.GetNode().GetTextNode();
pText = &m_pCurTextNd->GetText(); m_pCurTextFrame = GetFrame( *m_pCurTextNd );
pText = &m_pCurTextFrame->GetText();
m_aDelPam.SetMark(); m_aDelPam.SetMark();
m_aDelPam.DeleteMark(); m_aDelPam.DeleteMark();
} }
} }
} }
} while (nPos < pText->getLength()); }
while (nPos < TextFrameIndex(pText->getLength()));
ClearRedlineText(); ClearRedlineText();
} }
......
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