Accepting request 425720 from GNOME:Next

Fixed patch tag line - it has been rebased

OBS-URL: https://build.opensuse.org/request/show/425720
OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/gnome-control-center?expand=0&rev=330
This commit is contained in:
Dominique Leuenberger 2016-09-08 21:25:14 +00:00 committed by Git OBS Bridge
parent 6789e3390c
commit c95887cb4a
9 changed files with 150 additions and 757 deletions

View File

@ -1,320 +0,0 @@
From b72c423a344f2e455c17978bab76eb29912d0b5b Mon Sep 17 00:00:00 2001
From: Gary Ching-Pang Lin <chingpang@gmail.com>
Date: Tue, 14 Feb 2012 18:41:51 +0800
Subject: [PATCH] network: create private connections if the user if not
authorized
This commit checks whether the polkit policy allows the user to
create a system connection without authentication. If not, create
private connections.
https://bugzilla.gnome.org/show_bug.cgi?id=646187
---
configure.ac | 3 ++-
panels/network/cc-network-panel.c | 40 ++++++++++++++++++++++++++++++++++++--
panels/network/cc-network-panel.h | 2 ++
panels/network/net-device-mobile.c | 5 ++++-
panels/network/net-device-wifi.c | 25 +++++++++++++++++++++++-
panels/network/network-dialogs.c | 22 +++++++++++++++++++--
panels/network/network-dialogs.h | 6 ++++--
7 files changed, 94 insertions(+), 9 deletions(-)
Index: gnome-control-center-3.17.2/configure.ac
===================================================================
--- gnome-control-center-3.17.2.orig/configure.ac
+++ gnome-control-center-3.17.2/configure.ac
@@ -137,7 +137,8 @@ PKG_CHECK_MODULES(KEYBOARD_PANEL, $COMMO
PKG_CHECK_MODULES(MEDIA_PANEL, $COMMON_MODULES)
PKG_CHECK_MODULES(MOUSE_PANEL, $COMMON_MODULES xi >= 1.2
gnome-settings-daemon >= $GSD_REQUIRED_VERSION x11)
-PKG_CHECK_MODULES(NETWORK_PANEL, $COMMON_MODULES gmodule-2.0)
+PKG_CHECK_MODULES(NETWORK_PANEL, $COMMON_MODULES gmodule-2.0
+ polkit-gobject-1 >= $POLKIT_REQUIRED_VERSION)
PKG_CHECK_MODULES(NOTIFICATIONS_PANEL, $COMMON_MODULES)
PKG_CHECK_MODULES(ONLINE_ACCOUNTS_PANEL, $COMMON_MODULES goa-1.0 goa-backend-1.0 >= $GOA_REQUIRED_VERSION)
PKG_CHECK_MODULES(POWER_PANEL, $COMMON_MODULES upower-glib >= 0.99.0
Index: gnome-control-center-3.17.2/panels/network/cc-network-panel.c
===================================================================
--- gnome-control-center-3.17.2.orig/panels/network/cc-network-panel.c
+++ gnome-control-center-3.17.2/panels/network/cc-network-panel.c
@@ -23,6 +23,8 @@
#include <glib/gi18n.h>
#include <stdlib.h>
+#include <polkit/polkit.h>
+
#include "cc-network-panel.h"
#include "cc-network-resources.h"
@@ -84,6 +86,9 @@ struct _CcNetworkPanelPrivate
gchar *arg_device;
gchar *arg_access_point;
gboolean operation_done;
+
+ /* polkit authentication check */
+ gboolean default_private;
};
enum {
@@ -576,13 +581,13 @@ handle_argv_for_device (CcNetworkPanel *
return TRUE;
} else if (g_strcmp0 (nm_object_get_path (NM_OBJECT (device)), priv->arg_device) == 0) {
if (priv->arg_operation == OPERATION_CONNECT_MOBILE) {
- cc_network_panel_connect_to_3g_network (toplevel, priv->client, priv->remote_settings, device);
+ cc_network_panel_connect_to_3g_network (toplevel, priv->client, priv->remote_settings, device, priv->default_private);
reset_command_line_args (panel); /* done */
select_tree_iter (panel, iter);
return TRUE;
} else if (priv->arg_operation == OPERATION_CONNECT_8021X) {
- cc_network_panel_connect_to_8021x_network (toplevel, priv->client, priv->remote_settings, device, priv->arg_access_point);
+ cc_network_panel_connect_to_8021x_network (toplevel, priv->client, priv->remote_settings, device, priv->arg_access_point, priv->default_private);
reset_command_line_args (panel); /* done */
select_tree_iter (panel, iter);
return TRUE;
@@ -1374,6 +1379,9 @@ cc_network_panel_init (CcNetworkPanel *p
GtkWidget *toplevel;
GDBusConnection *system_bus;
GtkCssProvider *provider;
+ PolkitSubject *subject;
+ PolkitAuthority *authority;
+ PolkitAuthorizationResult *result;
panel->priv = NETWORK_PANEL_PRIVATE (panel);
g_resources_register (cc_network_get_resource ());
@@ -1485,4 +1493,32 @@ cc_network_panel_init (CcNetworkPanel *p
GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
g_object_unref (provider);
+ /* check the polkit authentication */
+ panel->priv->default_private = TRUE;
+ authority = polkit_authority_get_sync (NULL, NULL);
+ subject = polkit_unix_process_new_for_owner (getpid (), 0, -1);
+ result = polkit_authority_check_authorization_sync (authority,
+ subject,
+ "org.freedesktop.NetworkManager.settings.modify.system",
+ NULL,
+ POLKIT_CHECK_AUTHORIZATION_FLAGS_NONE,
+ NULL,
+ &error);
+
+ if (error || !result) {
+ g_warning ("Failed to check polkit authorization! %s",
+ error->message);
+ g_clear_error (&error);
+ } else if (polkit_authorization_result_get_is_authorized (result)) {
+ panel->priv->default_private = FALSE;
+ }
+ g_object_unref (result);
+ g_object_unref (authority);
+ g_object_unref (subject);
+}
+
+gboolean
+cc_network_panel_get_default_private (CcNetworkPanel *panel)
+{
+ return panel->priv->default_private;
}
Index: gnome-control-center-3.17.2/panels/network/cc-network-panel.h
===================================================================
--- gnome-control-center-3.17.2.orig/panels/network/cc-network-panel.h
+++ gnome-control-center-3.17.2/panels/network/cc-network-panel.h
@@ -66,6 +66,8 @@ GType cc_network_panel_get_type (void) G
GPtrArray *cc_network_panel_get_devices (CcNetworkPanel *panel);
+gboolean cc_network_panel_get_default_private (CcNetworkPanel *panel);
+
G_END_DECLS
#endif /* _CC_NETWORK_PANEL_H */
Index: gnome-control-center-3.17.2/panels/network/net-device-mobile.c
===================================================================
--- gnome-control-center-3.17.2.orig/panels/network/net-device-mobile.c
+++ gnome-control-center-3.17.2/panels/network/net-device-mobile.c
@@ -141,12 +141,15 @@ mobile_connection_changed_cb (GtkComboBo
COLUMN_ID, &object_path,
-1);
if (g_strcmp0 (object_path, NULL) == 0) {
+ gboolean default_private;
panel = net_object_get_panel (NET_OBJECT (device_mobile));
toplevel = cc_shell_get_toplevel (cc_panel_get_shell (CC_PANEL (panel)));
+ default_private = cc_network_panel_get_default_private (panel);
cc_network_panel_connect_to_3g_network (toplevel,
client,
remote_settings,
- device);
+ device,
+ default_private);
goto out;
}
Index: gnome-control-center-3.17.2/panels/network/net-device-wifi.c
===================================================================
--- gnome-control-center-3.17.2.orig/panels/network/net-device-wifi.c
+++ gnome-control-center-3.17.2/panels/network/net-device-wifi.c
@@ -701,6 +701,9 @@ wireless_try_to_connect (NetDeviceWifi *
NMDevice *device;
NMSettingWireless *setting_wireless;
NMClient *client;
+ CcNetworkPanel *panel;
+ NMConnection *partial = NULL;
+ NMSettingConnection *setting_con;
if (device_wifi->priv->updating_device)
goto out;
@@ -752,10 +755,21 @@ wireless_try_to_connect (NetDeviceWifi *
/* create one, as it's missing */
g_debug ("no existing connection found for %s, creating", ssid_target);
+ panel = net_object_get_panel (NET_OBJECT (device_wifi));
+ if (cc_network_panel_get_default_private (panel)) {
+ partial = nm_connection_new ();
+ setting_con = (NMSettingConnection *)nm_setting_connection_new ();
+ nm_connection_add_setting (partial, NM_SETTING (setting_con));
+ nm_setting_connection_add_permission (setting_con,
+ "user",
+ g_get_user_name(),
+ NULL);
+ }
+
if (!is_8021x (device, ap_object_path)) {
g_debug ("no existing connection found for %s, creating and activating one", ssid_target);
nm_client_add_and_activate_connection (client,
- NULL,
+ partial,
device, ap_object_path,
connection_add_activate_cb, device_wifi);
} else {
@@ -996,6 +1010,7 @@ start_shared_connection (NetDeviceWifi *
NMClient *client;
const char *mode;
NMDeviceWifiCapabilities caps;
+ CcNetworkPanel *panel;
device = net_device_get_nm_device (NET_DEVICE (device_wifi));
g_assert (nm_device_get_device_type (device) == NM_DEVICE_TYPE_WIFI);
@@ -1032,6 +1047,14 @@ start_shared_connection (NetDeviceWifi *
"id", "Hotspot",
"autoconnect", FALSE,
NULL);
+
+ panel = net_object_get_panel (NET_OBJECT (device_wifi));
+ if (cc_network_panel_get_default_private (panel))
+ nm_setting_connection_add_permission (sc,
+ "user",
+ g_get_user_name(),
+ NULL);
+
nm_connection_add_setting (c, (NMSetting *)sc);
sw = (NMSettingWireless *)nm_setting_wireless_new ();
Index: gnome-control-center-3.17.2/panels/network/network-dialogs.c
===================================================================
--- gnome-control-center-3.17.2.orig/panels/network/network-dialogs.c
+++ gnome-control-center-3.17.2/panels/network/network-dialogs.c
@@ -41,6 +41,7 @@ typedef struct {
NMClient *client;
NMRemoteSettings *settings;
NMDevice *device;
+ gboolean default_private;
} MobileDialogClosure;
static void
@@ -262,7 +263,8 @@ cc_network_panel_connect_to_8021x_networ
NMClient *client,
NMRemoteSettings *settings,
NMDevice *device,
- const gchar *arg_access_point)
+ const gchar *arg_access_point,
+ gboolean default_private)
{
NMConnection *connection;
NMSettingConnection *s_con;
@@ -300,6 +302,8 @@ cc_network_panel_connect_to_8021x_networ
uuid = nm_utils_uuid_generate ();
g_object_set (s_con, NM_SETTING_CONNECTION_UUID, uuid, NULL);
g_free (uuid);
+ if (default_private)
+ nm_setting_connection_add_permission (s_con, "user", g_get_user_name(), NULL);
nm_connection_add_setting (connection, NM_SETTING (s_con));
s_wifi = (NMSettingWireless *) nm_setting_wireless_new ();
@@ -357,6 +361,7 @@ cdma_mobile_wizard_done (NMAMobileWizard
if (!canceled && method) {
NMSetting *setting;
char *uuid, *id;
+ MobileDialogClosure *closure = user_data;
if (method->devtype != NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO) {
g_warning ("Unexpected device type (not CDMA).");
@@ -400,6 +405,11 @@ cdma_mobile_wizard_done (NMAMobileWizard
NULL);
g_free (uuid);
g_free (id);
+ if (closure->default_private)
+ nm_setting_connection_add_permission ((NMSettingConnection *)setting,
+ "user",
+ g_get_user_name(),
+ NULL);
nm_connection_add_setting (connection, setting);
}
@@ -419,6 +429,7 @@ gsm_mobile_wizard_done (NMAMobileWizard
if (!canceled && method) {
NMSetting *setting;
char *uuid, *id;
+ MobileDialogClosure *closure = user_data;
if (method->devtype != NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) {
g_warning ("Unexpected device type (not GSM).");
@@ -463,6 +474,11 @@ gsm_mobile_wizard_done (NMAMobileWizard
NULL);
g_free (uuid);
g_free (id);
+ if (closure->default_private)
+ nm_setting_connection_add_permission ((NMSettingConnection *)setting,
+ "user",
+ g_get_user_name(),
+ NULL);
nm_connection_add_setting (connection, setting);
}
@@ -494,7 +510,8 @@ void
cc_network_panel_connect_to_3g_network (GtkWidget *toplevel,
NMClient *client,
NMRemoteSettings *settings,
- NMDevice *device)
+ NMDevice *device,
+ gboolean default_private)
{
MobileDialogClosure *closure;
NMAMobileWizard *wizard;
@@ -512,6 +529,7 @@ cc_network_panel_connect_to_3g_network (
closure->client = g_object_ref (client);
closure->settings = g_object_ref (settings);
closure->device = g_object_ref (device);
+ closure->default_private = default_private;
caps = nm_device_modem_get_current_capabilities (NM_DEVICE_MODEM (device));
if (caps & NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS) {
Index: gnome-control-center-3.17.2/panels/network/network-dialogs.h
===================================================================
--- gnome-control-center-3.17.2.orig/panels/network/network-dialogs.h
+++ gnome-control-center-3.17.2/panels/network/network-dialogs.h
@@ -38,11 +38,13 @@ void cc_network_panel_connect_to_8021x_n
NMClient *client,
NMRemoteSettings *settings,
NMDevice *device,
- const gchar *arg_access_point);
+ const gchar *arg_access_point,
+ gboolean default_private);
void cc_network_panel_connect_to_3g_network (GtkWidget *toplevel,
NMClient *client,
NMRemoteSettings *settings,
- NMDevice *device);
+ NMDevice *device,
+ gboolean default_private);
#endif /* _NETWORK_DIALOGS_H */

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ce6474fc60f78ed3cfaf555e55a52ec3ebb6437fa184e08ad6077bbec380a1ed
size 7160304

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:632d0298306f196cb059ff98af20eed820bfa4bf08b24ba22ba2a58df21a88b8
size 7179024

View File

@ -8,10 +8,10 @@ Subject: [PATCH] allow extra tools in shell
shell/cc-window.c | 41 +++++++++++++++++++++++++++++++++++++++++
2 files changed, 67 insertions(+), 2 deletions(-)
diff --git a/shell/cc-panel-loader.c b/shell/cc-panel-loader.c
index de9c5df..e24fc6e 100644
--- a/shell/cc-panel-loader.c
+++ b/shell/cc-panel-loader.c
Index: gnome-control-center-3.21.90/shell/cc-panel-loader.c
===================================================================
--- gnome-control-center-3.21.90.orig/shell/cc-panel-loader.c
+++ gnome-control-center-3.21.90/shell/cc-panel-loader.c
@@ -102,6 +102,12 @@ static struct {
#ifdef BUILD_WACOM
PANEL_TYPE("wacom", cc_wacom_panel_get_type ),
@ -25,17 +25,17 @@ index de9c5df..e24fc6e 100644
};
GList *
@@ -133,7 +139,8 @@ parse_categories (GDesktopAppInfo *app)
{
if (strcmp (split[i], "HardwareSettings") == 0)
@@ -146,7 +152,8 @@ parse_categories (GDesktopAppInfo *app)
#else
if (g_strv_contains (const_strv (split), "HardwareSettings"))
retval = CC_CATEGORY_HARDWARE;
- else if (strcmp (split[i], "X-GNOME-PersonalSettings") == 0)
+ else if ((strcmp (split[i], "X-GNOME-PersonalSettings") == 0)
+ || (strcmp (split[i], "X-GNOME-DesktopSettings") == 0))
- else if (g_strv_contains (const_strv (split), "X-GNOME-PersonalSettings"))
+ else if (g_strv_contains (const_strv (split), "X-GNOME-PersonalSettings")
+ || g_strv_contains (const_strv (split), "X-GNOME-DesktopSettings"))
retval = CC_CATEGORY_PERSONAL;
else if (strcmp (split[i], "X-GNOME-SystemSettings") == 0)
else if (g_strv_contains (const_strv (split), "X-GNOME-SystemSettings"))
retval = CC_CATEGORY_SYSTEM;
@@ -158,17 +165,33 @@ cc_panel_loader_fill_model (CcShellModel *model)
@@ -173,17 +180,33 @@ cc_panel_loader_fill_model (CcShellModel
{
GDesktopAppInfo *app;
char *desktop_name;
@ -69,7 +69,7 @@ index de9c5df..e24fc6e 100644
continue;
}
@@ -176,7 +199,8 @@ cc_panel_loader_fill_model (CcShellModel *model)
@@ -191,7 +214,8 @@ cc_panel_loader_fill_model (CcShellModel
if (G_UNLIKELY (category < 0))
continue;
@ -79,11 +79,11 @@ index de9c5df..e24fc6e 100644
g_object_unref (app);
}
}
diff --git a/shell/cc-window.c b/shell/cc-window.c
index 7c85f5c..d10ba9e 100644
--- a/shell/cc-window.c
+++ b/shell/cc-window.c
@@ -140,6 +140,41 @@ get_icon_name_from_g_icon (GIcon *gicon)
Index: gnome-control-center-3.21.90/shell/cc-window.c
===================================================================
--- gnome-control-center-3.21.90.orig/shell/cc-window.c
+++ gnome-control-center-3.21.90/shell/cc-window.c
@@ -139,6 +139,41 @@ get_icon_name_from_g_icon (GIcon *gicon)
return NULL;
}
@ -125,7 +125,7 @@ index 7c85f5c..d10ba9e 100644
static gboolean
activate_panel (CcWindow *self,
const gchar *id,
@@ -153,6 +188,12 @@ activate_panel (CcWindow *self,
@@ -151,6 +186,12 @@ activate_panel (CcWindow *self
if (!id)
return FALSE;
@ -136,8 +136,5 @@ index 7c85f5c..d10ba9e 100644
+ return FALSE;
+ }
priv->current_panel = GTK_WIDGET (cc_panel_loader_load_by_name (CC_SHELL (self), id, parameters));
cc_shell_set_active_panel (CC_SHELL (self), CC_PANEL (priv->current_panel));
--
2.6.6
self->current_panel = GTK_WIDGET (cc_panel_loader_load_by_name (CC_SHELL (self), id, parameters));
cc_shell_set_active_panel (CC_SHELL (self), CC_PANEL (self->current_panel));

View File

@ -1,58 +0,0 @@
From 889ce41e87872377b6f728fadd0e0ffaa927406a Mon Sep 17 00:00:00 2001
From: Felix Zhang <fezhang@suse.com>
Date: Thu, 11 Sep 2014 16:07:43 +0800
Subject: [PATCH] bnc894394 hide firewall zone entry
The Firewall Zone entry is only activated if firewalld package is installed.
As openSUSE doesn't have this package, the entry never works. So removing the
entry to avoid confusions.
---
panels/network/connection-editor/ethernet-page.ui | 4 ++--
panels/network/connection-editor/vpn-page.ui | 4 ++--
panels/network/connection-editor/wifi-page.ui | 4 ++--
3 files changed, 6 insertions(+), 6 deletions(-)
Index: gnome-control-center-3.17.2/panels/network/connection-editor/ethernet-page.ui
===================================================================
--- gnome-control-center-3.17.2.orig/panels/network/connection-editor/ethernet-page.ui
+++ gnome-control-center-3.17.2/panels/network/connection-editor/ethernet-page.ui
@@ -264,7 +264,7 @@
</child>
<child>
<object class="GtkLabel" id="heading_zone">
- <property name="visible">True</property>
+ <property name="visible">False</property>
<property name="can_focus">False</property>
<property name="xalign">1</property>
<property name="label" translatable="yes">Firewall _Zone</property>
@@ -280,7 +280,7 @@
</child>
<child>
<object class="GtkComboBoxText" id="combo_zone">
- <property name="visible">True</property>
+ <property name="visible">False</property>
<property name="can_focus">False</property>
<property name="entry_text_column">0</property>
<property name="id_column">1</property>
Index: gnome-control-center-3.17.2/panels/network/connection-editor/vpn-page.ui
===================================================================
--- gnome-control-center-3.17.2.orig/panels/network/connection-editor/vpn-page.ui
+++ gnome-control-center-3.17.2/panels/network/connection-editor/vpn-page.ui
@@ -57,7 +57,7 @@
<property name="spacing">6</property>
<child>
<object class="GtkLabel" id="heading_zone">
- <property name="visible">True</property>
+ <property name="visible">False</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Firewall _Zone</property>
<property name="use_underline">True</property>
@@ -71,7 +71,7 @@
</child>
<child>
<object class="GtkComboBoxText" id="combo_zone">
- <property name="visible">True</property>
+ <property name="visible">False</property>
<property name="can_focus">False</property>
<property name="entry_text_column">0</property>
<property name="id_column">1</property>

View File

@ -1,297 +0,0 @@
From 067cc33aba6eeaffd4efe1d8a8e838aa1a89476a Mon Sep 17 00:00:00 2001
From: Federico Mena Quintero <federico@novell.com>
Date: Mon, 25 May 2009 14:38:52 -0500
Subject: [PATCH] Integrate openSUSE's network proxy configuration with GNOME's.
This is documented in http://en.opensuse.org/GNOME/Proxy_configuration
We basically add a "use system settings" proxy mode. When it is active,
gnome-settings-daemon will read /etc/sysconfig/proxy and mirror its values
into GNOME's GConf space.
Signed-off-by: Federico Mena Quintero <federico@novell.com>
---
capplets/network/gnome-network-properties.c | 164 +++++++++++++++++------
capplets/network/gnome-network-properties.glade | 24 +++-
2 files changed, 143 insertions(+), 45 deletions(-)
diff --git a/capplets/network/gnome-network-properties.c b/capplets/network/gnome-network-properties.c
index f6ea0e6..0ea9945 100644
--- a/capplets/network/gnome-network-properties.c
+++ b/capplets/network/gnome-network-properties.c
@@ -32,19 +32,11 @@
#include "capplet-util.h"
#include "gconf-property-editor.h"
-enum ProxyMode
-{
- PROXYMODE_NONE,
- PROXYMODE_MANUAL,
- PROXYMODE_AUTO
-};
-
-static GEnumValue proxytype_values[] = {
- { PROXYMODE_NONE, "PROXYMODE_NONE", "none"},
- { PROXYMODE_MANUAL, "PROXYMODE_MANUAL", "manual"},
- { PROXYMODE_AUTO, "PROXYMODE_AUTO", "auto"},
- { 0, NULL, NULL }
-};
+/* Novell extension */
+#define KEY_USE_SYSTEM_SETTINGS "/system/proxy/use_system_settings" /* string */
+#define VAL_USE_SYSTEM_SETTINGS_ONLY_IF_NOT_SET "only_if_mode_not_set"
+#define VAL_USE_SYSTEM_SETTINGS_SYSTEM_VALUES "system_values"
+#define VAL_USE_SYSTEM_SETTINGS_USER_VALUES "user_values"
enum {
COL_NAME,
@@ -1019,36 +1011,58 @@ extract_proxy_host (GConfPropertyEditor *peditor, const GConfValue *orig)
}
static void
+set_sensitivity_based_on_active_radiobutton (GladeXML *dialog, GtkWidget *active_radio)
+{
+ gboolean manual_box_sensitive, auto_box_sensitive;
+
+ g_assert (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (active_radio)));
+
+ manual_box_sensitive = auto_box_sensitive = FALSE;
+
+ if (active_radio == WID ("manual_radiobutton"))
+ manual_box_sensitive = TRUE;
+ else if (active_radio == WID ("auto_radiobutton"))
+ auto_box_sensitive = TRUE;
+
+ gtk_widget_set_sensitive (WID ("manual_box"), manual_box_sensitive);
+ gtk_widget_set_sensitive (WID ("same_proxy_checkbutton"), manual_box_sensitive);
+ gtk_widget_set_sensitive (WID ("auto_box"), auto_box_sensitive);
+}
+
+static void
proxy_mode_radiobutton_clicked_cb (GtkWidget *widget,
GladeXML *dialog)
{
- GSList *mode_group;
- int mode;
- GConfClient *client;
+ GConfClient *client;
- if (!gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(widget)))
- return;
-
- mode_group = g_slist_copy (gtk_radio_button_get_group
- (GTK_RADIO_BUTTON (WID ("none_radiobutton"))));
- mode_group = g_slist_reverse (mode_group);
- mode = g_slist_index (mode_group, widget);
- g_slist_free (mode_group);
-
- gtk_widget_set_sensitive (WID ("manual_box"),
- mode == PROXYMODE_MANUAL);
- gtk_widget_set_sensitive (WID ("same_proxy_checkbutton"),
- mode == PROXYMODE_MANUAL);
- gtk_widget_set_sensitive (WID ("auto_box"),
- mode == PROXYMODE_AUTO);
+ if (!gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(widget)))
+ return;
+
client = gconf_client_get_default ();
- gconf_client_set_bool (client, USE_PROXY_KEY,
- mode == PROXYMODE_AUTO || mode == PROXYMODE_MANUAL, NULL);
- g_object_unref (client);
+
+ if (widget == WID ("system_radiobutton")) {
+ gconf_client_set_string (client, KEY_USE_SYSTEM_SETTINGS, VAL_USE_SYSTEM_SETTINGS_SYSTEM_VALUES, NULL);
+ } else if (widget == WID ("none_radiobutton")) {
+ gconf_client_set_string (client, KEY_USE_SYSTEM_SETTINGS, VAL_USE_SYSTEM_SETTINGS_USER_VALUES, NULL);
+ gconf_client_set_string (client, PROXY_MODE_KEY, "none", NULL);
+ gconf_client_set_bool (client, USE_PROXY_KEY, FALSE, NULL);
+ } else if (widget == WID ("manual_radiobutton")) {
+ gconf_client_set_string (client, KEY_USE_SYSTEM_SETTINGS, VAL_USE_SYSTEM_SETTINGS_USER_VALUES, NULL);
+ gconf_client_set_string (client, PROXY_MODE_KEY, "manual", NULL);
+ gconf_client_set_bool (client, USE_PROXY_KEY, TRUE, NULL);
+ } else if (widget == WID ("auto_radiobutton")) {
+ gconf_client_set_string (client, KEY_USE_SYSTEM_SETTINGS, VAL_USE_SYSTEM_SETTINGS_USER_VALUES, NULL);
+ gconf_client_set_string (client, PROXY_MODE_KEY, "auto", NULL);
+ gconf_client_set_bool (client, USE_PROXY_KEY, TRUE, NULL);
+ }
+
+ set_sensitivity_based_on_active_radiobutton (dialog, widget);
+
+ g_object_unref (client);
}
static void
-connect_sensitivity_signals (GladeXML *dialog, GSList *mode_group)
+connect_mode_radiobuttons (GladeXML *dialog, GSList *mode_group)
{
for (; mode_group != NULL; mode_group = mode_group->next)
{
@@ -1058,20 +1072,85 @@ connect_sensitivity_signals (GladeXML *dialog, GSList *mode_group)
}
}
+static GtkWidget *
+get_radio_for_mode (GladeXML *dialog, const char *mode_str)
+{
+ if (!mode_str)
+ return WID ("none_radiobutton");
+ else if (strcmp (mode_str, "none") == 0)
+ return WID ("none_radiobutton");
+ else if (strcmp (mode_str, "manual") == 0)
+ return WID ("manual_radiobutton");
+ else if (strcmp (mode_str, "auto") == 0)
+ return WID ("auto_radiobutton");
+ else
+ return WID ("none_radiobutton");
+}
+
+static void
+mode_set_initial_value (GladeXML *dialog, GConfClient *client)
+{
+ char *use_system_settings;
+ GConfValue *mode_value;
+ gboolean use_system_if_mode_not_set;
+ gboolean use_mode;
+ GtkWidget *radiobutton;
+
+ radiobutton = NULL;
+
+ use_system_settings = gconf_client_get_string (client, KEY_USE_SYSTEM_SETTINGS, NULL);
+ mode_value = gconf_client_get_without_default (client, PROXY_MODE_KEY, NULL);
+
+ use_system_if_mode_not_set = FALSE;
+ use_mode = FALSE;
+
+ if (!use_system_settings)
+ use_system_if_mode_not_set = TRUE;
+ else {
+ if (strcmp (use_system_settings, VAL_USE_SYSTEM_SETTINGS_ONLY_IF_NOT_SET) == 0)
+ use_system_if_mode_not_set = TRUE;
+ else if (strcmp (use_system_settings, VAL_USE_SYSTEM_SETTINGS_SYSTEM_VALUES) == 0)
+ radiobutton = WID ("system_radiobutton");
+ else if (strcmp (use_system_settings, VAL_USE_SYSTEM_SETTINGS_USER_VALUES) == 0)
+ use_mode = TRUE;
+
+ g_free (use_system_settings);
+ }
+
+ if (use_system_if_mode_not_set) {
+ if (mode_value)
+ use_mode = TRUE;
+ else
+ radiobutton = WID ("system_radiobutton");
+ }
+
+ if (use_mode) {
+ if (!mode_value || mode_value->type != GCONF_VALUE_STRING)
+ radiobutton = WID ("none_radiobutton");
+ else
+ radiobutton = get_radio_for_mode (dialog, gconf_value_get_string (mode_value));
+ }
+
+ if (radiobutton) {
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radiobutton), TRUE);
+ set_sensitivity_based_on_active_radiobutton (dialog, radiobutton);
+ }
+
+ if (mode_value)
+ gconf_value_free (mode_value);
+}
+
static void
setup_dialog (GladeXML *dialog)
{
GConfPropertyEditor *peditor;
GSList *mode_group;
- GType mode_type = 0;
GConfClient *client;
gint port_value;
GtkWidget *location_box;
GtkCellRenderer *location_renderer;
GtkListStore *store;
- mode_type = g_enum_register_static ("NetworkPreferencesProxyType",
- proxytype_values);
/* There's a bug in peditors that cause them to not initialize the entry
* correctly. */
@@ -1100,17 +1179,16 @@ setup_dialog (GladeXML *dialog)
"style", COL_STYLE, NULL);
/* Hackety hack */
+ gtk_label_set_use_markup (GTK_LABEL (GTK_BIN (WID ("system_radiobutton"))->child), TRUE);
gtk_label_set_use_markup (GTK_LABEL (GTK_BIN (WID ("none_radiobutton"))->child), TRUE);
gtk_label_set_use_markup (GTK_LABEL (GTK_BIN (WID ("manual_radiobutton"))->child), TRUE);
gtk_label_set_use_markup (GTK_LABEL (GTK_BIN (WID ("auto_radiobutton"))->child), TRUE);
/* Mode */
- mode_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (WID ("none_radiobutton")));
- connect_sensitivity_signals (dialog, mode_group);
+ mode_set_initial_value (dialog, client);
+ mode_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (WID ("system_radiobutton")));
+ connect_mode_radiobuttons (dialog, mode_group);
- peditor = GCONF_PROPERTY_EDITOR (gconf_peditor_new_select_radio_with_enum (NULL,
- PROXY_MODE_KEY, mode_group, mode_type,
- TRUE, NULL));
/* Use same proxy for all protocols */
peditor = GCONF_PROPERTY_EDITOR (gconf_peditor_new_boolean (NULL,
diff --git a/capplets/network/gnome-network-properties.glade b/capplets/network/gnome-network-properties.glade
index 656acb5..1147f17 100644
--- a/capplets/network/gnome-network-properties.glade
+++ b/capplets/network/gnome-network-properties.glade
@@ -130,6 +130,25 @@
<property name="spacing">18</property>
<child>
+ <widget class="GtkRadioButton" id="system_radiobutton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">&lt;b&gt;Use the s_ystem's proxy settings&lt;/b&gt;</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
<widget class="GtkRadioButton" id="none_radiobutton">
<property name="visible">True</property>
<property name="can_focus">True</property>
@@ -140,6 +159,7 @@
<property name="active">False</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
+ <property name="group">system_radiobutton</property>
</widget>
<packing>
<property name="padding">0</property>
@@ -171,7 +191,7 @@
<property name="active">False</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
- <property name="group">none_radiobutton</property>
+ <property name="group">system_radiobutton</property>
</widget>
<packing>
<property name="padding">0</property>
@@ -714,7 +734,7 @@
<property name="active">False</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
- <property name="group">none_radiobutton</property>
+ <property name="group">system_radiobutton</property>
</widget>
<packing>
<property name="padding">0</property>
--
1.6.0.2

View File

@ -1,30 +0,0 @@
From db5dcda0badd33b9aea576f4f3a45c8076f11b8c Mon Sep 17 00:00:00 2001
From: Rui Matos <tiagomatos@gmail.com>
Date: Mon, 2 May 2016 14:35:33 +0200
Subject: mouse: Make touchpad capability checking on wayland work as intended
We need to set the out variables otherwise the intended semantics as
documented by the comment aren't enforced.
https://bugzilla.gnome.org/show_bug.cgi?id=765879
---
panels/mouse/cc-mouse-caps-helper.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/panels/mouse/cc-mouse-caps-helper.c b/panels/mouse/cc-mouse-caps-helper.c
index 6fdeb4d..3b912ce 100644
--- a/panels/mouse/cc-mouse-caps-helper.c
+++ b/panels/mouse/cc-mouse-caps-helper.c
@@ -96,6 +96,9 @@ cc_touchpad_check_capabilities (gboolean *have_two_finger_scrolling,
have_edge_scrolling,
have_tap_to_click);
/* else we unconditionally show all touchpad knobs */
+ *have_two_finger_scrolling = TRUE;
+ *have_edge_scrolling = TRUE;
+ *have_tap_to_click = TRUE;
return FALSE;
}
--
cgit v0.12

View File

@ -1,3 +1,24 @@
-------------------------------------------------------------------
Thu Sep 8 12:51:17 UTC 2016 - dimstar@opensuse.org
- Rebase and re-enable
gnome-control-center-allow-extra-tools-in-shell.patch.
-------------------------------------------------------------------
Wed Sep 7 16:19:11 UTC 2016 - zaitor@opensuse.org
- Disable gnome-control-center-allow-extra-tools-in-shell.patch:
Needs rebase.
- Conditionally apply translations-update-upstream BuildRequires
and macro for non-openSUSE only.
-------------------------------------------------------------------
Tue Sep 6 11:13:28 UTC 2016 - dimstar@opensuse.org
- Drop gnome-control-center-hide-firewall-zone-entry.patch: no
longer needed, since upstream code now checks if firewalld is
running and hides the widgets dynamically.
-------------------------------------------------------------------
Sat Sep 3 16:10:21 UTC 2016 - fezhang@suse.com
@ -20,6 +41,87 @@ Wed Aug 31 19:40:38 UTC 2016 - zaitor@opensuse.org
- Drop Mesa-demo-x Requires: No longer needed. Fixes boo#996633.
------------------------------------------------------------------
Wed Aug 31 19:06:25 UTC 2016 - zaitor@opensuse.org
- Drop long disabled and no longer needed patches:
+ gnome-control-center-system-proxy-configuration.patch.
+ gcc-private-connection.patch.
-------------------------------------------------------------------
Fri Aug 26 13:24:49 UTC 2016 - badshah400@gmail.com
- Update to version 3.21.90:
+ Fix truncated panel names for larger fonts.
+ Port to libnm 1.2.
+ Display:
- Add option to enable and disable overscan compensation when
supported by the driver.
- Ensure only one output is set as primary.
- Separate interlaced from normal modes.
+ Info:
- Fetch renderer information from gnome-session.
- Show OS build-id.
+ Keyboard: Update to a new design.
+ Mouse:
- Show only relevant widgets for the hardware we're able to
detect.
- Detect and warn if we're running on the synaptics driver.
- Make all listbox rows unactivatable.
- Remove superfluous GtkListBoxRow.
- Allow keyboard navigation/focus to the Touchpad section
switches.
- Offer a separate option for edge scrolling.
- Don't allow two-finger and edge scrolling at the same time.
+ Network:
- Use VPN plugin paths as specified in the .name files.
- Ensure the Wifi list is updated as networks appear/disapper.
- Hide firewall zone combo when firewalld is not running.
- Remove bridge, bond, team, VLAN and virtual devices support
these are most useful on non-desktop systems for which a UI
like Cockpit is better suited.
- Remove the first page of the "Add Connection" wizard.
- Update wireless-security UI from network-manager-applet.
- Remember "Ignore CA certificate".
- Fix removed connections not disappearing.
- Fix hotspot silently failing with long hostname.
- Fix several crashes.
+ Online Accounts:
- Don't use deprecated GoaProviderGroup API.
- Add a Calendar group.
- Let goa_provider_show_account create the full UI.
+ Power:
- Translate the "When the Power Button is pressed" drop-down.
- Show "Suspend & Power Off" section only when relevant.
+ Printers:
- Add compatibility code for older cups.
- Use a panel wide page for empty state.
- Present spinner while populating the panel.
- Rename printers asynchronously.
- Added new async API to check availability of maintenance
commands.
- Check all supported CUPS commands, not just the first one.
+ Privacy:
- React to changes in permissions store.
- Various layout and cosmetic cleanups.
+ Region:
- Reset the input chooser on escape.
- Improve widget spacing.
+ Search:
- Work around applications not shipping icons at all sizes.
- Introduce the new Search Locations dialog.
+ Sharing: Update to a new design.
+ Universal Access:
- Specify a window when testing visual bell.
- Correct label for "Sound Keys".
- Allow keyboard navigation/focus to the settings switches.
+ User Accounts:
- Update to a new design.
- Fix missing records in the history dialog.
+ Updated translations.
- Drop gnome-control-center-touchpad-wayland-cap.patch;
incorporated upstream.
-------------------------------------------------------------------
Thu Jul 26 06:53:23 UTC 2016 - sckang@suse.com
@ -82,6 +184,12 @@ Thu Apr 14 10:30:34 UTC 2016 - zaitor@opensuse.org
+ Updated translations.
- Drop 0001-network-Fix-empty-Wifi-list.patch: Fixed upstream.
-------------------------------------------------------------------
Tue Apr 12 11:00:06 UTC 2016 - zaitor@opensuse.org
- Set define with_cacert_patch to 0, needed now since we have
non-rebased patches in NetworkManager.
-------------------------------------------------------------------
Tue Apr 12 10:00:06 UTC 2016 - fezhang@suse.com

View File

@ -26,34 +26,26 @@
%define with_wacom 1
%endif
%define with_cacert_patch 1
%define with_cacert_patch 0
Name: gnome-control-center
Version: 3.20.1
Version: 3.21.90
Release: 0
Summary: The GNOME Control Center
License: GPL-2.0+
Group: System/GUI/GNOME
Url: http://www.gnome.org
Source: http://download.gnome.org/sources/gnome-control-center/3.20/%{name}-%{version}.tar.xz
Source: http://download.gnome.org/sources/gnome-control-center/3.21/%{name}-%{version}.tar.xz
# PATCH-FEATURE-OPENSUSE gnome-control-center-allow-extra-tools-in-shell.patch fezhang@suse.com -- Add dconf-editor, gnome-tweak-tool, pkg-prefs, itweb-settings, tracker-preferences and Yast to g-c-c.
Patch0: gnome-control-center-allow-extra-tools-in-shell.patch
# PATCH-FEATURE-SLE gnome-control-center-add-alacarte-for-sle.patch badshah400@gmail.com -- Add back alacarte for SLE since they require it for their classic mode, on the other hand for TW and other openSUSE versions it should be enough that alacarte is still available from shell overview, just not in the g-c-c shell. This patch must be applied only if required and then immediately after gnome-control-center-allow-extra-tools-in-shell.patch
Patch100: gnome-control-center-add-alacarte-for-sle.patch
# PATCH-FEATURE-OPENSUSE gnome-control-center-hide-firewall-zone-entry.patch bnc#894394 fezhang@suse.com -- network: hide the firewall zone entry for firewalld, which is not used in opensuse
Patch1: gnome-control-center-hide-firewall-zone-entry.patch
# PATCH-NEEDS-REBASE gnome-control-center-system-proxy-configuration.patch federico@gnome.org -- Integrate openSUSE's network proxy configuration with GNOME's. Was: # PATCH-FEATURE-OPENSUSE
Patch14: gnome-control-center-system-proxy-configuration.patch
# PATCH-NEEDS-REBASE gcc-private-connection.patch bnc#751211 bgo#646187 dimstar@opensuse.org -- network: create private connections if the user if not authorized (WAS: PATCH-FIX-UPSTREAM)
Patch15: gcc-private-connection.patch
# PATCH-FIX-UPSTREAM gnome-control-center-probe-radius-server-cert.patch bnc#574266 glin@suse.com -- network: Probe the RADIUS server certificate
Patch16: gnome-control-center-probe-radius-server-cert.patch
# PATCH-FEATURE-OPENSUSE gnome-control-center-follow-polkit-permissions-for-tz.patch boo#904058 badshah400@gmail.com -- Follow polkit permissions for allowing/locking timezone setting changes
Patch17: gnome-control-center-follow-polkit-permissions-for-tz.patch
# PATCH-FIX-SLE gnome-control-center-890979-change-remote-passwd.patch bnc#890979 dliang@suse.com -- user: Enable remote user to change password in user panel
Patch18: gnome-control-center-890979-change-remote-passwd.patch
# PATCH-FIX-UPSTREAM gnome-control-center-touchpad-wayland-cap.patch bgo#765879 zaitor@opensuse.org -- mouse: Make touchpad capability checking on wayland work as intended
Patch19: gnome-control-center-touchpad-wayland-cap.patch
# PATCH-FIX-OPENSUSE gnome-control-center-disable-error-message-for-NM.patch bsc#989801 sckang@suse.com -- network: Improve the check for whether NM or wicked is running
Patch20: gnome-control-center-disable-error-message-for-NM.patch
BuildRequires: cups-devel
@ -62,7 +54,9 @@ BuildRequires: fdupes
BuildRequires: gnome-common
BuildRequires: intltool
BuildRequires: krb5-devel
%if !0%{?is_opensuse}
BuildRequires: translation-update-upstream
%endif
BuildRequires: update-desktop-files
BuildRequires: pkgconfig(accountsservice) >= 0.6.39
BuildRequires: pkgconfig(cairo-gobject)
@ -85,17 +79,18 @@ BuildRequires: pkgconfig(goa-1.0) >= 3.15.1
BuildRequires: pkgconfig(goa-backend-1.0)
BuildRequires: pkgconfig(gobject-introspection-1.0)
BuildRequires: pkgconfig(grilo-0.3)
BuildRequires: pkgconfig(gsettings-desktop-schemas) >= 3.19.3
BuildRequires: pkgconfig(gtk+-3.0) >= 3.20.3
BuildRequires: pkgconfig(gsettings-desktop-schemas) >= 3.21.4
BuildRequires: pkgconfig(gtk+-3.0) >= 3.21.4
BuildRequires: pkgconfig(gudev-1.0)
%if %{with_ibus}
BuildRequires: pkgconfig(ibus-1.0) >= 1.5.2
%endif
BuildRequires: pkgconfig(libcanberra-gtk3)
BuildRequires: pkgconfig(libgtop-2.0)
BuildRequires: pkgconfig(libnm-glib) >= 0.9.8
BuildRequires: pkgconfig(libnm-glib-vpn) >= 0.9.8
BuildRequires: pkgconfig(libnm-gtk) >= 0.9.8
BuildRequires: pkgconfig(libnm) >= 1.2
BuildRequires: pkgconfig(libnm-glib-vpn) >= 1.2
BuildRequires: pkgconfig(libnm-gtk) >= 1.2
BuildRequires: pkgconfig(libnma) >= 1.2
BuildRequires: pkgconfig(libpulse) >= 2.0
BuildRequires: pkgconfig(libpulse-mainloop-glib) >= 2.0
BuildRequires: pkgconfig(libsoup-2.4)
@ -199,15 +194,14 @@ GNOME control center.
%lang_package
%prep
%setup -q
%if !0%{?is_opensuse}
translation-update-upstream
%endif
%patch0 -p1
# PATCH100 ONLY NEEDED FOR SLES AND TO BE APPLIED IMMEDIATELY AFTER PATCH0
%if 0%{?suse_version} == 1315 && 0%{?sle_version}
%patch100 -p1
%endif
%patch1 -p1
# PATCH-NEEDS-REBASE - and g-c-c code seems to be moving in "our" direction see bgo#751378
#patch15 -p1
%if %{with_cacert_patch}
%patch16 -p1
%endif
@ -215,9 +209,6 @@ translation-update-upstream
%if ! 0%{?is_opensuse}
%patch18 -p1
%endif
#NEEDS-REBASE
#patch14 -p1
%patch19 -p1
%patch20 -p1
%build
@ -332,5 +323,7 @@ rm -rf %{buildroot}
%files devel
%defattr (-, root, root)
%{_datadir}/pkgconfig/gnome-keybindings.pc
%{_datadir}/gettext/its/gnome-keybindings.its
%{_datadir}/gettext/its/gnome-keybindings.loc
%changelog