Hello community,

here is the log from the commit of package gnome-control-center.2254 for 
openSUSE:13.1:Update checked in at 2013-12-11 16:30:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:13.1:Update/gnome-control-center.2254 (Old)
 and      /work/SRC/openSUSE:13.1:Update/.gnome-control-center.2254.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gnome-control-center.2254"

Changes:
--------
New Changes file:

--- /dev/null   2013-11-25 01:44:08.036031256 +0100
+++ 
/work/SRC/openSUSE:13.1:Update/.gnome-control-center.2254.new/gnome-control-center.changes
  2013-12-11 16:30:13.000000000 +0100
@@ -0,0 +1,4950 @@
+-------------------------------------------------------------------
+Tue Nov 12 19:52:46 UTC 2013 - dims...@opensuse.org
+
+- Update to version 3.10.2 (bnc#849913):
+  + Background:
+    - Fix test-chooser-dialog build with some linkers.
+    - Fix compilation with libsocialweb support.
+  + Sharing:
+    - Remove OBEX FTP support as it's been removed from
+      gnome-user-share.
+  + Wacom:
+    - Fix slider on Inking Pen page.
+  + Updated translations.
+- Drop gnome-control-center-linker.patch: fixed upstream.
+- Add gnome-control-center-BT-sharing.patch: Fix Bluetooth sharing.
+
+-------------------------------------------------------------------
+Wed Oct 16 06:43:54 UTC 2013 - dims...@opensuse.org
+
+- Update to version 3.10.1:
+  + Background:
+    - Fix several memory leaks.
+    - Some code cleanups.
+    - Be robust against missing directories, and warn otherwise.
+    - Use a consistent set of permissions when creating
+      directories.
+  + Display: Always label the built in display as "1".
+  + Mouse: Do not reset mouse speed when unset.
+  + Network:
+    - Fix a few crashes and memory leaks.
+    - Some code cleanups.
+    - Just dismiss forget dialog if response is not OK.
+    - Update forget button sensitivity when rows are destroyed.
+    - Use the command line parameters property for 8021x.
+    - Only start the spinner when we can stop it.
+  + Power: Use device models as names.
+  + Sharing:
+    - Allow screen sharing approving without remote control
+      enabled.
+    - Ensure the hostname in labels is updated.
+    - Prevent duplicate folders being selected for media sharing.
+    - When enabling DLNA, also make sure to enable the MediaExport
+      plugin.
+  + Shell: Align the buttons in the headerbar.
+  + Universal Access: Fix a crash.
+  + Wacom:
+    - Align the stylus section with the tablet section.
+    - Fix device filtering in calibration UI.
+    - Fix use after free causing random values in the calibration
+      data.
+    - Fix incorrect default window information.
+    - Fix ~100 pixel offset when calibrating.
+    - Reset the calibration before starting a new one.
+- Drop gnome-control-center-network-8021x-entry.patch: fixed
+  upstream.
+- Add gnome-control-center-linker.patch: Fix test-chooser-dialog
+  build with some linkers.
+- Rebase gcc-private-connection.patch (Gary Lin).
+
+-------------------------------------------------------------------
+Sun Oct 13 12:04:18 UTC 2013 - dims...@opensuse.org
+
+- Fix gnome-control-center-allow-yast-in-shell.patch: launching
+  YaST should not give the feedback to the shell that we managed
+  to switch panel (bnc#845643).
+
+-------------------------------------------------------------------
+Mon Oct  7 07:43:10 UTC 2013 - g...@suse.com
+
+- Rebase gcc-private-connection.patch (bnc#751211)
+- Add gnome-control-center-probe-radius-server-cert.patch to probe
+  the certificate of the RADIUS server (bnc#574266)
+- Add gnome-control-center-network-8021x-entry.patch to fix the
+  8021x settings dialog (bgo#709545)
+
+-------------------------------------------------------------------
+Fri Sep 27 15:02:06 UTC 2013 - idon...@suse.com
+
+- Introduce with_wacom defines, set to 0 on s390{x}, otherwise 1:
+  + Disable wacom support on s390{x}, those machines have no
+    viable input ports.
+  + Have pkgconfig(libwacom) BuildRequries depend on with_wacom.
+
+-------------------------------------------------------------------
+Tue Sep 24 13:42:05 UTC 2013 - dims...@opensuse.org
+
+- Update to version 3.10.0:
+  + Bluetooth:
+    - Fix crash when exiting during a connection.
+  + Display:
+    - Add an option to turn off a particular display.
+  + Universal Access:
+    - Fix non-expanding sliders in zoom options.
+
+-------------------------------------------------------------------
+Sun Sep 22 13:25:12 UTC 2013 - dims...@opensuse.org
+
+- Add gnome-color-manager Requires: the color panel interacts with
+  binaries (gcm-viewer, gcm-calibrate) from gnome-color-manager.
+
+-------------------------------------------------------------------
+Tue Sep 17 21:29:13 UTC 2013 - dims...@opensuse.org
+
+- Update to version 3.9.92:
+  + Background:
+    - Don't access possibly invalid object.
+    - Fix top bar location on dual-head.
+    - Fix a crash.
+  + Date & Time:
+    - Fix keyboard navigation.
+    - Plug a small memory leak.
+    - A11y improvements.
+  + Display:
+    - Disable the "Apply" button until a change has been made.
+    - Close any open dialog if the panel is destroyed.
+  + Network:
+    - Fix a few crashes.
+    - Don't show unmanaged devices.
+    - Don't include spaces in proxy's ignore-hosts setting.
+  + Power:
+    - Don't show the estimated battery capacity.
+    - Fix getting the keyboard brightness value.
+  + Sharing:
+    - Prevent incorrect sensitivity of the screen sharing password
+      entry.
+  + Universal Access:
+    - Fix keyboard navigation.
+    - Toggle switch when its parent row is activated.
+    - Remove a bogus mnemonic-widget to not confuse Orca.
+  + User Accounts:
+    - Fix history dialog background color.
+
+-------------------------------------------------------------------
+Sun Sep 15 08:04:14 UTC 2013 - zai...@opensuse.org
+
+- Stop passing --enable-systemd to %configure, as it is not
+  recognized anymore, and clean spec file of previous needed
+  with_systemd macro and %if with_systemd statments.
+- Reenable translation-update-upstream.
+
+-------------------------------------------------------------------
+Wed Sep  4 06:43:59 UTC 2013 - dims...@opensuse.org
+
+- Update to version 3.9.91:
+  + Date & Time:
+    - Hide the NTP switch when the service is unavailable.
+    - Show the automatic timezone switch.
+    - Display timezone offset in a slightly nicer way.
+  + Display:
+    - Add the current background to the display previews and
+      improve the display number indicators.
+  + Network:
+    - Wrap the DNS list for mobile networks.
+    - Mark connection editor as changed when toggling the 'Only use
+      for resources on its network' checkbox.
+  + Online Accounts:
+    - Add keywords for Kerberos, SMTP and IMAP to ease search
+    - Increase the height of the "Add Account" dialog to
+      accommodate the list of Chat providers.
+  + Printers:
+    - When adding a printer, do not prompt for user crendentials on
+      every network samba server we discover that needs them.
+      Instead, show such servers in the list and prompt only when
+      users explicitly select them.
+  + Shell:
+    - Avoid width changes when searching.
+
+-------------------------------------------------------------------
+Sat Aug 24 17:42:00 UTC 2013 - dims...@opensuse.org
+
+- Drop gnome-control-center-fine-grained-tz-polkit.patch: the
+  Date & Time panel had a major overhaul and the patch in this form
+  does not make sense. The patch was disabled for some time
+  already.
+- Drop gnome-control-center-hide-region-system-tab.patch: the
+  region panel had a major overhaul and the patch in this form does
+  not make sense. The patch was disabled for some time already.
+- Drop gnome-control-center-nma-nialog.patch and
+  gnome-control-center-build.patch: these patches are long out of
+  service, as they targetted build fixes for NM 0.9.6.2.
+
+-------------------------------------------------------------------
+Thu Aug 22 20:33:07 UTC 2013 - dims...@opensuse.org
+
+- Update to version 3.9.90.1:
+  + Mouse:
+    - Fix stretched "Test Your Settings" button.
+  + Network:
+    - Remove placeholder label contents.
+  + Online Accounts:
+    - Support Telepathy accounts.
+  + Region:
+    - Fix stretched "Login Screen" button.
+  + Shell:
+    - Fix stretched header bar lock button.
+
+-------------------------------------------------------------------
++++ 4753 more lines (skipped)
++++ between /dev/null
++++ and 
/work/SRC/openSUSE:13.1:Update/.gnome-control-center.2254.new/gnome-control-center.changes

New:
----
  gcc-private-connection.patch
  gnome-control-center-3.10.2.tar.xz
  gnome-control-center-BT-sharing.patch
  gnome-control-center-allow-yast-in-shell.patch
  gnome-control-center-probe-radius-server-cert.patch
  gnome-control-center-system-proxy-configuration.patch
  gnome-control-center.changes
  gnome-control-center.spec

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ gnome-control-center.spec ++++++
#
# spec file for package gnome-control-center
#
# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#


# Allow to enable/disable ibus, as GNOME is rather strict on new versions.
%define with_ibus 1

# Wacom input support
%ifarch s390 s390x
%define with_wacom 0
%else
%define with_wacom 1
%endif

Name:           gnome-control-center
Version:        3.10.2
Release:        0
# FIXME: in 12.3 and later, check if we still need patch2 
(gnome-control-center-hide-region-system-tab.patch) (see bnc#703833)
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.10/%{name}-%{version}.tar.xz
# PATCH-FEATURE-OPENSUSE gnome-control-center-allow-yast-in-shell.patch 
vu...@opensuse.org -- Allow the launch of the yast shell from the g-c-c shell; 
it's quite ugly, but on the other hand, we don't want to change the behavior of 
the shell except for yast...
Patch0:         gnome-control-center-allow-yast-in-shell.patch
# PATCH-NEEDS-REBASE gnome-control-center-system-proxy-configuration.patch -- 
this needs to be reimplemented to be more distro-generic before submitting 
upstream - docs at http://en.opensuse.org/GNOME/Proxy_configuration (was 
PATCH-FEATURE-OPENSUSE)
Patch14:        gnome-control-center-system-proxy-configuration.patch
# PATCH-FIX-UPSTREAM gcc-private-connection.patch bnc#751211 bgo#646187 
dims...@opensuse.org -- network: create private connections if the user if not 
authorized
Patch15:        gcc-private-connection.patch
# PATCH-FIX-UPSTREAM gnome-control-center-probe-radius-server-cert.patch 
bnc#574266 g...@suse.com -- network: Probe the RADIUS server certificate
Patch16:        gnome-control-center-probe-radius-server-cert.patch
# PATCH-FIX-UPSTREAM gnome-control-center-BT-sharing.patch bgo#712252 
dims...@opensuse.org -- Fix Bluetooth label always being off
Patch17:        gnome-control-center-BT-sharing.patch
BuildRequires:  cups-devel
BuildRequires:  desktop-file-utils
BuildRequires:  fdupes
BuildRequires:  gnome-common
BuildRequires:  intltool
BuildRequires:  krb5-devel
BuildRequires:  translation-update-upstream
BuildRequires:  update-desktop-files
BuildRequires:  pkgconfig(accountsservice) >= 0.6.30
BuildRequires:  pkgconfig(cheese)
BuildRequires:  pkgconfig(cheese-gtk) >= 3.3.91
BuildRequires:  pkgconfig(clutter-gtk-1.0)
BuildRequires:  pkgconfig(colord) >= 0.1.34
BuildRequires:  pkgconfig(colord-gtk) >= 0.1.24
BuildRequires:  pkgconfig(fontconfig)
BuildRequires:  pkgconfig(gconf-2.0)
BuildRequires:  pkgconfig(gdk-pixbuf-2.0)
BuildRequires:  pkgconfig(gio-2.0)
BuildRequires:  pkgconfig(gl)
BuildRequires:  pkgconfig(glib-2.0) >= 2.37.7
BuildRequires:  pkgconfig(gmodule-2.0)
BuildRequires:  pkgconfig(gnome-bluetooth-1.0) >= 3.5.5
BuildRequires:  pkgconfig(gnome-desktop-3.0) >= 3.9.90
BuildRequires:  pkgconfig(gnome-settings-daemon) >= 3.7.3
BuildRequires:  pkgconfig(goa-1.0) >= 3.9.90
BuildRequires:  pkgconfig(goa-backend-1.0)
BuildRequires:  pkgconfig(gobject-introspection-1.0)
BuildRequires:  pkgconfig(gsettings-desktop-schemas) >= 3.9.91
BuildRequires:  pkgconfig(gstreamer-1.0)
BuildRequires:  pkgconfig(gtk+-3.0) >= 3.9.12
%if %{with_ibus}
BuildRequires:  pkgconfig(ibus-1.0) >= 1.5.2
%endif
BuildRequires:  pkgconfig(libcanberra-gtk3)
BuildRequires:  pkgconfig(libgnome-menu-3.0)
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(libpulse) >= 2.0
BuildRequires:  pkgconfig(libpulse-mainloop-glib) >= 2.0
BuildRequires:  pkgconfig(libsoup-2.4)
BuildRequires:  pkgconfig(libsystemd-login)
%if %{with_wacom}
BuildRequires:  pkgconfig(libwacom) >= 0.7
%endif
BuildRequires:  pkgconfig(libxml-2.0)
BuildRequires:  pkgconfig(mm-glib) >= 0.7
BuildRequires:  pkgconfig(polkit-gobject-1) >= 0.103
BuildRequires:  pkgconfig(pwquality) >= 1.2.2
BuildRequires:  pkgconfig(smbclient)
BuildRequires:  pkgconfig(upower-glib)
BuildRequires:  pkgconfig(x11)
BuildRequires:  pkgconfig(xcursor)
BuildRequires:  pkgconfig(xft)
BuildRequires:  pkgconfig(xi) >= 1.2
# needed for glxinfo, used by System info panel
Requires:       Mesa-demo-x
# The color panel requires colord to be present for the glib schema
Requires:       colord
# needed for printers panel
Requires:       cups-pk-helper
# The color panel interacts with binaries from gnome-color-manager
Requires:       gnome-color-manager
Requires:       gnome-menus
Requires:       gnome-settings-daemon
# needed for universal access panel
Requires:       gnome-themes-accessibility
Requires:       gnome-version
Requires:       iso-codes
Requires:       nautilus
Recommends:     %{name}-lang
Recommends:     %{name}-user-faces
# the printers panel can use the dbus service
Recommends:     system-config-printer-dbus-service
Provides:       acme
Provides:       fontilus
Provides:       themus
Obsoletes:      acme
Obsoletes:      fontilus
Obsoletes:      themus
Provides:       control-center2 = 2.22.1
Obsoletes:      control-center2 < 2.22.1
# gnome-control-center-branding was obsoleted with g-c-c 3.8.0 (after openSUSE 
12.3)
Obsoletes:      gnome-control-center-branding <= 12.3
Obsoletes:      gnome-control-center-branding-openSUSE <= 12.3
Obsoletes:      gnome-control-center-branding-upstream <= 12.3
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
%glib2_gsettings_schema_requires

%description
The control center is GNOME's main interface for configuration of
various aspects of your desktop.

%package user-faces
Summary:        Login Managers user avatars
Group:          System/GUI/GNOME

%description user-faces
This package provides user avatars to be used by display managers

%package devel
Summary:        Header files for the GNOME Control Center
Group:          Development/Libraries/GNOME
Requires:       %{name} = %{version}
Provides:       control-center2-devel = 2.22.1
Obsoletes:      control-center2-devel < 2.22.1

%description devel
The control center is GNOME's main interface for configuration of
various aspects of your desktop.

%lang_package
%prep
%setup -q
translation-update-upstream
%patch0 -p1
%patch15 -p1
%patch16 -p1
%patch17 -p1
#NEEDS-REBASE
#patch14 -p1

%build
ACLOCAL_FLAGS="-I libgd" NOCONFIGURE=1 gnome-autogen.sh

%configure --with-pic\
        --disable-static\
        --disable-maintainer-mode\
%if %{with_ibus}
        --enable-ibus
%else
        --disable-ibus
%endif
make %{?_smp_mflags} V=1

%install
%make_install
find %{buildroot} -type f -name "*.la" -delete -print

# We do not package gnome-control-center.rules (bnc#804966)
rm %{buildroot}%{_datadir}/polkit-1/rules.d/gnome-control-center.rules
%find_lang %{name}-2.0 %{?no_lang_C}
%find_lang %{name}-2.0-timezones %{name}-2.0.lang
%suse_update_desktop_file gnome-control-center
# capplets
%suse_update_desktop_file gnome-background-panel 
X-SuSE-ControlCenter-LookAndFeel
%suse_update_desktop_file gnome-color-panel X-SuSE-ControlCenter-Hardware
%suse_update_desktop_file gnome-datetime-panel X-SuSE-ControlCenter-Hardware
%suse_update_desktop_file gnome-display-panel X-SuSE-ControlCenter-Hardware
%suse_update_desktop_file gnome-info-panel X-SuSE-ControlCenter-Personal
%suse_update_desktop_file gnome-keyboard-panel X-SuSE-ControlCenter-Hardware
%suse_update_desktop_file gnome-mouse-panel X-SuSE-ControlCenter-Hardware
%suse_update_desktop_file gnome-online-accounts-panel 
X-SuSE-ControlCenter-Personal
%suse_update_desktop_file gnome-power-panel X-SuSE-ControlCenter-Hardware
%suse_update_desktop_file gnome-printers-panel X-SuSE-ControlCenter-Hardware
%suse_update_desktop_file gnome-region-panel X-SuSE-ControlCenter-Personal
%suse_update_desktop_file gnome-sound-panel X-SuSE-ControlCenter-Hardware
%suse_update_desktop_file gnome-universal-access-panel 
X-SuSE-ControlCenter-Personal
%suse_update_desktop_file gnome-user-accounts-panel 
X-SuSE-ControlCenter-Personal
%if %{with_wacom}
%suse_update_desktop_file gnome-wacom-panel X-SuSE-ControlCenter-Hardware
%endif
%fdupes %{buildroot}

%clean
rm -rf %{buildroot}

%post
%glib2_gsettings_schema_post
%desktop_database_post
%icon_theme_cache_post

%postun
%glib2_gsettings_schema_postun
%desktop_database_postun
%icon_theme_cache_postun

%files
%defattr(-,root,root)
%doc AUTHORS COPYING ChangeLog NEWS README
%{_bindir}/*
%{_datadir}/applications/*.desktop
%{_datadir}/bash-completion/completions/gnome-control-center
%{_datadir}/dbus-1/services/org.gnome.ControlCenter.service
%{_datadir}/dbus-1/services/org.gnome.ControlCenter.SearchProvider.service
%{_datadir}/gnome-control-center/
%dir %{_datadir}/gnome-shell/
%dir %{_datadir}/gnome-shell/search-providers/
%{_datadir}/gnome-shell/search-providers/gnome-control-center-search-provider.ini
%{_datadir}/icons/hicolor/*/*/*.png
%{_datadir}/icons/hicolor/*/*/*.svg
%{_datadir}/polkit-1/actions/org.gnome.controlcenter.datetime.policy
%{_datadir}/polkit-1/actions/org.gnome.controlcenter.remote-login-helper.policy
%{_datadir}/polkit-1/actions/org.gnome.controlcenter.user-accounts.policy
# We do not package gnome-control-center.rules
#{_datadir}/polkit-1/rules.d/gnome-control-center.rules
%dir %{_datadir}/sounds/gnome
%dir %{_datadir}/sounds/gnome/default
%dir %{_datadir}/sounds/gnome/default/alerts
%{_datadir}/sounds/gnome/default/alerts/*.ogg
%{_libexecdir}/cc-remote-login-helper
%{_libexecdir}/gnome-control-center-search-provider

%{_mandir}/man1/gnome-control-center.1%{?ext_man}

%files lang -f %{name}-2.0.lang

%files user-faces
%defattr (-, root, root)
%{_datadir}/pixmaps/faces/

%files devel
%defattr (-, root, root)
%{_datadir}/pkgconfig/gnome-keybindings.pc

%changelog
++++++ gcc-private-connection.patch ++++++
>From b72c423a344f2e455c17978bab76eb29912d0b5b Mon Sep 17 00:00:00 2001
From: Gary Ching-Pang Lin <chingp...@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(-)

diff --git a/configure.ac b/configure.ac
index b0b492d..4453123 100644
--- a/configure.ac
+++ b/configure.ac
@@ -134,7 +134,8 @@ PKG_CHECK_MODULES(KEYBOARD_PANEL, $COMMON_MODULES
 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 libgnome-menu-3.0)
 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.9.1
diff --git a/panels/network/cc-network-panel.c 
b/panels/network/cc-network-panel.c
index 4fa3706..7bae539 100644
--- a/panels/network/cc-network-panel.c
+++ b/panels/network/cc-network-panel.c
@@ -24,6 +24,8 @@
 #include <glib/gi18n.h>
 #include <stdlib.h>
 
+#include <polkit/polkit.h>
+
 #include "cc-network-panel.h"
 #include "cc-network-resources.h"
 
@@ -87,6 +89,9 @@ struct _CcNetworkPanelPrivate
         gchar            *arg_device;
         gchar            *arg_access_point;
         gboolean          operation_done;
+
+        /* polkit authentication check */
+        gboolean          default_private;
 };
 
 enum {
@@ -574,13 +579,13 @@ handle_argv_for_device (CcNetworkPanel *panel,
                 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;
@@ -1355,6 +1360,9 @@ cc_network_panel_init (CcNetworkPanel *panel)
         GtkWidget *widget;
         GtkWidget *toplevel;
         GDBusConnection *system_bus;
+        PolkitSubject    *subject;
+        PolkitAuthority  *authority;
+        PolkitAuthorizationResult *result;
 
         panel->priv = NETWORK_PANEL_PRIVATE (panel);
         g_resources_register (cc_network_get_resource ());
@@ -1458,4 +1466,32 @@ cc_network_panel_init (CcNetworkPanel *panel)
         widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder,
                                                      "vbox1"));
         gtk_container_add (GTK_CONTAINER (panel), widget);
+
+       /* 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;
 }
diff --git a/panels/network/cc-network-panel.h 
b/panels/network/cc-network-panel.h
index f869c3f..d3773b2 100644
--- a/panels/network/cc-network-panel.h
+++ b/panels/network/cc-network-panel.h
@@ -67,6 +67,8 @@ GType cc_network_panel_get_type (void) G_GNUC_CONST;
 
 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 */
diff --git a/panels/network/net-device-mobile.c 
b/panels/network/net-device-mobile.c
index dad3a4a..c671637 100644
--- a/panels/network/net-device-mobile.c
+++ b/panels/network/net-device-mobile.c
@@ -141,12 +141,15 @@ mobile_connection_changed_cb (GtkComboBox *combo_box, 
NetDeviceMobile *device_mo
                             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;
         }
 
diff --git a/panels/network/net-device-wifi.c b/panels/network/net-device-wifi.c
index 49a79a8..da488c5 100644
--- a/panels/network/net-device-wifi.c
+++ b/panels/network/net-device-wifi.c
@@ -696,6 +696,9 @@ wireless_try_to_connect (NetDeviceWifi *device_wifi,
         NMDevice *device;
         NMSettingWireless *setting_wireless;
         NMClient *client;
+        CcNetworkPanel *panel;
+        NMConnection *partial = NULL;
+        NMSettingConnection *setting_con;
 
         if (device_wifi->priv->updating_device)
                 goto out;
@@ -747,10 +750,21 @@ wireless_try_to_connect (NetDeviceWifi *device_wifi,
         /* 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 {
@@ -965,6 +979,7 @@ start_shared_connection (NetDeviceWifi *device_wifi)
         GSList *l;
         NMClient *client;
         const char *mode;
+        CcNetworkPanel *panel;
 
         device = net_device_get_nm_device (NET_DEVICE (device_wifi));
         g_assert (nm_device_get_device_type (device) == NM_DEVICE_TYPE_WIFI);
@@ -1001,6 +1016,14 @@ start_shared_connection (NetDeviceWifi *device_wifi)
                       "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 ();
diff --git a/panels/network/network-dialogs.c b/panels/network/network-dialogs.c
index b2f8376..24053cb 100644
--- a/panels/network/network-dialogs.c
+++ b/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_network (GtkWidget        
*toplevel,
                                            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_network (GtkWidget        
*toplevel,
         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 *wizard,
        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 *wizard,
                              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 *wizard,
        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 *wizard,
                              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 (GtkWidget        
*toplevel,
         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) {
diff --git a/panels/network/network-dialogs.h b/panels/network/network-dialogs.h
index ddbf392..953fc2b 100644
--- a/panels/network/network-dialogs.h
+++ b/panels/network/network-dialogs.h
@@ -38,11 +38,13 @@ void cc_network_panel_connect_to_8021x_network (GtkWidget   
     *toplevel,
                                                 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 */
-- 
1.8.1.4

++++++ gnome-control-center-BT-sharing.patch ++++++
>From b0b43d149471e3463fedaa0ba80e0c315c810ce0 Mon Sep 17 00:00:00 2001
From: Bastien Nocera <had...@hadess.net>
Date: Thu, 14 Nov 2013 08:22:05 +0000
Subject: sharing: Fix Bluetooth label always being off

https://bugzilla.gnome.org/show_bug.cgi?id=712252
---
diff --git a/panels/sharing/cc-sharing-panel.c 
b/panels/sharing/cc-sharing-panel.c
index 586085d..a246654 100644
--- a/panels/sharing/cc-sharing-panel.c
+++ b/panels/sharing/cc-sharing-panel.c
@@ -384,6 +384,10 @@ cc_sharing_panel_setup_bluetooth_sharing_dialog 
(CcSharingPanel *self)
   g_signal_connect_swapped (priv->bluetooth_killswitch, "state-changed",
                             G_CALLBACK (bluetooth_state_changed), self);
 
+  cc_sharing_panel_bind_switch_to_label (self,
+                                         WID 
("save-received-files-to-downloads-switch"),
+                                         WID 
("bluetooth-sharing-status-label"));
+
   cc_sharing_panel_bind_switch_to_widgets (WID 
("save-received-files-to-downloads-switch"),
                                            WID ("receive-files-grid"),
                                            NULL);
--
cgit v0.9.2
>From db7f29b67579e02a7c8c49c135da994f409928b1 Mon Sep 17 00:00:00 2001
From: Bastien Nocera <had...@hadess.net>
Date: Thu, 14 Nov 2013 08:16:34 +0000
Subject: sharing: Add more debug for duplicate folders

---
diff --git a/panels/sharing/cc-sharing-panel.c 
b/panels/sharing/cc-sharing-panel.c
index a246654..a5d4235 100644
--- a/panels/sharing/cc-sharing-panel.c
+++ b/panels/sharing/cc-sharing-panel.c
@@ -433,6 +433,10 @@ cc_sharing_panel_add_folder (GtkWidget      *button,
                                                    "shared-folders-liststore");
 
   folder = gtk_file_chooser_get_current_folder (GTK_FILE_CHOOSER (dialog));
+  if (!folder || g_str_equal (folder, ""))
+    goto bail;
+
+  g_debug ("Trying to add %s", folder);
 
   for (valid = gtk_tree_model_get_iter_first (GTK_TREE_MODEL (store), &iter);
        valid;
@@ -445,14 +449,17 @@ cc_sharing_panel_add_folder (GtkWidget      *button,
       g_free (string);
 
       if (matching)
-        break;
+        {
+          g_debug ("Found a duplicate for %s", folder);
+          break;
+        }
     }
 
-  if (!matching && folder && !g_str_equal (folder, ""))
+  if (!matching)
     gtk_list_store_insert_with_values (store, NULL, -1, 0, folder, -1);
 
+bail:
   g_free (folder);
-
   gtk_widget_destroy (dialog);
 }
 
--
cgit v0.9.2
>From 40d672cce3b700f08baa36da7f2c7f00f322e30f Mon Sep 17 00:00:00 2001
From: Bastien Nocera <had...@hadess.net>
Date: Thu, 14 Nov 2013 08:25:30 +0000
Subject: sharing: Make it possible to add new folders

The media panel wouldn't let you add more folder because the
test for equality was reversed.

https://bugzilla.gnome.org/show_bug.cgi?id=710580
---
diff --git a/panels/sharing/cc-sharing-panel.c 
b/panels/sharing/cc-sharing-panel.c
index a5d4235..1782180 100644
--- a/panels/sharing/cc-sharing-panel.c
+++ b/panels/sharing/cc-sharing-panel.c
@@ -445,7 +445,7 @@ cc_sharing_panel_add_folder (GtkWidget      *button,
       gchar *string;
 
       gtk_tree_model_get (GTK_TREE_MODEL (store), &iter, 0, &string, -1);
-      matching = (g_strcmp0 (string, folder) != 0);
+      matching = (g_strcmp0 (string, folder) == 0);
       g_free (string);
 
       if (matching)
--
cgit v0.9.2
>From f5ec0cd8d6e41628d8a6663f448988aeec2885a2 Mon Sep 17 00:00:00 2001
From: Bastien Nocera <had...@hadess.net>
Date: Thu, 14 Nov 2013 22:46:00 +0000
Subject: sharing: Fix crash when turning off Sharing

Another fallout from:
05a4f6d3d9620782fa5d1a279ef84c11701247d1

https://bugzilla.gnome.org/show_bug.cgi?id=712338
---
diff --git a/panels/sharing/cc-sharing-panel.c 
b/panels/sharing/cc-sharing-panel.c
index 1782180..8947e80 100644
--- a/panels/sharing/cc-sharing-panel.c
+++ b/panels/sharing/cc-sharing-panel.c
@@ -100,7 +100,7 @@ cc_sharing_panel_master_switch_notify (GtkSwitch      
*gtkswitch,
       gtk_switch_set_active (GTK_SWITCH (WID 
("share-public-folder-on-network-switch")),
                              FALSE);
       gtk_switch_set_active (GTK_SWITCH (WID ("share-media-switch")), FALSE);
-      gtk_switch_set_active (GTK_SWITCH (WID ("share-public-folder-switch")),
+      gtk_switch_set_active (GTK_SWITCH (WID 
("save-received-files-to-downloads-switch")),
                              FALSE);
     }
 
--
cgit v0.9.2
>From f730abd6a3ee86cf90eef79609a0f8e1538827b8 Mon Sep 17 00:00:00 2001
From: Bastien Nocera <had...@hadess.net>
Date: Thu, 14 Nov 2013 22:55:04 +0000
Subject: sharing: Fix compile time warning

Another warning in cc_sharing_panel_add_folder()
---
diff --git a/panels/sharing/cc-sharing-panel.c 
b/panels/sharing/cc-sharing-panel.c
index 8947e80..db0089b 100644
--- a/panels/sharing/cc-sharing-panel.c
+++ b/panels/sharing/cc-sharing-panel.c
@@ -417,7 +417,7 @@ cc_sharing_panel_add_folder (GtkWidget      *button,
   gchar *folder;
   GtkTreeIter iter;
   gboolean valid;
-  gboolean matching;
+  gboolean matching = FALSE;
 
   dialog = gtk_file_chooser_dialog_new (_("Choose a Folder"),
                                         GTK_WINDOW (gtk_widget_get_toplevel 
(button)),
--
cgit v0.9.2

++++++ gnome-control-center-allow-yast-in-shell.patch ++++++
Index: gnome-control-center-3.10.0/shell/cc-panel-loader.c
===================================================================
--- gnome-control-center-3.10.0.orig/shell/cc-panel-loader.c
+++ gnome-control-center-3.10.0/shell/cc-panel-loader.c
@@ -102,6 +102,7 @@ static struct {
 #ifdef BUILD_WACOM
   PANEL_TYPE("wacom",            cc_wacom_panel_get_type        ),
 #endif
+  PANEL_TYPE("YaST",             NULL                           ),
 };
 
 GList *
@@ -160,8 +161,11 @@ cc_panel_loader_fill_model (CcShellModel
       char *desktop_name;
       int category;
 
-      desktop_name = g_strconcat ("gnome-", all_panels[i].name,
-                                  "-panel.desktop", NULL);
+      if (g_strcmp0 (all_panels[i].name, "YaST") == 0)
+        desktop_name = g_strconcat (all_panels[i].name, ".desktop", NULL);
+      else
+        desktop_name = g_strconcat ("gnome-", all_panels[i].name,
+                                    "-panel.desktop", NULL);
       app = g_desktop_app_info_new (desktop_name);
       g_free (desktop_name);
 
@@ -226,6 +230,8 @@ cc_panel_loader_add_option_groups (GOpti
     {
       GType (*get_type) (void);
       get_type = all_panels[i].get_type;
+      if (get_type == NULL)
+        continue;
       GOptionGroup *group = cc_panel_get_option_group (get_type(), builder);
       if (group == NULL)
         continue;
Index: gnome-control-center-3.10.0/shell/cc-window.c
===================================================================
--- gnome-control-center-3.10.0.orig/shell/cc-window.c
+++ gnome-control-center-3.10.0/shell/cc-window.c
@@ -137,6 +137,38 @@ get_icon_name_from_g_icon (GIcon *gicon)
   return NULL;
 }
 
+static void
+suse_activate_desktop (const gchar *name)
+{
+  GDesktopAppInfo     *appinfo;
+  const gchar         *desktop_file;
+  GdkScreen           *screen;
+  GdkDisplay          *display;
+  GdkAppLaunchContext *context;
+  GError              *error;
+
+  desktop_file = g_strconcat (name, ".desktop", NULL);
+  appinfo = g_desktop_app_info_new (desktop_file);
+
+  screen = gdk_screen_get_default();
+  display = gdk_screen_get_display (screen);
+  context = gdk_display_get_app_launch_context (display);
+  gdk_app_launch_context_set_screen (context, screen);
+  gdk_app_launch_context_set_timestamp (context, gtk_get_current_event_time 
());
+
+  error = NULL;
+  g_app_info_launch_uris (G_APP_INFO (appinfo), NULL,
+                          (GAppLaunchContext *) context,
+                         &error);
+  if (error) {
+    g_printerr ("Could not launch '%s': %s\n", name, error->message);
+    g_clear_error (&error);
+  }
+
+  g_object_unref (context);
+  g_object_unref (appinfo);
+}
+
 static gboolean
 activate_panel (CcWindow           *self,
                 const gchar        *id,
@@ -151,6 +183,12 @@ activate_panel (CcWindow           *self
   if (!id)
     return FALSE;
 
+  if (g_strcmp0 (id, "YaST") == 0)
+  {
+    suse_activate_desktop (name);
+    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));
   gtk_widget_show (priv->current_panel);
++++++ gnome-control-center-probe-radius-server-cert.patch ++++++
>From 3c69e431953944a62ae3be6f075263cdafa70e47 Mon Sep 17 00:00:00 2001
From: Gary Ching-Pang Lin <chingp...@gmail.com>
Date: Tue, 1 Oct 2013 18:41:03 +0800
Subject: [PATCH] Probe the certificate of the RADIUS server

---
 panels/network/network-dialogs.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/panels/network/network-dialogs.c b/panels/network/network-dialogs.c
index b2f8376..7e7035c 100644
--- a/panels/network/network-dialogs.c
+++ b/panels/network/network-dialogs.c
@@ -153,6 +153,11 @@ wireless_dialog_response_cb (GtkDialog *foo,
        g_assert (connection);
        g_assert (device);
 
+        if (nma_wifi_dialog_need_cert_probe (dialog)) {
+                nma_wifi_dialog_probe_cert (dialog);
+                return;
+        }
+
        /* Find a similar connection and use that instead */
        all = nm_remote_settings_list_connections (closure->settings);
        for (iter = all; iter; iter = g_slist_next (iter)) {
-- 
1.8.1.4

++++++ gnome-control-center-system-proxy-configuration.patch ++++++
>From 067cc33aba6eeaffd4efe1d8a8e838aa1a89476a Mon Sep 17 00:00:00 2001
From: Federico Mena Quintero <feder...@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 <feder...@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

-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to