diff options
author | Kohei Yoshida <kyoshida@novell.com> | 2011-03-04 22:30:39 -0500 |
---|---|---|
committer | Kohei Yoshida <kyoshida@novell.com> | 2011-03-05 15:21:08 -0500 |
commit | 726a7d3893d49214ca5ef955beb30dcd49b67dd0 (patch) | |
tree | 5a987b7544125138cd24d8d490a41837dfe1e58b /sc/source/ui | |
parent | e40df3cb083c365d542395b4b48f575ff287b277 (diff) |
More on adjusting for ScRangeName's new API.
Diffstat (limited to 'sc/source/ui')
-rw-r--r-- | sc/source/ui/docshell/docfunc.cxx | 22 | ||||
-rw-r--r-- | sc/source/ui/miscdlgs/namepast.cxx | 22 | ||||
-rw-r--r-- | sc/source/ui/namedlg/namedlg.cxx | 38 | ||||
-rw-r--r-- | sc/source/ui/undo/undoblk3.cxx | 46 | ||||
-rw-r--r-- | sc/source/ui/unoobj/nameuno.cxx | 39 | ||||
-rw-r--r-- | sc/source/ui/vba/vbarange.cxx | 18 | ||||
-rw-r--r-- | sc/source/ui/view/cellsh1.cxx | 16 |
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!"); |