summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cui/source/tabpages/paragrph.cxx7
-rw-r--r--editeng/source/editeng/editdbg.cxx6
-rw-r--r--include/svl/style.hxx6
-rw-r--r--sc/source/filter/html/htmlexp.cxx14
-rw-r--r--sc/source/ui/docshell/docsh6.cxx7
-rw-r--r--sd/source/core/drawdoc3.cxx7
-rw-r--r--sd/source/ui/func/fuhhconv.cxx6
-rw-r--r--sfx2/source/dialog/mgetempl.cxx13
-rw-r--r--sfx2/source/dialog/newstyle.cxx6
-rw-r--r--sfx2/source/dialog/templdlg.cxx18
-rw-r--r--sfx2/source/doc/objcont.cxx34
-rw-r--r--svl/source/items/style.cxx39
-rw-r--r--svx/source/dialog/srchdlg.cxx13
-rw-r--r--svx/source/tbxctrls/tbcontrl.cxx27
-rw-r--r--sw/inc/docstyle.hxx4
-rw-r--r--sw/source/core/unocore/unostyle.cxx7
-rw-r--r--sw/source/ui/app/docstyle.cxx18
-rw-r--r--sw/source/ui/chrdlg/pardlg.cxx7
-rw-r--r--sw/source/ui/chrdlg/swuiccoll.cxx12
-rw-r--r--sw/source/ui/dbui/dbinsdlg.cxx7
-rw-r--r--sw/source/ui/fmtui/tmpdlg.cxx14
-rw-r--r--sw/source/ui/misc/docfnote.cxx9
-rw-r--r--sw/source/ui/utlui/tmplctrl.cxx11
-rw-r--r--sw/source/ui/utlui/uitool.cxx6
24 files changed, 130 insertions, 168 deletions
diff --git a/cui/source/tabpages/paragrph.cxx b/cui/source/tabpages/paragrph.cxx
index f9ab85f59ba9..c336b52be3f2 100644
--- a/cui/source/tabpages/paragrph.cxx
+++ b/cui/source/tabpages/paragrph.cxx
@@ -1942,8 +1942,9 @@ SvxExtParagraphTabPage::SvxExtParagraphTabPage( Window* pParent, const SfxItemSe
if ( pSh )
{
SfxStyleSheetBasePool* pPool = pSh->GetStyleSheetPool();
- pPool->SetSearchMask( SFX_STYLE_FAMILY_PAGE );
- SfxStyleSheetBase* pStyle = pPool->First();
+ SfxStyleSheetIterator iter(pPool,
+ SFX_STYLE_FAMILY_PAGE, SFXSTYLEBIT_ALL);
+ SfxStyleSheetBase* pStyle = iter.First();
String aStdName;
while( pStyle )
@@ -1952,7 +1953,7 @@ SvxExtParagraphTabPage::SvxExtParagraphTabPage( Window* pParent, const SfxItemSe
// first style == standard style
aStdName = pStyle->GetName();
m_pApplyCollBox->InsertEntry( pStyle->GetName() );
- pStyle = pPool->Next();
+ pStyle = iter.Next();
}
nStdPos = m_pApplyCollBox->GetEntryPos( aStdName );
}
diff --git a/editeng/source/editeng/editdbg.cxx b/editeng/source/editeng/editdbg.cxx
index 4006918917f7..785dedad0936 100644
--- a/editeng/source/editeng/editdbg.cxx
+++ b/editeng/source/editeng/editdbg.cxx
@@ -419,12 +419,12 @@ void EditDbg::ShowEditEngineData( EditEngine* pEE, sal_Bool bInfoBox )
if ( pEE->pImpEditEngine->GetStyleSheetPool() )
{
- sal_uLong nStyles = pEE->pImpEditEngine->GetStyleSheetPool() ? pEE->pImpEditEngine->GetStyleSheetPool()->Count() : 0;
+ SfxStyleSheetIterator aIter( pEE->pImpEditEngine->GetStyleSheetPool(), SFX_STYLE_FAMILY_ALL );
+ sal_uLong nStyles = pEE->pImpEditEngine->GetStyleSheetPool() ? aIter.Count() : 0;
fprintf( fp, "\n\n================================================================================" );
fprintf( fp, "\n================== Stylesheets =============================================" );
fprintf( fp, "\n================================================================================" );
- fprintf( fp, "\n#Template: %lu\n", nStyles );
- SfxStyleSheetIterator aIter( pEE->pImpEditEngine->GetStyleSheetPool(), SFX_STYLE_FAMILY_ALL );
+ fprintf( fp, "\n#Styles: %lu\n", nStyles );
SfxStyleSheetBase* pStyle = aIter.First();
while ( pStyle )
{
diff --git a/include/svl/style.hxx b/include/svl/style.hxx
index 9d4b3be2596e..464a9c86f673 100644
--- a/include/svl/style.hxx
+++ b/include/svl/style.hxx
@@ -204,8 +204,6 @@ friend class SfxStyleSheetBase;
SfxStyleSheetBasePool_Impl *pImp;
protected:
- SfxStyleSheetIterator& GetIterator_Impl();
-
OUString aAppName;
SfxItemPool& rPool;
SfxStyles aStyles;
@@ -229,8 +227,6 @@ public:
const SfxItemPool& GetPool() const;
virtual SfxStyleSheetIteratorPtr CreateIterator(SfxStyleFamily, sal_uInt16 nMask);
- virtual sal_uInt16 Count();
- virtual SfxStyleSheetBase* operator[](sal_uInt16 nIdx);
virtual SfxStyleSheetBase& Make(const OUString&,
SfxStyleFamily eFam,
@@ -248,8 +244,6 @@ public:
SfxStyleSheetBasePool& operator+=( const SfxStyleSheetBasePool& );
const SfxStyles& GetStyles();
- virtual SfxStyleSheetBase* First();
- virtual SfxStyleSheetBase* Next();
virtual SfxStyleSheetBase* Find( const OUString&, SfxStyleFamily eFam, sal_uInt16 n=SFXSTYLEBIT_ALL );
virtual bool SetParent(SfxStyleFamily eFam,
diff --git a/sc/source/filter/html/htmlexp.cxx b/sc/source/filter/html/htmlexp.cxx
index 5cbf833ca3b3..05c3e9d4053c 100644
--- a/sc/source/filter/html/htmlexp.cxx
+++ b/sc/source/filter/html/htmlexp.cxx
@@ -447,13 +447,16 @@ const SfxItemSet& ScHTMLExport::PageDefaults( SCTAB nTab )
// remember defaults for compare in WriteCell
if ( !aHTMLStyle.bInitialized )
{
- pStylePool->SetSearchMask( SFX_STYLE_FAMILY_PARA, SFXSTYLEBIT_ALL );
pStyleSheet = pStylePool->Find(
ScGlobal::GetRscString(STR_STYLENAME_STANDARD),
SFX_STYLE_FAMILY_PARA );
OSL_ENSURE( pStyleSheet, "ParaStyle not found! :-(" );
if (!pStyleSheet)
- pStyleSheet = pStylePool->First();
+ {
+ SfxStyleSheetIterator iter(pStylePool,
+ SFX_STYLE_FAMILY_PARA, SFXSTYLEBIT_ALL);
+ pStyleSheet = iter.First();
+ }
const SfxItemSet& rSetPara = pStyleSheet->GetItemSet();
aHTMLStyle.nDefaultScriptType = ScGlobal::GetDefaultScriptType();
@@ -470,11 +473,14 @@ const SfxItemSet& ScHTMLExport::PageDefaults( SCTAB nTab )
// Page style sheet printer settings, e.g. for background graphics.
// There's only one background graphic in HTML!
- pStylePool->SetSearchMask( SFX_STYLE_FAMILY_PAGE, SFXSTYLEBIT_ALL );
pStyleSheet = pStylePool->Find( pDoc->GetPageStyle( nTab ), SFX_STYLE_FAMILY_PAGE );
OSL_ENSURE( pStyleSheet, "PageStyle not found! :-(" );
if (!pStyleSheet)
- pStyleSheet = pStylePool->First();
+ {
+ SfxStyleSheetIterator iter(pStylePool,
+ SFX_STYLE_FAMILY_PAGE, SFXSTYLEBIT_ALL);
+ pStyleSheet = iter.First();
+ }
const SfxItemSet& rSet = pStyleSheet->GetItemSet();
if ( !aHTMLStyle.bInitialized )
{
diff --git a/sc/source/ui/docshell/docsh6.cxx b/sc/source/ui/docshell/docsh6.cxx
index 3256980caf29..a1b29853eefc 100644
--- a/sc/source/ui/docshell/docsh6.cxx
+++ b/sc/source/ui/docshell/docsh6.cxx
@@ -231,8 +231,9 @@ SfxStyleSheetBasePool* ScDocShell::GetStyleSheetPool()
static void lcl_AdjustPool( SfxStyleSheetBasePool* pStylePool )
{
- pStylePool->SetSearchMask(SFX_STYLE_FAMILY_PAGE, SFXSTYLEBIT_ALL);
- SfxStyleSheetBase *pStyle = pStylePool->First();
+ SfxStyleSheetIterator iter(pStylePool,
+ SFX_STYLE_FAMILY_PAGE, SFXSTYLEBIT_ALL);
+ SfxStyleSheetBase *pStyle = iter.First();
while ( pStyle )
{
SfxItemSet& rStyleSet = pStyle->GetItemSet();
@@ -253,7 +254,7 @@ static void lcl_AdjustPool( SfxStyleSheetBasePool* pStylePool )
rStyleSet.Put(SvxSetItem(ATTR_PAGE_FOOTERSET,pDestSet));
}
- pStyle = pStylePool->Next();
+ pStyle = iter.Next();
}
}
diff --git a/sd/source/core/drawdoc3.cxx b/sd/source/core/drawdoc3.cxx
index 3881a9ff04f6..35ef3199ee8f 100644
--- a/sd/source/core/drawdoc3.cxx
+++ b/sd/source/core/drawdoc3.cxx
@@ -1494,11 +1494,12 @@ void SdDrawDocument::SetMasterPage(sal_uInt16 nSdPageNum,
// only worry about presentation templates
String aName;
SdStyleSheetPool* pSourceStyleSheetPool = (SdStyleSheetPool*) pSourceDoc->GetStyleSheetPool();
- pSourceStyleSheetPool->SetSearchMask(SD_STYLE_FAMILY_MASTERPAGE);
+ SfxStyleSheetIterator iter(pSourceStyleSheetPool,
+ SD_STYLE_FAMILY_MASTERPAGE, SFXSTYLEBIT_ALL);
static_cast<SdStyleSheetPool*>( mxStyleSheetPool.get())->SetSearchMask(SD_STYLE_FAMILY_MASTERPAGE);
SdStyleSheetVector aCreatedStyles; // List of created stylesheets
- SfxStyleSheetBase* pHisSheet = pSourceStyleSheetPool->First();
+ SfxStyleSheetBase* pHisSheet = iter.First();
while (pHisSheet)
{
@@ -1561,7 +1562,7 @@ void SdDrawDocument::SetMasterPage(sal_uInt16 nSdPageNum,
aReplList.push_back(aReplData);
}
- pHisSheet = (SfxStyleSheet*) pSourceStyleSheetPool->Next();
+ pHisSheet = iter.Next();
}
// If new styles were created: re-create parent chaining of the item
diff --git a/sd/source/ui/func/fuhhconv.cxx b/sd/source/ui/func/fuhhconv.cxx
index bc73ef62ad0a..acc59294e815 100644
--- a/sd/source/ui/func/fuhhconv.cxx
+++ b/sd/source/ui/func/fuhhconv.cxx
@@ -163,7 +163,9 @@ void FuHangulHanjaConversion::ConvertStyles( sal_Int16 nTargetLanguage, const Fo
if( !pStyleSheetPool )
return;
- SfxStyleSheetBase* pStyle = pStyleSheetPool->First();
+ SfxStyleSheetIterator iter(pStyleSheetPool,
+ pStyleSheetPool->GetSearchFamily(), pStyleSheetPool->GetSearchMask());
+ SfxStyleSheetBase* pStyle = iter.First();
while( pStyle )
{
SfxItemSet& rSet = pStyle->GetItemSet();
@@ -186,7 +188,7 @@ void FuHangulHanjaConversion::ConvertStyles( sal_Int16 nTargetLanguage, const Fo
rSet.Put( aFontItem );
}
- pStyle = pStyleSheetPool->Next();
+ pStyle = iter.Next();
}
mpDoc->SetLanguage( EE_CHAR_LANGUAGE_CJK, nTargetLanguage );
diff --git a/sfx2/source/dialog/mgetempl.cxx b/sfx2/source/dialog/mgetempl.cxx
index 698baafabb32..b26c08cd5f53 100644
--- a/sfx2/source/dialog/mgetempl.cxx
+++ b/sfx2/source/dialog/mgetempl.cxx
@@ -83,7 +83,6 @@ SfxManageStyleSheetPage::SfxManageStyleSheetPage(Window* pParent, const SfxItemS
if ( pPool )
{
pPool->SetSearchMask( pStyle->GetFamily() );
- pPool->First(); // for SW - update internal list
}
if ( pStyle->GetName().isEmpty() && pPool )
@@ -119,12 +118,14 @@ SfxManageStyleSheetPage::SfxManageStyleSheetPage(Window* pParent, const SfxItemS
if ( pStyle->HasFollowSupport() && pPool )
{
- SfxStyleSheetBase* pPoolStyle = pPool->First();
+ SfxStyleSheetIterator iter(pPool, pStyle->GetFamily(), SFXSTYLEBIT_ALL);
+
+ SfxStyleSheetBase* pPoolStyle = iter.First();
while ( pPoolStyle )
{
m_pFollowLb->InsertEntry( pPoolStyle->GetName() );
- pPoolStyle = pPool->Next();
+ pPoolStyle = iter.Next();
}
// A new Template is not yet in the Pool
@@ -143,7 +144,9 @@ SfxManageStyleSheetPage::SfxManageStyleSheetPage(Window* pParent, const SfxItemS
// the base template can be set to NULL
m_pBaseLb->InsertEntry( SfxResId(STR_NONE).toString() );
- SfxStyleSheetBase* pPoolStyle = pPool->First();
+ SfxStyleSheetIterator iter(pPool, pStyle->GetFamily(), SFXSTYLEBIT_ALL);
+
+ SfxStyleSheetBase* pPoolStyle = iter.First();
while ( pPoolStyle )
{
@@ -151,7 +154,7 @@ SfxManageStyleSheetPage::SfxManageStyleSheetPage(Window* pParent, const SfxItemS
// own name as base template
if ( aStr != aName )
m_pBaseLb->InsertEntry( aStr );
- pPoolStyle = pPool->Next();
+ pPoolStyle = iter.Next();
}
}
else
diff --git a/sfx2/source/dialog/newstyle.cxx b/sfx2/source/dialog/newstyle.cxx
index a81cd6d2a38e..18780f20c3b3 100644
--- a/sfx2/source/dialog/newstyle.cxx
+++ b/sfx2/source/dialog/newstyle.cxx
@@ -81,11 +81,13 @@ SfxNewStyleDlg::SfxNewStyleDlg( Window* pParent, SfxStyleSheetBasePool& rInPool
aColBox.SetDoubleClickHdl(LINK(this, SfxNewStyleDlg, OKHdl));
// aColBox.SetAccessibleName(SfxResId(FL_COL).toString());
- SfxStyleSheetBase *pStyle = rPool.First();
+ SfxStyleSheetIterator iter(&rPool,
+ rPool.GetSearchFamily(), rPool.GetSearchMask());
+ SfxStyleSheetBase *pStyle = iter.First();
while ( pStyle )
{
aColBox.InsertEntry(pStyle->GetName());
- pStyle = rPool.Next();
+ pStyle = iter.Next();
}
}
diff --git a/sfx2/source/dialog/templdlg.cxx b/sfx2/source/dialog/templdlg.cxx
index 73c9f8705b5e..9bf8063c4568 100644
--- a/sfx2/source/dialog/templdlg.cxx
+++ b/sfx2/source/dialog/templdlg.cxx
@@ -1227,7 +1227,10 @@ void SfxCommonTemplateDialog_Impl::EnableTreeDrag( sal_Bool bEnable )
{
if ( pStyleSheetPool )
{
- SfxStyleSheetBase* pStyle = pStyleSheetPool->First();
+ SfxStyleSheetIterator iter(pStyleSheetPool,
+ pStyleSheetPool->GetSearchFamily(),
+ pStyleSheetPool->GetSearchMask());
+ SfxStyleSheetBase* pStyle = iter.First();
if ( pTreeBox )
{
if ( pStyle && pStyle->HasParentSupport() && bEnable )
@@ -1248,8 +1251,10 @@ void SfxCommonTemplateDialog_Impl::FillTreeBox()
{
const SfxStyleFamilyItem *pItem = GetFamilyItem_Impl();
pStyleSheetPool->SetSearchMask(pItem->GetFamily(), SFXSTYLEBIT_ALL_VISIBLE);
+ SfxStyleSheetIterator iter(pStyleSheetPool,
+ pItem->GetFamily(), SFXSTYLEBIT_ALL_VISIBLE);
StyleTreeArr_Impl aArr;
- SfxStyleSheetBase *pStyle = pStyleSheetPool->First();
+ SfxStyleSheetBase *pStyle = iter.First();
if(pStyle && pStyle->HasParentSupport() && bTreeDrag )
pTreeBox->SetDragDropMode(SV_DRAGDROP_CTRL_MOVE);
else
@@ -1259,7 +1264,7 @@ void SfxCommonTemplateDialog_Impl::FillTreeBox()
StyleTree_Impl* pNew =
new StyleTree_Impl(pStyle->GetName(), pStyle->GetParent());
aArr.push_back(pNew);
- pStyle = pStyleSheetPool->Next();
+ pStyle = iter.Next();
}
MakeTree_Impl(aArr);
ExpandedEntries_t aEntries;
@@ -1392,7 +1397,10 @@ void SfxCommonTemplateDialog_Impl::UpdateStyles_Impl(sal_uInt16 nFlags)
{
EnableItem(SID_STYLE_WATERCAN,sal_False);
- SfxStyleSheetBase *pStyle = pStyleSheetPool->First();
+ SfxStyleSheetIterator iter(pStyleSheetPool,
+ pStyleSheetPool->GetSearchFamily(),
+ pStyleSheetPool->GetSearchMask());
+ SfxStyleSheetBase *pStyle = iter.First();
SvTreeListEntry* pEntry = aFmtLb.First();
std::vector<OUString> aStrings;
@@ -1407,7 +1415,7 @@ void SfxCommonTemplateDialog_Impl::UpdateStyles_Impl(sal_uInt16 nFlags)
for(nPos = aStrings.size(); nPos && aSorter.compare(aStrings[nPos-1], pStyle->GetName()) > 0; --nPos)
{};
aStrings.insert(aStrings.begin() + nPos, pStyle->GetName());
- pStyle = pStyleSheetPool->Next();
+ pStyle = iter.Next();
}
size_t nCount = aStrings.size();
diff --git a/sfx2/source/doc/objcont.cxx b/sfx2/source/doc/objcont.cxx
index 49f9745f4f96..da71fafe3133 100644
--- a/sfx2/source/doc/objcont.cxx
+++ b/sfx2/source/doc/objcont.cxx
@@ -319,21 +319,15 @@ void SfxObjectShell::LoadStyles
*/
{
- struct Styles_Impl
- {
- SfxStyleSheetBase *pSource;
- SfxStyleSheetBase *pDest;
- };
-
SfxStyleSheetBasePool *pSourcePool = rSource.GetStyleSheetPool();
DBG_ASSERT(pSourcePool, "Source-DocumentShell ohne StyleSheetPool");
SfxStyleSheetBasePool *pMyPool = GetStyleSheetPool();
DBG_ASSERT(pMyPool, "Dest-DocumentShell ohne StyleSheetPool");
- pSourcePool->SetSearchMask(SFX_STYLE_FAMILY_ALL, SFXSTYLEBIT_ALL);
- Styles_Impl *pFound = new Styles_Impl[pSourcePool->Count()];
- sal_uInt16 nFound = 0;
+ SfxStyleSheetIterator iter(pSourcePool,
+ SFX_STYLE_FAMILY_ALL, SFXSTYLEBIT_ALL);
+ std::vector<std::pair<SfxStyleSheetBase*, SfxStyleSheetBase*> > found;
- SfxStyleSheetBase *pSource = pSourcePool->First();
+ SfxStyleSheetBase *pSource = iter.First();
while ( pSource )
{
SfxStyleSheetBase *pDest =
@@ -344,21 +338,19 @@ void SfxObjectShell::LoadStyles
pSource->GetFamily(), pSource->GetMask());
// Setting of Parents, the next style
}
- pFound[nFound].pSource = pSource;
- pFound[nFound].pDest = pDest;
- ++nFound;
- pSource = pSourcePool->Next();
+ found.push_back(std::make_pair(pSource, pDest));
+ pSource = iter.Next();
}
- for ( sal_uInt16 i = 0; i < nFound; ++i )
+ for (size_t i = 0; i < found.size(); ++i)
{
- pFound[i].pDest->GetItemSet().PutExtended(pFound[i].pSource->GetItemSet(), SFX_ITEM_DONTCARE, SFX_ITEM_DEFAULT);
- if(pFound[i].pSource->HasParentSupport())
- pFound[i].pDest->SetParent(pFound[i].pSource->GetParent());
- if(pFound[i].pSource->HasFollowSupport())
- pFound[i].pDest->SetFollow(pFound[i].pSource->GetParent());
+ found[i].second->GetItemSet().PutExtended(found[i].first->GetItemSet(),
+ SFX_ITEM_DONTCARE, SFX_ITEM_DEFAULT);
+ if (found[i].first->HasParentSupport())
+ found[i].second->SetParent(found[i].first->GetParent());
+ if (found[i].first->HasFollowSupport())
+ found[i].second->SetFollow(found[i].first->GetParent());
}
- delete [] pFound;
}
//--------------------------------------------------------------------
diff --git a/svl/source/items/style.cxx b/svl/source/items/style.cxx
index 1c0465581b5a..57f202466bc1 100644
--- a/svl/source/items/style.cxx
+++ b/svl/source/items/style.cxx
@@ -83,8 +83,7 @@ SfxStyleSheetHint::SfxStyleSheetHint
class SfxStyleSheetBasePool_Impl
{
-public:
- SfxStyleSheetIteratorPtr pIter;
+ // TODO: move members here
};
@@ -531,16 +530,6 @@ void SfxStyleSheetBasePool::Replace( SfxStyleSheetBase& rSource, SfxStyleSheetBa
rTargetSet.Put( rSourceSet );
}
-SfxStyleSheetIterator& SfxStyleSheetBasePool::GetIterator_Impl()
-{
- if( !pImp->pIter || (pImp->pIter->GetSearchMask() != nMask) || (pImp->pIter->GetSearchFamily() != nSearchFamily) )
- {
- pImp->pIter = CreateIterator( nSearchFamily, nMask );
- }
-
- return *pImp->pIter;
-}
-
SfxStyleSheetBasePool::SfxStyleSheetBasePool( SfxItemPool& r )
: aAppName(r.GetName())
, rPool(r)
@@ -682,16 +671,6 @@ SfxStyleSheetBasePool& SfxStyleSheetBasePool::operator+=( const SfxStyleSheetBas
return *this;
}
-sal_uInt16 SfxStyleSheetBasePool::Count()
-{
- return GetIterator_Impl().Count();
-}
-
-SfxStyleSheetBase *SfxStyleSheetBasePool::operator[](sal_uInt16 nIdx)
-{
- return GetIterator_Impl()[nIdx];
-}
-
SfxStyleSheetBase* SfxStyleSheetBasePool::Find(const OUString& rName,
SfxStyleFamily eFam,
sal_uInt16 mask)
@@ -705,16 +684,6 @@ const SfxStyles& SfxStyleSheetBasePool::GetStyles()
return aStyles;
}
-SfxStyleSheetBase* SfxStyleSheetBasePool::First()
-{
- return GetIterator_Impl().First();
-}
-
-SfxStyleSheetBase* SfxStyleSheetBasePool::Next()
-{
- return GetIterator_Impl().Next();
-}
-
void SfxStyleSheetBasePool::Remove( SfxStyleSheetBase* p )
{
if( p )
@@ -791,9 +760,8 @@ void SfxStyleSheetBasePool::ChangeParent(const OUString& rOld,
const OUString& rNew,
bool bVirtual)
{
- const sal_uInt16 nTmpMask = GetSearchMask();
- SetSearchMask(GetSearchFamily(), SFXSTYLEBIT_ALL);
- for( SfxStyleSheetBase* p = First(); p; p = Next() )
+ SfxStyleSheetIterator iter(this, GetSearchFamily(), SFXSTYLEBIT_ALL);
+ for (SfxStyleSheetBase* p = iter.First(); p; p = iter.Next())
{
if( p->GetParent() == rOld )
{
@@ -803,7 +771,6 @@ void SfxStyleSheetBasePool::ChangeParent(const OUString& rOld,
p->aParent = rNew;
}
}
- SetSearchMask(GetSearchFamily(), nTmpMask);
}
void SfxStyleSheetBase::Load( SvStream&, sal_uInt16 )
diff --git a/svx/source/dialog/srchdlg.cxx b/svx/source/dialog/srchdlg.cxx
index 11d235e57870..63b3a9b45f31 100644
--- a/svx/source/dialog/srchdlg.cxx
+++ b/svx/source/dialog/srchdlg.cxx
@@ -894,16 +894,16 @@ void SvxSearchDialog::Init_Impl( int bSearchPattern )
m_pSearchTmplLB->Clear();
m_pReplaceTmplLB->Clear();
SfxStyleSheetBasePool* pStylePool = pShell->GetStyleSheetPool();
- pStylePool->SetSearchMask( pSearchItem->GetFamily(),
+ SfxStyleSheetIterator iter(pStylePool, pSearchItem->GetFamily(),
SFXSTYLEBIT_ALL );
- SfxStyleSheetBase* pBase = pStylePool->First();
+ SfxStyleSheetBase* pBase = iter.First();
while ( pBase )
{
if ( pBase->IsUsed() )
m_pSearchTmplLB->InsertEntry( pBase->GetName() );
m_pReplaceTmplLB->InsertEntry( pBase->GetName() );
- pBase = pStylePool->Next();
+ pBase = iter.Next();
}
m_pSearchTmplLB->SelectEntry( pSearchItem->GetSearchString() );
m_pReplaceTmplLB->SelectEntry( pSearchItem->GetReplaceString() );
@@ -1564,17 +1564,18 @@ void SvxSearchDialog::TemplatesChanged_Impl( SfxStyleSheetBasePool& rPool )
String aOldRepl( m_pReplaceTmplLB->GetSelectEntry() );
m_pSearchTmplLB->Clear();
m_pReplaceTmplLB->Clear();
- rPool.SetSearchMask( pSearchItem->GetFamily(), SFXSTYLEBIT_ALL );
m_pSearchTmplLB->SetUpdateMode( sal_False );
m_pReplaceTmplLB->SetUpdateMode( sal_False );
- SfxStyleSheetBase* pBase = rPool.First();
+ SfxStyleSheetIterator iter(&rPool,
+ pSearchItem->GetFamily(), SFXSTYLEBIT_ALL);
+ SfxStyleSheetBase* pBase = iter.First();
while ( pBase )
{
if ( pBase->IsUsed() )
m_pSearchTmplLB->InsertEntry( pBase->GetName() );
m_pReplaceTmplLB->InsertEntry( pBase->GetName() );
- pBase = rPool.Next();
+ pBase = iter.Next();
}
m_pSearchTmplLB->SetUpdateMode( sal_True );
m_pReplaceTmplLB->SetUpdateMode( sal_True );
diff --git a/svx/source/tbxctrls/tbcontrl.cxx b/svx/source/tbxctrls/tbcontrl.cxx
index 779753c45b5f..aa5a5910c39f 100644
--- a/svx/source/tbxctrls/tbcontrl.cxx
+++ b/svx/source/tbxctrls/tbcontrl.cxx
@@ -420,11 +420,11 @@ void SvxStyleBox_Impl::Select()
if ( pPool )
{
- pPool->SetSearchMask( eStyleFamily, SFXSTYLEBIT_ALL );
+ SfxStyleSheetIterator iter(pPool, eStyleFamily, SFXSTYLEBIT_ALL);
- pStyle = pPool->First();
+ pStyle = iter.First();
while ( pStyle && OUString( pStyle->GetName() ) != aSearchEntry )
- pStyle = pPool->Next();
+ pStyle = iter.Next();
}
if ( !pStyle )
@@ -569,11 +569,11 @@ void SvxStyleBox_Impl::UserDraw( const UserDrawEvent& rUDEvt )
if ( pPool )
{
- pPool->SetSearchMask( eStyleFamily, SFXSTYLEBIT_ALL );
+ SfxStyleSheetIterator iter(pPool, eStyleFamily, SFXSTYLEBIT_ALL);
- pStyle = pPool->First();
+ pStyle = iter.First();
while ( pStyle && OUString( pStyle->GetName() ) != aStyleName )
- pStyle = pPool->Next();
+ pStyle = iter.Next();
}
if ( !pStyle )
@@ -1942,17 +1942,16 @@ void SvxStyleToolBoxControl::FillStyleBox()
if ( pStyleSheetPool && pBox && nActFamily!=0xffff )
{
const SfxStyleFamily eFamily = GetActFamily();
- sal_uInt16 nCount = pStyleSheetPool->Count();
SfxStyleSheetBase* pStyle = NULL;
bool bDoFill = false;
- pStyleSheetPool->SetSearchMask( eFamily, SFXSTYLEBIT_USED );
+ SfxStyleSheetIterator iter(pStyleSheetPool, eFamily, SFXSTYLEBIT_USED);
// Check whether fill is necessary
- pStyle = pStyleSheetPool->First();
+ pStyle = iter.First();
//!!! TODO: This condition isn't right any longer, because we always show some default entries
//!!! so the list doesn't show the count
- if ( nCount != pBox->GetEntryCount() )
+ if (iter.Count() != pBox->GetEntryCount())
{
bDoFill = true;
}
@@ -1962,7 +1961,7 @@ void SvxStyleToolBoxControl::FillStyleBox()
while ( pStyle && !bDoFill )
{
bDoFill = ( pBox->GetEntry(i) != pStyle->GetName() );
- pStyle = pStyleSheetPool->Next();
+ pStyle = iter.Next();
i++;
}
}
@@ -1976,7 +1975,7 @@ void SvxStyleToolBoxControl::FillStyleBox()
sal_uInt16 _i;
sal_uInt32 nCnt = pImpl->aDefaultStyles.size();
- pStyle = pStyleSheetPool->First();
+ pStyle = iter.First();
if( pImpl->bSpecModeWriter || pImpl->bSpecModeCalc )
{
@@ -1997,7 +1996,7 @@ void SvxStyleToolBoxControl::FillStyleBox()
if( bInsert )
pBox->InsertEntry( aName );
- pStyle = pStyleSheetPool->Next();
+ pStyle = iter.Next();
}
}
else
@@ -2005,7 +2004,7 @@ void SvxStyleToolBoxControl::FillStyleBox()
while ( pStyle )
{
pBox->InsertEntry( pStyle->GetName() );
- pStyle = pStyleSheetPool->Next();
+ pStyle = iter.Next();
}
}
}
diff --git a/sw/inc/docstyle.hxx b/sw/inc/docstyle.hxx
index 900bbbc596ec..f422d97baabd 100644
--- a/sw/inc/docstyle.hxx
+++ b/sw/inc/docstyle.hxx
@@ -175,8 +175,6 @@ public:
virtual SfxStyleSheetBase* Find(const OUString& rStr);
virtual void Notify( SfxBroadcaster&, const SfxHint& );
-
- void InvalidateIterator();
};
@@ -220,8 +218,6 @@ public:
virtual void SAL_CALL acquire( ) throw ();
virtual void SAL_CALL release( ) throw ();
- void InvalidateIterator();
-
protected:
virtual ~SwDocStyleSheetPool();
diff --git a/sw/source/core/unocore/unostyle.cxx b/sw/source/core/unocore/unostyle.cxx
index 1eaa460e8597..152e3e3e7a13 100644
--- a/sw/source/core/unocore/unostyle.cxx
+++ b/sw/source/core/unocore/unostyle.cxx
@@ -1900,14 +1900,15 @@ static void lcl_SetStyleProperty(const SfxItemPropertySimpleEntry& rEntry,
//
sal_Int16 nIdx = GetCommandContextIndex( pSeq[i].Name );
- pBasePool->SetSearchMask( SFX_STYLE_FAMILY_PARA, SFXSTYLEBIT_ALL );
+ SfxStyleSheetIterator iter(pBasePool,
+ SFX_STYLE_FAMILY_PARA, SFXSTYLEBIT_ALL);
sal_Bool bStyleFound = sal_False;
- const SfxStyleSheetBase* pBase = pBasePool->First();
+ const SfxStyleSheetBase* pBase = iter.First();
while (pBase && !bStyleFound)
{
if(pBase->GetName() == aStyleName)
bStyleFound = sal_True;
- pBase = pBasePool->Next();
+ pBase = iter.Next();
}
if (nIdx == -1 || !bStyleFound)
diff --git a/sw/source/ui/app/docstyle.cxx b/sw/source/ui/app/docstyle.cxx
index dc78296ca79e..4f10b1cdb354 100644
--- a/sw/source/ui/app/docstyle.cxx
+++ b/sw/source/ui/app/docstyle.cxx
@@ -476,8 +476,6 @@ void SwDocStyleSheet::SetHidden( sal_Bool bValue )
if( bChg )
{
- // calling pPool->First() here would be quite slow...
- dynamic_cast<SwDocStyleSheetPool*>(pPool)->InvalidateIterator(); // internal list has to be updated
pPool->Broadcast( SfxStyleSheetHint( SFX_STYLESHEET_MODIFIED, *this ) );
SwEditShell* pSh = rDoc.GetEditShell();
if( pSh )
@@ -913,7 +911,6 @@ bool SwDocStyleSheet::SetName( const OUString& rStr)
if( bChg )
{
- pPool->First(); // internal list has to be updated
pPool->Broadcast( SfxStyleSheetHint( SFX_STYLESHEET_MODIFIED, *this ) );
SwEditShell* pSh = rDoc.GetEditShell();
if( pSh )
@@ -2867,21 +2864,6 @@ void SwStyleSheetIterator::AppendStyleList(const boost::ptr_vector<String>& rLis
}
}
-void SwDocStyleSheetPool::InvalidateIterator()
-{
- dynamic_cast<SwStyleSheetIterator&>(GetIterator_Impl()).InvalidateIterator();
-}
-
-void SwStyleSheetIterator::InvalidateIterator()
-{
- // potentially we could send an SfxHint to Notify but currently it's
- // iterating over the vector anyway so would still be slow - why does
- // this iterator not use a map?
- bFirstCalled = false;
- nLastPos = 0;
- aLst.Erase();
-}
-
void SwStyleSheetIterator::Notify( SfxBroadcaster&, const SfxHint& rHint )
{
// search and remove from View-List!!
diff --git a/sw/source/ui/chrdlg/pardlg.cxx b/sw/source/ui/chrdlg/pardlg.cxx
index 20b4f957de30..17e39a58a313 100644
--- a/sw/source/ui/chrdlg/pardlg.cxx
+++ b/sw/source/ui/chrdlg/pardlg.cxx
@@ -240,13 +240,14 @@ void SwParaDlg::PageCreated(sal_uInt16 nId, SfxTabPage& rPage)
((SwParagraphNumTabPage&)rPage).EnableNewStart();
ListBox & rBox = ((SwParagraphNumTabPage&)rPage).GetStyleBox();
SfxStyleSheetBasePool* pPool = rView.GetDocShell()->GetStyleSheetPool();
- pPool->SetSearchMask(SFX_STYLE_FAMILY_PSEUDO, SFXSTYLEBIT_ALL);
- const SfxStyleSheetBase* pBase = pPool->First();
+ SfxStyleSheetIterator iter(pPool,
+ SFX_STYLE_FAMILY_PSEUDO, SFXSTYLEBIT_ALL);
+ SfxStyleSheetBase const* pBase = iter.First();
std::set<String> aNames;
while(pBase)
{
aNames.insert(pBase->GetName());
- pBase = pPool->Next();
+ pBase = iter.Next();
}
for(std::set<String>::const_iterator it = aNames.begin(); it != aNames.end(); ++it)
rBox.InsertEntry(*it);
diff --git a/sw/source/ui/chrdlg/swuiccoll.cxx b/sw/source/ui/chrdlg/swuiccoll.cxx
index beb916efbc8a..c46eceb7eb20 100644
--- a/sw/source/ui/chrdlg/swuiccoll.cxx
+++ b/sw/source/ui/chrdlg/swuiccoll.cxx
@@ -184,14 +184,14 @@ void SwCondCollPage::Reset(const SfxItemSet &/*rSet*/)
aTbLinks.Clear();
SfxStyleSheetBasePool* pPool = rSh.GetView().GetDocShell()->GetStyleSheetPool();
- pPool->SetSearchMask(SFX_STYLE_FAMILY_PARA, SFXSTYLEBIT_ALL);
aStyleLB.Clear();
- const SfxStyleSheetBase* pBase = pPool->First();
+ SfxStyleSheetIterator iter(pPool, SFX_STYLE_FAMILY_PARA, SFXSTYLEBIT_ALL);
+ const SfxStyleSheetBase* pBase = iter.First();
while( pBase )
{
if(!pFmt || pBase->GetName() != pFmt->GetName())
aStyleLB.InsertEntry(pBase->GetName());
- pBase = pPool->Next();
+ pBase = iter.Next();
}
aStyleLB.SelectEntryPos(0);
@@ -274,14 +274,14 @@ IMPL_LINK( SwCondCollPage, SelectHdl, ListBox*, pBox)
sal_uInt16 nSearchFlags = pBox->GetSelectEntryPos();
nSearchFlags = *(sal_uInt16*)aFilterLB.GetEntryData(nSearchFlags);
SfxStyleSheetBasePool* pPool = rSh.GetView().GetDocShell()->GetStyleSheetPool();
- pPool->SetSearchMask(SFX_STYLE_FAMILY_PARA, nSearchFlags);
- const SfxStyleSheetBase* pBase = pPool->First();
+ SfxStyleSheetIterator iter(pPool, SFX_STYLE_FAMILY_PARA, nSearchFlags);
+ const SfxStyleSheetBase* pBase = iter.First();
while( pBase )
{
if(!pFmt || pBase->GetName() != pFmt->GetName())
aStyleLB.InsertEntry(pBase->GetName());
- pBase = pPool->Next();
+ pBase = iter.Next();
}
aStyleLB.SelectEntryPos(0);
SelectHdl(&aStyleLB);
diff --git a/sw/source/ui/dbui/dbinsdlg.cxx b/sw/source/ui/dbui/dbinsdlg.cxx
index 8fc1c6ce6d4e..da49467b451d 100644
--- a/sw/source/ui/dbui/dbinsdlg.cxx
+++ b/sw/source/ui/dbui/dbinsdlg.cxx
@@ -348,14 +348,15 @@ SwInsertDBColAutoPilot::SwInsertDBColAutoPilot( SwView& rView,
// fill paragraph templates-ListBox
{
SfxStyleSheetBasePool* pPool = pView->GetDocShell()->GetStyleSheetPool();
- pPool->SetSearchMask( SFX_STYLE_FAMILY_PARA, SFXSTYLEBIT_ALL );
+ SfxStyleSheetIterator iter(pPool,
+ SFX_STYLE_FAMILY_PARA, SFXSTYLEBIT_ALL);
aLbDbParaColl.InsertEntry( sNoTmpl );
- const SfxStyleSheetBase* pBase = pPool->First();
+ const SfxStyleSheetBase* pBase = iter.First();
while( pBase )
{
aLbDbParaColl.InsertEntry( pBase->GetName() );
- pBase = pPool->Next();
+ pBase = iter.Next();
}
aLbDbParaColl.SelectEntryPos( 0 );
}
diff --git a/sw/source/ui/fmtui/tmpdlg.cxx b/sw/source/ui/fmtui/tmpdlg.cxx
index af1c631843e9..ca6da1fae5dc 100644
--- a/sw/source/ui/fmtui/tmpdlg.cxx
+++ b/sw/source/ui/fmtui/tmpdlg.cxx
@@ -420,13 +420,14 @@ void SwTemplateDlg::PageCreated( sal_uInt16 nId, SfxTabPage &rPage )
}//<-end
ListBox & rBox = ((SwParagraphNumTabPage&)rPage).GetStyleBox();
SfxStyleSheetBasePool* pPool = pWrtShell->GetView().GetDocShell()->GetStyleSheetPool();
- pPool->SetSearchMask(SFX_STYLE_FAMILY_PSEUDO, SFXSTYLEBIT_ALL);
- const SfxStyleSheetBase* pBase = pPool->First();
+ SfxStyleSheetIterator iter(pPool,
+ SFX_STYLE_FAMILY_PSEUDO, SFXSTYLEBIT_ALL);
+ const SfxStyleSheetBase* pBase = iter.First();
std::set<String> aNames;
while(pBase)
{
aNames.insert(pBase->GetName());
- pBase = pPool->Next();
+ pBase = iter.Next();
}
for(std::set<String>::const_iterator it = aNames.begin(); it != aNames.end(); ++it)
rBox.InsertEntry(*it);
@@ -488,12 +489,13 @@ void SwTemplateDlg::PageCreated( sal_uInt16 nId, SfxTabPage &rPage )
{
SfxStyleSheetBasePool* pStyleSheetPool = pWrtShell->
GetView().GetDocShell()->GetStyleSheetPool();
- pStyleSheetPool->SetSearchMask(SFX_STYLE_FAMILY_PARA);
- SfxStyleSheetBase *pFirstStyle = pStyleSheetPool->First();
+ SfxStyleSheetIterator iter(pStyleSheetPool,
+ SFX_STYLE_FAMILY_PARA, SFXSTYLEBIT_ALL);
+ SfxStyleSheetBase *pFirstStyle = iter.First();
while(pFirstStyle)
{
aList.push_back( pFirstStyle->GetName() );
- pFirstStyle = pStyleSheetPool->Next();
+ pFirstStyle = iter.Next();
}
}
aSet.Put (SfxStringListItem(SID_COLLECT_LIST, &aList));
diff --git a/sw/source/ui/misc/docfnote.cxx b/sw/source/ui/misc/docfnote.cxx
index e515491ad19b..767906823570 100644
--- a/sw/source/ui/misc/docfnote.cxx
+++ b/sw/source/ui/misc/docfnote.cxx
@@ -171,13 +171,14 @@ void SwEndNoteOptionPage::Reset( const SfxItemSet& )
// styles special regions
// paragraph
- SfxStyleSheetBasePool* pStyleSheetPool = pSh->GetView().GetDocShell()->GetStyleSheetPool();
- pStyleSheetPool->SetSearchMask(SFX_STYLE_FAMILY_PARA, SWSTYLEBIT_EXTRA);
- SfxStyleSheetBase *pStyle = pStyleSheetPool->First();
+ SfxStyleSheetBasePool *const pSPool =
+ pSh->GetView().GetDocShell()->GetStyleSheetPool();
+ SfxStyleSheetIterator iter(pSPool, SFX_STYLE_FAMILY_PARA, SWSTYLEBIT_EXTRA);
+ SfxStyleSheetBase *pStyle = iter.First();
while(pStyle)
{
m_pParaTemplBox->InsertEntry(pStyle->GetName());
- pStyle = pStyleSheetPool->Next();
+ pStyle = iter.Next();
}
String sStr;
diff --git a/sw/source/ui/utlui/tmplctrl.cxx b/sw/source/ui/utlui/tmplctrl.cxx
index 456faf6e7d8b..bb3ec4fb5a94 100644
--- a/sw/source/ui/utlui/tmplctrl.cxx
+++ b/sw/source/ui/utlui/tmplctrl.cxx
@@ -104,16 +104,17 @@ void SwTemplateControl::Command( const CommandEvent& rCEvt )
{
SfxStyleSheetBasePool* pPool = pView->GetDocShell()->
GetStyleSheetPool();
- pPool->SetSearchMask(SFX_STYLE_FAMILY_PAGE, SFXSTYLEBIT_ALL);
- if( pPool->Count() > 1 )
+ SfxStyleSheetIterator iter(pPool,
+ SFX_STYLE_FAMILY_PAGE, SFXSTYLEBIT_ALL);
+ if (iter.Count() > 1)
{
sal_uInt16 nCount = 0;
- SfxStyleSheetBase* pStyle = pPool->First();
+ SfxStyleSheetBase* pStyle = iter.First();
while( pStyle )
{
nCount++;
aPop.InsertItem( nCount, pStyle->GetName() );
- pStyle = pPool->Next();
+ pStyle = iter.Next();
}
aPop.Execute( &GetStatusBar(), rCEvt.GetMousePosPixel());
@@ -121,7 +122,7 @@ void SwTemplateControl::Command( const CommandEvent& rCEvt )
if( nCurrId != USHRT_MAX)
{
// looks a bit awkward, but another way is not possible
- pStyle = pPool->operator[]( nCurrId - 1 );
+ pStyle = iter.operator[]( nCurrId - 1 );
SfxStringItem aStyle( FN_SET_PAGE_STYLE, pStyle->GetName() );
pWrtShell->GetView().GetViewFrame()->GetDispatcher()->Execute(
FN_SET_PAGE_STYLE,
diff --git a/sw/source/ui/utlui/uitool.cxx b/sw/source/ui/utlui/uitool.cxx
index 70e5e2234b36..8251b326f985 100644
--- a/sw/source/ui/utlui/uitool.cxx
+++ b/sw/source/ui/utlui/uitool.cxx
@@ -598,9 +598,9 @@ void FillCharStyleListBox(ListBox& rToFill, SwDocShell* pDocSh, bool bSorted, bo
{
sal_Bool bHasOffset = rToFill.GetEntryCount() > 0;
SfxStyleSheetBasePool* pPool = pDocSh->GetStyleSheetPool();
- pPool->SetSearchMask(SFX_STYLE_FAMILY_CHAR, SFXSTYLEBIT_ALL);
SwDoc* pDoc = pDocSh->GetDoc();
- const SfxStyleSheetBase* pBase = pPool->First();
+ SfxStyleSheetIterator iter(pPool, SFX_STYLE_FAMILY_CHAR, SFXSTYLEBIT_ALL);
+ const SfxStyleSheetBase* pBase = iter.First();
String sStandard;
SwStyleNameMapper::FillUIName( RES_POOLCOLL_STANDARD, sStandard );
while(pBase)
@@ -615,7 +615,7 @@ void FillCharStyleListBox(ListBox& rToFill, SwDocShell* pDocSh, bool bSorted, bo
sal_IntPtr nPoolId = SwStyleNameMapper::GetPoolIdFromUIName( pBase->GetName(), nsSwGetPoolIdFromName::GET_POOLID_CHRFMT );
rToFill.SetEntryData( nPos, (void*) (nPoolId));
}
- pBase = pPool->Next();
+ pBase = iter.Next();
}
// non-pool styles
const SwCharFmts* pFmts = pDoc->GetCharFmts();