diff --git a/src/Widgets/InfoBox.vala b/src/Widgets/InfoBox.vala
index 1ac0081e..e910cb39 100644
--- a/src/Widgets/InfoBox.vala
+++ b/src/Widgets/InfoBox.vala
@@ -1,210 +1,166 @@
-/*-
- * Copyright (c) 2015-2016 elementary LLC.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, either version 2.1 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- *
+/*
+ * SPDX-License-Identifier: LGPL-2.1-or-later
+ * SPDX-FileCopyrightText: 2015-2024 elementary, Inc. (https://elementary.io)
* Authored by: Adam Bieńkowski
*/
-namespace Network.Widgets {
- public class InfoBox : Gtk.Grid {
- public signal void update_sidebar (DeviceItem item);
- public signal void info_changed ();
- public NM.Device device { get; construct; }
- public DeviceItem? owner { get; construct; }
-
- private Gtk.Label ip4address;
- private Gtk.Label ip6address;
- private Gtk.Label mask;
- private Gtk.Label router;
- private Gtk.Label dns;
- private Gtk.Label sent;
- private Gtk.Label received;
-
- private Gtk.Label ip6address_head;
-
- public InfoBox.from_device (NM.Device device) {
- Object (device: device);
- }
+public class Network.Widgets.InfoBox : Gtk.Box {
+ public signal void update_sidebar (DeviceItem item);
+ public signal void info_changed ();
+ public NM.Device device { get; construct; }
+ public DeviceItem? owner { get; construct; }
- public InfoBox.from_owner (DeviceItem owner) {
- Object (owner: owner, device: owner.device);
- }
+ private Gtk.Box ip6address_box;
+ private Gtk.Label ip4address;
+ private Gtk.Label mask;
+ private Gtk.Label router;
+ private Gtk.Label dns;
+ private Gtk.Label sent;
+ private Gtk.Label received;
- construct {
- column_spacing = 12;
- row_spacing = 6;
-
- var sent_head = new Gtk.Image.from_icon_name ("go-up-symbolic", Gtk.IconSize.BUTTON);
- sent = new Gtk.Label (null);
-
- var sent_grid = new Gtk.Grid () {
- column_spacing = 12,
- tooltip_text = (_("Sent"))
- };
- sent_grid.add (sent_head);
- sent_grid.add (sent);
-
- var received_head = new Gtk.Image.from_icon_name ("go-down-symbolic", Gtk.IconSize.BUTTON);
- received = new Gtk.Label (null);
-
- var received_grid = new Gtk.Grid () {
- column_spacing = 12,
- tooltip_text = (_("Received"))
- };
- received_grid.add (received_head);
- received_grid.add (received);
-
- var send_receive_grid = new Gtk.Grid () {
- halign = Gtk.Align.CENTER,
- column_spacing = 12,
- margin_top = 12
- };
- send_receive_grid.add (sent_grid);
- send_receive_grid.add (received_grid);
-
- var ip4address_head = new Gtk.Label (_("IP Address:")) {
- halign = Gtk.Align.END
- };
-
- ip4address = new Gtk.Label (null) {
- selectable = true,
- xalign = 0
- };
-
- ip6address_head = new Gtk.Label (_("IPv6 Address:")) {
- no_show_all = true,
- halign = Gtk.Align.END
- };
-
- ip6address = new Gtk.Label (null) {
- selectable = true,
- no_show_all = true,
- xalign = 0
- };
-
- var mask_head = new Gtk.Label (_("Subnet mask:")) {
- halign = Gtk.Align.END
- };
-
- mask = new Gtk.Label (null) {
- selectable = true,
- xalign = 0
- };
-
- var router_head = new Gtk.Label (_("Router:")) {
- halign = Gtk.Align.END
- };
-
- router = new Gtk.Label (null) {
- selectable = true,
- xalign = 0
- };
-
- var dns_head = new Gtk.Label (_("DNS:")) {
- halign = Gtk.Align.END
- };
-
- dns = new Gtk.Label (null) {
- selectable = true,
- xalign = 0
- };
-
- attach (ip4address_head, 0, 0);
- attach_next_to (ip4address, ip4address_head, Gtk.PositionType.RIGHT);
-
- attach_next_to (ip6address_head, ip4address_head, Gtk.PositionType.BOTTOM);
- attach_next_to (ip6address, ip6address_head, Gtk.PositionType.RIGHT);
-
- attach_next_to (mask_head, ip6address_head, Gtk.PositionType.BOTTOM);
- attach_next_to (mask, mask_head, Gtk.PositionType.RIGHT);
-
- attach_next_to (router_head, mask_head, Gtk.PositionType.BOTTOM);
- attach_next_to (router, router_head, Gtk.PositionType.RIGHT);
-
- attach_next_to (dns_head, router_head, Gtk.PositionType.BOTTOM);
- attach_next_to (dns, dns_head, Gtk.PositionType.RIGHT);
-
- attach_next_to (send_receive_grid, dns_head, Gtk.PositionType.BOTTOM, 4, 1);
-
- device.state_changed.connect (() => {
- update_status ();
- info_changed ();
- });
+ private Gtk.Label ip6address_head;
+
+ public InfoBox.from_device (NM.Device device) {
+ Object (device: device);
+ }
+ construct {
+ var sent_image = new Gtk.Image.from_icon_name ("go-up-symbolic", BUTTON) {
+ tooltip_text = _("Sent")
+ };
+
+ sent = new Gtk.Label (null);
+
+ var received_image = new Gtk.Image.from_icon_name ("go-down-symbolic", BUTTON) {
+ tooltip_text = _("Received")
+ };
+
+ received = new Gtk.Label (null);
+
+ var send_receive_box = new Gtk.Box (HORIZONTAL, 6) {
+ halign = CENTER,
+ margin_top = 12
+ };
+ send_receive_box.add (sent_image);
+ send_receive_box.add (sent);
+ send_receive_box.add (received_image);
+ send_receive_box.add (received);
+
+ var ip4address_head = new Granite.HeaderLabel (_("IP Address"));
+
+ ip4address = new Gtk.Label (null) {
+ selectable = true,
+ xalign = 0
+ };
+
+ ip6address_head = new Granite.HeaderLabel (_("IPv6 Addresses")) {
+ no_show_all = true
+ };
+
+ ip6address_box = new Gtk.Box (VERTICAL, 6) {
+ no_show_all = true
+ };
+
+ var mask_head = new Granite.HeaderLabel (_("Subnet Mask"));
+
+ mask = new Gtk.Label (null) {
+ selectable = true,
+ xalign = 0
+ };
+
+ var router_head = new Granite.HeaderLabel (_("Router"));
+
+ router = new Gtk.Label (null) {
+ selectable = true,
+ xalign = 0
+ };
+
+ var dns_head = new Granite.HeaderLabel (_("DNS"));
+
+ dns = new Gtk.Label (null) {
+ selectable = true,
+ xalign = 0
+ };
+
+ orientation = VERTICAL;
+ add (ip4address_head);
+ add (ip4address);
+ add (ip6address_head);
+ add (ip6address_box);
+ add (mask_head);
+ add (mask);
+ add (router_head);
+ add (router);
+ add (dns_head);
+ add (dns);
+ add (send_receive_box);
+
+ device.state_changed.connect (() => {
update_status ();
- show_all ();
- }
+ info_changed ();
+ });
- public void update_activity (string sent_bytes, string received_bytes) {
- sent.label = sent_bytes ?? UNKNOWN_STR;
- received.label = received_bytes ?? UNKNOWN_STR;
- }
+ update_status ();
+ show_all ();
+ }
- public void update_status () {
- var ipv4 = device.get_ip4_config ();
- if (ipv4 != null) {
- if (ipv4.get_addresses ().length > 0) {
- unowned NM.IPAddress address = ipv4.get_addresses ().get (0);
- ip4address.label = address.get_address ();
- uint32 mask_addr = Posix.htonl ((uint32)0xffffffff << (32 - address.get_prefix ()));
- var source_addr = Posix.InAddr () { s_addr = mask_addr };
- mask.label = (Posix.inet_ntoa (source_addr) ?? UNKNOWN_STR);
- }
+ public void update_activity (string sent_bytes, string received_bytes) {
+ sent.label = sent_bytes ?? UNKNOWN_STR;
+ received.label = received_bytes ?? UNKNOWN_STR;
+ }
+
+ public void update_status () {
+ var ipv4 = device.get_ip4_config ();
+ if (ipv4 != null) {
+ if (ipv4.get_addresses ().length > 0) {
+ unowned NM.IPAddress address = ipv4.get_addresses ().get (0);
+ ip4address.label = address.get_address ();
+ uint32 mask_addr = Posix.htonl ((uint32)0xffffffff << (32 - address.get_prefix ()));
+ var source_addr = Posix.InAddr () { s_addr = mask_addr };
+ mask.label = (Posix.inet_ntoa (source_addr) ?? UNKNOWN_STR);
+ }
- router.label = (ipv4.get_gateway () ?? UNKNOWN_STR);
+ router.label = (ipv4.get_gateway () ?? UNKNOWN_STR);
- dns.label = "";
- if (ipv4.get_nameservers ().length > 0) {
- string [] dns_addr = ipv4.get_nameservers ();
- dns.label = dns_addr[0];
- for (int i=1; i < dns_addr.length; i++) {
- dns.label = dns.label + ", " + dns_addr[i];
- }
+ dns.label = "";
+ if (ipv4.get_nameservers ().length > 0) {
+ string [] dns_addr = ipv4.get_nameservers ();
+ dns.label = dns_addr[0];
+ for (int i=1; i < dns_addr.length; i++) {
+ dns.label = dns.label + ", " + dns_addr[i];
}
- } else {
- ip4address.label = UNKNOWN_STR;
- mask.label = UNKNOWN_STR;
- router.label = UNKNOWN_STR;
- dns.label = UNKNOWN_STR;
}
+ } else {
+ ip4address.label = UNKNOWN_STR;
+ mask.label = UNKNOWN_STR;
+ router.label = UNKNOWN_STR;
+ dns.label = UNKNOWN_STR;
+ }
- var ip6 = device.get_ip6_config ();
- ip6address.visible = ip6address_head.visible = (ip6 != null);
- ip6address.label = "";
- if (ip6 != null) {
- int i = 1;
- var addresses = ip6.get_addresses ();
- addresses.foreach ((addr) => {
- addr.@ref ();
- string inet_str = addr.get_address () + "/" + addr.get_prefix ().to_string ();
- ip6address.visible = ip6address_head.visible = (inet_str.strip () != "");
- ip6address.label += inet_str;
- if (i < addresses.length) {
- ip6address.label += "\n";
- }
-
- i++;
- });
+ var ip6 = device.get_ip6_config ();
+ ip6address_box.visible = ip6address_head.visible = (ip6 != null);
+ if (ip6 != null) {
+ foreach (unowned var child in ip6address_box.get_children ()) {
+ child.destroy ();
}
+ foreach (unowned var address in ip6.get_addresses ()) {
+ var inet_str = address.get_address () + "/" + address.get_prefix ().to_string ();
- if (owner != null) {
- update_sidebar (owner);
+ var address_label = new Gtk.Label (inet_str) {
+ selectable = true,
+ xalign = 0
+ };
+ address_label.show_all ();
+
+ ip6address_box.add (address_label);
}
+ }
- this.show_all ();
+ if (owner != null) {
+ update_sidebar (owner);
}
+
+ this.show_all ();
}
}