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