[gnome-control-center/wip/networking2: 60/101] network: Turn wifi details into a popup



commit af3825dcc17e3fd1380705262d191a32244df3a7
Author: Matthias Clasen <mclasen redhat com>
Date:   Sun Dec 9 19:38:32 2012 -0500

    network: Turn wifi details into a popup
    
    This is following the new network panel design. This is just
    an intermediate step, we still have the 'Settings' button for
    launching nm-connection-editor. Eventually, that will be replaced
    by full editing support in the new popup.

 panels/network/net-device-wifi.c |  162 +++++++---
 panels/network/network-wifi.ui   |  639 ++++++++++++++++++++++++++++++++++++--
 2 files changed, 722 insertions(+), 79 deletions(-)
---
diff --git a/panels/network/net-device-wifi.c b/panels/network/net-device-wifi.c
index dec7e60..fe7faf5 100644
--- a/panels/network/net-device-wifi.c
+++ b/panels/network/net-device-wifi.c
@@ -463,26 +463,17 @@ nm_device_wifi_refresh_hotspot (NetDeviceWifi *device_wifi)
 }
 
 static void
-update_last_used (NetDeviceWifi *device_wifi)
+update_last_used (NetDeviceWifi *device_wifi, NMConnection *connection)
 {
-        NetDeviceWifiPrivate *priv = device_wifi->priv;
         gchar *last_used = NULL;
         GDateTime *now = NULL;
         GDateTime *then = NULL;
         gint days;
         GTimeSpan diff;
         guint64 timestamp;
-        NMRemoteConnection *connection;
-        NMRemoteSettings *settings;
         NMSettingConnection *s_con;
 
-        if (priv->selected_connection_id == NULL)
-                goto out;
-
-        settings = net_object_get_remote_settings (NET_OBJECT (device_wifi));
-        connection = nm_remote_settings_get_connection_by_path (settings,
-                                                                priv->selected_connection_id);
-        s_con = nm_connection_get_setting_connection (NM_CONNECTION (connection));
+        s_con = nm_connection_get_setting_connection (connection);
         if (s_con == NULL)
                 goto out;
         timestamp = nm_setting_connection_get_timestamp (s_con);
@@ -527,7 +518,9 @@ nm_device_wifi_refresh_ui (NetDeviceWifi *device_wifi)
         NMDeviceState state;
         NMClient *client;
         NMAccessPoint *ap;
+        NMConnection *connection;
         NetDeviceWifiPrivate *priv = device_wifi->priv;
+        GtkWidget *dialog;
 
         is_hotspot = device_is_hotspot (device_wifi);
         if (is_hotspot) {
@@ -537,13 +530,11 @@ nm_device_wifi_refresh_ui (NetDeviceWifi *device_wifi)
 
         nm_device = net_device_get_nm_device (NET_DEVICE (device_wifi));
 
-        if (priv->selected_ap_id) {
-                ap = nm_device_wifi_get_access_point_by_path (NM_DEVICE_WIFI (nm_device),
-                                                              priv->selected_ap_id);
-        }
-        else {
-                ap = NULL;
-        }
+        dialog = GTK_WIDGET (gtk_builder_get_object (device_wifi->priv->builder,
+                                                     "details_dialog"));
+
+        ap = g_object_get_data (G_OBJECT (dialog), "ap");
+        connection = g_object_get_data (G_OBJECT (dialog), "connection");
 
         active_ap = nm_device_wifi_get_active_access_point (NM_DEVICE_WIFI (nm_device));
 
@@ -653,7 +644,7 @@ nm_device_wifi_refresh_ui (NetDeviceWifi *device_wifi)
                 panel_set_device_widgets (priv->builder, nm_device);
 
         if (ap != active_ap)
-                update_last_used (device_wifi);
+                update_last_used (device_wifi, connection);
         else
                 panel_set_device_widget_details (priv->builder, "last_used", NULL);
 
@@ -1395,7 +1386,22 @@ show_wifi_list (NetDeviceWifi *device_wifi)
 static void
 edit_connection (GtkButton *button, NetDeviceWifi *device_wifi)
 {
-        net_object_edit (NET_OBJECT (device_wifi));
+        GtkWidget *dialog;
+        NMConnection *connection;
+        const gchar *uuid;
+        gchar *cmdline;
+        GError *error = NULL;
+
+        dialog = gtk_widget_get_toplevel (GTK_WIDGET (button));
+        connection = g_object_get_data (G_OBJECT (dialog), "connection");
+        uuid = nm_connection_get_uuid (connection);
+        cmdline = g_strdup_printf ("nm-connection-editor --edit %s", uuid);
+        g_debug ("Launching '%s'\n", cmdline);
+        if (!g_spawn_command_line_async (cmdline, &error)) {
+                g_warning ("Failed to launch nm-connection-editor: %s", error->message);
+                g_error_free (error);
+        }
+        g_free (cmdline);
 }
 
 static void
@@ -1823,6 +1829,86 @@ ap_sort (gconstpointer a, gconstpointer b, gpointer data)
 
         return 0;
 }
+
+static void
+close_details (GtkWidget *widget)
+{
+        gtk_widget_hide (widget);
+        g_object_set_data (G_OBJECT (widget), "connection", NULL);
+        g_object_set_data (G_OBJECT (widget), "ap", NULL);
+}
+
+static void
+open_details (NMConnection  *connection,
+              NMAccessPoint *ap,
+              NetDeviceWifi *device_wifi,
+              GtkWidget     *toplevel)
+{
+        GtkWidget *dialog;
+        GtkWidget *widget;
+        NMSettingWireless *sw;
+        const GByteArray *ssid;
+        gchar *title;
+
+        g_assert (connection != NULL);
+
+        dialog = GTK_WIDGET (gtk_builder_get_object (device_wifi->priv->builder,
+                                                     "details_dialog"));
+
+        g_object_set_data (G_OBJECT (dialog), "connection", connection);
+        g_object_set_data (G_OBJECT (dialog), "ap", ap);
+
+        nm_device_wifi_refresh_ui (device_wifi);
+#if 1
+        /* hide unimplemented editing stuff */
+        widget = GTK_WIDGET (gtk_builder_get_object (device_wifi->priv->builder,
+                                                     "auto_connect_box"));
+        gtk_widget_hide (widget);
+
+        widget = GTK_WIDGET (gtk_builder_get_object (device_wifi->priv->builder,
+                                                     "details_sidebar"));
+        gtk_widget_hide (widget);
+
+        widget = GTK_WIDGET (gtk_builder_get_object (device_wifi->priv->builder,
+                                                     "details_apply_button"));
+        gtk_widget_hide (widget);
+#endif
+
+        widget = GTK_WIDGET (gtk_builder_get_object (device_wifi->priv->builder,
+                                                     "details_cancel_button"));
+        gtk_button_set_label (GTK_BUTTON (widget), _("_Close"));
+        g_signal_connect_swapped (widget, "clicked",
+                                  G_CALLBACK (close_details), dialog);
+        g_signal_connect (dialog, "delete-event",
+                          G_CALLBACK (close_details), NULL);
+
+        sw = nm_connection_get_setting_wireless (connection);
+        ssid = nm_setting_wireless_get_ssid (sw);
+        title = g_markup_escape_text (nm_utils_escape_ssid (ssid->data, ssid->len), -1);
+        gtk_window_set_title (GTK_WINDOW (dialog), title);
+        g_free (title);
+        gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (toplevel));
+
+        gtk_window_present (GTK_WINDOW (dialog));
+}
+
+static void
+show_details_for_row (GtkButton *button, NetDeviceWifi *device_wifi)
+{
+        GtkWidget *row;
+        NMConnection *connection;
+        NMAccessPoint *ap;
+        GtkWidget *window;
+
+        window = gtk_widget_get_toplevel (GTK_WIDGET (button));
+
+        row = GTK_WIDGET (g_object_get_data (G_OBJECT (button), "row"));
+        connection = NM_CONNECTION (g_object_get_data (G_OBJECT (row), "connection"));
+        ap = NM_ACCESS_POINT (g_object_get_data (G_OBJECT (row), "ap"));
+
+        open_details (connection, ap, device_wifi, window);
+}
+
 static void
 open_history (NetDeviceWifi *device_wifi)
 {
@@ -1851,6 +1937,7 @@ open_history (NetDeviceWifi *device_wifi)
         window = gtk_widget_get_toplevel (GTK_WIDGET (panel));
         gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (window));
         gtk_window_set_title (GTK_WINDOW (dialog), _("History"));
+        gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
         gtk_window_set_default_size (GTK_WINDOW (dialog), 600, 400);
 
         button = gtk_button_new_with_mnemonic (_("_Close"));
@@ -1921,42 +2008,19 @@ open_history (NetDeviceWifi *device_wifi)
                         ap = NULL;
                 }
 
-                make_row (rows, icons, forget, nm_device, connection, ap, active_ap, &row, NULL, NULL);
+                make_row (rows, icons, forget, nm_device, connection, ap, active_ap, &row, NULL, &button);
                 gtk_container_add (GTK_CONTAINER (list), row);
+                if (button) {
+                        g_signal_connect (button, "clicked",
+                                          G_CALLBACK (show_details_for_row), device_wifi);
+                        g_object_set_data (G_OBJECT (button), "row", row);
+                }
         }
 
         gtk_window_present (GTK_WINDOW (dialog));
 }
 
 static void
-show_details_for_row (GtkButton *button, NetDeviceWifi *device_wifi)
-{
-        GtkWidget *row;
-        NMConnection *connection;
-        NMAccessPoint *ap;
-        const GByteArray *ssid;
-        GtkWidget *widget;
-
-        row = GTK_WIDGET (g_object_get_data (G_OBJECT (button), "row"));
-        connection = NM_CONNECTION (g_object_get_data (G_OBJECT (row), "connection"));
-        ap = NM_ACCESS_POINT (g_object_get_data (G_OBJECT (row), "ap"));
-
-        g_free (device_wifi->priv->selected_connection_id);
-        g_free (device_wifi->priv->selected_ap_id);
-        g_free (device_wifi->priv->selected_ssid_title);
-
-        device_wifi->priv->selected_connection_id = g_strdup (nm_connection_get_path (connection));
-        device_wifi->priv->selected_ap_id = g_strdup (nm_object_get_path (NM_OBJECT (ap)));
-        ssid = nm_access_point_get_ssid (ap);
-        device_wifi->priv->selected_ssid_title = g_markup_escape_text (nm_utils_escape_ssid (ssid->data, ssid->len), -1);
-
-        widget = GTK_WIDGET (gtk_builder_get_object (device_wifi->priv->builder, "notebook_view"));
-
-        nm_device_wifi_refresh_ui (device_wifi);
-        gtk_notebook_set_current_page (GTK_NOTEBOOK (widget), 1);
-}
-
-static void
 populate_ap_list (NetDeviceWifi *device_wifi)
 {
         GtkWidget *swin;
diff --git a/panels/network/network-wifi.ui b/panels/network/network-wifi.ui
index ab985ce..b41b5e9 100644
--- a/panels/network/network-wifi.ui
+++ b/panels/network/network-wifi.ui
@@ -1,6 +1,585 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <interface>
   <!-- interface-requires gtk+ 3.0 -->
+  <object class="GtkListStore" id="details_store">
+    <columns>
+      <!-- column-name name -->
+      <column type="gchararray"/>
+      <!-- column-name page -->
+      <column type="gint"/>
+    </columns>
+    <data>
+      <row>
+        <col id="0" translatable="yes">Details</col>
+        <col id="1">0</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Identity</col>
+        <col id="1">1</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">IPv4</col>
+        <col id="1">2</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">IPv6</col>
+        <col id="1">3</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Hardware</col>
+        <col id="1">4</col>
+      </row>
+      <row>
+        <col id="0" translatable="yes">Reset</col>
+        <col id="1">5</col>
+      </row>
+    </data>
+  </object>
+  <object class="GtkDialog" id="details_dialog">
+    <property name="can_focus">False</property>
+    <property name="border_width">5</property>
+    <property name="modal">True</property>
+    <property name="default_width">600</property>
+    <property name="default_height">300</property>
+    <property name="type_hint">dialog</property>
+    <child internal-child="vbox">
+      <object class="GtkBox" id="dialog-vbox2">
+        <property name="can_focus">False</property>
+        <property name="orientation">vertical</property>
+        <property name="spacing">2</property>
+        <child internal-child="action_area">
+          <object class="GtkButtonBox" id="dialog-action_area2">
+            <property name="can_focus">False</property>
+            <property name="layout_style">end</property>
+            <property name="valign">end</property>
+            <child>
+              <object class="GtkButton" id="button_options1">
+                <property name="label" translatable="yes">_Settingsâ</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="halign">end</property>
+                <property name="valign">end</property>
+                <property name="hexpand">True</property>
+                <property name="vexpand">True</property>
+                <property name="use_underline">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">1</property>
+                <property name="secondary">True</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="details_cancel_button">
+                <property name="label">gtk-cancel</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="use_stock">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">2</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="details_apply_button">
+                <property name="label">gtk-apply</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="use_stock">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">3</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="pack_type">end</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkBox" id="box6">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <child>
+              <object class="GtkScrolledWindow" id="details_sidebar">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="hscrollbar_policy">never</property>
+                <property name="shadow_type">in</property>
+                <child>
+                  <object class="GtkTreeView" id="details_page_list">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="model">details_store</property>
+                    <property name="headers_visible">False</property>
+                    <property name="headers_clickable">False</property>
+                    <property name="search_column">0</property>
+                    <child internal-child="selection">
+                      <object class="GtkTreeSelection" id="treeview-selection"/>
+                    </child>
+                    <child>
+                      <object class="GtkTreeViewColumn" id="details_column">
+                        <child>
+                          <object class="GtkCellRendererText" id="details_cell">
+                            <property name="width_chars">50</property>
+                          </object>
+                          <attributes>
+                            <attribute name="text">0</attribute>
+                          </attributes>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkNotebook" id="details_notebook">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="show_tabs">False</property>
+                <child>
+                  <object class="GtkBox" id="box8">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="orientation">vertical</property>
+                    <child>
+                      <object class="GtkBox" id="auto_connect_box">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="halign">end</property>
+                        <property name="valign">center</property>
+                        <property name="spacing">6</property>
+                        <child>
+                          <object class="GtkLabel" id="label8">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="label" translatable="yes">Automatic _Connect</property>
+                            <property name="use_underline">True</property>
+                            <property name="mnemonic_widget">automatic_connect_switch</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">True</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkSwitch" id="automatic_connect_switch">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">True</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">True</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkGrid" id="grid1">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="valign">start</property>
+                        <property name="margin_left">50</property>
+                        <property name="margin_right">50</property>
+                        <property name="margin_top">12</property>
+                        <property name="margin_bottom">12</property>
+                        <property name="row_spacing">10</property>
+                        <property name="column_spacing">6</property>
+                        <child>
+                          <object class="GtkLabel" id="heading_strength">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="hexpand">True</property>
+                            <property name="xalign">1</property>
+                            <property name="label" translatable="yes">Signal Strength</property>
+                            <property name="mnemonic_widget">label_strength2</property>
+                            <style>
+                              <class name="dim-label"/>
+                            </style>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">0</property>
+                            <property name="width">1</property>
+                            <property name="height">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="label_strength">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="hexpand">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label">Weak</property>
+                            <property name="selectable">True</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="top_attach">0</property>
+                            <property name="width">1</property>
+                            <property name="height">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="heading_speed">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="xalign">1</property>
+                            <property name="label" translatable="yes">Link speed</property>
+                            <property name="mnemonic_widget">label_speed2</property>
+                            <style>
+                              <class name="dim-label"/>
+                            </style>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">1</property>
+                            <property name="width">1</property>
+                            <property name="height">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="label_speed">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label">1Mb/sec</property>
+                            <property name="selectable">True</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="top_attach">1</property>
+                            <property name="width">1</property>
+                            <property name="height">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="heading_security">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="xalign">1</property>
+                            <property name="label" translatable="yes">Security</property>
+                            <property name="mnemonic_widget">label_security2</property>
+                            <style>
+                              <class name="dim-label"/>
+                            </style>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">2</property>
+                            <property name="width">1</property>
+                            <property name="height">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="heading_ipv4">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="xalign">1</property>
+                            <property name="label" translatable="yes">IPv4 Address</property>
+                            <property name="mnemonic_widget">label_ipv42</property>
+                            <style>
+                              <class name="dim-label"/>
+                            </style>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">3</property>
+                            <property name="width">1</property>
+                            <property name="height">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="heading_ipv6">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="xalign">1</property>
+                            <property name="label" translatable="yes">IPv6 Address</property>
+                            <property name="mnemonic_widget">label_ipv62</property>
+                            <style>
+                              <class name="dim-label"/>
+                            </style>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">4</property>
+                            <property name="width">1</property>
+                            <property name="height">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="heading_mac">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="xalign">1</property>
+                            <property name="label" translatable="yes">Hardware Address</property>
+                            <property name="mnemonic_widget">label_mac2</property>
+                            <style>
+                              <class name="dim-label"/>
+                            </style>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">5</property>
+                            <property name="width">1</property>
+                            <property name="height">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="heading_route">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="xalign">1</property>
+                            <property name="label" translatable="yes">Default Route</property>
+                            <property name="mnemonic_widget">label_route2</property>
+                            <style>
+                              <class name="dim-label"/>
+                            </style>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">6</property>
+                            <property name="width">1</property>
+                            <property name="height">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="heading_dns">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="xalign">1</property>
+                            <property name="yalign">0</property>
+                            <property name="label" translatable="yes">DNS</property>
+                            <property name="mnemonic_widget">label_dns2</property>
+                            <style>
+                              <class name="dim-label"/>
+                            </style>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">7</property>
+                            <property name="width">1</property>
+                            <property name="height">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="heading_last_used">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="xalign">1</property>
+                            <property name="label" translatable="yes">Last used</property>
+                            <property name="mnemonic_widget">label_last_used2</property>
+                            <style>
+                              <class name="dim-label"/>
+                            </style>
+                          </object>
+                          <packing>
+                            <property name="left_attach">0</property>
+                            <property name="top_attach">8</property>
+                            <property name="width">1</property>
+                            <property name="height">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="label_security">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label">WPA</property>
+                            <property name="selectable">True</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="top_attach">2</property>
+                            <property name="width">1</property>
+                            <property name="height">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="label_ipv4">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label">127.0.0.1</property>
+                            <property name="selectable">True</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="top_attach">3</property>
+                            <property name="width">1</property>
+                            <property name="height">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="label_ipv6">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label">::1</property>
+                            <property name="selectable">True</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="top_attach">4</property>
+                            <property name="width">1</property>
+                            <property name="height">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="label_mac">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label">AA:BB:CC:DD:55:66:77:88</property>
+                            <property name="selectable">True</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="top_attach">5</property>
+                            <property name="width">1</property>
+                            <property name="height">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="label_route">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label">127.0.0.1</property>
+                            <property name="selectable">True</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="top_attach">6</property>
+                            <property name="width">1</property>
+                            <property name="height">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="label_dns">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="xalign">0</property>
+                            <property name="yalign">0</property>
+                            <property name="label">127.0.0.1</property>
+                            <property name="wrap">True</property>
+                            <property name="selectable">True</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="top_attach">7</property>
+                            <property name="width">1</property>
+                            <property name="height">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkLabel" id="label_last_used">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="xalign">0</property>
+                            <property name="label">today</property>
+                            <property name="selectable">True</property>
+                          </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="top_attach">8</property>
+                            <property name="width">1</property>
+                            <property name="height">1</property>
+                          </packing>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                  </object>
+                </child>
+                <child type="tab">
+                  <object class="GtkLabel" id="label4">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="label" translatable="yes">page 1</property>
+                  </object>
+                  <packing>
+                    <property name="tab_fill">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child type="tab">
+                  <object class="GtkLabel" id="label6">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="label" translatable="yes">page 2</property>
+                  </object>
+                  <packing>
+                    <property name="position">1</property>
+                    <property name="tab_fill">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <placeholder/>
+                </child>
+                <child type="tab">
+                  <object class="GtkLabel" id="label7">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="label" translatable="yes">page 3</property>
+                  </object>
+                  <packing>
+                    <property name="position">2</property>
+                    <property name="tab_fill">False</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">True</property>
+            <property name="fill">True</property>
+            <property name="position">1</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+    <action-widgets>
+      <action-widget response="0">button_options1</action-widget>
+      <action-widget response="0">details_cancel_button</action-widget>
+      <action-widget response="0">details_apply_button</action-widget>
+    </action-widgets>
+  </object>
   <object class="GtkDialog" id="hotspot-dialog">
     <property name="can_focus">False</property>
     <property name="border_width">5</property>
@@ -336,7 +915,7 @@
                     <property name="hexpand">True</property>
                     <property name="spacing">3</property>
                     <child>
-                      <object class="GtkLabel" id="label_device">
+                      <object class="GtkLabel" id="label_device2">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
                         <property name="xalign">0</property>
@@ -354,7 +933,7 @@
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkLabel" id="label_status">
+                      <object class="GtkLabel" id="label_status2">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
                         <property name="xalign">0</property>
@@ -420,12 +999,12 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkLabel" id="heading_last_used">
+                  <object class="GtkLabel" id="heading_last_used2">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
                     <property name="xalign">1</property>
                     <property name="label" translatable="yes">Last used</property>
-                    <property name="mnemonic_widget">label_last_used</property>
+                    <property name="mnemonic_widget">label_last_used2</property>
                     <style>
                       <class name="dim-label"/>
                     </style>
@@ -438,7 +1017,7 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkLabel" id="label_last_used">
+                  <object class="GtkLabel" id="label_last_used2">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="xalign">0</property>
@@ -453,12 +1032,12 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkLabel" id="heading_mac">
+                  <object class="GtkLabel" id="heading_mac2">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
                     <property name="xalign">1</property>
                     <property name="label" translatable="yes">Hardware Address</property>
-                    <property name="mnemonic_widget">label_mac</property>
+                    <property name="mnemonic_widget">label_mac2</property>
                     <style>
                       <class name="dim-label"/>
                     </style>
@@ -471,7 +1050,7 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkLabel" id="label_mac">
+                  <object class="GtkLabel" id="label_mac2">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="xalign">0</property>
@@ -486,12 +1065,12 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkLabel" id="heading_security">
+                  <object class="GtkLabel" id="heading_security2">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
                     <property name="xalign">1</property>
                     <property name="label" translatable="yes">Security</property>
-                    <property name="mnemonic_widget">label_security</property>
+                    <property name="mnemonic_widget">label_security2</property>
                     <style>
                       <class name="dim-label"/>
                     </style>
@@ -504,7 +1083,7 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkLabel" id="label_security">
+                  <object class="GtkLabel" id="label_security2">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="xalign">0</property>
@@ -519,12 +1098,12 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkLabel" id="heading_strength">
+                  <object class="GtkLabel" id="heading_strength2">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
                     <property name="xalign">1</property>
                     <property name="label" translatable="yes">Strength</property>
-                    <property name="mnemonic_widget">label_strength</property>
+                    <property name="mnemonic_widget">label_strength2</property>
                     <style>
                       <class name="dim-label"/>
                     </style>
@@ -537,7 +1116,7 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkLabel" id="label_strength">
+                  <object class="GtkLabel" id="label_strength2">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="xalign">0</property>
@@ -552,12 +1131,12 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkLabel" id="heading_speed">
+                  <object class="GtkLabel" id="heading_speed2">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
                     <property name="xalign">1</property>
                     <property name="label" translatable="yes">Link speed</property>
-                    <property name="mnemonic_widget">label_speed</property>
+                    <property name="mnemonic_widget">label_speed2</property>
                     <style>
                       <class name="dim-label"/>
                     </style>
@@ -570,7 +1149,7 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkLabel" id="label_speed">
+                  <object class="GtkLabel" id="label_speed2">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="xalign">0</property>
@@ -585,12 +1164,12 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkLabel" id="heading_ipv4">
+                  <object class="GtkLabel" id="heading_ipv42">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
                     <property name="xalign">1</property>
                     <property name="label" translatable="yes">IPv4 Address</property>
-                    <property name="mnemonic_widget">label_ipv4</property>
+                    <property name="mnemonic_widget">label_ipv42</property>
                     <style>
                       <class name="dim-label"/>
                     </style>
@@ -603,7 +1182,7 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkLabel" id="label_ipv4">
+                  <object class="GtkLabel" id="label_ipv42">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="xalign">0</property>
@@ -618,12 +1197,12 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkLabel" id="heading_ipv6">
+                  <object class="GtkLabel" id="heading_ipv62">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
                     <property name="xalign">1</property>
                     <property name="label" translatable="yes">IPv6 Address</property>
-                    <property name="mnemonic_widget">label_ipv6</property>
+                    <property name="mnemonic_widget">label_ipv62</property>
                     <style>
                       <class name="dim-label"/>
                     </style>
@@ -636,7 +1215,7 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkLabel" id="label_ipv6">
+                  <object class="GtkLabel" id="label_ipv62">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="xalign">0</property>
@@ -651,12 +1230,12 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkLabel" id="heading_route">
+                  <object class="GtkLabel" id="heading_route2">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
                     <property name="xalign">1</property>
                     <property name="label" translatable="yes">Default Route</property>
-                    <property name="mnemonic_widget">label_route</property>
+                    <property name="mnemonic_widget">label_route2</property>
                     <style>
                       <class name="dim-label"/>
                     </style>
@@ -669,7 +1248,7 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkLabel" id="label_route">
+                  <object class="GtkLabel" id="label_route2">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="xalign">0</property>
@@ -684,13 +1263,13 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkLabel" id="heading_dns">
+                  <object class="GtkLabel" id="heading_dns2">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
                     <property name="xalign">1</property>
                     <property name="yalign">0</property>
                     <property name="label" translatable="yes">DNS</property>
-                    <property name="mnemonic_widget">label_dns</property>
+                    <property name="mnemonic_widget">label_dns2</property>
                     <style>
                       <class name="dim-label"/>
                     </style>
@@ -703,7 +1282,7 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkLabel" id="label_dns">
+                  <object class="GtkLabel" id="label_dns2">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="xalign">0</property>
@@ -786,7 +1365,7 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkButton" id="button_options1">
+                  <object class="GtkButton" id="button_options2">
                     <property name="label" translatable="yes">_Settingsâ</property>
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]