summaryrefslogtreecommitdiff
path: root/sc/source/ui
diff options
context:
space:
mode:
authorKohei Yoshida <kyoshida@novell.com>2011-03-04 22:30:39 -0500
committerKohei Yoshida <kyoshida@novell.com>2011-03-05 15:21:08 -0500
commit726a7d3893d49214ca5ef955beb30dcd49b67dd0 (patch)
tree5a987b7544125138cd24d8d490a41837dfe1e58b /sc/source/ui
parente40df3cb083c365d542395b4b48f575ff287b277 (diff)
More on adjusting for ScRangeName's new API.
Diffstat (limited to 'sc/source/ui')
-rw-r--r--sc/source/ui/docshell/docfunc.cxx22
-rw-r--r--sc/source/ui/miscdlgs/namepast.cxx22
-rw-r--r--sc/source/ui/namedlg/namedlg.cxx38
-rw-r--r--sc/source/ui/undo/undoblk3.cxx46
-rw-r--r--sc/source/ui/unoobj/nameuno.cxx39
-rw-r--r--sc/source/ui/vba/vbarange.cxx18
-rw-r--r--sc/source/ui/view/cellsh1.cxx16
7 files changed, 84 insertions, 117 deletions
diff --git a/sc/source/ui/docshell/docfunc.cxx b/sc/source/ui/docshell/docfunc.cxx
index ea2722675ee8..5add28194215 100644
--- a/sc/source/ui/docshell/docfunc.cxx
+++ b/sc/source/ui/docshell/docfunc.cxx
@@ -4691,17 +4691,13 @@ BOOL ScDocFunc::InsertNameList( const ScAddress& rStartPos, BOOL bApi )
ScRangeName* pList = pDoc->GetRangeName();
USHORT nValidCount = 0;
- USHORT i;
- USHORT nCount = pList->size();
-#if NEW_RANGE_NAME
-#else
- for (i=0; i<nCount; i++)
+ ScRangeName::iterator itrBeg = pList->begin(), itrEnd = pList->end();
+ for (ScRangeName::iterator itr = itrBeg; itr != itrEnd; ++itr)
{
- ScRangeData* pData = (*pList)[i];
- if ( !pData->HasType( RT_DATABASE ) && !pData->HasType( RT_SHARED ) )
+ const ScRangeData& r = *itr;
+ if (r.HasType(RT_DATABASE && !r.HasType(RT_SHARED)))
++nValidCount;
}
-#endif
if (nValidCount)
{
@@ -4725,11 +4721,11 @@ BOOL ScDocFunc::InsertNameList( const ScAddress& rStartPos, BOOL bApi )
ScRangeData** ppSortArray = new ScRangeData* [ nValidCount ];
USHORT j = 0;
- for (i=0; i<nCount; i++)
+ for (ScRangeName::iterator itr = itrBeg; itr != itrEnd; ++itr)
{
- ScRangeData* pData = (*pList)[i];
- if ( !pData->HasType( RT_DATABASE ) && !pData->HasType( RT_SHARED ) )
- ppSortArray[j++] = pData;
+ ScRangeData& r = *itr;
+ if (!r.HasType(RT_DATABASE) && !r.HasType(RT_SHARED))
+ ppSortArray[j++] = &r;
}
#ifndef ICC
qsort( (void*)ppSortArray, nValidCount, sizeof(ScRangeData*),
@@ -4772,7 +4768,7 @@ BOOL ScDocFunc::InsertNameList( const ScAddress& rStartPos, BOOL bApi )
if (!AdjustRowHeight(ScRange(0,nStartRow,nTab,MAXCOL,nEndRow,nTab)))
rDocShell.PostPaint( nStartCol,nStartRow,nTab, nEndCol,nEndRow,nTab, PAINT_GRID );
-//! rDocShell.UpdateOle(GetViewData());
+
aModificator.SetDocumentModified();
bDone = TRUE;
}
diff --git a/sc/source/ui/miscdlgs/namepast.cxx b/sc/source/ui/miscdlgs/namepast.cxx
index e9c2bb416051..ea17b22bd4f2 100644
--- a/sc/source/ui/miscdlgs/namepast.cxx
+++ b/sc/source/ui/miscdlgs/namepast.cxx
@@ -60,26 +60,12 @@ ScNamePasteDlg::ScNamePasteDlg( Window * pParent, const ScRangeName* pList, BOOL
aNameList.SetSelectHdl( LINK( this,ScNamePasteDlg,ListSelHdl) );
aNameList.SetDoubleClickHdl( LINK( this,ScNamePasteDlg,ListDblClickHdl) );
-#if NEW_RANGE_NAME
-#else
- USHORT nCnt = pList->GetCount();
- String aText;
-
- for( USHORT i=0 ; i<nCnt ; i++ )
+ ScRangeName::const_iterator itr = pList->begin(), itrEnd = pList->end();
+ for (; itr != itrEnd; ++itr)
{
- const ScRangeData* pData = (*pList)[ i ];
-
- if( pData )
- {
- if ( !pData->HasType( RT_DATABASE )
- && !pData->HasType( RT_SHARED ) )
- {
- pData->GetName( aText );
- aNameList.InsertEntry( aText );
- }
- }
+ if (!itr->HasType(RT_DATABASE) && !itr->HasType(RT_SHARED))
+ aNameList.InsertEntry(itr->GetName());
}
-#endif
ListSelHdl( &aNameList );
diff --git a/sc/source/ui/namedlg/namedlg.cxx b/sc/source/ui/namedlg/namedlg.cxx
index 7af7ef822ca3..b3b90a352910 100644
--- a/sc/source/ui/namedlg/namedlg.cxx
+++ b/sc/source/ui/namedlg/namedlg.cxx
@@ -314,47 +314,31 @@ void ScNameDlg::UpdateChecks()
void ScNameDlg::UpdateNames()
{
-#if NEW_RANGE_NAME
-#else
- USHORT nRangeCount = aLocalRangeName.GetCount();
-
aEdName.SetUpdateMode( FALSE );
- //-----------------------------------------------------------
USHORT nNamePos = aEdName.GetTopEntry();
aEdName.Clear();
aEdAssign.SetText( EMPTY_STRING );
- if ( nRangeCount > 0 )
- {
- ScRangeData* pRangeData = NULL;
- String aString;
-
- for ( USHORT i=0; i<nRangeCount; i++ )
- {
- pRangeData = (ScRangeData*)(aLocalRangeName.At( i ));
- if ( pRangeData )
- {
- if ( !pRangeData->HasType( RT_DATABASE )
- && !pRangeData->HasType( RT_SHARED ) )
- {
- pRangeData->GetName( aString );
- aEdName.InsertEntry( aString );
- }
- }
- }
- }
- else
+ if (aLocalRangeName.empty())
{
aBtnAdd.SetText( aStrAdd );
aBtnAdd.Disable();
aBtnRemove.Disable();
}
- //-----------------------------------------------------------
+ else
+ {
+ ScRangeName::const_iterator itr = aLocalRangeName.begin(), itrEnd = aLocalRangeName.end();
+ for (; itr != itrEnd; ++itr)
+ {
+ if (!itr->HasType(RT_DATABASE) && !itr->HasType(RT_SHARED))
+ aEdName.InsertEntry(itr->GetName());
+ }
+ }
+
aEdName.SetUpdateMode( TRUE );
aEdName.SetTopEntry(nNamePos);
aEdName.Invalidate();
-#endif
}
diff --git a/sc/source/ui/undo/undoblk3.cxx b/sc/source/ui/undo/undoblk3.cxx
index dc351ab7569c..f5b766b17a7d 100644
--- a/sc/source/ui/undo/undoblk3.cxx
+++ b/sc/source/ui/undo/undoblk3.cxx
@@ -629,7 +629,7 @@ ScUndoAutoFill::ScUndoAutoFill( ScDocShell* pNewDocShell,
ScUndoAutoFill::~ScUndoAutoFill()
{
- pDocShell->GetDocument()->EraseNonUsedSharedNames(nMaxSharedIndex);
+ pDocShell->GetDocument()->EraseNonUsedSharedNames();
delete pUndoDoc;
}
@@ -652,8 +652,25 @@ void ScUndoAutoFill::SetChangeTrack()
nStartChangeAction = nEndChangeAction = 0;
}
+namespace {
-//----------------------------------------------------------------------------
+bool eraseNameContaining(ScRangeName& rNames, const rtl::OUString& rCriteria)
+{
+ ScRangeName::iterator itr = rNames.begin(), itrEnd = rNames.end();
+ for (; itr != itrEnd; ++itr)
+ {
+ rtl::OUString aRName = itr->GetName();
+ if (aRName.indexOf(rCriteria) >= 0)
+ {
+ // Criteria found. Erase this.
+ rNames.erase(itr);
+ return true;
+ }
+ }
+ return false;
+}
+
+}
void ScUndoAutoFill::Undo()
{
@@ -693,24 +710,17 @@ void ScUndoAutoFill::Undo()
aName += String::CreateFromInt32(nMaxSharedIndex);
aName += '_';
ScRangeName* pRangeName = pDoc->GetRangeName();
- BOOL bHasFound = FALSE;
-#if NEW_RANGE_NAME
-#else
- for (USHORT i = 0; i < pRangeName->GetCount(); i++)
+ bool bHasFound = false;
+ // Remove all range names that contain ___SC_...
+ while (true)
{
- ScRangeData* pRangeData = (*pRangeName)[i];
- if (pRangeData)
- {
- String aRName;
- pRangeData->GetName(aRName);
- if (aRName.Search(aName) != STRING_NOTFOUND)
- {
- pRangeName->AtFree(i);
- bHasFound = TRUE;
- }
- }
+ bool bErased = eraseNameContaining(*pRangeName, aName);
+ if (bErased)
+ bHasFound = true;
+ else
+ break;
}
-#endif
+
if (bHasFound)
pRangeName->SetSharedMaxIndex(pRangeName->GetSharedMaxIndex()-1);
diff --git a/sc/source/ui/unoobj/nameuno.cxx b/sc/source/ui/unoobj/nameuno.cxx
index f77c9e6c900f..6d10ae67110c 100644
--- a/sc/source/ui/unoobj/nameuno.cxx
+++ b/sc/source/ui/unoobj/nameuno.cxx
@@ -99,6 +99,13 @@ sal_Bool lcl_UserVisibleName( const ScRangeData* pData )
return ( pData && !pData->HasType( RT_DATABASE ) && !pData->HasType( RT_SHARED ) );
}
+bool lcl_UserVisibleName( const ScRangeData& rData )
+{
+ //! als Methode an ScRangeData
+
+ return !rData.HasType(RT_DATABASE) && !rData.HasType(RT_SHARED);
+}
+
//------------------------------------------------------------------------
ScNamedRangeObj::ScNamedRangeObj(ScNamedRangesObj* pParent, ScDocShell* pDocSh, const String& rNm) :
@@ -521,27 +528,23 @@ bool ScNamedRangesObj::IsModifyAndBroadcast() const
ScNamedRangeObj* ScNamedRangesObj::GetObjectByIndex_Impl(sal_uInt16 nIndex)
{
- if (pDocShell)
+ if (!pDocShell)
+ return NULL;
+
+ ScRangeName* pNames = pDocShell->GetDocument()->GetRangeName();
+ if (!pNames)
+ return NULL;
+
+ ScRangeName::const_iterator itr = pNames->begin(), itrEnd = pNames->end();
+ sal_uInt16 nPos = 0;
+ for (; itr != itrEnd; ++itr)
{
- ScRangeName* pNames = pDocShell->GetDocument()->GetRangeName();
- if (pNames)
+ if (lcl_UserVisibleName(*itr))
{
-#if NEW_RANGE_NAME
-#else
- sal_uInt16 nCount = pNames->GetCount();
- sal_uInt16 nPos = 0;
- for (sal_uInt16 i=0; i<nCount; i++)
- {
- ScRangeData* pData = (*pNames)[i];
- if (lcl_UserVisibleName(pData)) // interne weglassen
- {
- if ( nPos == nIndex )
- return new ScNamedRangeObj(this, pDocShell, pData->GetName());
- ++nPos;
- }
- }
-#endif
+ if (nPos == nIndex)
+ return new ScNamedRangeObj(this, pDocShell, itr->GetName());
}
+ ++nPos;
}
return NULL;
}
diff --git a/sc/source/ui/vba/vbarange.cxx b/sc/source/ui/vba/vbarange.cxx
index b3c498d41e37..3dd34ca7854e 100644
--- a/sc/source/ui/vba/vbarange.cxx
+++ b/sc/source/ui/vba/vbarange.cxx
@@ -6002,7 +6002,6 @@ uno::Any SAL_CALL ScVbaRange::AdvancedFilter( sal_Int32 Action, const uno::Any&
// CriteriaRange
String aBuiltInCriteria; // Excel Built-In Filter Criteria.
- ScRangeData* pData = NULL;
table::CellRangeAddress refParentAddr;
uno::Any aCriteriaRange = CriteriaRange;
formula::FormulaGrammar::AddressConvention aConv = formula::FormulaGrammar::CONV_XL_A1;
@@ -6016,19 +6015,18 @@ uno::Any SAL_CALL ScVbaRange::AdvancedFilter( sal_Int32 Action, const uno::Any&
{
// Get Excel BuiltIn Filter Criteria.
ScRangeName* pRangeNames = pDoc->GetRangeName();
-#if NEW_RANGE_NAME
-#else
- const USHORT nCount = pRangeNames ? pRangeNames->GetCount() : 0;
- for ( USHORT index = 0; index < nCount; index++ )
+ if (pRangeNames)
{
- pData = ( ScRangeData* )( pRangeNames->At( index ) );
- if ( pData && pData->HasType( RT_CRITERIA ) )
+ ScRangeName::const_iterator itr = pRangeNames->begin(), itrEnd = pRangeNames->end();
+ for (; itr != itrEnd; ++itr)
{
- pData->GetSymbol( aBuiltInCriteria, formula::FormulaGrammar::GRAM_NATIVE_XL_A1 );
- break;
+ if (itr->HasType(RT_CRITERIA))
+ {
+ itr->GetSymbol( aBuiltInCriteria, formula::FormulaGrammar::GRAM_NATIVE_XL_A1 );
+ break;
+ }
}
}
-#endif
aCriteriaRange = aBuiltInCriteria.Len() > 0 ? uno::makeAny( rtl::OUString( aBuiltInCriteria ) ) : aCriteriaRange;
}
if ( aCriteriaRange.hasValue() )
diff --git a/sc/source/ui/view/cellsh1.cxx b/sc/source/ui/view/cellsh1.cxx
index cd080d49802f..059d27fa2649 100644
--- a/sc/source/ui/view/cellsh1.cxx
+++ b/sc/source/ui/view/cellsh1.cxx
@@ -2161,19 +2161,9 @@ void ScCellShell::ExecuteDataPilotDialog()
ScRangeName* pRangeName = pDoc->GetRangeName();
if (pRangeName)
{
-#if NEW_RANGE_NAME
-#else
- USHORT n = pRangeName->GetCount();
- for (USHORT i = 0; i < n; ++i)
- {
- ScRangeData* p = (*pRangeName)[i];
- if (!p)
- // This shouldn't happen, but just in case....
- continue;
-
- pTypeDlg->AppendNamedRange(p->GetName());
- }
-#endif
+ ScRangeName::const_iterator itr = pRangeName->begin(), itrEnd = pRangeName->end();
+ for (; itr != itrEnd; ++itr)
+ pTypeDlg->AppendNamedRange(itr->GetName());
}
DBG_ASSERT(pTypeDlg, "Dialog create fail!");