Re: More on embedding combo models in a treestore

muppet wrote:

(cc'ing gtk-devel-list to see if anybody can confirm whether this is 
a bug in gtk+ or behaving as designed.)

On Jul 8, 2005, at 12:22 AM, Daniel Kasak wrote:

If I edit a cell with a combo and then click into another row, 
however, things go screwy. The problem seems to be that by clicking 
in another row, I'm 'activating' it *before* my code catches the 
edit and figures out what to put back into the cell. ie when I get 
hold of the combo's model, I'm actually getting the model of the 
combo in the *new* row that I just clicked in, and not the model of 
the combo in the *current* (from my point of view anyway ) row.

I can confirm this with the little test program i posted earlier  ( msg00065.html
), by adding these lines to the "edited" callback:

    my ($combo_model) = $model->get ($model->get_iter_from_string 
($text_path), MODEL_COLUMN);
    warn "NOT THE SAME\n" if $combo_model != $cell->get ('model');

then clicking in a row, clicking again in that row to edit it, 
choosing something else from the menu, then clicking in another row 
to commit the edit instead of hitting the enter key.


I'm assuming you have the combo models stored in a spare column of 
the main tree model (as previously discussed); instead of getting the 
combo model from the renderer, try getting it from the tree model 
row, like so:

    my $path = Gtk2::TreePath->new_from_string ($text_path);
    my $model = $self->{treeview}->get_model;
    my $iter = $model->get_iter ($path);
    my $combo_model = $model->get ($iter, COMBO_MODEL_COLUMN);

If this works, then it's a good bet my hypothesis is correct.  This 
smells a bit like a bug, and if nothing else violates the principle 
of least surprise, but it's up to the gtk+ developers to say whether 
it's really wrong.

Yes this works. Thanks Muppet :)

Daniel Kasak
IT Developer
NUS Consulting Group
Level 5, 77 Pacific Highway
North Sydney, NSW, Australia 2060
T: (+61) 2 9922-7676 / F: (+61) 2 9922 7989
email: dkasak nusconsulting com au

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]