summaryrefslogtreecommitdiff
path: root/libopie2/opiepim/orecordlist.h
authorzecke <zecke>2002-09-24 14:58:51 (UTC)
committer zecke <zecke>2002-09-24 14:58:51 (UTC)
commit7b065f0388604e0485fa64a14abdf939dceab954 (patch) (side-by-side diff)
treed98925bb12547a078467421d6823ac875f09f025 /libopie2/opiepim/orecordlist.h
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/opiepim/orecordlist.h') (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
@@ -48,2 +48,17 @@ public:
bool operator!=( const ORecordListIterator& it );
+
+ /**
+ * the current item
+ */
+ uint current()const;
+
+ /**
+ * the number of items
+ */
+ uint count()const;
+
+ /**
+ * sets the current item
+ */
+ void setCurrent( uint cur );
@@ -51,3 +66,3 @@ private:
QArray<int> m_uids;
- int m_current;
+ uint m_current;
const Base* m_temp;
@@ -88,2 +103,9 @@ public:
Iterator end();
+
+ /**
+ * the number of items in the list
+ */
+ uint count()const;
+
+ // FIXME implemenent remove
/*
@@ -135,3 +157,8 @@ T ORecordListIterator<T>::operator*() {
if (!m_end )
- m_record = m_temp->find( m_uids[m_current] );
+ /* FIXME
+ * until the cache is in place
+ * we do the uid match uid check
+ */
+ if(m_record.uid() != m_uids[m_current] )
+ m_record = m_temp->find( m_uids[m_current] );
else
@@ -144,3 +171,3 @@ template <class T>
ORecordListIterator<T> &ORecordListIterator<T>::operator++() {
- if (m_current < (int)m_uids.count() ) {
+ if (m_current < m_uids.count() ) {
m_end = false;
@@ -185,3 +212,17 @@ ORecordListIterator<T>::ORecordListIterator( const QArray<int> uids,
}
-
+template <class T>
+uint ORecordListIterator<T>::current()const {
+ return m_current;
+}
+template <class T>
+void ORecordListIterator<T>::setCurrent( uint cur ) {
+ if( cur < m_uids.count() ) {
+ m_end = false;
+ m_current= cur;
+ }
+}
+template <class T>
+uint ORecordListIterator<T>::count()const {
+ return m_uids.count();
+}
template <class T>
@@ -209,2 +250,6 @@ ORecordList<T>::Iterator ORecordList<T>::end() {
}
+template <class T>
+uint ORecordList<T>::count()const {
+return m_ids.count();
+}
#endif