Bug #54175 [Opn->Bgs]: GtkCellRendererCombo changed signal missing GtkTreeIter parameter on callback
[email protected] Sun, 6 Mar 2011 17:05:57 +0100 (CET)
| Newsgroups | php.gtk.dev |
|---|---|
| Message-ID | <[email protected]> |
Edit report at http://bugs.php.net/bug.php?id=54175&edit=1 ID: 54175 Updated by: [email protected] Reported by: ptlis at ptlis dot net Summary: GtkCellRendererCombo changed signal missing GtkTreeIter parameter on callback -Status: Open +Status: Bogus Type: Bug Package: PHP-GTK related Operating System: Linux PHP Version: 5.3.5 Block user comment: N Private report: N New Comment: You're using the 'edited' signal - not the 'changed' signal. For the 'changed' signal, the GtkTreeIter is the third argument passed to the callback. Previous Comments: ------------------------------------------------------------------------ [2011-03-06 16:54:50] ptlis at ptlis dot net Basic test case of what should occur: <?php class test { protected $str; public function __construct($str) { $this->str = $str; } } $window = new GtkWindow(); $window->set_size_request(400, 400); // Tree Model $treeModel = new GtkTreeStore(GObject::TYPE_STRING); $treeModel->append(null, array('foo')); // Tree View $treeView = new GtkTreeView(); $treeView->set_model($treeModel); $window->add($treeView); // Combo Model $comboModel = new GtkListStore(GObject::TYPE_STRING, GObject::TYPE_PHP_VALUE); $comboModel->append(array('foo', new test('foo'))); $comboModel->append(array('bar', new test('bar'))); $comboModel->append(array('baz', new test('baz'))); // Combo renderer $renderer = new GtkCellRendererCombo(); $renderer->set_property('model', $comboModel); $renderer->set_property('text-column', 0); $renderer->set_property('editable', true); $renderer->set_property('has-entry', false); $column = new GtkTreeViewColumn('column:', $renderer, 'text', 0); $treeView->append_column($column); $renderer->connect('edited', 'combo_change'); function combo_change(GtkCellRendererText $cell, $path, $selectionText/*, GtkTreeIter $treeIter*/) { /* $class = $cell->model->get_value($treeIter->iter, 1); */ echo 'changed' . "\n"; } $window->show_all(); Gtk::main(); ------------------------------------------------------------------------ [2011-03-06 16:21:50] ptlis at ptlis dot net Description: ------------ The changed signal should provide a GtkTreeIter as documented here: http://library.gnome.org/devel/gtk/stable/GtkCellRendererCombo.html#GtkCellRendererCombo.signal-details Without this parameter passed to callbacks there is no sane mechanism to get data from other columns in the GtkListStore. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/bug.php?id=54175&edit=1