1. EuGTK - puzzling Gtk errors
- Posted by Jerry_Story Oct 07, 2010
- 1447 views
global object lvNutrientsREQ = Iter(4), lvNutrientsNonREQ = Iter(4), lvDiet = Iter(5), lvFoods = Iter(4), lvRecipes = Iter(4) global constant lstNutrientsREQ = List:View(lvNutrientsREQ,{"REQ nutrient","in 100g food","in diet","dlNR"}), lstNutrientsNonREQ = List:View(lvNutrientsNonREQ,{"nonREQ nutrient","in 100g food","in diet","dlNN"}), lstDiet = List:View(lvDiet,{"food","amount","kitchen measure","nutrient","dlD"}), lstFoods = List:View(lvFoods,{"food","N/100g","N/req cal","dlF"}), lstRecipes = List:View(lvRecipes,{"recipe","N/100g","n/req cal","dlR"}), indNR = 4, indNN = 4, indD = 5, indF = 4, indR = 4 -- The "dl" (display list) columns are hidden. global object storeNutrientsREQ = List:Store({gSTR,gSTR,gSTR,gINT}), storeNutrientsNonREQ = List:Store({gSTR,gSTR,gSTR,gINT}), storeDiet = List:Store({gSTR,gSTR,gSTR,gSTR,gINT}), storeFoods = List:Store({gSTR,gSTR,gSTR,gINT}), storeRecipes = List:Store({gSTR,gSTR,gSTR,gINT}) set(lstNutrientsREQ,"model",storeNutrientsREQ) set(lstNutrientsNonREQ,"model",storeNutrientsNonREQ) set(lstDiet,"model",storeDiet) set(lstFoods,"model",storeFoods) set(lstRecipes,"model",storeRecipes)
So far as I can see, the above code is correct. At least it seems to work except for the errors below.
I'm getting a bunch of repetitions of these errors.
Gtk-CRITICAL : gtk_list_store_get_column_type: assertion `index < GTK_LIST_STORE (tree_model)->n_columns' failed
Gtk-WARNING : /build/buildd/gtk+2.0-2.20.1/gtk/gtkliststore.c:797: Invalid column number 4 added to iter (remember to end your list of columns with a -1)
Sometimes number 4, sometimes 5, one 6.
No meaningful line numbers are given.
I went thru all the list stuff in the whole program and everything seems to be correct. It even seems to work correctly. The program does not crash. The lists seem to work correctly.
What is happening? How can I track down the code where these errors are happening?
2. Re: EuGTK - puzzling Gtk errors
- Posted by irv Oct 07, 2010
- 1388 views
There's nothing wrong with the code above. This message is most likely due to sending the liststore more columns of data than it has been set up to hold. You need to look where you're adding data to the store:
for i = 1 to length(var) do -- load the list store with data LV:Row(lv,store,var[i]) end for
Easy way to check is to limit or slice the sequences being added, i.e. var[i][1..4] for a view that's supposed to hold 4 columns.