Re: libseed-list seed && GtkTreeSelection
- From: "Alan Knowles" <alan akbkhome com>
- To: "tsr" <libseed-list-bounces gnome org>
- Cc: libseed-list gnome org
- Subject: Re: libseed-list seed && GtkTreeSelection
- Date: Wed, 26 May 2010 12:30:07 +0800
get_selected - needs the model as the first argument.
function show_file() {
var iter = new Gtk.TreeIter();
/* This is the problematic part */
tree_selection.get_selected(tree, iter);
/* What should I do here? */
var value = new GObject.Value('');
tree.get_value(iter, 2, value);
print(value.value);
}
there are quite a few tree examples in this code.
http://git.akbkhome.com/?p=app.Builder.js;a=blob;f=Builder/Window.js
(it's from this application)
http://www.akbkhome.com/blog.php/View/192/appBuilderjs__First_release.html
Regards
Alan
--- On 26/May/2010, tsr wrote:
> Hi,
>
> First off, I don't know much of JS or Gtk but still I'm trying to use
> seed to create a basic desktop editor.
>
> (I've chosen this combination cause I hope to eventually be able to
> replicate it for the web later on and using JS for the logic in both
> places might save me some coding - that is the idea anyway)
>
> Anyhow, I've managed to set up a GtkTreeView that recursively displays
> the files and folders from a given folder. I have also managed to catch
> the event of one row being selected. Now I have trouble using that
> select-event to show the contents of the file (/folder) in a separate
> panel.
>
> Below is my code (I've built the interface with glade, so I think you
> should be able to follow my intentions without a full glade file)
>
> The problem is dealing with the
> Gtk.TreeSelection.get_selected()-function (see the show_file-function
> below). I don't understand what the first argument should be, I've tried
> almost any combination of things but I (almost) always get:
>
> (seed:17195): GLib-GObject-CRITICAL **: g_object_get_qdata: assertion
> `G_IS_OBJECT (object)' failed
> Fallo de segmentación (in english: ~ segmentation fault)
>
> I've installed seed from the ubuntu-repos and they show version 2.28
> (haven't dist-upgraded from Jaunty)
>
> If you need any more info to be able to help me I am ofc willing to give
> that.
>
> Oh, while I'm here, is there any generic way of getting information out
> of seed_struct-object? It would help me to debug things and keep moving
> slowly forward).
>
> I am not on the list, so please cc me (but I will check the archives so
> you don't have to).
>
> /Tomas
>
> -- code ----------
> #!/usr/bin/env seed
>
> var Gtk = imports.gi.Gtk;
> var GtkBuilder = imports.gtkbuilder;
> var Gio = imports.gi.Gio;
>
> function populate_tree(tree, tree_piter, file) {
> var tree_iter = new Gtk.TreeIter();
> var file_iter = file.enumerate_children("standard::*");
> while (finfo = file_iter.next_file()) {
> tree.append(tree_iter, tree_piter);
> tree.set_value(tree_iter, 0, finfo.get_display_name(), "/fake", 0);
>
> if (finfo.get_content_type() == "inode/directory") {
> populate_tree(tree, tree_iter, file.get_child(finfo.get_name()));
> }
> }
> }
>
> function show_file() {
> iter = new Gtk.TreeIter();
>
> /* This is the problematic part */
> tree_selection.get_selected(tree_view, iter);
> /* What should I do here? */
> }
>
> Gtk.init(Seed.argv);
>
> builder = new Gtk.Builder();
> builder.add_from_file("basic_gui.glade");
>
> window = builder.get_object("window1");
> window.signal.hide.connect(Gtk.main_quit);
>
> tree = builder.get_object("treestore1");
> tree_view = builder.get_object("treeview1");
> tree_selection = tree_view.get_selection();
> tree_selection.signal.changed.connect(show_file);
>
> basedir = Gio.file_new_for_path("./files");
>
> populate_tree(tree, null, basedir);
>
> window.show_all();
>
> Gtk.main();
>
>
> _______________________________________________
> libseed-list mailing list
> libseed-list gnome org
> http://mail.gnome.org/mailman/listinfo/libseed-list
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]