RE: liststore update question
- From: "Brian" <bmcandrews efs-us com>
- To: <gtk-perl-list gnome org>
- Subject: RE: liststore update question
- Date: Tue, 30 Mar 2004 09:50:28 -0600
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]