summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKohei Yoshida <kyoshida@novell.com>2011-03-04 23:48:33 -0500
committerKohei Yoshida <kyoshida@novell.com>2011-03-05 15:21:08 -0500
commit70624edc40bcb4c17943762ce6660c22ed3297be (patch)
tree3ec4f2cc99d559a641ac4ac221f1ed64484cb1af
parent726a7d3893d49214ca5ef955beb30dcd49b67dd0 (diff)
More on adjusting for ScRangeName API change.
-rw-r--r--sc/inc/address.hxx3
-rw-r--r--sc/inc/rangenam.hxx3
-rw-r--r--sc/source/core/tool/address.cxx11
-rw-r--r--sc/source/core/tool/rangenam.cxx7
-rw-r--r--sc/source/ui/app/inputwin.cxx38
-rw-r--r--sc/source/ui/navipi/content.cxx38
-rw-r--r--sc/source/ui/pagedlg/areasdlg.cxx92
-rw-r--r--sc/source/ui/unoobj/nameuno.cxx39
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;
}
}