summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
authorTsutomu Uchino <hanya@apache.org>2014-01-10 11:47:19 +0000
committerCaolán McNamara <caolanm@redhat.com>2014-01-11 15:02:39 +0000
commit10e3880eb10d8e5c08bd7a254577ba4b0bd25534 (patch)
tree8058e1213542074795f7c4d2b5a8a0c6d4f67759 /sc
parente9b653f780a60e8d302c8981ba58ef2f66a52811 (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.cxx36
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);