diff options
author | Joseph Powers <jpowers27@cox.net> | 2010-12-27 20:12:23 -0800 |
---|---|---|
committer | Joseph Powers <jpowers27@cox.net> | 2010-12-31 06:57:20 -0800 |
commit | 8b33788c270f5caf630915ab067ff4d685a081c2 (patch) | |
tree | 8227e29eabc6c16f85923c776d2c7598a98c3789 /editeng | |
parent | 85b34a679f8adba3d013850e4c0f79832247a844 (diff) |
Remove DECLARE_LIST( DummyItemList, ConstPoolItemPtr )
Diffstat (limited to 'editeng')
-rw-r--r-- | editeng/source/editeng/editdoc.cxx | 33 | ||||
-rw-r--r-- | editeng/source/editeng/editdoc.hxx | 15 | ||||
-rw-r--r-- | editeng/source/editeng/impedit4.cxx | 12 |
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 ); |