devel questions

Chris Shoemaker c.shoemaker at
Wed Sep 15 19:14:37 EDT 2004

I've been poking around in the CVS gnome2-dev branch for a few hours
over the past few days.  I wanted to touch base with some other developers
and start some dialog.

I've been using gnucash lightly for several (6?) months now.  I'm pretty
impressed with it, but I've always wondered why there wasn't more development
activity.  I code for fun (and profit) so any open source software I use
is theoretically fair game for playing with.

I've been interested in some budgetting functionality, and you may have
seen my initial comments reviewing Darin Willit's budget code.
Recently, I started to dig a bit deeper.

In the interest of starting some discussion, I wanted to ask a few
(perhaps unrelated) questions.  Here goes:

What's the status of libegg stuff?  On its way out?  on its way in?

Why does removing/commenting out "gtk_container_add(GTK_CONTAINER(box),
GTK_WIDGET(dlg->relatedView));" from category_dialog_create(), prevent
the consistent SEGV upon closing the dialog?

Is it valid to cast a (GtkTreeModel *) using GTK_TREE_MODEL_SORT()?

Why do I get:
(gnucash:18491): GLib-GObject-WARNING **: invalid cast from
`GncTreeModelAccount' to `GtkTreeModelSort'
 (gnucash:18491): Gtk-CRITICAL **: file gtktreemodelsort.c: line 2016
 (gtk_tree_model_sort_get_model): assertion `GTK_IS_TREE_MODEL_SORT
 (tree_model)' failed
when executing:   
f_model = gtk_tree_model_sort_get_model(GTK_TREE_MODEL_SORT(s_model));

where f_model and s_model are (GtkTreeModel *).

Am I confusing compile-time types (which are clear) with the run-time typing (which I haven't totally figured out yet)?

Finally, the most important question:  What tips do you have for
development environment/style?

Here's what I got:  
	CVS code checked out, editting w/ emacs, ran etags,
	gtk docs at /usr/share/gtk-doc/html/gtk, I snipped "-02" out of
	CFLAGS in Makefile.  (already had -g)  I'm usually doing "make;
	sudo make install" in the highest dir I'm modifying (currently
	gnucash/src/gnome/)  Then 10 min. later I run from
	/usr/local/bin/gnucash, along with "gdb /usr/local/bin/gnucash

Oh, and I grabbed glade2 just to see what that was about.  Am I
missing anything?  Should I recomp all my libs with similar CFLAGS?
(I think _most_ of them have symbol info, but I suspect they're also -02 because gdb jumps a little erratically in the libs.

What tools/techniques are other devs using?

I realize that I probably don't know as much as I should about autoconf,
automake, libtool, GTK, GLib, Glade, and many more.  I'm trying to "pick it up
along the way."  It all seems reasonably accessible.  I'm trying to steer clear
of gdk, pango, guile (but scheme's ok), and others.  Is this strategy
feasible, or am I going to have to learn _everything_ before being able
to intelligently hack on gnucash?


More information about the gnucash-devel mailing list