Manfred,

Are you specifically asking about how to obtain the ordinal count of a traversable SWKey?

If so, the official answer is, "you can't without counting yourself". SWKey's which return true for isTraversible() don't contractually offer their set count. This is fairly common with optimized object containers who's set count is not easily derived (think of linked lists).

Having said this, SWKey offers a bookmarking facility with long SWKey::Index(), SWKey::Index(long).

The longs can _usually_ be used to practically bound a 'range'.

e.g.

VerseKey *parser = (VerseKey *)kjv->getKey();
ListKey keySet = parser->ParseVerseList("matt-jn", parser, true);

keySet = TOP;
long start = keySet.Index();
keySet = BOTTOM;
long end = keySet.Index();

progressBar.setStart(start);
progressBar.setEnd(end);


for (keySet = TOP; !keySet.Error(); keySet++) {
        progressBar.setValue(keySet.Index());
        // process text here...
}


// Having said this, a few points:

obvious fail case: "gen; rev22:21"

true ordinal count:
long i = 0; for (keySet = TOP; !keySet.Error(); keySet++) i++;

finally, processing a set of display data should really not take humanly noticeable times on even old desktop computers (or even reasonably recent mobile devices). We've actually, recently been trying to optimize things on mobile devices for SwordReader and as we continue to make improvements for these devices you should see improvements on all platforms. Please let us know with a snippet of code which demonstrates an iteration which takes any noticeable time to complete.

        -Troy.





Manfred Bergmann wrote:
Hi.

Another APi question:

In order to show a progress indicator to not bore the user when the cursor ball spins and a text pull takes a little longer I want to know how many verses need to be pulled before actually doing it. This can be for any reference the user enters, "gen" or "gen 1,6,9" or anything like that.
What is the fastest way to do that?


Regards,
Manfred


_______________________________________________
sword-devel mailing list: [email protected]
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page


_______________________________________________
sword-devel mailing list: [email protected]
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page

Reply via email to