summaryrefslogtreecommitdiff
path: root/editeng
diff options
context:
space:
mode:
authorJoseph Powers <jpowers27@cox.net>2010-12-27 20:12:23 -0800
committerJoseph Powers <jpowers27@cox.net>2010-12-31 06:57:20 -0800
commit8b33788c270f5caf630915ab067ff4d685a081c2 (patch)
tree8227e29eabc6c16f85923c776d2c7598a98c3789 /editeng
parent85b34a679f8adba3d013850e4c0f79832247a844 (diff)
Remove DECLARE_LIST( DummyItemList, ConstPoolItemPtr )
Diffstat (limited to 'editeng')
-rw-r--r--editeng/source/editeng/editdoc.cxx33
-rw-r--r--editeng/source/editeng/editdoc.hxx15
-rw-r--r--editeng/source/editeng/impedit4.cxx12
3 files changed, 48 insertions, 12 deletions
diff --git a/editeng/source/editeng/editdoc.cxx b/editeng/source/editeng/editdoc.cxx
index 58905b937822..2726ea540082 100644
--- a/editeng/source/editeng/editdoc.cxx
+++ b/editeng/source/editeng/editdoc.cxx
@@ -1206,13 +1206,38 @@ BOOL ContentAttribs::HasItem( USHORT nWhich )
// ----------------------------------------------------------------------
// class ItemList
// ----------------------------------------------------------------------
+ItemList::ItemList() : CurrentItem( 0 )
+{
+}
+
const SfxPoolItem* ItemList::FindAttrib( USHORT nWhich )
{
- const SfxPoolItem* pItem = First();
- while ( pItem && ( pItem->Which() != nWhich ) )
- pItem = Next();
+ for ( size_t i = 0, n = aItemPool.size(); i < n; ++i )
+ if ( aItemPool[ i ]->Which() == nWhich )
+ return aItemPool[ i ];
+ return NULL;
+}
+
+const SfxPoolItem* ItemList::First()
+{
+ CurrentItem = 0;
+ return aItemPool.empty() ? NULL : aItemPool[ 0 ];
+}
- return pItem;
+const SfxPoolItem* ItemList::Next()
+{
+ if ( CurrentItem + 1 < aItemPool.size() )
+ {
+ ++CurrentItem;
+ return aItemPool[ CurrentItem ];
+ }
+ return NULL;
+}
+
+void ItemList::Insert( const SfxPoolItem* pItem )
+{
+ aItemPool.push_back( pItem );
+ CurrentItem = aItemPool.size() - 1;
}
// -------------------------------------------------------------------------
diff --git a/editeng/source/editeng/editdoc.hxx b/editeng/source/editeng/editdoc.hxx
index 90703f43a80f..581c0bdb41ba 100644
--- a/editeng/source/editeng/editdoc.hxx
+++ b/editeng/source/editeng/editdoc.hxx
@@ -174,11 +174,22 @@ public:
// class ItemList
// ----------------------------------------------------------------------
typedef const SfxPoolItem* ConstPoolItemPtr;
-DECLARE_LIST( DummyItemList, ConstPoolItemPtr )
-class ItemList : public DummyItemList
+typedef ::std::vector< ConstPoolItemPtr > DummyItemList;
+
+class ItemList
{
+private:
+ DummyItemList aItemPool;
+ size_t CurrentItem;
+
public:
+ ItemList();
const SfxPoolItem* FindAttrib( USHORT nWhich );
+ const SfxPoolItem* First();
+ const SfxPoolItem* Next();
+ size_t Count() { return aItemPool.size(); };
+ void Insert( const SfxPoolItem* pItem );
+ void Clear() { aItemPool.clear(); };
};
// -------------------------------------------------------------------------
diff --git a/editeng/source/editeng/impedit4.cxx b/editeng/source/editeng/impedit4.cxx
index 1fbda1e44dee..d870959b53af 100644
--- a/editeng/source/editeng/impedit4.cxx
+++ b/editeng/source/editeng/impedit4.cxx
@@ -322,7 +322,7 @@ void lcl_FindValidAttribs( ItemList& rLst, ContentNode* pNode, sal_uInt16 nIndex
if ( pAttr->GetEnd() > nIndex )
{
if ( IsScriptItemValid( pAttr->GetItem()->Which(), nScriptType ) )
- rLst.Insert( pAttr->GetItem(), LIST_APPEND );
+ rLst.Insert( pAttr->GetItem() );
}
nAttr++;
pAttr = GetAttrib( pNode->GetCharAttribs().GetAttribs(), nAttr );
@@ -685,11 +685,11 @@ sal_uInt32 ImpEditEngine::WriteRTF( SvStream& rOutput, EditSelection aSel )
if ( !n || IsScriptChange( EditPaM( pNode, nIndex ) ) )
{
SfxItemSet aAttribs = GetAttribs( nNode, nIndex+1, nIndex+1 );
- aAttribItems.Insert( &aAttribs.Get( GetScriptItemId( EE_CHAR_FONTINFO, nScriptType ) ), LIST_APPEND );
- aAttribItems.Insert( &aAttribs.Get( GetScriptItemId( EE_CHAR_FONTHEIGHT, nScriptType ) ), LIST_APPEND );
- aAttribItems.Insert( &aAttribs.Get( GetScriptItemId( EE_CHAR_WEIGHT, nScriptType ) ), LIST_APPEND );
- aAttribItems.Insert( &aAttribs.Get( GetScriptItemId( EE_CHAR_ITALIC, nScriptType ) ), LIST_APPEND );
- aAttribItems.Insert( &aAttribs.Get( GetScriptItemId( EE_CHAR_LANGUAGE, nScriptType ) ), LIST_APPEND );
+ aAttribItems.Insert( &aAttribs.Get( GetScriptItemId( EE_CHAR_FONTINFO, nScriptType ) ) );
+ aAttribItems.Insert( &aAttribs.Get( GetScriptItemId( EE_CHAR_FONTHEIGHT, nScriptType ) ) );
+ aAttribItems.Insert( &aAttribs.Get( GetScriptItemId( EE_CHAR_WEIGHT, nScriptType ) ) );
+ aAttribItems.Insert( &aAttribs.Get( GetScriptItemId( EE_CHAR_ITALIC, nScriptType ) ) );
+ aAttribItems.Insert( &aAttribs.Get( GetScriptItemId( EE_CHAR_LANGUAGE, nScriptType ) ) );
}
// #96298# Insert hard attribs AFTER CJK attribs...
lcl_FindValidAttribs( aAttribItems, pNode, nIndex, nScriptType );