Re: More on embedding combo models in a treestore
- From: Daniel Kasak <dkasak nusconsulting com au>
- To: muppet <scott asofyet org>, gtk-perl mailing list <gtk-perl-list gnome org>, Gtk+ Developers <gtk-devel-list gnome org>
- Cc:
- Subject: Re: More on embedding combo models in a treestore
- Date: Mon, 11 Jul 2005 08:31:54 +1000
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 (
http://mail.gnome.org/archives/gtk-perl-list/2005-July/ 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.
<snipped>
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
website: http://www.nusconsulting.com.au
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]