summaryrefslogtreecommitdiff
path: root/libopie/pim/orecordlist.h
Side-by-side diff
Diffstat (limited to 'libopie/pim/orecordlist.h') (more/less context) (show whitespace changes)
-rw-r--r--libopie/pim/orecordlist.h20
1 files changed, 13 insertions, 7 deletions
diff --git a/libopie/pim/orecordlist.h b/libopie/pim/orecordlist.h
index b6fa7fa..08f5c85 100644
--- a/libopie/pim/orecordlist.h
+++ b/libopie/pim/orecordlist.h
@@ -69,4 +69,5 @@ private:
bool m_end : 1;
T m_record;
+ bool m_direction :1;
/* d pointer for future versions */
@@ -126,4 +127,6 @@ ORecordListIterator<T>::ORecordListIterator() {
m_end = true;
m_record = T();
+ /* forward */
+ m_direction = TRUE;
}
template <class T>
@@ -140,4 +143,5 @@ ORecordListIterator<T>::ORecordListIterator( const ORecordListIterator<T>& it) {
m_end = it.m_end;
m_record = it.m_record;
+ m_direction = it.m_direction;
}
@@ -157,9 +161,7 @@ T ORecordListIterator<T>::operator*() {
qWarning("operator* %d %d", m_current, m_uids[m_current] );
if (!m_end )
- /* FIXME
- * until the cache is in place
- * we do the uid match uid check
- */
- m_record = m_temp->find( m_uids[m_current] );
+ m_record = m_temp->find( m_uids[m_current], m_uids, m_current,
+ m_direction ? Base::Forward :
+ Base::Reverse );
else
m_record = T();
@@ -170,4 +172,5 @@ T ORecordListIterator<T>::operator*() {
template <class T>
ORecordListIterator<T> &ORecordListIterator<T>::operator++() {
+ m_direction = true;
if (m_current < m_uids.count() ) {
m_end = false;
@@ -180,4 +183,5 @@ ORecordListIterator<T> &ORecordListIterator<T>::operator++() {
template <class T>
ORecordListIterator<T> &ORecordListIterator<T>::operator--() {
+ m_direction = false;
if ( m_current > 0 ) {
--m_current;
@@ -208,5 +212,6 @@ template <class T>
ORecordListIterator<T>::ORecordListIterator( const QArray<int> uids,
const Base* t )
- : m_uids( uids ), m_current( 0 ), m_temp( t ), m_end( false )
+ : m_uids( uids ), m_current( 0 ), m_temp( t ), m_end( false ),
+ m_direction( false )
{
}
@@ -255,5 +260,6 @@ return m_ids.count();
template <class T>
T ORecordList<T>::operator[]( uint i ) {
- return m_acc->find( m_ids[i] );
+ /* forward */
+ return m_acc->find( m_ids[i], m_ids, i );
}
#endif