Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > PyGTK TreeView segmentation fault on expand_all()

Reply
Thread Tools

PyGTK TreeView segmentation fault on expand_all()

 
 
Chris Johnson
Guest
Posts: n/a
 
      08-07-2006
Good morning.

I have recently begun a project using PyGTK, and part of my planned
interface has a gtk.TreeView showing a portion of the filesystem. Now,
rather than load the entire FS structure into the tree right from the
beginning, I made a lazy tree by adding blank children to rows
representing directories, and connected a call to fill in the data when
a row with blank children was expanded.

Now, this works all fine and well, in general. I can browse my entire
filesystem this way. But I noticed that hitting '*' (which I believe is
a call to expand_all(), though the documentation does not say this
explicitly) on a row representing any empty directory causes a
segmentation fault.

This problem can be alleviated by not removing the blank child after
attempting to add directory contents, but I would like to avoid this
approach.

My suspicion is that expand_all() assumes that there are children
present, and when I remove the blank row (after attempting to add any
subdirectories and files), it does not check to make sure there are
still children.

So I suppose I have a couple questions. First, can anybody confirm my
suspicions? Secondly, is this a PyGTK bug, or am I doing something that
simply should never be done? Finally, do you see any way to fix this
problem?

Code follows
----------
def onExpand(self, view, iter, path):
"""Add directory contents on first expansion of its entry"""
sorted = view.get_model() # TreeModelSort
iter = sorted.convert_iter_to_child_iter(None,iter)
store = sorted.get_model() # TreeStore
child = store.iter_children(iter)
cpath = store.get(iter,1)[0][1:] # Hidden column with fs path
info
if store.get_value(child, 0) is None:
sorted.addDir(cpath,iter)
store.remove(child)

---------

If any other code is necessary, I can provide my entire program.
However, I think I've isolated the problem to that last line (execution
continues beyond it, so it's not exactly the line itself), and want to
hear any recommendations for how to still remove that blank child
without causing expand_all() to fall on its face.

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
(PyGTK) Disabling ToolButton when no TreeView item is selected? cypher543 Python 2 12-29-2006 05:38 AM
change keybindings for pygtk treeview Fabian Braennstroem Python 0 10-27-2006 12:21 PM
pygtk, gtk.treeview and virtuallist ? manatlan Python 0 04-25-2005 08:55 PM
[PyGTK] forbid focus of TreeView columns Franck Pommereau Python 0 02-21-2005 10:02 AM
treeview / pygtk problem Andre Lerche Python 3 07-11-2003 07:02 PM



Advertisments