diff options
author | Noel Power <noel.power@novell.com> | 2012-01-19 09:29:35 +0000 |
---|---|---|
committer | Noel Power <noel.power@novell.com> | 2012-02-07 10:56:08 +0000 |
commit | c27958201d269f65a4ba868b04907eb55928a4a5 (patch) | |
tree | b2a82bbdbc8a8280b9167bb74688fa8074937a8a | |
parent | ff3a6a514d4a95653d111610ea06954b8130a869 (diff) |
fix getCellRangeByName failure for named range
-rw-r--r-- | sc/inc/rangenam.hxx | 4 | ||||
-rw-r--r-- | sc/source/core/data/documen2.cxx | 2 | ||||
-rw-r--r-- | sc/source/core/data/document.cxx | 2 | ||||
-rw-r--r-- | sc/source/core/tool/interpr1.cxx | 2 | ||||
-rw-r--r-- | sc/source/core/tool/rangenam.cxx | 25 | ||||
-rw-r--r-- | sc/source/core/tool/rangeutl.cxx | 3 | ||||
-rw-r--r-- | sc/source/filter/html/htmlimp.cxx | 4 | ||||
-rw-r--r-- | sc/source/filter/rtf/eeimpars.cxx | 2 | ||||
-rw-r--r-- | sc/source/filter/xml/xmlexprt.cxx | 2 | ||||
-rw-r--r-- | sc/source/filter/xml/xmlimprt.cxx | 2 | ||||
-rw-r--r-- | sc/source/ui/app/inputwin.cxx | 2 | ||||
-rw-r--r-- | sc/source/ui/docshell/arealink.cxx | 2 | ||||
-rw-r--r-- | sc/source/ui/docshell/docfunc.cxx | 2 | ||||
-rw-r--r-- | sc/source/ui/docshell/docsh4.cxx | 2 | ||||
-rw-r--r-- | sc/source/ui/docshell/impex.cxx | 2 | ||||
-rw-r--r-- | sc/source/ui/docshell/servobj.cxx | 2 | ||||
-rw-r--r-- | sc/source/ui/namedlg/namedlg.cxx | 6 | ||||
-rw-r--r-- | sc/source/ui/navipi/content.cxx | 2 | ||||
-rw-r--r-- | sc/source/ui/unoobj/nameuno.cxx | 10 | ||||
-rw-r--r-- | sc/source/ui/vba/vbarange.cxx | 2 | ||||
-rw-r--r-- | sc/source/ui/view/viewfunc.cxx | 2 |
21 files changed, 29 insertions, 53 deletions
diff --git a/sc/inc/rangenam.hxx b/sc/inc/rangenam.hxx index fdff2784d..741709448 100644 --- a/sc/inc/rangenam.hxx +++ b/sc/inc/rangenam.hxx @@ -202,8 +202,8 @@ public: SC_DLLPUBLIC const ScRangeData* findByRange(const ScRange& rRange) const; SC_DLLPUBLIC ScRangeData* findByName(const rtl::OUString& rName); SC_DLLPUBLIC const ScRangeData* findByName(const rtl::OUString& rName) const; - ScRangeData* findByUpperName(const rtl::OUString& rName); - const ScRangeData* findByUpperName(const rtl::OUString& rName) const; + SC_DLLPUBLIC ScRangeData* findByUpperName(const rtl::OUString& rName); + SC_DLLPUBLIC const ScRangeData* findByUpperName(const rtl::OUString& rName) const; SC_DLLPUBLIC ScRangeData* findByIndex(sal_uInt16 i); void UpdateReference(UpdateRefMode eUpdateRefMode, const ScRange& rRange, SCsCOL nDx, SCsROW nDy, SCsTAB nDz); diff --git a/sc/source/core/data/documen2.cxx b/sc/source/core/data/documen2.cxx index 97292cadd..5720e63ca 100644 --- a/sc/source/core/data/documen2.cxx +++ b/sc/source/core/data/documen2.cxx @@ -991,7 +991,7 @@ sal_uLong ScDocument::TransferTab( ScDocument* pSrcDoc, SCTAB nSrcPos, bool bInUse = ( aUsedNames.find(nOldIndex) != aUsedNames.end() ); if (bInUse) { - const ScRangeData* pExistingData = GetRangeName()->findByName(itr->GetName()); + const ScRangeData* pExistingData = GetRangeName()->findByUpperName(itr->GetUpperName()); if (pExistingData) { // the name exists already in the destination document diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx index 48cf99b19..e85ba1f1d 100644 --- a/sc/source/core/data/document.cxx +++ b/sc/source/core/data/document.cxx @@ -1867,7 +1867,7 @@ void ScDocument::CopyRangeNamesFromClip(ScDocument* pClipDoc, ScClipRangeNameDat A proper solution would ask the user how to proceed. The adjustment of the indices in the formulas is done later. */ - const ScRangeData* pExistingData = GetRangeName()->findByName(itr->GetName()); + const ScRangeData* pExistingData = GetRangeName()->findByUpperName(itr->GetUpperName()); if (pExistingData) { sal_uInt16 nOldIndex = itr->GetIndex(); diff --git a/sc/source/core/tool/interpr1.cxx b/sc/source/core/tool/interpr1.cxx index 3614896e2..eb5ab56fc 100644 --- a/sc/source/core/tool/interpr1.cxx +++ b/sc/source/core/tool/interpr1.cxx @@ -6628,7 +6628,7 @@ void ScInterpreter::ScIndirect() if (!pNames) break; - ScRangeData* pData = pNames->findByName(sRefStr); + ScRangeData* pData = pNames->findByUpperName(ScGlobal::pCharClass->upper(sRefStr)); if (!pData) break; diff --git a/sc/source/core/tool/rangenam.cxx b/sc/source/core/tool/rangenam.cxx index 35c00dc44..b648d1a14 100644 --- a/sc/source/core/tool/rangenam.cxx +++ b/sc/source/core/tool/rangenam.cxx @@ -682,17 +682,6 @@ public: } }; -class MatchByName : public unary_function<ScRangeData, bool> -{ - const OUString& mrName; -public: - MatchByName(const OUString& rName) : mrName(rName) {} - bool operator() (const ScRangeData& r) const - { - return mrName.equals(r.GetName()); - } -}; - class MatchByUpperName : public unary_function<ScRangeData, bool> { const OUString& mrName; @@ -760,20 +749,6 @@ const ScRangeData* ScRangeName::findByRange(const ScRange& rRange) const return itr == maData.end() ? NULL : &(*itr); } -ScRangeData* ScRangeName::findByName(const OUString& rName) -{ - DataType::iterator itr = std::find_if( - maData.begin(), maData.end(), MatchByName(rName)); - return itr == maData.end() ? NULL : &(*itr); -} - -const ScRangeData* ScRangeName::findByName(const OUString& rName) const -{ - DataType::const_iterator itr = std::find_if( - maData.begin(), maData.end(), MatchByName(rName)); - return itr == maData.end() ? NULL : &(*itr); -} - ScRangeData* ScRangeName::findByUpperName(const OUString& rName) { DataType::iterator itr = std::find_if( diff --git a/sc/source/core/tool/rangeutl.cxx b/sc/source/core/tool/rangeutl.cxx index 72bd8d644..dca1413e0 100644 --- a/sc/source/core/tool/rangeutl.cxx +++ b/sc/source/core/tool/rangeutl.cxx @@ -288,8 +288,9 @@ sal_Bool ScRangeUtil::MakeRangeFromName ( if( eScope==RUTL_NAMES ) { + rtl::OUString aName(rName); const ScRangeName& rRangeNames = *pDoc->GetRangeName(); - const ScRangeData* pData = rRangeNames.findByName(rName); + const ScRangeData* pData = rRangeNames.findByUpperName(ScGlobal::pCharClass->upper(aName)); if (pData) { String aStrArea; diff --git a/sc/source/filter/html/htmlimp.cxx b/sc/source/filter/html/htmlimp.cxx index 7ebe5e111..b0e15d364 100644 --- a/sc/source/filter/html/htmlimp.cxx +++ b/sc/source/filter/html/htmlimp.cxx @@ -209,7 +209,7 @@ void ScHTMLImport::WriteToDocument( if( pTable->GetTableName().Len() ) { String aName( ScfTools::GetNameFromHTMLName( pTable->GetTableName() ) ); - if (!mpDoc->GetRangeName()->findByName(aName)) + if (!mpDoc->GetRangeName()->findByUpperName(ScGlobal::pCharClass->upper(aName))) InsertRangeName( mpDoc, aName, aNewRange ); } } @@ -239,7 +239,7 @@ String ScHTMLImport::GetHTMLRangeNameList( ScDocument* pDoc, const String& rOrig while( bLoop ) { aToken = ScfTools::GetNameFromHTMLIndex( nIndex++ ); - const ScRangeData* pRangeData = pRangeNames->findByName(aToken); + const ScRangeData* pRangeData = pRangeNames->findByUpperName(ScGlobal::pCharClass->upper(aToken)); if (pRangeData) { ScRange aRange; diff --git a/sc/source/filter/rtf/eeimpars.cxx b/sc/source/filter/rtf/eeimpars.cxx index f2baf3dac..9b652b6e1 100644 --- a/sc/source/filter/rtf/eeimpars.cxx +++ b/sc/source/filter/rtf/eeimpars.cxx @@ -404,7 +404,7 @@ void ScEEImport::WriteToDocument( sal_Bool bSizeColsRows, double nOutputFactor, bHasGraphics |= GraphicSize( nCol, nRow, nTab, pE ); if ( pE->pName ) { // Anchor Name => RangeName - if (!pRangeNames->findByName(*pE->pName)) + if (!pRangeNames->findByUpperName(ScGlobal::pCharClass->upper(*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 514e27a30..90955d3a6 100644 --- a/sc/source/filter/xml/xmlexprt.cxx +++ b/sc/source/filter/xml/xmlexprt.cxx @@ -3771,7 +3771,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); - const ScRangeData* pNamedRange = pNamedRanges->findByName(sOUName); + const ScRangeData* pNamedRange = pNamedRanges->findByUpperName(ScGlobal::pCharClass->upper(sOUName) ); String sContent; pNamedRange->GetSymbol(sContent, pDoc->GetStorageGrammar()); rtl::OUString sOUTempContent(sContent); diff --git a/sc/source/filter/xml/xmlimprt.cxx b/sc/source/filter/xml/xmlimprt.cxx index 6d043fc4d..6d8cbbe53 100644 --- a/sc/source/filter/xml/xmlimprt.cxx +++ b/sc/source/filter/xml/xmlimprt.cxx @@ -2796,7 +2796,7 @@ public: if ( nUnoType & sheet::NamedRangeFlag::ROW_HEADER ) nNewType |= RT_ROWHEADER; - if (mpDoc && !mrRangeName.findByName(r.sName)) + if (mpDoc && !mrRangeName.findByUpperName(ScGlobal::pCharClass->upper(r.sName))) { // Insert a new name. ScAddress aPos; diff --git a/sc/source/ui/app/inputwin.cxx b/sc/source/ui/app/inputwin.cxx index 4f377ef0f..c516dc43a 100644 --- a/sc/source/ui/app/inputwin.cxx +++ b/sc/source/ui/app/inputwin.cxx @@ -1676,7 +1676,7 @@ void ScPosWnd::DoEnter() { ScRangeName* pNames = pDoc->GetRangeName(); ScRange aSelection; - if ( pNames && !pNames->findByName(aText) && + if ( pNames && !pNames->findByUpperName(ScGlobal::pCharClass->upper(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 e2be816a9..398a674a1 100644 --- a/sc/source/ui/docshell/arealink.cxx +++ b/sc/source/ui/docshell/arealink.cxx @@ -210,7 +210,7 @@ sal_Bool ScAreaLink::FindExtRange( ScRange& rRange, ScDocument* pSrcDoc, const S sal_uInt16 nPos; if (pNames) // benannte Bereiche { - const ScRangeData* p = pNames->findByName(rAreaName); + const ScRangeData* p = pNames->findByUpperName(ScGlobal::pCharClass->upper(rAreaName)); if (p && p->IsValidReference(rRange)) bFound = true; } diff --git a/sc/source/ui/docshell/docfunc.cxx b/sc/source/ui/docshell/docfunc.cxx index 24e451711..c4df591b2 100644 --- a/sc/source/ui/docshell/docfunc.cxx +++ b/sc/source/ui/docshell/docfunc.cxx @@ -4570,7 +4570,7 @@ void ScDocFunc::CreateOneName( ScRangeName& rList, ScRange( nX1, nY1, nTab, nX2, nY2, nTab ).Format( aContent, SCR_ABS_3D, pDoc ); bool bInsert = false; - ScRangeData* pOld = rList.findByName(aName); + ScRangeData* pOld = rList.findByUpperName(ScGlobal::pCharClass->upper(aName)); if (pOld) { String aOldStr; diff --git a/sc/source/ui/docshell/docsh4.cxx b/sc/source/ui/docshell/docsh4.cxx index 0d8ea68f5..c25b1d7e2 100644 --- a/sc/source/ui/docshell/docsh4.cxx +++ b/sc/source/ui/docshell/docsh4.cxx @@ -2106,7 +2106,7 @@ long ScDocShell::DdeSetData( const String& rItem, ScRangeName* pRange = aDocument.GetRangeName(); if( pRange ) { - const ScRangeData* pData = pRange->findByName(aPos); + const ScRangeData* pData = pRange->findByUpperName(ScGlobal::pCharClass->upper(aPos)); if (pData) { if( pData->HasType( RT_REFAREA ) diff --git a/sc/source/ui/docshell/impex.cxx b/sc/source/ui/docshell/impex.cxx index 901810bb8..f6a51a940 100644 --- a/sc/source/ui/docshell/impex.cxx +++ b/sc/source/ui/docshell/impex.cxx @@ -175,7 +175,7 @@ ScImportExport::ScImportExport( ScDocument* p, const String& rPos ) ScRangeName* pRange = pDoc->GetRangeName(); if( pRange ) { - const ScRangeData* pData = pRange->findByName(aPos); + const ScRangeData* pData = pRange->findByUpperName(ScGlobal::pCharClass->upper(aPos)); if (pData) { if( pData->HasType( RT_REFAREA ) diff --git a/sc/source/ui/docshell/servobj.cxx b/sc/source/ui/docshell/servobj.cxx index 066d8dc7b..4dd0771d2 100644 --- a/sc/source/ui/docshell/servobj.cxx +++ b/sc/source/ui/docshell/servobj.cxx @@ -54,7 +54,7 @@ sal_Bool lcl_FillRangeFromName( ScRange& rRange, ScDocShell* pDocSh, const Strin ScRangeName* pNames = pDoc->GetRangeName(); if (pNames) { - const ScRangeData* pData = pNames->findByName(rName); + const ScRangeData* pData = pNames->findByUpperName(ScGlobal::pCharClass->upper(rName)); if (pData) { if ( pData->IsValidReference( rRange ) ) diff --git a/sc/source/ui/namedlg/namedlg.cxx b/sc/source/ui/namedlg/namedlg.cxx index 157c31683..9bd54362b 100644 --- a/sc/source/ui/namedlg/namedlg.cxx +++ b/sc/source/ui/namedlg/namedlg.cxx @@ -246,7 +246,7 @@ void ScNameDlg::SetActive() void ScNameDlg::UpdateChecks() { - const ScRangeData* pData = mpCurRangeName->findByName(aEdName.GetText()); + const ScRangeData* pData = mpCurRangeName->findByUpperName(ScGlobal::pCharClass->upper(aEdName.GetText())); if (pData) { aBtnCriteria .Check( pData->HasType( RT_CRITERIA ) ); @@ -437,7 +437,7 @@ bool ScNameDlg::AddPushed() void ScNameDlg::RemovePushed() { const String aStrEntry = aEdName.GetText(); - ScRangeData* pData = mpCurRangeName->findByName(aStrEntry); + ScRangeData* pData = mpCurRangeName->findByUpperName(ScGlobal::pCharClass->upper(aStrEntry)); if (pData) { String aStrDelMsg = ScGlobal::GetRscString( STR_QUERY_DELENTRY ); @@ -482,7 +482,7 @@ void ScNameDlg::OKPushed() void ScNameDlg::NameSelected() { - ScRangeData* pData = mpCurRangeName->findByName(aEdName.GetText()); + ScRangeData* pData = mpCurRangeName->findByUpperName(ScGlobal::pCharClass->upper(aEdName.GetText())); if (pData) { String aSymbol; diff --git a/sc/source/ui/navipi/content.cxx b/sc/source/ui/navipi/content.cxx index 8fc3dca97..5b8ee822e 100644 --- a/sc/source/ui/navipi/content.cxx +++ b/sc/source/ui/navipi/content.cxx @@ -1005,7 +1005,7 @@ sal_Bool lcl_GetRange( ScDocument* pDoc, sal_uInt16 nType, const String& rName, ScRangeName* pList = pDoc->GetRangeName(); if (pList) { - const ScRangeData* p = pList->findByName(rName); + const ScRangeData* p = pList->findByUpperName(ScGlobal::pCharClass->upper(rName)); if (p && p->IsValidReference(rRange)) bFound = true; } diff --git a/sc/source/ui/unoobj/nameuno.cxx b/sc/source/ui/unoobj/nameuno.cxx index baae08561..aede0adb5 100644 --- a/sc/source/ui/unoobj/nameuno.cxx +++ b/sc/source/ui/unoobj/nameuno.cxx @@ -129,7 +129,7 @@ ScRangeData* ScNamedRangeObj::GetRangeData_Impl() ScRangeName* pNames = pDocShell->GetDocument()->GetRangeName(); if (pNames) { - pRet = pNames->findByName(aName); + pRet = pNames->findByUpperName(ScGlobal::pCharClass->upper(aName)); if (pRet) pRet->ValidateTabRefs(); // adjust relative tab refs to valid tables } @@ -151,7 +151,7 @@ void ScNamedRangeObj::Modify_Impl( const String* pNewName, const ScTokenArray* p if (!pNames) return; - const ScRangeData* pOld = pNames->findByName(aName); + const ScRangeData* pOld = pNames->findByUpperName(ScGlobal::pCharClass->upper(aName)); if (!pOld) return; @@ -563,7 +563,7 @@ void SAL_CALL ScNamedRangesObj::addNewByName( const rtl::OUString& aName, { ScDocument* pDoc = pDocShell->GetDocument(); ScRangeName* pNames = pDoc->GetRangeName(); - if (pNames && !pNames->findByName(aName)) + if (pNames && !pNames->findByUpperName(ScGlobal::pCharClass->upper(aName))) { ScRangeName* pNewRanges = new ScRangeName( *pNames ); // GRAM_PODF_A1 for API compatibility. @@ -624,7 +624,7 @@ void SAL_CALL ScNamedRangesObj::removeByName( const rtl::OUString& aName ) ScRangeName* pNames = pDocShell->GetDocument()->GetRangeName(); if (pNames) { - const ScRangeData* pData = pNames->findByName(aName); + const ScRangeData* pData = pNames->findByUpperName(ScGlobal::pCharClass->upper(aName)); if (pData && lcl_UserVisibleName(*pData)) { ScRangeName* pNewRanges = new ScRangeName(*pNames); @@ -786,7 +786,7 @@ sal_Bool SAL_CALL ScNamedRangesObj::hasByName( const rtl::OUString& aName ) ScRangeName* pNames = pDocShell->GetDocument()->GetRangeName(); if (pNames) { - const ScRangeData* pData = pNames->findByName(aName); + const ScRangeData* pData = pNames->findByUpperName(ScGlobal::pCharClass->upper(aName)); if (pData && lcl_UserVisibleName(*pData)) return sal_True; } diff --git a/sc/source/ui/vba/vbarange.cxx b/sc/source/ui/vba/vbarange.cxx index a5670d793..191f62058 100644 --- a/sc/source/ui/vba/vbarange.cxx +++ b/sc/source/ui/vba/vbarange.cxx @@ -1184,7 +1184,7 @@ bool getScRangeListForAddress( const rtl::OUString& sName, ScDocShell* pDocSh, S ScRangeName* pRangeName = pDoc->GetRangeName(nCurTab); if (pRangeName) { - bLocalName = pRangeName->findByName(sAddress) != NULL; + bLocalName = pRangeName->findByUpperName(ScGlobal::pCharClass->upper(sAddress)) != NULL; // TODO: Handle local names correctly. (void)bLocalName; } diff --git a/sc/source/ui/view/viewfunc.cxx b/sc/source/ui/view/viewfunc.cxx index 9a8587c9c..f0f05b19c 100644 --- a/sc/source/ui/view/viewfunc.cxx +++ b/sc/source/ui/view/viewfunc.cxx @@ -2937,7 +2937,7 @@ sal_Bool ScViewFunc::InsertName( const String& rName, const String& rSymbol, pDoc->CompileNameFormula( sal_True ); // CreateFormulaString // Eintrag bereits vorhanden? Dann vorher entfernen (=Aendern) - ScRangeData* pData = pList->findByName(rName); + ScRangeData* pData = pList->findByUpperName(ScGlobal::pCharClass->upper(rName)); if (pData) { // alten Index uebernehmen pNewEntry->SetIndex(pData->GetIndex()); |