by creating a GTKEntry widget, which shares its entrybuffer with the minfree widget in the regular partitioning menu.
Move get_float sub up and use it for the new widget. Signed-off-by: Stoiko Ivanov <[email protected]> --- proxinstall | 41 ++++++++++++++++++++++++++--------------- 1 file changed, 26 insertions(+), 15 deletions(-) diff --git a/proxinstall b/proxinstall index 18679c6..420da8a 100755 --- a/proxinstall +++ b/proxinstall @@ -2590,6 +2590,22 @@ my $create_raid_disk_grid = sub { # &$create_label_widget_grid($disk_labeled_widgets) }; +my $get_float = sub { + my ($entry) = @_; + + my $text = $entry->get_text(); + return undef if !defined($text); + + $text =~ s/^\s+//; + $text =~ s/\s+$//; + + return undef if $text !~ m/^\d+(\.\d+)?$/; + + return $text; +}; + +my $minfree_entry_buffer = Gtk3::EntryBuffer->new(undef, 1); + my $create_raid_advanced_grid = sub { my $labeled_widgets = []; my $spinbutton_ashift = Gtk3::SpinButton->new_with_range(9,13,1); @@ -2644,6 +2660,15 @@ my $create_raid_advanced_grid = sub { $spinbutton_copies->set_value($config_options->{copies}); push @$labeled_widgets, "copies", $spinbutton_copies; + my $entry_minfree = Gtk3::Entry->new_with_buffer($minfree_entry_buffer); + $entry_minfree->set_tooltip_text("minimum free space (GB, left unpartitioned on all bootable devices)"); + $entry_minfree->signal_connect (changed => sub{ + my $w = shift; + $config_options->{minfree} = $get_float->($w); + }); + $entry_minfree->set_text($config_options->{minfree}) if defined($config_options->{minfree}); + push @$labeled_widgets, "minfree", $entry_minfree; + return &$create_label_widget_grid($labeled_widgets);; }; @@ -2732,7 +2757,7 @@ sub create_hdoption_view { push @$hdsize_labeled_widgets, "maxroot", $entry_maxroot; } - my $entry_minfree = Gtk3::Entry->new(); + my $entry_minfree = Gtk3::Entry->new_with_buffer($minfree_entry_buffer); $entry_minfree->set_tooltip_text("minimum free LVM space (GB, required for LVM snapshots)"); $entry_minfree->signal_connect (key_press_event => \&check_float); $entry_minfree->set_text($config_options->{minfree}) if defined($config_options->{minfree}); @@ -2797,20 +2822,6 @@ sub create_hdoption_view { $dialog->run(); - my $get_float = sub { - my ($entry) = @_; - - my $text = $entry->get_text(); - return undef if !defined($text); - - $text =~ s/^\s+//; - $text =~ s/\s+$//; - - return undef if $text !~ m/^\d+(\.\d+)?$/; - - return $text; - }; - my $tmp; if (($tmp = &$get_float($spinbutton_hdsize)) && ($tmp != $hdsize)) { -- 2.11.0 _______________________________________________ pve-devel mailing list [email protected] https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
