cvs: php-gtk /test bug_gtkliststore_insert_before.phpw bug_gtktreeiter.phpw bug_gtktreemodel_filter_new.phpw bug_gtktreemodel_iter_nth_child.phpw

From: Date: Tue, 27 Dec 2005 18:10:30 +0000
Subject: cvs: php-gtk /test bug_gtkliststore_insert_before.phpw bug_gtktreeiter.phpw bug_gtktreemodel_filter_new.phpw bug_gtktreemodel_iter_nth_child.phpw
Groups: php.gtk.cvs 
Request: Send a blank email to php-gtk-cvs+get-2025@lists.php.net to get a copy of this message
cweiske Tue Dec 27 18:10:30 2005 EDT Added files: /php-gtk/test bug_gtktreemodel_iter_nth_child.phpw bug_gtktreemodel_filter_new.phpw bug_gtktreeiter.phpw bug_gtkliststore_insert_before.phpw Log: The bug tests requested by Steph http://cvs.php.net/viewcvs.cgi/php-gtk/test/bug_gtktreemodel_iter_nth_child.phpw?view=markup&rev=1.1 Index: php-gtk/test/bug_gtktreemodel_iter_nth_child.phpw +++ php-gtk/test/bug_gtktreemodel_iter_nth_child.phpw <?php /** Description: ------------- Another c-ish method: > $store->iter_nth_child($iter, $parent, 0); sets $iter to the first child of $parent instead of returning it. It should be that way: > $iter = $store->iter_nth_child($parent, 0); */ $store = new GtkTreeStore(Gtk::TYPE_STRING); $root = $store->append(null, array('root')); $child = $store->append($root, array('child')); $child2 = $store->append($root, array('child2')); //OLD /* $store->iter_nth_child($child2, $root, 0); //should be "child" var_dump($store->get_value($child2, 0)); /**/ //NEW should be: /**/ $child2 = $store->iter_nth_child($root, 0); //should be "child" var_dump($store->get_value($child2, 0)); /**/ ?> http://cvs.php.net/viewcvs.cgi/php-gtk/test/bug_gtktreemodel_filter_new.phpw?view=markup&rev=1.1 Index: php-gtk/test/bug_gtktreemodel_filter_new.phpw +++ php-gtk/test/bug_gtktreemodel_filter_new.phpw <?php /** GtkTreeModel::filte_new segfaults if no parameter is given */ $store = new GtkListStore(Gtk::TYPE_STRING); $store->append(array('tset')); //shouldn't crash echo "waiting for crash\r\n"; $store2 = $store->filter_new(); echo "good - no crash"; ?> http://cvs.php.net/viewcvs.cgi/php-gtk/test/bug_gtktreeiter.phpw?view=markup&rev=1.1 Index: php-gtk/test/bug_gtktreeiter.phpw +++ php-gtk/test/bug_gtktreeiter.phpw <?php /** Description: ------------- When trying to compare two GtkTreeIter, I always get true when using "==", and a false when using "===" for comparison - equal if they point to the same path or not. Is that a bug, or are TreeIters not meant to be compared? */ $store = new GtkListStore(Gtk::TYPE_STRING); $iter = $store->append(array('test')); $iter2 = $store->append(array('test2')); echo "Value of iter: " . $store->get_value($iter, 0) . "\r\n"; echo "Value of iter2: " . $store->get_value($iter2, 0) . "\r\n"; //should be false if ($iter == $iter2) { echo "wrong: different iters equal ==\r\n"; } else { echo "ok\r\n"; } //should be false if ($iter === $iter2) { echo "wrong: different iters equal ===\r\n"; } else { echo "ok\r\n"; } $iter3 = $store->iter_children(); echo "Value of iter3: " . $store->get_value($iter3, 0) . "\r\n"; //should be true if ($iter == $iter3) { echo "ok\r\n"; } else { echo "wrong: iters pointing to the same row don't equal ==\r\n"; } //should be true again if ($iter === $iter3) { echo "ok\r\n"; } else { echo "wrong: iters pointing to the same row don't equal ===\r\n"; } ?> http://cvs.php.net/viewcvs.cgi/php-gtk/test/bug_gtkliststore_insert_before.phpw?view=markup&rev=1.1 Index: php-gtk/test/bug_gtkliststore_insert_before.phpw +++ php-gtk/test/bug_gtkliststore_insert_before.phpw <?php /** Description: ------------- When writing the docs for GtkListStore, I noted the too C-ish style of insert_before and insert_after. > insert_before($iter, $sibling) inserts a *new* row before $sibling, and changes the $iter to the new iterator. That pointer change is c-ish and not php-like. IMO it should be that way: > $iter = $store->insert_before($sibling); or, with an optional parameter as insert() has: > $iter = $store->insert_before($sibling, array('value0', 'value1')); So that one doesn't have to create an GtkTreeIter before one can insert a row before another one. (And we can't even create that on our own!) The same applies to insert_after. */ $store = new GtkListStore(Gtk::TYPE_STRING); $iter = $store->append(array('test')); //OLD /* //current C-ish behavior: //create new iter $newiter = $iter->copy(); //let the function fill it $store->insert_before($newiter, $iter); //should be NULL var_dump($store->get_value($newiter, 0)); //should still be "test" var_dump($store->get_value($iter, 0)); //should be 2 var_dump($store->iter_n_children(null)); /**/ //NEW /**/ $newiter = $store->insert_before($iter); //should be NULL now var_dump($store->get_value($newiter, 0)); //should be 2 var_dump($store->iter_n_children(null)); /**/ ?>

« previous php.gtk.cvs (#2025) next »