Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-15-SP7:Update
gnome-control-center.31120
gnome-control-center-disable-error-message-for-...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File gnome-control-center-disable-error-message-for-NM.patch of Package gnome-control-center.31120
From b5ae9ddfa0df356ae7bf9445631b756883226825 Mon Sep 17 00:00:00 2001 From: Jonathan Kang <jonathankang@gnome.org> Date: Sun, 26 Sep 2021 11:04:13 +0800 Subject: [PATCH] add error messages when wicked is used as network manager --- panels/network/cc-network-panel.c | 37 ++++++++++++++++++++++++++- panels/network/cc-wifi-panel.c | 22 +++++++++++++++- panels/network/cc-wifi-panel.ui | 42 +++++++++++++++++++++++++++++++ tests/meson.build | 3 +++ 4 files changed, 102 insertions(+), 2 deletions(-) diff --git a/panels/network/cc-network-panel.c b/panels/network/cc-network-panel.c index 01b164ea0..d32e94d09 100644 --- a/panels/network/cc-network-panel.c +++ b/panels/network/cc-network-panel.c @@ -643,10 +643,24 @@ static void panel_check_network_manager_version (CcNetworkPanel *self) { const gchar *version; + const gchar *state; + GDBusConnection *connection; + GDBusProxy *proxy; + GVariant *variant; + + connection = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, NULL); + proxy = g_dbus_proxy_new_sync (connection, G_DBUS_PROXY_FLAGS_NONE, + NULL, + "org.freedesktop.systemd1", + "/org/freedesktop/systemd1/unit/wickedd_2ddhcp6_2eservice", + "org.freedesktop.systemd1.Unit", + NULL, NULL); + variant = g_dbus_proxy_get_cached_property (proxy, "ActiveState"); + state = g_variant_get_string (variant, NULL); /* parse running version */ version = nm_client_get_version (self->client); - if (version == NULL) { + if (version == NULL && g_strcmp0 (state, "inactive") == 0) { GtkWidget *box; GtkWidget *label; g_autofree gchar *markup = NULL; @@ -671,10 +685,31 @@ panel_check_network_manager_version (CcNetworkPanel *self) gtk_widget_set_valign (label, GTK_ALIGN_START); gtk_box_pack_start (GTK_BOX (box), label, TRUE, TRUE, 0); + gtk_widget_show_all (box); + } else if (version == NULL && g_strcmp0 (state, "active") == 0) { + GtkWidget *box; + GtkWidget *label; + + gtk_container_remove (GTK_CONTAINER (self), gtk_bin_get_child (GTK_BIN (self))); + + box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 20); + gtk_box_set_homogeneous (GTK_BOX (box), TRUE); + gtk_widget_set_vexpand (box, TRUE); + gtk_container_add (GTK_CONTAINER (self), box); + + label = gtk_label_new (_("Please use YaST2 to configure your network.")); + gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); + gtk_widget_set_valign (label, GTK_ALIGN_CENTER); + gtk_box_pack_start (GTK_BOX (box), label, TRUE, TRUE, 0); + gtk_widget_show_all (box); } else { manager_running (self); } + + g_object_unref (connection); + g_object_unref (proxy); + g_variant_unref (variant); } static void diff --git a/panels/network/cc-wifi-panel.c b/panels/network/cc-wifi-panel.c index 9ca6e6ee5..c4622e684 100644 --- a/panels/network/cc-wifi-panel.c +++ b/panels/network/cc-wifi-panel.c @@ -439,21 +439,41 @@ static void check_main_stack_page (CcWifiPanel *self) { const gchar *nm_version; + const gchar *state; gboolean airplane_mode_active; gboolean wireless_enabled; + GDBusConnection *connection; + GDBusProxy *proxy; + GVariant *variant; + + connection = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, NULL); + proxy = g_dbus_proxy_new_sync (connection, G_DBUS_PROXY_FLAGS_NONE, + NULL, + "org.freedesktop.systemd1", + "/org/freedesktop/systemd1/unit/wickedd_2ddhcp6_2eservice", + "org.freedesktop.systemd1.Unit", + NULL, NULL); + variant = g_dbus_proxy_get_cached_property (proxy, "ActiveState"); + state = g_variant_get_string (variant, NULL); nm_version = nm_client_get_version (self->client); wireless_enabled = nm_client_wireless_get_enabled (self->client); airplane_mode_active = cc_list_row_get_active (self->rfkill_row); - if (!nm_version) + if (!nm_version && g_strcmp0 (state, "inactive") == 0) gtk_stack_set_visible_child_name (self->main_stack, "nm-not-running"); + else if (!nm_version && g_strcmp0 (state, "active") == 0) + gtk_stack_set_visible_child_name (self->main_stack, "wicked-running"); else if (!wireless_enabled && airplane_mode_active) gtk_stack_set_visible_child_name (self->main_stack, "airplane-mode"); else if (!wireless_enabled || self->devices->len == 0) gtk_stack_set_visible_child_name (self->main_stack, "no-wifi-devices"); else gtk_stack_set_visible_child_name (self->main_stack, "wifi-connections"); + + g_object_unref (connection); + g_object_unref (proxy); + g_variant_unref (variant); } static void diff --git a/panels/network/cc-wifi-panel.ui b/panels/network/cc-wifi-panel.ui index 2ac7570f9..5a53f9a57 100644 --- a/panels/network/cc-wifi-panel.ui +++ b/panels/network/cc-wifi-panel.ui @@ -318,6 +318,48 @@ <property name="name">nm-not-running</property> </packing> </child> + + <!-- "Wicked Running" page --> + <child> + <object class="GtkBox"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="expand">True</property> + <property name="halign">center</property> + <property name="valign">center</property> + <property name="orientation">vertical</property> + <property name="margin">18</property> + <property name="spacing">18</property> + <child type="center"> + <object class="GtkImage"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="icon_name">face-sad-symbolic</property> + <property name="pixel_size">128</property> + <style> + <class name="dim-label" /> + </style> + </object> + </child> + <child> + <object class="GtkLabel"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="wrap">True</property> + <property name="label" translatable="yes">Please use YaST2 to configure your network.</property> + <attributes> + <attribute name="scale" value="1.42" /> + </attributes> + </object> + <packing> + <property name="pack-type">end</property> + </packing> + </child> + </object> + <packing> + <property name="name">wicked-running</property> + </packing> + </child> </object> </child> diff --git a/tests/meson.build b/tests/meson.build index d4fe361ef..da3bd104d 100644 --- a/tests/meson.build +++ b/tests/meson.build @@ -1,8 +1,11 @@ subdir('common') #subdir('datetime') +# Disable tests for network panel, boo#1128195 +if false if host_is_linux subdir('network') endif +endif subdir('interactive-panels') -- 2.31.1
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor