summaryrefslogtreecommitdiff
path: root/sc/source/ui/app/inputwin.cxx
diff options
context:
space:
mode:
authorJens-Heiner Rechtien <hr@openoffice.org>2007-07-31 15:36:58 +0000
committerJens-Heiner Rechtien <hr@openoffice.org>2007-07-31 15:36:58 +0000
commit27dfef99641d01aab3304c4fafd96694189f2992 (patch)
tree5f192215f5f7d1902ddcb4fff688c2743908e26e /sc/source/ui/app/inputwin.cxx
parenta4899d9573b986762d0c104e3739e1ebf77fdecf (diff)
INTEGRATION: CWS calc43 (1.53.34); FILE MERGED
2007/07/19 10:04:56 tbe 1.53.34.1: #i79570# Calc: AutoSum when marking text data only
Diffstat (limited to 'sc/source/ui/app/inputwin.cxx')
-rw-r--r--sc/source/ui/app/inputwin.cxx49
1 files changed, 26 insertions, 23 deletions
diff --git a/sc/source/ui/app/inputwin.cxx b/sc/source/ui/app/inputwin.cxx
index 541ec053a..cd029ea7e 100644
--- a/sc/source/ui/app/inputwin.cxx
+++ b/sc/source/ui/app/inputwin.cxx
@@ -4,9 +4,9 @@
*
* $RCSfile: inputwin.cxx,v $
*
- * $Revision: 1.53 $
+ * $Revision: 1.54 $
*
- * last change: $Author: kz $ $Date: 2007-06-20 13:32:39 $
+ * last change: $Author: hr $ $Date: 2007-07-31 16:36:58 $
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
@@ -97,8 +97,6 @@
#include "AccessibleText.hxx"
#endif
-#include <boost/scoped_ptr.hpp>
-
#define TEXT_STARTPOS 3
#define THESIZE 1000000 //!!! langt... :-)
#define TBX_WINDOW_HEIGHT 22 // in Pixeln - fuer alle Systeme gleich?
@@ -391,19 +389,19 @@ void __EXPORT ScInputWindow::Select()
ScTabViewShell* pViewSh = PTR_CAST( ScTabViewShell, SfxViewShell::Current() );
if ( pViewSh )
{
- ScMarkData& rMark = pViewSh->GetViewData()->GetMarkData();
+ const ScMarkData& rMark = pViewSh->GetViewData()->GetMarkData();
if ( rMark.IsMarked() || rMark.IsMultiMarked() )
{
- boost::scoped_ptr< ScRangeList > pMarkRangeList( new ScRangeList() );
- rMark.FillRangeListWithMarks( pMarkRangeList.get(), FALSE );
+ ScRangeList aMarkRangeList;
+ rMark.FillRangeListWithMarks( &aMarkRangeList, FALSE );
ScDocument* pDoc = pViewSh->GetViewData()->GetDocument();
// check if one of the marked ranges is empty
bool bEmpty = false;
- ULONG nCount = pMarkRangeList->Count();
+ const ULONG nCount = aMarkRangeList.Count();
for ( ULONG i = 0; i < nCount; ++i )
{
- ScRange aRange( *pMarkRangeList->GetObject( i ) );
+ const ScRange aRange( *aMarkRangeList.GetObject( i ) );
if ( pDoc->IsBlockEmpty( aRange.aStart.Tab(),
aRange.aStart.Col(), aRange.aStart.Row(),
aRange.aEnd.Col(), aRange.aEnd.Row() ) )
@@ -415,24 +413,29 @@ void __EXPORT ScInputWindow::Select()
if ( bEmpty )
{
- boost::scoped_ptr< ScRangeList > pRangeList( new ScRangeList() );
- BOOL bDataFound = pViewSh->GetAutoSumArea( *pRangeList );
+ ScRangeList aRangeList;
+ const BOOL bDataFound = pViewSh->GetAutoSumArea( aRangeList );
if ( bDataFound )
{
- sal_Bool bSubTotal( UseSubTotal( pRangeList.get() ) );
- pViewSh->EnterAutoSum( *pRangeList, bSubTotal ); // Block mit Summen fuellen
+ const sal_Bool bSubTotal( UseSubTotal( &aRangeList ) );
+ pViewSh->EnterAutoSum( aRangeList, bSubTotal ); // Block mit Summen fuellen
}
}
else
{
- sal_Bool bSubTotal( UseSubTotal( pMarkRangeList.get() ) );
+ const sal_Bool bSubTotal( UseSubTotal( &aMarkRangeList ) );
for ( ULONG i = 0; i < nCount; ++i )
{
- ScRange aRange( *pMarkRangeList->GetObject( i ) );
- bool bSetCursor = ( i == nCount - 1 ? true : false );
- bool bContinue = ( i != 0 ? true : false );
+ const ScRange aRange( *aMarkRangeList.GetObject( i ) );
+ const bool bSetCursor = ( i == nCount - 1 ? true : false );
+ const bool bContinue = ( i != 0 ? true : false );
if ( !pViewSh->AutoSum( aRange, bSubTotal, bSetCursor, bContinue ) )
{
+ pViewSh->MarkRange( aRange, FALSE, FALSE );
+ pViewSh->SetCursor( aRange.aEnd.Col(), aRange.aEnd.Row() );
+ const ScRangeList aRangeList;
+ const String aFormula = pViewSh->GetAutoSumFormula( aRangeList, bSubTotal );
+ SetFuncString( aFormula );
break;
}
}
@@ -440,10 +443,10 @@ void __EXPORT ScInputWindow::Select()
}
else // nur in Eingabezeile einfuegen
{
- boost::scoped_ptr< ScRangeList > pRangeList( new ScRangeList() );
- BOOL bDataFound = pViewSh->GetAutoSumArea( *pRangeList );
- sal_Bool bSubTotal( UseSubTotal( pRangeList.get() ) );
- String aFormula = pViewSh->GetAutoSumFormula( *pRangeList, bSubTotal );
+ ScRangeList aRangeList;
+ const BOOL bDataFound = pViewSh->GetAutoSumArea( aRangeList );
+ const sal_Bool bSubTotal( UseSubTotal( &aRangeList ) );
+ const String aFormula = pViewSh->GetAutoSumFormula( aRangeList, bSubTotal );
SetFuncString( aFormula );
if ( bDataFound && pScMod->IsEditMode() )
@@ -455,8 +458,8 @@ void __EXPORT ScInputWindow::Select()
//! SetSelection am InputHandler ???
//! bSelIsRef setzen ???
- xub_StrLen nOpen = aFormula.Search('(');
- xub_StrLen nLen = aFormula.Len();
+ const xub_StrLen nOpen = aFormula.Search('(');
+ const xub_StrLen nLen = aFormula.Len();
if ( nOpen != STRING_NOTFOUND && nLen > nOpen )
{
sal_uInt8 nAdd(1);