[Libreoffice-commits] core.git: Branch 'libreoffice-5-1-6' - editeng/source include/editeng sc/source
Eike Rathke
erack at redhat.com
Tue Oct 18 06:29:29 UTC 2016
editeng/source/editeng/editeng.cxx | 5 +++++
editeng/source/editeng/impedit.hxx | 6 ++++++
editeng/source/editeng/impedit2.cxx | 11 ++++++++++-
include/editeng/editeng.hxx | 4 ++++
sc/source/ui/app/inputhdl.cxx | 1 +
sc/source/ui/app/inputwin.cxx | 1 +
6 files changed, 27 insertions(+), 1 deletion(-)
New commits:
commit 651a111cf810185990680191a38daec39519f2aa
Author: Eike Rathke <erack at redhat.com>
Date: Wed May 18 15:50:20 2016 +0200
Resolves: tdf#99930 SetReplaceLeadingSingleQuotationMark(false) for Calc
(cherry picked from commit 48d0affa114d6838c0e99f3f3588dd611a4a2b72)
Backported.
Call to InsertTextUserInput() changed to InsertText()
Change-Id: I29906de6a4075b7de82bd6e16560b56b9b648e91
Reviewed-on: https://gerrit.libreoffice.org/29760
Reviewed-by: V Stuart Foote <vstuart.foote at utsa.edu>
Reviewed-by: jan iversen <jani at documentfoundation.org>
Tested-by: jan iversen <jani at documentfoundation.org>
diff --git a/editeng/source/editeng/editeng.cxx b/editeng/source/editeng/editeng.cxx
index 95636f3..44820bd 100644
--- a/editeng/source/editeng/editeng.cxx
+++ b/editeng/source/editeng/editeng.cxx
@@ -2719,6 +2719,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();
diff --git a/editeng/source/editeng/impedit.hxx b/editeng/source/editeng/impedit.hxx
index 40bb0f7..710176c 100644
--- a/editeng/source/editeng/impedit.hxx
+++ b/editeng/source/editeng/impedit.hxx
@@ -515,6 +515,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...
@@ -1024,6 +1025,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 )
diff --git a/editeng/source/editeng/impedit2.cxx b/editeng/source/editeng/impedit2.cxx
index 1ae1dd8..b4f2c42 100644
--- a/editeng/source/editeng/impedit2.cxx
+++ b/editeng/source/editeng/impedit2.cxx
@@ -101,7 +101,8 @@ ImpEditEngine::ImpEditEngine( EditEngine* pEE, SfxItemPool* pItemPool ) :
bCallParaInsertedOrDeleted(false),
bImpConvertFirstCall(false),
bFirstWordCapitalization(true),
- mbLastTryMerge(false)
+ mbLastTryMerge(false),
+ mbReplaceLeadingSingleQuotationMark(true)
{
pEditEngine = pEE;
pRefDev = nullptr;
@@ -2472,6 +2473,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 InsertText( rCurSel, c, bOverwrite );
+ }
+
EditSelection aSel( rCurSel );
SvxAutoCorrect* pAutoCorrect = SvxAutoCorrCfg::Get().GetAutoCorrect();
if ( pAutoCorrect )
diff --git a/include/editeng/editeng.hxx b/include/editeng/editeng.hxx
index 11e1203..19f454a 100644
--- a/include/editeng/editeng.hxx
+++ b/include/editeng/editeng.hxx
@@ -531,6 +531,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;
diff --git a/sc/source/ui/app/inputhdl.cxx b/sc/source/ui/app/inputhdl.cxx
index 2395cba..3372d57 100644
--- a/sc/source/ui/app/inputhdl.cxx
+++ b/sc/source/ui/app/inputhdl.cxx
@@ -634,6 +634,7 @@ void ScInputHandler::ImplCreateEditEngine()
pEditDefaults = new SfxItemSet( pEngine->GetEmptyItemSet() );
pEngine->SetControlWord( pEngine->GetControlWord() | EEControlBits::AUTOCORRECT );
+ pEngine->SetReplaceLeadingSingleQuotationMark( false );
pEngine->SetModifyHdl( LINK( this, ScInputHandler, ModifyHdl ) );
}
diff --git a/sc/source/ui/app/inputwin.cxx b/sc/source/ui/app/inputwin.cxx
index cd15f3d..b852fa3 100644
--- a/sc/source/ui/app/inputwin.cxx
+++ b/sc/source/ui/app/inputwin.cxx
@@ -1337,6 +1337,7 @@ void ScMultiTextWnd::InitEditEngine()
pEditEngine->SetPaperSize( PixelToLogic(Size(barSize.Width(),10000)) );
pEditEngine->SetWordDelimiters(
ScEditUtil::ModifyDelimiters( pEditEngine->GetWordDelimiters() ) );
+ pEditEngine->SetReplaceLeadingSingleQuotationMark( false );
UpdateAutoCorrFlag();
More information about the Libreoffice-commits
mailing list