summaryrefslogtreecommitdiff
path: root/libopie2/opiepim
authoreilers <eilers>2002-11-01 15:09:04 (UTC)
committer eilers <eilers>2002-11-01 15:09:04 (UTC)
commita098735b8749ead08c658792cc31f95e73045107 (patch) (unidiff)
tree28bd5ee97878ff3dfc7aa0e6b0c0dcd511acd3f7 /libopie2/opiepim
parent3fbba334274ca53bd26cd79ccd4662e529c61f40 (diff)
downloadopie-a098735b8749ead08c658792cc31f95e73045107.zip
opie-a098735b8749ead08c658792cc31f95e73045107.tar.gz
opie-a098735b8749ead08c658792cc31f95e73045107.tar.bz2
Added remove
Diffstat (limited to 'libopie2/opiepim') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opiepim/orecordlist.h34
1 files changed, 31 insertions, 3 deletions
diff --git a/libopie2/opiepim/orecordlist.h b/libopie2/opiepim/orecordlist.h
index e377447..2f4a5d3 100644
--- a/libopie2/opiepim/orecordlist.h
+++ b/libopie2/opiepim/orecordlist.h
@@ -89,7 +89,7 @@ public:
89 */ 89 */
90 ORecordList () { 90 ORecordList () {
91 } 91 }
92 ORecordList( const QArray<int>& ids, 92ORecordList( const QArray<int>& ids,
93 const Base* ); 93 const Base* );
94 ~ORecordList(); 94 ~ORecordList();
95 95
@@ -110,7 +110,12 @@ public:
110 110
111 T operator[]( uint i ); 111 T operator[]( uint i );
112 int uidAt(uint i ); 112 int uidAt(uint i );
113 // FIXME implemenent remove 113
114 /**
115 * Remove the contact with given uid
116 */
117 bool remove( int uid );
118
114 /* 119 /*
115 ConstIterator begin()const; 120 ConstIterator begin()const;
116 ConstIterator end()const; 121 ConstIterator end()const;
@@ -159,7 +164,7 @@ ORecordListIterator<T> &ORecordListIterator<T>::operator=( const ORecordListIter
159 164
160template <class T> 165template <class T>
161T ORecordListIterator<T>::operator*() { 166T ORecordListIterator<T>::operator*() {
162 qWarning("operator* %d %d", m_current, m_uids[m_current] ); 167 //qWarning("operator* %d %d", m_current, m_uids[m_current] );
163 if (!m_end ) 168 if (!m_end )
164 m_record = m_temp->find( m_uids[m_current], m_uids, m_current, 169 m_record = m_temp->find( m_uids[m_current], m_uids, m_current,
165 m_direction ? Base::Forward : 170 m_direction ? Base::Forward :
@@ -269,4 +274,27 @@ template <class T>
269int ORecordList<T>::uidAt( uint i ) { 274int ORecordList<T>::uidAt( uint i ) {
270 return m_ids[i]; 275 return m_ids[i];
271} 276}
277
278template <class T>
279bool ORecordList<T>::remove( int uid ) {
280 QArray<int> copy( m_ids.count() );
281 int counter = 0;
282 bool ret_val = false;
283
284 for (uint i = 0; i < m_ids.count(); i++){
285 if ( m_ids[i] != uid ){
286 copy[counter++] = m_ids[i];
287
288 }else
289 ret_val = true;
290 }
291
292 copy.resize( counter );
293 m_ids = copy;
294
295
296 return ret_val;
297}
298
299
272#endif 300#endif