diff options
author | Tsutomu Uchino <hanya@apache.org> | 2014-01-10 11:47:19 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2014-01-11 15:02:39 +0000 |
commit | 10e3880eb10d8e5c08bd7a254577ba4b0bd25534 (patch) | |
tree | 8058e1213542074795f7c4d2b5a8a0c6d4f67759 /sc | |
parent | e9b653f780a60e8d302c8981ba58ef2f66a52811 (diff) |
Resolves: #i42309# change behavior for equal button of input line...
according to the current content of the cell
(cherry picked from commit ff1d1ea1f5f15ce7888957d09f4783d8055c7654)
Conflicts:
sc/source/ui/app/inputwin.cxx
Change-Id: I054aa55de14e2dec5a9ace1124d7eb6aa261162f
Diffstat (limited to 'sc')
-rw-r--r-- | sc/source/ui/app/inputwin.cxx | 36 |
1 files changed, 34 insertions, 2 deletions
diff --git a/sc/source/ui/app/inputwin.cxx b/sc/source/ui/app/inputwin.cxx index 040727636070..5f7b032d6132 100644 --- a/sc/source/ui/app/inputwin.cxx +++ b/sc/source/ui/app/inputwin.cxx @@ -510,12 +510,44 @@ void ScInputWindow::Select() if ( pScMod->IsEditMode() ) // nicht, wenn z.B. geschuetzt { aTextWindow.StartEditEngine(); - aTextWindow.SetTextString(OUString('=')); + + sal_Int32 nStartPos = 1; + sal_Int32 nEndPos = 1; + + ScTabViewShell* pViewSh = PTR_CAST( ScTabViewShell, SfxViewShell::Current() ); + if ( pViewSh ) + { + const OUString& rString = aTextWindow.GetTextString(); + const sal_Int32 nLen = rString.getLength(); + + ScDocument* pDoc = pViewSh->GetViewData()->GetDocument(); + CellType eCellType = pDoc->GetCellType( pViewSh->GetViewData()->GetCurPos() ); + switch ( eCellType ) + { + case CELLTYPE_VALUE: + { + nEndPos = nLen + 1; + aTextWindow.SetTextString("=" + rString); + break; + } + case CELLTYPE_STRING: + case CELLTYPE_EDIT: + nStartPos = 0; + nEndPos = nLen; + break; + case CELLTYPE_FORMULA: + nEndPos = nLen; + break; + default: + aTextWindow.SetTextString("="); + break; + } + } EditView* pView = aTextWindow.GetEditView(); if (pView) { - pView->SetSelection( ESelection(0,1, 0,1) ); + pView->SetSelection( ESelection(0, nStartPos, 0, nEndPos) ); pScMod->InputChanged(pView); SetOkCancelMode(); pView->SetEditEngineUpdateMode(sal_True); |