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"><b>Use the s_ystem's proxy settings</b></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