Kaydet (Commit) 48d0affa authored tarafından Eike Rathke's avatar Eike Rathke

Resolves: tdf#99930 SetReplaceLeadingSingleQuotationMark(false) for Calc

Change-Id: I29906de6a4075b7de82bd6e16560b56b9b648e91
üst fe3d9ac2
......@@ -2712,6 +2712,11 @@ void EditEngine::SetFirstWordCapitalization( bool bCapitalize )
pImpEditEngine->SetFirstWordCapitalization( bCapitalize );
}
void EditEngine::SetReplaceLeadingSingleQuotationMark( bool bReplace )
{
pImpEditEngine->SetReplaceLeadingSingleQuotationMark( bReplace );
}
bool EditEngine::IsImportHandlerSet() const
{
return pImpEditEngine->aImportHdl.IsSet();
......
......@@ -510,6 +510,7 @@ private:
bool bImpConvertFirstCall:1; // specifies if ImpConvert is called the very first time after Convert was called
bool bFirstWordCapitalization:1; // specifies if auto-correction should capitalize the first word or not
bool mbLastTryMerge:1;
bool mbReplaceLeadingSingleQuotationMark:1;
// Methods...
......@@ -1020,6 +1021,11 @@ public:
/// specifies if auto-correction should capitalize the first word or not (default is on)
void SetFirstWordCapitalization( bool bCapitalize ) { bFirstWordCapitalization = bCapitalize; }
bool IsFirstWordCapitalization() const { return bFirstWordCapitalization; }
/** specifies if auto-correction should replace a leading single quotation
mark (apostrophe) or not (default is on) */
void SetReplaceLeadingSingleQuotationMark( bool bReplace ) { mbReplaceLeadingSingleQuotationMark = bReplace; }
bool IsReplaceLeadingSingleQuotationMark() const { return mbReplaceLeadingSingleQuotationMark; }
};
inline EPaM ImpEditEngine::CreateEPaM( const EditPaM& rPaM )
......
......@@ -102,7 +102,8 @@ ImpEditEngine::ImpEditEngine( EditEngine* pEE, SfxItemPool* pItemPool ) :
bCallParaInsertedOrDeleted(false),
bImpConvertFirstCall(false),
bFirstWordCapitalization(true),
mbLastTryMerge(false)
mbLastTryMerge(false),
mbReplaceLeadingSingleQuotationMark(true)
{
pEditEngine = pEE;
pRefDev = nullptr;
......@@ -2464,6 +2465,14 @@ void ImpEditEngine::ImpRemoveParagraph( sal_Int32 nPara )
EditPaM ImpEditEngine::AutoCorrect( const EditSelection& rCurSel, sal_Unicode c,
bool bOverwrite, vcl::Window* pFrameWin )
{
// i.e. Calc has special needs regarding a leading single quotation mark
// when starting cell input.
if (c == '\'' && !IsReplaceLeadingSingleQuotationMark() &&
rCurSel.Min() == rCurSel.Max() && rCurSel.Max().GetIndex() == 0)
{
return InsertTextUserInput( rCurSel, c, bOverwrite );
}
EditSelection aSel( rCurSel );
SvxAutoCorrect* pAutoCorrect = SvxAutoCorrCfg::Get().GetAutoCorrect();
if ( pAutoCorrect )
......
......@@ -527,6 +527,10 @@ public:
/// specifies if auto-correction should capitalize the first word or not (default is on)
void SetFirstWordCapitalization( bool bCapitalize );
/** specifies if auto-correction should replace a leading single quotation
mark (apostrophe) or not (default is on) */
void SetReplaceLeadingSingleQuotationMark( bool bReplace );
EditDoc& GetEditDoc();
const EditDoc& GetEditDoc() const;
......
......@@ -730,6 +730,7 @@ void ScInputHandler::ImplCreateEditEngine()
pEditDefaults = new SfxItemSet( pEngine->GetEmptyItemSet() );
pEngine->SetControlWord( pEngine->GetControlWord() | EEControlBits::AUTOCORRECT );
pEngine->SetReplaceLeadingSingleQuotationMark( false );
pEngine->SetModifyHdl( LINK( this, ScInputHandler, ModifyHdl ) );
}
}
......
......@@ -1299,6 +1299,7 @@ void ScTextWnd::InitEditEngine()
pEditEngine->SetPaperSize( PixelToLogic(Size(barSize.Width(),10000)) );
pEditEngine->SetWordDelimiters(
ScEditUtil::ModifyDelimiters( pEditEngine->GetWordDelimiters() ) );
pEditEngine->SetReplaceLeadingSingleQuotationMark( false );
UpdateAutoCorrFlag();
......
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