summaryrefslogtreecommitdiff
path: root/libopie2
authorzecke <zecke>2002-09-24 14:58:51 (UTC)
committer zecke <zecke>2002-09-24 14:58:51 (UTC)
commit7b065f0388604e0485fa64a14abdf939dceab954 (patch) (unidiff)
treed98925bb12547a078467421d6823ac875f09f025 /libopie2
parent70328f952e475eb7eb0bc961420b875eefd05211 (diff)
downloadopie-7b065f0388604e0485fa64a14abdf939dceab954.zip
opie-7b065f0388604e0485fa64a14abdf939dceab954.tar.gz
opie-7b065f0388604e0485fa64a14abdf939dceab954.tar.bz2
Add some hooks to ORecordList and Iterator
current() for Iterator setCurrent() for Iterator count() for both
Diffstat (limited to 'libopie2') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opiepim/orecordlist.h53
1 files changed, 49 insertions, 4 deletions
diff --git a/libopie2/opiepim/orecordlist.h b/libopie2/opiepim/orecordlist.h
index 1795938..c63d813 100644
--- a/libopie2/opiepim/orecordlist.h
+++ b/libopie2/opiepim/orecordlist.h
@@ -43,16 +43,31 @@ public:
43 T operator*(); 43 T operator*();
44 ORecordListIterator &operator++(); 44 ORecordListIterator &operator++();
45 ORecordListIterator &operator--(); 45 ORecordListIterator &operator--();
46 46
47 bool operator==( const ORecordListIterator& it ); 47 bool operator==( const ORecordListIterator& it );
48 bool operator!=( const ORecordListIterator& it ); 48 bool operator!=( const ORecordListIterator& it );
49
50 /**
51 * the current item
52 */
53 uint current()const;
54
55 /**
56 * the number of items
57 */
58 uint count()const;
59
60 /**
61 * sets the current item
62 */
63 void setCurrent( uint cur );
49 64
50private: 65private:
51 QArray<int> m_uids; 66 QArray<int> m_uids;
52 int m_current; 67 uint m_current;
53 const Base* m_temp; 68 const Base* m_temp;
54 bool m_end : 1; 69 bool m_end : 1;
55 T m_record; 70 T m_record;
56 71
57 /* d pointer for future versions */ 72 /* d pointer for future versions */
58 class IteratorPrivate; 73 class IteratorPrivate;
@@ -83,12 +98,19 @@ public:
83 Iterator begin(); 98 Iterator begin();
84 99
85 /** 100 /**
86 * the end 101 * the end
87 */ 102 */
88 Iterator end(); 103 Iterator end();
104
105 /**
106 * the number of items in the list
107 */
108 uint count()const;
109
110 // FIXME implemenent remove
89 /* 111 /*
90 ConstIterator begin()const; 112 ConstIterator begin()const;
91 ConstIterator end()const; 113 ConstIterator end()const;
92 */ 114 */
93private: 115private:
94 QArray<int> m_ids; 116 QArray<int> m_ids;
@@ -130,22 +152,27 @@ ORecordListIterator<T> &ORecordListIterator<T>::operator=( const ORecordListIter
130} 152}
131 153
132template <class T> 154template <class T>
133T ORecordListIterator<T>::operator*() { 155T ORecordListIterator<T>::operator*() {
134// qWarning("operator* %d %d", m_current, m_uids[m_current] ); 156// qWarning("operator* %d %d", m_current, m_uids[m_current] );
135 if (!m_end ) 157 if (!m_end )
136 m_record = m_temp->find( m_uids[m_current] ); 158 /* FIXME
159 * until the cache is in place
160 * we do the uid match uid check
161 */
162 if(m_record.uid() != m_uids[m_current] )
163 m_record = m_temp->find( m_uids[m_current] );
137 else 164 else
138 m_record = T(); 165 m_record = T();
139 166
140 return m_record; 167 return m_record;
141} 168}
142 169
143template <class T> 170template <class T>
144ORecordListIterator<T> &ORecordListIterator<T>::operator++() { 171ORecordListIterator<T> &ORecordListIterator<T>::operator++() {
145 if (m_current < (int)m_uids.count() ) { 172 if (m_current < m_uids.count() ) {
146 m_end = false; 173 m_end = false;
147 ++m_current; 174 ++m_current;
148 }else 175 }else
149 m_end = true; 176 m_end = true;
150 177
151 return *this; 178 return *this;
@@ -180,13 +207,27 @@ bool ORecordListIterator<T>::operator!=( const ORecordListIterator<T>& it ) {
180template <class T> 207template <class T>
181ORecordListIterator<T>::ORecordListIterator( const QArray<int> uids, 208ORecordListIterator<T>::ORecordListIterator( const QArray<int> uids,
182 const Base* t ) 209 const Base* t )
183 : m_uids( uids ), m_current( 0 ), m_temp( t ), m_end( false ) 210 : m_uids( uids ), m_current( 0 ), m_temp( t ), m_end( false )
184{ 211{
185} 212}
186 213template <class T>
214uint ORecordListIterator<T>::current()const {
215 return m_current;
216}
217template <class T>
218void ORecordListIterator<T>::setCurrent( uint cur ) {
219 if( cur < m_uids.count() ) {
220 m_end = false;
221 m_current= cur;
222 }
223}
224template <class T>
225uint ORecordListIterator<T>::count()const {
226 return m_uids.count();
227}
187template <class T> 228template <class T>
188ORecordList<T>::ORecordList( const QArray<int>& ids, 229ORecordList<T>::ORecordList( const QArray<int>& ids,
189 const Base* acc ) 230 const Base* acc )
190 : m_ids( ids ), m_acc( acc ) 231 : m_ids( ids ), m_acc( acc )
191{ 232{
192} 233}
@@ -204,7 +245,11 @@ ORecordList<T>::Iterator ORecordList<T>::end() {
204 Iterator it( m_ids, m_acc ); 245 Iterator it( m_ids, m_acc );
205 it.m_end = true; 246 it.m_end = true;
206 it.m_current = m_ids.count(); 247 it.m_current = m_ids.count();
207 248
208 return it; 249 return it;
209} 250}
251template <class T>
252uint ORecordList<T>::count()const {
253return m_ids.count();
254}
210#endif 255#endif