[pygtk] CList (continued)
cribbsj at oakwood.org
Fri Sep 17 00:25:00 WST 2004
Thanks for all the responses on my CList question. I thought I would
respond to all of your questions/advice in one email rather than reply
to a bunch of different emails.
Here's a update with where I am currently:
Using the TreeModelSort and Liststore, I have been able to get the speed
of sorting and refreshing (i.e. clearing out the Liststore, grabbing all
data from database, adding records back in to empty liststore,
reapplying current sort criteria) pretty close to what the CList was
doing (at least on a small dataset, approx. 600 records; haven't tried
anything bigger yet).
I think I have almost everything working the way I want, except for one
thing. When I do a refresh (see above for definition), in my refresh
method, after I clear out the liststore and then add back the records, I
call set_cursor on the treeview to make the treeview jump to the record
that was selected before the user clicked the "Refresh" button. This
What doesn't work is similar functionality for when the user clicks on a
column header to change the sort. For example, let's say the treeview
is currently sorted on the first column in ascending order, a row has
been selected (i.e. it has the blue background) and it is visible inside
the scrollview. Now, I click on the second column header to sort the
treeview on that column. The treeview sorts on the second column just
fine. The same row stays selected, BUT the treeview does not scroll to
make that selected row visible. That's my problem.
I have tried doing:
and in the afterSortColChanged method I do a
where focusRowIter is the iter of the lisstore that was the selected row
before the sort was done. But it doesn't help. Why does it work after
I clear out all the records and re-add them, but doesn't work after the
treeview is sorted? What am I doing wrong?
I feel like I am getting pretty close to duplicating the functionality
that I used with the CList. Thanks again for all of the help.
Confidentiality Notice: This email message, including any attachments, is for the sole use of the intended recipient(s) and may contain confidential and/or privileged information. If you are not the intended recipient(s), you are hereby notified that any dissemination, unauthorized review, use, disclosure or distribution of this email and any materials contained in any attachments is prohibited. If you receive this message in error, or are not the intended recipient(s), please immediately notify the sender by email and destroy all copies of the original message, including attachments.
More information about the pygtk