From: Maximiliano Sandoval <m.sando...@proxmox.com> This is a continuation of https://lists.proxmox.com/pipermail/pve-devel/2023-August/058639.html.
Signed-off-by: Maximiliano Sandoval R <m.sando...@proxmox.com> --- v3 was tested only with `make check-pve`. v2 was properly tested by Filip Schauer <f.scha...@proxmox.com> in a VM. Differences from v2: - Use a escaped utf8 character instead of using `use uft-8;` Differences from v1: - Instead of adding a `- UP` or `- DOWN` to the interface label, we display a green BLACK CIRCLE ● similar to what systemd does. To achieve this we separate the GtkWidget in the dropdown in two, and set the color of the new one to green. It was discussed off-list that adding a character for interfaces that were down introduced too much visual noise. proxinstall | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/proxinstall b/proxinstall index d5b2565..11e537b 100755 --- a/proxinstall +++ b/proxinstall @@ -341,10 +341,20 @@ sub create_ipconf_view { my ($cidr_box, $ipconf_entry_addr, $ipconf_entry_mask) = create_cidr_inputs($cidr); - my $device_cb = Gtk3::ComboBoxText->new(); + my $device_model = Gtk3::ListStore->new('Glib::String', 'Glib::String'); + my $device_cb = Gtk3::ComboBox->new_with_model($device_model); $device_cb->set_active(0); $device_cb->set_visible(1); + my $icon_cell = Gtk3::CellRendererText->new(); + $device_cb->pack_start($icon_cell, 0); + $device_cb->add_attribute($icon_cell, 'text', 0); + $icon_cell->set_property('foreground', 'green'); + + my $cell = Gtk3::CellRendererText->new(); + $device_cb->pack_start($cell, 0); + $device_cb->add_attribute($cell, 'text', 1); + my $get_device_desc = sub { my $iface = shift; return "$iface->{name} - $iface->{mac} ($iface->{driver})"; @@ -374,7 +384,12 @@ sub create_ipconf_view { my $i = 0; for my $index (sort keys $ipconf->{ifaces}->%*) { my $iface = $ipconf->{ifaces}->{$index}; - $device_cb->append_text($get_device_desc->($iface)); + my $iter = $device_model->append(); + my $symbol = "$iface->{state}" eq "UP" ? "\x{25CF}" : ' '; + $device_model->set($iter, + 0 => $symbol, + 1 => $get_device_desc->($iface), + ); $device_active_map->{$i} = $index; $device_active_reverse_map->{$iface->{name}} = $i; if ($ipconf_first_view && $index == $ipconf->{default}) { -- 2.39.2 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel