Hello all,
The first question would be if there was a way of searching the mailing list archives - I couldn't find one.

But the real question I'm looking for is what the best way to go about handling the display of large files in gtk.TextViews. I googled around, and couldn't really find what I'm looking for. The basic idea is I have a gtk.Notebook, to which I add several tabs, each containing a Frame, containing a ScrollableWindow, containing a TextView. I dump content into each textview like so:
...
textBuf = gtk.TextBuffer()
buffer.set_text( fileBuffer ) #this contains the whole content of the file

textVw = gtk.TextView()
textVw.set_buffer( buf )
....

Now I have several files/tabs, and concievably will want a decent amount more. Right now I have buffers of size: 7b, 9b, 13b, 67b, 1640b, 100k, 200k, 230k, 230k. And the memory usage shoots up a bit (not unexpected), but also the cpu is pretty much maxed out and the gui unresponsive (sort of unexpected). After initializing everything, it settles down after a bit (too long), but scrolling the window takes too long. I tried with smaller buffers, and everything is great. I'm on vmware on a 2.8 GHz machine without much else running & 512M allocated to the VM.

Even if I go to bare hardware, I want to be able to handle files of 1-1.5M, and not have the CPU pegged. (Actually, I don't care that much if the cpu is pegged, as long as the gui stays responsive :P)

So my first instinct would only to put what I can currently show in the textview in the buffer, and then add & delete to the buffer as the user scrolls up and down.

- Is this the right way to go about something like this, or am I off track?
- What's the easiest way to glue all this together?
 My basic idea is to use:
(s,e) = gtk.TextView.window_to_buffer_coords() (would I use gtk.TEXT_WINDOW_WIDGET?)
 to get where I need to be in the buffer.
 textBuffer.delete( 0, s )
 textBuffer.insert( buf[prev_e:e],  prev_e, e )

- If the above is right, can I count on the the textBuffer coordinates mapping to the actual buffer indexes in the file? Or is another translation possible?

Thanks for any and all help!

-Stu

_________________________________________________________________
Find a local pizza place, movie theater, and moreĀ….then map the best route! http://maps.live.com/?icid=hmtag1&FORM=MGAC01

_______________________________________________
pygtk mailing list   [email protected]
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/

Reply via email to