[Gtk-sharp-list] [Patch] Make Gtk.ListStore implement
IEnumerable
Eric Butler
eric@extremeboredom.net
Wed, 04 May 2005 16:49:21 -0700
Done! Please review and commit soon :)
http://bugzilla.ximian.com/show_bug.cgi?id=74787
Regards,
Eric
On Tue, 2005-05-03 at 13:52 -0500, Mike Kestner wrote:
> Hey Eric,
>
> On Tue, 2005-05-03 at 11:22 -0700, Eric Butler wrote:
>
> > As inspired by the Improving Gtk# thread here is a patch that makes
> > ListStore implement IEnumerable. This allows you to do something like:
> >
> > foreach (object[] row in trustedNodesListStore) {
> > Console.WriteLine(row[0].ToString());
> > }
>
> Nice. A few comments...
>
> You need to deal with invalidation. If the tree model changes under the
> enumerator, it needs to be invalidated.
>
> You need to deal with an uninitialized TreeIter access in Current. A
> check of reset should be sufficient, although I'm not sure whether an
> exception or a null return is appropriate. Check the .Net docs.
>
> The TreeEnumerator class should be internal. No need to expose this as
> public API. You'll like that because... You need to document public
> API, like the new ListStore.GetEnumerator method. ;-)
>
> The metadata change should be made at the top of any other ListStore
> rules as opposed to next to the other add-node, just to make all the
> ListStore rules easier to see at a glance.
>
> <anal>
> The new file should go alphabetically in the Makefile.am.
> </anal>
>
> Please attach any revised patches to the bug report Miguel opened for
> IList-iness to make sure they don't fall through the cracks.
>
> Thanks for the patch.