Kaydet (Commit) 0e0ceebc authored tarafından Nickson Thanda's avatar Nickson Thanda Kaydeden (comit) Eike Rathke

tdf#36867 - Undo autocapitalization when inserting a cell in Calc

Change-Id: Ia70144d6c86b1b08e14425bf537e9c39d585a614
Reviewed-on: https://gerrit.libreoffice.org/55820
Tested-by: Jenkins
Reviewed-by: 's avatarEike Rathke <erack@redhat.com>
üst b80207f5
...@@ -2628,6 +2628,7 @@ void ScInputHandler::EnterHandler( ScEnterMode nBlockMode ) ...@@ -2628,6 +2628,7 @@ void ScInputHandler::EnterHandler( ScEnterMode nBlockMode )
bool bForget = false; // Remove due to validity? bool bForget = false; // Remove due to validity?
OUString aString = GetEditText(mpEditEngine.get()); OUString aString = GetEditText(mpEditEngine.get());
OUString aPreAutoCorrectString(aString);
EditView* pActiveView = pTopView ? pTopView : pTableView; EditView* pActiveView = pTopView ? pTopView : pTableView;
if (bModified && pActiveView && !aString.isEmpty() && !lcl_IsNumber(aString)) if (bModified && pActiveView && !aString.isEmpty() && !lcl_IsNumber(aString))
{ {
...@@ -2648,6 +2649,7 @@ void ScInputHandler::EnterHandler( ScEnterMode nBlockMode ) ...@@ -2648,6 +2649,7 @@ void ScInputHandler::EnterHandler( ScEnterMode nBlockMode )
aString = GetEditText(mpEditEngine.get()); aString = GetEditText(mpEditEngine.get());
} }
lcl_RemoveTabs(aString); lcl_RemoveTabs(aString);
lcl_RemoveTabs(aPreAutoCorrectString);
// Test if valid (always with simple string) // Test if valid (always with simple string)
if ( bModified && nValidation && pActiveViewSh ) if ( bModified && nValidation && pActiveViewSh )
...@@ -2881,12 +2883,14 @@ void ScInputHandler::EnterHandler( ScEnterMode nBlockMode ) ...@@ -2881,12 +2883,14 @@ void ScInputHandler::EnterHandler( ScEnterMode nBlockMode )
if (bOldMod && !bProtected && !bForget) if (bOldMod && !bProtected && !bForget)
{ {
bool bInsertPreCorrectedString = true;
// No typographic quotes in formulas // No typographic quotes in formulas
if (aString.startsWith("=")) if (aString.startsWith("="))
{ {
SvxAutoCorrect* pAuto = SvxAutoCorrCfg::Get().GetAutoCorrect(); SvxAutoCorrect* pAuto = SvxAutoCorrCfg::Get().GetAutoCorrect();
if ( pAuto ) if ( pAuto )
{ {
bInsertPreCorrectedString = false;
OUString aReplace(pAuto->GetStartDoubleQuote()); OUString aReplace(pAuto->GetStartDoubleQuote());
if( aReplace.isEmpty() ) if( aReplace.isEmpty() )
aReplace = ScGlobal::pLocaleData->getDoubleQuotationMarkStart(); aReplace = ScGlobal::pLocaleData->getDoubleQuotationMarkStart();
...@@ -2925,17 +2929,26 @@ void ScInputHandler::EnterHandler( ScEnterMode nBlockMode ) ...@@ -2925,17 +2929,26 @@ void ScInputHandler::EnterHandler( ScEnterMode nBlockMode )
else if ( nBlockMode == ScEnterMode::MATRIX ) else if ( nBlockMode == ScEnterMode::MATRIX )
nId = FID_INPUTLINE_MATRIX; nId = FID_INPUTLINE_MATRIX;
ScInputStatusItem aItem( FID_INPUTLINE_STATUS,
aCursorPos, aCursorPos, aCursorPos,
aString, pObject.get() );
if (!aMisspellRanges.empty())
aItem.SetMisspellRanges(&aMisspellRanges);
const SfxPoolItem* aArgs[2]; const SfxPoolItem* aArgs[2];
aArgs[0] = &aItem;
aArgs[1] = nullptr; aArgs[1] = nullptr;
rBindings.Execute( nId, aArgs );
if ( bInsertPreCorrectedString && aString != aPreAutoCorrectString )
{
ScInputStatusItem aItem(FID_INPUTLINE_STATUS,
aCursorPos, aCursorPos, aCursorPos,
aPreAutoCorrectString, pObject.get());
aArgs[0] = &aItem;
rBindings.Execute(nId, aArgs);
}
ScInputStatusItem aItemCorrected(FID_INPUTLINE_STATUS,
aCursorPos, aCursorPos, aCursorPos,
aString, pObject.get());
if ( !aMisspellRanges.empty() )
aItemCorrected.SetMisspellRanges(&aMisspellRanges);
aArgs[0] = &aItemCorrected;
rBindings.Execute(nId, aArgs);
} }
pLastState.reset(); // pLastState still contains the old text pLastState.reset(); // pLastState still contains the old 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