From 01e417060650f4e2cddb9bc838d8f9ab6c47a437 Mon Sep 17 00:00:00 2001 From: Felix Domke Date: Fri, 22 Jul 2005 21:30:39 +0000 Subject: [PATCH] - add markedQuery --- lib/service/listboxservice.cpp | 13 +++++++++++++ lib/service/listboxservice.h | 10 ++++++++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/lib/service/listboxservice.cpp b/lib/service/listboxservice.cpp index db4f6b86..24090f73 100644 --- a/lib/service/listboxservice.cpp +++ b/lib/service/listboxservice.cpp @@ -54,6 +54,19 @@ int eListboxServiceContent::isMarked(const eServiceReference &ref) return m_marked.find(ref) != m_marked.end(); } +void eListboxServiceContent::markedQueryStart() +{ + m_marked_iterator = m_marked.begin(); +} + +int eListboxServiceContent::markedQueryNext(eServiceReference &ref) +{ + if (m_marked_iterator == m_marked.end()) + return -1; + ref = *m_marked_iterator++; + return 0; +} + int eListboxServiceContent::lookupService(const eServiceReference &ref) { /* shortcut for cursor */ diff --git a/lib/service/listboxservice.h b/lib/service/listboxservice.h index d5241933..36bb5bb4 100644 --- a/lib/service/listboxservice.h +++ b/lib/service/listboxservice.h @@ -20,9 +20,13 @@ public: void addMarked(const eServiceReference &ref); void removeMarked(const eServiceReference &ref); int isMarked(const eServiceReference &ref); - int lookupService(const eServiceReference &ref); - + + /* this is NOT thread safe! */ + void markedQueryStart(); + int markedQueryNext(eServiceReference &ref); + int lookupService(const eServiceReference &ref); + protected: void cursorHome(); void cursorEnd(); @@ -56,6 +60,8 @@ private: /* support for marked services */ std::set m_marked; + + std::set::const_iterator m_marked_iterator; }; #endif -- 2.30.2