RE: liststore update question



Thanks,
Would storing TreeRowReference's be faster than
using:

    my $iter = $model->get_iter_first;
    while (defined $iter)
     {
       ....
       $iter = $model->iter_next($iter);
     }
-----Original Message-----
From: gtk-perl-list-admin gnome org
[mailto:gtk-perl-list-admin gnome org] On Behalf Of muppet
Sent: Monday, March 29, 2004 3:25 PM
To: gtk-perl-list gnome org
Subject: Re: liststore update question



B McAndrews said:
I have liststore setup with an appropriate view. The model was 
initially set with data from database.  I can get updates from the 
database, but I'm unsure as to how I go about updating the model and 
subsequently the view.  Rows won't be added or deleted, so I thought 
of something I could cache the iterators that were created at 
initialization, but I'm not sure that would work.  Can anyone  help me

here?

The iters are not guaranteed long lifetimes, so you do not want to cache
them.  Instead, you'd use a Gtk2::TreeRowReference, which is guaranteed
to point to the right place, even if the data in the list changes, so
long as the row exists.

http://developer.gnome.org/doc/API/2.0/gtk/GtkTreeModel.html#gtk-tree-ro
w-reference-new
and http://gtk2-perl.sourceforge.net/doc/pod/Gtk2/TreeRowReference.html


After that, as far as i know, when you do

  $model->set ($iter, COL1 $val1, COL2, $val2, ...);

the view should update automatically, with no intervention from you.  In
fact, i've been looking for a way to freeze/thaw the liststore during
large updates; i think $object->freeze_notify and thaw_notify are
supposed to work here.

-- 
muppet <scott at asofyet dot org>
_______________________________________________
gtk-perl-list mailing list
gtk-perl-list gnome org
http://mail.gnome.org/mailman/listinfo/gtk-perl-list




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]