Kaydet (Commit) 95e566b9 authored tarafından Caolán McNamara's avatar Caolán McNamara

Resolves: fdo#67697 source formatting option list in autocorrect

regression from 0513e106
"fdo#49350 Speedup "OK" action of auto-correct dialog"

Change-Id: Iede6063729433beb3ac50dbdb45230c1d774cea0
üst 0825d0cb
...@@ -272,7 +272,7 @@ public: ...@@ -272,7 +272,7 @@ public:
void SetLanguage(LanguageType eSet); void SetLanguage(LanguageType eSet);
void DeleteEntry(String sShort, String sLong); void DeleteEntry(String sShort, String sLong);
void NewEntry(String sShort, String sLong); void NewEntry(String sShort, String sLong, bool bKeepSourceFormatting);
}; };
// class OfaAutocorrExceptPage --------------------------------------------- // class OfaAutocorrExceptPage ---------------------------------------------
......
...@@ -923,6 +923,17 @@ sal_Bool OfaAutocorrReplacePage::FillItemSet( SfxItemSet& ) ...@@ -923,6 +923,17 @@ sal_Bool OfaAutocorrReplacePage::FillItemSet( SfxItemSet& )
for (sal_uInt32 i = 0; i < rStringChangeList.aNewEntries.size(); i++) for (sal_uInt32 i = 0; i < rStringChangeList.aNewEntries.size(); i++)
{ {
DoubleString& newEntry = rStringChangeList.aNewEntries[i]; DoubleString& newEntry = rStringChangeList.aNewEntries[i];
//fdo#67697 if the user data is set then we want to retain the
//source formatting of the entry, so don't use the optimized
//text-only MakeCombinedChanges for this entry
bool bKeepSourceFormatting = newEntry.pUserData == &bHasSelectionText;
if (bKeepSourceFormatting)
{
pAutoCorrect->PutText(newEntry.sShort, *SfxObjectShell::Current(), eCurrentLang);
continue;
}
SvxAutocorrWord aNewWord( newEntry.sShort, newEntry.sLong ); SvxAutocorrWord aNewWord( newEntry.sShort, newEntry.sLong );
aNewWords.push_back( aNewWord ); aNewWords.push_back( aNewWord );
} }
...@@ -1100,7 +1111,7 @@ IMPL_LINK(OfaAutocorrReplacePage, SelectHdl, SvTabListBox*, pBox) ...@@ -1100,7 +1111,7 @@ IMPL_LINK(OfaAutocorrReplacePage, SelectHdl, SvTabListBox*, pBox)
return 0; return 0;
}; };
void OfaAutocorrReplacePage::NewEntry(String sShort, String sLong) void OfaAutocorrReplacePage::NewEntry(String sShort, String sLong, bool bKeepSourceFormatting)
{ {
DoubleStringArray& rNewArray = aChangesTable[eLang].aNewEntries; DoubleStringArray& rNewArray = aChangesTable[eLang].aNewEntries;
for (sal_uInt32 i = 0; i < rNewArray.size(); i++) for (sal_uInt32 i = 0; i < rNewArray.size(); i++)
...@@ -1126,6 +1137,8 @@ void OfaAutocorrReplacePage::NewEntry(String sShort, String sLong) ...@@ -1126,6 +1137,8 @@ void OfaAutocorrReplacePage::NewEntry(String sShort, String sLong)
aNewString.sShort = sShort; aNewString.sShort = sShort;
aNewString.sLong = sLong; aNewString.sLong = sLong;
rNewArray.push_back(aNewString); rNewArray.push_back(aNewString);
if (bKeepSourceFormatting)
rNewArray.back().pUserData = &bHasSelectionText;
} }
void OfaAutocorrReplacePage::DeleteEntry(String sShort, String sLong) void OfaAutocorrReplacePage::DeleteEntry(String sShort, String sLong)
...@@ -1177,7 +1190,9 @@ IMPL_LINK(OfaAutocorrReplacePage, NewDelHdl, PushButton*, pBtn) ...@@ -1177,7 +1190,9 @@ IMPL_LINK(OfaAutocorrReplacePage, NewDelHdl, PushButton*, pBtn)
if(sEntry.Len() && ( !m_pReplaceED->GetText().isEmpty() || if(sEntry.Len() && ( !m_pReplaceED->GetText().isEmpty() ||
( bHasSelectionText && bSWriter ) )) ( bHasSelectionText && bSWriter ) ))
{ {
NewEntry(m_pShortED->GetText(), m_pReplaceED->GetText()); bool bKeepSourceFormatting = !bReplaceEditChanged && !m_pTextOnlyCB->IsChecked();
NewEntry(m_pShortED->GetText(), m_pReplaceED->GetText(), bKeepSourceFormatting);
m_pReplaceTLB->SetUpdateMode(sal_False); m_pReplaceTLB->SetUpdateMode(sal_False);
sal_uInt32 nPos = UINT_MAX; sal_uInt32 nPos = UINT_MAX;
sEntry += '\t'; sEntry += '\t';
...@@ -1201,7 +1216,7 @@ IMPL_LINK(OfaAutocorrReplacePage, NewDelHdl, PushButton*, pBtn) ...@@ -1201,7 +1216,7 @@ IMPL_LINK(OfaAutocorrReplacePage, NewDelHdl, PushButton*, pBtn)
SvTreeListEntry* pInsEntry = m_pReplaceTLB->InsertEntry( SvTreeListEntry* pInsEntry = m_pReplaceTLB->InsertEntry(
sEntry, static_cast< SvTreeListEntry * >(NULL), false, sEntry, static_cast< SvTreeListEntry * >(NULL), false,
nPos == UINT_MAX ? LIST_APPEND : nPos); nPos == UINT_MAX ? LIST_APPEND : nPos);
if( !bReplaceEditChanged && !m_pTextOnlyCB->IsChecked()) if (bKeepSourceFormatting)
{ {
pInsEntry->SetUserData(&bHasSelectionText); // new formatted text pInsEntry->SetUserData(&bHasSelectionText); // new formatted text
} }
......
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