diff options
author | Kohei Yoshida <kyoshida@novell.com> | 2011-03-04 23:48:33 -0500 |
---|---|---|
committer | Kohei Yoshida <kyoshida@novell.com> | 2011-03-05 15:21:08 -0500 |
commit | 70624edc40bcb4c17943762ce6660c22ed3297be (patch) | |
tree | 3ec4f2cc99d559a641ac4ac221f1ed64484cb1af | |
parent | 726a7d3893d49214ca5ef955beb30dcd49b67dd0 (diff) |
More on adjusting for ScRangeName API change.
-rw-r--r-- | sc/inc/address.hxx | 3 | ||||
-rw-r--r-- | sc/inc/rangenam.hxx | 3 | ||||
-rw-r--r-- | sc/source/core/tool/address.cxx | 11 | ||||
-rw-r--r-- | sc/source/core/tool/rangenam.cxx | 7 | ||||
-rw-r--r-- | sc/source/ui/app/inputwin.cxx | 38 | ||||
-rw-r--r-- | sc/source/ui/navipi/content.cxx | 38 | ||||
-rw-r--r-- | sc/source/ui/pagedlg/areasdlg.cxx | 92 | ||||
-rw-r--r-- | sc/source/ui/unoobj/nameuno.cxx | 39 |
8 files changed, 103 insertions, 128 deletions
diff --git a/sc/inc/address.hxx b/sc/inc/address.hxx index 1add6d5abd10..6657a490cb2e 100644 --- a/sc/inc/address.hxx +++ b/sc/inc/address.hxx @@ -527,6 +527,9 @@ public: SC_DLLPUBLIC void Format( String&, USHORT = 0, ScDocument* = NULL, const ScAddress::Details& rDetails = ScAddress::detailsOOOa1 ) const; + SC_DLLPUBLIC void Format( rtl::OUString&, USHORT = 0, ScDocument* = NULL, + const ScAddress::Details& rDetails = ScAddress::detailsOOOa1 ) const; + inline void GetVars( SCCOL& nCol1, SCROW& nRow1, SCTAB& nTab1, SCCOL& nCol2, SCROW& nRow2, SCTAB& nTab2 ) const; // The document for the maximum defined sheet number diff --git a/sc/inc/rangenam.hxx b/sc/inc/rangenam.hxx index 292faa429365..361b6a51b90a 100644 --- a/sc/inc/rangenam.hxx +++ b/sc/inc/rangenam.hxx @@ -130,7 +130,8 @@ public: void AddType( RangeType nType ) { eType = eType|nType; } RangeType GetType() const { return eType; } BOOL HasType( RangeType nType ) const; - SC_DLLPUBLIC void GetSymbol( String& rSymbol, const formula::FormulaGrammar::Grammar eGrammar = formula::FormulaGrammar::GRAM_DEFAULT ) const; + SC_DLLPUBLIC void GetSymbol( String& rSymbol, const formula::FormulaGrammar::Grammar eGrammar = formula::FormulaGrammar::GRAM_DEFAULT ) const; + SC_DLLPUBLIC void GetSymbol( rtl::OUString& rSymbol, const formula::FormulaGrammar::Grammar eGrammar = formula::FormulaGrammar::GRAM_DEFAULT ) const; void UpdateSymbol( rtl::OUStringBuffer& rBuffer, const ScAddress&, const formula::FormulaGrammar::Grammar eGrammar = formula::FormulaGrammar::GRAM_DEFAULT ); void UpdateReference( UpdateRefMode eUpdateRefMode, diff --git a/sc/source/core/tool/address.cxx b/sc/source/core/tool/address.cxx index e10d6c9d9c4a..0b73062a2c49 100644 --- a/sc/source/core/tool/address.cxx +++ b/sc/source/core/tool/address.cxx @@ -44,9 +44,10 @@ #include <com/sun/star/sheet/ExternalLinkType.hpp> #include <sfx2/objsh.hxx> #include <tools/urlobj.hxx> + using namespace ::com::sun::star; +using ::rtl::OUString; -//////////////////////////////////////////////////////////////////////////// const ScAddress::Details ScAddress::detailsOOOa1( formula::FormulaGrammar::CONV_OOO, 0, 0 ); ScAddress::Details::Details ( const ScDocument* pDoc, @@ -1874,6 +1875,14 @@ void ScRange::Format( String& r, USHORT nFlags, ScDocument* pDoc, #undef absrel_differ } +void ScRange::Format( OUString& r, USHORT nFlags, ScDocument* pDoc, + const ScAddress::Details& rDetails ) const +{ + String aStr; + Format(aStr, nFlags, pDoc, rDetails); + r = aStr; +} + bool ScAddress::Move( SCsCOL dx, SCsROW dy, SCsTAB dz, ScDocument* pDoc ) { SCsTAB nMaxTab = pDoc ? pDoc->GetTableCount() : MAXTAB+1; diff --git a/sc/source/core/tool/rangenam.cxx b/sc/source/core/tool/rangenam.cxx index d4929fb98fdb..c05105e64ba0 100644 --- a/sc/source/core/tool/rangenam.cxx +++ b/sc/source/core/tool/rangenam.cxx @@ -235,6 +235,13 @@ void ScRangeData::GetSymbol( String& rSymbol, const FormulaGrammar::Grammar eGra aComp.CreateStringFromTokenArray( rSymbol ); } +void ScRangeData::GetSymbol( OUString& rSymbol, const FormulaGrammar::Grammar eGrammar ) const +{ + String aStr; + GetSymbol(aStr, eGrammar); + rSymbol = aStr; +} + void ScRangeData::UpdateSymbol( rtl::OUStringBuffer& rBuffer, const ScAddress& rPos, const FormulaGrammar::Grammar eGrammar ) { diff --git a/sc/source/ui/app/inputwin.cxx b/sc/source/ui/app/inputwin.cxx index 6842e43d28dc..46fd55ba759f 100644 --- a/sc/source/ui/app/inputwin.cxx +++ b/sc/source/ui/app/inputwin.cxx @@ -1411,43 +1411,31 @@ void ScPosWnd::FillRangeNames() // per Hand sortieren, weil Funktionen nicht sortiert werden: ScRangeName* pRangeNames = pDoc->GetRangeName(); -#if NEW_RANGE_NAME -#else - USHORT nCount = pRangeNames->GetCount(); - if ( nCount > 0 ) + if (!pRangeNames->empty()) { - USHORT nValidCount = 0; ScRange aDummy; - USHORT i; - for ( i=0; i<nCount; i++ ) + std::vector<const ScRangeData*> aSortArray; + ScRangeName::const_iterator itr = pRangeNames->begin(), itrEnd = pRangeNames->end(); + for (; itr != itrEnd; ++itr) { - ScRangeData* pData = (*pRangeNames)[i]; - if (pData->IsValidReference(aDummy)) - nValidCount++; + if (itr->IsValidReference(aDummy)) + aSortArray.push_back(&(*itr)); } - if ( nValidCount ) + + if (!aSortArray.empty()) { - ScRangeData** ppSortArray = new ScRangeData* [ nValidCount ]; - USHORT j; - for ( i=0, j=0; i<nCount; i++ ) - { - ScRangeData* pData = (*pRangeNames)[i]; - if (pData->IsValidReference(aDummy)) - ppSortArray[j++] = pData; - } #ifndef ICC - qsort( (void*)ppSortArray, nValidCount, sizeof(ScRangeData*), + size_t n = aSortArray.size(); + qsort( (void*)&aSortArray[0], n, sizeof(ScRangeData*), &ScRangeData_QsortNameCompare ); #else - qsort( (void*)ppSortArray, nValidCount, sizeof(ScRangeData*), + qsort( (void*)&aSortArray[0], n, sizeof(ScRangeData*), ICCQsortNameCompare ); #endif - for ( j=0; j<nValidCount; j++ ) - InsertEntry( ppSortArray[j]->GetName() ); - delete [] ppSortArray; + for (size_t i = 0; i < n; ++i) + InsertEntry(aSortArray[i]->GetName()); } } -#endif } SetText(aPosStr); } diff --git a/sc/source/ui/navipi/content.cxx b/sc/source/ui/navipi/content.cxx index d5f2d97544ee..ef8705ff402e 100644 --- a/sc/source/ui/navipi/content.cxx +++ b/sc/source/ui/navipi/content.cxx @@ -666,43 +666,31 @@ void ScContentTree::GetAreaNames() return; ScRangeName* pRangeNames = pDoc->GetRangeName(); -#if NEW_RANGE_NAME -#else - USHORT nCount = pRangeNames->GetCount(); - if ( nCount > 0 ) + if (!pRangeNames->empty()) { - USHORT nValidCount = 0; ScRange aDummy; - USHORT i; - for ( i=0; i<nCount; i++ ) + ScRangeName::const_iterator itrBeg = pRangeNames->begin(), itrEnd = pRangeNames->end(); + std::vector<const ScRangeData*> aSortArray; + for (ScRangeName::const_iterator itr = itrBeg; itr != itrEnd; ++itr) { - ScRangeData* pData = (*pRangeNames)[i]; - if (pData->IsValidReference(aDummy)) - nValidCount++; + if (itr->IsValidReference(aDummy)) + aSortArray.push_back(&(*itr)); } - if ( nValidCount ) + + if (!aSortArray.empty()) { - ScRangeData** ppSortArray = new ScRangeData* [ nValidCount ]; - USHORT j; - for ( i=0, j=0; i<nCount; i++ ) - { - ScRangeData* pData = (*pRangeNames)[i]; - if (pData->IsValidReference(aDummy)) - ppSortArray[j++] = pData; - } #ifndef ICC - qsort( (void*)ppSortArray, nValidCount, sizeof(ScRangeData*), + size_t n = aSortArray.size(); + qsort( (void*)&aSortArray[0], n, sizeof(ScRangeData*), &ScRangeData_QsortNameCompare ); #else - qsort( (void*)ppSortArray, nValidCount, sizeof(ScRangeData*), + qsort( (void*)&aSortArray[0], n, sizeof(ScRangeData*), ICCQsortNameCompare ); #endif - for ( j=0; j<nValidCount; j++ ) - InsertContent( SC_CONTENT_RANGENAME, ppSortArray[j]->GetName() ); - delete [] ppSortArray; + for (size_t i = 0; i < n; ++i) + InsertContent(SC_CONTENT_RANGENAME, aSortArray[i]->GetName()); } } -#endif } void ScContentTree::GetDbNames() diff --git a/sc/source/ui/pagedlg/areasdlg.cxx b/sc/source/ui/pagedlg/areasdlg.cxx index 5dae698b21b4..578f488f6529 100644 --- a/sc/source/ui/pagedlg/areasdlg.cxx +++ b/sc/source/ui/pagedlg/areasdlg.cxx @@ -69,6 +69,8 @@ const USHORT SC_AREASDLG_RR_OFFSET = 2; //============================================================================ +using ::rtl::OUString; + #define HDL(hdl) LINK( this, ScPrintAreasDlg, hdl ) #define ERRORBOX(nId) ErrorBox( this, WinBits(WB_OK|WB_DEF_OK), \ ScGlobal::GetRscString( nId ) ).Execute() @@ -76,8 +78,14 @@ const USHORT SC_AREASDLG_RR_OFFSET = 2; // globale Funktionen (->am Ende der Datei): -bool lcl_CheckRepeatString( const String& rStr, ScDocument* pDoc, bool bIsRow, ScRange* pRange ); -void lcl_GetRepeatRangeString( const ScRange* pRange, ScDocument* pDoc, bool bIsRow, String& rStr ); +bool lcl_CheckRepeatString( const String& rStr, ScDocument* pDoc, bool bIsRow, ScRange* pRange ); +void lcl_GetRepeatRangeString( const ScRange* pRange, ScDocument* pDoc, bool bIsRow, String& rStr ); +void lcl_GetRepeatRangeString( const ScRange* pRange, ScDocument* pDoc, bool bIsRow, OUString& rStr ) +{ + String aStr; + lcl_GetRepeatRangeString(pRange, pDoc, bIsRow, aStr); + rStr = aStr; +} #if 0 // this method is useful when debugging address flags. @@ -466,58 +474,48 @@ void ScPrintAreasDlg::Impl_FillLists() //------------------------------------------------------ // Ranges holen und in ListBoxen merken //------------------------------------------------------ - ScRangeName* pRangeNames = pDoc->GetRangeName(); - size_t nCount = pRangeNames ? pRangeNames->size() : 0; -#if NEW_RANGE_NAME -#else - if ( nCount > 0 ) + ScRangeName* pRangeNames = pDoc->GetRangeName(); + + if (!pRangeNames || pRangeNames->empty()) + // No range names to process. + return; + + ScRangeName::const_iterator itr = pRangeNames->begin(), itrEnd = pRangeNames->end(); + for (; itr != itrEnd; ++itr) { - String aName; - String aSymbol; - ScRangeData* pData = NULL; + if (!itr->HasType(RT_ABSAREA) && !itr->HasType(RT_REFAREA) && !itr->HasType(RT_ABSPOS)) + continue; - for ( USHORT i=0; i<nCount; i++ ) + OUString aName = itr->GetName(); + OUString aSymbol; + itr->GetSymbol(aSymbol); + if (aRange.ParseAny(aSymbol, pDoc, eConv) & SCA_VALID) { - pData = (ScRangeData*)(pRangeNames->At( i )); - if ( pData ) + if (itr->HasType(RT_PRINTAREA)) { - if ( pData->HasType( RT_ABSAREA ) - || pData->HasType( RT_REFAREA ) - || pData->HasType( RT_ABSPOS ) ) - { - pData->GetName( aName ); - pData->GetSymbol( aSymbol ); - if ( aRange.ParseAny( aSymbol, pDoc, eConv ) & SCA_VALID ) - { - if ( pData->HasType( RT_PRINTAREA ) ) - { - aRange.Format( aSymbol, SCR_ABS, pDoc, eConv ); - aLbPrintArea.SetEntryData( - aLbPrintArea.InsertEntry( aName ), - new String( aSymbol ) ); - } - - if ( pData->HasType( RT_ROWHEADER ) ) - { - lcl_GetRepeatRangeString(&aRange, pDoc, true, aSymbol); - aLbRepeatRow.SetEntryData( - aLbRepeatRow.InsertEntry( aName ), - new String( aSymbol ) ); - } - - if ( pData->HasType( RT_COLHEADER ) ) - { - lcl_GetRepeatRangeString(&aRange, pDoc, false, aSymbol); - aLbRepeatCol.SetEntryData( - aLbRepeatCol.InsertEntry( aName ), - new String( aSymbol ) ); - } - } - } + aRange.Format(aSymbol, SCR_ABS, pDoc, eConv); + aLbPrintArea.SetEntryData( + aLbPrintArea.InsertEntry(aName), + new String(aSymbol) ); + } + + if (itr->HasType(RT_ROWHEADER)) + { + lcl_GetRepeatRangeString(&aRange, pDoc, true, aSymbol); + aLbRepeatRow.SetEntryData( + aLbRepeatRow.InsertEntry(aName), + new String(aSymbol) ); + } + + if (itr->HasType(RT_COLHEADER)) + { + lcl_GetRepeatRangeString(&aRange, pDoc, false, aSymbol); + aLbRepeatCol.SetEntryData( + aLbRepeatCol.InsertEntry(aName), + new String(aSymbol)); } } } -#endif } diff --git a/sc/source/ui/unoobj/nameuno.cxx b/sc/source/ui/unoobj/nameuno.cxx index 6d10ae67110c..c521567067bc 100644 --- a/sc/source/ui/unoobj/nameuno.cxx +++ b/sc/source/ui/unoobj/nameuno.cxx @@ -90,24 +90,13 @@ SC_SIMPLE_SERVICE_INFO( ScLabelRangeObj, "ScLabelRangeObj", "com.sun.star.sheet. SC_SIMPLE_SERVICE_INFO( ScLabelRangesObj, "ScLabelRangesObj", "com.sun.star.sheet.LabelRanges" ) SC_SIMPLE_SERVICE_INFO( ScNamedRangesObj, "ScNamedRangesObj", "com.sun.star.sheet.NamedRanges" ) -//------------------------------------------------------------------------ - -sal_Bool lcl_UserVisibleName( const ScRangeData* pData ) -{ - //! als Methode an ScRangeData - - return ( pData && !pData->HasType( RT_DATABASE ) && !pData->HasType( RT_SHARED ) ); -} - -bool lcl_UserVisibleName( const ScRangeData& rData ) +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) : mpParent(pParent), pDocShell( pDocSh ), @@ -636,7 +625,7 @@ void SAL_CALL ScNamedRangesObj::removeByName( const rtl::OUString& aName ) if (pNames) { const ScRangeData* pData = pNames->findByName(aName); - if (pData && lcl_UserVisibleName(pData)) + if (pData && lcl_UserVisibleName(*pData)) { ScRangeName* pNewRanges = new ScRangeName(*pNames); pNewRanges->erase(*pData); @@ -683,13 +672,9 @@ sal_Int32 SAL_CALL ScNamedRangesObj::getCount() throw(uno::RuntimeException) ScRangeName* pNames = pDocShell->GetDocument()->GetRangeName(); if (pNames) { -#if NEW_RANGE_NAME -#else - sal_uInt16 nCount = pNames->GetCount(); - for (sal_uInt16 i=0; i<nCount; i++) - if (lcl_UserVisibleName( (*pNames)[i] )) // interne weglassen - ++nRet; -#endif + ScRangeName::const_iterator itr = pNames->begin(), itrEnd = pNames->end(); + if (lcl_UserVisibleName(*itr)) + ++nRet; } } return nRet; @@ -778,17 +763,13 @@ uno::Sequence<rtl::OUString> SAL_CALL ScNamedRangesObj::getElementNames() long nVisCount = getCount(); // Namen mit lcl_UserVisibleName uno::Sequence<rtl::OUString> aSeq(nVisCount); rtl::OUString* pAry = aSeq.getArray(); -#if NEW_RANGE_NAME -#else - sal_uInt16 nCount = pNames->GetCount(); sal_uInt16 nVisPos = 0; - for (sal_uInt16 i=0; i<nCount; i++) + ScRangeName::const_iterator itr = pNames->begin(), itrEnd = pNames->end(); + for (; itr != itrEnd; ++itr) { - ScRangeData* pData = (*pNames)[i]; - if ( lcl_UserVisibleName(pData) ) - pAry[nVisPos++] = pData->GetName(); + if (lcl_UserVisibleName(*itr)) + pAry[nVisPos++] = itr->GetName(); } -#endif return aSeq; } } @@ -805,7 +786,7 @@ sal_Bool SAL_CALL ScNamedRangesObj::hasByName( const rtl::OUString& aName ) if (pNames) { const ScRangeData* pData = pNames->findByName(aName); - if (pData && lcl_UserVisibleName(pData)) + if (pData && lcl_UserVisibleName(*pData)) return sal_True; } } |