From cc65b8d0cc6c0ced59285cf34f6c3c8f8ef17fdd Mon Sep 17 00:00:00 2001 From: Eugeni Dodonov Date: Fri, 14 Aug 2009 15:31:39 +0000 Subject: Implemented netprofile module management. --- bin/draknetprofile | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) (limited to 'bin/draknetprofile') diff --git a/bin/draknetprofile b/bin/draknetprofile index d226648..f938698 100755 --- a/bin/draknetprofile +++ b/bin/draknetprofile @@ -62,6 +62,23 @@ Gtk2::SimpleList->add_column_type( attr => 'active', ); +my $modules_list = Gtk2::SimpleList->new( + N("Module") => 'hidden', + N("Enabled") => 'bool', + N("Description") => 'text', +); + +my @r = $modules_list->get_column(0)->get_cell_renderers; +$r[0]->signal_connect('toggled' => sub { + my ($_renderer, $row, $_col) = @_; + if ($modules_list->{data}[$row][1]) { + network::network::netprofile_module_enable($modules_list->{data}[$row][0]); + } else { + network::network::netprofile_module_disable($modules_list->{data}[$row][0]); + } + }); + + my $profiles_list = Gtk2::SimpleList->new( "" => 'hidden', N("Profile") => 'text', @@ -74,6 +91,17 @@ $profiles_list->get_selection->signal_connect('changed' => sub { } }); +sub load_netprofile_modules() { + my @modules = network::network::netprofile_modules(); + foreach (@modules) { + push @{$modules_list->{data}}, [ + $_->{module}, + $_->{enabled}, + $_->{description}, + ]; + } +} + sub get_selected_profile() { my ($index) = $profiles_list->get_selected_indices; if (not $index ) { @@ -164,7 +192,9 @@ sub delete_selected_profile() { gtkadd($w->{window}, gtknew('VBox', spacing => 5, children => [ $::isEmbedded ? () : (0, Gtk2::Banner->new('draknetprofile', $title)), - 0, gtknew('WrappedLabel', text => N("This tool allows to activate an existing network profile, and to manage (clone, delete) profiles.") . "\n\n" . N("To modify a profile, you have to activate it first.")), + 0, gtknew('WrappedLabel', text => N("This tool allows to control network profiles.")), + 1, gtknew('ScrolledWindow', width => 300, height => 150, child => $modules_list), + 0, gtknew('WrappedLabel', text => N("Select a network profile:")), 1, gtknew('ScrolledWindow', width => 300, height => 150, child => $profiles_list), 0, gtknew('HButtonBox', children_loose => [ $buttons{activate} = gtknew('Button', text => N("Activate"), clicked => \&set_selected_profile, sensitive => 0), @@ -175,5 +205,6 @@ gtkadd($w->{window}, ]), ); +load_netprofile_modules(); update_profiles(); $w->main; -- cgit v1.2.1