diff options
Diffstat (limited to 'perl-install/standalone/drakperm')
| -rwxr-xr-x | perl-install/standalone/drakperm | 75 |
1 files changed, 34 insertions, 41 deletions
diff --git a/perl-install/standalone/drakperm b/perl-install/standalone/drakperm index e37b76c74..fa69be838 100755 --- a/perl-install/standalone/drakperm +++ b/perl-install/standalone/drakperm @@ -5,11 +5,12 @@ use diagnostics; use lib qw(/usr/lib/libDrakX); use standalone; +use MDK::Common; use common; -use mygtk2 qw(gtknew gtkset); -use ugtk2 qw(:create :dialogs :helpers :wrappers); +use mygtk3 qw(gtknew gtkset); +use ugtk3 qw(:create :dialogs :helpers :wrappers); -$ugtk2::wm_icon = "/usr/share/mcc/themes/default/drakperm-mdk.png"; +$ugtk3::wm_icon = "/usr/share/mcc/themes/default/drakperm-mdk.png"; require_root_capability(); #- vars declaration @@ -29,21 +30,21 @@ my ($editable, $modified) = (0, 0); my @rules; #- Widget declaration -my $w = ugtk2->new(N("Security Permissions")); +my $w = ugtk3->new(N("Security Permissions")); $w->{rwindow}->set_size_request(620, 400) unless $::isEmbedded; my $W = $w->{window}; -$W->signal_connect(delete_event => sub { ugtk2->exit }); -my $model = Gtk2::ListStore->new("Gtk2::Gdk::Pixbuf", ("Glib::String") x 5); -my $permList = Gtk2::TreeView->new_with_model($model); +$W->signal_connect(delete_event => sub { ugtk3->exit }); +my $model = Gtk3::ListStore->new("Gtk3::Gdk::Pixbuf", ("Glib::String") x 5); +my $permList = Gtk3::TreeView->new_with_model($model); my $pixbuf = gtknew('Pixbuf', file => 'non-editable'); my @column_sizes = (150, 100, 100, 15, -1); # TreeView layout is (Editable, Path, User, Group, Permissions, [hidden]index_id) -$permList->append_column(Gtk2::TreeViewColumn->new_with_attributes(N("Editable"), Gtk2::CellRendererPixbuf->new, 'pixbuf' => 0)); +$permList->append_column(Gtk3::TreeViewColumn->new_with_attributes(N("Editable"), Gtk3::CellRendererPixbuf->new, 'pixbuf' => 0)); each_index { - my $col = Gtk2::TreeViewColumn->new_with_attributes($_, Gtk2::CellRendererText->new, 'text' => $::i + 1); + my $col = Gtk3::TreeViewColumn->new_with_attributes($_, Gtk3::CellRendererText->new, 'text' => $::i + 1); $col->set_min_width($column_sizes[$::i+1]); $permList->append_column($col); } (N("Path"), N("User"), N("Group"), N("Permissions")); @@ -102,10 +103,9 @@ $permList->signal_connect(button_press_event => sub { }); -my $tips = Gtk2::Tooltips->new; - $W->add(gtknew('VBox', spacing => 5, children => [ - 0, gtknew('Label_Left', text => N("Here you can see files to use in order to fix permissions, owners, and groups via msec.\nYou can also edit your own rules which will owerwrite the default rules."), alignment => [ 0.5, 0 ]), + if_(!$::isEmbedded, 0, Gtk3::Banner->new('/usr/share/mcc/themes/default/drakperm-mdk.png', N("Permissions"))), + 0, gtknew('Label_Left', text => N("Here you can see files to use in order to fix permissions, owners, and groups via msec.\nYou can also edit your own rules which will overwrite the default rules."), alignment => [ 0.5, 0 ]), 1, gtknew('VBox', border_width => 0, children => [ 0, gtknew('Label_Left', text => N("The current security level is %s. Select permissions to see/edit", $level), alignment => [ 0, 0 ]), @@ -116,18 +116,18 @@ Select permissions to see/edit", $level), alignment => [ 0, 0 ]), 1, gtknew('ScrolledWindow', child => $permList), 0, my $up_down_box = gtknew('HBox', spacing => 5, children_loose => [ @buttons = map { - gtkset_tip($tips, + gtkset_tip( gtknew('Button', text => $_->[0], clicked => $_->[2]), $_->[1]); } ([ N("Up"), N("Move selected rule up one level"), sub { move_callback('up') } ], [ N("Down"), N("Move selected rule down one level"), sub { move_callback('down') } ], [ N("Add a rule"), N("Add a new rule at the end"), \&add_callback ], [ N("Delete"), N("Delete selected rule"), \&del_callback ], - [ N("Edit"), N("Edit current rule"), \&edit_callback ])]), + [ N("Edit"), N("Edit current rule"), \&edit_callback ]) ]), 0, gtknew('VBox'), ]), 0, create_okcancel({ - cancel_clicked => sub { ugtk2->exit }, + cancel_clicked => sub { ugtk3->exit }, ok_clicked => \&save_perm, }, undef, undef, '', @@ -158,7 +158,7 @@ $permList->get_selection->signal_connect('changed' => sub { }); $w->main; -ugtk2->exit; +ugtk3->exit; sub hide_up_button_iffirst_item { @@ -209,7 +209,7 @@ sub save_perm() { close $F; } $modified = 0; - ugtk2->exit; + ugtk3->exit; } sub load_perms() { @@ -234,13 +234,10 @@ sub load_perms() { sub row_setting_dialog { my ($title, $o_iter) = @_; - my $dlg = gtknew('Dialog'); - $dlg->set_transient_for($w->{real_window}); - $dlg->set_title($title); - $dlg->set_modal(1); + my $dlg = gtknew('Dialog', transient_for => $w->{real_window}, title => $title); # $dlg->set_resizable(0); my $browse = gtknew('Button', text => N("browse")); - my $file = gtknew('Entry'); + my $file = gtknew('Entry', $o_iter ? (text => $model->get($o_iter, 1)) : ()); my ($other, $group, $user, $s) = $o_iter ? reverse(split(//, $model->get($o_iter, 4))) : (); my @bits = qw(sticky gid suid); my @rights = qw(read write execute); @@ -278,7 +275,6 @@ sub row_setting_dialog { my %s_right = get_right($s); my $alrd_exsts = defined $o_iter; - $file->set_text($model->get($o_iter, 1)) if $o_iter; my $users = gtknew('ComboBox', list => [ my @users = get_user_or_group('users') ]); $users->entry->set_text($model->get($o_iter, 2)) if $o_iter; @@ -294,7 +290,7 @@ sub row_setting_dialog { ] ); - my $usr_check = gtksignal_connect(gtkset_tip($tips, gtknew('CheckButton', text => N("Current user")), + my $usr_check = gtksignal_connect(gtkset_tip(gtknew('CheckButton', text => N("Current user")), N("When checked, owner and group will not be changed")), clicked => sub { $id_box->set_sensitive(!$_[0]->get_active) }); @@ -305,20 +301,20 @@ sub row_setting_dialog { $browse->signal_connect(clicked => sub { - my $file_dlg = Gtk2::FileSelection->new(N("Path selection")); - $file_dlg->set_modal(1); - $file_dlg->set_transient_for($dlg); - $file_dlg->show; + my $file_dlg = gtknew('FileChooserDialog', title => N("Path selection"), action => 'select_folder', + modal => 1, transient_for => $dlg); $file_dlg->set_filename($file->get_text); - $file_dlg->cancel_button->signal_connect(clicked => sub { $file_dlg->destroy }); - $file_dlg->ok_button->signal_connect(clicked => sub { - $file->set_text($file_dlg->get_filename); - $file_dlg->destroy; - }); + $file_dlg->show; + my $answer = $file_dlg->run; + if ($answer eq 'ok') { + $file->set_text($file_dlg->get_filename); + } + $file_dlg->hide; + $file_dlg->destroy; }); my %perms; - gtkpack_($dlg->vbox, + gtkpack_($dlg->get_child, 0, gtknew('Title2', label => N("Path")), 0, gtknew('HBox', border_width => 18, children => [ 1, $file, @@ -345,8 +341,7 @@ sub row_setting_dialog { map { my $c = $_; my $active = $perms{$owner}{$c}; - $perms{$owner}{$c} = gtknew('CheckButton'); - $tips->set_tip($perms{$owner}{$c}, + $perms{$owner}{$c} = gtkset_tip(gtknew('CheckButton'), $checks{$c}{tip}{$owner}, ); gtkset_active($perms{$owner}{$c}, $active); @@ -365,9 +360,7 @@ sub row_setting_dialog { $perms{gid}->set_active($s_right{write}); $perms{suid}->set_active($s_right{read}); - $dlg->set_has_separator(0); - - gtkadd($dlg->action_area, + gtkadd($dlg->get_action_area, create_okcancel(my $w = { cancel_clicked => sub { $dlg->destroy }, @@ -375,7 +368,7 @@ sub row_setting_dialog { my ($path, $user, $group, $perms, $_idx); $path = $file->get_text; if ($path !~ m!^/!) { - warn_dialog(N("Warning"), N("The first character of the path must be a slash (\"/\"):\n\"%s\"", $path)); + err_dialog(N("Warning"), N("The first character of the path must be a slash (\"/\"):\n\"%s\"", $path)); return 1; } if ($usr_check->get_active) { @@ -385,7 +378,7 @@ sub row_setting_dialog { $user = $users->entry->get_text; $group = $groups->entry->get_text; if (!member($user, @users) || !member($group, @groups)) { - warn_dialog(N("Warning"), join("\n", N("Both the username and the group must valid!"), + err_dialog(N("Warning"), join("\n", N("Both the username and the group must valid!"), N("User: %s", $user), N("Group: %s", $group), ) |
