diff options
Diffstat (limited to 'perl-install/standalone')
-rwxr-xr-x | perl-install/standalone/harddrake2 | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/perl-install/standalone/harddrake2 b/perl-install/standalone/harddrake2 index 8621622d2..9d9db96ea 100755 --- a/perl-install/standalone/harddrake2 +++ b/perl-install/standalone/harddrake2 @@ -185,6 +185,7 @@ my %menu_options = ( my @menu_items = ( [ N("/_File"), undef, undef, undef, '<Branch>' ], + [ N("/_File") . N("/_Upload the hardware list"), undef, \&upload, undef, '<Item>' ], [ N("/_File") . N("/_Quit"), N("<control>Q"), \&quit_global, undef, '<Item>' ], [ join('', @{$menu_options{PRINTERS_DETECTION}}), undef, sub { $options{PRINTERS_DETECTION} = $check_boxes{PRINTERS_DETECTION}->get_active }, undef, '<CheckItem>' ], @@ -519,3 +520,43 @@ sub popup_menu { return 0; }; } + +sub upload { + my $dialog = _create_dialog(N("Upload the hardware list"), + { if_(!$::isEmbedded, transient => $w->{real_window}) }); #, height => 400 + gtkpack($dialog->vbox, + gtkset_markup(Gtk2::Label->new, qq(<span weight="bold">) . N("Upload the system configuration") . "</span>\n"), + create_packtable({ col_spacings => 10, row_spacings => 5, mcc => 1 }, + [ N("Account:"), my $account_w = Gtk2::Entry->new ], + [ N("Password:"), my $password_w = Gtk2::Entry->new ], + [ N("Hostname:"), my $system_name_w = Gtk2::Entry->new ], + ), + ); +$password_w->set_visibility(0); #set_invisible_char('*'); + + my ($password, $account, $name); + gtkadd($dialog->action_area, + create_okcancel( + { + cancel_clicked => sub { $dialog->destroy; Gtk2->main_quit }, + ok_clicked => sub { + $name = $system_name_w->get_text; + $account = $account_w->get_text; + $password = $password_w->get_text; + $dialog->destroy; + Gtk2->main_quit; + }, + }, + undef, undef, '', + ), + ); + + $dialog->set_has_separator(0); + $dialog->show_all; + Gtk2->main; + if ($account) { + local $ENV{HWDB_PASSWD} = $password; + require run_program; + run_program::raw({ detach => 1 }, "/usr/sbin/hwdb_add_system", $account, $name); + } +} |