Hi,
There's really no magic in debugging. You run the program, look at what's the error messages, set some breakpoints, look at the intermediate variable values, gather all the clues and figure out where the bug is.
Since you did not have any program for me to run, there's no way I can help you debug the program.
For your case, I think you first need to find out why are the signal handler "editMenuItem()" being called twice? (Note: can you try add a return true; at the end of the function and see if it works.)
It's really difficult to debug when your codes get that complicated.
What I usually did is to write a simple, yet standalone code, such as the one in
Sample Code 135: How to edit items in GtkTreeView - using popup dialog?
The standalone code will allow me to try to see if the widgets and the methods work properly first, before I start wrapping them up in classes and interface to mysql.
I know it's a bit tedious. But it works, and allows you to find the bug easily.
Regards,
/kksou