author | eilers <eilers> | 2002-11-01 15:09:04 (UTC) |
---|---|---|
committer | eilers <eilers> | 2002-11-01 15:09:04 (UTC) |
commit | a098735b8749ead08c658792cc31f95e73045107 (patch) (side-by-side diff) | |
tree | 28bd5ee97878ff3dfc7aa0e6b0c0dcd511acd3f7 /libopie | |
parent | 3fbba334274ca53bd26cd79ccd4662e529c61f40 (diff) | |
download | opie-a098735b8749ead08c658792cc31f95e73045107.zip opie-a098735b8749ead08c658792cc31f95e73045107.tar.gz opie-a098735b8749ead08c658792cc31f95e73045107.tar.bz2 |
Added remove
-rw-r--r-- | libopie/pim/orecordlist.h | 34 |
1 files changed, 31 insertions, 3 deletions
diff --git a/libopie/pim/orecordlist.h b/libopie/pim/orecordlist.h index e377447..2f4a5d3 100644 --- a/libopie/pim/orecordlist.h +++ b/libopie/pim/orecordlist.h @@ -91,3 +91,3 @@ public: } - ORecordList( const QArray<int>& ids, +ORecordList( const QArray<int>& ids, const Base* ); @@ -112,3 +112,8 @@ public: int uidAt(uint i ); - // FIXME implemenent remove + + /** + * Remove the contact with given uid + */ + bool remove( int uid ); + /* @@ -161,3 +166,3 @@ template <class T> T ORecordListIterator<T>::operator*() { - qWarning("operator* %d %d", m_current, m_uids[m_current] ); + //qWarning("operator* %d %d", m_current, m_uids[m_current] ); if (!m_end ) @@ -271,2 +276,25 @@ int ORecordList<T>::uidAt( uint i ) { } + +template <class T> +bool ORecordList<T>::remove( int uid ) { + QArray<int> copy( m_ids.count() ); + int counter = 0; + bool ret_val = false; + + for (uint i = 0; i < m_ids.count(); i++){ + if ( m_ids[i] != uid ){ + copy[counter++] = m_ids[i]; + + }else + ret_val = true; + } + + copy.resize( counter ); + m_ids = copy; + + + return ret_val; +} + + #endif |