Re: Handling children
- From: muppet <scott asofyet org>
- To: Mario Ospelt <mospelt student ethz ch>
- Cc: gtk-perl-list gnome org
- Subject: Re: Handling children
- Date: Fri, 16 Dec 2005 08:11:04 -0500
On Dec 16, 2005, at 3:17 AM, Mario Ospelt wrote:
I'm writing a program to search a database and display the search
results in pages of a notebook. Each search creates a new page in
the notebook. Pages can also be removed. Each page contains a
ListStore desplaying the results. A double-click on a row in the
liststore should now open a certain pdf file, that is created out
of the selected row. Therefore I have to know the TreeModel and the
TreeView (to use GtkTreeSelection) of the actual page of the
notebook. So should I store each model and treeview on teir
creation in a public array, on that I could refer later, or is it
possible to get the TreeModel and the TreeView otherwise because of
the actual page of the notebook? Or in other words: Can I obtain
the TreeModel and the TreeView as children of the actual page of
the notebook at any time?
You shouldn't need to do any of that stuff. Double-clicking on a row
is "activating" a row (just like hitting Enter in the view while the
row is selected), which fires the TreeView's row-activated signal.
The row-activated signal gets the view, the path to the activated
row, and the TreeViewColumn of the clicked column. You can get to
both the model and the selection from the view, but you shouldn't
need the selection because you got the path.
...
$view->signal_connect (row_activated => \&row_activated);
...
# note that this uses only its arguments, no globals, so it will do
# the right thing no matter which notebook page contains the view.
sub row_activated {
my ($view, $path, $column) = @_;
my $model = $view->get_model;
my $iter = $model->get_iter ($path);
my $filename = $model->get ($iter, FILENAME_COLUMN);
my $parent_window = $view->get_toplevel);
launch_viewer_window ($parent_window, $filename);
}
--
Jolt is my co-pilot.
-- Slogan on a giant paper airplane hung in Lobby 7 at MIT.
http://hacks.mit.edu/
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]