Merge lp:~darkxst/ubuntu/utopic/gnome-control-center/lp1372346 into lp:~ubuntu-desktop/gnome-control-center/ubuntu

Proposed by Tim Lunn
Status: Merged
Approved by: Martin Pitt
Approved revision: 648
Merged at revision: 647
Proposed branch: lp:~darkxst/ubuntu/utopic/gnome-control-center/lp1372346
Merge into: lp:~ubuntu-desktop/gnome-control-center/ubuntu
Diff against target: 5698 lines (+3404/-1523)
32 files modified
debian/changelog (+392/-0)
debian/control (+45/-44)
debian/control.in (+44/-43)
debian/gnome-control-center-data.maintscript (+2/-0)
debian/gnome-control-center-data.postinst (+8/-0)
debian/gnome-control-center.install (+6/-1)
debian/gnome-control-center.pkla (+2/-2)
debian/gnome-control-center.postinst (+7/-0)
debian/gnome-control-center.postrm (+12/-0)
debian/patches/01_menu_category.patch (+13/-0)
debian/patches/02_new_goa.patch (+0/-46)
debian/patches/06_handle_passwd_with_ldap.patch (+19/-0)
debian/patches/07_polkit_wheel_sudo_group.patch (+16/-0)
debian/patches/52_region_language.patch (+40/-40)
debian/patches/99_add_lock-on-suspend.patch (+2/-9)
debian/patches/gcc_not_in_unity.patch (+0/-154)
debian/patches/git-background-lock-screen.patch (+0/-862)
debian/patches/git-background-remove-unused-widget.patch (+0/-111)
debian/patches/git-online-accounts-chat-providers.patch (+0/-51)
debian/patches/git_fix_libbackground_linking.patch (+0/-24)
debian/patches/git_iconview_columns.patch (+0/-16)
debian/patches/git_rename_natural_scrolling.patch (+0/-26)
debian/patches/power-panel-3.10.patch (+979/-0)
debian/patches/revert-bluetooth-BlueZ5-interface.patch (+34/-0)
debian/patches/revert_git_dont_hide_zoom.patch (+23/-25)
debian/patches/revert_git_drop_library.patch (+10/-11)
debian/patches/revert_git_new_bluetooth_panel.patch (+1607/-0)
debian/patches/revert_new_bluetooth.patch (+68/-0)
debian/patches/series (+7/-8)
debian/patches/ubuntu-gnome-version.patch (+14/-8)
debian/patches/ubuntu_external_panels.patch (+53/-41)
debian/watch (+1/-1)
To merge this branch: bzr merge lp:~darkxst/ubuntu/utopic/gnome-control-center/lp1372346
Reviewer Review Type Date Requested Status
Martin Pitt Approve
Review via email: mp+236309@code.launchpad.net

Description of the change

Merge 3.12 from debian

To post a comment you must log in.
648. By Tim Lunn

Drop gcc_not_in_unity.patch, this is no longer needed since all panels now
set NoDisplay=true in their desktop files

Revision history for this message
Martin Pitt (pitti) wrote :

LGTM, thanks! gnome-control-center-shared-data didn't change, so this is safe for unity-control-center.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'debian/changelog'
--- debian/changelog 2014-08-20 03:43:40 +0000
+++ debian/changelog 2014-09-30 05:25:02 +0000
@@ -1,3 +1,150 @@
1gnome-control-center (1:3.12.1-5ubuntu1) utopic; urgency=medium
2
3 * New Upstream Release (LP: #1372346)
4 * Merge with Debian, remaining changes:
5 + debian/patches:
6 - revert_git_new_bluetooth_panel.patch,
7 revert_new_bluetooth.patch,
8 revert-bluetooth-BlueZ5-interface.patch:
9 Revert bluetooth back to Bluez4
10 - 52_region_language.patch
11 Adapt region panel to use Ubuntu style regions and UTF-8
12 - 56_use_ubuntu_info_branding.patch,
13 ubuntu-gnome-version.patch
14 Use Ubuntu GNOME branding
15 - 64_restore_terminal_keyboard_shortcut.patch
16 Bring back terminal shortcut
17 - 92_ubuntu_system_proxy.patch
18 Add system proxy support
19 - 99_add_lock-on-suspend.patch
20 Add option to lock on suspend
21 - revert_git_dont_hide_zoom.patch
22 Bring back zoom settings
23 - revert_git_drop_library.patch,
24 ubuntu_external_panels.patch
25 Reimplement support for external panels
26 + debian/control.in:
27 - Relax build-deps on upower and gnome-bluetooth
28 - Drop Recommends for packages not in main
29 - Various other Ubuntu specific changes
30 + debian/libgnome-control-center1.symbols:
31 - Add new symbols from external panel patch
32 + debian/gnome-control-center-data.install:
33 - don't install the pkla yet
34 + Split out shared data that is used by unity-control-center
35 + Add a wrapper to run unity-control-center in Unity
36 + Install apport hook
37 + Revert to 3.10 power panel, until we have new upower
38
39 -- Tim Lunn <tim@feathertop.org> Thu, 18 Sep 2014 09:31:20 +1000
40
41gnome-control-center (1:3.12.1-5) unstable; urgency=medium
42
43 [ Jordi Mallach ]
44 * Add cracklib-runtime to Recommends, it's needed for password changing.
45
46 [ Laurent Bigonville ]
47 * Add debian/patches/07_polkit_wheel_sudo_group.patch: The "wheel" group is
48 not existing on debian, check if the user is member of the "sudo" group
49 instead (Closes: #760722)
50
51 [ Andreas Henriksson ]
52 * Update debian/gnome-control-center.pkla with what is currently listed
53 in upstreams panels/common/gnome-control-center.rules since we don't yet
54 have/depend-on policykit-1 >= 0.106 which means the rules file is still
55 unused. This fixes automatic time/timezone, etc.
56
57 -- Laurent Bigonville <bigon@debian.org> Sun, 07 Sep 2014 12:31:59 +0200
58
59gnome-control-center (1:3.12.1-4) unstable; urgency=medium
60
61 [ Laurent Bigonville ]
62 * debian/control.in: Recommends realmd package
63
64 [ Emilio Pozuelo Monfort ]
65 * debian/control.in:
66 + Drop duplicate libgnome-bluetooth-dev build dependency.
67
68 [ Andreas Henriksson ]
69 * Bump dependency on gsettings-desktop-schemas to >= 3.9.91
70 - build-dependency already set to this version.
71 - needed for newly added datetime schema
72 (Closes: #752569)
73 * Upload to unstable.
74
75 -- Andreas Henriksson <andreas@fatal.se> Mon, 14 Jul 2014 23:49:42 +0200
76
77gnome-control-center (1:3.12.1-3) experimental; urgency=medium
78
79 * debian/control.in:
80 Add recommends to libnss-myhostname (Closes: #705319)
81
82 -- Sjoerd Simons <sjoerd@debian.org> Sun, 27 Apr 2014 18:20:29 +0200
83
84gnome-control-center (1:3.12.1-2) experimental; urgency=medium
85
86 [ Josselin Mouette ]
87 * Remove Suggests on screensavers.
88
89 -- Sjoerd Simons <sjoerd@debian.org> Sun, 27 Apr 2014 10:14:45 +0200
90
91gnome-control-center (1:3.12.1-1) experimental; urgency=medium
92
93 [ Laurent Bigonville]
94 * New upstream release.
95 - Add libkrb5-dev to the build-dependencies
96 - Re-add libgnome-bluetooth-dev build-dependency
97 * debian/control.in: Bump Standards-Version to 3.9.5 (no further changes)
98
99 [ Sjoerd Simons ]
100 * Re-add gnome-bluetooth support
101
102 -- Sjoerd Simons <sjoerd@debian.org> Sat, 26 Apr 2014 18:41:34 +0200
103
104gnome-control-center (1:3.12.0-1) experimental; urgency=medium
105
106 * New upstream release.
107
108 -- Andreas Henriksson <andreas@fatal.se> Mon, 24 Mar 2014 19:58:34 +0100
109
110gnome-control-center (1:3.11.91-1) experimental; urgency=medium
111
112 [ Jordi Mallach ]
113 * Bumb Build-Depends for libgnome-bluetooth-dev to >= 3.9.3.
114
115 [ Andreas Henriksson ]
116 * New upstream release.
117 * Update build-dependencies according to configure.ac changes:
118 - Bump libgnome-desktop-3-dev to >= 3.11.3
119 - Bump libgtk-3-dev to >= 3.11.1
120 - Bump libupower-glib-dev to >= 0.99.0
121 - Add libgrilo-0.2-dev (>= 0.2.6)
122 - Drop libsocialweb-client-dev
123 * Drop debian/patches/background-Fix-compilation-with-libsocialweb.patch
124 - socialweb integration dropped upstream.
125 * debian/rules: remove --with-libsocialweb configure flag
126 * Drop d/p/background-Fix-test-chooser-dialog-build-with-some-l.patch
127 - merged upstream.
128 * Have quilt refresh remaining patches
129 * Drop build-dependency on libgnome-bluetooth-dev [linux-any]
130 - Looks like we won't get bluez 5.x in unstable until some time
131 after hell freezes over, so just disable the bluetooth panel
132 for now to not let this hold us back.
133
134 -- Andreas Henriksson <andreas@fatal.se> Tue, 11 Mar 2014 23:44:49 +0100
135
136gnome-control-center (1:3.10.1-1) experimental; urgency=low
137
138 * New upstream release
139 * debian/patches/background-Fix-compilation-with-libsocialweb.patch
140 + Fix compilation with libsocialweb
141 * debian/patches/background-Fix-test-chooser-dialog-build-with-some-l.patch
142 + Fix compilation with more strictl linkers
143 * debian/control: Recommend network-manager instead of depending
144 (Closes: #726395)
145
146 -- Sjoerd Simons <sjoerd@debian.org> Fri, 01 Nov 2013 23:11:23 +0100
147
1gnome-control-center (1:3.8.6-0ubuntu5) utopic; urgency=medium148gnome-control-center (1:3.8.6-0ubuntu5) utopic; urgency=medium
2149
3 * Actually do a no change rebuild against new libgtop150 * Actually do a no change rebuild against new libgtop
@@ -67,6 +214,153 @@
67214
68 -- Robert Ancell <robert.ancell@canonical.com> Wed, 04 Dec 2013 11:03:26 +1300215 -- Robert Ancell <robert.ancell@canonical.com> Wed, 04 Dec 2013 11:03:26 +1300
69216
217gnome-control-center (1:3.8.3-3) unstable; urgency=low
218
219 * Drop recommends on gnome-session, it doesn't seem to be needed anymore
220 and brings in all of gnome when installing network-manager-gnome which
221 is also used in non-gnome environments.
222 * Upload to unstable.
223
224 -- Emilio Pozuelo Monfort <pochu@debian.org> Sun, 13 Oct 2013 18:04:36 +0200
225
226gnome-control-center (1:3.8.3-2) experimental; urgency=low
227
228 [ Emilio Pozuelo Monfort ]
229 * debian/control.in:
230 + Recommend gkbd-capplet, used by the Region & Language panel to
231 display the selected keyboard layout.
232 + Recommend ntp for the Date & Time panel.
233
234 [ Laurent Bigonville ]
235 * debian/control.in:
236 - Use canonical URL for Vcs-Svn field
237 - Drop duplicate Section to please lintian
238 - Also Suggests libcanberra-gtk3-module
239 * debian/rules:
240 - Use DEB_LDFLAGS_MAINT_APPEND instead of LDFLAGS so we are
241 sure we are not overrinding the hardening flags
242 - Pass -Wl,-z,defs to DEB_LDFLAGS_MAINT_APPEND so we can detect undefined
243 symbols during build
244 * gnome-control-center-data.maintscript: Remove /etc/xdg/menus/gnomecc.menu
245 and /etc/xdg/autostart/gnome-sound-applet.desktop on upgrade, the files
246 are no longer shipped (Closes: #712831)
247 * debian/control.in, debian/rules: Re-enable ibus support (Closes: #720585)
248
249 [ Jeremy Bicha ]
250 * Build-depend on gtk-doc-tools instead of docbook directly
251 * Don't build-depend on gnome-doc-utils
252
253 -- Laurent Bigonville <bigon@debian.org> Sat, 24 Aug 2013 14:05:49 +0200
254
255gnome-control-center (1:3.8.3-1) experimental; urgency=low
256
257 [ Andreas Henriksson ]
258 * Recommend both gnome-user-share and rygel | rygel-tracker
259 - Needs to be of recent version, but we don't have versioned recommends.
260 - This Makes Bluetooth Sharing, Personal File Sharing and Media Sharing
261 visible under the Sharing panel.
262 (Also, Remote Login will not show up until we ship a sshd.service
263 in Debian.)
264
265 [ Emilio Pozuelo Monfort ]
266 * New upstream release.
267
268 -- Emilio Pozuelo Monfort <pochu@debian.org> Sat, 08 Jun 2013 18:32:00 +0200
269
270gnome-control-center (1:3.8.2-1) experimental; urgency=low
271
272 [ Thomas Bechtold ]
273 * New upstream release 3.8.1.
274 * debian/control:
275 - Build-Depends on libgoa-1.0-dev (>= 3.8.1) according to
276 configure.ac.
277 - Bump Standards-Version to 3.9.4.
278
279 [ Emilio Pozuelo Monfort ]
280 * debian/control.in:
281 + Bump minimum gnome-menus dependency to fix loading desktop
282 files from the shell. Thanks to Luca Bruno for pointing it
283 out.
284 + Recommend system-config-printer for the printers panel.
285 * New upstream release 3.8.2.
286 + Doesn't crash if the printing dbus service is missing.
287 Closes: #709451.
288
289 -- Emilio Pozuelo Monfort <pochu@debian.org> Sat, 25 May 2013 13:00:07 +0200
290
291gnome-control-center (1:3.8.0-2) experimental; urgency=low
292
293 [ Emilio Pozuelo Monfort ]
294 * debian/control.in:
295 + Remove obsolete libgconf2-dev build dependency.
296
297 [ Sjoerd Simons ]
298 * debian/control.in: Add libsmbclient-dev for the printer panel
299 * debian/control.in: Add libnm*-dev (>= 0.9.8) for the network panel
300 * debian/control.in: Add run-time depend on network-manager-gnome (>= 0.9.8)
301
302 -- Sjoerd Simons <sjoerd@debian.org> Wed, 10 Apr 2013 09:22:02 +0100
303
304gnome-control-center (1:3.8.0-1) experimental; urgency=low
305
306 [ Jeremy Bicha ]
307 * debian/gnome-control-center-data.install, gnome-control-center.install:
308 - Move the new polkit rules to gnome-control-center-data
309 like the existing rule
310 * debian/control.in:
311 - Add temporary breaks/replaces for the previous change
312 * Add gnome-control-center.pkla to allow admins to change the hostname
313 without needing policykit from experimental (Closes: #693071)
314
315 [ Thomas Bechtold ]
316 * New upstream release
317
318 -- Thomas Bechtold <thomasbechtold@jpberlin.de> Wed, 27 Mar 2013 19:02:54 +0100
319
320gnome-control-center (1:3.7.92-1) experimental; urgency=low
321
322 [ Sjoerd Simons ]
323 * New upstream release
324 * debian/patches/90_force_fallback.patch
325 + Dropped, no longer applicable
326 * debian/patches/revert_git_datetime_port.patch
327 + Follow upstream in the systemd datetime usage
328 * debian/control.in: Bump build-deps
329 * debian/control.in: Add run-time depend on colord
330 * debian/gnome-control-center.install: Don't install panel .so files, all
331 plugins are now static
332 * debian/gnome-control-center-data.install: Remove installation of fallback
333 files, no longer shipped with g-c-c
334
335 [ Jean Schurger ]
336 * debian/control.in: Dropped valac build-dependency (not longer needed).
337
338 [ Sjoerd Simons ]
339 * New upstream release (3.7.92)
340 * debian/gnome-control-center.install: Install policykit rules & search
341 provider
342 * debian/control.in: Depend on gnome-icon-theme >= 3.7
343
344 -- Sjoerd Simons <sjoerd@debian.org> Sat, 23 Mar 2013 20:19:50 +0100
345
346gnome-control-center (1:3.6.3-1) experimental; urgency=low
347
348 [ Sjoerd Simons ]
349 * debian/control.in: Bump libgnome-bluetooth-dev to >= 3.5.5
350 * debian/control.in: Bump libcheese-gtk-dev to >= 3.5.91
351
352 [ Jeremy Bicha ]
353 * New upstream version.
354 * debian/gnome-control-center.sgml, debian/gnome-control-center.install
355 debian/rules
356 - Ship improved man page from GNOME
357
358 [ Aron Xu ]
359 * debian/control.in debian/rules: disable ibus integration.
360 (Closes: #694301, #691656)
361
362 -- Sjoerd Simons <sjoerd@debian.org> Sun, 10 Feb 2013 13:17:20 +0100
363
70gnome-control-center (1:3.6.3-0ubuntu57) utopic; urgency=medium364gnome-control-center (1:3.6.3-0ubuntu57) utopic; urgency=medium
71365
72 * debian/patches/ubuntu-gnome-version.patch: Merge build-time versioned366 * debian/patches/ubuntu-gnome-version.patch: Merge build-time versioned
@@ -713,6 +1007,96 @@
7131007
714 -- Sebastien Bacher <seb128@ubuntu.com> Wed, 21 Nov 2012 19:32:45 +01001008 -- Sebastien Bacher <seb128@ubuntu.com> Wed, 21 Nov 2012 19:32:45 +0100
7151009
1010gnome-control-center (1:3.6.2-1) experimental; urgency=low
1011
1012 * Team upload
1013
1014 [ Andreas Henriksson ]
1015 * Fix typo in gsettings-desktop-schemas-dev build dependency version
1016 (3.3.91 should be 3.5.91). (Closes: #693027)
1017
1018 [ Simon McVittie ]
1019 * Bump build-dependency to libgnome-desktop-3-dev (>= 3.5.91) as well,
1020 otherwise it'll continue to FTBFS
1021 * New upstream release
1022 * Install org.gnome.controlcenter.user-accounts.policy PolicyKit rule,
1023 which means that authenticating for
1024 org.gnome.controlcenter.user-accounts.administration is sufficient
1025 to administer accountsservice and (if later added to Debian) realmd
1026 * Do not install gnome-control-center.rules for now; it won't work in Debian
1027 since we don't have a wheel group. Patching it to use group sudo is
1028 a possibility for a future upload.
1029
1030 -- Simon McVittie <smcv@debian.org> Mon, 12 Nov 2012 17:14:50 +0000
1031
1032gnome-control-center (1:3.6.1-1) experimental; urgency=low
1033
1034 [ Josselin Mouette ]
1035 * Add missing epoch on libxi build-dependency.
1036
1037 [ Michael Biebl ]
1038 * Rebuild with xz compression. Closes: #687279
1039
1040 [ Sjoerd Simons ]
1041 * New upstream release (3.6.1)
1042 * debian/control.in: Updated dependencies
1043 * debian/patches/02_no_assert_on_null_streams.patch
1044 + Removed, was supposed to be a temporary patch
1045 * debian/patches/10_optional_wacom_support.patch
1046 + Removed, fixed upstream
1047 * debian/patches/90_force_fallback.patch: Refreshed
1048
1049 -- Sjoerd Simons <sjoerd@debian.org> Sun, 14 Oct 2012 21:42:26 +0200
1050
1051gnome-control-center (1:3.4.2-2) unstable; urgency=low
1052
1053 * Upload to unstable.
1054
1055 -- Michael Biebl <biebl@debian.org> Wed, 30 May 2012 12:54:24 +0200
1056
1057gnome-control-center (1:3.4.2-1) experimental; urgency=low
1058
1059 [ Sjoerd Simons ]
1060 * New upstream release
1061 * Sync with Ubuntu:
1062 + debian/control.in: Update build-depends
1063 + debian/patches/02_no_assert_on_null_streams.patch:
1064 - Don't crash on null streams (bgo: #633728, LP: #741155)
1065 + debian/patches/90_force_fallback.patch:
1066 - Refreshed
1067 + debian/patches/06_handle_passwd_with_ldap.patch:
1068 - Refreshed
1069 + debian/patches/revert_git_datetime_port.patch:
1070 - Added, don't switch to systemd for datetime functionality just yet.
1071 * Drop libgnome-control-center1 package, gnome-control-center no longer
1072 builds a library.
1073 * debian/patches/00git_handle_media_dialog_close.patch,
1074 debian/patches/91_configure_cheese.patch,
1075 debian/patches/08_dont_crash_on_null_territories.patch,
1076 debian/patches/92_link_language_chooser_against_fontconfig.patch:
1077 + All removed, fixed upstream
1078 * debian/rules: Don't use -Wl,-z,defs as it cause the panel plugins to fail
1079 to build
1080 * debian/gnome-control-center-data.install: gnome-control-center no longer
1081 ships a manual.
1082
1083 [ Michael Biebl ]
1084 * Add Build-Depends on libwacom-dev and libxi-dev for the Wacom panel and
1085 libgnome-bluetooth-dev for the Bluetooth panel.
1086 * Mark libwacom-dev and libgnome-bluetooth-dev as linux-any.
1087 * Update Build-Depends according to configure.ac.
1088 * Add Breaks/Replaces: gnome-bluetooth (<< 3.4) as the Bluetooth panel moved
1089 into gnome-control-center.
1090 * debian/patches/10_optional_wacom_support.patch: Build the Wacom panel
1091 conditionally to support plattforms where libwacom-dev is not available.
1092 * Bump Standards-Version to 3.9.3.
1093 * Add Breaks against libgnome-bluetooth8 since loading booth
1094 libgnome-bluetooth8 and libgnome-bluetooth10 will lead to crashes when
1095 using the Bluetooth panel. Eventually we should use versioned directories
1096 for the gnome-bluetooth plugins but for now the Breaks will do.
1097
1098 -- Michael Biebl <biebl@debian.org> Sat, 19 May 2012 23:57:55 +0200
1099
716gnome-control-center (1:3.4.2-0ubuntu20) quantal-proposed; urgency=low1100gnome-control-center (1:3.4.2-0ubuntu20) quantal-proposed; urgency=low
7171101
718 * debian/patches/04_new_appearance_settings.patch1102 * debian/patches/04_new_appearance_settings.patch
@@ -1382,6 +1766,14 @@
13821766
1383 -- Sebastien Bacher <seb128@ubuntu.com> Wed, 15 Feb 2012 23:16:31 +01001767 -- Sebastien Bacher <seb128@ubuntu.com> Wed, 15 Feb 2012 23:16:31 +0100
13841768
1769gnome-control-center (1:3.2.2-3) unstable; urgency=low
1770
1771 * debian/patches/92_link_language_chooser_against_fontconfig.patch: Link
1772 language chooser panel against fontconfig. Patch cherry-picked from
1773 upstream Git.
1774
1775 -- Michael Biebl <biebl@debian.org> Thu, 29 Mar 2012 23:36:02 +0200
1776
1385gnome-control-center (1:3.2.2-2ubuntu10) precise; urgency=low1777gnome-control-center (1:3.2.2-2ubuntu10) precise; urgency=low
13861778
1387 * debian/patches/97_unity_power_ui.patch:1779 * debian/patches/97_unity_power_ui.patch:
13881780
=== modified file 'debian/control'
--- debian/control 2014-05-06 09:05:08 +0000
+++ debian/control 2014-09-30 05:25:02 +0000
@@ -7,65 +7,62 @@
7Priority: optional7Priority: optional
8Maintainer: Ubuntu Desktop Team <ubuntu-desktop@lists.ubuntu.com>8Maintainer: Ubuntu Desktop Team <ubuntu-desktop@lists.ubuntu.com>
9XSBC-Original-Maintainer: Debian GNOME Maintainers <pkg-gnome-maintainers@lists.alioth.debian.org>9XSBC-Original-Maintainer: Debian GNOME Maintainers <pkg-gnome-maintainers@lists.alioth.debian.org>
10Uploaders: Debian GNOME Maintainers <pkg-gnome-maintainers@lists.alioth.debian.org>10Uploaders: Andreas Henriksson <andreas@fatal.se>, Debian GNOME Maintainers <pkg-gnome-maintainers@lists.alioth.debian.org>, Laurent Bigonville <bigon@debian.org>, Sjoerd Simons <sjoerd@debian.org>
11Standards-Version: 3.9.411Standards-Version: 3.9.5
12Build-Depends: autotools-dev,12Build-Depends: autotools-dev,
13 cdbs (>= 0.4.41),13 cdbs (>= 0.4.41),
14 debhelper (>= 9),14 debhelper (>= 9),
15 dpkg-dev (>= 1.16.1~),
16 libaccountsservice-dev (>= 0.6.30),
15 desktop-file-utils,17 desktop-file-utils,
16 dh-autoreconf,18 dh-autoreconf,
17 gtk-doc-tools,
18 libgirepository1.0-dev (>= 0.9.7),
19 gnome-common,19 gnome-common,
20 gnome-pkg-tools (>= 0.10),20 gnome-pkg-tools (>= 0.10),
21 gnome-settings-daemon-dev (>= 3.8.4),21 gnome-settings-daemon-dev (>= 3.7.3),
22 gsettings-desktop-schemas-dev (>= 3.7.2.2),22 gsettings-desktop-schemas-dev (>= 3.9.91),
23 hardening-wrapper,23 gtk-doc-tools,
24 intltool (>= 0.37.1),24 intltool (>= 0.37.1),
25 libcanberra-gtk3-dev,25 libcanberra-gtk3-dev,
26 libcheese-gtk-dev (>= 2.91.91.1),26 libcheese-gtk-dev (>= 3.5.91),
27 libcolord-dev (>= 0.1.29),27 libcolord-dev (>= 0.1.29),
28 libcolord-gtk-dev (>= 0.1.24),28 libcolord-gtk-dev (>= 0.1.24),
29 libcups2-dev,29 libcups2-dev,
30 libdbus-1-dev (>= 0.32),30 libdbus-1-dev (>= 0.32),
31 libdbus-glib-1-dev (>= 0.32),31 libdbus-glib-1-dev (>= 0.32),
32 libgdk-pixbuf2.0-dev (>= 2.23.0),32 libgdk-pixbuf2.0-dev (>= 2.23.0),
33 libglib2.0-dev (>= 2.35.1),33 libgirepository1.0-dev,
34 libgnome-bluetooth-dev (>= 3.3.4),34 libglib2.0-dev (>= 2.37.7),
35 libgnome-desktop-3-dev (>= 3.7.5),35 libgnome-desktop-3-dev (>= 3.11.3),
36 libgnome-menu-3-dev,36 libgnome-menu-3-dev,
37 libgnomekbd-dev,37 libgnomekbd-dev (>= 2.91.91),
38 libgoa-1.0-dev (>= 3.10.0),38 libgnome-bluetooth-dev (>= 3.3.4) [linux-any],
39 libaccountsservice-dev (>= 0.6.30),39 libibus-1.0-dev (>= 1.5.2),
40 libgstreamer-plugins-base0.10-dev,40 libgoa-1.0-dev (>= 3.9.90),
41 libgtk-3-dev (>= 3.7.7),41 libgrilo-0.2-dev (>= 0.2.6),
42 libgtk-3-dev (>= 3.11.1),
42 libgtop2-dev,43 libgtop2-dev,
43 libibus-1.0-dev (>= 1.5.0),
44 libkrb5-dev,44 libkrb5-dev,
45 libnm-glib-dev (>= 0.9.8) [linux-any],45 libnm-glib-dev (>= 0.9.8) [linux-any],
46 libnm-glib-vpn-dev (>= 0.9.8) [linux-any], 46 libnm-glib-vpn-dev (>= 0.9.8) [linux-any],
47 libnm-gtk-dev (>= 0.9.7.995) [linux-any],47 libnm-gtk-dev (>= 0.9.8) [linux-any],
48 libnm-util-dev (>= 0.9.8) [linux-any],48 libnm-util-dev (>= 0.9.8) [linux-any],
49 libmm-glib-dev [linux-any],49 libmm-glib-dev [linux-any],
50 libnotify-dev (>= 0.7.3),50 libnotify-dev (>= 0.7.3),
51 libpolkit-gobject-1-dev (>= 0.103),51 libpolkit-gobject-1-dev (>= 0.103),
52 libpulse-dev (>= 1:2.0),52 libpulse-dev,
53 libpwquality-dev,53 libpwquality-dev,
54 libsmbclient-dev,54 libsmbclient-dev (>= 2:3.6.12),
55# libsocialweb-client-dev,55 libupower-glib-dev (>= 0.9.0),
56 libupower-glib-dev (>= 0.9.1),56 libwacom-dev (>= 0.7) [linux-any],
57 libsystemd-login-dev,57 libxi-dev (>= 2:1.2),
58 libwacom-dev (>= 0.7),
59 libx11-dev,58 libx11-dev,
60 libxft-dev (>= 2.1.2),59 libxft-dev (>= 2.1.2),
61 libxkbfile-dev,
62 libxklavier-dev (>= 5.1),60 libxklavier-dev (>= 5.1),
63 libxml2-dev,61 libxml2-dev,
64 locales,62 locales,
65 network-manager-dev (>= 0.9.8) [linux-any],63 network-manager-dev (>= 0.9.8) [linux-any],
66 shared-mime-info,64 shared-mime-info,
67 ttf-ubuntu-font-family,65 ttf-ubuntu-font-family,
68 libwebkitgtk-3.0-dev,
69 libgl1-mesa-dev,66 libgl1-mesa-dev,
70 valac (>= 0.20.0),67 valac (>= 0.20.0),
71Vcs-Bzr: http://code.launchpad.net/~ubuntu-desktop/gnome-control-center/ubuntu68Vcs-Bzr: http://code.launchpad.net/~ubuntu-desktop/gnome-control-center/ubuntu
@@ -77,38 +74,40 @@
77 ${shlibs:Depends},74 ${shlibs:Depends},
78 accountsservice,75 accountsservice,
79 apg,76 apg,
77 colord (>= 0.1.30),
80 desktop-file-utils,78 desktop-file-utils,
81 gkbd-capplet (>= 3.5.90),
82 gnome-control-center-data (<< ${gnome:NextVersion}),79 gnome-control-center-data (<< ${gnome:NextVersion}),
83 gnome-control-center-data (>= ${source:Version}),80 gnome-control-center-data (>= ${source:Version}),
84 gnome-desktop3-data,81 gnome-desktop3-data,
85 gnome-icon-theme (>= 2.24),82 gnome-icon-theme (>= 3.7),
86 gnome-icon-theme-symbolic,83 gnome-icon-theme-symbolic (>= 3.7),
87 gnome-menus (>= 2.12.0),84 gnome-menus (>= 3.7.90),
88 gnome-settings-daemon (>= 3.8.4),85 gnome-settings-daemon (>= 3.7.91),
89 gsettings-desktop-schemas (>= 3.5.91),86 gsettings-desktop-schemas (>= 3.9.91),
90Recommends: cups-pk-helper,87Recommends: cups-pk-helper,
91 gnome-session-bin,88 gnome-control-center-shared-data,
92 ubuntu-system-service,89# gnome-session-bin,
90 gnome-user-share,
91 gkbd-capplet,
93 ibus (>= 1.5.0),92 ibus (>= 1.5.0),
94 iso-codes,93 iso-codes,
94 libcanberra-pulse,
95 mousetweaks,95 mousetweaks,
96 ntp,
96 policykit-1-gnome,97 policykit-1-gnome,
97 libcanberra-pulse,
98 system-config-printer-gnome,98 system-config-printer-gnome,
99 gnome-control-center-shared-data99 cracklib-runtime,
100Replaces: gnome-bluetooth (<< 3.4.0)100 ubuntu-system-service,
101Breaks: gnome-power-manager (<< 3.0),101Breaks: gnome-power-manager (<< 3.0),
102 gnome-session (<< 3.0),102 gnome-session (<< 3.0),
103 libglib2.0-0 (<< 2.28.6-2),103 libglib2.0-0 (<< 2.28.6-2),
104 gnome-bluetooth (<< 3.4.0),104 gnome-bluetooth (<< 3.4),
105 compiz (<< 1:0.9.8+bzr330),105Replaces: gnome-bluetooth (<< 3.4.0)
106 metacity (<< 1:2.34.2),
107 unity (<< 6.2-0ubuntu2~),
108Suggests: gnome-screensaver | xscreensaver,106Suggests: gnome-screensaver | xscreensaver,
109 gnome-user-guide | ubuntu-docs,107 gnome-user-guide | ubuntu-docs,
110 gstreamer0.10-pulseaudio,108 gstreamer0.10-pulseaudio,
111 libcanberra-gtk-module,109 libcanberra-gtk-module,
110 libcanberra-gtk3-module,
112 x11-xserver-utils111 x11-xserver-utils
113Description: utilities to configure the GNOME desktop112Description: utilities to configure the GNOME desktop
114 This package contains configuration applets for the GNOME desktop,113 This package contains configuration applets for the GNOME desktop,
@@ -138,11 +137,13 @@
138 gdm3 (<< 3.0),137 gdm3 (<< 3.0),
139 gnome-media-common (<< 2.91),138 gnome-media-common (<< 2.91),
140 gnome-power-manager (<< 3.2),139 gnome-power-manager (<< 3.2),
141 gnome-settings-daemon (<< 3.0)140 gnome-settings-daemon (<< 3.0),
141 gnome-control-center (<< 1:3.7.92-2~)
142Breaks: gdm (<< 3.0),142Breaks: gdm (<< 3.0),
143 gdm3 (<< 3.0),143 gdm3 (<< 3.0),
144 gnome-power-manager (<< 3.2),144 gnome-power-manager (<< 3.2),
145 gnome-settings-daemon (<< 3.0)145 gnome-settings-daemon (<< 3.0),
146 gnome-control-center (<< 1:3.7.92-2~)
146Description: configuration applets for GNOME - data files147Description: configuration applets for GNOME - data files
147 This package contains data files (icons, pixmaps, locales files) needed by148 This package contains data files (icons, pixmaps, locales files) needed by
148 the configuration applets in the gnome-control-center package.149 the configuration applets in the gnome-control-center package.
149150
=== modified file 'debian/control.in'
--- debian/control.in 2014-05-06 01:47:50 +0000
+++ debian/control.in 2014-09-30 05:25:02 +0000
@@ -4,64 +4,61 @@
4Maintainer: Ubuntu Desktop Team <ubuntu-desktop@lists.ubuntu.com>4Maintainer: Ubuntu Desktop Team <ubuntu-desktop@lists.ubuntu.com>
5XSBC-Original-Maintainer: Debian GNOME Maintainers <pkg-gnome-maintainers@lists.alioth.debian.org>5XSBC-Original-Maintainer: Debian GNOME Maintainers <pkg-gnome-maintainers@lists.alioth.debian.org>
6Uploaders: @GNOME_TEAM@6Uploaders: @GNOME_TEAM@
7Standards-Version: 3.9.47Standards-Version: 3.9.5
8Build-Depends: autotools-dev,8Build-Depends: autotools-dev,
9 cdbs (>= 0.4.41),9 cdbs (>= 0.4.41),
10 debhelper (>= 9),10 debhelper (>= 9),
11 dpkg-dev (>= 1.16.1~),
12 libaccountsservice-dev (>= 0.6.30),
11 desktop-file-utils,13 desktop-file-utils,
12 dh-autoreconf,14 dh-autoreconf,
13 gtk-doc-tools,
14 libgirepository1.0-dev (>= 0.9.7),
15 gnome-common,15 gnome-common,
16 gnome-pkg-tools (>= 0.10),16 gnome-pkg-tools (>= 0.10),
17 gnome-settings-daemon-dev (>= 3.8.4),17 gnome-settings-daemon-dev (>= 3.7.3),
18 gsettings-desktop-schemas-dev (>= 3.7.2.2),18 gsettings-desktop-schemas-dev (>= 3.9.91),
19 hardening-wrapper,19 gtk-doc-tools,
20 intltool (>= 0.37.1),20 intltool (>= 0.37.1),
21 libcanberra-gtk3-dev,21 libcanberra-gtk3-dev,
22 libcheese-gtk-dev (>= 2.91.91.1),22 libcheese-gtk-dev (>= 3.5.91),
23 libcolord-dev (>= 0.1.29),23 libcolord-dev (>= 0.1.29),
24 libcolord-gtk-dev (>= 0.1.24),24 libcolord-gtk-dev (>= 0.1.24),
25 libcups2-dev,25 libcups2-dev,
26 libdbus-1-dev (>= 0.32),26 libdbus-1-dev (>= 0.32),
27 libdbus-glib-1-dev (>= 0.32),27 libdbus-glib-1-dev (>= 0.32),
28 libgdk-pixbuf2.0-dev (>= 2.23.0),28 libgdk-pixbuf2.0-dev (>= 2.23.0),
29 libglib2.0-dev (>= 2.35.1),29 libgirepository1.0-dev,
30 libgnome-bluetooth-dev (>= 3.3.4),30 libglib2.0-dev (>= 2.37.7),
31 libgnome-desktop-3-dev (>= 3.7.5),31 libgnome-desktop-3-dev (>= 3.11.3),
32 libgnome-menu-3-dev,32 libgnome-menu-3-dev,
33 libgnomekbd-dev,33 libgnomekbd-dev (>= 2.91.91),
34 libgoa-1.0-dev (>= 3.10.0),34 libgnome-bluetooth-dev (>= 3.3.4) [linux-any],
35 libaccountsservice-dev (>= 0.6.30),35 libibus-1.0-dev (>= 1.5.2),
36 libgstreamer-plugins-base0.10-dev,36 libgoa-1.0-dev (>= 3.9.90),
37 libgtk-3-dev (>= 3.7.7),37 libgrilo-0.2-dev (>= 0.2.6),
38 libgtk-3-dev (>= 3.11.1),
38 libgtop2-dev,39 libgtop2-dev,
39 libibus-1.0-dev (>= 1.5.0),
40 libkrb5-dev,40 libkrb5-dev,
41 libnm-glib-dev (>= 0.9.8) [linux-any],41 libnm-glib-dev (>= 0.9.8) [linux-any],
42 libnm-glib-vpn-dev (>= 0.9.8) [linux-any], 42 libnm-glib-vpn-dev (>= 0.9.8) [linux-any],
43 libnm-gtk-dev (>= 0.9.7.995) [linux-any],43 libnm-gtk-dev (>= 0.9.8) [linux-any],
44 libnm-util-dev (>= 0.9.8) [linux-any],44 libnm-util-dev (>= 0.9.8) [linux-any],
45 libmm-glib-dev [linux-any],45 libmm-glib-dev [linux-any],
46 libnotify-dev (>= 0.7.3),46 libnotify-dev (>= 0.7.3),
47 libpolkit-gobject-1-dev (>= 0.103),47 libpolkit-gobject-1-dev (>= 0.103),
48 libpulse-dev (>= 1:2.0),48 libpulse-dev,
49 libpwquality-dev,49 libpwquality-dev,
50 libsmbclient-dev,50 libsmbclient-dev (>= 2:3.6.12),
51# libsocialweb-client-dev,51 libupower-glib-dev (>= 0.9.0),
52 libupower-glib-dev (>= 0.9.1),52 libwacom-dev (>= 0.7) [linux-any],
53 libsystemd-login-dev,53 libxi-dev (>= 2:1.2),
54 libwacom-dev (>= 0.7),
55 libx11-dev,54 libx11-dev,
56 libxft-dev (>= 2.1.2),55 libxft-dev (>= 2.1.2),
57 libxkbfile-dev,
58 libxklavier-dev (>= 5.1),56 libxklavier-dev (>= 5.1),
59 libxml2-dev,57 libxml2-dev,
60 locales,58 locales,
61 network-manager-dev (>= 0.9.8) [linux-any],59 network-manager-dev (>= 0.9.8) [linux-any],
62 shared-mime-info,60 shared-mime-info,
63 ttf-ubuntu-font-family,61 ttf-ubuntu-font-family,
64 libwebkitgtk-3.0-dev,
65 libgl1-mesa-dev,62 libgl1-mesa-dev,
66 valac (>= 0.20.0),63 valac (>= 0.20.0),
67Vcs-Bzr: http://code.launchpad.net/~ubuntu-desktop/gnome-control-center/ubuntu64Vcs-Bzr: http://code.launchpad.net/~ubuntu-desktop/gnome-control-center/ubuntu
@@ -73,38 +70,40 @@
73 ${shlibs:Depends},70 ${shlibs:Depends},
74 accountsservice,71 accountsservice,
75 apg,72 apg,
73 colord (>= 0.1.30),
76 desktop-file-utils,74 desktop-file-utils,
77 gkbd-capplet (>= 3.5.90),
78 gnome-control-center-data (<< ${gnome:NextVersion}),75 gnome-control-center-data (<< ${gnome:NextVersion}),
79 gnome-control-center-data (>= ${source:Version}),76 gnome-control-center-data (>= ${source:Version}),
80 gnome-desktop3-data,77 gnome-desktop3-data,
81 gnome-icon-theme (>= 2.24),78 gnome-icon-theme (>= 3.7),
82 gnome-icon-theme-symbolic,79 gnome-icon-theme-symbolic (>= 3.7),
83 gnome-menus (>= 2.12.0),80 gnome-menus (>= 3.7.90),
84 gnome-settings-daemon (>= 3.8.4),81 gnome-settings-daemon (>= 3.7.91),
85 gsettings-desktop-schemas (>= 3.5.91),82 gsettings-desktop-schemas (>= 3.9.91),
86Recommends: cups-pk-helper,83Recommends: cups-pk-helper,
87 gnome-session-bin,84 gnome-control-center-shared-data,
88 ubuntu-system-service,85# gnome-session-bin,
86 gnome-user-share,
87 gkbd-capplet,
89 ibus (>= 1.5.0),88 ibus (>= 1.5.0),
90 iso-codes,89 iso-codes,
90 libcanberra-pulse,
91 mousetweaks,91 mousetweaks,
92 ntp,
92 policykit-1-gnome,93 policykit-1-gnome,
93 libcanberra-pulse,
94 system-config-printer-gnome,94 system-config-printer-gnome,
95 gnome-control-center-shared-data95 cracklib-runtime,
96Replaces: gnome-bluetooth (<< 3.4.0)96 ubuntu-system-service,
97Breaks: gnome-power-manager (<< 3.0),97Breaks: gnome-power-manager (<< 3.0),
98 gnome-session (<< 3.0),98 gnome-session (<< 3.0),
99 libglib2.0-0 (<< 2.28.6-2),99 libglib2.0-0 (<< 2.28.6-2),
100 gnome-bluetooth (<< 3.4.0),100 gnome-bluetooth (<< 3.4),
101 compiz (<< 1:0.9.8+bzr330),101Replaces: gnome-bluetooth (<< 3.4.0)
102 metacity (<< 1:2.34.2),
103 unity (<< 6.2-0ubuntu2~),
104Suggests: gnome-screensaver | xscreensaver,102Suggests: gnome-screensaver | xscreensaver,
105 gnome-user-guide | ubuntu-docs,103 gnome-user-guide | ubuntu-docs,
106 gstreamer0.10-pulseaudio,104 gstreamer0.10-pulseaudio,
107 libcanberra-gtk-module,105 libcanberra-gtk-module,
106 libcanberra-gtk3-module,
108 x11-xserver-utils107 x11-xserver-utils
109Description: utilities to configure the GNOME desktop108Description: utilities to configure the GNOME desktop
110 This package contains configuration applets for the GNOME desktop,109 This package contains configuration applets for the GNOME desktop,
@@ -134,11 +133,13 @@
134 gdm3 (<< 3.0),133 gdm3 (<< 3.0),
135 gnome-media-common (<< 2.91),134 gnome-media-common (<< 2.91),
136 gnome-power-manager (<< 3.2),135 gnome-power-manager (<< 3.2),
137 gnome-settings-daemon (<< 3.0)136 gnome-settings-daemon (<< 3.0),
137 gnome-control-center (<< 1:3.7.92-2~)
138Breaks: gdm (<< 3.0),138Breaks: gdm (<< 3.0),
139 gdm3 (<< 3.0),139 gdm3 (<< 3.0),
140 gnome-power-manager (<< 3.2),140 gnome-power-manager (<< 3.2),
141 gnome-settings-daemon (<< 3.0)141 gnome-settings-daemon (<< 3.0),
142 gnome-control-center (<< 1:3.7.92-2~)
142Description: configuration applets for GNOME - data files143Description: configuration applets for GNOME - data files
143 This package contains data files (icons, pixmaps, locales files) needed by144 This package contains data files (icons, pixmaps, locales files) needed by
144 the configuration applets in the gnome-control-center package.145 the configuration applets in the gnome-control-center package.
145146
=== added file 'debian/gnome-control-center-data.maintscript'
--- debian/gnome-control-center-data.maintscript 1970-01-01 00:00:00 +0000
+++ debian/gnome-control-center-data.maintscript 2014-09-30 05:25:02 +0000
@@ -0,0 +1,2 @@
1rm_conffile /etc/xdg/menus/gnomecc.menu 1:3.8.3-2~
2rm_conffile /etc/xdg/autostart/gnome-sound-applet.desktop 1:3.8.3-2~
03
=== added file 'debian/gnome-control-center-data.postinst'
--- debian/gnome-control-center-data.postinst 1970-01-01 00:00:00 +0000
+++ debian/gnome-control-center-data.postinst 2014-09-30 05:25:02 +0000
@@ -0,0 +1,8 @@
1#! /bin/sh
2set -e
3
4if [ "$1" = configure ] && dpkg --compare-versions "$2" lt-nl "1:2.26"; then
5 rm -f /etc/xdg/autostart/gnome-at-session.desktop
6fi
7
8#DEBHELPER#
09
=== modified file 'debian/gnome-control-center.install'
--- debian/gnome-control-center.install 2014-02-12 00:19:03 +0000
+++ debian/gnome-control-center.install 2014-09-30 05:25:02 +0000
@@ -1,3 +1,8 @@
1usr/bin/gnome-control-center1usr/bin
2usr/share/applications2usr/share/applications
3usr/share/man3usr/share/man
4usr/lib/gnome-control-center
5usr/share/bash-completion
6usr/share/dbus-1
7usr/share/gnome-shell
8
49
=== modified file 'debian/gnome-control-center.pkla'
--- debian/gnome-control-center.pkla 2013-04-10 20:04:02 +0000
+++ debian/gnome-control-center.pkla 2014-09-30 05:25:02 +0000
@@ -1,4 +1,4 @@
1[Allow admins to set the hostname without prompting]1[Allow admins to set the hostname,locale,keyboard,date/time without prompting]
2Identity=unix-group:admin;unix-group:sudo2Identity=unix-group:admin;unix-group:sudo
3Action=org.freedesktop.hostname1.set-static-hostname;org.freedesktop.hostname1.set-hostname3Action=org.freedesktop.locale1.set-locale;org.freedesktop.locale1.set-keyboard;org.freedesktop.hostname1.set-static-hostname;org.freedesktop.hostname1.set-hostname;org.gnome.controlcenter.datetime.configure
4ResultActive=yes4ResultActive=yes
55
=== added file 'debian/gnome-control-center.postinst'
--- debian/gnome-control-center.postinst 1970-01-01 00:00:00 +0000
+++ debian/gnome-control-center.postinst 2014-09-30 05:25:02 +0000
@@ -0,0 +1,7 @@
1#! /bin/sh
2set -e
3
4rm -f /etc/gnome-vfs-2.0/modules/theme-method.conf
5rm -f /etc/gnome-vfs-2.0/modules/font-method.conf
6
7#DEBHELPER#
08
=== added file 'debian/gnome-control-center.postrm'
--- debian/gnome-control-center.postrm 1970-01-01 00:00:00 +0000
+++ debian/gnome-control-center.postrm 2014-09-30 05:25:02 +0000
@@ -0,0 +1,12 @@
1#! /bin/sh
2set -e
3
4case "$1" in
5purge)
6 rm -f /etc/gnome-settings-daemon/xrandr/monitors.xml || true
7 ;;
8*)
9 ;;
10esac
11
12#DEBHELPER#
013
=== added file 'debian/patches/01_menu_category.patch'
--- debian/patches/01_menu_category.patch 1970-01-01 00:00:00 +0000
+++ debian/patches/01_menu_category.patch 2014-09-30 05:25:02 +0000
@@ -0,0 +1,13 @@
1diff --git a/shell/gnome-control-center.desktop.in.in b/shell/gnome-control-center.desktop.in.in
2index a7160bd..b8c543f 100644
3--- a/shell/gnome-control-center.desktop.in.in
4+++ b/shell/gnome-control-center.desktop.in.in
5@@ -5,7 +5,7 @@ Exec=gnome-control-center --overview
6 Terminal=false
7 Type=Application
8 StartupNotify=true
9-Categories=GNOME;GTK;System;
10+Categories=GNOME;GTK;Settings;
11 OnlyShowIn=GNOME;Unity;
12 X-GNOME-Bugzilla-Bugzilla=GNOME
13 X-GNOME-Bugzilla-Product=gnome-control-center
014
=== removed file 'debian/patches/02_new_goa.patch'
--- debian/patches/02_new_goa.patch 2014-02-12 00:19:03 +0000
+++ debian/patches/02_new_goa.patch 1970-01-01 00:00:00 +0000
@@ -1,46 +0,0 @@
1Index: gnome-control-center-3.8.6/panels/online-accounts/cc-online-accounts-panel.c
2===================================================================
3--- gnome-control-center-3.8.6.orig/panels/online-accounts/cc-online-accounts-panel.c 2013-12-12 14:00:10.759923318 +1300
4+++ gnome-control-center-3.8.6/panels/online-accounts/cc-online-accounts-panel.c 2013-12-12 14:00:10.755923318 +1300
5@@ -617,8 +617,11 @@
6 /* ---------------------------------------------------------------------------------------------------- */
7
8 static void
9-add_account (CcGoaPanel *panel)
10+get_all_providers_cb (GObject *source,
11+ GAsyncResult *res,
12+ gpointer user_data)
13 {
14+ CcGoaPanel *panel = CC_GOA_PANEL (user_data);
15 GtkWindow *parent;
16 GtkWidget *dialog;
17 gint response;
18@@ -629,12 +632,14 @@
19
20 providers = NULL;
21
22+ if (!goa_provider_get_all_finish (&providers, res, NULL))
23+ goto out;
24+
25 parent = GTK_WINDOW (cc_shell_get_toplevel (cc_panel_get_shell (CC_PANEL (panel))));
26
27 dialog = goa_panel_add_account_dialog_new (panel->client);
28 gtk_window_set_transient_for (GTK_WINDOW (dialog), parent);
29
30- providers = goa_provider_get_all ();
31 for (l = providers; l != NULL; l = l->next)
32 {
33 GoaProvider *provider;
34@@ -697,6 +703,12 @@
35 g_list_free (providers);
36 }
37
38+static void
39+add_account (CcGoaPanel *panel)
40+{
41+ goa_provider_get_all (get_all_providers_cb, panel);
42+}
43+
44 /* ---------------------------------------------------------------------------------------------------- */
45
46 static void
470
=== added file 'debian/patches/06_handle_passwd_with_ldap.patch'
--- debian/patches/06_handle_passwd_with_ldap.patch 1970-01-01 00:00:00 +0000
+++ debian/patches/06_handle_passwd_with_ldap.patch 2014-09-30 05:25:02 +0000
@@ -0,0 +1,19 @@
1Description: Handle the case where passwd re-asks for the current password when it was entered incorrectly (when using LDAP)
2 Based on a patch from Ryan Tandy
3Author: Chris Coulson <chris.coulson@canonical.com>
4Bug-Ubuntu: https:/launchpad.net/bugs/607357
5Forwarded: no
6
7Index: gnome-control-center-3.3.91/panels/user-accounts/run-passwd.c
8===================================================================
9--- gnome-control-center-3.3.91.orig/panels/user-accounts/run-passwd.c 2011-08-25 17:09:31.000000000 +0200
10+++ gnome-control-center-3.3.91/panels/user-accounts/run-passwd.c 2012-03-06 17:52:14.335082975 +0100
11@@ -408,7 +408,7 @@
12
13 if (is_string_complete (str->str, "assword: ", "failure", "wrong", "error", NULL)) {
14
15- if (strstr (str->str, "assword: ") != NULL) {
16+ if (strstr (str->str, "assword: ") != NULL && strstr (str->str, "incorrect") == NULL) {
17 /* Authentication successful */
18
19 passwd_handler->backend_state = PASSWD_STATE_NEW;
020
=== added file 'debian/patches/07_polkit_wheel_sudo_group.patch'
--- debian/patches/07_polkit_wheel_sudo_group.patch 1970-01-01 00:00:00 +0000
+++ debian/patches/07_polkit_wheel_sudo_group.patch 2014-09-30 05:25:02 +0000
@@ -0,0 +1,16 @@
1Description: The "wheel" group is not existing on debian, check the "sudo" one instead
2Author: Laurent Bigonville <bigon@debian.org>
3Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=760722
4Forwarded: not-needed
5
6--- a/panels/common/gnome-control-center.rules
7+++ b/panels/common/gnome-control-center.rules
8@@ -6,7 +6,7 @@ polkit.addRule(function(action, subject)
9 action.id == "org.gnome.controlcenter.datetime.configure") &&
10 subject.local &&
11 subject.active &&
12- subject.isInGroup ("wheel")) {
13+ subject.isInGroup ("sudo")) {
14 return polkit.Result.YES;
15 }
16 });
017
=== modified file 'debian/patches/52_region_language.patch'
--- debian/patches/52_region_language.patch 2014-02-12 00:19:03 +0000
+++ debian/patches/52_region_language.patch 2014-09-30 05:25:02 +0000
@@ -140,7 +140,7 @@
140 g_debug ("Trying to select lang '%s' in treeview", lang);140 g_debug ("Trying to select lang '%s' in treeview", lang);
141 model = gtk_tree_view_get_model (treeview);141 model = gtk_tree_view_get_model (treeview);
142 found = FALSE;142 found = FALSE;
143@@ -513,6 +574,7 @@143@@ -518,6 +579,7 @@
144 return lang;144 return lang;
145 }145 }
146 146
@@ -148,7 +148,7 @@
148 static void148 static void
149 add_other_users_language (GHashTable *ht)149 add_other_users_language (GHashTable *ht)
150 {150 {
151@@ -573,6 +635,7 @@151@@ -578,6 +640,7 @@
152 152
153 g_object_unref (proxy);153 g_object_unref (proxy);
154 }154 }
@@ -156,7 +156,7 @@
156 156
157 static void157 static void
158 insert_language (GHashTable *ht,158 insert_language (GHashTable *ht,
159@@ -596,10 +659,10 @@159@@ -601,10 +664,10 @@
160 160
161 g_debug ("We have translations for %s", lang);161 g_debug ("We have translations for %s", lang);
162 162
@@ -169,7 +169,7 @@
169 169
170 label_own_lang = gnome_get_language_from_locale (key, key);170 label_own_lang = gnome_get_language_from_locale (key, key);
171 label_current_lang = gnome_get_language_from_locale (key, NULL);171 label_current_lang = gnome_get_language_from_locale (key, NULL);
172@@ -625,9 +688,18 @@172@@ -630,9 +693,18 @@
173 cc_common_language_get_initial_languages (void)173 cc_common_language_get_initial_languages (void)
174 {174 {
175 GHashTable *ht;175 GHashTable *ht;
@@ -188,7 +188,7 @@
188 insert_language (ht, "en_US");188 insert_language (ht, "en_US");
189 insert_language (ht, "en_GB");189 insert_language (ht, "en_GB");
190 insert_language (ht, "de_DE");190 insert_language (ht, "de_DE");
191@@ -637,7 +709,7 @@191@@ -642,7 +714,7 @@
192 insert_language (ht, "ja_JP");192 insert_language (ht, "ja_JP");
193 insert_language (ht, "ru_RU");193 insert_language (ht, "ru_RU");
194 insert_language (ht, "ar_EG");194 insert_language (ht, "ar_EG");
@@ -197,7 +197,7 @@
197 return ht;197 return ht;
198 }198 }
199 199
200@@ -651,10 +723,10 @@200@@ -656,10 +728,10 @@
201 ht = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);201 ht = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
202 202
203 /* Add the languages used by other users on the system */203 /* Add the languages used by other users on the system */
@@ -210,7 +210,7 @@
210 if (g_hash_table_lookup (ht, name) == NULL) {210 if (g_hash_table_lookup (ht, name) == NULL) {
211 language = gnome_get_language_from_locale (name, NULL);211 language = gnome_get_language_from_locale (name, NULL);
212 g_hash_table_insert (ht, name, language);212 g_hash_table_insert (ht, name, language);
213@@ -703,6 +775,28 @@213@@ -708,6 +780,28 @@
214 return ht;214 return ht;
215 }215 }
216 216
@@ -239,7 +239,7 @@
239 static void239 static void
240 foreach_user_lang_cb (gpointer key,240 foreach_user_lang_cb (gpointer key,
241 gpointer value,241 gpointer value,
242@@ -734,7 +828,7 @@242@@ -739,7 +833,7 @@
243 user_langs = cc_common_language_get_initial_languages ();243 user_langs = cc_common_language_get_initial_languages ();
244 244
245 /* Add the current locale first */245 /* Add the current locale first */
@@ -248,7 +248,7 @@
248 display = g_hash_table_lookup (user_langs, name);248 display = g_hash_table_lookup (user_langs, name);
249 if (!display) {249 if (!display) {
250 insert_language (user_langs, name);250 insert_language (user_langs, name);
251@@ -750,8 +844,8 @@251@@ -755,8 +849,8 @@
252 g_hash_table_foreach (user_langs, (GHFunc) foreach_user_lang_cb, store);252 g_hash_table_foreach (user_langs, (GHFunc) foreach_user_lang_cb, store);
253 253
254 /* And now the "Otherā€¦" selection */254 /* And now the "Otherā€¦" selection */
@@ -287,8 +287,8 @@
287 * Copyright (C) 2013 Red Hat, Inc287 * Copyright (C) 2013 Red Hat, Inc
288 *288 *
289 * This program is free software; you can redistribute it and/or modify289 * This program is free software; you can redistribute it and/or modify
290@@ -79,7 +78,9 @@290@@ -335,7 +334,9 @@
291 egg_list_box_refilter (EGG_LIST_BOX (priv->language_list));291 gtk_list_box_invalidate_filter (GTK_LIST_BOX (priv->language_list));
292 }292 }
293 } else {293 } else {
294+294+
@@ -299,7 +299,7 @@
299 g_list_free (children);299 g_list_free (children);
300--- a/panels/region/cc-format-chooser.c300--- a/panels/region/cc-format-chooser.c
301+++ b/panels/region/cc-format-chooser.c301+++ b/panels/region/cc-format-chooser.c
302@@ -170,7 +170,9 @@302@@ -168,7 +168,9 @@
303 303
304 } else {304 } else {
305 /* mark as unselected */305 /* mark as unselected */
@@ -311,7 +311,7 @@
311 g_list_free (children);311 g_list_free (children);
312--- a/panels/region/cc-input-chooser.c312--- a/panels/region/cc-input-chooser.c
313+++ b/panels/region/cc-input-chooser.c313+++ b/panels/region/cc-input-chooser.c
314@@ -909,7 +909,7 @@314@@ -891,7 +891,7 @@
315 lang_code != NULL &&315 lang_code != NULL &&
316 country_code != NULL)316 country_code != NULL)
317 {317 {
@@ -320,7 +320,7 @@
320 320
321 info = g_hash_table_lookup (priv->locales, locale);321 info = g_hash_table_lookup (priv->locales, locale);
322 if (info)322 if (info)
323@@ -1034,7 +1034,7 @@323@@ -1016,7 +1016,7 @@
324 if (!gnome_parse_locale (*locale, &lang_code, &country_code, NULL, NULL))324 if (!gnome_parse_locale (*locale, &lang_code, &country_code, NULL, NULL))
325 continue;325 continue;
326 326
@@ -331,7 +331,7 @@
331 g_free (simple_locale);331 g_free (simple_locale);
332--- a/panels/region/cc-region-panel.c332--- a/panels/region/cc-region-panel.c
333+++ b/panels/region/cc-region-panel.c333+++ b/panels/region/cc-region-panel.c
334@@ -404,14 +404,55 @@334@@ -424,6 +424,47 @@
335 }335 }
336 336
337 static void337 static void
@@ -379,17 +379,15 @@
379 update_region (CcRegionPanel *self,379 update_region (CcRegionPanel *self,
380 const gchar *region)380 const gchar *region)
381 {381 {
382- CcRegionPanelPrivate *priv = self->priv;382@@ -434,6 +475,7 @@
383+ CcRegionPanelPrivate *priv = self->priv;383 } else {
384 384 if (g_strcmp0 (region, priv->region) == 0)
385 if (g_strcmp0 (region, priv->region) == 0)385 return;
386 return;386+ set_formats_locale(region);
387-387 g_settings_set_string (priv->locale_settings, KEY_REGION, region);
388+ set_formats_locale(region);388 if (priv->login_auto_apply)
389 g_settings_set_string (priv->locale_settings, KEY_REGION, region);389 set_system_region (self, region);
390 maybe_notify (self, LC_TIME, region);390@@ -595,7 +637,7 @@
391 }
392@@ -545,7 +586,7 @@
393 CcRegionPanelPrivate *priv = self->priv;391 CcRegionPanelPrivate *priv = self->priv;
394 392
395 g_free (priv->region);393 g_free (priv->region);
@@ -398,20 +396,21 @@
398 update_region_label (self);396 update_region_label (self);
399 }397 }
400 398
401@@ -576,14 +617,16 @@399@@ -628,15 +670,17 @@
400 update_language_from_user (CcRegionPanel *self)
402 {401 {
403 CcRegionPanelPrivate *priv = self->priv;402 CcRegionPanelPrivate *priv = self->priv;
404 const gchar *language;403- const gchar *language;
405-404+ const gchar *language, *locale;
405
406- if (act_user_is_loaded (priv->user))406- if (act_user_is_loaded (priv->user))
407+ const gchar *locale;
408+ if (act_user_is_loaded (priv->user)){407+ if (act_user_is_loaded (priv->user)){
409 language = act_user_get_language (priv->user);408 language = act_user_get_language (priv->user);
410+ cc_common_language_get_locale (language, &locale);409+ cc_common_language_get_locale (language, &locale);
411+ }410+ }
412 else411 else
413- language = "en_US.utf-8";412- language = setlocale (LC_MESSAGES, NULL);
414+ locale = "en_US.UTF-8";413+ locale = setlocale (LC_MESSAGES, NULL);
415 414
416 g_free (priv->language);415 g_free (priv->language);
417- priv->language = g_strdup (language);416- priv->language = g_strdup (language);
@@ -419,7 +418,7 @@
419 update_language_label (self);418 update_language_label (self);
420 }419 }
421 420
422@@ -1428,6 +1471,16 @@421@@ -1484,6 +1528,16 @@
423 update_buttons (self);422 update_buttons (self);
424 }423 }
425 424
@@ -436,7 +435,7 @@
436 static void435 static void
437 on_localed_properties_changed (GDBusProxy *proxy,436 on_localed_properties_changed (GDBusProxy *proxy,
438 GVariant *changed_properties,437 GVariant *changed_properties,
439@@ -1442,34 +1495,49 @@438@@ -1498,34 +1552,50 @@
440 const gchar **strv;439 const gchar **strv;
441 gsize len;440 gsize len;
442 gint i;441 gint i;
@@ -468,11 +467,12 @@
468+ g_free (strv);467+ g_free (strv);
469+468+
470 if (!lang) {469 if (!lang) {
471- lang = "";470- lang = setlocale (LC_MESSAGES, NULL);
472+ lang = g_strdup ("en_US.UTF-8");471+ lang = g_strdup ("en_US.UTF-8");
473 }472 }
474- if (!messages) {473- if (!messages) {
475- messages = lang;474- messages = lang;
475+
476+ if (!language) {476+ if (!language) {
477+ if (messages)477+ if (messages)
478+ language = g_strdup (messages);478+ language = g_strdup (messages);
@@ -496,7 +496,7 @@
496 496
497 update_language_label (self);497 update_language_label (self);
498 }498 }
499@@ -1539,29 +1607,28 @@499@@ -1595,29 +1665,28 @@
500 CcRegionPanelPrivate *priv = self->priv;500 CcRegionPanelPrivate *priv = self->priv;
501 GVariantBuilder *b;501 GVariantBuilder *b;
502 gchar *s;502 gchar *s;
@@ -542,7 +542,7 @@
542 g_variant_new ("(asb)", b, TRUE),542 g_variant_new ("(asb)", b, TRUE),
543--- a/panels/user-accounts/um-user-panel.c543--- a/panels/user-accounts/um-user-panel.c
544+++ b/panels/user-accounts/um-user-panel.c544+++ b/panels/user-accounts/um-user-panel.c
545@@ -697,8 +697,9 @@545@@ -701,8 +701,9 @@
546 cc_common_language_add_user_languages (model);546 cc_common_language_add_user_languages (model);
547 547
548 lang = g_strdup (act_user_get_language (user));548 lang = g_strdup (act_user_get_language (user));
@@ -553,7 +553,7 @@
553 if (cc_common_language_get_iter_for_language (model, lang, &iter))553 if (cc_common_language_get_iter_for_language (model, lang, &iter))
554 um_editable_combo_set_active_iter (UM_EDITABLE_COMBO (widget), &iter);554 um_editable_combo_set_active_iter (UM_EDITABLE_COMBO (widget), &iter);
555 g_free (lang);555 g_free (lang);
556@@ -824,8 +825,9 @@556@@ -828,8 +829,9 @@
557 }557 }
558 else {558 else {
559 lang = g_strdup (act_user_get_language (user));559 lang = g_strdup (act_user_get_language (user));
@@ -564,7 +564,7 @@
564 }564 }
565 }565 }
566 cc_common_language_get_iter_for_language (model, lang, &iter);566 cc_common_language_get_iter_for_language (model, lang, &iter);
567@@ -845,6 +847,7 @@567@@ -849,6 +851,7 @@
568 GtkTreeModel *model;568 GtkTreeModel *model;
569 GtkTreeIter iter;569 GtkTreeIter iter;
570 gchar *lang;570 gchar *lang;
@@ -572,7 +572,7 @@
572 ActUser *user;572 ActUser *user;
573 573
574 if (!um_editable_combo_get_active_iter (combo, &iter))574 if (!um_editable_combo_get_active_iter (combo, &iter))
575@@ -855,8 +858,10 @@575@@ -859,8 +862,10 @@
576 model = um_editable_combo_get_model (combo);576 model = um_editable_combo_get_model (combo);
577 577
578 gtk_tree_model_get (model, &iter, 0, &lang, -1);578 gtk_tree_model_get (model, &iter, 0, &lang, -1);
579579
=== modified file 'debian/patches/99_add_lock-on-suspend.patch'
--- debian/patches/99_add_lock-on-suspend.patch 2014-02-12 00:19:03 +0000
+++ debian/patches/99_add_lock-on-suspend.patch 2014-09-30 05:25:02 +0000
@@ -12,11 +12,9 @@
12 panels/privacy/privacy.ui | 31 +++++++++++++++++++++++++++++++12 panels/privacy/privacy.ui | 31 +++++++++++++++++++++++++++++++
13 2 files changed, 36 insertions(+)13 2 files changed, 36 insertions(+)
1414
15diff --git a/panels/privacy/cc-privacy-panel.c b/panels/privacy/cc-privacy-panel.c
16index d92b9e4..fb1be4c 100644
17--- a/panels/privacy/cc-privacy-panel.c15--- a/panels/privacy/cc-privacy-panel.c
18+++ b/panels/privacy/cc-privacy-panel.c16+++ b/panels/privacy/cc-privacy-panel.c
19@@ -299,6 +299,11 @@ add_screen_lock (CcPrivacyPanel *self)17@@ -276,6 +276,11 @@
20 g_settings_bind (self->priv->notification_settings, "show-in-lock-screen",18 g_settings_bind (self->priv->notification_settings, "show-in-lock-screen",
21 w, "active",19 w, "active",
22 G_SETTINGS_BIND_DEFAULT);20 G_SETTINGS_BIND_DEFAULT);
@@ -28,11 +26,9 @@
28 }26 }
29 27
30 static void28 static void
31diff --git a/panels/privacy/privacy.ui b/panels/privacy/privacy.ui
32index ec62b70..b5d43f4 100644
33--- a/panels/privacy/privacy.ui29--- a/panels/privacy/privacy.ui
34+++ b/panels/privacy/privacy.ui30+++ b/panels/privacy/privacy.ui
35@@ -612,6 +612,37 @@31@@ -653,6 +653,37 @@
36 <property name="height">1</property>32 <property name="height">1</property>
37 </packing>33 </packing>
38 </child>34 </child>
@@ -70,6 +66,3 @@
70 </object>66 </object>
71 <packing>67 <packing>
72 <property name="expand">False</property>68 <property name="expand">False</property>
73--
741.8.1.2
75
7669
=== removed file 'debian/patches/gcc_not_in_unity.patch'
--- debian/patches/gcc_not_in_unity.patch 2014-05-06 00:21:13 +0000
+++ debian/patches/gcc_not_in_unity.patch 1970-01-01 00:00:00 +0000
@@ -1,154 +0,0 @@
1--- a/panels/bluetooth/gnome-bluetooth-panel.desktop.in.in
2+++ b/panels/bluetooth/gnome-bluetooth-panel.desktop.in.in
3@@ -6,7 +6,7 @@
4 Terminal=false
5 Type=Application
6 Categories=GTK;GNOME;Settings;X-GNOME-NetworkSettings;HardwareSettings;X-GNOME-Settings-Panel;
7-OnlyShowIn=GNOME;Unity;
8+OnlyShowIn=GNOME;
9 StartupNotify=true
10 X-GNOME-Bugzilla-Bugzilla=GNOME
11 X-GNOME-Bugzilla-Product=gnome-bluetooth
12--- a/panels/color/gnome-color-panel.desktop.in.in
13+++ b/panels/color/gnome-color-panel.desktop.in.in
14@@ -7,7 +7,7 @@
15 Type=Application
16 StartupNotify=true
17 Categories=GNOME;GTK;Settings;X-GNOME-Settings-Panel;HardwareSettings;
18-OnlyShowIn=GNOME;Unity;
19+OnlyShowIn=GNOME
20 X-GNOME-Bugzilla-Bugzilla=GNOME
21 X-GNOME-Bugzilla-Product=gnome-control-center
22 X-GNOME-Bugzilla-Component=color
23--- a/panels/display/gnome-display-panel.desktop.in.in
24+++ b/panels/display/gnome-display-panel.desktop.in.in
25@@ -7,7 +7,7 @@
26 Type=Application
27 StartupNotify=true
28 Categories=GNOME;GTK;Settings;HardwareSettings;X-GNOME-Settings-Panel;
29-OnlyShowIn=GNOME;Unity;
30+OnlyShowIn=GNOME;
31 X-GNOME-Bugzilla-Bugzilla=GNOME
32 X-GNOME-Bugzilla-Product=gnome-control-center
33 X-GNOME-Bugzilla-Component=Screen resolution
34--- a/panels/info/gnome-info-panel.desktop.in.in
35+++ b/panels/info/gnome-info-panel.desktop.in.in
36@@ -7,7 +7,7 @@
37 Type=Application
38 StartupNotify=true
39 Categories=GNOME;GTK;Settings;X-GNOME-SystemSettings;X-GNOME-Settings-Panel;
40-OnlyShowIn=GNOME;Unity;
41+OnlyShowIn=GNOME;
42 X-GNOME-Bugzilla-Bugzilla=GNOME
43 X-GNOME-Bugzilla-Product=gnome-control-center
44 X-GNOME-Bugzilla-Component=info
45--- a/panels/keyboard/gnome-keyboard-panel.desktop.in.in
46+++ b/panels/keyboard/gnome-keyboard-panel.desktop.in.in
47@@ -7,7 +7,7 @@
48 Type=Application
49 StartupNotify=true
50 Categories=GNOME;GTK;Settings;HardwareSettings;X-GNOME-Settings-Panel;
51-OnlyShowIn=GNOME;Unity;
52+OnlyShowIn=GNOME;
53 X-GNOME-Bugzilla-Bugzilla=GNOME
54 X-GNOME-Bugzilla-Product=gnome-control-center
55 X-GNOME-Bugzilla-Component=keyboard
56--- a/panels/mouse/gnome-mouse-panel.desktop.in.in
57+++ b/panels/mouse/gnome-mouse-panel.desktop.in.in
58@@ -7,7 +7,7 @@
59 Type=Application
60 StartupNotify=true
61 Categories=GNOME;GTK;Settings;HardwareSettings;X-GNOME-Settings-Panel;
62-OnlyShowIn=GNOME;Unity;
63+OnlyShowIn=GNOME;
64 X-GNOME-Bugzilla-Bugzilla=GNOME
65 X-GNOME-Bugzilla-Product=gnome-control-center
66 X-GNOME-Bugzilla-Component=mouse
67--- a/panels/network/gnome-network-panel.desktop.in.in
68+++ b/panels/network/gnome-network-panel.desktop.in.in
69@@ -7,7 +7,7 @@
70 Type=Application
71 StartupNotify=true
72 Categories=GNOME;GTK;Settings;HardwareSettings;X-GNOME-Settings-Panel;
73-OnlyShowIn=GNOME;Unity;
74+OnlyShowIn=GNOME;
75 X-GNOME-Bugzilla-Bugzilla=GNOME
76 X-GNOME-Bugzilla-Product=gnome-control-center
77 X-GNOME-Bugzilla-Component=network
78--- a/panels/power/gnome-power-panel.desktop.in.in
79+++ b/panels/power/gnome-power-panel.desktop.in.in
80@@ -7,7 +7,7 @@
81 Type=Application
82 StartupNotify=true
83 Categories=GNOME;GTK;Settings;DesktopSettings;X-GNOME-Settings-Panel;HardwareSettings;
84-OnlyShowIn=GNOME;Unity;
85+OnlyShowIn=GNOME;
86 X-GNOME-Bugzilla-Bugzilla=GNOME
87 X-GNOME-Bugzilla-Product=gnome-control-center
88 X-GNOME-Bugzilla-Component=power
89--- a/panels/universal-access/gnome-universal-access-panel.desktop.in.in
90+++ b/panels/universal-access/gnome-universal-access-panel.desktop.in.in
91@@ -7,7 +7,7 @@
92 Type=Application
93 StartupNotify=true
94 Categories=GNOME;GTK;Settings;X-GNOME-SystemSettings;X-GNOME-Settings-Panel;
95-OnlyShowIn=GNOME;Unity;
96+OnlyShowIn=GNOME;
97 X-GNOME-Bugzilla-Bugzilla=GNOME
98 X-GNOME-Bugzilla-Product=gnome-control-center
99 X-GNOME-Bugzilla-Component=Universal Access
100--- a/panels/user-accounts/data/gnome-user-accounts-panel.desktop.in.in
101+++ b/panels/user-accounts/data/gnome-user-accounts-panel.desktop.in.in
102@@ -7,7 +7,7 @@
103 Type=Application
104 StartupNotify=true
105 Categories=System;Settings;X-GNOME-Settings-Panel;X-GNOME-SystemSettings;
106-OnlyShowIn=GNOME;Unity;
107+OnlyShowIn=GNOME;
108 X-GNOME-Bugzilla-Bugzilla=GNOME
109 X-GNOME-Bugzilla-Product=gnome-control-center
110 X-GNOME-Bugzilla-Component=user-accounts
111--- a/panels/wacom/gnome-wacom-panel.desktop.in.in
112+++ b/panels/wacom/gnome-wacom-panel.desktop.in.in
113@@ -7,7 +7,7 @@
114 Type=Application
115 StartupNotify=true
116 Categories=GNOME;GTK;Settings;HardwareSettings;X-GNOME-Settings-Panel;
117-OnlyShowIn=GNOME;Unity;
118+OnlyShowIn=GNOME;
119 X-GNOME-Bugzilla-Bugzilla=GNOME
120 X-GNOME-Bugzilla-Product=gnome-control-center
121 X-GNOME-Bugzilla-Component=wacom
122--- a/shell/gnome-control-center.desktop.in.in
123+++ b/shell/gnome-control-center.desktop.in.in
124@@ -6,7 +6,7 @@
125 Type=Application
126 StartupNotify=true
127 Categories=GNOME;GTK;System;
128-OnlyShowIn=GNOME;Unity;
129+OnlyShowIn=GNOME;
130 X-GNOME-Bugzilla-Bugzilla=GNOME
131 X-GNOME-Bugzilla-Product=gnome-control-center
132 X-GNOME-Bugzilla-Component=shell
133--- a/panels/region/gnome-region-panel.desktop.in.in
134+++ b/panels/region/gnome-region-panel.desktop.in.in
135@@ -7,7 +7,7 @@
136 Type=Application
137 StartupNotify=true
138 Categories=GNOME;GTK;Settings;DesktopSettings;X-GNOME-Settings-Panel;X-GNOME-PersonalSettings;
139-OnlyShowIn=GNOME;Unity;
140+OnlyShowIn=GNOME;
141 X-GNOME-Bugzilla-Bugzilla=GNOME
142 X-GNOME-Bugzilla-Product=gnome-control-center
143 X-GNOME-Bugzilla-Component=region
144--- a/panels/sound/data/gnome-sound-panel.desktop.in.in
145+++ b/panels/sound/data/gnome-sound-panel.desktop.in.in
146@@ -7,7 +7,7 @@
147 Type=Application
148 StartupNotify=true
149 Categories=GNOME;GTK;Settings;HardwareSettings;X-GNOME-Settings-Panel;
150-OnlyShowIn=GNOME;Unity;
151+OnlyShowIn=GNOME;
152 X-GNOME-Bugzilla-Bugzilla=GNOME
153 X-GNOME-Bugzilla-Product=gnome-control-center
154 X-GNOME-Bugzilla-Component=sound
1550
=== removed file 'debian/patches/git-background-lock-screen.patch'
--- debian/patches/git-background-lock-screen.patch 2014-02-12 00:19:03 +0000
+++ debian/patches/git-background-lock-screen.patch 1970-01-01 00:00:00 +0000
@@ -1,862 +0,0 @@
1From 5e7afdf89c5722f494ecaac6179e2aed256d1976 Mon Sep 17 00:00:00 2001
2From: Bastien Nocera <hadess@hadess.net>
3Date: Mon, 19 Aug 2013 21:00:48 +0200
4Subject: [PATCH] background: Add support for lock screen background
5
6https://bugzilla.gnome.org/show_bug.cgi?id=696166
7---
8 panels/background/background.ui | 289 +++++++++++++++++++++++++-------
9 panels/background/cc-background-panel.c | 208 ++++++++++++++++-------
10 2 files changed, 375 insertions(+), 122 deletions(-)
11
12diff --git a/panels/background/background.ui b/panels/background/background.ui
13index 77e9968..2b72502 100644
14--- a/panels/background/background.ui
15+++ b/panels/background/background.ui
16@@ -4,115 +4,286 @@
17 <object class="GtkHBox" id="background-panel">
18 <property name="visible">True</property>
19 <property name="can_focus">False</property>
20+ <property name="margin_left">6</property>
21+ <property name="margin_right">6</property>
22+ <property name="margin_top">6</property>
23+ <property name="margin_bottom">6</property>
24 <property name="border_width">10</property>
25 <property name="spacing">12</property>
26- <property name="margin-left">6</property>
27- <property name="margin-right">6</property>
28- <property name="margin-top">6</property>
29- <property name="margin-bottom">6</property>
30 <child>
31- <object class="GtkVBox" id="vbox3">
32+ <object class="GtkBox" id="box1">
33 <property name="visible">True</property>
34 <property name="can_focus">False</property>
35- <property name="spacing">6</property>
36+ <property name="margin_top">100</property>
37+ <property name="margin_bottom">100</property>
38 <child>
39- <object class="GtkAspectFrame" id="aspectframe1">
40+ <object class="GtkVBox" id="vbox3">
41 <property name="visible">True</property>
42 <property name="can_focus">False</property>
43- <property name="margin_left">12</property>
44- <property name="label_xalign">0</property>
45- <property name="shadow_type">none</property>
46 <child>
47- <object class="GtkButton" id="background-set-button">
48- <property name="use_action_appearance">False</property>
49+ <object class="GtkAspectFrame" id="aspectframe1">
50 <property name="visible">True</property>
51- <property name="can_focus">True</property>
52- <property name="receives_default">True</property>
53- <property name="valign">center</property>
54+ <property name="can_focus">False</property>
55+ <property name="margin_right">12</property>
56+ <property name="label_xalign">0</property>
57+ <property name="shadow_type">none</property>
58 <child>
59- <object class="GtkDrawingArea" id="background-desktop-drawingarea">
60- <property name="width_request">417</property>
61- <property name="height_request">250</property>
62+ <object class="GtkButton" id="background-set-button">
63 <property name="visible">True</property>
64- <property name="can_focus">False</property>
65+ <property name="can_focus">True</property>
66+ <property name="receives_default">True</property>
67 <property name="valign">center</property>
68- <property name="margin_left">6</property>
69- <property name="margin_right">6</property>
70- <property name="margin_top">6</property>
71- <property name="margin_bottom">6</property>
72- <property name="hexpand">True</property>
73- <property name="vexpand">True</property>
74+ <child>
75+ <object class="GtkBox" id="box2">
76+ <property name="visible">True</property>
77+ <property name="can_focus">False</property>
78+ <property name="orientation">vertical</property>
79+ <child>
80+ <object class="GtkDrawingArea" id="background-desktop-drawingarea">
81+ <property name="width_request">310</property>
82+ <property name="height_request">170</property>
83+ <property name="visible">True</property>
84+ <property name="can_focus">False</property>
85+ <property name="valign">center</property>
86+ <property name="margin_left">6</property>
87+ <property name="margin_right">6</property>
88+ <property name="margin_top">6</property>
89+ <property name="margin_bottom">6</property>
90+ <property name="hexpand">True</property>
91+ <property name="vexpand">True</property>
92+ </object>
93+ <packing>
94+ <property name="expand">False</property>
95+ <property name="fill">True</property>
96+ <property name="position">0</property>
97+ </packing>
98+ </child>
99+ <child>
100+ <object class="GtkLabel" id="label1">
101+ <property name="visible">True</property>
102+ <property name="can_focus">False</property>
103+ <property name="label" translatable="yes">Background</property>
104+ </object>
105+ <packing>
106+ <property name="expand">False</property>
107+ <property name="fill">True</property>
108+ <property name="position">1</property>
109+ </packing>
110+ </child>
111+ </object>
112+ </child>
113 </object>
114 </child>
115 </object>
116+ <packing>
117+ <property name="expand">True</property>
118+ <property name="fill">True</property>
119+ <property name="position">0</property>
120+ </packing>
121 </child>
122- </object>
123- <packing>
124- <property name="expand">True</property>
125- <property name="fill">True</property>
126- <property name="position">0</property>
127- </packing>
128- </child>
129- <child>
130- <object class="GtkHBox" id="bottom-hbox">
131- <property name="visible">True</property>
132- <property name="can_focus">False</property>
133- <property name="spacing">12</property>
134 <child>
135- <object class="GtkHBox" id="hbox2">
136+ <object class="GtkHBox" id="bottom-hbox">
137 <property name="visible">True</property>
138 <property name="can_focus">False</property>
139- <property name="halign">center</property>
140- <property name="spacing">2</property>
141+ <property name="spacing">12</property>
142 <child>
143- <object class="GtkImage" id="slide_image">
144+ <object class="GtkHBox" id="hbox2">
145 <property name="visible">True</property>
146 <property name="can_focus">False</property>
147- <property name="icon_name">slideshow-symbolic</property>
148+ <property name="halign">center</property>
149+ <property name="margin_top">12</property>
150+ <property name="spacing">2</property>
151+ <child>
152+ <object class="GtkImage" id="slide_image">
153+ <property name="visible">True</property>
154+ <property name="can_focus">False</property>
155+ <property name="icon_name">slideshow-symbolic</property>
156+ </object>
157+ <packing>
158+ <property name="expand">False</property>
159+ <property name="fill">True</property>
160+ <property name="position">0</property>
161+ </packing>
162+ </child>
163+ <child>
164+ <object class="GtkLabel" id="strut">
165+ <property name="visible">True</property>
166+ <property name="can_focus">False</property>
167+ <property name="label"> </property>
168+ </object>
169+ <packing>
170+ <property name="expand">False</property>
171+ <property name="fill">True</property>
172+ <property name="position">1</property>
173+ </packing>
174+ </child>
175+ <child>
176+ <object class="GtkLabel" id="slide-label">
177+ <property name="visible">True</property>
178+ <property name="can_focus">False</property>
179+ <property name="xalign">0</property>
180+ <property name="label" translatable="yes" comments="This refers to a slideshow background">Changes throughout the day</property>
181+ </object>
182+ <packing>
183+ <property name="expand">False</property>
184+ <property name="fill">True</property>
185+ <property name="position">1</property>
186+ </packing>
187+ </child>
188 </object>
189 <packing>
190- <property name="expand">False</property>
191+ <property name="expand">True</property>
192 <property name="fill">True</property>
193 <property name="position">0</property>
194 </packing>
195 </child>
196+ </object>
197+ <packing>
198+ <property name="expand">False</property>
199+ <property name="fill">True</property>
200+ <property name="position">2</property>
201+ </packing>
202+ </child>
203+ </object>
204+ <packing>
205+ <property name="expand">False</property>
206+ <property name="fill">True</property>
207+ <property name="position">0</property>
208+ </packing>
209+ </child>
210+ <child>
211+ <object class="GtkVBox" id="vbox1">
212+ <property name="visible">True</property>
213+ <property name="can_focus">False</property>
214+ <child>
215+ <object class="GtkAspectFrame" id="aspectframe2">
216+ <property name="visible">True</property>
217+ <property name="can_focus">False</property>
218+ <property name="margin_left">12</property>
219+ <property name="label_xalign">0</property>
220+ <property name="shadow_type">none</property>
221 <child>
222- <object class="GtkLabel" id="strut">
223+ <object class="GtkButton" id="background-lock-set-button">
224 <property name="visible">True</property>
225- <property name="can_focus">False</property>
226- <property name="label"> </property>
227+ <property name="can_focus">True</property>
228+ <property name="receives_default">True</property>
229+ <property name="valign">center</property>
230+ <child>
231+ <object class="GtkBox" id="box3">
232+ <property name="visible">True</property>
233+ <property name="can_focus">False</property>
234+ <property name="orientation">vertical</property>
235+ <child>
236+ <object class="GtkDrawingArea" id="background-lock-drawingarea">
237+ <property name="width_request">310</property>
238+ <property name="height_request">170</property>
239+ <property name="visible">True</property>
240+ <property name="can_focus">False</property>
241+ <property name="valign">center</property>
242+ <property name="margin_left">6</property>
243+ <property name="margin_right">6</property>
244+ <property name="margin_top">6</property>
245+ <property name="margin_bottom">6</property>
246+ <property name="hexpand">True</property>
247+ <property name="vexpand">True</property>
248+ </object>
249+ <packing>
250+ <property name="expand">False</property>
251+ <property name="fill">True</property>
252+ <property name="position">0</property>
253+ </packing>
254+ </child>
255+ <child>
256+ <object class="GtkLabel" id="label2">
257+ <property name="visible">True</property>
258+ <property name="can_focus">False</property>
259+ <property name="label" translatable="yes">Lock Screen</property>
260+ </object>
261+ <packing>
262+ <property name="expand">False</property>
263+ <property name="fill">True</property>
264+ <property name="position">1</property>
265+ </packing>
266+ </child>
267+ </object>
268+ </child>
269 </object>
270- <packing>
271- <property name="expand">False</property>
272- <property name="fill">True</property>
273- <property name="position">1</property>
274- </packing>
275 </child>
276+ </object>
277+ <packing>
278+ <property name="expand">True</property>
279+ <property name="fill">True</property>
280+ <property name="position">0</property>
281+ </packing>
282+ </child>
283+ <child>
284+ <object class="GtkHBox" id="bottom-hbox1">
285+ <property name="visible">True</property>
286+ <property name="can_focus">False</property>
287+ <property name="spacing">12</property>
288 <child>
289- <object class="GtkLabel" id="slide-label">
290+ <object class="GtkHBox" id="hbox1">
291 <property name="visible">True</property>
292 <property name="can_focus">False</property>
293- <property name="xalign">0</property>
294- <property name="label" translatable="yes" comments="This refers to a slideshow background">Changes throughout the day</property>
295+ <property name="halign">center</property>
296+ <property name="margin_top">12</property>
297+ <property name="spacing">2</property>
298+ <child>
299+ <object class="GtkImage" id="slide_image1">
300+ <property name="visible">True</property>
301+ <property name="can_focus">False</property>
302+ <property name="icon_name">slideshow-symbolic</property>
303+ </object>
304+ <packing>
305+ <property name="expand">False</property>
306+ <property name="fill">True</property>
307+ <property name="position">0</property>
308+ </packing>
309+ </child>
310+ <child>
311+ <object class="GtkLabel" id="strut1">
312+ <property name="visible">True</property>
313+ <property name="can_focus">False</property>
314+ <property name="label"> </property>
315+ </object>
316+ <packing>
317+ <property name="expand">False</property>
318+ <property name="fill">True</property>
319+ <property name="position">1</property>
320+ </packing>
321+ </child>
322+ <child>
323+ <object class="GtkLabel" id="slide-label1">
324+ <property name="visible">True</property>
325+ <property name="can_focus">False</property>
326+ <property name="xalign">0</property>
327+ <property name="label" translatable="yes" comments="This refers to a slideshow background">Changes throughout the day</property>
328+ </object>
329+ <packing>
330+ <property name="expand">False</property>
331+ <property name="fill">True</property>
332+ <property name="position">1</property>
333+ </packing>
334+ </child>
335 </object>
336 <packing>
337- <property name="expand">False</property>
338+ <property name="expand">True</property>
339 <property name="fill">True</property>
340- <property name="position">1</property>
341+ <property name="position">0</property>
342 </packing>
343 </child>
344 </object>
345 <packing>
346- <property name="expand">True</property>
347+ <property name="expand">False</property>
348 <property name="fill">True</property>
349- <property name="position">0</property>
350+ <property name="position">2</property>
351 </packing>
352 </child>
353 </object>
354 <packing>
355 <property name="expand">False</property>
356 <property name="fill">True</property>
357- <property name="position">2</property>
358+ <property name="position">1</property>
359 </packing>
360 </child>
361 </object>
362diff --git a/panels/background/cc-background-panel.c b/panels/background/cc-background-panel.c
363index 14fa244..8de6e23 100644
364--- a/panels/background/cc-background-panel.c
365+++ b/panels/background/cc-background-panel.c
366@@ -38,6 +38,7 @@
367 #include "bg-pictures-source.h"
368
369 #define WP_PATH_ID "org.gnome.desktop.background"
370+#define WP_LOCK_PATH_ID "org.gnome.desktop.screensaver"
371 #define WP_URI_KEY "picture-uri"
372 #define WP_OPTIONS_KEY "picture-options"
373 #define WP_SHADING_KEY "color-shading-type"
374@@ -55,10 +56,12 @@ struct _CcBackgroundPanelPrivate
375 GDBusConnection *connection;
376
377 GSettings *settings;
378+ GSettings *lock_settings;
379
380 GnomeDesktopThumbnailFactory *thumb_factory;
381
382 CcBackgroundItem *current_background;
383+ CcBackgroundItem *current_lock_background;
384
385 GCancellable *copy_cancellable;
386 GCancellable *capture_cancellable;
387@@ -71,6 +74,8 @@ struct _CcBackgroundPanelPrivate
388 };
389
390 #define WID(y) (GtkWidget *) gtk_builder_get_object (priv->builder, y)
391+#define CURRENT_BG (settings == priv->settings ? priv->current_background : priv->current_lock_background)
392+#define SAVE_PATH (settings == priv->settings ? "last-edited.xml" : "last-edited-lock.xml")
393
394 static const char *
395 cc_background_panel_get_help_uri (CcPanel *panel)
396@@ -89,6 +94,7 @@ cc_background_panel_dispose (GObject *object)
397 priv->spinner = NULL;
398
399 g_clear_object (&priv->settings);
400+ g_clear_object (&priv->lock_settings);
401
402 if (priv->copy_cancellable)
403 {
404@@ -131,6 +137,7 @@ cc_background_panel_finalize (GObject *object)
405 CcBackgroundPanelPrivate *priv = CC_BACKGROUND_PANEL (object)->priv;
406
407 g_clear_object (&priv->current_background);
408+ g_clear_object (&priv->current_lock_background);
409
410 G_OBJECT_CLASS (cc_background_panel_parent_class)->finalize (object);
411 }
412@@ -151,59 +158,77 @@ cc_background_panel_class_init (CcBackgroundPanelClass *klass)
413
414 static void
415 update_preview (CcBackgroundPanelPrivate *priv,
416+ GSettings *settings,
417 CcBackgroundItem *item)
418 {
419 gboolean changes_with_time;
420+ CcBackgroundItem *current_background;
421+
422+ current_background = CURRENT_BG;
423
424- if (item && priv->current_background)
425+ if (item && current_background)
426 {
427- g_object_unref (priv->current_background);
428- priv->current_background = cc_background_item_copy (item);
429- cc_background_item_load (priv->current_background, NULL);
430+ g_object_unref (current_background);
431+ current_background = cc_background_item_copy (item);
432+ if (settings == priv->settings)
433+ priv->current_background = current_background;
434+ else
435+ priv->current_lock_background = current_background;
436+ cc_background_item_load (current_background, NULL);
437 }
438
439 changes_with_time = FALSE;
440
441- if (priv->current_background)
442+ if (current_background)
443 {
444- changes_with_time = cc_background_item_changes_with_time (priv->current_background);
445+ changes_with_time = cc_background_item_changes_with_time (current_background);
446 }
447
448- gtk_widget_set_visible (WID ("slide_image"), changes_with_time);
449- gtk_widget_set_visible (WID ("slide-label"), changes_with_time);
450+ if (settings == priv->settings)
451+ {
452+ gtk_widget_set_visible (WID ("slide_image"), changes_with_time);
453+ gtk_widget_set_visible (WID ("slide-label"), changes_with_time);
454+
455+ gtk_widget_queue_draw (WID ("background-desktop-drawingarea"));
456+ }
457+ else
458+ {
459+ gtk_widget_set_visible (WID ("slide_image1"), changes_with_time);
460+ gtk_widget_set_visible (WID ("slide-label1"), changes_with_time);
461
462- gtk_widget_queue_draw (WID ("background-desktop-drawingarea"));
463+ gtk_widget_queue_draw (WID ("background-lock-drawingarea"));
464+ }
465 }
466
467 static char *
468-get_save_path (void)
469+get_save_path (const char *filename)
470 {
471 return g_build_filename (g_get_user_config_dir (),
472 "gnome-control-center",
473 "backgrounds",
474- "last-edited.xml",
475+ filename,
476 NULL);
477 }
478
479 static void
480-update_display_preview (CcBackgroundPanel *panel)
481+update_display_preview (CcBackgroundPanel *panel,
482+ GtkWidget *widget,
483+ CcBackgroundItem *current_background)
484 {
485 CcBackgroundPanelPrivate *priv = panel->priv;
486- GtkWidget *widget;
487 GtkAllocation allocation;
488- const gint preview_width = 416;
489- const gint preview_height = 248;
490+ const gint preview_width = 309;
491+ const gint preview_height = 168;
492 GdkPixbuf *pixbuf;
493 GIcon *icon;
494 cairo_t *cr;
495
496- widget = WID ("background-desktop-drawingarea");
497 gtk_widget_get_allocation (widget, &allocation);
498
499- if (!priv->current_background)
500+ if (!current_background)
501 return;
502
503- icon = cc_background_item_get_frame_thumbnail (priv->current_background,
504+ icon = cc_background_item_get_frame_thumbnail (current_background,
505 priv->thumb_factory,
506 preview_width,
507 preview_height,
508@@ -218,11 +243,14 @@ update_display_preview (CcBackgroundPanel *panel)
509 g_object_unref (pixbuf);
510
511 pixbuf = NULL;
512- if (panel->priv->display_screenshot != NULL)
513- pixbuf = gdk_pixbuf_scale_simple (panel->priv->display_screenshot,
514- preview_width,
515- preview_height,
516- GDK_INTERP_BILINEAR);
517+ if (current_background == priv->current_background &&
518+ panel->priv->display_screenshot != NULL)
519+ {
520+ pixbuf = gdk_pixbuf_scale_simple (panel->priv->display_screenshot,
521+ preview_width,
522+ preview_height,
523+ GDK_INTERP_BILINEAR);
524+ }
525
526 if (pixbuf)
527 {
528@@ -271,6 +299,7 @@ on_screenshot_finished (GObject *source,
529 error->message);
530 g_error_free (error);
531 /* fallback? */
532+ priv = panel->priv;
533 goto out;
534 }
535 g_variant_unref (result);
536@@ -322,7 +351,7 @@ on_screenshot_finished (GObject *source,
537 cairo_surface_destroy (surface);
538
539 out:
540- update_display_preview (panel);
541+ update_display_preview (panel, WID ("background-desktop-drawingarea"), priv->current_background);
542 }
543
544 static gboolean
545@@ -407,6 +436,7 @@ on_preview_draw (GtkWidget *widget,
546 cairo_t *cr,
547 CcBackgroundPanel *panel)
548 {
549+ CcBackgroundPanelPrivate *priv = panel->priv;
550 /* we have another shot in flight or an existing cache */
551 if (panel->priv->display_screenshot == NULL
552 && panel->priv->screenshot_path == NULL)
553@@ -414,13 +444,24 @@ on_preview_draw (GtkWidget *widget,
554 get_screenshot_async (panel);
555 }
556 else
557- update_display_preview (panel);
558+ update_display_preview (panel, widget, priv->current_background);
559+
560+ return TRUE;
561+}
562
563+static gboolean
564+on_lock_preview_draw (GtkWidget *widget,
565+ cairo_t *cr,
566+ CcBackgroundPanel *panel)
567+{
568+ CcBackgroundPanelPrivate *priv = panel->priv;
569+ update_display_preview (panel, widget, priv->current_lock_background);
570 return TRUE;
571 }
572
573 static void
574-reload_current_bg (CcBackgroundPanel *self)
575+reload_current_bg (CcBackgroundPanel *self,
576+ GSettings *settings)
577 {
578 CcBackgroundPanelPrivate *priv;
579 CcBackgroundItem *saved, *configured;
580@@ -429,12 +470,12 @@ reload_current_bg (CcBackgroundPanel *self)
581 priv = self->priv;
582
583 /* Load the saved configuration */
584- uri = get_save_path ();
585+ uri = get_save_path (SAVE_PATH);
586 saved = cc_background_xml_get_item (uri);
587 g_free (uri);
588
589 /* initalise the current background information from settings */
590- uri = g_settings_get_string (priv->settings, WP_URI_KEY);
591+ uri = g_settings_get_string (settings, WP_URI_KEY);
592 if (uri && *uri == '\0')
593 {
594 g_free (uri);
595@@ -450,12 +491,12 @@ reload_current_bg (CcBackgroundPanel *self)
596 configured = cc_background_item_new (uri);
597 g_free (uri);
598
599- pcolor = g_settings_get_string (priv->settings, WP_PCOLOR_KEY);
600- scolor = g_settings_get_string (priv->settings, WP_SCOLOR_KEY);
601+ pcolor = g_settings_get_string (settings, WP_PCOLOR_KEY);
602+ scolor = g_settings_get_string (settings, WP_SCOLOR_KEY);
603 g_object_set (G_OBJECT (configured),
604 "name", _("Current background"),
605- "placement", g_settings_get_enum (priv->settings, WP_OPTIONS_KEY),
606- "shading", g_settings_get_enum (priv->settings, WP_SHADING_KEY),
607+ "placement", g_settings_get_enum (settings, WP_OPTIONS_KEY),
608+ "shading", g_settings_get_enum (settings, WP_SHADING_KEY),
609 "primary-color", pcolor,
610 "secondary-color", scolor,
611 NULL);
612@@ -479,9 +520,17 @@ reload_current_bg (CcBackgroundPanel *self)
613 if (saved != NULL)
614 g_object_unref (saved);
615
616- g_clear_object (&priv->current_background);
617- priv->current_background = configured;
618- cc_background_item_load (priv->current_background, NULL);
619+ if (settings == priv->settings)
620+ {
621+ g_clear_object (&priv->current_background);
622+ priv->current_background = configured;
623+ }
624+ else
625+ {
626+ g_clear_object (&priv->current_lock_background);
627+ priv->current_lock_background = configured;
628+ }
629+ cc_background_item_load (configured, NULL);
630 }
631
632 static gboolean
633@@ -512,6 +561,8 @@ copy_finished_cb (GObject *source_object,
634 CcBackgroundPanel *panel = (CcBackgroundPanel *) pointer;
635 CcBackgroundPanelPrivate *priv = panel->priv;
636 CcBackgroundItem *item;
637+ CcBackgroundItem *current_background;
638+ GSettings *settings;
639
640 if (!g_file_copy_finish (G_FILE (source_object), result, &err))
641 {
642@@ -523,8 +574,10 @@ copy_finished_cb (GObject *source_object,
643 g_error_free (err);
644 }
645 item = g_object_get_data (source_object, "item");
646+ settings = g_object_get_data (source_object, "settings");
647+ current_background = CURRENT_BG;
648
649- g_settings_apply (priv->settings);
650+ g_settings_apply (settings);
651
652 /* the panel may have been destroyed before the callback is run, so be sure
653 * to check the widgets are not NULL */
654@@ -535,19 +588,19 @@ copy_finished_cb (GObject *source_object,
655 priv->spinner = NULL;
656 }
657
658- if (priv->current_background)
659- cc_background_item_load (priv->current_background, NULL);
660+ if (current_background)
661+ cc_background_item_load (current_background, NULL);
662
663 if (priv->builder)
664 {
665 char *filename;
666
667- update_preview (priv, item);
668+ update_preview (priv, settings, item);
669
670 /* Save the source XML if there is one */
671- filename = get_save_path ();
672+ filename = get_save_path (SAVE_PATH);
673 if (create_save_dir ())
674- cc_background_xml_save (priv->current_background, filename);
675+ cc_background_xml_save (current_background, filename);
676 }
677
678 /* remove the reference taken when the copy was set up */
679@@ -556,6 +609,7 @@ copy_finished_cb (GObject *source_object,
680
681 static void
682 set_background (CcBackgroundPanel *panel,
683+ GSettings *settings,
684 CcBackgroundItem *item)
685 {
686 CcBackgroundPanelPrivate *priv = panel->priv;
687@@ -573,8 +627,8 @@ set_background (CcBackgroundPanel *panel,
688
689 if ((flags & CC_BACKGROUND_ITEM_HAS_URI) && uri == NULL)
690 {
691- g_settings_set_enum (priv->settings, WP_OPTIONS_KEY, G_DESKTOP_BACKGROUND_STYLE_NONE);
692- g_settings_set_string (priv->settings, WP_URI_KEY, "");
693+ g_settings_set_enum (settings, WP_OPTIONS_KEY, G_DESKTOP_BACKGROUND_STYLE_NONE);
694+ g_settings_set_string (settings, WP_URI_KEY, "");
695 }
696 else if (cc_background_item_get_source_url (item) != NULL &&
697 cc_background_item_get_needs_download (item))
698@@ -631,6 +685,7 @@ set_background (CcBackgroundPanel *panel,
699 * finished */
700 g_object_ref (panel);
701 g_object_set_data_full (G_OBJECT (source), "item", g_object_ref (item), g_object_unref);
702+ g_object_set_data (G_OBJECT (source), "settings", settings);
703 g_file_copy_async (source, dest, G_FILE_COPY_OVERWRITE,
704 G_PRIORITY_DEFAULT, priv->copy_cancellable,
705 NULL, NULL,
706@@ -639,7 +694,7 @@ set_background (CcBackgroundPanel *panel,
707 dest_uri = g_file_get_uri (dest);
708 g_object_unref (dest);
709
710- g_settings_set_string (priv->settings, WP_URI_KEY, dest_uri);
711+ g_settings_set_string (settings, WP_URI_KEY, dest_uri);
712 g_object_set (G_OBJECT (item),
713 "uri", dest_uri,
714 "needs-download", FALSE,
715@@ -653,37 +708,37 @@ set_background (CcBackgroundPanel *panel,
716 }
717 else
718 {
719- g_settings_set_string (priv->settings, WP_URI_KEY, uri);
720+ g_settings_set_string (settings, WP_URI_KEY, uri);
721 }
722
723 /* Also set the placement if we have a URI and the previous value was none */
724 if (flags & CC_BACKGROUND_ITEM_HAS_PLACEMENT)
725 {
726- g_settings_set_enum (priv->settings, WP_OPTIONS_KEY, cc_background_item_get_placement (item));
727+ g_settings_set_enum (settings, WP_OPTIONS_KEY, cc_background_item_get_placement (item));
728 }
729 else if (uri != NULL)
730 {
731- style = g_settings_get_enum (priv->settings, WP_OPTIONS_KEY);
732+ style = g_settings_get_enum (settings, WP_OPTIONS_KEY);
733 if (style == G_DESKTOP_BACKGROUND_STYLE_NONE)
734- g_settings_set_enum (priv->settings, WP_OPTIONS_KEY, cc_background_item_get_placement (item));
735+ g_settings_set_enum (settings, WP_OPTIONS_KEY, cc_background_item_get_placement (item));
736 }
737
738 if (flags & CC_BACKGROUND_ITEM_HAS_SHADING)
739- g_settings_set_enum (priv->settings, WP_SHADING_KEY, cc_background_item_get_shading (item));
740+ g_settings_set_enum (settings, WP_SHADING_KEY, cc_background_item_get_shading (item));
741
742- g_settings_set_string (priv->settings, WP_PCOLOR_KEY, cc_background_item_get_pcolor (item));
743- g_settings_set_string (priv->settings, WP_SCOLOR_KEY, cc_background_item_get_scolor (item));
744+ g_settings_set_string (settings, WP_PCOLOR_KEY, cc_background_item_get_pcolor (item));
745+ g_settings_set_string (settings, WP_SCOLOR_KEY, cc_background_item_get_scolor (item));
746
747 /* update the preview information */
748 if (save_settings != FALSE)
749 {
750 /* Apply all changes */
751- g_settings_apply (priv->settings);
752+ g_settings_apply (settings);
753
754 /* Save the source XML if there is one */
755- filename = get_save_path ();
756+ filename = get_save_path (SAVE_PATH);
757 if (create_save_dir ())
758- cc_background_xml_save (priv->current_background, filename);
759+ cc_background_xml_save (CURRENT_BG, filename);
760 }
761 }
762
763@@ -699,7 +754,7 @@ on_chooser_dialog_response (GtkDialog *dialog,
764 item = cc_background_chooser_dialog_get_item (CC_BACKGROUND_CHOOSER_DIALOG (dialog));
765 if (item != NULL)
766 {
767- set_background (self, item);
768+ set_background (self, g_object_get_data (G_OBJECT (dialog), "settings"), item);
769 g_object_unref (item);
770 }
771 }
772@@ -708,13 +763,14 @@ on_chooser_dialog_response (GtkDialog *dialog,
773 }
774
775 static void
776-on_background_button_clicked (GtkButton *button,
777- CcBackgroundPanel *self)
778+launch_chooser (CcBackgroundPanel *self,
779+ GSettings *settings)
780 {
781 CcBackgroundPanelPrivate *priv = self->priv;
782 GtkWidget *dialog;
783
784 dialog = cc_background_chooser_dialog_new ();
785+ g_object_set_data (G_OBJECT (dialog), "settings", settings);
786 gtk_window_set_transient_for (GTK_WINDOW (dialog),
787 GTK_WINDOW (gtk_widget_get_toplevel (WID ("background-panel"))));
788 gtk_widget_show (dialog);
789@@ -724,12 +780,26 @@ on_background_button_clicked (GtkButton *button,
790 }
791
792 static void
793+on_background_button_clicked (GtkButton *button,
794+ CcBackgroundPanel *self)
795+{
796+ launch_chooser (self, self->priv->settings);
797+}
798+
799+static void
800+on_lock_button_clicked (GtkButton *button,
801+ CcBackgroundPanel *self)
802+{
803+ launch_chooser (self, self->priv->lock_settings);
804+}
805+
806+static void
807 on_settings_changed (GSettings *settings,
808 gchar *key,
809 CcBackgroundPanel *self)
810 {
811- reload_current_bg (self);
812- update_preview (self->priv, NULL);
813+ reload_current_bg (self, settings);
814+ update_preview (self->priv, settings, NULL);
815 }
816
817 static void
818@@ -760,6 +830,9 @@ cc_background_panel_init (CcBackgroundPanel *self)
819 priv->settings = g_settings_new (WP_PATH_ID);
820 g_settings_delay (priv->settings);
821
822+ priv->lock_settings = g_settings_new (WP_LOCK_PATH_ID);
823+ g_settings_delay (priv->lock_settings);
824+
825 /* add the top level widget */
826 widget = WID ("background-panel");
827
828@@ -768,19 +841,28 @@ cc_background_panel_init (CcBackgroundPanel *self)
829
830 /* setup preview area */
831 widget = WID ("background-desktop-drawingarea");
832- g_signal_connect (widget, "draw", G_CALLBACK (on_preview_draw),
833- self);
834+ g_signal_connect (widget, "draw", G_CALLBACK (on_preview_draw), self);
835+ widget = WID ("background-lock-drawingarea");
836+ g_signal_connect (widget, "draw", G_CALLBACK (on_lock_preview_draw), self);
837
838 priv->copy_cancellable = g_cancellable_new ();
839 priv->capture_cancellable = g_cancellable_new ();
840
841 priv->thumb_factory = gnome_desktop_thumbnail_factory_new (GNOME_DESKTOP_THUMBNAIL_SIZE_LARGE);
842
843- reload_current_bg (self);
844- update_preview (priv, NULL);
845+ /* Load the backgrounds */
846+ reload_current_bg (self, priv->settings);
847+ update_preview (priv, priv->settings, NULL);
848+ reload_current_bg (self, priv->lock_settings);
849+ update_preview (priv, priv->lock_settings, NULL);
850
851+ /* Background settings */
852 g_signal_connect (priv->settings, "changed", G_CALLBACK (on_settings_changed), self);
853+ g_signal_connect (priv->lock_settings, "changed", G_CALLBACK (on_settings_changed), self);
854
855+ /* Background buttons */
856 widget = WID ("background-set-button");
857 g_signal_connect (widget, "clicked", G_CALLBACK (on_background_button_clicked), self);
858+ widget = WID ("background-lock-set-button");
859+ g_signal_connect (widget, "clicked", G_CALLBACK (on_lock_button_clicked), self);
860 }
861--
8621.8.3.1
8630
=== removed file 'debian/patches/git-background-remove-unused-widget.patch'
--- debian/patches/git-background-remove-unused-widget.patch 2014-02-12 00:19:03 +0000
+++ debian/patches/git-background-remove-unused-widget.patch 1970-01-01 00:00:00 +0000
@@ -1,111 +0,0 @@
1From dd56de9653361d17a300aeb7872f152a7e2de356 Mon Sep 17 00:00:00 2001
2From: Bastien Nocera <hadess@hadess.net>
3Date: Mon, 19 Aug 2013 20:55:29 +0200
4Subject: [PATCH] background: Remove unused "lock" preview widgets
5
6https://bugzilla.gnome.org/show_bug.cgi?id=696166
7---
8 panels/background/background.ui | 60 ++++++++++-------------------------------
9 1 file changed, 14 insertions(+), 46 deletions(-)
10
11diff --git a/panels/background/background.ui b/panels/background/background.ui
12index 651cf69..77e9968 100644
13--- a/panels/background/background.ui
14+++ b/panels/background/background.ui
15@@ -30,48 +30,18 @@
16 <property name="receives_default">True</property>
17 <property name="valign">center</property>
18 <child>
19- <object class="GtkBox" id="box1">
20+ <object class="GtkDrawingArea" id="background-desktop-drawingarea">
21+ <property name="width_request">417</property>
22+ <property name="height_request">250</property>
23 <property name="visible">True</property>
24 <property name="can_focus">False</property>
25+ <property name="valign">center</property>
26+ <property name="margin_left">6</property>
27+ <property name="margin_right">6</property>
28+ <property name="margin_top">6</property>
29+ <property name="margin_bottom">6</property>
30 <property name="hexpand">True</property>
31- <property name="spacing">18</property>
32- <child>
33- <object class="GtkDrawingArea" id="background-desktop-drawingarea">
34- <property name="width_request">417</property>
35- <property name="height_request">250</property>
36- <property name="visible">True</property>
37- <property name="can_focus">False</property>
38- <property name="valign">center</property>
39- <property name="margin_left">6</property>
40- <property name="margin_right">6</property>
41- <property name="margin_top">6</property>
42- <property name="margin_bottom">6</property>
43- <property name="hexpand">True</property>
44- <property name="vexpand">True</property>
45- </object>
46- <packing>
47- <property name="expand">True</property>
48- <property name="fill">True</property>
49- <property name="position">0</property>
50- </packing>
51- </child>
52- <child>
53- <object class="GtkDrawingArea" id="background-lock-drawingarea">
54- <property name="can_focus">False</property>
55- <property name="no_show_all">True</property>
56- <property name="valign">center</property>
57- <property name="margin_left">6</property>
58- <property name="margin_right">6</property>
59- <property name="margin_top">6</property>
60- <property name="hexpand">True</property>
61- <property name="vexpand">True</property>
62- </object>
63- <packing>
64- <property name="expand">True</property>
65- <property name="fill">True</property>
66- <property name="position">1</property>
67- </packing>
68- </child>
69+ <property name="vexpand">True</property>
70 </object>
71 </child>
72 </object>
73@@ -107,11 +77,10 @@
74 </packing>
75 </child>
76 <child>
77- <object class="GtkLabel" id="slide-label">
78+ <object class="GtkLabel" id="strut">
79 <property name="visible">True</property>
80 <property name="can_focus">False</property>
81- <property name="xalign">0</property>
82- <property name="label" translatable="yes" comments="This refers to a slideshow background">Changes throughout the day</property>
83+ <property name="label"> </property>
84 </object>
85 <packing>
86 <property name="expand">False</property>
87@@ -120,10 +89,11 @@
88 </packing>
89 </child>
90 <child>
91- <object class="GtkLabel" id="strut">
92+ <object class="GtkLabel" id="slide-label">
93 <property name="visible">True</property>
94 <property name="can_focus">False</property>
95- <property name="label"> </property>
96+ <property name="xalign">0</property>
97+ <property name="label" translatable="yes" comments="This refers to a slideshow background">Changes throughout the day</property>
98 </object>
99 <packing>
100 <property name="expand">False</property>
101@@ -200,8 +170,6 @@
102 <object class="GtkSizeGroup" id="sizegroup">
103 <property name="mode">vertical</property>
104 <widgets>
105- <widget name="sources-combobox"/>
106- <widget name="heading-hbox"/>
107 <widget name="slide-label"/>
108 <widget name="strut"/>
109 </widgets>
110--
1111.8.3.1
1120
=== removed file 'debian/patches/git-online-accounts-chat-providers.patch'
--- debian/patches/git-online-accounts-chat-providers.patch 2014-05-27 07:29:07 +0000
+++ debian/patches/git-online-accounts-chat-providers.patch 1970-01-01 00:00:00 +0000
@@ -1,51 +0,0 @@
1From 570611752e1bf1a0cf01f2581ec03525381066bd Mon Sep 17 00:00:00 2001
2From: Marco Barisione <marco.barisione@collabora.co.uk>
3Date: Thu, 25 Jul 2013 13:08:58 +0100
4Subject: online-accounts: handle unbranded chat providers
5
6https://bugzilla.gnome.org/show_bug.cgi?id=706148
7
8Index: gnome-control-center-3.8.6/panels/online-accounts/cc-online-accounts-add-account-dialog.c
9===================================================================
10--- gnome-control-center-3.8.6.orig/panels/online-accounts/cc-online-accounts-add-account-dialog.c
11+++ gnome-control-center-3.8.6/panels/online-accounts/cc-online-accounts-add-account-dialog.c
12@@ -41,6 +41,7 @@ struct _GoaPanelAddAccountDialogPrivate
13 EggListBox *branded_list_box;
14 EggListBox *contacts_list_box;
15 EggListBox *mail_list_box;
16+ EggListBox *chat_list_box;
17 EggListBox *ticketing_list_box;
18 GError *error;
19 GoaClient *client;
20@@ -48,6 +49,7 @@ struct _GoaPanelAddAccountDialogPrivate
21 GtkListStore *list_store;
22 GtkWidget *contacts_grid;
23 GtkWidget *mail_grid;
24+ GtkWidget *chat_grid;
25 GtkWidget *ticketing_grid;
26 GtkWidget *stack;
27 gboolean add_other;
28@@ -336,6 +338,12 @@ goa_panel_add_account_dialog_init (GoaPa
29 _("Contacts"));
30
31 add_account_dialog_create_group_ui (add_account,
32+ &priv->chat_list_box,
33+ &priv->chat_grid,
34+ grid,
35+ _("Chat"));
36+
37+ add_account_dialog_create_group_ui (add_account,
38 &priv->ticketing_list_box,
39 &priv->ticketing_grid,
40 grid,
41@@ -414,6 +422,10 @@ goa_panel_add_account_dialog_add_provide
42 group_grid = priv->mail_grid;
43 list_box = priv->mail_list_box;
44 break;
45+ case GOA_PROVIDER_GROUP_CHAT:
46+ group_grid = priv->chat_grid;
47+ list_box = priv->chat_list_box;
48+ break;
49 case GOA_PROVIDER_GROUP_TICKETING:
50 group_grid = priv->ticketing_grid;
51 list_box = priv->ticketing_list_box;
520
=== removed file 'debian/patches/git_fix_libbackground_linking.patch'
--- debian/patches/git_fix_libbackground_linking.patch 2014-02-12 00:19:03 +0000
+++ debian/patches/git_fix_libbackground_linking.patch 1970-01-01 00:00:00 +0000
@@ -1,24 +0,0 @@
1From acd7785692109a8ad2590e19302ce34170e610f2 Mon Sep 17 00:00:00 2001
2From: Kalev Lember <kalevlember@gmail.com>
3Date: Wed, 16 Oct 2013 10:01:36 +0000
4Subject: background: Fix test-chooser-dialog build with some linkers
5
6List missing libs for the libbackground-chooser.la convenience library.
7
8https://bugzilla.gnome.org/show_bug.cgi?id=709302
9---
10diff --git a/panels/background/Makefile.am b/panels/background/Makefile.am
11index f24f8b3..2766207 100644
12--- a/panels/background/Makefile.am
13+++ b/panels/background/Makefile.am
14@@ -40,6 +40,8 @@ libbackground_chooser_la_SOURCES = \
15 bg-colors-source.c \
16 bg-colors-source.h
17
18+libbackground_chooser_la_LIBADD = $(PANEL_LIBS) $(BACKGROUND_PANEL_LIBS)
19+
20 libbackground_la_SOURCES = \
21 cc-background-panel.c \
22 cc-background-panel.h
23--
24cgit v0.9.2
250
=== removed file 'debian/patches/git_iconview_columns.patch'
--- debian/patches/git_iconview_columns.patch 2014-02-12 00:19:03 +0000
+++ debian/patches/git_iconview_columns.patch 1970-01-01 00:00:00 +0000
@@ -1,16 +0,0 @@
1# Description: git patch, updated for our layout
2diff --git a/shell/cc-shell-category-view.c b/shell/cc-shell-category-view.c
3index 4b05d8c..d7094ab 100644
4--- a/shell/cc-shell-category-view.c
5+++ b/shell/cc-shell-category-view.c
6@@ -138,6 +138,7 @@ cc_shell_category_view_constructed (GObject *object)
7 gtk_icon_view_set_text_column (GTK_ICON_VIEW (iconview), COL_NAME);
8 gtk_icon_view_set_item_width (GTK_ICON_VIEW (iconview), 100);
9 cc_shell_item_view_update_cells (CC_SHELL_ITEM_VIEW (iconview));
10+ gtk_icon_view_set_columns (GTK_ICON_VIEW (iconview), 7);
11
12 /* create the header if required */
13 if (priv->name)
14--
15cgit v0.9.2
16
170
=== removed file 'debian/patches/git_rename_natural_scrolling.patch'
--- debian/patches/git_rename_natural_scrolling.patch 2014-02-12 00:19:03 +0000
+++ debian/patches/git_rename_natural_scrolling.patch 1970-01-01 00:00:00 +0000
@@ -1,26 +0,0 @@
1From 92148a4be791614eaf4582ea540cff82e27134de Mon Sep 17 00:00:00 2001
2From: Ondrej Holy <oholy@redhat.com>
3Date: Tue, 11 Jun 2013 12:58:28 +0000
4Subject: mouse: Rename "Content sticks to fingers"
5
6...to "Natural scrolling". The previous name was a little bit
7disgusting, and people didn't understand its purpose. Using the
8same name as OSX means that people will either know it, or be less
9afraid of testing it.
10
11https://bugzilla.gnome.org/show_bug.cgi?id=689128
12---
13diff --git a/panels/mouse/gnome-mouse-properties.ui b/panels/mouse/gnome-mouse-properties.ui
14index cd77080..3735903 100644
15--- a/panels/mouse/gnome-mouse-properties.ui
16+++ b/panels/mouse/gnome-mouse-properties.ui
17@@ -655,7 +655,7 @@
18 </child>
19 <child>
20 <object class="GtkCheckButton" id="natural_scroll_toggle">
21- <property name="label" translatable="yes">C_ontent sticks to fingers</property>
22+ <property name="label" translatable="yes" comments="Translators: This switch reverses the scrolling direction for touchpads. The term used comes from OS X so use the same translation if possible. ">_Natural scrolling</property>
23 <property name="use_action_appearance">False</property>
24 <property name="visible">True</property>
25 <property name="can_focus">True</property>
26
270
=== added file 'debian/patches/power-panel-3.10.patch'
--- debian/patches/power-panel-3.10.patch 1970-01-01 00:00:00 +0000
+++ debian/patches/power-panel-3.10.patch 2014-09-30 05:25:02 +0000
@@ -0,0 +1,979 @@
1From b21275ac750465c36370834daf537b8a05adf4ad Mon Sep 17 00:00:00 2001
2From: Tim Lunn <tim@feathertop.org>
3Date: Thu, 18 Sep 2014 09:26:50 +1000
4Subject: [PATCH] Copy power panel from 3.10
5
6---
7 configure.ac | 2 +-
8 panels/power/cc-power-panel.c | 450 ++++++++++++++-------------
9 panels/power/cc-power-panel.h | 3 +-
10 panels/power/gnome-power-panel.desktop.in.in | 1 -
11 panels/power/power.ui | 13 +-
12 5 files changed, 254 insertions(+), 215 deletions(-)
13
14Index: gnome-control-center/configure.ac
15===================================================================
16--- gnome-control-center.orig/configure.ac
17+++ gnome-control-center/configure.ac
18@@ -128,7 +128,7 @@ PKG_CHECK_MODULES(DATETIME_PANEL, $COMMO
19 polkit-gobject-1 >= $POLKIT_REQUIRED_VERSION
20 gdk-pixbuf-2.0 >= $GDKPIXBUF_REQUIRED_VERSION)
21 PKG_CHECK_MODULES(DISPLAY_PANEL, $COMMON_MODULES gnome-desktop-3.0 >= 3.1.0
22- upower-glib >= 0.99.0)
23+ upower-glib >= 0.9.0)
24 PKG_CHECK_MODULES(INFO_PANEL, $COMMON_MODULES libgtop-2.0 gl
25 polkit-gobject-1 >= $POLKIT_REQUIRED_VERSION)
26 PKG_CHECK_MODULES(KEYBOARD_PANEL, $COMMON_MODULES
27@@ -140,7 +140,7 @@ PKG_CHECK_MODULES(MOUSE_PANEL, $COMMON_M
28 PKG_CHECK_MODULES(NETWORK_PANEL, $COMMON_MODULES gmodule-2.0)
29 PKG_CHECK_MODULES(NOTIFICATIONS_PANEL, $COMMON_MODULES libgnome-menu-3.0)
30 PKG_CHECK_MODULES(ONLINE_ACCOUNTS_PANEL, $COMMON_MODULES goa-1.0 goa-backend-1.0 >= $GOA_REQUIRED_VERSION)
31-PKG_CHECK_MODULES(POWER_PANEL, $COMMON_MODULES upower-glib >= 0.99.0
32+PKG_CHECK_MODULES(POWER_PANEL, $COMMON_MODULES upower-glib >= 0.9.0
33 gnome-settings-daemon >= $GSD_REQUIRED_VERSION)
34 PKG_CHECK_MODULES(COLOR_PANEL, $COMMON_MODULES
35 colord >= $COLORD_REQUIRED_VERSION
36Index: gnome-control-center/panels/power/cc-power-panel.c
37===================================================================
38--- gnome-control-center.orig/panels/power/cc-power-panel.c
39+++ gnome-control-center/panels/power/cc-power-panel.c
40@@ -15,7 +15,8 @@
41 * GNU General Public License for more details.
42 *
43 * You should have received a copy of the GNU General Public License
44- * along with this program; if not, see <http://www.gnu.org/licenses/>.
45+ * along with this program; if not, write to the Free Software
46+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
47 *
48 */
49
50@@ -25,6 +26,16 @@
51 #include <glib/gi18n.h>
52 #include <gnome-settings-daemon/gsd-enums.h>
53
54+#ifdef HAVE_BLUETOOTH
55+/* Handling is broken:
56+ * https://bugzilla.gnome.org/show_bug.cgi?id=691730
57+ * https://bugzilla.gnome.org/show_bug.cgi?id=691151
58+ * #include <bluetooth-client.h> */
59+#undef HAVE_BLUETOOTH
60+#endif
61+
62+
63+
64 #ifdef HAVE_NETWORK_MANAGER
65 #include <nm-client.h>
66 #endif
67@@ -59,7 +70,6 @@ struct _CcPowerPanelPrivate
68 GtkBuilder *builder;
69 GtkWidget *automatic_suspend_dialog;
70 UpClient *up_client;
71- GPtrArray *devices;
72 GDBusProxy *screen_proxy;
73 GDBusProxy *kbd_proxy;
74 gboolean has_batteries;
75@@ -93,9 +103,10 @@ struct _CcPowerPanelPrivate
76 GtkWidget *critical_battery_row;
77 GtkWidget *critical_battery_combo;
78
79- GDBusProxy *bt_rfkill;
80- GDBusProxy *bt_properties;
81- GtkWidget *bt_switch;
82+#ifdef HAVE_BLUETOOTH
83+ BluetoothClient *bt_client;
84+ GtkWidget *bt_switch;
85+#endif
86
87 #ifdef HAVE_NETWORK_MANAGER
88 NMClient *nm_client;
89@@ -131,14 +142,10 @@ cc_power_panel_dispose (GObject *object)
90 g_clear_object (&priv->builder);
91 g_clear_object (&priv->screen_proxy);
92 g_clear_object (&priv->kbd_proxy);
93- if (priv->devices)
94- {
95- g_ptr_array_foreach (priv->devices, (GFunc) g_object_unref, NULL);
96- g_clear_pointer (&priv->devices, g_ptr_array_unref);
97- }
98 g_clear_object (&priv->up_client);
99- g_clear_object (&priv->bt_rfkill);
100- g_clear_object (&priv->bt_properties);
101+#ifdef HAVE_BLUETOOTH
102+ g_clear_object (&priv->bt_client);
103+#endif
104 #ifdef HAVE_NETWORK_MANAGER
105 g_clear_object (&priv->nm_client);
106 #endif
107@@ -324,8 +331,8 @@ set_primary (CcPowerPanel *panel, UpDevi
108 box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
109 gtk_container_add (GTK_CONTAINER (row), box);
110
111- gtk_widget_set_margin_start (box, 20);
112- gtk_widget_set_margin_end (box, 20);
113+ gtk_widget_set_margin_left (box, 20);
114+ gtk_widget_set_margin_right (box, 20);
115 gtk_widget_set_margin_top (box, 6);
116 gtk_widget_set_margin_bottom (box, 6);
117
118@@ -380,7 +387,6 @@ add_battery (CcPowerPanel *panel, UpDevi
119 GtkWidget *widget;
120 gchar *s;
121 gchar *native_path;
122- gchar *icon_name;
123 const gchar *name;
124
125 g_object_get (device,
126@@ -388,7 +394,6 @@ add_battery (CcPowerPanel *panel, UpDevi
127 "state", &state,
128 "percentage", &percentage,
129 "native-path", &native_path,
130- "icon-name", &icon_name,
131 NULL);
132
133 if (native_path && strstr (native_path, "BAT0"))
134@@ -404,17 +409,18 @@ add_battery (CcPowerPanel *panel, UpDevi
135 label = gtk_label_new (name);
136 gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
137 gtk_size_group_add_widget (priv->battery_sizegroup, box2);
138- gtk_widget_set_margin_start (label, 20);
139- gtk_widget_set_margin_end (label, 20);
140+ gtk_widget_set_margin_left (label, 20);
141+ gtk_widget_set_margin_right (label, 20);
142 gtk_widget_set_margin_top (label, 6);
143 gtk_widget_set_margin_bottom (label, 6);
144 gtk_box_pack_start (GTK_BOX (box2), label, FALSE, TRUE, 0);
145 gtk_box_pack_start (GTK_BOX (box), box2, FALSE, TRUE, 0);
146
147 #if 1
148- if (icon_name != NULL && *icon_name != '\0')
149+ if (state == UP_DEVICE_STATE_DISCHARGING ||
150+ state == UP_DEVICE_STATE_CHARGING)
151 {
152- widget = gtk_image_new_from_icon_name (icon_name, GTK_ICON_SIZE_BUTTON);
153+ widget = gtk_image_new_from_icon_name ("battery-good-charging-symbolic", GTK_ICON_SIZE_BUTTON);
154 gtk_style_context_add_class (gtk_widget_get_style_context (widget), GTK_STYLE_CLASS_DIM_LABEL);
155 gtk_widget_set_halign (widget, GTK_ALIGN_END);
156 gtk_widget_set_valign (widget, GTK_ALIGN_CENTER);
157@@ -423,8 +429,8 @@ add_battery (CcPowerPanel *panel, UpDevi
158 #endif
159
160 box2 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 12);
161- gtk_widget_set_margin_start (box2, 20);
162- gtk_widget_set_margin_end (box2, 20);
163+ gtk_widget_set_margin_left (box2, 20);
164+ gtk_widget_set_margin_right (box2, 20);
165
166 s = g_strdup_printf ("%d%%", (int)percentage);
167 label = gtk_label_new (s);
168@@ -454,7 +460,6 @@ add_battery (CcPowerPanel *panel, UpDevi
169 gtk_widget_show_all (row);
170
171 g_free (native_path);
172- g_free (icon_name);
173
174 gtk_widget_set_visible (priv->battery_section, TRUE);
175 }
176@@ -578,16 +583,16 @@ add_device (CcPowerPanel *panel, UpDevic
177 widget = gtk_label_new ("");
178 gtk_misc_set_alignment (GTK_MISC (widget), 0.0f, 0.5f);
179 gtk_label_set_markup (GTK_LABEL (widget), description->str);
180- gtk_widget_set_margin_start (widget, 20);
181- gtk_widget_set_margin_end (widget, 20);
182+ gtk_widget_set_margin_left (widget, 20);
183+ gtk_widget_set_margin_right (widget, 20);
184 gtk_widget_set_margin_top (widget, 6);
185 gtk_widget_set_margin_bottom (widget, 6);
186 gtk_box_pack_start (GTK_BOX (hbox), widget, FALSE, TRUE, 0);
187 gtk_size_group_add_widget (priv->battery_sizegroup, widget);
188
189 box2 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 12);
190- gtk_widget_set_margin_start (box2, 20);
191- gtk_widget_set_margin_end (box2, 20);
192+ gtk_widget_set_margin_left (box2, 20);
193+ gtk_widget_set_margin_right (box2, 20);
194 s = g_strdup_printf ("%d%%", (int)percentage);
195 widget = gtk_label_new (s);
196 g_free (s);
197@@ -622,12 +627,26 @@ up_client_changed (UpClient *client,
198 CcPowerPanel *self)
199 {
200 CcPowerPanelPrivate *priv = self->priv;
201+ GPtrArray *devices;
202 GList *children, *l;
203 gint i;
204 UpDeviceKind kind;
205+ UpDeviceState state;
206 guint n_batteries;
207 gboolean on_ups;
208 UpDevice *composite;
209+ gdouble percentage = 0.0;
210+ gdouble energy = 0.0;
211+ gdouble energy_full = 0.0;
212+ gdouble energy_rate = 0.0;
213+ gdouble energy_total = 0.0;
214+ gdouble energy_full_total = 0.0;
215+ gdouble energy_rate_total = 0.0;
216+ gint64 time_to_empty = 0;
217+ gint64 time_to_full = 0;
218+ gboolean is_charging = FALSE;
219+ gboolean is_discharging = FALSE;
220+ gboolean is_fully_charged = TRUE;
221 gchar *s;
222
223 children = gtk_container_get_children (GTK_CONTAINER (priv->battery_list));
224@@ -642,6 +661,8 @@ up_client_changed (UpClient *client,
225 g_list_free (children);
226 gtk_widget_hide (priv->device_section);
227
228+ devices = up_client_get_devices (client);
229+
230 #ifdef TEST_FAKE_DEVICES
231 {
232 static gboolean fake_devices_added = FALSE;
233@@ -653,60 +674,68 @@ up_client_changed (UpClient *client,
234 device = up_device_new ();
235 g_object_set (device,
236 "kind", UP_DEVICE_KIND_MOUSE,
237- "native-path", "dummy:native-path1",
238- "model", "My mouse",
239 "percentage", 71.0,
240 "state", UP_DEVICE_STATE_DISCHARGING,
241 "time-to-empty", 287,
242- "icon-name", "battery-full-symbolic",
243 NULL);
244- g_ptr_array_add (priv->devices, device);
245+ g_ptr_array_add (devices, device);
246 device = up_device_new ();
247 g_object_set (device,
248 "kind", UP_DEVICE_KIND_KEYBOARD,
249- "native-path", "dummy:native-path2",
250- "model", "My keyboard",
251- "percentage", 59.0,
252+ "percentage", 69.0,
253 "state", UP_DEVICE_STATE_DISCHARGING,
254 "time-to-empty", 250,
255- "icon-name", "battery-good-symbolic",
256 NULL);
257- g_ptr_array_add (priv->devices, device);
258+ g_ptr_array_add (devices, device);
259 device = up_device_new ();
260 g_object_set (device,
261 "kind", UP_DEVICE_KIND_BATTERY,
262- "native-path", "dummy:native-path3",
263- "model", "Battery from some factory",
264 "percentage", 100.0,
265 "state", UP_DEVICE_STATE_FULLY_CHARGED,
266 "energy", 55.0,
267 "energy-full", 55.0,
268 "energy-rate", 15.0,
269 "time-to-empty", 400,
270- "icon-name", "battery-full-charged-symbolic",
271 NULL);
272- g_ptr_array_add (priv->devices, device);
273+ g_ptr_array_add (devices, device);
274 }
275 }
276 #endif
277
278 on_ups = FALSE;
279 n_batteries = 0;
280- composite = up_client_get_display_device (priv->up_client);
281- g_object_get (composite, "kind", &kind, NULL);
282- if (kind == UP_DEVICE_KIND_UPS)
283- {
284- on_ups = TRUE;
285- }
286- else
287+ composite = up_device_new ();
288+ g_object_set (composite,
289+ "kind", UP_DEVICE_KIND_BATTERY,
290+ "is-rechargeable", TRUE,
291+ "native-path", "dummy:composite_battery",
292+ "power-supply", TRUE,
293+ "is-present", TRUE,
294+ NULL);
295+ for (i = 0; devices != NULL && i < devices->len; i++)
296 {
297- /* Count the batteries */
298- for (i = 0; priv->devices != NULL && i < priv->devices->len; i++)
299+ UpDevice *device = (UpDevice*) g_ptr_array_index (devices, i);
300+ g_object_get (device,
301+ "kind", &kind,
302+ "state", &state,
303+ "energy", &energy,
304+ "energy-full", &energy_full,
305+ "energy-rate", &energy_rate,
306+ NULL);
307+ if (kind == UP_DEVICE_KIND_UPS && state == UP_DEVICE_STATE_DISCHARGING)
308+ on_ups = TRUE;
309+ if (kind == UP_DEVICE_KIND_BATTERY)
310 {
311- UpDevice *device = (UpDevice*) g_ptr_array_index (priv->devices, i);
312- g_object_get (device, "kind", &kind, NULL);
313- if (kind == UP_DEVICE_KIND_BATTERY)
314- n_batteries++;
315+ if (state == UP_DEVICE_STATE_CHARGING)
316+ is_charging = TRUE;
317+ if (state == UP_DEVICE_STATE_DISCHARGING)
318+ is_discharging = TRUE;
319+ if (state != UP_DEVICE_STATE_FULLY_CHARGED)
320+ is_fully_charged = FALSE;
321+ energy_total += energy;
322+ energy_full_total += energy_full;
323+ energy_rate_total += energy_rate;
324+ n_batteries++;
325 }
326 }
327
328@@ -717,12 +746,42 @@ up_client_changed (UpClient *client,
329 gtk_label_set_label (GTK_LABEL (priv->battery_heading), s);
330 g_free (s);
331
332+ if (energy_full_total > 0.0)
333+ percentage = 100.0 * energy_total / energy_full_total;
334+
335+ if (is_charging)
336+ state = UP_DEVICE_STATE_CHARGING;
337+ else if (is_discharging)
338+ state = UP_DEVICE_STATE_DISCHARGING;
339+ else if (is_fully_charged)
340+ state = UP_DEVICE_STATE_FULLY_CHARGED;
341+ else
342+ state = UP_DEVICE_STATE_UNKNOWN;
343+
344+ if (energy_rate_total > 0)
345+ {
346+ if (state == UP_DEVICE_STATE_DISCHARGING)
347+ time_to_empty = 3600 * (energy_total / energy_rate_total);
348+ else if (state == UP_DEVICE_STATE_CHARGING)
349+ time_to_full = 3600 * ((energy_full_total - energy_total) / energy_rate_total);
350+ }
351+
352+ g_object_set (composite,
353+ "energy", energy_total,
354+ "energy-full", energy_full_total,
355+ "energy-rate", energy_rate_total,
356+ "time-to-empty", time_to_empty,
357+ "time-to-full", time_to_full,
358+ "percentage", percentage,
359+ "state", state,
360+ NULL);
361+
362 if (!on_ups && n_batteries > 1)
363 set_primary (self, composite);
364
365- for (i = 0; priv->devices != NULL && i < priv->devices->len; i++)
366+ for (i = 0; devices != NULL && i < devices->len; i++)
367 {
368- UpDevice *device = (UpDevice*) g_ptr_array_index (priv->devices, i);
369+ UpDevice *device = (UpDevice*) g_ptr_array_index (devices, i);
370 g_object_get (device, "kind", &kind, NULL);
371 if (kind == UP_DEVICE_KIND_LINE_POWER)
372 {
373@@ -746,49 +805,11 @@ up_client_changed (UpClient *client,
374 }
375 }
376
377+ g_clear_pointer (&devices, g_ptr_array_unref);
378 g_object_unref (composite);
379 }
380
381 static void
382-up_client_device_removed (UpClient *client,
383- const char *object_path,
384- CcPowerPanel *self)
385-{
386- CcPowerPanelPrivate *priv = self->priv;
387- guint i;
388-
389- if (priv->devices == NULL)
390- return;
391-
392- for (i = 0; i < priv->devices->len; i++)
393- {
394- UpDevice *device = g_ptr_array_index (priv->devices, i);
395-
396- if (g_strcmp0 (object_path, up_device_get_object_path (device)) == 0)
397- {
398- g_object_unref (device);
399- g_ptr_array_remove_index (priv->devices, i);
400- break;
401- }
402- }
403-
404- up_client_changed (self->priv->up_client, NULL, self);
405-}
406-
407-static void
408-up_client_device_added (UpClient *client,
409- UpDevice *device,
410- CcPowerPanel *self)
411-{
412- CcPowerPanelPrivate *priv = self->priv;
413-
414- g_ptr_array_add (priv->devices, g_object_ref (device));
415- g_signal_connect (G_OBJECT (device), "notify",
416- G_CALLBACK (up_client_changed), self);
417- up_client_changed (priv->up_client, NULL, self);
418-}
419-
420-static void
421 set_brightness_cb (GObject *source_object, GAsyncResult *res, gpointer user_data)
422 {
423 GError *error = NULL;
424@@ -1077,11 +1098,22 @@ static void
425 set_ac_battery_ui_mode (CcPowerPanel *self)
426 {
427 gboolean has_batteries = FALSE;
428+ gboolean ret;
429+ GError *error = NULL;
430 GPtrArray *devices;
431 guint i;
432 UpDevice *device;
433 UpDeviceKind kind;
434
435+ /* this is sync, but it's cached in the daemon and so quick */
436+ ret = up_client_enumerate_devices_sync (self->priv->up_client, NULL, &error);
437+ if (!ret)
438+ {
439+ g_warning ("failed to get device list: %s", error->message);
440+ g_error_free (error);
441+ goto out;
442+ }
443+
444 devices = up_client_get_devices (self->priv->up_client);
445 g_debug ("got %d devices from upower\n", devices->len);
446
447@@ -1102,6 +1134,7 @@ set_ac_battery_ui_mode (CcPowerPanel *se
448 has_batteries = FALSE;
449 #endif
450
451+out:
452 self->priv->has_batteries = has_batteries;
453
454 gtk_widget_set_visible (self->priv->critical_battery_row, has_batteries);
455@@ -1136,18 +1169,41 @@ update_header_func (GtkListBoxRow *row,
456 }
457 }
458
459+#ifdef HAVE_BLUETOOTH
460 static void
461-bt_set_powered (CcPowerPanel *self,
462- gboolean powered)
463+bt_set_powered (BluetoothClient *client,
464+ gboolean powered)
465 {
466- g_dbus_proxy_call (self->priv->bt_properties,
467- "Set",
468- g_variant_new_parsed ("('org.gnome.SettingsDaemon.Rfkill', 'BluetoothAirplaneMode', %v)",
469- g_variant_new_boolean (!powered)),
470- G_DBUS_CALL_FLAGS_NONE,
471- -1,
472- self->priv->cancellable,
473- NULL, NULL);
474+ GVariant *ret;
475+ const gchar *adapter_path;
476+ GDBusConnection *bus;
477+
478+ bus = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, NULL);
479+
480+ ret = g_dbus_connection_call_sync (bus,
481+ "org.bluez",
482+ "/",
483+ "org.bluez.Manager",
484+ "DefaultAdapter",
485+ NULL,
486+ NULL,
487+ 0,
488+ G_MAXINT,
489+ NULL, NULL);
490+ g_variant_get (ret, "(&o)", &adapter_path);
491+
492+ g_dbus_connection_call (bus,
493+ "org.bluez",
494+ adapter_path,
495+ "org.freedesktop.Properties",
496+ "SetProperty",
497+ g_variant_new ("(sv)", "Powered", g_variant_new_boolean (powered)),
498+ NULL,
499+ 0,
500+ G_MAXINT,
501+ NULL, NULL, NULL);
502+
503+ g_variant_unref (ret);
504 }
505
506 static void
507@@ -1161,26 +1217,25 @@ bt_switch_changed (GtkSwitch *sw,
508
509 g_debug ("Setting bt power %s", powered ? "on" : "off");
510
511- bt_set_powered (panel, powered);
512+ bt_set_powered (panel->priv->bt_client, powered);
513 }
514
515 static void
516-bt_powered_state_changed (CcPowerPanel *panel)
517+bt_powered_state_changed (GObject *client,
518+ GParamSpec *pspec,
519+ CcPowerPanel *panel)
520 {
521 CcPowerPanelPrivate *priv = panel->priv;
522 gboolean powered;
523- GVariant *v;
524-
525- v = g_dbus_proxy_get_cached_property (priv->bt_rfkill, "BluetoothAirplaneMode");
526- powered = !g_variant_get_boolean (v);
527- g_variant_unref (v);
528
529+ g_object_get (client, "default-adapter-powered", &powered, NULL);
530 g_debug ("bt powered state changed to %s", powered ? "on" : "off");
531
532 g_signal_handlers_block_by_func (priv->bt_switch, bt_switch_changed, panel);
533 gtk_switch_set_active (GTK_SWITCH (priv->bt_switch), powered);
534 g_signal_handlers_unblock_by_func (priv->bt_switch, bt_switch_changed, panel);
535 }
536+#endif
537
538 #ifdef HAVE_NETWORK_MANAGER
539 static gboolean
540@@ -1419,8 +1474,8 @@ add_brightness_row (CcPowerPanel *self,
541 label = gtk_label_new (text);
542 gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
543 gtk_label_set_use_underline (GTK_LABEL (label), TRUE);
544- gtk_widget_set_margin_start (label, 20);
545- gtk_widget_set_margin_end (label, 20);
546+ gtk_widget_set_margin_left (label, 20);
547+ gtk_widget_set_margin_right (label, 20);
548 gtk_widget_set_margin_top (label, 6);
549 gtk_widget_set_margin_bottom (label, 6);
550 gtk_box_pack_start (GTK_BOX (box), label, FALSE, TRUE, 0);
551@@ -1433,8 +1488,8 @@ add_brightness_row (CcPowerPanel *self,
552 *brightness_scale = scale = gtk_scale_new_with_range (GTK_ORIENTATION_HORIZONTAL, 0, 100, 1);
553 gtk_label_set_mnemonic_widget (GTK_LABEL (label), scale);
554 gtk_scale_set_draw_value (GTK_SCALE (scale), FALSE);
555- gtk_widget_set_margin_start (scale, 20);
556- gtk_widget_set_margin_end (scale, 20);
557+ gtk_widget_set_margin_left (scale, 20);
558+ gtk_widget_set_margin_right (scale, 20);
559 gtk_box_pack_start (GTK_BOX (box2), scale, TRUE, TRUE, 0);
560 gtk_size_group_add_widget (priv->level_sizegroup, scale);
561 g_signal_connect (scale, "value-changed",
562@@ -1465,8 +1520,8 @@ add_power_saving_section (CcPowerPanel *
563 g_free (s);
564 gtk_label_set_use_markup (GTK_LABEL (widget), TRUE);
565 gtk_misc_set_alignment (GTK_MISC (widget), 0, 0.5);
566- gtk_widget_set_margin_start (widget, 56);
567- gtk_widget_set_margin_end (widget, 56);
568+ gtk_widget_set_margin_left (widget, 56);
569+ gtk_widget_set_margin_right (widget, 56);
570 gtk_widget_set_margin_bottom (widget, 6);
571 gtk_box_pack_start (GTK_BOX (vbox), widget, FALSE, TRUE, 0);
572 gtk_widget_show (widget);
573@@ -1481,8 +1536,8 @@ add_power_saving_section (CcPowerPanel *
574
575 box = gtk_frame_new (NULL);
576 gtk_frame_set_shadow_type (GTK_FRAME (box), GTK_SHADOW_IN);
577- gtk_widget_set_margin_start (box, 50);
578- gtk_widget_set_margin_end (box, 50);
579+ gtk_widget_set_margin_left (box, 50);
580+ gtk_widget_set_margin_right (box, 50);
581 gtk_widget_set_margin_bottom (box, 24);
582 gtk_widget_show (box);
583 gtk_container_add (GTK_CONTAINER (box), widget);
584@@ -1507,8 +1562,8 @@ add_power_saving_section (CcPowerPanel *
585 label = gtk_label_new (_("_Dim screen when inactive"));
586 gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
587 gtk_label_set_use_underline (GTK_LABEL (label), TRUE);
588- gtk_widget_set_margin_start (label, 20);
589- gtk_widget_set_margin_end (label, 20);
590+ gtk_widget_set_margin_left (label, 20);
591+ gtk_widget_set_margin_right (label, 20);
592 gtk_widget_set_margin_top (label, 6);
593 gtk_widget_set_margin_bottom (label, 6);
594 gtk_box_pack_start (GTK_BOX (box), label, TRUE, TRUE, 0);
595@@ -1517,8 +1572,8 @@ add_power_saving_section (CcPowerPanel *
596 g_settings_bind (priv->gsd_settings, "idle-dim",
597 sw, "active",
598 G_SETTINGS_BIND_DEFAULT);
599- gtk_widget_set_margin_start (sw, 20);
600- gtk_widget_set_margin_end (sw, 20);
601+ gtk_widget_set_margin_left (sw, 20);
602+ gtk_widget_set_margin_right (sw, 20);
603 gtk_widget_set_valign (sw, GTK_ALIGN_CENTER);
604 gtk_box_pack_start (GTK_BOX (box), sw, FALSE, TRUE, 0);
605 gtk_label_set_mnemonic_widget (GTK_LABEL (label), sw);
606@@ -1532,8 +1587,8 @@ add_power_saving_section (CcPowerPanel *
607 label = gtk_label_new (_("_Blank screen"));
608 gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
609 gtk_label_set_use_underline (GTK_LABEL (label), TRUE);
610- gtk_widget_set_margin_start (label, 20);
611- gtk_widget_set_margin_end (label, 20);
612+ gtk_widget_set_margin_left (label, 20);
613+ gtk_widget_set_margin_right (label, 20);
614 gtk_widget_set_margin_top (label, 6);
615 gtk_widget_set_margin_bottom (label, 6);
616 gtk_box_pack_start (GTK_BOX (box), label, TRUE, TRUE, 0);
617@@ -1546,8 +1601,8 @@ add_power_saving_section (CcPowerPanel *
618 set_value_for_combo (GTK_COMBO_BOX (combo), value);
619 g_signal_connect (combo, "changed",
620 G_CALLBACK (combo_idle_delay_changed_cb), self);
621- gtk_widget_set_margin_start (combo, 20);
622- gtk_widget_set_margin_end (combo, 20);
623+ gtk_widget_set_margin_left (combo, 20);
624+ gtk_widget_set_margin_right (combo, 20);
625 gtk_widget_set_valign (combo, GTK_ALIGN_CENTER);
626 gtk_box_pack_start (GTK_BOX (box), combo, FALSE, TRUE, 0);
627 gtk_label_set_mnemonic_widget (GTK_LABEL (label), combo);
628@@ -1560,8 +1615,8 @@ add_power_saving_section (CcPowerPanel *
629 gtk_container_add (GTK_CONTAINER (row), box);
630
631 box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
632- gtk_widget_set_margin_start (box2, 20);
633- gtk_widget_set_margin_end (box2, 20);
634+ gtk_widget_set_margin_left (box2, 20);
635+ gtk_widget_set_margin_right (box2, 20);
636 gtk_widget_set_margin_top (box2, 6);
637 gtk_widget_set_margin_bottom (box2, 6);
638 gtk_box_pack_start (GTK_BOX (box), box2, TRUE, TRUE, 0);
639@@ -1577,8 +1632,8 @@ add_power_saving_section (CcPowerPanel *
640 gtk_box_pack_start (GTK_BOX (box2), w, TRUE, TRUE, 0);
641
642 priv->wifi_switch = sw = gtk_switch_new ();
643- gtk_widget_set_margin_start (sw, 20);
644- gtk_widget_set_margin_end (sw, 20);
645+ gtk_widget_set_margin_left (sw, 20);
646+ gtk_widget_set_margin_right (sw, 20);
647 gtk_widget_set_valign (sw, GTK_ALIGN_CENTER);
648 gtk_box_pack_start (GTK_BOX (box), sw, FALSE, TRUE, 0);
649 gtk_label_set_mnemonic_widget (GTK_LABEL (label), sw);
650@@ -1590,8 +1645,8 @@ add_power_saving_section (CcPowerPanel *
651 gtk_container_add (GTK_CONTAINER (row), box);
652
653 box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
654- gtk_widget_set_margin_start (box2, 20);
655- gtk_widget_set_margin_end (box2, 20);
656+ gtk_widget_set_margin_left (box2, 20);
657+ gtk_widget_set_margin_right (box2, 20);
658 gtk_widget_set_margin_top (box2, 6);
659 gtk_widget_set_margin_bottom (box2, 6);
660 gtk_box_pack_start (GTK_BOX (box), box2, TRUE, TRUE, 0);
661@@ -1607,8 +1662,8 @@ add_power_saving_section (CcPowerPanel *
662 gtk_box_pack_start (GTK_BOX (box2), w, TRUE, TRUE, 0);
663
664 priv->mobile_switch = sw = gtk_switch_new ();
665- gtk_widget_set_margin_start (sw, 20);
666- gtk_widget_set_margin_end (sw, 20);
667+ gtk_widget_set_margin_left (sw, 20);
668+ gtk_widget_set_margin_right (sw, 20);
669 gtk_widget_set_valign (sw, GTK_ALIGN_CENTER);
670 gtk_box_pack_start (GTK_BOX (box), sw, FALSE, TRUE, 0);
671 gtk_label_set_mnemonic_widget (GTK_LABEL (label), sw);
672@@ -1631,47 +1686,33 @@ add_power_saving_section (CcPowerPanel *
673 G_CALLBACK (wifi_switch_changed), self);
674 #endif
675
676- priv->bt_rfkill = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SESSION,
677- G_DBUS_PROXY_FLAGS_NONE,
678- NULL,
679- "org.gnome.SettingsDaemon.Rfkill",
680- "/org/gnome/SettingsDaemon/Rfkill",
681- "org.gnome.SettingsDaemon.Rfkill",
682- NULL, NULL);
683- if (priv->bt_rfkill)
684- {
685- priv->bt_properties = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SESSION,
686- G_DBUS_PROXY_FLAGS_NONE,
687- NULL,
688- "org.gnome.SettingsDaemon.Rfkill",
689- "/org/gnome/SettingsDaemon/Rfkill",
690- "org.freedesktop.DBus.Properties",
691- NULL, NULL);
692- row = gtk_list_box_row_new ();
693- box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 50);
694- gtk_container_add (GTK_CONTAINER (row), box);
695- label = gtk_label_new (_("_Bluetooth"));
696- gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
697- gtk_label_set_use_underline (GTK_LABEL (label), TRUE);
698- gtk_widget_set_margin_start (label, 20);
699- gtk_widget_set_margin_end (label, 20);
700- gtk_widget_set_margin_top (label, 6);
701- gtk_widget_set_margin_bottom (label, 6);
702- gtk_box_pack_start (GTK_BOX (box), label, TRUE, TRUE, 0);
703-
704- priv->bt_switch = sw = gtk_switch_new ();
705- gtk_widget_set_margin_start (sw, 20);
706- gtk_widget_set_margin_end (sw, 20);
707- gtk_widget_set_valign (sw, GTK_ALIGN_CENTER);
708- gtk_box_pack_start (GTK_BOX (box), sw, FALSE, TRUE, 0);
709- gtk_label_set_mnemonic_widget (GTK_LABEL (label), sw);
710- gtk_container_add (GTK_CONTAINER (widget), row);
711- gtk_size_group_add_widget (priv->row_sizegroup, row);
712- g_signal_connect_swapped (G_OBJECT (priv->bt_rfkill), "g-properties-changed",
713- G_CALLBACK (bt_powered_state_changed), self);
714- g_signal_connect (G_OBJECT (priv->bt_switch), "notify::active",
715- G_CALLBACK (bt_switch_changed), self);
716- }
717+#ifdef HAVE_BLUETOOTH
718+ priv->bt_client = bluetooth_client_new ();
719+ row = gtk_list_box_row_new ();
720+ box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 50);
721+ gtk_container_add (GTK_CONTAINER (row), box);
722+ label = gtk_label_new (_("_Bluetooth"));
723+ gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
724+ gtk_label_set_use_underline (GTK_LABEL (label), TRUE);
725+ gtk_widget_set_margin_left (label, 20);
726+ gtk_widget_set_margin_right (label, 20);
727+ gtk_widget_set_margin_top (label, 6);
728+ gtk_widget_set_margin_bottom (label, 6);
729+ gtk_box_pack_start (GTK_BOX (box), label, TRUE, TRUE, 0);
730+
731+ priv->bt_switch = sw = gtk_switch_new ();
732+ gtk_widget_set_margin_left (sw, 20);
733+ gtk_widget_set_margin_right (sw, 20);
734+ gtk_widget_set_valign (sw, GTK_ALIGN_CENTER);
735+ gtk_box_pack_start (GTK_BOX (box), sw, FALSE, TRUE, 0);
736+ gtk_label_set_mnemonic_widget (GTK_LABEL (label), sw);
737+ gtk_container_add (GTK_CONTAINER (widget), row);
738+ gtk_size_group_add_widget (priv->row_sizegroup, row);
739+ g_signal_connect (G_OBJECT (priv->bt_client), "notify::default-adapter-powered",
740+ G_CALLBACK (bt_powered_state_changed), self);
741+ g_signal_connect (G_OBJECT (priv->bt_switch), "notify::active",
742+ G_CALLBACK (bt_switch_changed), self);
743+#endif
744
745 gtk_widget_show_all (widget);
746 }
747@@ -1837,8 +1878,8 @@ add_automatic_suspend_section (CcPowerPa
748 g_free (s);
749 gtk_label_set_use_markup (GTK_LABEL (widget), TRUE);
750 gtk_misc_set_alignment (GTK_MISC (widget), 0, 0.5);
751- gtk_widget_set_margin_start (widget, 56);
752- gtk_widget_set_margin_end (widget, 50);
753+ gtk_widget_set_margin_left (widget, 56);
754+ gtk_widget_set_margin_right (widget, 50);
755 gtk_widget_set_margin_bottom (widget, 6);
756 gtk_box_pack_start (GTK_BOX (vbox), widget, FALSE, TRUE, 0);
757 gtk_widget_show (widget);
758@@ -1855,8 +1896,8 @@ add_automatic_suspend_section (CcPowerPa
759
760 box = gtk_frame_new (NULL);
761 gtk_frame_set_shadow_type (GTK_FRAME (box), GTK_SHADOW_IN);
762- gtk_widget_set_margin_start (box, 50);
763- gtk_widget_set_margin_end (box, 50);
764+ gtk_widget_set_margin_left (box, 50);
765+ gtk_widget_set_margin_right (box, 50);
766 gtk_widget_set_margin_bottom (box, 24);
767 gtk_widget_show (box);
768 gtk_container_add (GTK_CONTAINER (box), widget);
769@@ -1868,8 +1909,8 @@ add_automatic_suspend_section (CcPowerPa
770 label = gtk_label_new (_("_Automatic suspend"));
771 gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
772 gtk_label_set_use_underline (GTK_LABEL (label), TRUE);
773- gtk_widget_set_margin_start (label, 20);
774- gtk_widget_set_margin_end (label, 20);
775+ gtk_widget_set_margin_left (label, 20);
776+ gtk_widget_set_margin_right (label, 20);
777 gtk_widget_set_margin_top (label, 6);
778 gtk_widget_set_margin_bottom (label, 6);
779 gtk_box_pack_start (GTK_BOX (box), label, TRUE, TRUE, 0);
780@@ -1879,8 +1920,8 @@ add_automatic_suspend_section (CcPowerPa
781 g_signal_connect (sw, "mnemonic-activate",
782 G_CALLBACK (automatic_suspend_activate), self);
783 gtk_misc_set_alignment (GTK_MISC (sw), 1, 0.5);
784- gtk_widget_set_margin_start (sw, 24);
785- gtk_widget_set_margin_end (sw, 24);
786+ gtk_widget_set_margin_left (sw, 24);
787+ gtk_widget_set_margin_right (sw, 24);
788 gtk_box_pack_start (GTK_BOX (box), sw, FALSE, TRUE, 0);
789 gtk_container_add (GTK_CONTAINER (widget), row);
790 gtk_size_group_add_widget (priv->row_sizegroup, row);
791@@ -1892,8 +1933,8 @@ add_automatic_suspend_section (CcPowerPa
792 label = gtk_label_new (_("When battery power is _critical"));
793 gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
794 gtk_label_set_use_underline (GTK_LABEL (label), TRUE);
795- gtk_widget_set_margin_start (label, 20);
796- gtk_widget_set_margin_end (label, 20);
797+ gtk_widget_set_margin_left (label, 20);
798+ gtk_widget_set_margin_right (label, 20);
799 gtk_widget_set_margin_top (label, 6);
800 gtk_widget_set_margin_bottom (label, 6);
801 gtk_box_pack_start (GTK_BOX (box), label, TRUE, TRUE, 0);
802@@ -1930,8 +1971,8 @@ add_automatic_suspend_section (CcPowerPa
803 cell = gtk_cell_renderer_text_new ();
804 gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (sw), cell, TRUE);
805 gtk_cell_layout_add_attribute (GTK_CELL_LAYOUT (sw), cell, "text", 0);
806- gtk_widget_set_margin_start (sw, 20);
807- gtk_widget_set_margin_end (sw, 20);
808+ gtk_widget_set_margin_left (sw, 20);
809+ gtk_widget_set_margin_right (sw, 20);
810 gtk_widget_set_valign (sw, GTK_ALIGN_CENTER);
811
812 g_object_set_data (G_OBJECT (sw), "_gsettings_key", "critical-battery-action");
813@@ -1947,8 +1988,8 @@ add_automatic_suspend_section (CcPowerPa
814 else
815 {
816 label = gtk_label_new (_("Power Off"));
817- gtk_widget_set_margin_start (label, 20);
818- gtk_widget_set_margin_end (label, 20);
819+ gtk_widget_set_margin_left (label, 20);
820+ gtk_widget_set_margin_right (label, 20);
821 gtk_widget_set_margin_top (label, 6);
822 gtk_widget_set_margin_bottom (label, 6);
823 gtk_box_pack_start (GTK_BOX (box), label, FALSE, TRUE, 0);
824@@ -2030,8 +2071,8 @@ add_battery_section (CcPowerPanel *self)
825 vbox = WID (priv->builder, "vbox_power");
826
827 priv->battery_section = box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
828- gtk_widget_set_margin_start (box, 50);
829- gtk_widget_set_margin_end (box, 50);
830+ gtk_widget_set_margin_left (box, 50);
831+ gtk_widget_set_margin_right (box, 50);
832 gtk_widget_set_margin_bottom (box, 6);
833 gtk_widget_set_margin_bottom (box, 24);
834 gtk_box_pack_start (GTK_BOX (vbox), box, FALSE, TRUE, 0);
835@@ -2041,8 +2082,8 @@ add_battery_section (CcPowerPanel *self)
836 g_free (s);
837 gtk_label_set_use_markup (GTK_LABEL (widget), TRUE);
838 gtk_misc_set_alignment (GTK_MISC (widget), 0, 0.5);
839- gtk_widget_set_margin_start (widget, 6);
840- gtk_widget_set_margin_end (widget, 6);
841+ gtk_widget_set_margin_left (widget, 6);
842+ gtk_widget_set_margin_right (widget, 6);
843 gtk_widget_set_margin_bottom (widget, 6);
844 gtk_widget_set_margin_bottom (box, 24);
845 gtk_box_pack_start (GTK_BOX (box), widget, FALSE, TRUE, 0);
846@@ -2077,8 +2118,8 @@ add_device_section (CcPowerPanel *self)
847 vbox = WID (priv->builder, "vbox_power");
848
849 priv->device_section = box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
850- gtk_widget_set_margin_start (box, 50);
851- gtk_widget_set_margin_end (box, 50);
852+ gtk_widget_set_margin_left (box, 50);
853+ gtk_widget_set_margin_right (box, 50);
854 gtk_widget_set_margin_top (box, 6);
855 gtk_widget_set_margin_bottom (box, 24);
856 gtk_box_pack_start (GTK_BOX (vbox), box, FALSE, TRUE, 0);
857@@ -2088,8 +2129,8 @@ add_device_section (CcPowerPanel *self)
858 g_free (s);
859 gtk_label_set_use_markup (GTK_LABEL (widget), TRUE);
860 gtk_misc_set_alignment (GTK_MISC (widget), 0, 0.5);
861- gtk_widget_set_margin_start (widget, 6);
862- gtk_widget_set_margin_end (widget, 6);
863+ gtk_widget_set_margin_left (widget, 6);
864+ gtk_widget_set_margin_right (widget, 6);
865 gtk_widget_set_margin_bottom (widget, 6);
866 gtk_box_pack_start (GTK_BOX (box), widget, FALSE, TRUE, 0);
867
868@@ -2137,7 +2178,6 @@ cc_power_panel_init (CcPowerPanel *self)
869 GError *error;
870 GtkWidget *widget;
871 GtkWidget *box;
872- guint i;
873
874 priv = self->priv = POWER_PANEL_PRIVATE (self);
875 g_resources_register (cc_power_get_resource ());
876@@ -2201,15 +2241,9 @@ cc_power_panel_init (CcPowerPanel *self)
877 update_automatic_suspend_label (self);
878
879 /* populate batteries */
880- g_signal_connect (priv->up_client, "device-added", G_CALLBACK (up_client_device_added), self);
881- g_signal_connect (priv->up_client, "device-removed", G_CALLBACK (up_client_device_removed), self);
882-
883- priv->devices = up_client_get_devices (priv->up_client);
884- for (i = 0; priv->devices != NULL && i < priv->devices->len; i++) {
885- UpDevice *device = g_ptr_array_index (priv->devices, i);
886- g_signal_connect (G_OBJECT (device), "notify",
887- G_CALLBACK (up_client_changed), self);
888- }
889+ g_signal_connect (priv->up_client, "device-added", G_CALLBACK (up_client_changed), self);
890+ g_signal_connect (priv->up_client, "device-changed", G_CALLBACK (up_client_changed), self);
891+ g_signal_connect (priv->up_client, "device-removed", G_CALLBACK (up_client_changed), self);
892 up_client_changed (priv->up_client, NULL, self);
893
894 widget = WID (priv->builder, "vbox_power");
895Index: gnome-control-center/panels/power/cc-power-panel.h
896===================================================================
897--- gnome-control-center.orig/panels/power/cc-power-panel.h
898+++ gnome-control-center/panels/power/cc-power-panel.h
899@@ -13,7 +13,8 @@
900 * GNU General Public License for more details.
901 *
902 * You should have received a copy of the GNU General Public License
903- * along with this program; if not, see <http://www.gnu.org/licenses/>.
904+ * along with this program; if not, write to the Free Software
905+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
906 *
907 */
908
909Index: gnome-control-center/panels/power/gnome-power-panel.desktop.in.in
910===================================================================
911--- gnome-control-center.orig/panels/power/gnome-power-panel.desktop.in.in
912+++ gnome-control-center/panels/power/gnome-power-panel.desktop.in.in
913@@ -5,7 +5,6 @@ Exec=gnome-control-center power
914 Icon=gnome-power-manager
915 Terminal=false
916 Type=Application
917-NoDisplay=true
918 StartupNotify=true
919 Categories=GNOME;GTK;Settings;DesktopSettings;X-GNOME-Settings-Panel;HardwareSettings;
920 OnlyShowIn=GNOME;Unity;
921Index: gnome-control-center/panels/power/power.ui
922===================================================================
923--- gnome-control-center.orig/panels/power/power.ui
924+++ gnome-control-center/panels/power/power.ui
925@@ -129,6 +129,7 @@
926 <child internal-child="vbox">
927 <object class="GtkBox" id="asdf">
928 <property name="can_focus">False</property>
929+ <property name="resize_mode">immediate</property>
930 <property name="orientation">vertical</property>
931 <property name="spacing">2</property>
932 <child internal-child="action_area">
933@@ -163,8 +164,8 @@
934 <object class="GtkGrid" id="grid1">
935 <property name="visible">True</property>
936 <property name="can_focus">False</property>
937- <property name="margin_start">12</property>
938- <property name="margin_end">6</property>
939+ <property name="margin_left">12</property>
940+ <property name="margin_right">6</property>
941 <property name="margin_top">12</property>
942 <property name="margin_bottom">12</property>
943 <property name="row_spacing">12</property>
944@@ -219,6 +220,8 @@
945 <object class="GtkComboBoxText" id="suspend_on_battery_delay_combo">
946 <property name="visible">True</property>
947 <property name="can_focus">False</property>
948+ <property name="margin_left">4</property>
949+ <property name="margin_right">4</property>
950 <property name="entry_text_column">0</property>
951 <property name="id_column">1</property>
952 <property name="model">liststore_time</property>
953@@ -234,7 +237,7 @@
954 <object class="GtkLabel" id="suspend_on_battery_delay_label">
955 <property name="visible">True</property>
956 <property name="can_focus">False</property>
957- <property name="margin_start">20</property>
958+ <property name="margin_left">20</property>
959 <property name="xalign">1</property>
960 <property name="label" translatable="yes">Delay</property>
961 <property name="mnemonic_widget">suspend_on_battery_delay_combo</property>
962@@ -267,6 +270,8 @@
963 <object class="GtkComboBoxText" id="suspend_on_ac_delay_combo">
964 <property name="visible">True</property>
965 <property name="can_focus">False</property>
966+ <property name="margin_left">4</property>
967+ <property name="margin_right">4</property>
968 <property name="entry_text_column">0</property>
969 <property name="id_column">1</property>
970 <property name="model">liststore_time</property>
971@@ -294,7 +299,7 @@
972 <object class="GtkLabel" id="suspend_on_ac_delay_label">
973 <property name="visible">True</property>
974 <property name="can_focus">False</property>
975- <property name="margin_start">20</property>
976+ <property name="margin_left">20</property>
977 <property name="xalign">1</property>
978 <property name="label" translatable="yes">Delay</property>
979 <property name="mnemonic_widget">suspend_on_ac_delay_combo</property>
0980
=== added file 'debian/patches/revert-bluetooth-BlueZ5-interface.patch'
--- debian/patches/revert-bluetooth-BlueZ5-interface.patch 1970-01-01 00:00:00 +0000
+++ debian/patches/revert-bluetooth-BlueZ5-interface.patch 2014-09-30 05:25:02 +0000
@@ -0,0 +1,34 @@
1From d15a9709f2782dc36b8d86905507a014922f01ed Mon Sep 17 00:00:00 2001
2From: Tim Lunn <tim@feathertop.org>
3Date: Wed, 23 Oct 2013 07:39:24 +1100
4Subject: [PATCH] Revert "Update adapter interface for BlueZ 5"
5
6This reverts commit ac43647ac01cb990555c7b4ff7b8bf5fb8b17b83.
7---
8 panels/bluetooth/cc-bluetooth-panel.c | 7 ++-----
9 1 file changed, 2 insertions(+), 5 deletions(-)
10
11--- a/panels/bluetooth/cc-bluetooth-panel.c
12+++ b/panels/bluetooth/cc-bluetooth-panel.c
13@@ -43,9 +43,6 @@
14
15 #define WID(s) GTK_WIDGET (gtk_builder_get_object (self->priv->builder, s))
16
17-#define BLUEZ_SERVICE "org.bluez"
18-#define ADAPTER_IFACE "org.bluez.Adapter1"
19-
20 #define KEYBOARD_PREFS "keyboard"
21 #define MOUSE_PREFS "mouse"
22 #define SOUND_PREFS "sound"
23@@ -675,9 +672,9 @@
24 adapter_proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SYSTEM,
25 G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES | G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START,
26 NULL,
27- BLUEZ_SERVICE,
28+ "org.bluez",
29 adapter,
30- ADAPTER_IFACE,
31+ "org.bluez.Adapter",
32 NULL,
33 &error);
34 g_free (adapter);
035
=== modified file 'debian/patches/revert_git_dont_hide_zoom.patch'
--- debian/patches/revert_git_dont_hide_zoom.patch 2014-02-12 00:19:03 +0000
+++ debian/patches/revert_git_dont_hide_zoom.patch 2014-09-30 05:25:02 +0000
@@ -7,19 +7,17 @@
77
8https://bugzilla.gnome.org/show_bug.cgi?id=6828628https://bugzilla.gnome.org/show_bug.cgi?id=682862
9---9---
10Index: gnome-control-center-3.8.3/panels/universal-access/cc-ua-panel.c10--- a/panels/universal-access/cc-ua-panel.c
11===================================================================11+++ b/panels/universal-access/cc-ua-panel.c
12--- gnome-control-center-3.8.3.orig/panels/universal-access/cc-ua-panel.c 2013-06-11 20:04:34.087380775 -040012@@ -102,6 +102,7 @@
13+++ gnome-control-center-3.8.3/panels/universal-access/cc-ua-panel.c 2013-06-11 20:04:34.083380775 -040013 GSettings *application_settings;
14@@ -60,6 +60,7 @@
15 GSettings *mediakeys_settings;
16 14
17 ZoomOptions *zoom_options;15 ZoomOptions *zoom_options;
18+ guint shell_watch_id;16+ guint shell_watch_id;
19 };17
20 18 GtkAdjustment *focus_adjustment;
21 19
22@@ -94,6 +95,12 @@20@@ -116,6 +117,12 @@
23 {21 {
24 CcUaPanelPrivate *priv = CC_UA_PANEL (object)->priv;22 CcUaPanelPrivate *priv = CC_UA_PANEL (object)->priv;
25 23
@@ -29,11 +27,11 @@
29+ priv->shell_watch_id = 0;27+ priv->shell_watch_id = 0;
30+ }28+ }
31+29+
32 if (priv->builder)30 g_clear_object (&priv->builder);
33 {31 g_slist_free_full (priv->toplevels, (GDestroyNotify)gtk_widget_destroy);
34 g_object_unref (priv->builder);32 priv->toplevels = NULL;
35@@ -300,6 +307,29 @@33@@ -177,6 +184,29 @@
36 g_free (text);34 return (factor > DPI_FACTOR_NORMAL);
37 }35 }
38 36
39+static void37+static void
@@ -43,8 +41,8 @@
43+{41+{
44+ CcUaPanelPrivate *priv = self->priv;42+ CcUaPanelPrivate *priv = self->priv;
45+43+
46+ gtk_widget_hide (WID (priv->builder, "zoom_label_box"));44+ gtk_widget_hide (WID ("zoom_label_box"));
47+ gtk_widget_hide (WID (priv->builder, "zoom_value_box"));45+ gtk_widget_hide (WID ("zoom_value_box"));
48+}46+}
49+47+
50+static void48+static void
@@ -55,17 +53,17 @@
55+{53+{
56+ CcUaPanelPrivate *priv = self->priv;54+ CcUaPanelPrivate *priv = self->priv;
57+55+
58+ gtk_widget_show (WID (priv->builder, "zoom_label_box"));56+ gtk_widget_show (WID ("zoom_label_box"));
59+ gtk_widget_show (WID (priv->builder, "zoom_value_box"));57+ gtk_widget_show (WID ("zoom_value_box"));
60+}58+}
61+59+
62 static gboolean60 static gboolean
63 get_large_text_mapping (GValue *value,61 get_large_text_mapping (GValue *value,
64 GVariant *variant,62 GVariant *variant,
65@@ -401,6 +431,13 @@63@@ -445,6 +475,13 @@
66 WID (priv->builder, "seeing_toggle_keys_switch"), "active",64 NULL);
67 G_SETTINGS_BIND_DEFAULT);
68 65
66 /* zoom */
69+ priv->shell_watch_id = g_bus_watch_name (G_BUS_TYPE_SESSION,67+ priv->shell_watch_id = g_bus_watch_name (G_BUS_TYPE_SESSION,
70+ "org.gnome.Shell",68+ "org.gnome.Shell",
71+ G_BUS_NAME_WATCHER_FLAGS_NONE,69+ G_BUS_NAME_WATCHER_FLAGS_NONE,
@@ -73,6 +71,6 @@
73+ (GBusNameVanishedCallback) shell_vanished_cb,71+ (GBusNameVanishedCallback) shell_vanished_cb,
74+ self,72+ self,
75+ NULL);73+ NULL);
76 g_signal_connect (WID (priv->builder, "seeing_zoom_preferences_button"),74
77 "clicked",75 g_settings_bind_with_mapping (priv->application_settings, "screen-magnifier-enabled",
78 G_CALLBACK (zoom_options_launch_cb), self);76 WID ("value_zoom"),
7977
=== modified file 'debian/patches/revert_git_drop_library.patch'
--- debian/patches/revert_git_drop_library.patch 2014-02-12 00:19:03 +0000
+++ debian/patches/revert_git_drop_library.patch 2014-09-30 05:25:02 +0000
@@ -29,7 +29,7 @@
29 # Internationalization support29 # Internationalization support
30 30
31 IT_PROG_INTLTOOL([0.40.1])31 IT_PROG_INTLTOOL([0.40.1])
32@@ -326,9 +335,12 @@32@@ -334,9 +343,12 @@
33 PANEL_CFLAGS="-I\$(top_srcdir)/ -DG_LOG_DOMAIN=\"\\\"\$(cappletname)-cc-panel\\\"\" -DPANEL_ID=\"\\\"\$(cappletname)\\\"\""33 PANEL_CFLAGS="-I\$(top_srcdir)/ -DG_LOG_DOMAIN=\"\\\"\$(cappletname)-cc-panel\\\"\" -DPANEL_ID=\"\\\"\$(cappletname)\\\"\""
34 AC_SUBST(PANEL_CFLAGS)34 AC_SUBST(PANEL_CFLAGS)
35 35
@@ -40,10 +40,10 @@
40+PANEL_LDFLAGS="-export_dynamic -avoid-version -module -no-undefined -export-symbols-regex '^g_io_module_(load|unload)'"40+PANEL_LDFLAGS="-export_dynamic -avoid-version -module -no-undefined -export-symbols-regex '^g_io_module_(load|unload)'"
41+AC_SUBST(PANEL_LDFLAGS)41+AC_SUBST(PANEL_LDFLAGS)
42+42+
43 dnl ==============================================43 dnl =======================================
44 dnl libsocialweb44 dnl Update Mime Database
45 dnl ==============================================45 dnl =======================================
46@@ -426,6 +438,7 @@46@@ -416,6 +428,7 @@
47 47
48 AC_CONFIG_FILES([48 AC_CONFIG_FILES([
49 Makefile49 Makefile
@@ -67,7 +67,7 @@
67 $(AM_V_GEN) glib-compile-resources --target=$@ --sourcedir=$(srcdir) --generate-source --c-name cc_common $<67 $(AM_V_GEN) glib-compile-resources --target=$@ --sourcedir=$(srcdir) --generate-source --c-name cc_common $<
68--- a/shell/Makefile.am68--- a/shell/Makefile.am
69+++ b/shell/Makefile.am69+++ b/shell/Makefile.am
70@@ -28,14 +28,8 @@70@@ -29,14 +29,8 @@
71 cc-shell-category-view.h \71 cc-shell-category-view.h \
72 cc-shell-item-view.c \72 cc-shell-item-view.c \
73 cc-shell-item-view.h \73 cc-shell-item-view.h \
@@ -84,7 +84,7 @@
84 hostname-helper.c \84 hostname-helper.c \
85 hostname-helper.h \85 hostname-helper.h \
86 cc-hostname-entry.c \86 cc-hostname-entry.c \
87@@ -44,8 +38,43 @@87@@ -45,8 +39,43 @@
88 88
89 gnome_control_center_LDFLAGS = -export-dynamic89 gnome_control_center_LDFLAGS = -export-dynamic
90 90
@@ -128,15 +128,14 @@
128 $(SHELL_LIBS) \128 $(SHELL_LIBS) \
129 $(CHEESE_LIBS) \129 $(CHEESE_LIBS) \
130 $(top_builddir)/libgd/libgd.la \130 $(top_builddir)/libgd/libgd.la \
131@@ -99,6 +128,8 @@131@@ -107,6 +136,7 @@
132 132
133 EXTRA_DIST = \133 EXTRA_DIST = \
134 gnome-control-center.desktop.in.in \134 gnome-control-center.desktop.in.in \
135+ libgnome-control-center.pc.in \135+ libgnome-control-center.pc.in \
136+ $(servicefile_in_files) \136 $(servicefile_in_files) \
137 $(completion_in_files) \137 $(completion_in_files) \
138 list-panel.sh138 list-panel.sh
139
140--- /dev/null139--- /dev/null
141+++ b/shell/libgnome-control-center.pc.in140+++ b/shell/libgnome-control-center.pc.in
142@@ -0,0 +1,12 @@141@@ -0,0 +1,12 @@
@@ -155,7 +154,7 @@
155\ No newline at end of file154\ No newline at end of file
156--- a/Makefile.am155--- a/Makefile.am
157+++ b/Makefile.am156+++ b/Makefile.am
158@@ -34,6 +34,12 @@157@@ -35,6 +35,12 @@
159 158
160 -include $(top_srcdir)/git.mk159 -include $(top_srcdir)/git.mk
161 160
162161
=== added file 'debian/patches/revert_git_new_bluetooth_panel.patch'
--- debian/patches/revert_git_new_bluetooth_panel.patch 1970-01-01 00:00:00 +0000
+++ debian/patches/revert_git_new_bluetooth_panel.patch 2014-09-30 05:25:02 +0000
@@ -0,0 +1,1607 @@
1From 258759f58d7e4095de9bd4623cc9b8680f37bc52 Mon Sep 17 00:00:00 2001
2From: Tim Lunn <tim@feathertop.org>
3Date: Sun, 19 Jan 2014 09:29:54 +1100
4Subject: [PATCH] This reverts commit 07c354661102669d7ec8e7d1f00c2f70982ad226.
5
6Revert "bluetooth: Updated design"
7
8This reverts commit 28fecc01c46a7b082f9746744c938e499a522e4f.
9---
10 configure.ac | 2 +-
11 panels/bluetooth/bluetooth.ui | 641 ++++++++++++++++++++++++++-
12 panels/bluetooth/cc-bluetooth-panel.c | 799 +++++++++++++++++++++++++++++-----
13 3 files changed, 1317 insertions(+), 125 deletions(-)
14
15--- a/configure.ac
16+++ b/configure.ac
17@@ -206,7 +206,7 @@
18 AM_CONDITIONAL(HAVE_NM_UNSTABLE, [test x$nm_unstable = xyes])
19
20 # Check for gnome-bluetooth
21-PKG_CHECK_MODULES(BLUETOOTH, $COMMON_MODULES gnome-bluetooth-1.0 >= 3.11.1,
22+PKG_CHECK_MODULES(BLUETOOTH, $COMMON_MODULES gnome-bluetooth-1.0 >= 3.9.3,
23 [have_bluetooth=yes], have_bluetooth=no)
24 if test "x$have_bluetooth" = xyes ; then
25 AC_DEFINE(BUILD_BLUETOOTH, 1, [Define to 1 to build the Bluetooth panel])
26--- a/panels/bluetooth/bluetooth.ui
27+++ b/panels/bluetooth/bluetooth.ui
28@@ -1,5 +1,4 @@
29 <?xml version="1.0" encoding="UTF-8"?>
30-<!-- Generated with glade 3.16.0 on Fri Nov 29 16:46:49 2013 -->
31 <interface>
32 <!-- interface-requires gtk+ 3.0 -->
33 <object class="GtkBox" id="box_power">
34@@ -7,18 +6,654 @@
35 <property name="can_focus">False</property>
36 <child>
37 <object class="GtkSwitch" id="switch_bluetooth">
38- <property name="use_action_appearance">False</property>
39 <property name="visible">True</property>
40 <property name="can_focus">True</property>
41 <property name="valign">center</property>
42+ <property name="use_action_appearance">False</property>
43 </object>
44 <packing>
45 <property name="expand">False</property>
46 <property name="fill">True</property>
47- <property name="padding">4</property>
48 <property name="pack_type">end</property>
49 <property name="position">2</property>
50+ <property name="padding">4</property>
51 </packing>
52 </child>
53 </object>
54+ <object class="GtkGrid" id="grid">
55+ <property name="visible">True</property>
56+ <property name="can_focus">False</property>
57+ <property name="border_width">8</property>
58+ <property name="margin-start">6</property>
59+ <property name="margin-end">6</property>
60+ <property name="margin-top">6</property>
61+ <property name="margin-bottom">6</property>
62+ <child>
63+ <placeholder/>
64+ </child>
65+ <child>
66+ <object class="GtkBox" id="vbox">
67+ <property name="visible">True</property>
68+ <property name="can_focus">False</property>
69+ <property name="orientation">vertical</property>
70+ <child>
71+ <object class="GtkBox" id="box_devices">
72+ <property name="visible">True</property>
73+ <property name="can_focus">False</property>
74+ <property name="orientation">vertical</property>
75+ <child>
76+ <object class="GtkScrolledWindow" id="message_scrolledwindow">
77+ <property name="sensitive">False</property>
78+ <property name="can_focus">True</property>
79+ <property name="no_show_all">True</property>
80+ <property name="hscrollbar_policy">never</property>
81+ <property name="shadow_type">in</property>
82+ <property name="min_content_width">200</property>
83+ <property name="min_content_height">250</property>
84+ <child>
85+ <object class="GtkViewport" id="viewport2">
86+ <property name="visible">True</property>
87+ <property name="can_focus">False</property>
88+ <property name="shadow_type">none</property>
89+ <child>
90+ <object class="GtkLabel" id="message_label">
91+ <property name="visible">True</property>
92+ <property name="can_focus">False</property>
93+ <property name="xalign">0</property>
94+ <property name="yalign">0</property>
95+ <property name="xpad">12</property>
96+ <property name="ypad">12</property>
97+ <property name="label">Bluetooth is disabled by hardware switch</property>
98+ <property name="wrap">True</property>
99+ </object>
100+ </child>
101+ </object>
102+ </child>
103+ </object>
104+ <packing>
105+ <property name="expand">True</property>
106+ <property name="fill">True</property>
107+ <property name="position">0</property>
108+ </packing>
109+ </child>
110+ </object>
111+ <packing>
112+ <property name="expand">True</property>
113+ <property name="fill">True</property>
114+ <property name="position">0</property>
115+ </packing>
116+ </child>
117+ <child>
118+ <object class="GtkToolbar" id="toolbar">
119+ <property name="visible">True</property>
120+ <property name="can_focus">False</property>
121+ <property name="toolbar_style">icons</property>
122+ <property name="icon_size">1</property>
123+ <style>
124+ <class name="inline-toolbar"/>
125+ </style>
126+ <child>
127+ <object class="GtkToolButton" id="button_setup">
128+ <property name="visible">True</property>
129+ <property name="can_focus">False</property>
130+ <property name="use_action_appearance">False</property>
131+ <property name="use_underline">True</property>
132+ <property name="icon_name">list-add-symbolic</property>
133+ <property name="label" translatable="yes">Set Up New Device</property>
134+ </object>
135+ <packing>
136+ <property name="expand">False</property>
137+ <property name="homogeneous">True</property>
138+ </packing>
139+ </child>
140+ <child>
141+ <object class="GtkToolButton" id="button_delete">
142+ <property name="visible">True</property>
143+ <property name="sensitive">False</property>
144+ <property name="can_focus">False</property>
145+ <property name="use_action_appearance">False</property>
146+ <property name="use_underline">True</property>
147+ <property name="icon_name">list-remove-symbolic</property>
148+ <property name="label" translatable="yes">Remove Device</property>
149+ </object>
150+ <packing>
151+ <property name="expand">False</property>
152+ <property name="homogeneous">True</property>
153+ </packing>
154+ </child>
155+ </object>
156+ <packing>
157+ <property name="expand">False</property>
158+ <property name="fill">True</property>
159+ <property name="position">1</property>
160+ </packing>
161+ </child>
162+ </object>
163+ <packing>
164+ <property name="left_attach">0</property>
165+ <property name="top_attach">1</property>
166+ <property name="width">1</property>
167+ <property name="height">1</property>
168+ </packing>
169+ </child>
170+ <child>
171+ <object class="GtkNotebook" id="props_notebook">
172+ <property name="visible">True</property>
173+ <property name="can_focus">False</property>
174+ <property name="margin_start">6</property>
175+ <property name="hexpand">True</property>
176+ <property name="vexpand">True</property>
177+ <property name="show_tabs">False</property>
178+ <property name="show_border">False</property>
179+ <child>
180+ <object class="GtkScrolledWindow" id="scrolledwindow2">
181+ <property name="visible">True</property>
182+ <property name="can_focus">True</property>
183+ <property name="shadow_type">in</property>
184+ <child>
185+ <object class="GtkViewport" id="viewport3">
186+ <property name="visible">True</property>
187+ <property name="can_focus">False</property>
188+ <property name="shadow_type">none</property>
189+ <child>
190+ <object class="GtkLabel" id="label8">
191+ <property name="visible">True</property>
192+ <property name="can_focus">False</property>
193+ </object>
194+ </child>
195+ </object>
196+ </child>
197+ </object>
198+ </child>
199+ <child type="tab">
200+ <object class="GtkLabel" id="label1">
201+ <property name="visible">True</property>
202+ <property name="can_focus">False</property>
203+ <property name="label">empty</property>
204+ </object>
205+ <packing>
206+ <property name="tab_fill">False</property>
207+ </packing>
208+ </child>
209+ <child>
210+ <object class="GtkScrolledWindow" id="scrolledwindow1">
211+ <property name="visible">True</property>
212+ <property name="can_focus">True</property>
213+ <property name="hscrollbar_policy">never</property>
214+ <property name="vscrollbar_policy">automatic</property>
215+ <property name="shadow_type">in</property>
216+ <child>
217+ <object class="GtkViewport" id="viewport1">
218+ <property name="visible">True</property>
219+ <property name="can_focus">False</property>
220+ <property name="shadow_type">none</property>
221+ <child>
222+ <object class="GtkBox" id="properties_vbox">
223+ <property name="visible">True</property>
224+ <property name="can_focus">False</property>
225+ <property name="margin_top">8</property>
226+ <property name="orientation">vertical</property>
227+ <child>
228+ <object class="GtkBox" id="box1">
229+ <property name="visible">True</property>
230+ <property name="can_focus">False</property>
231+ <property name="orientation">vertical</property>
232+ <property name="spacing">6</property>
233+ <child>
234+ <object class="GtkBox" id="box2">
235+ <property name="visible">True</property>
236+ <property name="can_focus">False</property>
237+ <property name="spacing">18</property>
238+ <property name="homogeneous">True</property>
239+ <child>
240+ <object class="GtkLabel" id="connection_label">
241+ <property name="visible">True</property>
242+ <property name="can_focus">False</property>
243+ <property name="xalign">1</property>
244+ <property name="label" translatable="yes">Connection</property>
245+ <style>
246+ <class name="dim-label"/>
247+ </style>
248+ </object>
249+ <packing>
250+ <property name="expand">False</property>
251+ <property name="fill">True</property>
252+ <property name="position">0</property>
253+ </packing>
254+ </child>
255+ <child>
256+ <object class="GtkNotebook" id="connecting_notebook">
257+ <property name="visible">True</property>
258+ <property name="can_focus">True</property>
259+ <property name="show_tabs">False</property>
260+ <property name="show_border">False</property>
261+ <child>
262+ <object class="GtkSwitch" id="switch_connection">
263+ <property name="visible">True</property>
264+ <property name="can_focus">True</property>
265+ <property name="halign">start</property>
266+ <property name="use_action_appearance">False</property>
267+ </object>
268+ </child>
269+ <child type="tab">
270+ <object class="GtkLabel" id="label3">
271+ <property name="visible">True</property>
272+ <property name="can_focus">False</property>
273+ <property name="label" translatable="yes">page 1</property>
274+ </object>
275+ <packing>
276+ <property name="tab_fill">False</property>
277+ </packing>
278+ </child>
279+ <child>
280+ <object class="GtkSpinner" id="connecting_spinner">
281+ <property name="visible">True</property>
282+ <property name="can_focus">False</property>
283+ <property name="halign">start</property>
284+ </object>
285+ <packing>
286+ <property name="position">1</property>
287+ </packing>
288+ </child>
289+ <child type="tab">
290+ <object class="GtkLabel" id="label9">
291+ <property name="visible">True</property>
292+ <property name="can_focus">False</property>
293+ <property name="label" translatable="yes">page 2</property>
294+ </object>
295+ <packing>
296+ <property name="position">1</property>
297+ <property name="tab_fill">False</property>
298+ </packing>
299+ </child>
300+ <child>
301+ <placeholder/>
302+ </child>
303+ <child type="tab">
304+ <placeholder/>
305+ </child>
306+ </object>
307+ <packing>
308+ <property name="expand">False</property>
309+ <property name="fill">True</property>
310+ <property name="position">1</property>
311+ </packing>
312+ </child>
313+ </object>
314+ <packing>
315+ <property name="expand">False</property>
316+ <property name="fill">True</property>
317+ <property name="position">0</property>
318+ </packing>
319+ </child>
320+ <child>
321+ <object class="GtkBox" id="box3">
322+ <property name="visible">True</property>
323+ <property name="can_focus">False</property>
324+ <property name="spacing">18</property>
325+ <property name="homogeneous">True</property>
326+ <child>
327+ <object class="GtkLabel" id="label4">
328+ <property name="visible">True</property>
329+ <property name="can_focus">False</property>
330+ <property name="xalign">1</property>
331+ <property name="label" translatable="yes">Paired</property>
332+ <style>
333+ <class name="dim-label"/>
334+ </style>
335+ </object>
336+ <packing>
337+ <property name="expand">False</property>
338+ <property name="fill">True</property>
339+ <property name="position">0</property>
340+ </packing>
341+ </child>
342+ <child>
343+ <object class="GtkLabel" id="paired_label">
344+ <property name="visible">True</property>
345+ <property name="can_focus">False</property>
346+ <property name="xalign">0</property>
347+ <property name="label">Yes</property>
348+ </object>
349+ <packing>
350+ <property name="expand">False</property>
351+ <property name="fill">True</property>
352+ <property name="position">1</property>
353+ </packing>
354+ </child>
355+ </object>
356+ <packing>
357+ <property name="expand">False</property>
358+ <property name="fill">True</property>
359+ <property name="position">1</property>
360+ </packing>
361+ </child>
362+ <child>
363+ <object class="GtkBox" id="box4">
364+ <property name="visible">True</property>
365+ <property name="can_focus">False</property>
366+ <property name="spacing">18</property>
367+ <property name="homogeneous">True</property>
368+ <child>
369+ <object class="GtkLabel" id="label5">
370+ <property name="visible">True</property>
371+ <property name="can_focus">False</property>
372+ <property name="xalign">1</property>
373+ <property name="label" translatable="yes">Type</property>
374+ <style>
375+ <class name="dim-label"/>
376+ </style>
377+ </object>
378+ <packing>
379+ <property name="expand">False</property>
380+ <property name="fill">True</property>
381+ <property name="position">0</property>
382+ </packing>
383+ </child>
384+ <child>
385+ <object class="GtkLabel" id="type_label">
386+ <property name="visible">True</property>
387+ <property name="can_focus">False</property>
388+ <property name="xalign">0</property>
389+ <property name="label">Keyboard</property>
390+ </object>
391+ <packing>
392+ <property name="expand">False</property>
393+ <property name="fill">True</property>
394+ <property name="position">1</property>
395+ </packing>
396+ </child>
397+ </object>
398+ <packing>
399+ <property name="expand">False</property>
400+ <property name="fill">True</property>
401+ <property name="position">2</property>
402+ </packing>
403+ </child>
404+ <child>
405+ <object class="GtkBox" id="box5">
406+ <property name="visible">True</property>
407+ <property name="can_focus">False</property>
408+ <property name="spacing">18</property>
409+ <property name="homogeneous">True</property>
410+ <child>
411+ <object class="GtkLabel" id="label6">
412+ <property name="visible">True</property>
413+ <property name="can_focus">False</property>
414+ <property name="xalign">1</property>
415+ <property name="label" translatable="yes">Address</property>
416+ <style>
417+ <class name="dim-label"/>
418+ </style>
419+ </object>
420+ <packing>
421+ <property name="expand">False</property>
422+ <property name="fill">True</property>
423+ <property name="position">0</property>
424+ </packing>
425+ </child>
426+ <child>
427+ <object class="GtkLabel" id="address_label">
428+ <property name="visible">True</property>
429+ <property name="can_focus">False</property>
430+ <property name="xalign">0</property>
431+ <property name="label">00:00:00:00:00</property>
432+ <property name="selectable">True</property>
433+ </object>
434+ <packing>
435+ <property name="expand">False</property>
436+ <property name="fill">True</property>
437+ <property name="position">1</property>
438+ </packing>
439+ </child>
440+ </object>
441+ <packing>
442+ <property name="expand">False</property>
443+ <property name="fill">True</property>
444+ <property name="position">3</property>
445+ </packing>
446+ </child>
447+ </object>
448+ <packing>
449+ <property name="expand">False</property>
450+ <property name="fill">True</property>
451+ <property name="position">0</property>
452+ </packing>
453+ </child>
454+ <child>
455+ <object class="GtkBox" id="additional_setup_box">
456+ <property name="can_focus">False</property>
457+ <property name="no_show_all">True</property>
458+ <property name="orientation">vertical</property>
459+ <property name="spacing">8</property>
460+ <child>
461+ <placeholder/>
462+ </child>
463+ </object>
464+ <packing>
465+ <property name="expand">True</property>
466+ <property name="fill">True</property>
467+ <property name="position">1</property>
468+ </packing>
469+ </child>
470+ <child>
471+ <object class="GtkBox" id="vbox3">
472+ <property name="visible">True</property>
473+ <property name="can_focus">False</property>
474+ <property name="margin_end">6</property>
475+ <property name="margin_bottom">6</property>
476+ <property name="orientation">vertical</property>
477+ <property name="spacing">6</property>
478+ <child>
479+ <object class="GtkBox" id="mouse_box">
480+ <property name="visible">True</property>
481+ <property name="can_focus">False</property>
482+ <child>
483+ <placeholder/>
484+ </child>
485+ <child>
486+ <object class="GtkLinkButton" id="mouse_link">
487+ <property name="label" translatable="yes">Mouse &amp; Touchpad Settings</property>
488+ <property name="visible">True</property>
489+ <property name="can_focus">True</property>
490+ <property name="receives_default">True</property>
491+ <property name="has_tooltip">False</property>
492+ <property name="use_action_appearance">False</property>
493+ <property name="relief">none</property>
494+ </object>
495+ <packing>
496+ <property name="expand">False</property>
497+ <property name="fill">False</property>
498+ <property name="pack_type">end</property>
499+ <property name="position">1</property>
500+ </packing>
501+ </child>
502+ </object>
503+ <packing>
504+ <property name="expand">False</property>
505+ <property name="fill">True</property>
506+ <property name="position">0</property>
507+ </packing>
508+ </child>
509+ <child>
510+ <object class="GtkBox" id="sound_box">
511+ <property name="visible">True</property>
512+ <property name="can_focus">False</property>
513+ <child>
514+ <placeholder/>
515+ </child>
516+ <child>
517+ <object class="GtkLinkButton" id="sound_link">
518+ <property name="label" translatable="yes">Sound Settings</property>
519+ <property name="visible">True</property>
520+ <property name="can_focus">True</property>
521+ <property name="receives_default">True</property>
522+ <property name="has_tooltip">False</property>
523+ <property name="use_action_appearance">False</property>
524+ <property name="relief">none</property>
525+ </object>
526+ <packing>
527+ <property name="expand">False</property>
528+ <property name="fill">False</property>
529+ <property name="pack_type">end</property>
530+ <property name="position">1</property>
531+ </packing>
532+ </child>
533+ </object>
534+ <packing>
535+ <property name="expand">False</property>
536+ <property name="fill">True</property>
537+ <property name="position">1</property>
538+ </packing>
539+ </child>
540+ <child>
541+ <object class="GtkBox" id="keyboard_box">
542+ <property name="visible">True</property>
543+ <property name="can_focus">False</property>
544+ <child>
545+ <placeholder/>
546+ </child>
547+ <child>
548+ <object class="GtkLinkButton" id="keyboard_link">
549+ <property name="label" translatable="yes">Keyboard Settings</property>
550+ <property name="visible">True</property>
551+ <property name="can_focus">True</property>
552+ <property name="receives_default">True</property>
553+ <property name="has_tooltip">False</property>
554+ <property name="use_action_appearance">False</property>
555+ <property name="relief">none</property>
556+ </object>
557+ <packing>
558+ <property name="expand">False</property>
559+ <property name="fill">False</property>
560+ <property name="pack_type">end</property>
561+ <property name="position">1</property>
562+ </packing>
563+ </child>
564+ </object>
565+ <packing>
566+ <property name="expand">False</property>
567+ <property name="fill">True</property>
568+ <property name="position">2</property>
569+ </packing>
570+ </child>
571+ <child>
572+ <object class="GtkBox" id="send_box">
573+ <property name="visible">True</property>
574+ <property name="can_focus">False</property>
575+ <child>
576+ <placeholder/>
577+ </child>
578+ <child>
579+ <object class="GtkButton" id="send_button">
580+ <property name="label" translatable="yes">Send Filesā€¦</property>
581+ <property name="can_focus">True</property>
582+ <property name="receives_default">True</property>
583+ <property name="use_action_appearance">False</property>
584+ </object>
585+ <packing>
586+ <property name="expand">False</property>
587+ <property name="fill">False</property>
588+ <property name="pack_type">end</property>
589+ <property name="position">1</property>
590+ </packing>
591+ </child>
592+ </object>
593+ <packing>
594+ <property name="expand">False</property>
595+ <property name="fill">True</property>
596+ <property name="position">3</property>
597+ </packing>
598+ </child>
599+ </object>
600+ <packing>
601+ <property name="expand">False</property>
602+ <property name="fill">True</property>
603+ <property name="pack_type">end</property>
604+ <property name="position">2</property>
605+ </packing>
606+ </child>
607+ <child>
608+ <object class="GtkLabel" id="label7">
609+ <property name="visible">True</property>
610+ <property name="can_focus">False</property>
611+ </object>
612+ <packing>
613+ <property name="expand">True</property>
614+ <property name="fill">True</property>
615+ <property name="position">3</property>
616+ </packing>
617+ </child>
618+ </object>
619+ </child>
620+ </object>
621+ </child>
622+ </object>
623+ <packing>
624+ <property name="position">1</property>
625+ </packing>
626+ </child>
627+ <child type="tab">
628+ <object class="GtkLabel" id="label2">
629+ <property name="visible">True</property>
630+ <property name="can_focus">False</property>
631+ <property name="label">properties</property>
632+ </object>
633+ <packing>
634+ <property name="position">1</property>
635+ <property name="tab_fill">False</property>
636+ </packing>
637+ </child>
638+ <child>
639+ <placeholder/>
640+ </child>
641+ </object>
642+ <packing>
643+ <property name="left_attach">1</property>
644+ <property name="top_attach">1</property>
645+ <property name="width">1</property>
646+ <property name="height">1</property>
647+ </packing>
648+ </child>
649+ <child>
650+ <object class="GtkBox" id="box_vis">
651+ <property name="visible">True</property>
652+ <property name="can_focus">False</property>
653+ <property name="margin_bottom">12</property>
654+ <child>
655+ <object class="GtkLabel" id="visible_label">
656+ <property name="visible">True</property>
657+ <property name="can_focus">False</property>
658+ <property name="xalign">1</property>
659+ <property name="mnemonic-widget">switch_discoverable</property>
660+ <property name="label">Visibility of ā€œBastien's computerā€</property>
661+ </object>
662+ <packing>
663+ <property name="expand">False</property>
664+ <property name="fill">True</property>
665+ <property name="padding">6</property>
666+ <property name="position">0</property>
667+ </packing>
668+ </child>
669+ <child>
670+ <object class="GtkSwitch" id="switch_discoverable">
671+ <property name="visible">True</property>
672+ <property name="can_focus">True</property>
673+ <property name="use_action_appearance">False</property>
674+ </object>
675+ <packing>
676+ <property name="expand">False</property>
677+ <property name="fill">True</property>
678+ <property name="position">1</property>
679+ </packing>
680+ </child>
681+ </object>
682+ <packing>
683+ <property name="left_attach">0</property>
684+ <property name="top_attach">0</property>
685+ <property name="width">1</property>
686+ <property name="height">1</property>
687+ </packing>
688+ </child>
689+ </object>
690 </interface>
691--- a/panels/bluetooth/cc-bluetooth-panel.c
692+++ b/panels/bluetooth/cc-bluetooth-panel.c
693@@ -1,6 +1,9 @@
694 /*
695 *
696- * Copyright (C) 2013 Bastien Nocera <hadess@hadess.net>
697+ * BlueZ - Bluetooth protocol stack for Linux
698+ *
699+ * Copyright (C) 2006-2010 Bastien Nocera <hadess@hadess.net>
700+ *
701 *
702 * This program is free software; you can redistribute it and/or modify
703 * it under the terms of the GNU General Public License as published by
704@@ -24,11 +27,14 @@
705
706 #include <glib/gi18n-lib.h>
707 #include <shell/cc-shell.h>
708-#include <bluetooth-settings-widget.h>
709
710 #include "cc-bluetooth-panel.h"
711 #include "cc-bluetooth-resources.h"
712
713+#include <bluetooth-client.h>
714+#include <bluetooth-utils.h>
715+#include <bluetooth-killswitch.h>
716+#include <bluetooth-chooser.h>
717
718 CC_PANEL_REGISTER (CcBluetoothPanel, cc_bluetooth_panel)
719
720@@ -36,32 +42,44 @@
721
722 #define WID(s) GTK_WIDGET (gtk_builder_get_object (self->priv->builder, s))
723
724-#define BLUETOOTH_DISABLED_PAGE "disabled-page"
725-#define BLUETOOTH_HW_DISABLED_PAGE "hw-disabled-page"
726-#define BLUETOOTH_NO_DEVICES_PAGE "no-devices-page"
727-#define BLUETOOTH_WORKING_PAGE "working-page"
728+#define BLUEZ_SERVICE "org.bluez"
729+#define ADAPTER_IFACE "org.bluez.Adapter1"
730+
731+#define KEYBOARD_PREFS "keyboard"
732+#define MOUSE_PREFS "mouse"
733+#define SOUND_PREFS "sound"
734+#define WIZARD "bluetooth-wizard"
735
736 struct CcBluetoothPanelPrivate {
737 GtkBuilder *builder;
738- GtkWidget *stack;
739- GtkWidget *widget;
740- GCancellable *cancellable;
741-
742- /* Killswitch */
743+ GtkWidget *chooser;
744+ char *selected_bdaddr;
745+ BluetoothClient *client;
746+ BluetoothKillswitch *killswitch;
747+ gboolean debug;
748+ GHashTable *connecting_devices;
749 GtkWidget *kill_switch_header;
750- GDBusProxy *rfkill, *properties;
751- gboolean airplane_mode;
752- gboolean hardware_airplane_mode;
753- gboolean has_airplane_mode;
754+ GCancellable *cancellable;
755 };
756
757 static void cc_bluetooth_panel_finalize (GObject *object);
758 static void cc_bluetooth_panel_constructed (GObject *object);
759
760+static void
761+launch_command (const char *command)
762+{
763+ GError *error = NULL;
764+
765+ if (!g_spawn_command_line_async(command, &error)) {
766+ g_warning ("Couldn't execute command '%s': %s\n", command, error->message);
767+ g_error_free (error);
768+ }
769+}
770+
771 static const char *
772 cc_bluetooth_panel_get_help_uri (CcPanel *panel)
773 {
774- return "help:gnome-help/bluetooth";
775+ return "help:gnome-help/bluetooth";
776 }
777
778 static void
779@@ -84,17 +102,148 @@
780 CcBluetoothPanel *self;
781
782 self = CC_BLUETOOTH_PANEL (object);
783-
784 g_cancellable_cancel (self->priv->cancellable);
785 g_clear_object (&self->priv->cancellable);
786
787- g_clear_object (&self->priv->properties);
788- g_clear_object (&self->priv->rfkill);
789+ g_clear_object (&self->priv->builder);
790+ g_clear_object (&self->priv->killswitch);
791+ g_clear_object (&self->priv->client);
792+
793+ g_clear_pointer (&self->priv->connecting_devices, g_hash_table_destroy);
794+ g_clear_pointer (&self->priv->selected_bdaddr, g_free);
795 g_clear_object (&self->priv->kill_switch_header);
796
797 G_OBJECT_CLASS (cc_bluetooth_panel_parent_class)->finalize (object);
798 }
799
800+enum {
801+ CONNECTING_NOTEBOOK_PAGE_SWITCH = 0,
802+ CONNECTING_NOTEBOOK_PAGE_SPINNER = 1
803+};
804+
805+static void
806+set_connecting_page (CcBluetoothPanel *self,
807+ int page)
808+{
809+ if (page == CONNECTING_NOTEBOOK_PAGE_SPINNER)
810+ gtk_spinner_start (GTK_SPINNER (WID ("connecting_spinner")));
811+ gtk_notebook_set_current_page (GTK_NOTEBOOK (WID ("connecting_notebook")), page);
812+ if (page == CONNECTING_NOTEBOOK_PAGE_SWITCH)
813+ gtk_spinner_start (GTK_SPINNER (WID ("connecting_spinner")));
814+}
815+
816+static void
817+remove_connecting (CcBluetoothPanel *self,
818+ const char *bdaddr)
819+{
820+ g_hash_table_remove (self->priv->connecting_devices, bdaddr);
821+}
822+
823+static void
824+add_connecting (CcBluetoothPanel *self,
825+ const char *bdaddr)
826+{
827+ g_hash_table_insert (self->priv->connecting_devices,
828+ g_strdup (bdaddr),
829+ GINT_TO_POINTER (1));
830+}
831+
832+static gboolean
833+is_connecting (CcBluetoothPanel *self,
834+ const char *bdaddr)
835+{
836+ return GPOINTER_TO_INT (g_hash_table_lookup (self->priv->connecting_devices,
837+ bdaddr));
838+}
839+
840+typedef struct {
841+ char *bdaddr;
842+ CcBluetoothPanel *self;
843+} ConnectData;
844+
845+static void
846+connect_done (GObject *source_object,
847+ GAsyncResult *res,
848+ gpointer user_data)
849+{
850+ CcBluetoothPanel *self;
851+ char *bdaddr;
852+ gboolean success;
853+ GError *error = NULL;
854+ ConnectData *data = (ConnectData *) user_data;
855+
856+ success = bluetooth_client_connect_service_finish (BLUETOOTH_CLIENT (source_object),
857+ res, &error);
858+ if (!success && g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
859+ goto out;
860+
861+ self = data->self;
862+
863+ /* Check whether the same device is now selected, and update the UI */
864+ bdaddr = bluetooth_chooser_get_selected_device (BLUETOOTH_CHOOSER (self->priv->chooser));
865+ if (g_strcmp0 (bdaddr, data->bdaddr) == 0) {
866+ GtkSwitch *button;
867+
868+ button = GTK_SWITCH (WID ("switch_connection"));
869+ /* Reset the switch if it failed */
870+ if (success == FALSE)
871+ gtk_switch_set_active (button, !gtk_switch_get_active (button));
872+ set_connecting_page (self, CONNECTING_NOTEBOOK_PAGE_SWITCH);
873+ }
874+
875+ remove_connecting (self, data->bdaddr);
876+
877+ g_free (bdaddr);
878+
879+out:
880+ g_clear_error (&error);
881+ g_free (data->bdaddr);
882+ g_free (data);
883+}
884+
885+static void
886+switch_connected_active_changed (GtkSwitch *button,
887+ GParamSpec *spec,
888+ CcBluetoothPanel *self)
889+{
890+ char *proxy;
891+ GValue value = { 0, };
892+ ConnectData *data;
893+ char *bdaddr;
894+
895+ bdaddr = bluetooth_chooser_get_selected_device (BLUETOOTH_CHOOSER (self->priv->chooser));
896+ if (is_connecting (self, bdaddr)) {
897+ g_free (bdaddr);
898+ return;
899+ }
900+
901+ if (bluetooth_chooser_get_selected_device_info (BLUETOOTH_CHOOSER (self->priv->chooser),
902+ "proxy", &value) == FALSE) {
903+ g_warning ("Could not get D-Bus proxy for selected device");
904+ return;
905+ }
906+ proxy = g_strdup (g_dbus_proxy_get_object_path (g_value_get_object (&value)));
907+ g_value_unset (&value);
908+
909+ if (proxy == NULL)
910+ return;
911+
912+ data = g_new0 (ConnectData, 1);
913+ data->bdaddr = bdaddr;
914+ data->self = self;
915+
916+ bluetooth_client_connect_service (self->priv->client,
917+ proxy,
918+ gtk_switch_get_active (button),
919+ self->priv->cancellable,
920+ connect_done,
921+ data);
922+
923+ add_connecting (self, data->bdaddr);
924+ set_connecting_page (self, CONNECTING_NOTEBOOK_PAGE_SPINNER);
925+ g_free (proxy);
926+}
927+
928 static void
929 cc_bluetooth_panel_constructed (GObject *object)
930 {
931@@ -109,6 +258,120 @@
932 gtk_widget_show_all (self->priv->kill_switch_header);
933 }
934
935+enum {
936+ NOTEBOOK_PAGE_EMPTY = 0,
937+ NOTEBOOK_PAGE_PROPS = 1
938+};
939+
940+static void
941+set_notebook_page (CcBluetoothPanel *self,
942+ int page)
943+{
944+ gtk_notebook_set_current_page (GTK_NOTEBOOK (WID ("props_notebook")), page);
945+}
946+
947+static void
948+cc_bluetooth_panel_update_properties (CcBluetoothPanel *self)
949+{
950+ char *bdaddr;
951+ GtkSwitch *button;
952+
953+ button = GTK_SWITCH (WID ("switch_connection"));
954+ g_signal_handlers_block_by_func (button, switch_connected_active_changed, self);
955+
956+ /* Hide all the buttons now, and show them again if we need to */
957+ gtk_widget_hide (WID ("keyboard_box"));
958+ gtk_widget_hide (WID ("sound_box"));
959+ gtk_widget_hide (WID ("mouse_box"));
960+ gtk_widget_hide (WID ("send_box"));
961+
962+ bdaddr = bluetooth_chooser_get_selected_device (BLUETOOTH_CHOOSER (self->priv->chooser));
963+
964+ if (bdaddr == NULL) {
965+ gtk_widget_set_sensitive (WID ("properties_vbox"), FALSE);
966+ gtk_switch_set_active (button, FALSE);
967+ gtk_widget_set_sensitive (WID ("button_delete"), FALSE);
968+ set_notebook_page (self, NOTEBOOK_PAGE_EMPTY);
969+ } else {
970+ BluetoothType type;
971+ gboolean connected;
972+ GValue value = { 0 };
973+
974+ if (self->priv->debug)
975+ bluetooth_chooser_dump_selected_device (BLUETOOTH_CHOOSER (self->priv->chooser));
976+
977+ gtk_widget_set_sensitive (WID ("properties_vbox"), TRUE);
978+
979+ if (is_connecting (self, bdaddr)) {
980+ gtk_switch_set_active (button, TRUE);
981+ set_connecting_page (self, CONNECTING_NOTEBOOK_PAGE_SPINNER);
982+ } else {
983+ connected = bluetooth_chooser_get_selected_device_is_connected (BLUETOOTH_CHOOSER (self->priv->chooser));
984+ gtk_switch_set_active (button, connected);
985+ set_connecting_page (self, CONNECTING_NOTEBOOK_PAGE_SWITCH);
986+ }
987+
988+ /* Paired */
989+ bluetooth_chooser_get_selected_device_info (BLUETOOTH_CHOOSER (self->priv->chooser),
990+ "paired", &value);
991+ gtk_label_set_text (GTK_LABEL (WID ("paired_label")),
992+ g_value_get_boolean (&value) ? _("Yes") : _("No"));
993+ g_value_unset (&value);
994+
995+ /* UUIDs */
996+ if (bluetooth_chooser_get_selected_device_info (BLUETOOTH_CHOOSER (self->priv->chooser),
997+ "uuids", &value)) {
998+ const char **uuids;
999+ guint i;
1000+
1001+ uuids = (const char **) g_value_get_boxed (&value);
1002+
1003+ gtk_widget_set_sensitive (GTK_WIDGET(button),
1004+ bluetooth_client_get_connectable (uuids));
1005+
1006+ for (i = 0; uuids && uuids[i] != NULL; i++) {
1007+ if (g_str_equal (uuids[i], "OBEXObjectPush")) {
1008+ gtk_widget_show (WID ("send_box"));
1009+ break;
1010+ }
1011+
1012+ }
1013+
1014+ g_value_unset (&value);
1015+ }
1016+
1017+ /* Type */
1018+ type = bluetooth_chooser_get_selected_device_type (BLUETOOTH_CHOOSER (self->priv->chooser));
1019+ gtk_label_set_text (GTK_LABEL (WID ("type_label")), bluetooth_type_to_string (type));
1020+ switch (type) {
1021+ case BLUETOOTH_TYPE_KEYBOARD:
1022+ gtk_widget_show (WID ("keyboard_box"));
1023+ break;
1024+ case BLUETOOTH_TYPE_MOUSE:
1025+ case BLUETOOTH_TYPE_TABLET:
1026+ gtk_widget_show (WID ("mouse_box"));
1027+ break;
1028+ case BLUETOOTH_TYPE_HEADSET:
1029+ case BLUETOOTH_TYPE_HEADPHONES:
1030+ case BLUETOOTH_TYPE_OTHER_AUDIO:
1031+ gtk_widget_show (WID ("sound_box"));
1032+ default:
1033+ /* others? */
1034+ ;
1035+ }
1036+
1037+ gtk_label_set_text (GTK_LABEL (WID ("address_label")), bdaddr);
1038+
1039+ gtk_widget_set_sensitive (WID ("button_delete"), TRUE);
1040+ set_notebook_page (self, NOTEBOOK_PAGE_PROPS);
1041+ }
1042+
1043+ g_free (self->priv->selected_bdaddr);
1044+ self->priv->selected_bdaddr = bdaddr;
1045+
1046+ g_signal_handlers_unblock_by_func (button, switch_connected_active_changed, self);
1047+}
1048+
1049 static void
1050 power_callback (GObject *object,
1051 GParamSpec *spec,
1052@@ -118,117 +381,375 @@
1053
1054 state = gtk_switch_get_active (GTK_SWITCH (WID ("switch_bluetooth")));
1055 g_debug ("Power switched to %s", state ? "on" : "off");
1056- g_dbus_proxy_call (self->priv->properties,
1057- "Set",
1058- g_variant_new_parsed ("('org.gnome.SettingsDaemon.Rfkill', 'BluetoothAirplaneMode', %v)",
1059- g_variant_new_boolean (!state)),
1060- G_DBUS_CALL_FLAGS_NONE,
1061- -1,
1062- self->priv->cancellable,
1063- NULL, NULL);
1064+ bluetooth_killswitch_set_state (self->priv->killswitch,
1065+ state ? BLUETOOTH_KILLSWITCH_STATE_UNBLOCKED : BLUETOOTH_KILLSWITCH_STATE_SOFT_BLOCKED);
1066 }
1067
1068 static void
1069-cc_bluetooth_panel_update_power (CcBluetoothPanel *self)
1070+cc_bluetooth_panel_update_treeview_message (CcBluetoothPanel *self,
1071+ const char *message)
1072 {
1073- GObject *toggle;
1074- gboolean sensitive, powered;
1075- const char *page;
1076+ if (message != NULL) {
1077+ gtk_widget_hide (self->priv->chooser);
1078+ gtk_widget_show (WID ("message_scrolledwindow"));
1079
1080- g_debug ("Updating airplane mode: has_airplane_mode %d, hardware_airplane_mode %d, airplane_mode %d",
1081- self->priv->has_airplane_mode, self->priv->hardware_airplane_mode, self->priv->airplane_mode);
1082+ gtk_label_set_text (GTK_LABEL (WID ("message_label")),
1083+ message);
1084+ } else {
1085+ gtk_widget_hide (WID ("message_scrolledwindow"));
1086+ gtk_widget_show (self->priv->chooser);
1087+ }
1088+}
1089
1090- if (self->priv->has_airplane_mode == FALSE) {
1091- g_debug ("No Bluetooth available");
1092- sensitive = FALSE;
1093- powered = FALSE;
1094- page = BLUETOOTH_NO_DEVICES_PAGE;
1095- } else if (self->priv->hardware_airplane_mode) {
1096- g_debug ("Bluetooth is Hard blocked");
1097- sensitive = FALSE;
1098- powered = FALSE;
1099- page = BLUETOOTH_HW_DISABLED_PAGE;
1100- } else if (self->priv->airplane_mode) {
1101+static void
1102+cc_bluetooth_panel_update_power (CcBluetoothPanel *self)
1103+{
1104+ BluetoothKillswitchState state;
1105+ char *path;
1106+ gboolean powered, sensitive;
1107+
1108+ g_object_get (G_OBJECT (self->priv->client),
1109+ "default-adapter", &path,
1110+ "default-adapter-powered", &powered,
1111+ NULL);
1112+ state = bluetooth_killswitch_get_state (self->priv->killswitch);
1113+
1114+ g_debug ("Updating power, default adapter: %s (powered: %s), killswitch: %s",
1115+ path ? path : "(none)",
1116+ powered ? "on" : "off",
1117+ bluetooth_killswitch_state_to_string (state));
1118+
1119+ if (path == NULL &&
1120+ bluetooth_killswitch_has_killswitches (self->priv->killswitch) &&
1121+ state != BLUETOOTH_KILLSWITCH_STATE_HARD_BLOCKED) {
1122 g_debug ("Default adapter is unpowered, but should be available");
1123 sensitive = TRUE;
1124- powered = FALSE;
1125- page = BLUETOOTH_DISABLED_PAGE;
1126+ cc_bluetooth_panel_update_treeview_message (self, _("Bluetooth is disabled"));
1127+ } else if (path == NULL &&
1128+ state == BLUETOOTH_KILLSWITCH_STATE_HARD_BLOCKED) {
1129+ g_debug ("Bluetooth is Hard blocked");
1130+ sensitive = FALSE;
1131+ cc_bluetooth_panel_update_treeview_message (self, _("Bluetooth is disabled by hardware switch"));
1132+ } else if (path == NULL) {
1133+ sensitive = FALSE;
1134+ g_debug ("No Bluetooth available");
1135+ cc_bluetooth_panel_update_treeview_message (self, _("No Bluetooth adapters found"));
1136 } else {
1137- g_debug ("Bluetooth is available and powered");
1138 sensitive = TRUE;
1139- powered = TRUE;
1140- page = BLUETOOTH_WORKING_PAGE;
1141+ g_debug ("Bluetooth is available and powered");
1142+ cc_bluetooth_panel_update_treeview_message (self, NULL);
1143 }
1144
1145+ g_free (path);
1146 gtk_widget_set_sensitive (WID ("box_power") , sensitive);
1147+ gtk_widget_set_sensitive (WID ("box_vis") , sensitive);
1148+}
1149
1150- toggle = G_OBJECT (WID ("switch_bluetooth"));
1151- g_signal_handlers_block_by_func (toggle, power_callback, self);
1152- gtk_switch_set_active (GTK_SWITCH (toggle), powered);
1153- g_signal_handlers_unblock_by_func (toggle, power_callback, self);
1154+static void
1155+switch_panel (CcBluetoothPanel *self,
1156+ const char *panel)
1157+{
1158+ CcShell *shell;
1159+ GError *error = NULL;
1160+
1161+ shell = cc_panel_get_shell (CC_PANEL (self));
1162+ if (cc_shell_set_active_panel_from_id (shell, panel, NULL, &error) == FALSE)
1163+ {
1164+ g_warning ("Failed to activate '%s' panel: %s", panel, error->message);
1165+ g_error_free (error);
1166+ }
1167+}
1168+
1169+static gboolean
1170+keyboard_callback (GtkButton *button,
1171+ CcBluetoothPanel *self)
1172+{
1173+ switch_panel (self, KEYBOARD_PREFS);
1174+ return TRUE;
1175+}
1176+
1177+static gboolean
1178+mouse_callback (GtkButton *button,
1179+ CcBluetoothPanel *self)
1180+{
1181+ switch_panel (self, MOUSE_PREFS);
1182+ return TRUE;
1183+}
1184
1185- gtk_stack_set_visible_child_name (GTK_STACK (self->priv->stack), page);
1186+static gboolean
1187+sound_callback (GtkButton *button,
1188+ CcBluetoothPanel *self)
1189+{
1190+ switch_panel (self, SOUND_PREFS);
1191+ return TRUE;
1192 }
1193
1194 static void
1195-airplane_mode_changed (GDBusProxy *proxy,
1196- GVariant *changed_properties,
1197- GStrv invalidated_properties,
1198- CcBluetoothPanel *self)
1199+send_callback (GtkButton *button,
1200+ CcBluetoothPanel *self)
1201 {
1202- GVariant *v;
1203+ char *bdaddr, *alias;
1204+
1205+ bdaddr = bluetooth_chooser_get_selected_device (BLUETOOTH_CHOOSER (self->priv->chooser));
1206+ alias = bluetooth_chooser_get_selected_device_name (BLUETOOTH_CHOOSER (self->priv->chooser));
1207
1208- v = g_dbus_proxy_get_cached_property (self->priv->rfkill, "BluetoothAirplaneMode");
1209- self->priv->airplane_mode = g_variant_get_boolean (v);
1210- g_variant_unref (v);
1211+ bluetooth_send_to_address (bdaddr, alias);
1212
1213- v = g_dbus_proxy_get_cached_property (self->priv->rfkill, "BluetoothHardwareAirplaneMode");
1214- self->priv->hardware_airplane_mode = g_variant_get_boolean (v);
1215- g_variant_unref (v);
1216+ g_free (bdaddr);
1217+ g_free (alias);
1218+}
1219
1220- v = g_dbus_proxy_get_cached_property (self->priv->rfkill, "BluetoothHasAirplaneMode");
1221- self->priv->has_airplane_mode = g_variant_get_boolean (v);
1222- g_variant_unref (v);
1223+/* Visibility/Discoverable */
1224+static void discoverable_changed (BluetoothClient *client,
1225+ GParamSpec *spec,
1226+ CcBluetoothPanel *self);
1227
1228- cc_bluetooth_panel_update_power (self);
1229+static void
1230+switch_discoverable_active_changed (GtkSwitch *button,
1231+ GParamSpec *spec,
1232+ CcBluetoothPanel *self)
1233+{
1234+ g_signal_handlers_block_by_func (self->priv->client, discoverable_changed, self);
1235+ g_object_set (G_OBJECT (self->priv->client), "default-adapter-discoverable",
1236+ gtk_switch_get_active (button), NULL);
1237+ g_signal_handlers_unblock_by_func (self->priv->client, discoverable_changed, self);
1238 }
1239
1240 static void
1241-add_stack_page (CcBluetoothPanel *self,
1242- const char *message,
1243- const char *name)
1244+cc_bluetooth_panel_update_visibility (CcBluetoothPanel *self)
1245 {
1246- GtkWidget *label;
1247+ gboolean discoverable;
1248+ GtkSwitch *button;
1249+ char *name;
1250+
1251+ button = GTK_SWITCH (WID ("switch_discoverable"));
1252+ g_object_get (G_OBJECT (self->priv->client), "default-adapter-discoverable", &discoverable, NULL);
1253+ g_signal_handlers_block_by_func (button, switch_discoverable_active_changed, self);
1254+ gtk_switch_set_active (button, discoverable);
1255+ g_signal_handlers_unblock_by_func (button, switch_discoverable_active_changed, self);
1256+
1257+ g_object_get (G_OBJECT (self->priv->client), "default-adapter-name", &name, NULL);
1258+ if (name == NULL) {
1259+ gtk_widget_set_sensitive (WID ("switch_discoverable"), FALSE);
1260+ gtk_widget_set_sensitive (WID ("visible_label"), FALSE);
1261+ gtk_label_set_text (GTK_LABEL (WID ("visible_label")), _("Visibility"));
1262+ } else {
1263+ char *label;
1264+
1265+ label = g_strdup_printf (_("Visibility of ā€œ%sā€"), name);
1266+ g_free (name);
1267+ gtk_label_set_text (GTK_LABEL (WID ("visible_label")), label);
1268+ g_free (label);
1269
1270- label = gtk_label_new (message);
1271- gtk_stack_add_named (GTK_STACK (self->priv->stack), label, name);
1272- gtk_widget_show (label);
1273+ gtk_widget_set_sensitive (WID ("switch_discoverable"), TRUE);
1274+ gtk_widget_set_sensitive (WID ("visible_label"), TRUE);
1275+ }
1276 }
1277
1278 static void
1279-panel_changed (GtkWidget *settings_widget,
1280- const char *panel,
1281- CcBluetoothPanel *self)
1282+discoverable_changed (BluetoothClient *client,
1283+ GParamSpec *spec,
1284+ CcBluetoothPanel *self)
1285 {
1286- CcShell *shell;
1287+ cc_bluetooth_panel_update_visibility (self);
1288+}
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches