diff options
author | Kohei Yoshida <kyoshida@novell.com> | 2011-03-04 17:48:32 -0500 |
---|---|---|
committer | Kohei Yoshida <kyoshida@novell.com> | 2011-03-05 15:21:07 -0500 |
commit | e422d9efc36407cae4220c025a4c2d8e8de14be9 (patch) | |
tree | f166728385f95f4152212e36d28a5b685100a60b | |
parent | b2d3a5e2a3e5870778af63a30d7f3e6322294d06 (diff) |
Removed SearchName() in favor of findByName().
-rw-r--r-- | sc/inc/rangenam.hxx | 3 | ||||
-rw-r--r-- | sc/source/core/data/documen2.cxx | 5 | ||||
-rw-r--r-- | sc/source/core/data/document.cxx | 3 | ||||
-rw-r--r-- | sc/source/core/tool/interpr1.cxx | 12 | ||||
-rw-r--r-- | sc/source/core/tool/rangenam.cxx | 17 | ||||
-rw-r--r-- | sc/source/core/tool/rangeutl.cxx | 8 | ||||
-rw-r--r-- | sc/source/filter/excel/xiname.cxx | 3 | ||||
-rw-r--r-- | sc/source/filter/html/htmlimp.cxx | 15 | ||||
-rw-r--r-- | sc/source/filter/rtf/eeimpars.cxx | 3 | ||||
-rw-r--r-- | sc/source/filter/xml/xmlexprt.cxx | 5 | ||||
-rw-r--r-- | sc/source/ui/app/inputwin.cxx | 3 | ||||
-rw-r--r-- | sc/source/ui/docshell/arealink.cxx | 12 | ||||
-rw-r--r-- | sc/source/ui/docshell/docfunc.cxx | 13 | ||||
-rw-r--r-- | sc/source/ui/docshell/docsh4.cxx | 5 | ||||
-rw-r--r-- | sc/source/ui/docshell/impex.cxx | 5 | ||||
-rw-r--r-- | sc/source/ui/docshell/servobj.cxx | 5 | ||||
-rw-r--r-- | sc/source/ui/inc/namedlg.hxx | 2 | ||||
-rw-r--r-- | sc/source/ui/namedlg/namedlg.cxx | 51 | ||||
-rw-r--r-- | sc/source/ui/navipi/content.cxx | 8 | ||||
-rw-r--r-- | sc/source/ui/unoobj/nameuno.cxx | 46 | ||||
-rw-r--r-- | sc/source/ui/view/viewfunc.cxx | 8 |
21 files changed, 107 insertions, 125 deletions
diff --git a/sc/inc/rangenam.hxx b/sc/inc/rangenam.hxx index b81f9fb28ec4..914f185e9f81 100644 --- a/sc/inc/rangenam.hxx +++ b/sc/inc/rangenam.hxx @@ -196,7 +196,7 @@ public: SC_DLLPUBLIC ScRangeData* operator[](sal_uInt16 nIndex); SC_DLLPUBLIC const ScRangeData* operator[](sal_uInt16 nIndex) const; SC_DLLPUBLIC const ScRangeData* GetRangeAtBlock(const ScRange& rRange) const; - SC_DLLPUBLIC bool SearchName(const rtl::OUString& rName, sal_uInt16& rPos) const; + SC_DLLPUBLIC ScRangeData* findByName(const rtl::OUString& rName); SC_DLLPUBLIC const ScRangeData* findByName(const rtl::OUString& rName) const; const ScRangeData* findByUpperName(const rtl::OUString& rName) const; bool SearchNameUpper(const rtl::OUString& rUpperName, sal_uInt16& rPos) const; @@ -212,6 +212,7 @@ public: SC_DLLPUBLIC size_t size() const; SC_DLLPUBLIC bool Insert(ScRangeData* p); void AtFree(size_t i); + void erase(const ScRangeData& r); void FreeAll(); void clear(); SC_DLLPUBLIC ScRangeData* At(size_t i); diff --git a/sc/source/core/data/documen2.cxx b/sc/source/core/data/documen2.cxx index 3db0d907439b..a0caf210f2db 100644 --- a/sc/source/core/data/documen2.cxx +++ b/sc/source/core/data/documen2.cxx @@ -981,14 +981,13 @@ ULONG ScDocument::TransferTab( ScDocument* pSrcDoc, SCTAB nSrcPos, bool bInUse = ( aUsedNames.find(nOldIndex) != aUsedNames.end() ); if (bInUse) { - USHORT nExisting = 0; - if ( pRangeName->SearchName( pSrcData->GetName(), nExisting ) ) + const ScRangeData* pExistingData = pRangeName->findByName(pSrcData->GetName()); + if (pExistingData) { // the name exists already in the destination document // -> use the existing name, but show a warning // (when refreshing links, the existing name is used and the warning not shown) - ScRangeData* pExistingData = (*pRangeName)[nExisting]; USHORT nExistingIndex = pExistingData->GetIndex(); pSrcRangeNames[i] = NULL; // don't modify the named range diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx index 21a096c17297..04954ab66d51 100644 --- a/sc/source/core/data/document.cxx +++ b/sc/source/core/data/document.cxx @@ -1838,6 +1838,8 @@ void ScDocument::MergeNumberFormatter(ScDocument* pSrcDoc) void ScDocument::CopyRangeNamesFromClip(ScDocument* pClipDoc, ScClipRangeNameData& rRangeNames) { +#if NEW_RANGE_NAME +#else sal_uInt16 nClipRangeNameCount = pClipDoc->pRangeName->GetCount(); ScClipRangeNameData aClipRangeNames; @@ -1889,6 +1891,7 @@ void ScDocument::CopyRangeNamesFromClip(ScDocument* pClipDoc, ScClipRangeNameDat } } rRangeNames = aClipRangeNames; +#endif } void ScDocument::UpdateRangeNamesInFormulas( diff --git a/sc/source/core/tool/interpr1.cxx b/sc/source/core/tool/interpr1.cxx index f9bc41f4ab48..4bcdb7536d5f 100644 --- a/sc/source/core/tool/interpr1.cxx +++ b/sc/source/core/tool/interpr1.cxx @@ -6571,22 +6571,18 @@ void ScInterpreter::ScIndirect() if (!pNames) break; - USHORT nPos = 0; - if (!pNames->SearchName( sRefStr, nPos)) - break; - - ScRangeData* rData = (*pNames)[nPos]; - if (!rData) + ScRangeData* pData = pNames->findByName(sRefStr); + if (!pData) break; // We need this in order to obtain a good range. - rData->ValidateTabRefs(); + pData->ValidateTabRefs(); ScRange aRange; // This is the usual way to treat named ranges containing // relative references. - if (!rData->IsReference( aRange, aPos)) + if (!pData->IsReference( aRange, aPos)) break; if (aRange.aStart == aRange.aEnd) diff --git a/sc/source/core/tool/rangenam.cxx b/sc/source/core/tool/rangenam.cxx index 5f265bfb3774..97d5f2b0b59e 100644 --- a/sc/source/core/tool/rangenam.cxx +++ b/sc/source/core/tool/rangenam.cxx @@ -690,9 +690,17 @@ const ScRangeData* ScRangeName::GetRangeAtBlock(const ScRange& rRange) const return NULL; } -bool ScRangeName::SearchName(const rtl::OUString& rName, sal_uInt16& rPos) const +ScRangeData* ScRangeName::findByName(const OUString& rName) { - return false; + DataType::iterator itr = maData.begin(), itrEnd = maData.end(); + for (; itr != itrEnd; ++itr) + { + String aName; + itr->GetName(aName); + if (rName.equals(aName)) + return &(*itr); + } + return NULL; } const ScRangeData* ScRangeName::findByName(const OUString& rName) const @@ -795,6 +803,11 @@ void ScRangeName::FreeAll() { } +void ScRangeName::erase(const ScRangeData& r) +{ + maData.erase(r); +} + void ScRangeName::clear() { maData.clear(); diff --git a/sc/source/core/tool/rangeutl.cxx b/sc/source/core/tool/rangeutl.cxx index bd1600970375..2857d170089d 100644 --- a/sc/source/core/tool/rangeutl.cxx +++ b/sc/source/core/tool/rangeutl.cxx @@ -288,12 +288,10 @@ BOOL ScRangeUtil::MakeRangeFromName ( if( eScope==RUTL_NAMES ) { - ScRangeName& rRangeNames = *(pDoc->GetRangeName()); - USHORT nAt = 0; - - if ( rRangeNames.SearchName( rName, nAt ) ) + const ScRangeName& rRangeNames = *pDoc->GetRangeName(); + const ScRangeData* pData = rRangeNames.findByName(rName); + if (pData) { - ScRangeData* pData = rRangeNames[nAt]; String aStrArea; ScRefAddress aStartPos; ScRefAddress aEndPos; diff --git a/sc/source/filter/excel/xiname.cxx b/sc/source/filter/excel/xiname.cxx index b602edf80511..d0d7e0dd1657 100644 --- a/sc/source/filter/excel/xiname.cxx +++ b/sc/source/filter/excel/xiname.cxx @@ -146,8 +146,7 @@ XclImpName::XclImpName( XclImpStream& rStrm, sal_uInt16 nXclNameIdx ) : // find an unused name String aOrigName( maScName ); sal_Int32 nCounter = 0; - USHORT nDummy; - while( rRangeNames.SearchName( maScName, nDummy ) ) + while( rRangeNames.findByName(maScName) ) maScName.Assign( aOrigName ).Append( ' ' ).Append( String::CreateFromInt32( ++nCounter ) ); // 3) *** convert the name definition formula *** ------------------------- diff --git a/sc/source/filter/html/htmlimp.cxx b/sc/source/filter/html/htmlimp.cxx index 90ece03f8646..57609f9e385d 100644 --- a/sc/source/filter/html/htmlimp.cxx +++ b/sc/source/filter/html/htmlimp.cxx @@ -210,8 +210,7 @@ void ScHTMLImport::WriteToDocument( if( pTable->GetTableName().Len() ) { String aName( ScfTools::GetNameFromHTMLName( pTable->GetTableName() ) ); - USHORT nPos; - if( !mpDoc->GetRangeName()->SearchName( aName, nPos ) ) + if (!mpDoc->GetRangeName()->findByName(aName)) InsertRangeName( mpDoc, aName, aNewRange ); } } @@ -237,22 +236,22 @@ String ScHTMLImport::GetHTMLRangeNameList( ScDocument* pDoc, const String& rOrig if( pRangeNames && ScfTools::IsHTMLTablesName( aToken ) ) { // build list with all HTML tables ULONG nIndex = 1; - USHORT nPos; - BOOL bLoop = TRUE; + bool bLoop = true; while( bLoop ) { aToken = ScfTools::GetNameFromHTMLIndex( nIndex++ ); - bLoop = pRangeNames->SearchName( aToken, nPos ); - if( bLoop ) + const ScRangeData* pRangeData = pRangeNames->findByName(aToken); + if (pRangeData) { - const ScRangeData* pRangeData = (*pRangeNames)[ nPos ]; ScRange aRange; - if( pRangeData && pRangeData->IsReference( aRange ) && !aRangeList.In( aRange ) ) + if( pRangeData->IsReference( aRange ) && !aRangeList.In( aRange ) ) { ScGlobal::AddToken( aNewName, aToken, ';' ); aRangeList.Append( aRange ); } } + else + bLoop = false; } } else diff --git a/sc/source/filter/rtf/eeimpars.cxx b/sc/source/filter/rtf/eeimpars.cxx index 0675e5d5fcb5..bc845f742f92 100644 --- a/sc/source/filter/rtf/eeimpars.cxx +++ b/sc/source/filter/rtf/eeimpars.cxx @@ -404,8 +404,7 @@ void ScEEImport::WriteToDocument( BOOL bSizeColsRows, double nOutputFactor, SvNu bHasGraphics |= GraphicSize( nCol, nRow, nTab, pE ); if ( pE->pName ) { // Anchor Name => RangeName - USHORT nIndex; - if ( !pRangeNames->SearchName( *pE->pName, nIndex ) ) + if (!pRangeNames->findByName(*pE->pName)) { ScRangeData* pData = new ScRangeData( mpDoc, *pE->pName, ScAddress( nCol, nRow, nTab ) ); diff --git a/sc/source/filter/xml/xmlexprt.cxx b/sc/source/filter/xml/xmlexprt.cxx index c8216275bc22..77e3907fa8a0 100644 --- a/sc/source/filter/xml/xmlexprt.cxx +++ b/sc/source/filter/xml/xmlexprt.cxx @@ -3723,10 +3723,7 @@ void ScXMLExport::WriteNamedExpressions(const com::sun::star::uno::Reference <co xNamedRange->getReferencePosition(), pDoc, FormulaGrammar::CONV_OOO, ' ', sal_False, SCA_ABS_3D ); AddAttribute(XML_NAMESPACE_TABLE, XML_BASE_CELL_ADDRESS, sOUBaseCellAddress); - sal_uInt16 nRangeIndex; - String sName(sOUName); - pNamedRanges->SearchName(sName, nRangeIndex); - ScRangeData* pNamedRange((*pNamedRanges)[nRangeIndex]); //should get directly and not with ScDocument + const ScRangeData* pNamedRange = pNamedRanges->findByName(sOUName); String sContent; pNamedRange->GetSymbol(sContent, pDoc->GetStorageGrammar()); rtl::OUString sOUTempContent(sContent); diff --git a/sc/source/ui/app/inputwin.cxx b/sc/source/ui/app/inputwin.cxx index ea8c548d231f..b0625bc439df 100644 --- a/sc/source/ui/app/inputwin.cxx +++ b/sc/source/ui/app/inputwin.cxx @@ -1679,8 +1679,7 @@ void ScPosWnd::DoEnter() ScDocument* pDoc = pDocShell->GetDocument(); ScRangeName* pNames = pDoc->GetRangeName(); ScRange aSelection; - USHORT nIndex = 0; - if ( pNames && !pNames->SearchName( aText, nIndex ) && + if ( pNames && !pNames->findByName(aText) && (pViewData->GetSimpleArea( aSelection ) == SC_MARK_SIMPLE) ) { ScRangeName aNewRanges( *pNames ); diff --git a/sc/source/ui/docshell/arealink.cxx b/sc/source/ui/docshell/arealink.cxx index a1e6c02aa4a1..ddef0eb95bc5 100644 --- a/sc/source/ui/docshell/arealink.cxx +++ b/sc/source/ui/docshell/arealink.cxx @@ -205,14 +205,14 @@ BOOL ScAreaLink::IsEqual( const String& rFile, const String& rFilter, const Stri // find a range with name >rAreaName< in >pSrcDoc<, return it in >rRange< BOOL ScAreaLink::FindExtRange( ScRange& rRange, ScDocument* pSrcDoc, const String& rAreaName ) { - BOOL bFound = FALSE; + bool bFound = false; ScRangeName* pNames = pSrcDoc->GetRangeName(); USHORT nPos; if (pNames) // benannte Bereiche { - if (pNames->SearchName( rAreaName, nPos )) - if ( (*pNames)[nPos]->IsValidReference( rRange ) ) - bFound = TRUE; + const ScRangeData* p = pNames->findByName(rAreaName); + if (p && p->IsValidReference(rRange)) + bFound = true; } if (!bFound) // Datenbankbereiche { @@ -225,14 +225,14 @@ BOOL ScAreaLink::FindExtRange( ScRange& rRange, ScDocument* pSrcDoc, const Strin SCROW nRow1, nRow2; (*pDBColl)[nPos]->GetArea(nTab,nCol1,nRow1,nCol2,nRow2); rRange = ScRange( nCol1,nRow1,nTab, nCol2,nRow2,nTab ); - bFound = TRUE; + bFound = true; } } if (!bFound) // direct reference (range or cell) { ScAddress::Details aDetails(pSrcDoc->GetAddressConvention(), 0, 0); if ( rRange.ParseAny( rAreaName, pSrcDoc, aDetails ) & SCA_VALID ) - bFound = TRUE; + bFound = true; } return bFound; } diff --git a/sc/source/ui/docshell/docfunc.cxx b/sc/source/ui/docshell/docfunc.cxx index 853bd50e9a88..66b2a5b6d853 100644 --- a/sc/source/ui/docshell/docfunc.cxx +++ b/sc/source/ui/docshell/docfunc.cxx @@ -4543,11 +4543,10 @@ void ScDocFunc::CreateOneName( ScRangeName& rList, String aContent; ScRange( nX1, nY1, nTab, nX2, nY2, nTab ).Format( aContent, SCR_ABS_3D, pDoc ); - BOOL bInsert = FALSE; - USHORT nOldPos; - if (rList.SearchName( aName, nOldPos )) // vorhanden ? + bool bInsert = false; + ScRangeData* pOld = rList.findByName(aName); + if (pOld) { - ScRangeData* pOld = rList[nOldPos]; String aOldStr; pOld->GetSymbol( aOldStr ); if (aOldStr != aContent) @@ -4567,8 +4566,8 @@ void ScDocFunc::CreateOneName( ScRangeName& rList, aMessage ).Execute(); if ( nResult == RET_YES ) { - rList.AtFree(nOldPos); - bInsert = TRUE; + rList.erase(*pOld); + bInsert = true; } else if ( nResult == RET_CANCEL ) rCancel = TRUE; @@ -4576,7 +4575,7 @@ void ScDocFunc::CreateOneName( ScRangeName& rList, } } else - bInsert = TRUE; + bInsert = true; if (bInsert) { diff --git a/sc/source/ui/docshell/docsh4.cxx b/sc/source/ui/docshell/docsh4.cxx index 8ea77526cf66..fbf4ab710e73 100644 --- a/sc/source/ui/docshell/docsh4.cxx +++ b/sc/source/ui/docshell/docsh4.cxx @@ -2463,10 +2463,9 @@ long ScDocShell::DdeSetData( const String& rItem, ScRangeName* pRange = aDocument.GetRangeName(); if( pRange ) { - USHORT nPos; - if( pRange->SearchName( aPos, nPos ) ) + const ScRangeData* pData = pRange->findByName(aPos); + if (pData) { - ScRangeData* pData = (*pRange)[ nPos ]; if( pData->HasType( RT_REFAREA ) || pData->HasType( RT_ABSAREA ) || pData->HasType( RT_ABSPOS ) ) diff --git a/sc/source/ui/docshell/impex.cxx b/sc/source/ui/docshell/impex.cxx index e1e8ef314028..8b08e80d21ae 100644 --- a/sc/source/ui/docshell/impex.cxx +++ b/sc/source/ui/docshell/impex.cxx @@ -175,10 +175,9 @@ ScImportExport::ScImportExport( ScDocument* p, const String& rPos ) ScRangeName* pRange = pDoc->GetRangeName(); if( pRange ) { - USHORT nPos; - if( pRange->SearchName( aPos, nPos ) ) + const ScRangeData* pData = pRange->findByName(aPos); + if (pData) { - ScRangeData* pData = (*pRange)[ nPos ]; if( pData->HasType( RT_REFAREA ) || pData->HasType( RT_ABSAREA ) || pData->HasType( RT_ABSPOS ) ) diff --git a/sc/source/ui/docshell/servobj.cxx b/sc/source/ui/docshell/servobj.cxx index 0ec8e582d093..d96f9101b858 100644 --- a/sc/source/ui/docshell/servobj.cxx +++ b/sc/source/ui/docshell/servobj.cxx @@ -54,10 +54,9 @@ BOOL lcl_FillRangeFromName( ScRange& rRange, ScDocShell* pDocSh, const String& r ScRangeName* pNames = pDoc->GetRangeName(); if (pNames) { - USHORT nPos; - if( pNames->SearchName( rName, nPos ) ) + const ScRangeData* pData = pNames->findByName(rName); + if (pData) { - ScRangeData* pData = (*pNames)[ nPos ]; if ( pData->IsValidReference( rRange ) ) return TRUE; } diff --git a/sc/source/ui/inc/namedlg.hxx b/sc/source/ui/inc/namedlg.hxx index 627fc8d3fee0..f86dcc8d6bb9 100644 --- a/sc/source/ui/inc/namedlg.hxx +++ b/sc/source/ui/inc/namedlg.hxx @@ -81,7 +81,7 @@ private: void Init(); void UpdateChecks(); void UpdateNames(); - void CalcCurTableAssign( String& aAssign, USHORT nPos ); + void CalcCurTableAssign( String& aAssign, ScRangeData* pRangeData ); // Handler: DECL_LINK( OkBtnHdl, void * ); diff --git a/sc/source/ui/namedlg/namedlg.cxx b/sc/source/ui/namedlg/namedlg.cxx index b6b2801a3cc2..2d303f1ce615 100644 --- a/sc/source/ui/namedlg/namedlg.cxx +++ b/sc/source/ui/namedlg/namedlg.cxx @@ -271,11 +271,9 @@ void ScNameDlg::SetActive() void ScNameDlg::UpdateChecks() { - sal_uInt16 nCurPos=0; - - if(aLocalRangeName.SearchName( aEdName.GetText(), nCurPos)) + const ScRangeData* pData = aLocalRangeName.findByName(aEdName.GetText()); + if (pData) { - ScRangeData* pData=(ScRangeData*)(aLocalRangeName.At( nCurPos )); aBtnCriteria .Check( pData->HasType( RT_CRITERIA ) ); aBtnPrintArea.Check( pData->HasType( RT_PRINTAREA ) ); aBtnColHeader.Check( pData->HasType( RT_COLHEADER ) ); @@ -359,10 +357,8 @@ void ScNameDlg::UpdateNames() //---------------------------------------------------------------------------- -void ScNameDlg::CalcCurTableAssign( String& aAssign, USHORT nCurPos ) +void ScNameDlg::CalcCurTableAssign( String& aAssign, ScRangeData* pRangeData ) { - ScRangeData* pRangeData = (ScRangeData*)(aLocalRangeName.At( nCurPos )); - if ( pRangeData ) { rtl::OUStringBuffer sBuffer; @@ -448,13 +444,11 @@ IMPL_LINK( ScNameDlg, AddBtnHdl, void *, EMPTYARG ) // in ein Token-Array uebersetzt werden?) if ( 0 == pNewEntry->GetErrCode() ) { - USHORT nFoundAt = 0; - // Eintrag bereits vorhanden? Dann vorher entfernen (=Aendern) - if ( aLocalRangeName.SearchName( aNewEntry, nFoundAt ) ) - { // alten Index uebernehmen - pNewEntry->SetIndex( - ((ScRangeData*)(aLocalRangeName.At(nFoundAt)))->GetIndex() ); - aLocalRangeName.AtFree( nFoundAt ); + ScRangeData* pData = aLocalRangeName.findByName(aNewEntry); + if (pData) + { + pNewEntry->SetIndex(pData->GetIndex()); + aLocalRangeName.erase(*pData); } else pSaveObj->Clear(); @@ -503,10 +497,9 @@ IMPL_LINK( ScNameDlg, AddBtnHdl, void *, EMPTYARG ) IMPL_LINK( ScNameDlg, RemoveBtnHdl, void *, EMPTYARG ) { - USHORT nRemoveAt = 0; const String aStrEntry = aEdName.GetText(); - - if ( aLocalRangeName.SearchName( aStrEntry, nRemoveAt ) ) + ScRangeData* pData = aLocalRangeName.findByName(aStrEntry); + if (pData) { String aStrDelMsg = ScGlobal::GetRscString( STR_QUERY_DELENTRY ); String aMsg = aStrDelMsg.GetToken( 0, '#' ); @@ -517,7 +510,7 @@ IMPL_LINK( ScNameDlg, RemoveBtnHdl, void *, EMPTYARG ) if ( RET_YES == QueryBox( this, WinBits( WB_YES_NO | WB_DEF_YES ), aMsg ).Execute() ) { - aLocalRangeName.AtFree( nRemoveAt ); + aLocalRangeName.erase(*pData); UpdateNames(); UpdateChecks(); bSaved=FALSE; @@ -536,21 +529,15 @@ IMPL_LINK( ScNameDlg, RemoveBtnHdl, void *, EMPTYARG ) IMPL_LINK( ScNameDlg, NameSelectHdl, void *, EMPTYARG ) { - USHORT nAtPos; - - if ( aLocalRangeName.SearchName( aEdName.GetText(), nAtPos ) ) + ScRangeData* pData = aLocalRangeName.findByName(aEdName.GetText()); + if (pData) { - String aSymbol; - ScRangeData* pData = (ScRangeData*)(aLocalRangeName.At( nAtPos )); - - if ( pData ) - { - pData->GetSymbol( aSymbol ); - CalcCurTableAssign( aSymbol, nAtPos ); - aEdAssign.SetText( aSymbol ); - aBtnAdd.SetText( aStrModify ); - theCurSel = Selection( 0, SELECTION_MAX ); - } + String aSymbol; + pData->GetSymbol( aSymbol ); + CalcCurTableAssign( aSymbol, pData ); + aEdAssign.SetText( aSymbol ); + aBtnAdd.SetText( aStrModify ); + theCurSel = Selection( 0, SELECTION_MAX ); } UpdateChecks(); return 0; diff --git a/sc/source/ui/navipi/content.cxx b/sc/source/ui/navipi/content.cxx index 428c39f038b5..e6fe9aae19fc 100644 --- a/sc/source/ui/navipi/content.cxx +++ b/sc/source/ui/navipi/content.cxx @@ -1013,9 +1013,11 @@ BOOL lcl_GetRange( ScDocument* pDoc, USHORT nType, const String& rName, ScRange& { ScRangeName* pList = pDoc->GetRangeName(); if (pList) - if (pList->SearchName( rName, nPos )) - if ( (*pList)[nPos]->IsValidReference( rRange ) ) - bFound = TRUE; + { + const ScRangeData* p = pList->findByName(rName); + if (p && p->IsValidReference(rRange)) + bFound = true; + } } else if ( nType == SC_CONTENT_DBAREA ) { diff --git a/sc/source/ui/unoobj/nameuno.cxx b/sc/source/ui/unoobj/nameuno.cxx index 827ab7633e18..7ed1fc49c84f 100644 --- a/sc/source/ui/unoobj/nameuno.cxx +++ b/sc/source/ui/unoobj/nameuno.cxx @@ -133,12 +133,9 @@ ScRangeData* ScNamedRangeObj::GetRangeData_Impl() ScRangeName* pNames = pDocShell->GetDocument()->GetRangeName(); if (pNames) { - sal_uInt16 nPos = 0; - if (pNames->SearchName( aName, nPos )) - { - pRet = (*pNames)[nPos]; + pRet = pNames->findByName(aName); + if (pRet) pRet->ValidateTabRefs(); // adjust relative tab refs to valid tables - } } } return pRet; @@ -150,6 +147,8 @@ void ScNamedRangeObj::Modify_Impl( const String* pNewName, const ScTokenArray* p const ScAddress* pNewPos, const sal_uInt16* pNewType, const formula::FormulaGrammar::Grammar eGrammar ) { +#if NEW_RANGE_NAME +#else if (pDocShell) { ScDocument* pDoc = pDocShell->GetDocument(); @@ -199,6 +198,7 @@ void ScNamedRangeObj::Modify_Impl( const String* pNewName, const ScTokenArray* p } } } +#endif } @@ -555,8 +555,6 @@ void SAL_CALL ScNamedRangesObj::addNewByName( const rtl::OUString& aName, sal_Int32 nUnoType ) throw(uno::RuntimeException) { SolarMutexGuard aGuard; - String aNameStr(aName); - String aContStr(aContent); ScAddress aPos( (SCCOL)aPosition.Column, (SCROW)aPosition.Row, aPosition.Sheet ); sal_uInt16 nNewType = RT_NAME; @@ -570,12 +568,11 @@ void SAL_CALL ScNamedRangesObj::addNewByName( const rtl::OUString& aName, { ScDocument* pDoc = pDocShell->GetDocument(); ScRangeName* pNames = pDoc->GetRangeName(); - USHORT nIndex = 0; - if (pNames && !pNames->SearchName(aNameStr, nIndex)) + if (pNames && !pNames->findByName(aName)) { ScRangeName* pNewRanges = new ScRangeName( *pNames ); // GRAM_PODF_A1 for API compatibility. - ScRangeData* pNew = new ScRangeData( pDoc, aNameStr, aContStr, + ScRangeData* pNew = new ScRangeData( pDoc, aName, aContent, aPos, nNewType,formula::FormulaGrammar::GRAM_PODF_A1 ); if ( pNewRanges->Insert(pNew) ) { @@ -626,23 +623,21 @@ void SAL_CALL ScNamedRangesObj::removeByName( const rtl::OUString& aName ) throw(uno::RuntimeException) { SolarMutexGuard aGuard; - BOOL bDone = FALSE; + bool bDone = false; if (pDocShell) { ScRangeName* pNames = pDocShell->GetDocument()->GetRangeName(); if (pNames) { - String aString(aName); - sal_uInt16 nPos = 0; - if (pNames->SearchName( aString, nPos )) - if ( lcl_UserVisibleName((*pNames)[nPos]) ) - { - ScRangeName* pNewRanges = new ScRangeName(*pNames); - pNewRanges->AtFree(nPos); - ScDocFunc aFunc(*pDocShell); - aFunc.SetNewRangeNames( pNewRanges, mbModifyAndBroadcast); - bDone = TRUE; - } + const ScRangeData* pData = pNames->findByName(aName); + if (pData && lcl_UserVisibleName(pData)) + { + ScRangeName* pNewRanges = new ScRangeName(*pNames); + pNewRanges->erase(*pData); + ScDocFunc aFunc(*pDocShell); + aFunc.SetNewRangeNames( pNewRanges, mbModifyAndBroadcast); + bDone = true; + } } } @@ -798,10 +793,9 @@ sal_Bool SAL_CALL ScNamedRangesObj::hasByName( const rtl::OUString& aName ) ScRangeName* pNames = pDocShell->GetDocument()->GetRangeName(); if (pNames) { - sal_uInt16 nPos = 0; - if (pNames->SearchName( String(aName), nPos )) - if ( lcl_UserVisibleName((*pNames)[nPos]) ) - return sal_True; + const ScRangeData* pData = pNames->findByName(aName); + if (pData && lcl_UserVisibleName(pData)) + return sal_True; } } return sal_False; diff --git a/sc/source/ui/view/viewfunc.cxx b/sc/source/ui/view/viewfunc.cxx index bf61f22e1fa1..ac9f3a6b7cb1 100644 --- a/sc/source/ui/view/viewfunc.cxx +++ b/sc/source/ui/view/viewfunc.cxx @@ -2934,11 +2934,11 @@ BOOL ScViewFunc::InsertName( const String& rName, const String& rSymbol, pDoc->CompileNameFormula( TRUE ); // CreateFormulaString // Eintrag bereits vorhanden? Dann vorher entfernen (=Aendern) - USHORT nFoundAt; - if ( pList->SearchName( rName, nFoundAt ) ) + ScRangeData* pData = pList->findByName(rName); + if (pData) { // alten Index uebernehmen - pNewEntry->SetIndex( ((ScRangeData*)pList->At(nFoundAt))->GetIndex() ); - pList->AtFree( nFoundAt ); + pNewEntry->SetIndex(pData->GetIndex()); + pList->erase(*pData); } if ( pList->Insert( pNewEntry ) ) |