[pygtk] Making a widget with PyGTK

2006-01-05 Thread Pupeno
I have just posted an entry in my blog titled "Making a widget with PyGTK" 
where I described some problems I had making a widget with PyGTK and how I 
solved them: http://pupeno.com/blog/making-a-widget-with-pygtk
Maybe someone finds it useful.
Thanks.
-- 
Pupeno <[EMAIL PROTECTED]> (http://pupeno.com)
Vendemos: HUB de 16 bocas: http://pupeno.com/vendo/#hub


pgp70Wf90Q8jv.pgp
Description: PGP signature
___
pygtk mailing list   pygtk@daa.com.au
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/


Re: [pygtk] size_request and size_allocate

2006-01-05 Thread Pupeno
On Thursday 05 January 2006 11:43, Gustavo J. A. M. Carneiro wrote:
> Qui, 2006-01-05 às 10:16 -0300, Pupeno escreveu:
> > I am implementing a widget (a copy of Writing a Widget Using Cairo and
> > PyGTK 2.8) and the size of my widget is terrible (it gets 0 space), so I
> > implemented size_request and size_allocate, but they are never called,
> > why aren't they called ? How should my widget ask for more size ?
> > Thanks.
>
>   This example might help, if you have pygtk 2.8:
>
>  http://telecom.inescporto.pt/~gjc/higcontainer/higcontainer.py

Yes, this really really helped me! :) Thank you.

As I said before, my widget is based on gtk.DrawingArea. I implemented 
do_size_request(self, requisition) but it wasn't called until I've set 
__gtype_name__ = 'EggClockFace' on the class, anybody knows why ?

Can anybody tell me if this line of thought is ok: do_size_allocate() is in 
charge of receiving a 'size' and allocating of that size space for each of 
the sub-widgets, but in my case I don't have any subwidgets, everything is 
done in draw() so I con get along without implementing do_size_allocate(), 
right ?

Thank you.
-- 
Pupeno <[EMAIL PROTECTED]> (http://pupeno.com)
Vendemos: Conocer y collecionar Monedas y Billetes de Todo el Mundo: 
http://pupeno.com/vendo/#monedas


pgpwEPgGanyyg.pgp
Description: PGP signature
___
pygtk mailing list   pygtk@daa.com.au
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/


Re: [pygtk] ANNOUNCE: Gazpacho 0.6.3

2006-01-05 Thread Johan Dahlin

John Finlay wrote:

Besides Python, GTK+ and PyGTK, what are the dependencies for Gazpacho?


For running gazpacho itself, no extra ones.
For building the documentation you'll need epydoc.
If you want to run the unittests or coverage report you need trial from
twisted.

Johan
___
pygtk mailing list   pygtk@daa.com.au
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/


Re: [pygtk] ANNOUNCE: Gazpacho 0.6.3

2006-01-05 Thread John Finlay

Besides Python, GTK+ and PyGTK, what are the dependencies for Gazpacho?

John

Johan Dahlin wrote:


the mirrors pick the release up you can get it at:Hi everybody,

I'm happy to announce the 0.6.3 version of Gazpacho. In this release 
there are a lot of bug fixes and a couple of new features.

Thanks to all the testers and developers that made this possible.

As soon as files reaches the mirror you can fetch them from:
  http://ftp.gnome.org/pub/GNOME/sources/gazpacho/0.6/

Description
===
Gazpacho is a PyGTK application that let you design the Graphical User
Interface of your GTK+ programs.

Enhancements and fixes since 0.6.2:
==
- GtkComboBox fixes (Zeeshan)
- GtkTable fixes (Johan)
- Copy/Paste (Mattias)
- Drag-n-drop (Mattias)
- Much improved tests (Johan)
- GtkSizeGroup support (Johan, Mattias)
- UI improvments (Johan, Mattias)
- Various refactoring (Johan)
- API Documentation (Johan)
- Support is-important and short-label (Mike)
- Bugs fixed:
  #172717: GtkSizeGroup support
  #307363: TraceBack parsing a .glade
  #313170: Patch: Project should not be marked as changed when undon...
  #313516: Bug report improvements
  #313529: Loading a glade file containing modal dialogs breaks the ...
  #313771: Crash on 2005-08-17 19:05
  #314040: Exception when redoing a toolbar creation
  #314041: DnD for toobars and menubars doesn't work
  #314111: Dragging widgets between different boxes doesn't work
  #314196: Undoing cutting a toolbar sometimes raises an exception
  #314581: Dragging a widget to an internal placeholder
  #315423: Missing properties for GtkWindow
  #315444: Property 'active' of GtkComboBox not loaded correctly
  #315747: About dialog can't find COPYING doc
  #315802: Crash on 2005-08-23 10:48
  #315880: Crash on 2005-09-09 19:30
  #315982: Cannot load SJ glade file
  #316062: GtkButton's 'image' is not loaded
  #316083: Needed patch for the HildonFindToolbar
  #316196: enum_class is None in get_choices()
  #316388: Images of buttons should not be selectable
  #316416: Opening the same glade file twice
  #316532: Crash after deleting a placeholder in a table
  #316785: Widget names with underscores cause weird accelerator und...
  #316980: Configurable stock item sizes for GtkButton
  #317079: Undo/Redo broken for GtkButton
  #317372: Error when redoing toolbar creation
  #317404: Setting certain stock-ids for Actions raises an exception
  #317807: A small syntax problem
  #317896: Selecting a recent file from the file menu list throws an...
  #318321: Crash on 2005-10-09 00:49
  #318351: It shouldn't be possible to add two actions with the same...
  #318622: install on Fedora core 4 x86_64
  #320617: Crash on 2005-11-03 15:26
  #320798: Problem when deleting a menu/toolbar parent
  #321621: Crash on 2005-11-16 10:41
  #321849: app.py:982 AttributeError: 'NoneType' object has no attri...
  #321953: widgets in a table have no row/column span settings avail...
  #322081: Crash on 2005-11-21 22:02
  #322336: gazpacho.desktop is not valid
  #322458: Crash on 2005-11-25 14:30
  #322535: Crash on 2005-11-26 23:34
  #322923: Gazpacho crashes on MS-Windows with Python 2.4
  #323051: placeholder.py:157 AttributeError: 'CommandManager' objec...
  #323231: UI Manager related refactoring
  #323305: Using removed UI widgets
  #323478: Unremovable placeholders
  #323773: Cannot load glade files that have Shift and Shift+Ctrl ac...
  #324574: Crash on 2005-12-19 20:19
  #325060: PATCH] Support Actions with short labels and 'is_importa...
  #325828: PATCH] TypeError editing actions with no stock item set
  #325849: Crash on clicking ... button for window title.
  (Zeeshan, Johan, Mattias, Kalle Vahlman, Mike Gratton)

Links
=

home   http://gazpacho.sicem.biz
files  http://ftp.gnome.org/pub/GNOME/sources/gazpacho/0.6/
list   http://www.sicem.biz/mailman/listinfo/gazpacho
source http://www.sicem.biz/viewsvn/gazpacho/
bugs   http://bugzilla.gnome.org

index  http://www.gnomefiles.org/app.php?soft_id=646



___
pygtk mailing list   pygtk@daa.com.au
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/


[pygtk] ANNOUNCE: Gazpacho 0.6.3

2006-01-05 Thread Johan Dahlin

the mirrors pick the release up you can get it at:Hi everybody,

I'm happy to announce the 0.6.3 version of Gazpacho. In this release 
there are a lot of bug fixes and a couple of new features.

Thanks to all the testers and developers that made this possible.

As soon as files reaches the mirror you can fetch them from:
  http://ftp.gnome.org/pub/GNOME/sources/gazpacho/0.6/

Description
===
Gazpacho is a PyGTK application that let you design the Graphical User
Interface of your GTK+ programs.

Enhancements and fixes since 0.6.2:
==
- GtkComboBox fixes (Zeeshan)
- GtkTable fixes (Johan)
- Copy/Paste (Mattias)
- Drag-n-drop (Mattias)
- Much improved tests (Johan)
- GtkSizeGroup support (Johan, Mattias)
- UI improvments (Johan, Mattias)
- Various refactoring (Johan)
- API Documentation (Johan)
- Support is-important and short-label (Mike)
- Bugs fixed:
  #172717: GtkSizeGroup support
  #307363: TraceBack parsing a .glade
  #313170: Patch: Project should not be marked as changed when undon...
  #313516: Bug report improvements
  #313529: Loading a glade file containing modal dialogs breaks the ...
  #313771: Crash on 2005-08-17 19:05
  #314040: Exception when redoing a toolbar creation
  #314041: DnD for toobars and menubars doesn't work
  #314111: Dragging widgets between different boxes doesn't work
  #314196: Undoing cutting a toolbar sometimes raises an exception
  #314581: Dragging a widget to an internal placeholder
  #315423: Missing properties for GtkWindow
  #315444: Property 'active' of GtkComboBox not loaded correctly
  #315747: About dialog can't find COPYING doc
  #315802: Crash on 2005-08-23 10:48
  #315880: Crash on 2005-09-09 19:30
  #315982: Cannot load SJ glade file
  #316062: GtkButton's 'image' is not loaded
  #316083: Needed patch for the HildonFindToolbar
  #316196: enum_class is None in get_choices()
  #316388: Images of buttons should not be selectable
  #316416: Opening the same glade file twice
  #316532: Crash after deleting a placeholder in a table
  #316785: Widget names with underscores cause weird accelerator und...
  #316980: Configurable stock item sizes for GtkButton
  #317079: Undo/Redo broken for GtkButton
  #317372: Error when redoing toolbar creation
  #317404: Setting certain stock-ids for Actions raises an exception
  #317807: A small syntax problem
  #317896: Selecting a recent file from the file menu list throws an...
  #318321: Crash on 2005-10-09 00:49
  #318351: It shouldn't be possible to add two actions with the same...
  #318622: install on Fedora core 4 x86_64
  #320617: Crash on 2005-11-03 15:26
  #320798: Problem when deleting a menu/toolbar parent
  #321621: Crash on 2005-11-16 10:41
  #321849: app.py:982 AttributeError: 'NoneType' object has no attri...
  #321953: widgets in a table have no row/column span settings avail...
  #322081: Crash on 2005-11-21 22:02
  #322336: gazpacho.desktop is not valid
  #322458: Crash on 2005-11-25 14:30
  #322535: Crash on 2005-11-26 23:34
  #322923: Gazpacho crashes on MS-Windows with Python 2.4
  #323051: placeholder.py:157 AttributeError: 'CommandManager' objec...
  #323231: UI Manager related refactoring
  #323305: Using removed UI widgets
  #323478: Unremovable placeholders
  #323773: Cannot load glade files that have Shift and Shift+Ctrl ac...
  #324574: Crash on 2005-12-19 20:19
  #325060: PATCH] Support Actions with short labels and 'is_importa...
  #325828: PATCH] TypeError editing actions with no stock item set
  #325849: Crash on clicking ... button for window title.
  (Zeeshan, Johan, Mattias, Kalle Vahlman, Mike Gratton)

Links
=

home   http://gazpacho.sicem.biz
files  http://ftp.gnome.org/pub/GNOME/sources/gazpacho/0.6/
list   http://www.sicem.biz/mailman/listinfo/gazpacho
source http://www.sicem.biz/viewsvn/gazpacho/
bugs   http://bugzilla.gnome.org

index  http://www.gnomefiles.org/app.php?soft_id=646

--
Johan Dahlin <[EMAIL PROTECTED]>


___
gnome-announce-list mailing list
gnome-announce-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gnome-announce-list
___
pygtk mailing list   pygtk@daa.com.au
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/


[Fwd: Re: [pygtk] size_request and size_allocate]

2006-01-05 Thread Gustavo J. A. M. Carneiro
  In case anyone else cares...

-- 
Gustavo J. A. M. Carneiro
<[EMAIL PROTECTED]> <[EMAIL PROTECTED]>
The universe is always one step beyond logic.
--- Begin Message ---
Qui, 2006-01-05 às 13:18 -0300, Pupeno escreveu:
> On Thursday 05 January 2006 11:43, you wrote:
> > This example might help, if you have pygtk 2.8:
> >
> >  http://telecom.inescporto.pt/~gjc/higcontainer/higcontainer.py
> Yes, this really really helped me! :) Thank you.
> 
> As I said before, my widget is based on gtk.DrawingArea. I implemented 
> do_size_request(self, requisition) but it wasn't called until I've set 
> __gtype_name__ = 'EggClockFace' on the class, anybody knows why ?

  In the old days you would need to call
gobject.type_register(EggClockFace) always to register a subclass with
the gtk type system.  Consider it a bonus that registration is now
automatic if either __gtype_name__, __gproperties__ or __gsignals__ is
defined in the subclass.  [ Making it always register unconditionally
didn't work so well due to backward compatibility issues. ]

> 
> Can anybody tell me if this line of thought is ok: do_size_allocate() is in 
> charge of receiving a 'size' and allocating of that size space for each of 
> the sub-widgets, but in my case I don't have any subwidgets, everything is 
> done in draw() so I con get along without implementing do_size_allocate(), 
> right ?

  You don't need do_size_allocate in this case.  Just keep in mind that
the size you request isn't always the size you receive.  So, when
drawing, look at self.allocation.width/height.  And keep in mind
self.allocation.x and self.allocation.y may be != 0.  A good way to test
if allocation.x/y are being respected is to put your widget inside a
frame and check that it still draws correctly.

> 
> Thank you.
-- 
Gustavo J. A. M. Carneiro
<[EMAIL PROTECTED]> <[EMAIL PROTECTED]>
The universe is always one step beyond logic.


signature.asc
Description: Esta é uma parte de mensagem	assinada digitalmente
--- End Message ---
___
pygtk mailing list   pygtk@daa.com.au
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/


Re: [pygtk] treview segfaults due to sorting

2006-01-05 Thread Johan Dahlin

This is most likely a bug in gtk+.
Can you write a minimal testcase?

Johan

Brian wrote:

Our app has several treeviews.  One of those has several models that are
switched out, 3 are flat lists, 1 currently has one expander and child
nodes.  If the expander is opened, when switching to any of the other
models, it gets an instant segfault from the model.clear().  If I
comment out the clear() it segfaults still, just a little different.
The only thing I've been able to do so far to prevent the segfault is to
force a re-sort by clicking on one of the other column headers.
Normally the sort is on the first column (0).  All models share the same
treestore model.  The checkbox is hidden for all but one view.
def PackageModel():
"""Common model for a package Treestore"""
store = gtk.TreeStore(
gobject.TYPE_STRING,# 0: package name
gobject.TYPE_BOOLEAN,   # 1: checkbox value in upgrade view
gobject.TYPE_PYOBJECT,  # 2: package object
gtk.gdk.Pixbuf, # 3: room for various icons
gobject.TYPE_BOOLEAN,   # 4: true if package is in 'world'
file
gobject.TYPE_STRING,# 5: foreground text colour
gobject.TYPE_STRING,# 6: size
gobject.TYPE_STRING,# 7: installed version
gobject.TYPE_STRING,# 8: portage recommended version
gobject.TYPE_STRING,# 9: description
)
store.set_sort_func(6, size_sort_func)
store.set_sort_func(8, latest_sort_func)
store.set_sort_func(7, installed_sort_func)
return store



I do not know if this is a gtk bug yet or something we are doing wrong.
Googling showed that Johan was the main contributor of that section of
code, so I thought this list might be the best place to ask for any
insights as to what to look for, etc., besides it is a pygtk app :).

I've been far too busy lately to create a simple test app to duplicate
the problem.  Mostly what I am looking for now is any insight from
others that may have experienced similar problems and solved them.

I am attaching a file which is an accumulation of several gdb backtraces
for those that might be able to discern some valuable info from it.

Any help is very much appreciated...  Brian.




(gdb) continue
Continuing.
[New Thread 32770 (LWP 28631)]
[Thread 32770 (LWP 28631) exited]
[New Thread 49154 (LWP 28636)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 16384 (LWP 28625)]
0xb783a4be in gtk_tree_view_expand_all () from /usr/lib/libgtk-x11-2.0.so.0
(gdb) bt
#0  0xb783a4be in gtk_tree_view_expand_all () from /usr/lib/libgtk-x11-2.0.so.0
#1  0xb7834597 in gtk_tree_view_get_fixed_height_mode () from 
/usr/lib/libgtk-x11-2.0.so.0
#2  0xb7834692 in gtk_tree_view_get_fixed_height_mode () from 
/usr/lib/libgtk-x11-2.0.so.0
#3  0xb774dcc0 in gtk_marshal_VOID__UINT_STRING () from 
/usr/lib/libgtk-x11-2.0.so.0
#4  0xb7b3e146 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#5  0xb7b4f485 in g_signal_emit_by_name () from /usr/lib/libgobject-2.0.so.0
#6  0xb7b4e537 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#7  0xb7b4e7c6 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#8  0xb7814ad3 in gtk_tree_model_rows_reordered () from 
/usr/lib/libgtk-x11-2.0.so.0
#9  0xb782540f in gtk_tree_store_move_after () from /usr/lib/libgtk-x11-2.0.so.0
#10 0xb7825500 in gtk_tree_store_move_after () from /usr/lib/libgtk-x11-2.0.so.0
#11 0xb7820b4b in gtk_tree_sortable_set_sort_column_id () from 
/usr/lib/libgtk-x11-2.0.so.0
#12 0xb7a3f997 in init_gtk () from 
/usr/lib/python2.4/site-packages/gtk-2.0/gtk/_gtk.so
#13 0xb7f20089 in PyCFunction_Call () from /usr/lib/libpython2.4.so.1.0



(gdb) continue
Continuing.
[New Thread 32770 (LWP 31588)]
[Thread 32770 (LWP 31588) exited]
[New Thread 49154 (LWP 31589)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 16384 (LWP 31315)]
0xb78344f8 in gtk_tree_view_get_fixed_height_mode () from 
/usr/lib/libgtk-x11-2.0.so.0
(gdb) bt
#0  0xb78344f8 in gtk_tree_view_get_fixed_height_mode () from 
/usr/lib/libgtk-x11-2.0.so.0
#1  0xb7b50233 in g_cclosure_marshal_VOID__BOXED () from 
/usr/lib/libgobject-2.0.so.0
#2  0xb7b3e146 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#3  0xb7b4f485 in g_signal_emit_by_name () from /usr/lib/libgobject-2.0.so.0
#4  0xb7b4e537 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#5  0xb7b4e7c6 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#6  0xb7814a25 in gtk_tree_model_row_deleted () from 
/usr/lib/libgtk-x11-2.0.so.0
#7  0xb7822ca5 in gtk_tree_store_remove () from /usr/lib/libgtk-x11-2.0.so.0
#8  0xb7823a15 in gtk_tree_store_iter_depth () from /usr/lib/libgtk-x11-2.0.so.0
#9  0xb78239d8 in gtk_tree_store_iter_depth () from /usr/lib/libgtk-x11-2.0.so.0
#10 0xb7823a8c in gtk_tree_store_clear () from /usr/lib/libgtk-x11-2.0.so.0
#11 0xb7a2a413 in init_gtk () 

RE: [pygtk] treview segfaults due to sorting

2006-01-05 Thread Brian
On Thu, 2006-05-01 at 11:53 +0100, Leeuw van der, Tim wrote:
> Hi Brian,
> 
> Other than that you're using Python 2.4 and GTK2, I don't see any
> information about the versions of software you're using, or the platform
> on which you're developing.
> 
> Can you please tell us which version of GTK and PyGTK you're using? And
> if you have version-details on other components (such as exact python
> version, Glib, etc) for us, they're welcome too.
> 
> Cheers,
> 
> --Tim

Yeah, I realized shortly after I hit send...

Distro - gentoo

python - 2.4.2
pygtk - 2.8.2
gtk+ - 2.8.9
glib - 2.8.4
gcc - 3.3.5.20050130-r1

> 
> ___
> pygtk mailing list   pygtk@daa.com.au
> http://www.daa.com.au/mailman/listinfo/pygtk
> Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/
-- 
Brian <[EMAIL PROTECTED]>

___
pygtk mailing list   pygtk@daa.com.au
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/


[pygtk] Activating the text cursor in a GtkComboBoxEntry

2006-01-05 Thread Thierry Lam

I have a ComboBoxEntry with a pull down menu represented by a small down
arrow on the right hand side of the Entry widget. Each time I select
something from the drop down menu, the text cursor is not shown in the
Entry widget. Is there a way to activate this text cursor in the Entry
widget?

Thanks
Thierry

___
pygtk mailing list   pygtk@daa.com.au
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/


Re: [pygtk] size_request and size_allocate

2006-01-05 Thread Gustavo J. A. M. Carneiro
Qui, 2006-01-05 às 10:16 -0300, Pupeno escreveu:
> I am implementing a widget (a copy of Writing a Widget Using Cairo and PyGTK 
> 2.8) and the size of my widget is terrible (it gets 0 space), so I 
> implemented size_request and size_allocate, but they are never called, why 
> aren't they called ? How should my widget ask for more size ?
> Thanks.

  This example might help, if you have pygtk 2.8:

 http://telecom.inescporto.pt/~gjc/higcontainer/higcontainer.py

  Cheers.

> ___
> pygtk mailing list   pygtk@daa.com.au
> http://www.daa.com.au/mailman/listinfo/pygtk
> Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/
-- 
Gustavo J. A. M. Carneiro
<[EMAIL PROTECTED]> <[EMAIL PROTECTED]>
The universe is always one step beyond logic.


signature.asc
Description: Esta é uma parte de mensagem	assinada digitalmente
___
pygtk mailing list   pygtk@daa.com.au
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/


[pygtk] size_request and size_allocate

2006-01-05 Thread Pupeno
I am implementing a widget (a copy of Writing a Widget Using Cairo and PyGTK 
2.8) and the size of my widget is terrible (it gets 0 space), so I 
implemented size_request and size_allocate, but they are never called, why 
aren't they called ? How should my widget ask for more size ?
Thanks.
-- 
Pupeno <[EMAIL PROTECTED]> (http://pupeno.com)
Vendemos: Mochila Montagne Cumbre 60 (Litros): 
http://pupeno.com/vendo/#mochila1


pgpxIBtckENw7.pgp
Description: PGP signature
___
pygtk mailing list   pygtk@daa.com.au
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/


RE: [pygtk] treview segfaults due to sorting

2006-01-05 Thread Leeuw van der, Tim
Hi Brian,

Other than that you're using Python 2.4 and GTK2, I don't see any
information about the versions of software you're using, or the platform
on which you're developing.

Can you please tell us which version of GTK and PyGTK you're using? And
if you have version-details on other components (such as exact python
version, Glib, etc) for us, they're welcome too.

Cheers,

--Tim


-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On
Behalf Of Brian
Sent: donderdag 5 januari 2006 9:43
To: pygtk
Subject: [pygtk] treview segfaults due to sorting

[...]

___
pygtk mailing list   pygtk@daa.com.au
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/


[pygtk] treview segfaults due to sorting

2006-01-05 Thread Brian
Our app has several treeviews.  One of those has several models that are
switched out, 3 are flat lists, 1 currently has one expander and child
nodes.  If the expander is opened, when switching to any of the other
models, it gets an instant segfault from the model.clear().  If I
comment out the clear() it segfaults still, just a little different.
The only thing I've been able to do so far to prevent the segfault is to
force a re-sort by clicking on one of the other column headers.
Normally the sort is on the first column (0).  All models share the same
treestore model.  The checkbox is hidden for all but one view.
def PackageModel():
"""Common model for a package Treestore"""
store = gtk.TreeStore(
gobject.TYPE_STRING,# 0: package name
gobject.TYPE_BOOLEAN,   # 1: checkbox value in upgrade view
gobject.TYPE_PYOBJECT,  # 2: package object
gtk.gdk.Pixbuf, # 3: room for various icons
gobject.TYPE_BOOLEAN,   # 4: true if package is in 'world'
file
gobject.TYPE_STRING,# 5: foreground text colour
gobject.TYPE_STRING,# 6: size
gobject.TYPE_STRING,# 7: installed version
gobject.TYPE_STRING,# 8: portage recommended version
gobject.TYPE_STRING,# 9: description
)
store.set_sort_func(6, size_sort_func)
store.set_sort_func(8, latest_sort_func)
store.set_sort_func(7, installed_sort_func)
return store



I do not know if this is a gtk bug yet or something we are doing wrong.
Googling showed that Johan was the main contributor of that section of
code, so I thought this list might be the best place to ask for any
insights as to what to look for, etc., besides it is a pygtk app :).

I've been far too busy lately to create a simple test app to duplicate
the problem.  Mostly what I am looking for now is any insight from
others that may have experienced similar problems and solved them.

I am attaching a file which is an accumulation of several gdb backtraces
for those that might be able to discern some valuable info from it.

Any help is very much appreciated...  Brian.
-- 
Brian <[EMAIL PROTECTED]>
(gdb) continue
Continuing.
[New Thread 32770 (LWP 28631)]
[Thread 32770 (LWP 28631) exited]
[New Thread 49154 (LWP 28636)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 16384 (LWP 28625)]
0xb783a4be in gtk_tree_view_expand_all () from /usr/lib/libgtk-x11-2.0.so.0
(gdb) bt
#0  0xb783a4be in gtk_tree_view_expand_all () from /usr/lib/libgtk-x11-2.0.so.0
#1  0xb7834597 in gtk_tree_view_get_fixed_height_mode () from 
/usr/lib/libgtk-x11-2.0.so.0
#2  0xb7834692 in gtk_tree_view_get_fixed_height_mode () from 
/usr/lib/libgtk-x11-2.0.so.0
#3  0xb774dcc0 in gtk_marshal_VOID__UINT_STRING () from 
/usr/lib/libgtk-x11-2.0.so.0
#4  0xb7b3e146 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#5  0xb7b4f485 in g_signal_emit_by_name () from /usr/lib/libgobject-2.0.so.0
#6  0xb7b4e537 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#7  0xb7b4e7c6 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#8  0xb7814ad3 in gtk_tree_model_rows_reordered () from 
/usr/lib/libgtk-x11-2.0.so.0
#9  0xb782540f in gtk_tree_store_move_after () from /usr/lib/libgtk-x11-2.0.so.0
#10 0xb7825500 in gtk_tree_store_move_after () from /usr/lib/libgtk-x11-2.0.so.0
#11 0xb7820b4b in gtk_tree_sortable_set_sort_column_id () from 
/usr/lib/libgtk-x11-2.0.so.0
#12 0xb7a3f997 in init_gtk () from 
/usr/lib/python2.4/site-packages/gtk-2.0/gtk/_gtk.so
#13 0xb7f20089 in PyCFunction_Call () from /usr/lib/libpython2.4.so.1.0



(gdb) continue
Continuing.
[New Thread 32770 (LWP 31588)]
[Thread 32770 (LWP 31588) exited]
[New Thread 49154 (LWP 31589)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 16384 (LWP 31315)]
0xb78344f8 in gtk_tree_view_get_fixed_height_mode () from 
/usr/lib/libgtk-x11-2.0.so.0
(gdb) bt
#0  0xb78344f8 in gtk_tree_view_get_fixed_height_mode () from 
/usr/lib/libgtk-x11-2.0.so.0
#1  0xb7b50233 in g_cclosure_marshal_VOID__BOXED () from 
/usr/lib/libgobject-2.0.so.0
#2  0xb7b3e146 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#3  0xb7b4f485 in g_signal_emit_by_name () from /usr/lib/libgobject-2.0.so.0
#4  0xb7b4e537 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#5  0xb7b4e7c6 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#6  0xb7814a25 in gtk_tree_model_row_deleted () from 
/usr/lib/libgtk-x11-2.0.so.0
#7  0xb7822ca5 in gtk_tree_store_remove () from /usr/lib/libgtk-x11-2.0.so.0
#8  0xb7823a15 in gtk_tree_store_iter_depth () from /usr/lib/libgtk-x11-2.0.so.0
#9  0xb78239d8 in gtk_tree_store_iter_depth () from /usr/lib/libgtk-x11-2.0.so.0
#10 0xb7823a8c in gtk_tree_store_clear () from /usr/lib/libgtk-x11-2.0.so.0
#11 0xb7a2a413 in init_gtk () from 
/usr/lib/python2.4/site-packages/gtk-2.0/gtk/_gtk.so
#12 0xb7f558f4 in PyEval_GetFuncDesc () from /usr/lib/libpython2.4.so.1.0


Pro