Merge lp:~ted/indicator-me/make-it-me into lp:indicator-me

Proposed by Ted Gould
Status: Merged
Merged at revision: not available
Proposed branch: lp:~ted/indicator-me/make-it-me
Merge into: lp:indicator-me
Diff against target: 6269 lines (+231/-5358)
46 files modified
.bzrignore (+10/-4)
autogen.sh (+1/-1)
configure.ac (+10/-31)
data/Makefile.am (+3/-32)
data/icons/16x16/Makefile.am (+1/-1)
data/icons/16x16/actions/Makefile.am (+0/-10)
data/icons/22x22/Makefile.am (+1/-1)
data/icons/22x22/actions/Makefile.am (+0/-10)
data/icons/24x24/Makefile.am (+1/-1)
data/icons/24x24/actions/Makefile.am (+0/-10)
data/icons/32x32/Makefile.am (+1/-1)
data/icons/32x32/actions/Makefile.am (+0/-8)
data/icons/scalable/Makefile.am (+1/-1)
data/icons/scalable/actions/Makefile.am (+0/-10)
data/icons/scalable/actions/system-log-out.svg (+0/-284)
data/icons/scalable/actions/system-restart.svg (+0/-397)
data/icons/scalable/actions/system-shutdown-panel.svg (+0/-247)
data/icons/scalable/actions/system-shutdown.svg (+0/-247)
data/indicator-me.service.in (+2/-2)
data/indicator-session.schemas.in (+0/-17)
data/indicator-session.service.in (+0/-3)
data/indicator-users.service.in (+0/-3)
po/POTFILES.in (+1/-8)
src/Makefile.am (+36/-84)
src/dbus-shared-names.h (+5/-12)
src/gtk-dialog/Makefile.am (+0/-15)
src/gtk-dialog/ck-pk-helper.c (+0/-222)
src/gtk-dialog/ck-pk-helper.h (+0/-32)
src/gtk-dialog/gconf-helper.c (+0/-73)
src/gtk-dialog/gconf-helper.h (+0/-50)
src/gtk-dialog/gtk-logout-helper.c (+0/-173)
src/gtk-dialog/logout-dialog.c (+0/-371)
src/gtk-dialog/logout-dialog.h (+0/-99)
src/indicator-me.c (+101/-532)
src/lock-helper.c (+0/-326)
src/lock-helper.h (+0/-37)
src/me-service-dbus.c (+10/-10)
src/me-service.c (+19/-27)
src/me-service.xml (+1/-1)
src/session-service.c (+0/-339)
src/status-provider-mc5.c (+27/-12)
src/users-service-dbus.c (+0/-1147)
src/users-service-dbus.h (+0/-84)
src/users-service.c (+0/-326)
src/users-service.list (+0/-1)
src/users-service.xml (+0/-56)
To merge this branch: bzr merge lp:~ted/indicator-me/make-it-me
Reviewer Review Type Date Requested Status
Indicator Applet Developers Pending
Review via email: mp+16815@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Ted Gould (ted) wrote :

Removing everything other than status. Now this is all status only. Also, quite a bit of renaming to make things clearer in the future.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file '.bzrignore'
2--- .bzrignore 2009-10-08 14:45:29 +0000
3+++ .bzrignore 2010-01-04 21:25:21 +0000
4@@ -50,7 +50,13 @@
5 src/users-service-client.h
6 src/users-service-marshal.c
7 src/users-service-marshal.h
8-indicator-session-[0-9].[0-9].[0-9].tar.gz
9-indicator-session-[0-9].[0-9].tar.gz
10-indicator-session-[0-9].[0-9].[0-9].tar.gz.asc
11-indicator-session-[0-9].[0-9].tar.gz.asc
12+indicator-me-[0-9].[0-9].[0-9].tar.gz
13+indicator-me-[0-9].[0-9].tar.gz
14+indicator-me-[0-9].[0-9].[0-9].tar.gz.asc
15+indicator-me-[0-9].[0-9].tar.gz.asc
16+src/indicator-me-service
17+src/libme.la
18+src/libme_la-indicator-me.lo
19+po/indicator-me.pot
20+src/me-service-client.h
21+src/me-service-server.h
22
23=== modified file 'autogen.sh'
24--- autogen.sh 2009-08-18 14:17:32 +0000
25+++ autogen.sh 2010-01-04 21:25:21 +0000
26@@ -1,6 +1,6 @@
27 #!/bin/sh
28
29-PKG_NAME="indicator-session"
30+PKG_NAME="indicator-me"
31
32 which gnome-autogen.sh || {
33 echo "You need gnome-common from GNOME SVN"
34
35=== modified file 'configure.ac'
36--- configure.ac 2009-11-04 22:14:49 +0000
37+++ configure.ac 2010-01-04 21:25:21 +0000
38@@ -1,10 +1,11 @@
39
40-AC_INIT(src/indicator-session.c)
41+AC_INIT(indicator-me, 0.0.1, ted@canonical.com)
42+AC_COPYRIGHT([Copyright 2009 Canonical])
43
44 AC_PREREQ(2.53)
45
46 AM_CONFIG_HEADER(config.h)
47-AM_INIT_AUTOMAKE(indicator-session, 0.1.7)
48+AM_INIT_AUTOMAKE(indicator-me, 0.0.1)
49
50 AM_MAINTAINER_MODE
51
52@@ -27,7 +28,7 @@
53
54 GTK_REQUIRED_VERSION=2.12
55 INDICATOR_REQUIRED_VERSION=0.3.0
56-DBUSMENUGTK_REQUIRED_VERSION=0.1.1
57+DBUSMENUGTK_REQUIRED_VERSION=0.2.0
58 POLKIT_REQUIRED_VERSION=0.92
59
60 PKG_CHECK_MODULES(APPLET, gtk+-2.0 >= $GTK_REQUIRED_VERSION
61@@ -37,31 +38,15 @@
62 AC_SUBST(APPLET_LIBS)
63
64 DBUSMENUGLIB_REQUIRED_VERSION=0.1.1
65-LIBEMPATHY_REQUIRED_VERSION=2.27.0
66+TELEPATHYGLIB_REQUIRED_VERSION=0.9.0
67
68 PKG_CHECK_MODULES(STATUSSERVICE, dbusmenu-glib >= $DBUSMENUGLIB_REQUIRED_VERSION
69- libempathy >= $LIBEMPATHY_REQUIRED_VERSION)
70+ indicator >= $INDICATOR_REQUIRED_VERSION
71+ telepathy-glib >= $TELEPATHYGLIB_REQUIRED_VERSION)
72
73 AC_SUBST(STATUSERVICE_CFLAGS)
74 AC_SUBST(STATUSERVICE_LIBS)
75
76-PKG_CHECK_MODULES(USERSSERVICE, dbusmenu-glib >= $DBUSMENUGLIB_REQUIRED_VERSION)
77-
78-AC_SUBST(USERSERVICE_CFLAGS)
79-AC_SUBST(USERSERVICE_LIBS)
80-
81-PKG_CHECK_MODULES(SESSIONSERVICE, dbusmenu-glib >= $DBUSMENUGLIB_REQUIRED_VERSION)
82-
83-AC_SUBST(SESSIONERVICE_CFLAGS)
84-AC_SUBST(SESSIONERVICE_LIBS)
85-
86-PKG_CHECK_MODULES(GTKLOGOUTHELPER, gtk+-2.0 >= $GTK_REQUIRED_VERSION
87- polkit-gobject-1 >= $POLKIT_REQUIRED_VERSION)
88-
89-
90-AC_SUBST(GTKLOGOUTHELPER_CFLAGS)
91-AC_SUBST(GTKLOGOUTHELPER_LIBS)
92-
93 AC_PATH_PROG(GCONFTOOL, gconftool-2)
94 dnl Specify the gconf configuration source,
95 dnl default to xml::$(sysconfdir)/gconf/gconf.xml.defaults
96@@ -84,7 +69,7 @@
97 ###########################
98
99 if test "x$with_localinstall" = "xyes"; then
100- INDICATORDIR="${libdir}/indicators/2/"
101+ INDICATORDIR="${libdir}/indicators/3/"
102 INDICATORICONSDIR="${datadir}/indicator-applet/icons/"
103 else
104 INDICATORDIR=`$PKG_CONFIG --variable=indicatordir indicator`
105@@ -124,7 +109,7 @@
106 # Internationalization
107 ###########################
108
109-GETTEXT_PACKAGE=indicator-session
110+GETTEXT_PACKAGE=indicator-me
111 AC_SUBST(GETTEXT_PACKAGE)
112 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [Name of the default get text domain])
113 AC_DEFINE_PATH(GNOMELOCALEDIR, "${datadir}/locale", [locale directory])
114@@ -138,26 +123,20 @@
115 AC_OUTPUT([
116 Makefile
117 src/Makefile
118-src/gtk-dialog/Makefile
119 data/Makefile
120 data/icons/Makefile
121 data/icons/16x16/Makefile
122 data/icons/16x16/status/Makefile
123-data/icons/16x16/actions/Makefile
124 data/icons/22x22/Makefile
125 data/icons/22x22/status/Makefile
126-data/icons/22x22/actions/Makefile
127 data/icons/24x24/Makefile
128 data/icons/24x24/status/Makefile
129-data/icons/24x24/actions/Makefile
130 data/icons/32x32/Makefile
131 data/icons/32x32/status/Makefile
132-data/icons/32x32/actions/Makefile
133 data/icons/48x48/Makefile
134 data/icons/48x48/status/Makefile
135 data/icons/scalable/Makefile
136 data/icons/scalable/status/Makefile
137-data/icons/scalable/actions/Makefile
138 po/Makefile.in
139 ])
140
141@@ -167,7 +146,7 @@
142
143 AC_MSG_NOTICE([
144
145-SUS Indicator Configuration:
146+Me Indicator Configuration:
147
148 Prefix: $prefix
149 ])
150
151=== modified file 'data/Makefile.am'
152--- data/Makefile.am 2009-09-02 14:17:44 +0000
153+++ data/Makefile.am 2010-01-04 21:25:21 +0000
154@@ -1,45 +1,16 @@
155 SUBDIRS = icons
156
157 dbus_servicesdir = $(DBUSSERVICEDIR)
158-service_in_files = indicator-status.service.in \
159- indicator-users.service.in \
160- indicator-session.service.in
161+service_in_files = indicator-me.service.in
162 dbus_services_DATA = $(service_in_files:.service.in=.service)
163
164 %.service: %.service.in
165 sed -e "s|\@libexecdir\@|$(libexecdir)|" $< > $@
166
167-##############################
168-# GConf Schema
169-##############################
170-
171-schemadir = \
172- $(GCONF_SCHEMA_FILE_DIR)
173-
174-schema_in_files = \
175- indicator-session.schemas.in
176-
177-schema_DATA = \
178- $(schema_in_files:.schemas.in=.schemas)
179-
180-@INTLTOOL_SCHEMAS_RULE@
181-
182-
183-#$(dbus_services_DATA): $(service_in_files) Makefile
184-# sed -e "s|\@libexecdir\@|$(libexecdir)|" $< > $@
185
186 EXTRA_DIST = \
187- $(service_in_files) \
188- $(schema_in_files)
189+ $(service_in_files)
190
191 CLEANFILES = \
192- $(dbus_services_DATA) \
193- $(schema_DATA)
194+ $(dbus_services_DATA)
195
196-if GCONF_SCHEMAS_INSTALL
197-install-data-local:
198- GCONF_CONFIG_SOURCE=$(GCONF_SCHEMA_CONFIG_SOURCE) \
199- gconftool-2 --makefile-install-rule $(schema_DATA)
200-else
201-install-data-local:
202-endif
203
204=== modified file 'data/icons/16x16/Makefile.am'
205--- data/icons/16x16/Makefile.am 2009-08-07 19:10:15 +0000
206+++ data/icons/16x16/Makefile.am 2010-01-04 21:25:21 +0000
207@@ -1,1 +1,1 @@
208-SUBDIRS = status actions
209+SUBDIRS = status
210
211=== removed directory 'data/icons/16x16/actions'
212=== removed file 'data/icons/16x16/actions/Makefile.am'
213--- data/icons/16x16/actions/Makefile.am 2009-10-06 22:51:09 +0000
214+++ data/icons/16x16/actions/Makefile.am 1970-01-01 00:00:00 +0000
215@@ -1,10 +0,0 @@
216-
217-iconsdir = $(INDICATORICONSDIR)/hicolor/16x16/actions
218-
219-icons_DATA = \
220- system-shutdown-panel.png \
221- system-shutdown.png \
222- system-restart.png \
223- system-log-out.png
224-
225-EXTRA_DIST = $(icons_DATA)
226
227=== removed file 'data/icons/16x16/actions/system-log-out.png'
228Binary files data/icons/16x16/actions/system-log-out.png 2009-08-07 19:10:15 +0000 and data/icons/16x16/actions/system-log-out.png 1970-01-01 00:00:00 +0000 differ
229=== removed file 'data/icons/16x16/actions/system-restart.png'
230Binary files data/icons/16x16/actions/system-restart.png 2009-08-07 19:10:15 +0000 and data/icons/16x16/actions/system-restart.png 1970-01-01 00:00:00 +0000 differ
231=== removed file 'data/icons/16x16/actions/system-shutdown-panel.png'
232Binary files data/icons/16x16/actions/system-shutdown-panel.png 2009-10-06 22:51:09 +0000 and data/icons/16x16/actions/system-shutdown-panel.png 1970-01-01 00:00:00 +0000 differ
233=== removed file 'data/icons/16x16/actions/system-shutdown.png'
234Binary files data/icons/16x16/actions/system-shutdown.png 2009-08-07 19:10:15 +0000 and data/icons/16x16/actions/system-shutdown.png 1970-01-01 00:00:00 +0000 differ
235=== modified file 'data/icons/16x16/status/user-invisible.png' (properties changed: +x to -x)
236=== modified file 'data/icons/22x22/Makefile.am'
237--- data/icons/22x22/Makefile.am 2009-08-07 19:10:15 +0000
238+++ data/icons/22x22/Makefile.am 2010-01-04 21:25:21 +0000
239@@ -1,1 +1,1 @@
240-SUBDIRS = status actions
241+SUBDIRS = status
242
243=== removed directory 'data/icons/22x22/actions'
244=== removed file 'data/icons/22x22/actions/Makefile.am'
245--- data/icons/22x22/actions/Makefile.am 2009-10-06 22:51:09 +0000
246+++ data/icons/22x22/actions/Makefile.am 1970-01-01 00:00:00 +0000
247@@ -1,10 +0,0 @@
248-
249-iconsdir = $(INDICATORICONSDIR)/hicolor/22x22/actions
250-
251-icons_DATA = \
252- system-shutdown-panel.png \
253- system-shutdown.png \
254- system-restart.png \
255- system-log-out.png
256-
257-EXTRA_DIST = $(icons_DATA)
258
259=== removed file 'data/icons/22x22/actions/system-log-out.png'
260Binary files data/icons/22x22/actions/system-log-out.png 2009-08-07 19:10:15 +0000 and data/icons/22x22/actions/system-log-out.png 1970-01-01 00:00:00 +0000 differ
261=== removed file 'data/icons/22x22/actions/system-restart.png'
262Binary files data/icons/22x22/actions/system-restart.png 2009-08-07 19:10:15 +0000 and data/icons/22x22/actions/system-restart.png 1970-01-01 00:00:00 +0000 differ
263=== removed file 'data/icons/22x22/actions/system-shutdown-panel.png'
264Binary files data/icons/22x22/actions/system-shutdown-panel.png 2009-10-06 22:51:09 +0000 and data/icons/22x22/actions/system-shutdown-panel.png 1970-01-01 00:00:00 +0000 differ
265=== removed file 'data/icons/22x22/actions/system-shutdown.png'
266Binary files data/icons/22x22/actions/system-shutdown.png 2009-08-07 19:10:15 +0000 and data/icons/22x22/actions/system-shutdown.png 1970-01-01 00:00:00 +0000 differ
267=== modified file 'data/icons/22x22/status/user-invisible.png' (properties changed: +x to -x)
268=== modified file 'data/icons/24x24/Makefile.am'
269--- data/icons/24x24/Makefile.am 2009-08-07 19:10:15 +0000
270+++ data/icons/24x24/Makefile.am 2010-01-04 21:25:21 +0000
271@@ -1,1 +1,1 @@
272-SUBDIRS = status actions
273+SUBDIRS = status
274
275=== removed directory 'data/icons/24x24/actions'
276=== removed file 'data/icons/24x24/actions/Makefile.am'
277--- data/icons/24x24/actions/Makefile.am 2009-10-06 22:51:09 +0000
278+++ data/icons/24x24/actions/Makefile.am 1970-01-01 00:00:00 +0000
279@@ -1,10 +0,0 @@
280-
281-iconsdir = $(INDICATORICONSDIR)/hicolor/24x24/actions
282-
283-icons_DATA = \
284- system-shutdown-panel.png \
285- system-shutdown.png \
286- system-restart.png \
287- system-log-out.png
288-
289-EXTRA_DIST = $(icons_DATA)
290
291=== removed file 'data/icons/24x24/actions/system-log-out.png'
292Binary files data/icons/24x24/actions/system-log-out.png 2009-08-07 19:10:15 +0000 and data/icons/24x24/actions/system-log-out.png 1970-01-01 00:00:00 +0000 differ
293=== removed file 'data/icons/24x24/actions/system-restart.png'
294Binary files data/icons/24x24/actions/system-restart.png 2009-08-07 19:10:15 +0000 and data/icons/24x24/actions/system-restart.png 1970-01-01 00:00:00 +0000 differ
295=== removed file 'data/icons/24x24/actions/system-shutdown-panel.png'
296Binary files data/icons/24x24/actions/system-shutdown-panel.png 2009-10-06 22:51:09 +0000 and data/icons/24x24/actions/system-shutdown-panel.png 1970-01-01 00:00:00 +0000 differ
297=== removed file 'data/icons/24x24/actions/system-shutdown.png'
298Binary files data/icons/24x24/actions/system-shutdown.png 2009-08-07 19:10:15 +0000 and data/icons/24x24/actions/system-shutdown.png 1970-01-01 00:00:00 +0000 differ
299=== modified file 'data/icons/24x24/status/user-invisible.png' (properties changed: +x to -x)
300=== modified file 'data/icons/32x32/Makefile.am'
301--- data/icons/32x32/Makefile.am 2009-08-07 19:10:15 +0000
302+++ data/icons/32x32/Makefile.am 2010-01-04 21:25:21 +0000
303@@ -1,1 +1,1 @@
304-SUBDIRS = status actions
305+SUBDIRS = status
306
307=== removed directory 'data/icons/32x32/actions'
308=== removed file 'data/icons/32x32/actions/Makefile.am'
309--- data/icons/32x32/actions/Makefile.am 2009-08-13 04:47:41 +0000
310+++ data/icons/32x32/actions/Makefile.am 1970-01-01 00:00:00 +0000
311@@ -1,8 +0,0 @@
312-
313-iconsdir = $(INDICATORICONSDIR)/hicolor/32x32/actions
314-
315-icons_DATA = \
316- system-restart.png \
317- system-log-out.png
318-
319-EXTRA_DIST = $(icons_DATA)
320
321=== removed file 'data/icons/32x32/actions/system-log-out.png'
322Binary files data/icons/32x32/actions/system-log-out.png 2009-08-07 19:10:15 +0000 and data/icons/32x32/actions/system-log-out.png 1970-01-01 00:00:00 +0000 differ
323=== removed file 'data/icons/32x32/actions/system-restart.png'
324Binary files data/icons/32x32/actions/system-restart.png 2009-08-07 19:10:15 +0000 and data/icons/32x32/actions/system-restart.png 1970-01-01 00:00:00 +0000 differ
325=== modified file 'data/icons/32x32/status/user-invisible.png' (properties changed: +x to -x)
326=== modified file 'data/icons/48x48/status/user-invisible.png' (properties changed: +x to -x)
327=== modified file 'data/icons/scalable/Makefile.am'
328--- data/icons/scalable/Makefile.am 2009-08-07 19:10:15 +0000
329+++ data/icons/scalable/Makefile.am 2010-01-04 21:25:21 +0000
330@@ -1,1 +1,1 @@
331-SUBDIRS = status actions
332+SUBDIRS = status
333
334=== removed directory 'data/icons/scalable/actions'
335=== removed file 'data/icons/scalable/actions/Makefile.am'
336--- data/icons/scalable/actions/Makefile.am 2009-10-06 22:51:09 +0000
337+++ data/icons/scalable/actions/Makefile.am 1970-01-01 00:00:00 +0000
338@@ -1,10 +0,0 @@
339-
340-iconsdir = $(INDICATORICONSDIR)/hicolor/scalable/actions
341-
342-icons_DATA = \
343- system-shutdown-panel.svg \
344- system-restart.svg \
345- system-log-out.svg \
346- system-shutdown.svg
347-
348-EXTRA_DIST = $(icons_DATA)
349
350=== removed file 'data/icons/scalable/actions/system-log-out.svg'
351--- data/icons/scalable/actions/system-log-out.svg 2009-08-07 19:10:15 +0000
352+++ data/icons/scalable/actions/system-log-out.svg 1970-01-01 00:00:00 +0000
353@@ -1,284 +0,0 @@
354-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
355-<!-- Created with Inkscape (http://www.inkscape.org/) -->
356-<svg
357- xmlns:dc="http://purl.org/dc/elements/1.1/"
358- xmlns:cc="http://web.resource.org/cc/"
359- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
360- xmlns:svg="http://www.w3.org/2000/svg"
361- xmlns="http://www.w3.org/2000/svg"
362- xmlns:xlink="http://www.w3.org/1999/xlink"
363- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
364- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
365- width="48"
366- height="48"
367- id="svg5157"
368- sodipodi:version="0.32"
369- inkscape:version="0.45"
370- version="1.0"
371- sodipodi:docname="system-log-out.svg"
372- sodipodi:docbase="/home/dobey/Projects/gnome-icon-theme/scalable/actions"
373- inkscape:output_extension="org.inkscape.output.svg.inkscape">
374- <defs
375- id="defs5159">
376- <linearGradient
377- inkscape:collect="always"
378- id="linearGradient7130">
379- <stop
380- style="stop-color:#4e9a06;stop-opacity:1"
381- offset="0"
382- id="stop7132" />
383- <stop
384- style="stop-color:#73d216;stop-opacity:1"
385- offset="1"
386- id="stop7134" />
387- </linearGradient>
388- <linearGradient
389- id="linearGradient7121">
390- <stop
391- style="stop-color:#ffffff;stop-opacity:1;"
392- offset="0"
393- id="stop7123" />
394- <stop
395- style="stop-color:#8ae234;stop-opacity:1"
396- offset="1"
397- id="stop7125" />
398- </linearGradient>
399- <linearGradient
400- id="linearGradient6998"
401- inkscape:collect="always">
402- <stop
403- id="stop7000"
404- offset="0"
405- style="stop-color:#000000;stop-opacity:1;" />
406- <stop
407- id="stop7002"
408- offset="1"
409- style="stop-color:#000000;stop-opacity:0;" />
410- </linearGradient>
411- <linearGradient
412- inkscape:collect="always"
413- xlink:href="#linearGradient7130"
414- id="linearGradient7145"
415- gradientUnits="userSpaceOnUse"
416- x1="11.5"
417- y1="68.75"
418- x2="-13.247213"
419- y2="21.843145" />
420- <linearGradient
421- inkscape:collect="always"
422- xlink:href="#linearGradient7121"
423- id="linearGradient7147"
424- gradientUnits="userSpaceOnUse"
425- x1="-33.040741"
426- y1="10.966461"
427- x2="-30.919424"
428- y2="17.448257" />
429- <radialGradient
430- inkscape:collect="always"
431- xlink:href="#linearGradient6998"
432- id="radialGradient7161"
433- gradientUnits="userSpaceOnUse"
434- gradientTransform="matrix(1,0,0,0.3222749,0,20.728756)"
435- cx="19.688505"
436- cy="30.585787"
437- fx="19.688505"
438- fy="30.585787"
439- r="4.6624851" />
440- <radialGradient
441- inkscape:collect="always"
442- xlink:href="#linearGradient6998"
443- id="radialGradient7163"
444- gradientUnits="userSpaceOnUse"
445- gradientTransform="matrix(1,0,0,0.3222749,0,20.728756)"
446- cx="19.688505"
447- cy="30.585787"
448- fx="19.688505"
449- fy="30.585787"
450- r="4.6624851" />
451- </defs>
452- <sodipodi:namedview
453- id="base"
454- pagecolor="#ffffff"
455- bordercolor="#666666"
456- borderopacity="1.0"
457- gridtolerance="10000"
458- guidetolerance="10"
459- objecttolerance="10"
460- inkscape:pageopacity="0.0"
461- inkscape:pageshadow="2"
462- inkscape:zoom="1"
463- inkscape:cx="197.95843"
464- inkscape:cy="28.49025"
465- inkscape:document-units="px"
466- inkscape:current-layer="layer2"
467- width="48px"
468- height="48px"
469- inkscape:window-width="872"
470- inkscape:window-height="624"
471- inkscape:window-x="684"
472- inkscape:window-y="208"
473- showborder="false"
474- inkscape:showpageshadow="false"
475- showgrid="false"
476- showguides="true"
477- inkscape:guide-bbox="true"
478- gridspacingx="0.5px"
479- gridspacingy="0.5px"
480- gridempspacing="2"
481- inkscape:grid-points="true" />
482- <metadata
483- id="metadata5162">
484- <rdf:RDF>
485- <cc:Work
486- rdf:about="">
487- <dc:format>image/svg+xml</dc:format>
488- <dc:type
489- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
490- <dc:title>System-log-out</dc:title>
491- <dc:date>2007-08-27</dc:date>
492- <dc:creator>
493- <cc:Agent>
494- <dc:title>Lapo Calamandrei</dc:title>
495- </cc:Agent>
496- </dc:creator>
497- <dc:source />
498- <cc:license
499- rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
500- <dc:contributor>
501- <cc:Agent>
502- <dc:title>Kalle Persson</dc:title>
503- </cc:Agent>
504- </dc:contributor>
505- <dc:subject>
506- <rdf:Bag>
507- <rdf:li>logout</rdf:li>
508- <rdf:li>exit</rdf:li>
509- <rdf:li>man</rdf:li>
510- <rdf:li>sign</rdf:li>
511- <rdf:li>running</rdf:li>
512- </rdf:Bag>
513- </dc:subject>
514- </cc:Work>
515- <cc:License
516- rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
517- <cc:permits
518- rdf:resource="http://web.resource.org/cc/Reproduction" />
519- <cc:permits
520- rdf:resource="http://web.resource.org/cc/Distribution" />
521- <cc:requires
522- rdf:resource="http://web.resource.org/cc/Notice" />
523- <cc:permits
524- rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
525- <cc:requires
526- rdf:resource="http://web.resource.org/cc/ShareAlike" />
527- <cc:requires
528- rdf:resource="http://web.resource.org/cc/SourceCode" />
529- </cc:License>
530- </rdf:RDF>
531- </metadata>
532- <g
533- inkscape:label="shadow"
534- inkscape:groupmode="layer"
535- id="layer1"
536- style="display:inline">
537- <g
538- id="g6227"
539- transform="matrix(0.6759778,0,0,0.8422279,-72.059226,25.879981)"
540- style="opacity:0.33000004" />
541- <g
542- id="g7008"
543- style="opacity:0.5"
544- transform="matrix(1.2209709,0,0,1.465165,4.32932,-3.7089664)">
545- <path
546- transform="matrix(1.356682,0,0,1.1785115,-7.0105312,-5.8165354)"
547- d="M 24.35099 30.585787 A 4.6624851 1.5026019 0 1 1 15.02602,30.585787 A 4.6624851 1.5026019 0 1 1 24.35099 30.585787 z"
548- sodipodi:ry="1.5026019"
549- sodipodi:rx="4.6624851"
550- sodipodi:cy="30.585787"
551- sodipodi:cx="19.688505"
552- id="path6984"
553- style="opacity:0.5;fill:url(#radialGradient7161);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.69999992;stroke-opacity:1"
554- sodipodi:type="arc" />
555- <path
556- transform="matrix(3.7061179,0,0,1.3310245,-58.247641,-11.710432)"
557- d="M 24.35099 30.585787 A 4.6624851 1.5026019 0 1 1 15.02602,30.585787 A 4.6624851 1.5026019 0 1 1 24.35099 30.585787 z"
558- sodipodi:ry="1.5026019"
559- sodipodi:rx="4.6624851"
560- sodipodi:cy="30.585787"
561- sodipodi:cx="19.688505"
562- id="path6986"
563- style="opacity:0.25;fill:url(#radialGradient7163);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0.69999992;stroke-opacity:1"
564- sodipodi:type="arc" />
565- </g>
566- </g>
567- <g
568- inkscape:groupmode="layer"
569- id="layer2"
570- inkscape:label="omino">
571- <g
572- id="g7138"
573- transform="translate(40,0)">
574- <g
575- id="g7094">
576- <path
577- id="path5955"
578- d="M -7.5,5.5 C -9.708,5.5 -11.5,7.292 -11.5,9.5 C -11.5,11.708 -9.7080001,13.5 -7.5,13.5 C -5.292,13.5 -3.5000001,11.708 -3.5,9.5 C -3.5,7.292 -5.2920001,5.5 -7.5,5.5 z M -20.6875,11.5 C -21.228728,11.552698 -21.725172,11.823486 -22.0625,12.25 L -26.0625,17.25 C -26.752856,18.112945 -26.612945,19.372144 -25.75,20.0625 C -24.887055,20.752856 -23.627856,20.612945 -22.9375,19.75 L -19.53125,15.5 L -15.75,15.5 L -22.1875,23.3125 C -22.420945,23.645583 -22.50685,24.06221 -22.5,24.5 L -22.5,31.5 L -30.5,31.5 L -30.5,35.5 L -20.5,35.5 C -19.395476,35.49989 -18.50011,34.604524 -18.5,33.5 L -18.5,27.3125 L -13.5,32.3125 L -13.5,40.5 L -9.5,40.5 L -9.5,31.5 L -9.5,30.65625 L -10.09375,30.09375 L -14.84375,25.34375 L -11.5,21.28125 L -11.5,22.5 C -11.49989,23.604524 -10.604524,24.49989 -9.5,24.5 L -2.5,24.5 C -1.778728,24.510201 -1.113613,24.122995 -0.75,23.5 C -0.386387,22.877006 -0.386387,22.122995 -0.75,21.5 C -1.113613,20.877004 -1.778728,20.489799 -2.5,20.5 L -7.5,20.5 L -7.5,16 C -10.390638,16 -12.843604,14.110886 -13.6875,11.5 L -20.5,11.5 C -20.562466,11.497069 -20.625034,11.497069 -20.6875,11.5 z "
579- style="opacity:1;fill:url(#linearGradient7145);fill-opacity:1;fill-rule:evenodd;stroke:#4e9a06;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline" />
580- </g>
581- <path
582- d="M -20.625,12.5 C -20.883516,12.532601 -21.119099,12.669978 -21.28125,12.875 L -25.28125,17.875 C -25.632167,18.313646 -25.563646,18.930333 -25.125,19.28125 C -24.686354,19.632167 -24.069667,19.563646 -23.71875,19.125 L -20.3125,14.875 C -20.122073,14.638438 -19.834933,14.500611 -19.53125,14.5 L -15.75,14.5 C -15.36741,14.504084 -15.020291,14.724946 -14.854508,15.069775 C -14.688724,15.414605 -14.733008,15.823641 -14.96875,16.125 L -21.375,23.875 C -21.378721,23.880309 -21.37135,23.900494 -21.375,23.90625 L -21.40625,23.9375 C -21.46879,24.048638 -21.50412,24.205427 -21.5,24.46875 C -21.499838,24.479166 -21.499838,24.489584 -21.5,24.5 L -21.5,31.5 C -21.503016,32.051031 -21.948969,32.496984 -22.5,32.5 L -29.5,32.5 L -29.5,34.5 L -20.5,34.5 C -19.938773,34.499944 -19.500056,34.061227 -19.5,33.5 L -19.5,27.3125 C -19.504078,26.903415 -19.259899,26.532643 -18.882467,26.374807 C -18.505035,26.216972 -18.069603,26.303544 -17.78125,26.59375 L -12.78125,31.59375 C -12.595622,31.786381 -12.494406,32.045043 -12.5,32.3125 L -12.5,39.5 L -10.5,39.5 L -10.5,31.5 L -10.5,31.09375 L -10.78125,30.8125 C -10.791666,30.812662 -10.802084,30.812662 -10.8125,30.8125 L -15.5625,26.0625 C -15.923992,25.696513 -15.95096,25.116711 -15.625,24.71875 L -12.28125,20.65625 C -12.013038,20.330928 -11.570348,20.207488 -11.172497,20.347084 C -10.774646,20.486681 -10.506139,20.859664 -10.5,21.28125 L -10.5,22.5 C -10.499944,23.061227 -10.061227,23.499944 -9.5,23.5 L -2.5,23.5 C -2.1471898,23.50499 -1.8109749,23.318639 -1.625,23 C -1.439414,22.682027 -1.4394134,22.317974 -1.625,22 C -1.8109749,21.68136 -2.1471889,21.49501 -2.5,21.5 L -7.5,21.5 C -8.0510308,21.496984 -8.4969843,21.051031 -8.5,20.5 L -8.5,16.84375 C -11.109944,16.483168 -13.278833,14.83457 -14.3125,12.5 L -20.5,12.5 C -20.520828,12.500648 -20.541672,12.500648 -20.5625,12.5 C -20.578034,12.499271 -20.578204,12.5 -20.59375,12.5 C -20.609296,12.5 -20.609466,12.499271 -20.625,12.5 z "
583- id="path7104"
584- style="opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#8ae234;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
585- inkscape:original="M -20.6875 11.5 C -21.228728 11.552698 -21.725172 11.823486 -22.0625 12.25 L -26.0625 17.25 C -26.752856 18.112945 -26.612945 19.372144 -25.75 20.0625 C -24.887055 20.752856 -23.627856 20.612945 -22.9375 19.75 L -19.53125 15.5 L -15.75 15.5 L -22.1875 23.3125 C -22.420945 23.645583 -22.50685 24.06221 -22.5 24.5 L -22.5 31.5 L -30.5 31.5 L -30.5 35.5 L -20.5 35.5 C -19.395476 35.49989 -18.50011 34.604524 -18.5 33.5 L -18.5 27.3125 L -13.5 32.3125 L -13.5 40.5 L -9.5 40.5 L -9.5 31.5 L -9.5 30.65625 L -10.09375 30.09375 L -14.84375 25.34375 L -11.5 21.28125 L -11.5 22.5 C -11.49989 23.604524 -10.604524 24.49989 -9.5 24.5 L -2.5 24.5 C -1.778728 24.510201 -1.113613 24.122995 -0.75 23.5 C -0.386387 22.877006 -0.386387 22.122995 -0.75 21.5 C -1.113613 20.877004 -1.778728 20.489799 -2.5 20.5 L -7.5 20.5 L -7.5 16 C -10.390638 16 -12.843604 14.110886 -13.6875 11.5 L -20.5 11.5 C -20.562466 11.497069 -20.625034 11.497069 -20.6875 11.5 z "
586- inkscape:radius="-1.0054175"
587- sodipodi:type="inkscape:offset" />
588- <path
589- sodipodi:nodetypes="cccccccsscccscccccccccccccsccccc"
590- id="path7106"
591- d="M -1.625,22 C -1.810975,21.68136 -2.147189,21.49501 -2.5,21.5 L -7.5,21.5 C -8.051031,21.496984 -8.496984,21.051031 -8.5,20.5 L -8.5,16.84375 C -11.109944,16.483168 -13.278833,14.83457 -14.3125,12.5 L -20.5,12.5 C -20.520828,12.500648 -20.541672,12.500648 -20.5625,12.5 C -20.578034,12.499271 -20.578204,12.5 -20.59375,12.5 C -20.609296,12.5 -20.609466,12.499271 -20.625,12.5 C -20.883516,12.532601 -21.119099,12.669978 -21.28125,12.875 L -25.28125,17.875 C -25.632167,18.313646 -25.563646,18.930333 -25.125,19.28125 M -10.5,31.5 L -10.5,31.09375 L -10.78125,30.8125 C -10.791666,30.812662 -10.802084,30.812662 -10.8125,30.8125 L -15.5625,26.0625 C -15.923992,25.696513 -15.95096,25.116711 -15.625,24.71875 M -12.5,32.3125 L -12.5,39.5 M -14.854508,15.069775 C -14.688724,15.414605 -14.733008,15.823641 -14.96875,16.125 L -21.375,23.875 C -21.378721,23.880309 -21.37135,23.900494 -21.375,23.90625 L -21.40625,23.9375 C -21.46879,24.048638 -21.50412,24.205427 -21.5,24.46875 C -21.499838,24.479166 -21.499838,24.489584 -21.5,24.5 L -21.5,31.5 C -21.503016,32.051031 -21.948969,32.496984 -22.5,32.5 L -29.5,32.5 L -29.5,34.5"
592- style="opacity:0.3;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;display:inline" />
593- <path
594- inkscape:export-ydpi="90"
595- inkscape:export-xdpi="90"
596- inkscape:export-filename="/home/kalle/Desktop/system-log-out.png"
597- sodipodi:type="arc"
598- style="color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient7147);stroke-width:0.6666649;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
599- id="path7119"
600- sodipodi:cx="-31.5"
601- sodipodi:cy="16"
602- sodipodi:rx="2"
603- sodipodi:ry="2"
604- d="M -29.5 16 A 2 2 0 1 1 -33.5,16 A 2 2 0 1 1 -29.5 16 z"
605- transform="matrix(1.500004,0,0,1.500004,39.750134,-14.500064)" />
606- </g>
607- <g
608- id="g7055"
609- transform="translate(130,0)">
610- <path
611- sodipodi:nodetypes="ccc"
612- id="path7045"
613- d="M -28.5,33.5 L -20.5,33.5 L -20.5,24.5"
614- style="opacity:0.4089219;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline" />
615- <path
616- sodipodi:nodetypes="ccc"
617- id="path7047"
618- d="M -24.5,18.5 L -20.5,13.5 L -11.5,13.5"
619- style="opacity:0.5;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
620- <path
621- sodipodi:nodetypes="ccc"
622- id="path7049"
623- d="M -2.5,22.5 L -9.5,22.5 L -9.5,13.5"
624- style="opacity:0.5;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
625- <path
626- sodipodi:nodetypes="ccc"
627- id="path7051"
628- d="M -11.5,38.5 L -11.5,31.5 L -18.5,24.5"
629- style="opacity:0.5;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
630- <path
631- sodipodi:nodetypes="cc"
632- id="path7053"
633- d="M -10,14 L -19.5,25.5"
634- style="opacity:0.5;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
635- </g>
636- </g>
637-</svg>
638
639=== removed file 'data/icons/scalable/actions/system-restart.svg'
640--- data/icons/scalable/actions/system-restart.svg 2009-08-07 19:10:15 +0000
641+++ data/icons/scalable/actions/system-restart.svg 1970-01-01 00:00:00 +0000
642@@ -1,397 +0,0 @@
643-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
644-<!-- Created with Inkscape (http://www.inkscape.org/) -->
645-<svg
646- xmlns:dc="http://purl.org/dc/elements/1.1/"
647- xmlns:cc="http://web.resource.org/cc/"
648- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
649- xmlns:svg="http://www.w3.org/2000/svg"
650- xmlns="http://www.w3.org/2000/svg"
651- xmlns:xlink="http://www.w3.org/1999/xlink"
652- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
653- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
654- inkscape:export-ydpi="90.000000"
655- inkscape:export-xdpi="90.000000"
656- inkscape:export-filename="c:\Tango\git\view-refresh.png"
657- width="48"
658- height="48"
659- id="svg11300"
660- sodipodi:version="0.32"
661- inkscape:version="0.45"
662- sodipodi:docbase="/home/dobey/Projects/gnome-icon-theme/scalable/actions"
663- sodipodi:docname="view-refresh.svg"
664- version="1.0"
665- inkscape:r_cx="true"
666- inkscape:r_cy="true"
667- inkscape:output_extension="org.inkscape.output.svg.inkscape">
668- <defs
669- id="defs3">
670- <linearGradient
671- inkscape:collect="always"
672- id="linearGradient5335">
673- <stop
674- style="stop-color:#ffffff;stop-opacity:1;"
675- offset="0"
676- id="stop5337" />
677- <stop
678- style="stop-color:#ffffff;stop-opacity:0;"
679- offset="1"
680- id="stop5339" />
681- </linearGradient>
682- <linearGradient
683- id="linearGradient5313">
684- <stop
685- id="stop5315"
686- offset="0"
687- style="stop-color:#99b8df;stop-opacity:1" />
688- <stop
689- style="stop-color:#3969a8;stop-opacity:1;"
690- offset="0.23705086"
691- id="stop5333" />
692- <stop
693- style="stop-color:#4f7eba;stop-opacity:1;"
694- offset="0.54706067"
695- id="stop5317" />
696- <stop
697- id="stop5321"
698- offset="0.74557692"
699- style="stop-color:#96b6d7;stop-opacity:1" />
700- <stop
701- style="stop-color:#a0bddc;stop-opacity:1"
702- offset="0.87321436"
703- id="stop5331" />
704- <stop
705- id="stop5319"
706- offset="1"
707- style="stop-color:#729fcf;stop-opacity:1;" />
708- </linearGradient>
709- <linearGradient
710- id="linearGradient8152">
711- <stop
712- style="stop-color:#3465a4;stop-opacity:1;"
713- offset="0"
714- id="stop8154" />
715- <stop
716- id="stop3174"
717- offset="0.5"
718- style="stop-color:#4f7eba;stop-opacity:1;" />
719- <stop
720- style="stop-color:#729fcf;stop-opacity:1;"
721- offset="1"
722- id="stop8156" />
723- </linearGradient>
724- <linearGradient
725- id="linearGradient3207">
726- <stop
727- style="stop-color:#eeeeec;stop-opacity:0.47058824;"
728- offset="0"
729- id="stop3209" />
730- <stop
731- style="stop-color:#eeeeec;stop-opacity:0;"
732- offset="1"
733- id="stop3211" />
734- </linearGradient>
735- <linearGradient
736- inkscape:collect="always"
737- id="linearGradient2847">
738- <stop
739- style="stop-color:#3465a4;stop-opacity:1;"
740- offset="0"
741- id="stop2849" />
742- <stop
743- style="stop-color:#3465a4;stop-opacity:0;"
744- offset="1"
745- id="stop2851" />
746- </linearGradient>
747- <linearGradient
748- id="linearGradient2831">
749- <stop
750- style="stop-color:#3465a4;stop-opacity:1;"
751- offset="0"
752- id="stop2833" />
753- <stop
754- id="stop2855"
755- offset="0.33333334"
756- style="stop-color:#5b86be;stop-opacity:1;" />
757- <stop
758- style="stop-color:#83a8d8;stop-opacity:0;"
759- offset="1"
760- id="stop2835" />
761- </linearGradient>
762- <linearGradient
763- inkscape:collect="always"
764- id="linearGradient8662">
765- <stop
766- style="stop-color:#000000;stop-opacity:1;"
767- offset="0"
768- id="stop8664" />
769- <stop
770- style="stop-color:#000000;stop-opacity:0;"
771- offset="1"
772- id="stop8666" />
773- </linearGradient>
774- <linearGradient
775- inkscape:collect="always"
776- xlink:href="#linearGradient2831"
777- id="linearGradient1486"
778- gradientUnits="userSpaceOnUse"
779- gradientTransform="matrix(1.0818662,0,0,1.1166851,-0.8207482,-1.8622434)"
780- x1="13.478554"
781- y1="10.612206"
782- x2="15.419417"
783- y2="19.115122" />
784- <linearGradient
785- inkscape:collect="always"
786- xlink:href="#linearGradient2847"
787- id="linearGradient1488"
788- gradientUnits="userSpaceOnUse"
789- gradientTransform="matrix(-1.0818662,0,0,-1.1166851,50.09459,49.644854)"
790- x1="37.128052"
791- y1="29.729605"
792- x2="37.40255"
793- y2="26.800913" />
794- <radialGradient
795- inkscape:collect="always"
796- xlink:href="#linearGradient8662"
797- id="radialGradient1503"
798- gradientUnits="userSpaceOnUse"
799- gradientTransform="matrix(1,0,0,0.536723,0,16.87306)"
800- cx="24.837126"
801- cy="36.421127"
802- fx="24.837126"
803- fy="36.421127"
804- r="15.644737" />
805- <linearGradient
806- inkscape:collect="always"
807- xlink:href="#linearGradient8152"
808- id="linearGradient8158"
809- x1="49.412277"
810- y1="37.904068"
811- x2="11.881318"
812- y2="19.776045"
813- gradientUnits="userSpaceOnUse" />
814- <linearGradient
815- inkscape:collect="always"
816- xlink:href="#linearGradient2831"
817- id="linearGradient8170"
818- gradientUnits="userSpaceOnUse"
819- gradientTransform="matrix(-1.0818662,0,0,-1.1166851,48.639854,47.862243)"
820- x1="13.478554"
821- y1="10.612206"
822- x2="15.419417"
823- y2="19.115122" />
824- <linearGradient
825- inkscape:collect="always"
826- xlink:href="#linearGradient2847"
827- id="linearGradient8172"
828- gradientUnits="userSpaceOnUse"
829- gradientTransform="matrix(1.0818662,0,0,1.1166851,-2.2754847,-3.644854)"
830- x1="37.128052"
831- y1="29.729605"
832- x2="37.40255"
833- y2="26.800913" />
834- <linearGradient
835- inkscape:collect="always"
836- xlink:href="#linearGradient8152"
837- id="linearGradient8174"
838- gradientUnits="userSpaceOnUse"
839- x1="49.412277"
840- y1="37.904068"
841- x2="11.881318"
842- y2="19.776045" />
843- <linearGradient
844- inkscape:collect="always"
845- xlink:href="#linearGradient3207"
846- id="linearGradient8178"
847- gradientUnits="userSpaceOnUse"
848- x1="5.8925977"
849- y1="20.540676"
850- x2="45.198921"
851- y2="27.721035" />
852- <linearGradient
853- inkscape:collect="always"
854- xlink:href="#linearGradient5313"
855- id="linearGradient8180"
856- gradientUnits="userSpaceOnUse"
857- x1="61.572533"
858- y1="28.049652"
859- x2="10.969182"
860- y2="20.333939" />
861- <linearGradient
862- inkscape:collect="always"
863- xlink:href="#linearGradient5335"
864- id="linearGradient5341"
865- x1="8.6878577"
866- y1="25.265626"
867- x2="52.122673"
868- y2="25.265626"
869- gradientUnits="userSpaceOnUse" />
870- </defs>
871- <sodipodi:namedview
872- stroke="#3465a4"
873- fill="#729fcf"
874- id="base"
875- pagecolor="#ffffff"
876- bordercolor="#e8e8e8"
877- borderopacity="0.86666667"
878- inkscape:pageopacity="0.0"
879- inkscape:pageshadow="2"
880- inkscape:zoom="1"
881- inkscape:cx="48.628749"
882- inkscape:cy="21.704614"
883- inkscape:current-layer="layer1"
884- showgrid="true"
885- inkscape:grid-bbox="true"
886- inkscape:document-units="px"
887- inkscape:showpageshadow="false"
888- inkscape:window-width="892"
889- inkscape:window-height="938"
890- inkscape:window-x="374"
891- inkscape:window-y="37"
892- width="48px"
893- height="48px"
894- borderlayer="true" />
895- <metadata
896- id="metadata4">
897- <rdf:RDF>
898- <cc:Work
899- rdf:about="">
900- <dc:format>image/svg+xml</dc:format>
901- <dc:type
902- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
903- <dc:creator>
904- <cc:Agent>
905- <dc:title>Jakub Steiner</dc:title>
906- </cc:Agent>
907- </dc:creator>
908- <dc:source>http://jimmac.musichall.cz</dc:source>
909- <cc:license
910- rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
911- <dc:title>View Refresh</dc:title>
912- <dc:subject>
913- <rdf:Bag>
914- <rdf:li>reload</rdf:li>
915- <rdf:li>refresh</rdf:li>
916- <rdf:li>view</rdf:li>
917- </rdf:Bag>
918- </dc:subject>
919- <dc:contributor>
920- <cc:Agent>
921- <dc:title>Ricardo 'Rick' González</dc:title>
922- </cc:Agent>
923- </dc:contributor>
924- </cc:Work>
925- <cc:License
926- rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
927- <cc:permits
928- rdf:resource="http://web.resource.org/cc/Reproduction" />
929- <cc:permits
930- rdf:resource="http://web.resource.org/cc/Distribution" />
931- <cc:requires
932- rdf:resource="http://web.resource.org/cc/Notice" />
933- <cc:permits
934- rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
935- <cc:requires
936- rdf:resource="http://web.resource.org/cc/ShareAlike" />
937- <cc:requires
938- rdf:resource="http://web.resource.org/cc/SourceCode" />
939- </cc:License>
940- </rdf:RDF>
941- </metadata>
942- <g
943- id="layer1"
944- inkscape:label="Layer 1"
945- inkscape:groupmode="layer"
946- inkscape:r_cx="true"
947- inkscape:r_cy="true">
948- <path
949- transform="matrix(-1.5146484,0,0,-0.7917058,60.923237,69.528413)"
950- d="M 40.481863 36.421127 A 15.644737 8.3968935 0 1 1 9.1923885,36.421127 A 15.644737 8.3968935 0 1 1 40.481863 36.421127 z"
951- sodipodi:ry="8.3968935"
952- sodipodi:rx="15.644737"
953- sodipodi:cy="36.421127"
954- sodipodi:cx="24.837126"
955- id="path8660"
956- style="opacity:0.36111109;color:#000000;fill:url(#radialGradient1503);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
957- sodipodi:type="arc"
958- inkscape:r_cx="true"
959- inkscape:r_cy="true" />
960- <path
961- style="color:#000000;fill:url(#linearGradient1486);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient1488);stroke-width:1.04300582000000008;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible;opacity:0.51807229"
962- d="M 20.478497,9.7711467 C 20.478497,9.7711467 12.632988,7.9438002 14.368023,21.024298 L 5.1028658,21.024298 C 5.1028658,21.024298 6.0085332,7.5377773 20.478497,9.7711467 z "
963- id="path2865"
964- inkscape:r_cx="true"
965- inkscape:r_cy="true"
966- sodipodi:nodetypes="cccc" />
967- <g
968- id="g1878"
969- transform="matrix(-0.6129282,-0.5154381,-0.5178496,0.610074,58.686164,13.911361)"
970- inkscape:r_cx="true"
971- inkscape:r_cy="true"
972- style="fill:url(#linearGradient8158);fill-opacity:1;stroke:#204a87;stroke-width:1.24932528;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">
973- <path
974- sodipodi:nodetypes="ccccccc"
975- id="path1880"
976- d="M 45.862102,50.273522 C 62.924432,34.96305 47.150241,15.929711 22.760624,12.513943 L 22.113577,3.1522143 L 7.613534,20.510135 L 22.703188,33.23244 C 22.703188,33.23244 22.454828,23.347105 22.454828,23.347105 C 41.289895,24.339584 54.775794,35.675041 45.862102,50.273522 z "
977- style="opacity:1;color:#000000;fill:url(#linearGradient8180);fill-opacity:1;fill-rule:nonzero;stroke:#204a87;stroke-width:1.24977946000000006;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
978- inkscape:r_cx="true"
979- inkscape:r_cy="true" />
980- </g>
981- <g
982- style="fill:none;fill-opacity:1;stroke:url(#linearGradient5341);stroke-width:1.24928653000000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;opacity:0.54819277"
983- inkscape:r_cy="true"
984- inkscape:r_cx="true"
985- transform="matrix(-0.612811,-0.5154406,-0.5177506,0.6100769,58.675633,13.911365)"
986- id="g3185">
987- <path
988- sodipodi:type="inkscape:offset"
989- inkscape:radius="-1.197237"
990- inkscape:original="M 22.125 3.15625 L 7.625 20.5 L 22.71875 33.21875 C 22.718749 33.21875 22.46875 23.34375 22.46875 23.34375 C 41.298509 24.342727 54.468144 35.661007 45.5625 50.25 C 62.614067 34.952315 46.852277 15.923275 22.46875 12.5 L 22.125 3.15625 z "
991- style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient5341);stroke-width:1.24928653000000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
992- id="path3189"
993- d="M 21.0625,6.3125 L 9.3125,20.34375 L 21.46875,30.59375 C 21.39688,27.754893 21.28125,23.375 21.28125,23.375 C 21.27502,23.044409 21.405774,22.725958 21.642519,22.495132 C 21.879264,22.264306 22.200923,22.141654 22.53125,22.15625 C 32.170255,22.667629 40.441027,25.773015 45.28125,30.875 C 48.676469,34.453835 50.102049,39.131532 49.125,44.21875 C 50.368339,42.205641 51.107893,40.194594 51.375,38.21875 C 51.870422,34.55401 50.856988,30.946652 48.5625,27.59375 C 43.973525,20.887947 34.236978,15.361613 22.3125,13.6875 C 21.732114,13.606381 21.295727,13.117098 21.28125,12.53125 L 21.0625,6.3125 z "
994- transform="translate(1.0080026e-6,8.5223784e-7)" />
995- </g>
996- <g
997- id="g2424"
998- transform="matrix(0.190868,0.16126,0.16126,-0.190868,-0.719083,15.30613)"
999- inkscape:r_cx="true"
1000- inkscape:r_cy="true"
1001- style="opacity:0.5;fill:none;fill-opacity:1;stroke:#ffffff;stroke-opacity:1" />
1002- <path
1003- sodipodi:nodetypes="cccc"
1004- inkscape:r_cy="true"
1005- inkscape:r_cx="true"
1006- id="path8160"
1007- d="M 27.340608,36.228853 C 27.340608,36.228853 35.186117,38.0562 33.451082,24.975702 L 42.71624,24.975702 C 42.71624,24.975702 41.810572,38.462223 27.340608,36.228853 z "
1008- style="color:#000000;fill:url(#linearGradient8170);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient8172);stroke-width:1.04300582000000008;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible;opacity:0.51807229" />
1009- <g
1010- style="fill:url(#linearGradient8174);fill-opacity:1;stroke:#204a87;stroke-width:1.24932528;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1011- inkscape:r_cy="true"
1012- inkscape:r_cx="true"
1013- transform="matrix(0.6101332,0.5154999,0.5154881,-0.6101471,-10.618024,32.088556)"
1014- id="g8162">
1015- <path
1016- inkscape:r_cy="true"
1017- inkscape:r_cx="true"
1018- style="opacity:1;color:#000000;fill:url(#linearGradient8180);fill-opacity:1;fill-rule:nonzero;stroke:#204a87;stroke-width:1.25256376;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible;enable-background:accumulate"
1019- d="M 45.862102,50.273522 C 62.924432,34.96305 47.150241,15.929711 22.760624,12.513943 L 22.113577,3.1522141 L 7.6135337,20.510135 L 22.703188,33.23244 C 22.703188,33.23244 22.454828,23.347105 22.454828,23.347105 C 41.289895,24.339584 54.775794,35.675041 45.862102,50.273522 z "
1020- id="path8164"
1021- sodipodi:nodetypes="ccccccc" />
1022- </g>
1023- <g
1024- id="g8166"
1025- transform="matrix(0.6128107,0.5154406,0.5177504,-0.6100769,-10.856505,32.088635)"
1026- inkscape:r_cx="true"
1027- inkscape:r_cy="true"
1028- style="fill:none;fill-opacity:1;stroke:#204a87;stroke-width:1.24928653;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">
1029- <path
1030- transform="matrix(0.9972307,-2.4605589e-3,-2.4605593e-3,0.9980642,0.2457029,0.2077351)"
1031- d="M 21.0625,6.3125 L 9.3125,20.34375 L 21.46875,30.59375 C 21.39688,27.754893 21.28125,23.375 21.28125,23.375 C 21.27502,23.044409 21.405774,22.725958 21.642519,22.495132 C 21.879264,22.264306 22.200923,22.141654 22.53125,22.15625 C 32.170255,22.667629 40.441027,25.773015 45.28125,30.875 C 48.676469,34.453835 50.102049,39.131532 49.125,44.21875 C 50.368339,42.205641 51.107893,40.194594 51.375,38.21875 C 51.870422,34.55401 50.856988,30.946652 48.5625,27.59375 C 43.973525,20.887947 34.236978,15.361613 22.3125,13.6875 C 21.732114,13.606381 21.295727,13.117098 21.28125,12.53125 L 21.0625,6.3125 z "
1032- id="path8168"
1033- style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient8178);stroke-width:1.24973191;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.70588235;visibility:visible;display:block;overflow:visible"
1034- inkscape:original="M 22.125 3.15625 L 7.625 20.5 L 22.71875 33.21875 C 22.718749 33.21875 22.46875 23.34375 22.46875 23.34375 C 41.298509 24.342727 54.468144 35.661007 45.5625 50.25 C 62.614067 34.952315 46.852277 15.923275 22.46875 12.5 L 22.125 3.15625 z "
1035- inkscape:radius="-1.197237"
1036- sodipodi:type="inkscape:offset" />
1037- </g>
1038- </g>
1039-</svg>
1040
1041=== removed file 'data/icons/scalable/actions/system-shutdown-panel.svg'
1042--- data/icons/scalable/actions/system-shutdown-panel.svg 2009-10-06 22:51:09 +0000
1043+++ data/icons/scalable/actions/system-shutdown-panel.svg 1970-01-01 00:00:00 +0000
1044@@ -1,247 +0,0 @@
1045-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1046-<!-- Created with Inkscape (http://www.inkscape.org/) -->
1047-<svg
1048- xmlns:dc="http://purl.org/dc/elements/1.1/"
1049- xmlns:cc="http://web.resource.org/cc/"
1050- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
1051- xmlns:svg="http://www.w3.org/2000/svg"
1052- xmlns="http://www.w3.org/2000/svg"
1053- xmlns:xlink="http://www.w3.org/1999/xlink"
1054- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
1055- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
1056- sodipodi:docname="gnome-shutdown.svg"
1057- sodipodi:docbase="/home/dobey/Projects/gnome-icon-theme/scalable/apps"
1058- inkscape:version="0.45"
1059- sodipodi:version="0.32"
1060- id="svg11142"
1061- height="48"
1062- width="48"
1063- version="1.0"
1064- inkscape:output_extension="org.inkscape.output.svg.inkscape">
1065- <defs
1066- id="defs3">
1067- <linearGradient
1068- id="linearGradient4749">
1069- <stop
1070- id="stop4751"
1071- offset="0"
1072- style="stop-color:#ffffff;stop-opacity:1;" />
1073- <stop
1074- style="stop-color:#ffffff;stop-opacity:0.0000000;"
1075- offset="0.50000000"
1076- id="stop4757" />
1077- <stop
1078- id="stop4753"
1079- offset="1.0000000"
1080- style="stop-color:#ffffff;stop-opacity:1.0000000;" />
1081- </linearGradient>
1082- <linearGradient
1083- id="linearGradient11264"
1084- inkscape:collect="always">
1085- <stop
1086- id="stop11266"
1087- offset="0"
1088- style="stop-color:#000000;stop-opacity:1;" />
1089- <stop
1090- id="stop11268"
1091- offset="1"
1092- style="stop-color:#000000;stop-opacity:0;" />
1093- </linearGradient>
1094- <linearGradient
1095- id="linearGradient11178">
1096- <stop
1097- style="stop-color:#d1d1cc;stop-opacity:1.0000000;"
1098- offset="0.0000000"
1099- id="stop11180" />
1100- <stop
1101- id="stop4735"
1102- offset="0.50000000"
1103- style="stop-color:#d1d1d1;stop-opacity:1.0000000;" />
1104- <stop
1105- style="stop-color:#b9b9b9;stop-opacity:1.0000000;"
1106- offset="1.0000000"
1107- id="stop11188" />
1108- </linearGradient>
1109- <linearGradient
1110- id="linearGradient11164">
1111- <stop
1112- id="stop11166"
1113- offset="0"
1114- style="stop-color:#eeeeec;stop-opacity:1;" />
1115- <stop
1116- style="stop-color:#c6c6bf;stop-opacity:1.0000000;"
1117- offset="0.26988637"
1118- id="stop11172" />
1119- <stop
1120- id="stop11176"
1121- offset="0.37900311"
1122- style="stop-color:#f9f9f8;stop-opacity:1.0000000;" />
1123- <stop
1124- id="stop11174"
1125- offset="0.75000000"
1126- style="stop-color:#c8c8c2;stop-opacity:1.0000000;" />
1127- <stop
1128- id="stop11168"
1129- offset="1.0000000"
1130- style="stop-color:#eeeeec;stop-opacity:1.0000000;" />
1131- </linearGradient>
1132- <linearGradient
1133- gradientUnits="userSpaceOnUse"
1134- y2="23.071428"
1135- x2="42.471249"
1136- y1="23.071428"
1137- x1="7.1433797"
1138- id="linearGradient11170"
1139- xlink:href="#linearGradient11164"
1140- inkscape:collect="always" />
1141- <radialGradient
1142- gradientTransform="matrix(1.364252,-9.115392e-17,9.115392e-17,1.364252,-9.47947,-5.618016)"
1143- gradientUnits="userSpaceOnUse"
1144- r="18.672388"
1145- fy="17.224812"
1146- fx="24.673435"
1147- cy="17.224812"
1148- cx="24.673435"
1149- id="radialGradient11234"
1150- xlink:href="#linearGradient11178"
1151- inkscape:collect="always" />
1152- <radialGradient
1153- gradientUnits="userSpaceOnUse"
1154- r="18.214285"
1155- fy="23.071428"
1156- fx="25.785715"
1157- cy="23.071428"
1158- cx="25.785715"
1159- id="radialGradient11270"
1160- xlink:href="#linearGradient11264"
1161- inkscape:collect="always" />
1162- <linearGradient
1163- gradientUnits="userSpaceOnUse"
1164- y2="8.5882788"
1165- x2="25.785715"
1166- y1="21.978363"
1167- x1="25.785715"
1168- id="linearGradient4755"
1169- xlink:href="#linearGradient4749"
1170- inkscape:collect="always" />
1171- </defs>
1172- <sodipodi:namedview
1173- inkscape:window-y="423"
1174- inkscape:window-x="840"
1175- inkscape:window-height="606"
1176- inkscape:window-width="750"
1177- stroke="#555753"
1178- fill="#edd400"
1179- inkscape:showpageshadow="false"
1180- inkscape:document-units="px"
1181- inkscape:grid-bbox="true"
1182- showgrid="false"
1183- inkscape:current-layer="layer1"
1184- inkscape:cy="-10.815272"
1185- inkscape:cx="85.353158"
1186- inkscape:zoom="1"
1187- inkscape:pageshadow="2"
1188- inkscape:pageopacity="0.0"
1189- borderopacity="0.32941176"
1190- bordercolor="#666666"
1191- pagecolor="#ffffff"
1192- id="base"
1193- showguides="true"
1194- inkscape:guide-bbox="true" />
1195- <metadata
1196- id="metadata4">
1197- <rdf:RDF>
1198- <cc:Work
1199- rdf:about="">
1200- <dc:format>image/svg+xml</dc:format>
1201- <dc:type
1202- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
1203- <dc:title>Shutdown</dc:title>
1204- <dc:creator>
1205- <cc:Agent>
1206- <dc:title>Jakub Steiner</dc:title>
1207- </cc:Agent>
1208- </dc:creator>
1209- <cc:license
1210- rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
1211- <dc:source>http://jimmac.musichall.cz</dc:source>
1212- <dc:subject>
1213- <rdf:Bag>
1214- <rdf:li>lock</rdf:li>
1215- <rdf:li>key</rdf:li>
1216- <rdf:li>secure</rdf:li>
1217- </rdf:Bag>
1218- </dc:subject>
1219- </cc:Work>
1220- <cc:License
1221- rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
1222- <cc:permits
1223- rdf:resource="http://web.resource.org/cc/Reproduction" />
1224- <cc:permits
1225- rdf:resource="http://web.resource.org/cc/Distribution" />
1226- <cc:requires
1227- rdf:resource="http://web.resource.org/cc/Notice" />
1228- <cc:permits
1229- rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
1230- <cc:requires
1231- rdf:resource="http://web.resource.org/cc/ShareAlike" />
1232- <cc:requires
1233- rdf:resource="http://web.resource.org/cc/SourceCode" />
1234- </cc:License>
1235- </rdf:RDF>
1236- </metadata>
1237- <g
1238- inkscape:groupmode="layer"
1239- inkscape:label="Layer 1"
1240- id="layer1">
1241- <path
1242- sodipodi:type="arc"
1243- style="opacity:1;color:#000000;fill:url(#radialGradient11270);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.8505457;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
1244- id="path11262"
1245- sodipodi:cx="25.785715"
1246- sodipodi:cy="23.071428"
1247- sodipodi:rx="18.214285"
1248- sodipodi:ry="18.214285"
1249- d="M 44 23.071428 A 18.214285 18.214285 0 1 1 7.5714302,23.071428 A 18.214285 18.214285 0 1 1 44 23.071428 z"
1250- transform="matrix(1.269833,0,0,1.269833,-9.24356,-4.225444)" />
1251- <path
1252- transform="matrix(1.175715,0,0,1.175715,-6.816669,-3.911156)"
1253- d="M 44 23.071428 A 18.214285 18.214285 0 1 1 7.5714302,23.071428 A 18.214285 18.214285 0 1 1 44 23.071428 z"
1254- sodipodi:ry="18.214285"
1255- sodipodi:rx="18.214285"
1256- sodipodi:cy="23.071428"
1257- sodipodi:cx="25.785715"
1258- id="path11152"
1259- style="opacity:1;color:#000000;fill:url(#linearGradient11170);fill-opacity:1;fill-rule:evenodd;stroke:#74796e;stroke-width:0.8505457;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
1260- sodipodi:type="arc" />
1261- <path
1262- sodipodi:type="arc"
1263- style="opacity:1;color:#000000;fill:url(#radialGradient11234);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.93590021;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
1264- id="path11154"
1265- sodipodi:cx="25.785715"
1266- sodipodi:cy="23.071428"
1267- sodipodi:rx="18.214285"
1268- sodipodi:ry="18.214285"
1269- d="M 44 23.071428 A 18.214285 18.214285 0 1 1 7.5714302,23.071428 A 18.214285 18.214285 0 1 1 44 23.071428 z"
1270- transform="matrix(1.06849,0,0,1.06849,-4.051771,-2.437299)" />
1271- <path
1272- sodipodi:nodetypes="czs"
1273- id="path4743"
1274- d="M 19.1468,14.674063 C 12.154448,18.486901 15.316371,29.412893 23.310313,29.412893 C 31.220984,29.412893 34.766419,19.054547 27.473824,14.674063"
1275- style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#555753;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
1276- <path
1277- id="path4745"
1278- d="M 23.364832,19.364034 L 23.364832,11.95091"
1279- style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#555753;stroke-width:2.99999905;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
1280- <path
1281- transform="matrix(1.04555,0,0,1.04555,-3.460245,-1.908039)"
1282- d="M 44 23.071428 A 18.214285 18.214285 0 1 1 7.5714302,23.071428 A 18.214285 18.214285 0 1 1 44 23.071428 z"
1283- sodipodi:ry="18.214285"
1284- sodipodi:rx="18.214285"
1285- sodipodi:cy="23.071428"
1286- sodipodi:cx="25.785715"
1287- id="path4747"
1288- style="opacity:0.88235294;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient4755);stroke-width:0.95643449;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
1289- sodipodi:type="arc" />
1290- </g>
1291-</svg>
1292
1293=== removed file 'data/icons/scalable/actions/system-shutdown.svg'
1294--- data/icons/scalable/actions/system-shutdown.svg 2009-08-07 19:10:15 +0000
1295+++ data/icons/scalable/actions/system-shutdown.svg 1970-01-01 00:00:00 +0000
1296@@ -1,247 +0,0 @@
1297-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1298-<!-- Created with Inkscape (http://www.inkscape.org/) -->
1299-<svg
1300- xmlns:dc="http://purl.org/dc/elements/1.1/"
1301- xmlns:cc="http://web.resource.org/cc/"
1302- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
1303- xmlns:svg="http://www.w3.org/2000/svg"
1304- xmlns="http://www.w3.org/2000/svg"
1305- xmlns:xlink="http://www.w3.org/1999/xlink"
1306- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
1307- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
1308- sodipodi:docname="gnome-shutdown.svg"
1309- sodipodi:docbase="/home/dobey/Projects/gnome-icon-theme/scalable/apps"
1310- inkscape:version="0.45"
1311- sodipodi:version="0.32"
1312- id="svg11142"
1313- height="48"
1314- width="48"
1315- version="1.0"
1316- inkscape:output_extension="org.inkscape.output.svg.inkscape">
1317- <defs
1318- id="defs3">
1319- <linearGradient
1320- id="linearGradient4749">
1321- <stop
1322- id="stop4751"
1323- offset="0"
1324- style="stop-color:#ffffff;stop-opacity:1;" />
1325- <stop
1326- style="stop-color:#ffffff;stop-opacity:0.0000000;"
1327- offset="0.50000000"
1328- id="stop4757" />
1329- <stop
1330- id="stop4753"
1331- offset="1.0000000"
1332- style="stop-color:#ffffff;stop-opacity:1.0000000;" />
1333- </linearGradient>
1334- <linearGradient
1335- id="linearGradient11264"
1336- inkscape:collect="always">
1337- <stop
1338- id="stop11266"
1339- offset="0"
1340- style="stop-color:#000000;stop-opacity:1;" />
1341- <stop
1342- id="stop11268"
1343- offset="1"
1344- style="stop-color:#000000;stop-opacity:0;" />
1345- </linearGradient>
1346- <linearGradient
1347- id="linearGradient11178">
1348- <stop
1349- style="stop-color:#d1d1cc;stop-opacity:1.0000000;"
1350- offset="0.0000000"
1351- id="stop11180" />
1352- <stop
1353- id="stop4735"
1354- offset="0.50000000"
1355- style="stop-color:#d1d1d1;stop-opacity:1.0000000;" />
1356- <stop
1357- style="stop-color:#b9b9b9;stop-opacity:1.0000000;"
1358- offset="1.0000000"
1359- id="stop11188" />
1360- </linearGradient>
1361- <linearGradient
1362- id="linearGradient11164">
1363- <stop
1364- id="stop11166"
1365- offset="0"
1366- style="stop-color:#eeeeec;stop-opacity:1;" />
1367- <stop
1368- style="stop-color:#c6c6bf;stop-opacity:1.0000000;"
1369- offset="0.26988637"
1370- id="stop11172" />
1371- <stop
1372- id="stop11176"
1373- offset="0.37900311"
1374- style="stop-color:#f9f9f8;stop-opacity:1.0000000;" />
1375- <stop
1376- id="stop11174"
1377- offset="0.75000000"
1378- style="stop-color:#c8c8c2;stop-opacity:1.0000000;" />
1379- <stop
1380- id="stop11168"
1381- offset="1.0000000"
1382- style="stop-color:#eeeeec;stop-opacity:1.0000000;" />
1383- </linearGradient>
1384- <linearGradient
1385- gradientUnits="userSpaceOnUse"
1386- y2="23.071428"
1387- x2="42.471249"
1388- y1="23.071428"
1389- x1="7.1433797"
1390- id="linearGradient11170"
1391- xlink:href="#linearGradient11164"
1392- inkscape:collect="always" />
1393- <radialGradient
1394- gradientTransform="matrix(1.364252,-9.115392e-17,9.115392e-17,1.364252,-9.47947,-5.618016)"
1395- gradientUnits="userSpaceOnUse"
1396- r="18.672388"
1397- fy="17.224812"
1398- fx="24.673435"
1399- cy="17.224812"
1400- cx="24.673435"
1401- id="radialGradient11234"
1402- xlink:href="#linearGradient11178"
1403- inkscape:collect="always" />
1404- <radialGradient
1405- gradientUnits="userSpaceOnUse"
1406- r="18.214285"
1407- fy="23.071428"
1408- fx="25.785715"
1409- cy="23.071428"
1410- cx="25.785715"
1411- id="radialGradient11270"
1412- xlink:href="#linearGradient11264"
1413- inkscape:collect="always" />
1414- <linearGradient
1415- gradientUnits="userSpaceOnUse"
1416- y2="8.5882788"
1417- x2="25.785715"
1418- y1="21.978363"
1419- x1="25.785715"
1420- id="linearGradient4755"
1421- xlink:href="#linearGradient4749"
1422- inkscape:collect="always" />
1423- </defs>
1424- <sodipodi:namedview
1425- inkscape:window-y="423"
1426- inkscape:window-x="840"
1427- inkscape:window-height="606"
1428- inkscape:window-width="750"
1429- stroke="#555753"
1430- fill="#edd400"
1431- inkscape:showpageshadow="false"
1432- inkscape:document-units="px"
1433- inkscape:grid-bbox="true"
1434- showgrid="false"
1435- inkscape:current-layer="layer1"
1436- inkscape:cy="-10.815272"
1437- inkscape:cx="85.353158"
1438- inkscape:zoom="1"
1439- inkscape:pageshadow="2"
1440- inkscape:pageopacity="0.0"
1441- borderopacity="0.32941176"
1442- bordercolor="#666666"
1443- pagecolor="#ffffff"
1444- id="base"
1445- showguides="true"
1446- inkscape:guide-bbox="true" />
1447- <metadata
1448- id="metadata4">
1449- <rdf:RDF>
1450- <cc:Work
1451- rdf:about="">
1452- <dc:format>image/svg+xml</dc:format>
1453- <dc:type
1454- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
1455- <dc:title>Shutdown</dc:title>
1456- <dc:creator>
1457- <cc:Agent>
1458- <dc:title>Jakub Steiner</dc:title>
1459- </cc:Agent>
1460- </dc:creator>
1461- <cc:license
1462- rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
1463- <dc:source>http://jimmac.musichall.cz</dc:source>
1464- <dc:subject>
1465- <rdf:Bag>
1466- <rdf:li>lock</rdf:li>
1467- <rdf:li>key</rdf:li>
1468- <rdf:li>secure</rdf:li>
1469- </rdf:Bag>
1470- </dc:subject>
1471- </cc:Work>
1472- <cc:License
1473- rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
1474- <cc:permits
1475- rdf:resource="http://web.resource.org/cc/Reproduction" />
1476- <cc:permits
1477- rdf:resource="http://web.resource.org/cc/Distribution" />
1478- <cc:requires
1479- rdf:resource="http://web.resource.org/cc/Notice" />
1480- <cc:permits
1481- rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
1482- <cc:requires
1483- rdf:resource="http://web.resource.org/cc/ShareAlike" />
1484- <cc:requires
1485- rdf:resource="http://web.resource.org/cc/SourceCode" />
1486- </cc:License>
1487- </rdf:RDF>
1488- </metadata>
1489- <g
1490- inkscape:groupmode="layer"
1491- inkscape:label="Layer 1"
1492- id="layer1">
1493- <path
1494- sodipodi:type="arc"
1495- style="opacity:1;color:#000000;fill:url(#radialGradient11270);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.8505457;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
1496- id="path11262"
1497- sodipodi:cx="25.785715"
1498- sodipodi:cy="23.071428"
1499- sodipodi:rx="18.214285"
1500- sodipodi:ry="18.214285"
1501- d="M 44 23.071428 A 18.214285 18.214285 0 1 1 7.5714302,23.071428 A 18.214285 18.214285 0 1 1 44 23.071428 z"
1502- transform="matrix(1.269833,0,0,1.269833,-9.24356,-4.225444)" />
1503- <path
1504- transform="matrix(1.175715,0,0,1.175715,-6.816669,-3.911156)"
1505- d="M 44 23.071428 A 18.214285 18.214285 0 1 1 7.5714302,23.071428 A 18.214285 18.214285 0 1 1 44 23.071428 z"
1506- sodipodi:ry="18.214285"
1507- sodipodi:rx="18.214285"
1508- sodipodi:cy="23.071428"
1509- sodipodi:cx="25.785715"
1510- id="path11152"
1511- style="opacity:1;color:#000000;fill:url(#linearGradient11170);fill-opacity:1;fill-rule:evenodd;stroke:#74796e;stroke-width:0.8505457;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
1512- sodipodi:type="arc" />
1513- <path
1514- sodipodi:type="arc"
1515- style="opacity:1;color:#000000;fill:url(#radialGradient11234);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.93590021;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
1516- id="path11154"
1517- sodipodi:cx="25.785715"
1518- sodipodi:cy="23.071428"
1519- sodipodi:rx="18.214285"
1520- sodipodi:ry="18.214285"
1521- d="M 44 23.071428 A 18.214285 18.214285 0 1 1 7.5714302,23.071428 A 18.214285 18.214285 0 1 1 44 23.071428 z"
1522- transform="matrix(1.06849,0,0,1.06849,-4.051771,-2.437299)" />
1523- <path
1524- sodipodi:nodetypes="czs"
1525- id="path4743"
1526- d="M 19.1468,14.674063 C 12.154448,18.486901 15.316371,29.412893 23.310313,29.412893 C 31.220984,29.412893 34.766419,19.054547 27.473824,14.674063"
1527- style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#555753;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
1528- <path
1529- id="path4745"
1530- d="M 23.364832,19.364034 L 23.364832,11.95091"
1531- style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#555753;stroke-width:2.99999905;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
1532- <path
1533- transform="matrix(1.04555,0,0,1.04555,-3.460245,-1.908039)"
1534- d="M 44 23.071428 A 18.214285 18.214285 0 1 1 7.5714302,23.071428 A 18.214285 18.214285 0 1 1 44 23.071428 z"
1535- sodipodi:ry="18.214285"
1536- sodipodi:rx="18.214285"
1537- sodipodi:cy="23.071428"
1538- sodipodi:cx="25.785715"
1539- id="path4747"
1540- style="opacity:0.88235294;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient4755);stroke-width:0.95643449;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
1541- sodipodi:type="arc" />
1542- </g>
1543-</svg>
1544
1545=== renamed file 'data/indicator-status.service.in' => 'data/indicator-me.service.in'
1546--- data/indicator-status.service.in 2009-07-24 21:57:58 +0000
1547+++ data/indicator-me.service.in 2010-01-04 21:25:21 +0000
1548@@ -1,3 +1,3 @@
1549 [D-BUS Service]
1550-Name=org.ayatana.indicator.status
1551-Exec=@libexecdir@/indicator-status-service
1552+Name=org.ayatana.indicator.me
1553+Exec=@libexecdir@/indicator-me-service
1554
1555=== removed file 'data/indicator-session.schemas.in'
1556--- data/indicator-session.schemas.in 2009-09-02 15:10:20 +0000
1557+++ data/indicator-session.schemas.in 1970-01-01 00:00:00 +0000
1558@@ -1,17 +0,0 @@
1559-<?xml version="1.0"?>
1560-<gconfschemafile>
1561- <schemalist>
1562- <schema>
1563- <key>/schemas/apps/indicator-session/suppress_logout_restart_shutdown</key>
1564- <applyto>/apps/indicator-session/suppress_logout_restart_shutdown</applyto>
1565- <owner>indicator-session</owner>
1566- <type>bool</type>
1567- <default>FALSE</default>
1568- <locale name="C">
1569- <short>Suppress the dialog to confirm logout, restart and shutdown action</short>
1570- <long>Whether or not to show confirmation dialogs for logout,
1571- restart and shutdown actions.</long>
1572- </locale>
1573- </schema>
1574- </schemalist>
1575-</gconfschemafile>
1576
1577=== removed file 'data/indicator-session.service.in'
1578--- data/indicator-session.service.in 2009-07-24 21:57:58 +0000
1579+++ data/indicator-session.service.in 1970-01-01 00:00:00 +0000
1580@@ -1,3 +0,0 @@
1581-[D-BUS Service]
1582-Name=org.ayatana.indicator.session
1583-Exec=@libexecdir@/indicator-session-service
1584
1585=== removed file 'data/indicator-users.service.in'
1586--- data/indicator-users.service.in 2009-07-24 21:57:58 +0000
1587+++ data/indicator-users.service.in 1970-01-01 00:00:00 +0000
1588@@ -1,3 +0,0 @@
1589-[D-BUS Service]
1590-Name=org.ayatana.indicator.users
1591-Exec=@libexecdir@/indicator-users-service
1592
1593=== modified file 'po/POTFILES.in'
1594--- po/POTFILES.in 2009-09-08 15:09:45 +0000
1595+++ po/POTFILES.in 2010-01-04 21:25:21 +0000
1596@@ -1,14 +1,7 @@
1597 [encoding: UTF-8]
1598-data/indicator-session.schemas.in
1599-src/gtk-dialog/ck-pk-helper.c
1600-src/gtk-dialog/gconf-helper.c
1601-src/gtk-dialog/gtk-logout-helper.c
1602-src/gtk-dialog/logout-dialog.c
1603-src/indicator-session.c
1604-src/session-service.c
1605+src/indicator-me.c
1606 src/status-provider.c
1607 src/status-provider-pidgin.c
1608 src/status-provider-telepathy.c
1609 src/status-service.c
1610 src/status-service-dbus.c
1611-src/users-service.c
1612
1613=== modified file 'src/Makefile.am'
1614--- src/Makefile.am 2009-10-06 23:49:57 +0000
1615+++ src/Makefile.am 2010-01-04 21:25:21 +0000
1616@@ -1,35 +1,29 @@
1617-SUBDIRS = gtk-dialog
1618
1619-libexec_PROGRAMS = indicator-status-service indicator-users-service indicator-session-service
1620+libexec_PROGRAMS = indicator-me-service
1621
1622 ###################
1623 # Indicator Stuff
1624 ###################
1625
1626-sessionlibdir = $(INDICATORDIR)
1627-sessionlib_LTLIBRARIES = libsession.la
1628-libsession_la_SOURCES = \
1629- indicator-session.c \
1630+melibdir = $(INDICATORDIR)
1631+melib_LTLIBRARIES = libme.la
1632+libme_la_SOURCES = \
1633+ indicator-me.c \
1634 dbus-shared-names.h \
1635- status-service-client.h \
1636- users-service-client.h
1637-libsession_la_CFLAGS = $(APPLET_CFLAGS) -Wall -Werror
1638-libsession_la_LIBADD = $(APPLET_LIBS)
1639-libsession_la_LDFLAGS = -module -avoid-version
1640+ me-service-client.h
1641+libme_la_CFLAGS = $(APPLET_CFLAGS) -Wall -Werror
1642+libme_la_LIBADD = $(APPLET_LIBS)
1643+libme_la_LDFLAGS = -module -avoid-version
1644
1645 ################
1646 # Status Stuff
1647 ################
1648
1649-indicator_status_service_SOURCES = \
1650- status-service.c \
1651- status-service-dbus.h \
1652- status-service-dbus.c \
1653- status-service-server.h \
1654- users-service-dbus.h \
1655- users-service-dbus.c \
1656- users-service-marshal.c \
1657- users-service-marshal.h \
1658+indicator_me_service_SOURCES = \
1659+ me-service.c \
1660+ me-service-dbus.h \
1661+ me-service-dbus.c \
1662+ me-service-server.h \
1663 status-provider.h \
1664 status-provider.c \
1665 status-provider-mc5.h \
1666@@ -44,39 +38,22 @@
1667 status-provider-telepathy.c \
1668 status-provider-telepathy-marshal.h \
1669 status-provider-telepathy-marshal.c
1670-indicator_status_service_CFLAGS = $(STATUSSERVICE_CFLAGS) -Wall -Werror
1671-indicator_status_service_LDADD = $(STATUSSERVICE_LIBS)
1672-
1673-users-service-client.h: $(srcdir)/users-service.xml
1674- dbus-binding-tool \
1675- --prefix=_users_service_client \
1676- --mode=glib-client \
1677- --output=users-service-client.h \
1678- $(srcdir)/users-service.xml
1679-
1680-status-service-client.h: $(srcdir)/status-service.xml
1681- dbus-binding-tool \
1682- --prefix=_status_service_client \
1683- --mode=glib-client \
1684- --output=status-service-client.h \
1685- $(srcdir)/status-service.xml
1686-
1687-status-service-server.h: $(srcdir)/status-service.xml
1688- dbus-binding-tool \
1689- --prefix=_status_service_server \
1690+indicator_me_service_CFLAGS = $(STATUSSERVICE_CFLAGS) -Wall -Werror
1691+indicator_me_service_LDADD = $(STATUSSERVICE_LIBS)
1692+
1693+me-service-client.h: $(srcdir)/me-service.xml
1694+ dbus-binding-tool \
1695+ --prefix=_me_service_client \
1696+ --mode=glib-client \
1697+ --output=me-service-client.h \
1698+ $(srcdir)/me-service.xml
1699+
1700+me-service-server.h: $(srcdir)/me-service.xml
1701+ dbus-binding-tool \
1702+ --prefix=_me_service_server \
1703 --mode=glib-server \
1704- --output=status-service-server.h \
1705- $(srcdir)/status-service.xml
1706-
1707-users-service-marshal.h: $(srcdir)/users-service.list
1708- glib-genmarshal --header \
1709- --prefix=_users_service_marshal $(srcdir)/users-service.list \
1710- > users-service-marshal.h
1711-
1712-users-service-marshal.c: $(srcdir)/users-service.list
1713- glib-genmarshal --body \
1714- --prefix=_users_service_marshal $(srcdir)/users-service.list \
1715- > users-service-marshal.c
1716+ --output=me-service-server.h \
1717+ $(srcdir)/me-service.xml
1718
1719 status-provider-pidgin-marshal.h: $(srcdir)/status-provider-pidgin.list
1720 glib-genmarshal --header \
1721@@ -109,52 +86,27 @@
1722 > status-provider-mc5-marshal.c
1723
1724 ###############
1725-# Users Stuff
1726-###############
1727-
1728-indicator_users_service_SOURCES = \
1729- lock-helper.c \
1730- lock-helper.h \
1731- users-service.c \
1732- users-service-dbus.c \
1733- users-service-marshal.c
1734-indicator_users_service_CFLAGS = $(USERSSERVICE_CFLAGS) -Wall -Werror
1735-indicator_users_service_LDADD = $(USERSSERVICE_LIBS)
1736-
1737-#################
1738-# Session Stuff
1739-#################
1740-
1741-indicator_session_service_SOURCES = \
1742- lock-helper.c \
1743- lock-helper.h \
1744- session-service.c \
1745- gtk-dialog/gconf-helper.c
1746-indicator_session_service_CFLAGS = $(SESSIONSERVICE_CFLAGS) $(GCONF_CFLAGS) -DLIBEXECDIR=\"$(libexecdir)\" -Wall -Werror
1747-indicator_session_service_LDADD = $(SESSIONSERVICE_LIBS) $(GCONF_LIBS)
1748-
1749-###############
1750 # Other Stuff
1751 ###############
1752
1753 BUILT_SOURCES = \
1754- users-service-client.h \
1755- status-service-client.h \
1756- status-service-server.h \
1757+ me-service-client.h \
1758+ me-service-server.h \
1759 status-provider-mc5-marshal.h \
1760 status-provider-mc5-marshal.c \
1761- users-service-marshal.h \
1762- users-service-marshal.c \
1763 status-provider-pidgin-marshal.h \
1764 status-provider-pidgin-marshal.c \
1765 status-provider-telepathy-marshal.h \
1766 status-provider-telepathy-marshal.c
1767
1768 EXTRA_DIST = \
1769- status-service.xml \
1770+ me-service.xml \
1771 status-provider-mc5.list \
1772 status-provider-pidgin.list \
1773- status-provider-telepathy.list
1774+ status-provider-telepathy.list \
1775+ users-service.xml \
1776+ users-service.list
1777
1778 CLEANFILES = \
1779 $(BUILT_SOURCES)
1780+
1781
1782=== modified file 'src/dbus-shared-names.h'
1783--- src/dbus-shared-names.h 2009-09-10 21:26:01 +0000
1784+++ src/dbus-shared-names.h 2010-01-04 21:25:21 +0000
1785@@ -24,17 +24,10 @@
1786 #ifndef __DBUS_SHARED_NAMES_H__
1787 #define __DBUS_SHARED_NAMES_H__ 1
1788
1789-#define INDICATOR_STATUS_DBUS_NAME "org.ayatana.indicator.status"
1790-#define INDICATOR_STATUS_DBUS_OBJECT "/org/ayatana/indicator/status/menu"
1791-#define INDICATOR_STATUS_SERVICE_DBUS_OBJECT "/org/ayatana/indicator/status/service"
1792-#define INDICATOR_STATUS_SERVICE_DBUS_INTERFACE "org.ayatana.indicator.status.service"
1793-
1794-#define INDICATOR_USERS_DBUS_NAME "org.ayatana.indicator.users"
1795-#define INDICATOR_USERS_DBUS_OBJECT "/org/ayatana/indicator/users/menu"
1796-#define INDICATOR_USERS_SERVICE_DBUS_OBJECT "/org/gnome/DisplayManager/UserManager"
1797-#define INDICATOR_USERS_SERVICE_DBUS_INTERFACE "org.gnome.DisplayManager.UserManager"
1798-
1799-#define INDICATOR_SESSION_DBUS_NAME "org.ayatana.indicator.session"
1800-#define INDICATOR_SESSION_DBUS_OBJECT "/org/ayatana/indicator/session/menu"
1801+#define INDICATOR_ME_DBUS_NAME "org.ayatana.indicator.me"
1802+#define INDICATOR_ME_DBUS_VERSION 1
1803+#define INDICATOR_ME_DBUS_OBJECT "/org/ayatana/indicator/me/menu"
1804+#define INDICATOR_ME_SERVICE_DBUS_OBJECT "/org/ayatana/indicator/me/service"
1805+#define INDICATOR_ME_SERVICE_DBUS_INTERFACE "org.ayatana.indicator.me.service"
1806
1807 #endif /* __DBUS_SHARED_NAMES_H__ */
1808
1809=== removed directory 'src/gtk-dialog'
1810=== removed file 'src/gtk-dialog/Makefile.am'
1811--- src/gtk-dialog/Makefile.am 2009-09-10 22:02:32 +0000
1812+++ src/gtk-dialog/Makefile.am 1970-01-01 00:00:00 +0000
1813@@ -1,15 +0,0 @@
1814-
1815-libexec_PROGRAMS = gtk-logout-helper
1816-
1817-gtk_logout_helper_SOURCES = \
1818- gtk-logout-helper.c \
1819- ck-pk-helper.c \
1820- ck-pk-helper.h \
1821- gconf-helper.c \
1822- gconf-helper.h \
1823- logout-dialog.c \
1824- logout-dialog.h
1825-
1826-gtk_logout_helper_CFLAGS = $(SESSIONSERVICE_CFLAGS) $(GTKLOGOUTHELPER_CFLAGS) $(GCONF_CFLAGS) -Wall -Werror -DINDICATOR_ICONS_DIR="\"$(INDICATORICONSDIR)\""
1827-gtk_logout_helper_LDADD = $(SESSIONSERVICE_LIBS) $(GTKLOGOUTHELPER_LIBS) $(GCONF_LIBS)
1828-
1829
1830=== removed file 'src/gtk-dialog/ck-pk-helper.c'
1831--- src/gtk-dialog/ck-pk-helper.c 2009-09-22 12:45:17 +0000
1832+++ src/gtk-dialog/ck-pk-helper.c 1970-01-01 00:00:00 +0000
1833@@ -1,222 +0,0 @@
1834-/*
1835-A small wrapper utility to load indicators and put them as menu items
1836-into the gnome-panel using it's applet interface.
1837-
1838-Copyright 2009 Canonical Ltd.
1839-
1840-Authors:
1841- Ted Gould <ted@canonical.com>
1842-
1843-This program is free software: you can redistribute it and/or modify it
1844-under the terms of the GNU General Public License version 3, as published
1845-by the Free Software Foundation.
1846-
1847-This program is distributed in the hope that it will be useful, but
1848-WITHOUT ANY WARRANTY; without even the implied warranties of
1849-MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
1850-PURPOSE. See the GNU General Public License for more details.
1851-
1852-You should have received a copy of the GNU General Public License along
1853-with this program. If not, see <http://www.gnu.org/licenses/>.
1854-*/
1855-
1856-
1857-#include <unistd.h>
1858-#include <glib.h>
1859-#include <dbus/dbus-glib.h>
1860-#include <polkit/polkit.h>
1861-
1862-#include "logout-dialog.h"
1863-#include "ck-pk-helper.h"
1864-
1865-static gboolean
1866-ck_multiple_users (void)
1867-{
1868- DBusGConnection * sbus = dbus_g_bus_get(DBUS_BUS_SYSTEM, NULL);
1869- g_return_val_if_fail(sbus != NULL, TRUE); /* worst case */
1870- DBusGProxy * proxy = dbus_g_proxy_new_for_name(sbus, "org.freedesktop.ConsoleKit",
1871- "/org/freedesktop/ConsoleKit/Manager",
1872- "org.freedesktop.ConsoleKit.Manager");
1873-
1874- if (proxy == NULL) {
1875- return TRUE;
1876- }
1877-
1878- gboolean result;
1879- GPtrArray * seats = NULL;
1880-
1881- result = dbus_g_proxy_call(proxy, "GetSeats", NULL, G_TYPE_INVALID,
1882- dbus_g_type_get_collection("GPtrArray", DBUS_TYPE_G_OBJECT_PATH), &seats, G_TYPE_INVALID);
1883-
1884- if (!result) {
1885- g_warning("Unable to get the seats for ConsoleKit");
1886- g_object_unref(proxy);
1887- return TRUE;
1888- }
1889-
1890- gchar * this_session_id = NULL;
1891-
1892- result = dbus_g_proxy_call(proxy, "GetCurrentSession", NULL, G_TYPE_INVALID,
1893- DBUS_TYPE_G_OBJECT_PATH, &this_session_id, G_TYPE_INVALID);
1894-
1895- g_object_unref(proxy);
1896-
1897- if (!result) {
1898- g_warning("Unable to get current session from ConsoleKit");
1899- return TRUE;
1900- }
1901-
1902- proxy = dbus_g_proxy_new_for_name(sbus, "org.freedesktop.ConsoleKit",
1903- this_session_id, "org.freedesktop.ConsoleKit.Session");
1904-
1905- if (proxy == NULL) {
1906- return TRUE;
1907- }
1908-
1909- guint this_session_uid;
1910-
1911- result = dbus_g_proxy_call(proxy, "GetUnixUser", NULL, G_TYPE_INVALID,
1912- G_TYPE_UINT, &this_session_uid, G_TYPE_INVALID);
1913-
1914- if (!result) {
1915- g_warning("Unable to get UID from ConsoleKit");
1916- return TRUE;
1917- }
1918-
1919- guint seat;
1920- gboolean multiple_users = FALSE;
1921- for (seat = 0; seat < seats->len; seat++) {
1922- gchar * seat_id = g_ptr_array_index(seats, seat);
1923- DBusGProxy * seat_proxy = dbus_g_proxy_new_for_name(sbus, "org.freedesktop.ConsoleKit",
1924- seat_id, "org.freedesktop.ConsoleKit.Seat");
1925- g_free(seat_id);
1926-
1927- if (seat_proxy == NULL) {
1928- continue;
1929- }
1930-
1931- GPtrArray * sessions = NULL;
1932-
1933- gboolean result = dbus_g_proxy_call(seat_proxy,
1934- "GetSessions", NULL, G_TYPE_INVALID,
1935- dbus_g_type_get_collection("GPtrArray", DBUS_TYPE_G_OBJECT_PATH), &sessions, G_TYPE_INVALID);
1936-
1937- g_object_unref(seat_proxy);
1938- if (!result) {
1939- continue;
1940- }
1941-
1942- guint session;
1943- for (session = 0; session < sessions->len; session++) {
1944- gchar * session_id = g_ptr_array_index(sessions, session);
1945- if (g_strcmp0(this_session_id, session_id) == 0) {
1946- continue;
1947- }
1948- DBusGProxy * session_proxy = dbus_g_proxy_new_for_name(sbus, "org.freedesktop.ConsoleKit",
1949- session_id, "org.freedesktop.ConsoleKit.Session");
1950- g_free(session_id);
1951-
1952- if (session_proxy == NULL) {
1953- continue;
1954- }
1955-
1956- guint session_uid;
1957- result = dbus_g_proxy_call(session_proxy, "GetUnixUser", NULL, G_TYPE_INVALID,
1958- G_TYPE_UINT, &session_uid, G_TYPE_INVALID);
1959- g_object_unref(session_proxy);
1960-
1961- if (!result) {
1962- continue;
1963- }
1964-
1965- if (session_uid != this_session_uid) {
1966- multiple_users = TRUE;
1967- break;
1968- }
1969- }
1970-
1971- g_ptr_array_free(sessions, TRUE);
1972-
1973- if (multiple_users) {
1974- break;
1975- }
1976- }
1977-
1978- g_ptr_array_free(seats, TRUE);
1979- g_object_unref(proxy);
1980- g_free(this_session_id);
1981-
1982- return multiple_users;
1983-}
1984-
1985-gboolean
1986-pk_require_auth (LogoutDialogAction action) {
1987- if (action == LOGOUT_DIALOG_LOGOUT) {
1988- return FALSE;
1989- }
1990-
1991- gchar * pk_action;
1992- if (ck_multiple_users()) {
1993- if (action == LOGOUT_DIALOG_RESTART) {
1994- pk_action = "org.freedesktop.consolekit.system.restart-multiple-users";
1995- } else {
1996- pk_action = "org.freedesktop.consolekit.system.stop-multiple-users";
1997- }
1998- } else {
1999- if (action == LOGOUT_DIALOG_RESTART) {
2000- pk_action = "org.freedesktop.consolekit.system.restart";
2001- } else {
2002- pk_action = "org.freedesktop.consolekit.system.stop";
2003- }
2004- }
2005-
2006- PolkitAuthorizationResult *polres = NULL;
2007- gboolean ret = FALSE;
2008- if (pk_can_do_action(pk_action, &polres)) {
2009- if (polkit_authorization_result_get_is_challenge (polres)) {
2010- ret = TRUE;
2011- }
2012- g_debug ("pk_require_auth(%s): authorized, is_challenge: %i", pk_action, ret);
2013- } else {
2014- g_debug ("pk_require_auth(%s): not authorized", pk_action);
2015- }
2016- if (polres) {
2017- g_object_unref (polres);
2018- }
2019- return ret;
2020-}
2021-
2022-gboolean
2023-pk_can_do_action (const gchar *action_id, PolkitAuthorizationResult ** pol_result)
2024-{
2025- PolkitAuthority *authority;
2026- PolkitSubject *subject;
2027- PolkitAuthorizationResult *result;
2028- gboolean ret;
2029-
2030- authority = polkit_authority_get();
2031- if (!authority) {
2032- g_warning ("Could not get PolicyKit authority instance");
2033- return FALSE;
2034- }
2035- subject = polkit_unix_process_new (getpid());
2036-
2037- result = polkit_authority_check_authorization_sync (authority, subject, action_id, NULL, 0, NULL, NULL);
2038- g_object_unref (authority);
2039-
2040- ret = FALSE;
2041- if (result) {
2042- ret = polkit_authorization_result_get_is_authorized (result) ||
2043- polkit_authorization_result_get_is_challenge (result);
2044- g_debug ("pk_can_do_action(%s): %i", action_id, ret);
2045- } else {
2046- g_warning ("pk_can_do_action(%s): check_authorization returned NULL", action_id);
2047- }
2048- if (pol_result) {
2049- *pol_result = result;
2050- } else {
2051- g_object_unref (result);
2052- }
2053- return ret;
2054-
2055-}
2056
2057=== removed file 'src/gtk-dialog/ck-pk-helper.h'
2058--- src/gtk-dialog/ck-pk-helper.h 2009-09-22 12:45:17 +0000
2059+++ src/gtk-dialog/ck-pk-helper.h 1970-01-01 00:00:00 +0000
2060@@ -1,32 +0,0 @@
2061-/*
2062-A small wrapper utility to load indicators and put them as menu items
2063-into the gnome-panel using it's applet interface.
2064-
2065-Copyright 2009 Canonical Ltd.
2066-
2067-Authors:
2068- Ted Gould <ted@canonical.com>
2069-
2070-This program is free software: you can redistribute it and/or modify it
2071-under the terms of the GNU General Public License version 3, as published
2072-by the Free Software Foundation.
2073-
2074-This program is distributed in the hope that it will be useful, but
2075-WITHOUT ANY WARRANTY; without even the implied warranties of
2076-MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
2077-PURPOSE. See the GNU General Public License for more details.
2078-
2079-You should have received a copy of the GNU General Public License along
2080-with this program. If not, see <http://www.gnu.org/licenses/>.
2081-*/
2082-
2083-
2084-#ifndef __CK_PK_HELPER_H__
2085-#define __CK_PK_HELPER_H__ 1
2086-
2087-#include <polkit/polkit.h>
2088-
2089-gboolean pk_require_auth (LogoutDialogAction action);
2090-gboolean pk_can_do_action (const gchar *action_id, PolkitAuthorizationResult ** pol_result);
2091-
2092-#endif /* __CK_PK_HELPER__ */
2093
2094=== removed file 'src/gtk-dialog/gconf-helper.c'
2095--- src/gtk-dialog/gconf-helper.c 2009-09-10 22:05:42 +0000
2096+++ src/gtk-dialog/gconf-helper.c 1970-01-01 00:00:00 +0000
2097@@ -1,73 +0,0 @@
2098-/*
2099-A small wrapper utility for connecting to gconf.
2100-
2101-Copyright 2009 Canonical Ltd.
2102-
2103-Authors:
2104- Christoph Korn <c_korn@gmx.de>
2105-
2106-This program is free software: you can redistribute it and/or modify it
2107-under the terms of the GNU General Public License version 3, as published
2108-by the Free Software Foundation.
2109-
2110-This program is distributed in the hope that it will be useful, but
2111-WITHOUT ANY WARRANTY; without even the implied warranties of
2112-MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
2113-PURPOSE. See the GNU General Public License for more details.
2114-
2115-You should have received a copy of the GNU General Public License along
2116-with this program. If not, see <http://www.gnu.org/licenses/>.
2117-*/
2118-
2119-
2120-#include <gconf/gconf-client.h>
2121-
2122-#include <glib/gi18n.h>
2123-
2124-#include <dbus/dbus-glib.h>
2125-#include <dbus/dbus-glib-bindings.h>
2126-
2127-#include <libdbusmenu-glib/server.h>
2128-#include <libdbusmenu-glib/menuitem.h>
2129-
2130-#include "gconf-helper.h"
2131-
2132-static GConfClient * gconf_client = NULL;
2133-
2134-gboolean
2135-supress_confirmations (void) {
2136- if(!gconf_client) {
2137- gconf_client = gconf_client_get_default ();
2138- }
2139- return gconf_client_get_bool (gconf_client, SUPPRESS_KEY, NULL) ;
2140-}
2141-
2142-static void update_menu_entries_callback (GConfClient *client, guint cnxn_id, GConfEntry *entry, gpointer data) {
2143- RestartShutdownLogoutMenuItems * restart_shutdown_logout_mi = (RestartShutdownLogoutMenuItems*) data;
2144- GConfValue * value = gconf_entry_get_value (entry);
2145- const gchar * key = gconf_entry_get_key (entry);
2146-
2147- if(g_strcmp0 (key, SUPPRESS_KEY) == 0) {
2148- if (gconf_value_get_bool (value)) {
2149- dbusmenu_menuitem_property_set(restart_shutdown_logout_mi->logout_mi, DBUSMENU_MENUITEM_PROP_LABEL, _("Log Out"));
2150- dbusmenu_menuitem_property_set(restart_shutdown_logout_mi->restart_mi, DBUSMENU_MENUITEM_PROP_LABEL, _("Restart"));
2151- dbusmenu_menuitem_property_set(restart_shutdown_logout_mi->shutdown_mi, DBUSMENU_MENUITEM_PROP_LABEL, _("Shutdown"));
2152- } else {
2153- dbusmenu_menuitem_property_set(restart_shutdown_logout_mi->logout_mi, DBUSMENU_MENUITEM_PROP_LABEL, _("Log Out..."));
2154- dbusmenu_menuitem_property_set(restart_shutdown_logout_mi->restart_mi, DBUSMENU_MENUITEM_PROP_LABEL, _("Restart..."));
2155- dbusmenu_menuitem_property_set(restart_shutdown_logout_mi->shutdown_mi, DBUSMENU_MENUITEM_PROP_LABEL, _("Shutdown..."));
2156- }
2157- }
2158-}
2159-
2160-void
2161-update_menu_entries(RestartShutdownLogoutMenuItems * restart_shutdown_logout_mi) {
2162- if(!gconf_client) {
2163- gconf_client = gconf_client_get_default ();
2164- }
2165- gconf_client_add_dir (gconf_client, GLOBAL_DIR,
2166- GCONF_CLIENT_PRELOAD_ONELEVEL, NULL);
2167- gconf_client_notify_add (gconf_client, SUPPRESS_KEY,
2168- update_menu_entries_callback, restart_shutdown_logout_mi, NULL, NULL);
2169-}
2170-
2171
2172=== removed file 'src/gtk-dialog/gconf-helper.h'
2173--- src/gtk-dialog/gconf-helper.h 2009-09-08 19:26:38 +0000
2174+++ src/gtk-dialog/gconf-helper.h 1970-01-01 00:00:00 +0000
2175@@ -1,50 +0,0 @@
2176-/*
2177-A small wrapper utility for connecting to gconf.
2178-
2179-Copyright 2009 Canonical Ltd.
2180-
2181-Authors:
2182- Christoph Korn <c_korn@gmx.de>
2183-
2184-This program is free software: you can redistribute it and/or modify it
2185-under the terms of the GNU General Public License version 3, as published
2186-by the Free Software Foundation.
2187-
2188-This program is distributed in the hope that it will be useful, but
2189-WITHOUT ANY WARRANTY; without even the implied warranties of
2190-MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
2191-PURPOSE. See the GNU General Public License for more details.
2192-
2193-You should have received a copy of the GNU General Public License along
2194-with this program. If not, see <http://www.gnu.org/licenses/>.
2195-*/
2196-
2197-
2198-#ifndef __GCONF_HELPER_H__
2199-#define __GCONF_HELPER_H__ 1
2200-
2201-#include <gconf/gconf-client.h>
2202-
2203-#include <glib/gi18n.h>
2204-
2205-#include <dbus/dbus-glib.h>
2206-#include <dbus/dbus-glib-bindings.h>
2207-
2208-#include <libdbusmenu-glib/server.h>
2209-#include <libdbusmenu-glib/menuitem.h>
2210-
2211-#define SUPPRESS_KEY "/apps/indicator-session/suppress_logout_restart_shutdown"
2212-#define GLOBAL_DIR "/apps/indicator-session"
2213-
2214-typedef struct _RestartShutdownLogoutMenuItems
2215-{
2216- DbusmenuMenuitem * logout_mi;
2217- DbusmenuMenuitem * restart_mi;
2218- DbusmenuMenuitem * shutdown_mi;
2219-}
2220-RestartShutdownLogoutMenuItems;
2221-
2222-void update_menu_entries(RestartShutdownLogoutMenuItems*);
2223-gboolean supress_confirmations (void);
2224-
2225-#endif /* __GCONF_HELPER__ */
2226
2227=== removed file 'src/gtk-dialog/gtk-logout-helper.c'
2228--- src/gtk-dialog/gtk-logout-helper.c 2009-09-24 17:24:09 +0000
2229+++ src/gtk-dialog/gtk-logout-helper.c 1970-01-01 00:00:00 +0000
2230@@ -1,173 +0,0 @@
2231-/*
2232-A small wrapper utility to load indicators and put them as menu items
2233-into the gnome-panel using it's applet interface.
2234-
2235-Copyright 2009 Canonical Ltd.
2236-
2237-Authors:
2238- Ted Gould <ted@canonical.com>
2239- Christoph Korn <c_korn@gmx.de>
2240-
2241-This program is free software: you can redistribute it and/or modify it
2242-under the terms of the GNU General Public License version 3, as published
2243-by the Free Software Foundation.
2244-
2245-This program is distributed in the hope that it will be useful, but
2246-WITHOUT ANY WARRANTY; without even the implied warranties of
2247-MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
2248-PURPOSE. See the GNU General Public License for more details.
2249-
2250-You should have received a copy of the GNU General Public License along
2251-with this program. If not, see <http://www.gnu.org/licenses/>.
2252-*/
2253-
2254-#include <config.h>
2255-#include <glib.h>
2256-#include <gtk/gtk.h>
2257-#include <dbus/dbus-glib.h>
2258-#include "logout-dialog.h"
2259-#include "ck-pk-helper.h"
2260-#include "gconf-helper.h"
2261-
2262-static void
2263-session_action (LogoutDialogAction action)
2264-{
2265- DBusGConnection * sbus;
2266- DBusGProxy * sm_proxy;
2267- GError * error = NULL;
2268- gboolean res = FALSE;
2269-
2270- sbus = dbus_g_bus_get(DBUS_BUS_SESSION, NULL);
2271- if (sbus == NULL) {
2272- g_warning("Unable to get DBus session bus.");
2273- return;
2274- }
2275- sm_proxy = dbus_g_proxy_new_for_name_owner (sbus,
2276- "org.gnome.SessionManager",
2277- "/org/gnome/SessionManager",
2278- "org.gnome.SessionManager",
2279- &error);
2280- if (sm_proxy == NULL) {
2281- g_warning("Unable to get DBus proxy to SessionManager interface: %s", error->message);
2282- g_error_free(error);
2283- return;
2284- }
2285-
2286- g_clear_error (&error);
2287-
2288- if (action == LOGOUT_DIALOG_LOGOUT) {
2289- res = dbus_g_proxy_call_with_timeout (sm_proxy, "Logout", INT_MAX, &error,
2290- G_TYPE_UINT, 1, G_TYPE_INVALID, G_TYPE_INVALID);
2291- } else if (action == LOGOUT_DIALOG_SHUTDOWN) {
2292- res = dbus_g_proxy_call_with_timeout (sm_proxy, "RequestShutdown", INT_MAX, &error,
2293- G_TYPE_INVALID, G_TYPE_INVALID);
2294- } else if (action == LOGOUT_DIALOG_RESTART) {
2295- res = dbus_g_proxy_call_with_timeout (sm_proxy, "RequestReboot", INT_MAX, &error,
2296- G_TYPE_INVALID, G_TYPE_INVALID);
2297- } else {
2298- g_warning ("Unknown session action");
2299- }
2300-
2301- if (!res) {
2302- if (error != NULL) {
2303- g_warning ("SessionManager action failed: %s", error->message);
2304- } else {
2305- g_warning ("SessionManager action failed: unknown error");
2306- }
2307- }
2308-
2309- g_object_unref(sm_proxy);
2310-
2311- if (error != NULL) {
2312- g_error_free(error);
2313- }
2314-
2315- return;
2316-}
2317-
2318-static LogoutDialogAction type = LOGOUT_DIALOG_LOGOUT;
2319-
2320-static gboolean
2321-option_logout (const gchar * arg, const gchar * value, gpointer data, GError * error)
2322-{
2323- type = LOGOUT_DIALOG_LOGOUT;
2324- return TRUE;
2325-}
2326-
2327-static gboolean
2328-option_shutdown (const gchar * arg, const gchar * value, gpointer data, GError * error)
2329-{
2330- type = LOGOUT_DIALOG_SHUTDOWN;
2331- return TRUE;
2332-}
2333-
2334-static gboolean
2335-option_restart (const gchar * arg, const gchar * value, gpointer data, GError * error)
2336-{
2337- type = LOGOUT_DIALOG_RESTART;
2338- return TRUE;
2339-}
2340-
2341-static GOptionEntry options[] = {
2342- {"logout", 'l', G_OPTION_FLAG_NO_ARG, G_OPTION_ARG_CALLBACK, option_logout, "Log out of the current session", NULL},
2343- {"shutdown", 's', G_OPTION_FLAG_NO_ARG, G_OPTION_ARG_CALLBACK, option_shutdown, "Shutdown the entire system", NULL},
2344- {"restart", 'r', G_OPTION_FLAG_NO_ARG, G_OPTION_ARG_CALLBACK, option_restart, "Restart the system", NULL},
2345-
2346- {NULL}
2347-};
2348-
2349-int
2350-main (int argc, char * argv[])
2351-{
2352- gtk_init(&argc, &argv);
2353-
2354- /* Setting up i18n and gettext. Apparently, we need
2355- all of these. */
2356- setlocale (LC_ALL, "");
2357- bindtextdomain (GETTEXT_PACKAGE, GNOMELOCALEDIR);
2358- textdomain (GETTEXT_PACKAGE);
2359-
2360- GError * error = NULL;
2361- GOptionContext * context = g_option_context_new(" - logout of the current session");
2362- g_option_context_add_main_entries(context, options, "gtk-logout-helper");
2363- g_option_context_add_group(context, gtk_get_option_group(TRUE));
2364- g_option_context_set_help_enabled(context, TRUE);
2365-
2366- if (!g_option_context_parse(context, &argc, &argv, &error)) {
2367- g_debug("Option parsing failed: %s", error->message);
2368- g_error_free(error);
2369- return 1;
2370- }
2371-
2372- /* Init some theme/icon stuff */
2373- gtk_icon_theme_append_search_path(gtk_icon_theme_get_default(),
2374- INDICATOR_ICONS_DIR);
2375-
2376- GtkWidget * dialog = NULL;
2377- /* TODO: We're disabling PolicyKit checking here because there
2378- is a bug in ConsoleKit where the dialog doesn't come up until
2379- the session is entirely closed. Stupid, but it's better than
2380- not getting a dialog at all. */
2381- /* if (!pk_require_auth(type) && !supress_confirmations()) { */
2382- if (!supress_confirmations()) {
2383- dialog = logout_dialog_new(type);
2384- }
2385-
2386- if (dialog != NULL) {
2387- GtkResponseType response = gtk_dialog_run(GTK_DIALOG(dialog));
2388- gtk_widget_hide(dialog);
2389-
2390- if (response == GTK_RESPONSE_HELP) {
2391- type = LOGOUT_DIALOG_RESTART;
2392- response = GTK_RESPONSE_OK;
2393- }
2394-
2395- if (response != GTK_RESPONSE_OK) {
2396- return 0;
2397- }
2398- }
2399-
2400- session_action(type);
2401-
2402- return 0;
2403-}
2404
2405=== removed file 'src/gtk-dialog/logout-dialog.c'
2406--- src/gtk-dialog/logout-dialog.c 2009-10-05 21:11:25 +0000
2407+++ src/gtk-dialog/logout-dialog.c 1970-01-01 00:00:00 +0000
2408@@ -1,371 +0,0 @@
2409-/*
2410- * libgksuui -- Gtk+ widget and convenience functions for requesting passwords
2411- * Copyright (C) 2004 Gustavo Noronha Silva
2412- *
2413- * This library is free software; you can redistribute it and/or
2414- * modify it under the terms of the GNU Lesser General Public
2415- * License as published by the Free Software Foundation; either
2416- * version 2 of the License, or (at your option) any later version.
2417- *
2418- * This library is distributed in the hope that it will be useful,
2419- * but WITHOUT ANY WARRANTY; without even the implied warranty of
2420- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
2421- * Lesser General Public License for more details.
2422- *
2423- * You should have received a copy of the GNU Lesser General Public
2424- * License along with this library; if not, write to the
2425- * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
2426- * Boston, MA 02110-1301 USA
2427- */
2428-
2429-#include <string.h>
2430-#include <math.h>
2431-
2432-#include <gtk/gtk.h>
2433-#include <gdk/gdkx.h>
2434-#include <glib/gi18n.h>
2435-#include <X11/XKBlib.h>
2436-
2437-#include "logout-dialog.h"
2438-#include "ck-pk-helper.h"
2439-
2440-enum {
2441- PROP_ZERO,
2442- PROP_ACTION
2443-};
2444-
2445-
2446-static void
2447-logout_dialog_class_init (LogoutDialogClass *klass);
2448-
2449-static void
2450-logout_dialog_init (LogoutDialog *logout_dialog);
2451-
2452-static void
2453-set_property (GObject * object, guint param_id, const GValue * value, GParamSpec *pspec);
2454-
2455-static void
2456-get_property (GObject * object, guint param_id, GValue * value, GParamSpec *pspec);
2457-
2458-static gboolean
2459-timer_cb (gpointer data);
2460-
2461-static void
2462-show_cb (GtkWidget * widget, gpointer data);
2463-
2464-static void
2465-check_restart (LogoutDialog * dialog);
2466-
2467-static gchar*
2468-get_plural_string (LogoutDialog * dialog);
2469-
2470-static const gchar * title_strings[LOGOUT_DIALOG_ACTION_CNT] = {
2471- /* LOGOUT_DIALOG_LOGOUT, */ NC_("title", "Log Out"),
2472- /* LOGOUT_DIALOG_RESTART, */ NC_("title", "Restart"),
2473- /* LOGOUT_DIALOG_SHUTDOWN, */ NC_("title", "Shut Down")
2474-};
2475-
2476-static const gchar * button_strings[LOGOUT_DIALOG_ACTION_CNT] = {
2477- /* LOGOUT_DIALOG_LOGOUT, */ NC_("button", "Log Out"),
2478- /* LOGOUT_DIALOG_RESTART, */ NC_("button", "Restart"),
2479- /* LOGOUT_DIALOG_SHUTDOWN, */ NC_("button", "Shut Down")
2480-};
2481-
2482-static const gchar * restart_auth = N_("Restart...");
2483-
2484-static const gchar * body_logout_update = N_("You recently installed updates which will only take effect after a restart. Restart to apply software updates.");
2485-
2486-static const gchar * icon_strings[LOGOUT_DIALOG_ACTION_CNT] = {
2487- /* LOGOUT_DIALOG_LOGOUT, */ "system-log-out",
2488- /* LOGOUT_DIALOG_RESTART, */ "system-restart",
2489- /* LOGOUT_DIALOG_SHUTDOWN, */ "system-shutdown"
2490-};
2491-
2492-GType
2493-logout_dialog_get_type (void)
2494-{
2495- static GType type = 0;
2496-
2497- if (type == 0)
2498- {
2499- static const GTypeInfo info =
2500- {
2501- sizeof (LogoutDialogClass), /* size of class */
2502- NULL, /* base_init */
2503- NULL, /* base_finalize */
2504- (GClassInitFunc) logout_dialog_class_init,
2505- NULL, /* class_finalize */
2506- NULL, /* class_data */
2507- sizeof (LogoutDialog), /* size of object */
2508- 0, /* n_preallocs */
2509- (GInstanceInitFunc) logout_dialog_init /* instance_init */
2510- };
2511- type = g_type_register_static (gtk_dialog_get_type (),
2512- "LogoutDialogType",
2513- &info, 0);
2514- }
2515-
2516- return type;
2517-}
2518-
2519-static gchar*
2520-get_plural_string (LogoutDialog * dialog)
2521-{
2522- static gchar *plural_string = "";
2523-
2524- switch (dialog->action)
2525- {
2526- case LOGOUT_DIALOG_LOGOUT:
2527- plural_string = ngettext("You will be logged out in %d second.",
2528- "You will be logged out in %d seconds.",
2529- dialog->timeout);
2530- break;
2531- case LOGOUT_DIALOG_RESTART:
2532- plural_string = ngettext("The computer will restart in %d second.",
2533- "The computer will restart in %d seconds.",
2534- dialog->timeout);
2535- break;
2536- case LOGOUT_DIALOG_SHUTDOWN:
2537- plural_string = ngettext("The computer will be shut down in %d second.",
2538- "The computer will be shut down in %d seconds.",
2539- dialog->timeout);
2540- break;
2541- default:
2542- break;
2543- }
2544-
2545- return plural_string;
2546-}
2547-
2548-static void
2549-logout_dialog_class_init (LogoutDialogClass *klass)
2550-{
2551- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
2552-
2553- gobject_class->set_property = set_property;
2554- gobject_class->get_property = get_property;
2555-
2556- g_object_class_install_property(gobject_class, PROP_ACTION,
2557- g_param_spec_int("action", NULL, NULL,
2558- LOGOUT_DIALOG_LOGOUT, LOGOUT_DIALOG_SHUTDOWN,
2559- LOGOUT_DIALOG_LOGOUT, G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
2560-
2561- return;
2562-}
2563-
2564-static void
2565-set_property (GObject * object, guint param_id, const GValue * value, GParamSpec *pspec)
2566-{
2567- g_return_if_fail(param_id == PROP_ACTION);
2568-
2569- LogoutDialog * dialog = LOGOUT_DIALOG(object);
2570- dialog->action = (LogoutDialogAction)g_value_get_int(value);
2571-
2572- gtk_image_set_from_icon_name(GTK_IMAGE(dialog->image), icon_strings[dialog->action], GTK_ICON_SIZE_DIALOG);
2573- gtk_window_set_title (GTK_WINDOW(dialog), _(title_strings[dialog->action]));
2574- gtk_window_set_icon_name (GTK_WINDOW(dialog), icon_strings[dialog->action]);
2575- gtk_widget_hide(dialog->message);
2576- gtk_button_set_label(GTK_BUTTON(dialog->ok_button), _(button_strings[dialog->action]));
2577-
2578- gchar * timeouttxt = g_strdup_printf(get_plural_string(dialog), dialog->timeout);
2579- gtk_label_set_text(GTK_LABEL(dialog->timeout_text), timeouttxt);
2580- g_free(timeouttxt);
2581-
2582- check_restart(dialog);
2583-
2584- return;
2585-}
2586-
2587-static void
2588-get_property (GObject * object, guint param_id, GValue * value, GParamSpec *pspec)
2589-{
2590- g_return_if_fail(param_id == PROP_ACTION);
2591- g_value_set_int(value, LOGOUT_DIALOG(object)->action);
2592-}
2593-
2594-static gboolean
2595-timer_cb (gpointer data)
2596-{
2597- LogoutDialog * dialog = LOGOUT_DIALOG(data);
2598-
2599- if (dialog->timeout == 0) {
2600- gtk_dialog_response(GTK_DIALOG(dialog), GTK_RESPONSE_OK);
2601- dialog->timerfunc = 0;
2602- return FALSE;
2603- } else {
2604- dialog->timeout--;
2605-
2606- gchar * timeouttxt = g_strdup_printf(get_plural_string(dialog), dialog->timeout);
2607- gtk_label_set_text(GTK_LABEL(dialog->timeout_text), timeouttxt);
2608- g_free(timeouttxt);
2609- }
2610-
2611- return TRUE;
2612-}
2613-
2614-static void
2615-show_cb (GtkWidget * widget, gpointer data)
2616-{
2617- LogoutDialog * dialog = LOGOUT_DIALOG(widget);
2618-
2619- if (dialog->timerfunc != 0) {
2620- g_source_remove(dialog->timerfunc);
2621- dialog->timerfunc = 0;
2622- }
2623-
2624- dialog->timerfunc = g_timeout_add_seconds(1, timer_cb, dialog);
2625- return;
2626-}
2627-
2628-static void
2629-check_restart (LogoutDialog * dialog)
2630-{
2631- if (dialog->action != LOGOUT_DIALOG_LOGOUT) {
2632- return;
2633- }
2634-
2635- if (g_file_test("/var/run/reboot-required", G_FILE_TEST_EXISTS)) {
2636- if (pk_can_do_action("org.freedesktop.consolekit.system.restart", NULL) ||
2637- pk_can_do_action("org.freedesktop.consolekit.system.restart-multiple-users", NULL)) {
2638-
2639- gtk_label_set_text(GTK_LABEL(dialog->message), _(body_logout_update));
2640- gtk_widget_show(dialog->message);
2641- if (pk_require_auth(LOGOUT_DIALOG_RESTART)) {
2642- gtk_button_set_label(GTK_BUTTON(dialog->restart_button), _(restart_auth));
2643- } else {
2644- gtk_button_set_label(GTK_BUTTON(dialog->restart_button), _(button_strings[LOGOUT_DIALOG_RESTART]));
2645- }
2646- gtk_widget_show(dialog->restart_button);
2647- }
2648- }
2649-
2650- return;
2651-}
2652-
2653-static gboolean
2654-focus_out_cb (GtkWidget *widget, GdkEventFocus *event, gpointer user_data)
2655-{
2656- gtk_window_present (GTK_WINDOW(widget));
2657- return TRUE;
2658-}
2659-
2660-static void
2661-logout_dialog_init (LogoutDialog *logout_dialog)
2662-{
2663- GtkDialog *dialog;
2664- gint border_width = 6;
2665-
2666- logout_dialog->timeout = 60;
2667- logout_dialog->timerfunc = 0;
2668-
2669- /* dialog window */
2670- dialog = GTK_DIALOG(logout_dialog);
2671-
2672- /* make sure that our window will always have the focus */
2673- g_signal_connect (G_OBJECT(dialog), "focus-out-event",
2674- G_CALLBACK(focus_out_cb), NULL);
2675-
2676- logout_dialog->main_vbox = dialog->vbox;
2677-
2678- gtk_window_set_title (GTK_WINDOW(logout_dialog), "");
2679- gtk_dialog_set_has_separator (GTK_DIALOG(logout_dialog), FALSE);
2680- gtk_container_set_border_width (GTK_CONTAINER(logout_dialog), border_width);
2681- gtk_box_set_spacing (GTK_BOX(logout_dialog->main_vbox), 12);
2682- gtk_window_set_resizable (GTK_WINDOW(logout_dialog), FALSE);
2683-
2684- gtk_window_stick(GTK_WINDOW(logout_dialog));
2685- gtk_window_set_keep_above(GTK_WINDOW(logout_dialog), TRUE);
2686- gtk_widget_realize(GTK_WIDGET(logout_dialog));
2687- /* remove superfluous window buttons */
2688- gdk_window_set_functions (GTK_WIDGET(logout_dialog)->window, 0);
2689- gdk_window_set_decorations (GTK_WIDGET(logout_dialog)->window, GDK_DECOR_BORDER | GDK_DECOR_TITLE);
2690-
2691- /* center window */
2692- gtk_window_set_position (GTK_WINDOW(logout_dialog), GTK_WIN_POS_CENTER);
2693-
2694- /* the action buttons */
2695- /* the cancel button */
2696- logout_dialog->restart_button = gtk_dialog_add_button (dialog,
2697- GTK_STOCK_HELP,
2698- GTK_RESPONSE_HELP);
2699- gtk_button_set_label(GTK_BUTTON(logout_dialog->restart_button), _(button_strings[LOGOUT_DIALOG_RESTART]));
2700- gtk_widget_hide(logout_dialog->restart_button);
2701-
2702- /* the cancel button */
2703- logout_dialog->cancel_button = gtk_dialog_add_button (dialog,
2704- GTK_STOCK_CANCEL,
2705- GTK_RESPONSE_CANCEL);
2706- /* the ok button */
2707- logout_dialog->ok_button = gtk_dialog_add_button (dialog,
2708- GTK_STOCK_OK,
2709- GTK_RESPONSE_OK);
2710- gtk_widget_grab_default (logout_dialog->ok_button);
2711-
2712- /* Window Title and Icon */
2713- gtk_window_set_title (GTK_WINDOW(logout_dialog), _(title_strings[logout_dialog->action]));
2714- gtk_window_set_icon_name (GTK_WINDOW(logout_dialog), icon_strings[logout_dialog->action]);
2715-
2716- /* hbox */
2717- logout_dialog->hbox = gtk_hbox_new (FALSE, 12);
2718- gtk_container_set_border_width (GTK_CONTAINER(logout_dialog->hbox), 6);
2719- gtk_box_pack_start (GTK_BOX(logout_dialog->main_vbox),
2720- logout_dialog->hbox, FALSE, FALSE, 0);
2721- gtk_widget_show (logout_dialog->hbox);
2722-
2723- /* image */
2724- logout_dialog->image =
2725- gtk_image_new_from_icon_name (icon_strings[logout_dialog->action],
2726- GTK_ICON_SIZE_DIALOG);
2727- gtk_misc_set_alignment (GTK_MISC(logout_dialog->image), 0.5, 0);
2728- gtk_box_pack_start (GTK_BOX(logout_dialog->hbox), logout_dialog->image,
2729- FALSE, FALSE, 0);
2730- gtk_widget_show (logout_dialog->image);
2731-
2732- /* vbox for text */
2733- logout_dialog->vbox_text = gtk_vbox_new(FALSE, 12);
2734- gtk_box_pack_start(GTK_BOX(logout_dialog->hbox), logout_dialog->vbox_text, TRUE, TRUE, 0);
2735- gtk_widget_show(logout_dialog->vbox_text);
2736-
2737- /* Message */
2738- logout_dialog->message = gtk_label_new("");
2739- gtk_label_set_line_wrap(GTK_LABEL(logout_dialog->message), TRUE);
2740- gtk_label_set_single_line_mode(GTK_LABEL(logout_dialog->message), FALSE);
2741- gtk_label_set_selectable(GTK_LABEL(logout_dialog->message), TRUE);
2742- gtk_misc_set_alignment (GTK_MISC(logout_dialog->message), 0.0, 0.0);
2743- gtk_box_pack_start(GTK_BOX(logout_dialog->vbox_text), logout_dialog->message, TRUE, TRUE, 0);
2744- gtk_widget_show(logout_dialog->message);
2745-
2746- /* timeout */
2747- logout_dialog->timeout_text = gtk_label_new("");
2748- gtk_label_set_line_wrap(GTK_LABEL(logout_dialog->timeout_text), TRUE);
2749- gtk_label_set_single_line_mode(GTK_LABEL(logout_dialog->timeout_text), FALSE);
2750- gtk_label_set_selectable(GTK_LABEL(logout_dialog->timeout_text), FALSE);
2751- gtk_misc_set_alignment (GTK_MISC(logout_dialog->timeout_text), 0.0, 0.5);
2752- gtk_box_pack_start(GTK_BOX(logout_dialog->vbox_text), logout_dialog->timeout_text, TRUE, TRUE, 0);
2753- gtk_widget_show(logout_dialog->timeout_text);
2754-
2755- g_signal_connect(G_OBJECT(logout_dialog), "show", G_CALLBACK(show_cb), logout_dialog);
2756-
2757- return;
2758-}
2759-
2760-/**
2761- * logout_dialog_new:
2762- *
2763- * Creates a new #LogoutDialog.
2764- *
2765- * Returns: the new #LogoutDialog
2766- */
2767-GtkWidget*
2768-logout_dialog_new (LogoutDialogAction action)
2769-{
2770- LogoutDialog * dialog = g_object_new (LOGOUT_TYPE_DIALOG, "action", action, NULL);
2771- return GTK_WIDGET(dialog);
2772-}
2773-
2774-LogoutDialogAction
2775-logout_dialog_get_action (LogoutDialog * dialog)
2776-{
2777- return dialog->action;
2778-}
2779-
2780
2781=== removed file 'src/gtk-dialog/logout-dialog.h'
2782--- src/gtk-dialog/logout-dialog.h 2009-08-11 13:25:43 +0000
2783+++ src/gtk-dialog/logout-dialog.h 1970-01-01 00:00:00 +0000
2784@@ -1,99 +0,0 @@
2785-/*
2786- * libgksuui -- Gtk+ widget and convenience functions for requesting passwords
2787- * Copyright (C) 2004 Gustavo Noronha Silva
2788- *
2789- * This library is free software; you can redistribute it and/or
2790- * modify it under the terms of the GNU Lesser General Public
2791- * License as published by the Free Software Foundation; either
2792- * version 2 of the License, or (at your option) any later version.
2793- *
2794- * This library is distributed in the hope that it will be useful,
2795- * but WITHOUT ANY WARRANTY; without even the implied warranty of
2796- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
2797- * Lesser General Public License for more details.
2798- *
2799- * You should have received a copy of the GNU Lesser General Public
2800- * License along with this library; if not, write to the
2801- * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
2802- * Boston, MA 02110-1301 USA
2803- */
2804-
2805-#ifndef __LOGOUT_DIALOG_H__
2806-#define __LOGOUT_DIALOG_H__
2807-
2808-#include <gtk/gtk.h>
2809-
2810-G_BEGIN_DECLS
2811-
2812-#define LOGOUT_TYPE_DIALOG (logout_dialog_get_type ())
2813-#define LOGOUT_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), LOGOUT_TYPE_DIALOG, LogoutDialog))
2814-#define LOGOUT_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), LOGOUT_TYPE_DIALOG, LogoutDialogClass))
2815-#define LOGOUT_IS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), LOGOUT_TYPE_DIALOG))
2816-#define LOGOUT_IS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LOGOUT_TYPE_CONTEXT))
2817-#define LOGOUT_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LOGOUT_TYPE_DIALOG, LogoutDialogClass))
2818-
2819-typedef struct _LogoutDialogClass LogoutDialogClass;
2820-typedef struct _LogoutDialog LogoutDialog;
2821-typedef enum _LogoutDialogAction LogoutDialogAction;
2822-
2823-enum _LogoutDialogAction {
2824- LOGOUT_DIALOG_LOGOUT,
2825- LOGOUT_DIALOG_RESTART,
2826- LOGOUT_DIALOG_SHUTDOWN,
2827- LOGOUT_DIALOG_ACTION_CNT
2828-};
2829-
2830-struct _LogoutDialogClass
2831-{
2832- GtkDialogClass parent_class;
2833-};
2834-
2835-/**
2836- * LogoutDialog:
2837- * @dialog: parent widget
2838- * @main_vbox: GtkDialog's vbox
2839- * @hbox: box to separate the image of the right-side widgets
2840- * @image: the authorization image, left-side widget
2841- * @entry_vbox: right-side widgets container
2842- * @label: message describing what is required from the user,
2843- * right-side widget
2844- * @entry: place to type the password in, right-side widget
2845- * @ok_button: OK button of the dialog
2846- * @cancel_button: Cancel button of the dialog
2847- *
2848- * Convenience widget based on #GtkDialog to request a password.
2849- */
2850-struct _LogoutDialog
2851-{
2852- GtkDialog dialog;
2853-
2854- GtkWidget *main_vbox;
2855- GtkWidget *hbox;
2856- GtkWidget *image;
2857- GtkWidget *ok_button;
2858- GtkWidget *cancel_button;
2859- GtkWidget *restart_button;
2860- GtkWidget *vbox_text;
2861- GtkWidget *message;
2862- GtkWidget *timeout_text;
2863-
2864- LogoutDialogAction action;
2865-
2866- /* private */
2867- gchar * timeout_result;
2868- guint timeout;
2869- guint timerfunc;
2870-};
2871-
2872-GType
2873-logout_dialog_get_type (void);
2874-
2875-GtkWidget*
2876-logout_dialog_new (LogoutDialogAction action);
2877-
2878-LogoutDialogAction
2879-logout_dialog_get_action (LogoutDialog * widget);
2880-
2881-G_END_DECLS
2882-
2883-#endif
2884
2885=== renamed file 'src/indicator-session.c' => 'src/indicator-me.c'
2886--- src/indicator-session.c 2009-11-04 22:34:26 +0000
2887+++ src/indicator-me.c 2010-01-04 21:25:21 +0000
2888@@ -1,6 +1,6 @@
2889 /*
2890-A small wrapper utility to load indicators and put them as menu items
2891-into the gnome-panel using it's applet interface.
2892+A menu that should be close to the user, it's the user's status,
2893+their friends. All about them. It's a user-focused-menu.
2894
2895 Copyright 2009 Canonical Ltd.
2896
2897@@ -23,91 +23,70 @@
2898 #include <glib.h>
2899 #include <glib-object.h>
2900 #include <gtk/gtk.h>
2901-#include <libdbusmenu-gtk/client.h>
2902+#include <libdbusmenu-gtk/menu.h>
2903
2904 #include <dbus/dbus-glib.h>
2905 #include <dbus/dbus-glib-bindings.h>
2906
2907 #include <libindicator/indicator.h>
2908 #include <libindicator/indicator-object.h>
2909+#include <libindicator/indicator-service-manager.h>
2910
2911 #include "dbus-shared-names.h"
2912-#include "status-service-client.h"
2913-
2914-#define INDICATOR_SESSION_TYPE (indicator_session_get_type ())
2915-#define INDICATOR_SESSION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), INDICATOR_SESSION_TYPE, IndicatorSession))
2916-#define INDICATOR_SESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), INDICATOR_SESSION_TYPE, IndicatorSessionClass))
2917-#define IS_INDICATOR_SESSION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), INDICATOR_SESSION_TYPE))
2918-#define IS_INDICATOR_SESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), INDICATOR_SESSION_TYPE))
2919-#define INDICATOR_SESSION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), INDICATOR_SESSION_TYPE, IndicatorSessionClass))
2920-
2921-typedef struct _IndicatorSession IndicatorSession;
2922-typedef struct _IndicatorSessionClass IndicatorSessionClass;
2923-
2924-struct _IndicatorSessionClass {
2925+#include "me-service-client.h"
2926+
2927+#define INDICATOR_ME_TYPE (indicator_me_get_type ())
2928+#define INDICATOR_ME(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), INDICATOR_ME_TYPE, IndicatorMe))
2929+#define INDICATOR_ME_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), INDICATOR_ME_TYPE, IndicatorMeClass))
2930+#define IS_INDICATOR_ME(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), INDICATOR_ME_TYPE))
2931+#define IS_INDICATOR_ME_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), INDICATOR_ME_TYPE))
2932+#define INDICATOR_ME_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), INDICATOR_ME_TYPE, IndicatorMeClass))
2933+
2934+#define DEFAULT_ICON "user-offline"
2935+
2936+typedef struct _IndicatorMe IndicatorMe;
2937+typedef struct _IndicatorMeClass IndicatorMeClass;
2938+
2939+struct _IndicatorMeClass {
2940 IndicatorObjectClass parent_class;
2941 };
2942
2943-struct _IndicatorSession {
2944+struct _IndicatorMe {
2945 IndicatorObject parent;
2946+ IndicatorServiceManager * service;
2947 };
2948
2949-GType indicator_session_get_type (void);
2950+GType indicator_me_get_type (void);
2951
2952 /* Indicator stuff */
2953 INDICATOR_SET_VERSION
2954-INDICATOR_SET_TYPE(INDICATOR_SESSION_TYPE)
2955+INDICATOR_SET_TYPE(INDICATOR_ME_TYPE)
2956
2957 /* Globals */
2958-static DbusmenuGtkClient * status_client = NULL;
2959-static DbusmenuGtkClient * users_client = NULL;
2960-static DbusmenuGtkClient * session_client = NULL;
2961-
2962-static GtkMenu * main_menu = NULL;
2963 static GtkImage * status_image = NULL;
2964-
2965-static GtkWidget * status_separator = NULL;
2966-static GtkWidget * users_separator = NULL;
2967-#define SEPARATOR_SHOWN(sep) (sep != NULL && GTK_WIDGET_VISIBLE(sep))
2968-static GtkWidget * loading_item = NULL;
2969-
2970-static DBusGConnection * connection = NULL;
2971-static DBusGProxy * proxy = NULL;
2972 static DBusGProxy * status_proxy = NULL;
2973
2974-typedef enum {
2975- STATUS_SECTION,
2976- USERS_SECTION,
2977- SESSION_SECTION,
2978- END_OF_SECTIONS
2979-} section_t;
2980-
2981 /* Prototypes */
2982-static void child_added (DbusmenuMenuitem * parent, DbusmenuMenuitem * child, guint position, gpointer section);
2983-static guint status_menu_pos_offset (void);
2984-static guint users_menu_pos_offset (void);
2985-static guint session_menu_pos_offset (void);
2986-static void child_realized (DbusmenuMenuitem * child, gpointer userdata);
2987-static gboolean start_service (gpointer userdata);
2988-static void start_service_phase2 (DBusGProxy * proxy, guint status, GError * error, gpointer data);
2989 static GtkLabel * get_label (IndicatorObject * io);
2990 static GtkImage * get_icon (IndicatorObject * io);
2991 static GtkMenu * get_menu (IndicatorObject * io);
2992
2993-static void indicator_session_class_init (IndicatorSessionClass *klass);
2994-static void indicator_session_init (IndicatorSession *self);
2995-static void indicator_session_dispose (GObject *object);
2996-static void indicator_session_finalize (GObject *object);
2997+static void indicator_me_class_init (IndicatorMeClass *klass);
2998+static void indicator_me_init (IndicatorMe *self);
2999+static void indicator_me_dispose (GObject *object);
3000+static void indicator_me_finalize (GObject *object);
3001+static void connection_changed (IndicatorServiceManager * sm, gboolean connected, gpointer userdata);
3002+static void status_icon_cb (DBusGProxy * proxy, char * icons, GError *error, gpointer userdata);
3003
3004-G_DEFINE_TYPE (IndicatorSession, indicator_session, INDICATOR_OBJECT_TYPE);
3005+G_DEFINE_TYPE (IndicatorMe, indicator_me, INDICATOR_OBJECT_TYPE);
3006
3007 static void
3008-indicator_session_class_init (IndicatorSessionClass *klass)
3009+indicator_me_class_init (IndicatorMeClass *klass)
3010 {
3011 GObjectClass *object_class = G_OBJECT_CLASS (klass);
3012
3013- object_class->dispose = indicator_session_dispose;
3014- object_class->finalize = indicator_session_finalize;
3015+ object_class->dispose = indicator_me_dispose;
3016+ object_class->finalize = indicator_me_finalize;
3017
3018 IndicatorObjectClass * io_class = INDICATOR_OBJECT_CLASS(klass);
3019 io_class->get_label = get_label;
3020@@ -118,25 +97,32 @@
3021 }
3022
3023 static void
3024-indicator_session_init (IndicatorSession *self)
3025-{
3026-
3027- return;
3028-}
3029-
3030-static void
3031-indicator_session_dispose (GObject *object)
3032-{
3033-
3034- G_OBJECT_CLASS (indicator_session_parent_class)->dispose (object);
3035- return;
3036-}
3037-
3038-static void
3039-indicator_session_finalize (GObject *object)
3040-{
3041-
3042- G_OBJECT_CLASS (indicator_session_parent_class)->finalize (object);
3043+indicator_me_init (IndicatorMe *self)
3044+{
3045+
3046+ /* Init variables */
3047+ self->service = NULL;
3048+
3049+ /* Do stuff with them */
3050+ self->service = indicator_service_manager_new_version(INDICATOR_ME_DBUS_NAME, INDICATOR_ME_DBUS_VERSION);
3051+ g_signal_connect(G_OBJECT(self->service), INDICATOR_SERVICE_MANAGER_SIGNAL_CONNECTION_CHANGE, G_CALLBACK(connection_changed), self);
3052+
3053+ return;
3054+}
3055+
3056+static void
3057+indicator_me_dispose (GObject *object)
3058+{
3059+
3060+ G_OBJECT_CLASS (indicator_me_parent_class)->dispose (object);
3061+ return;
3062+}
3063+
3064+static void
3065+indicator_me_finalize (GObject *object)
3066+{
3067+
3068+ G_OBJECT_CLASS (indicator_me_parent_class)->finalize (object);
3069 return;
3070 }
3071
3072@@ -151,198 +137,26 @@
3073 static GtkImage *
3074 get_icon (IndicatorObject * io)
3075 {
3076- g_debug("Changing status icon: '%s'", "system-shutdown-panel");
3077- status_image = GTK_IMAGE(gtk_image_new_from_icon_name("system-shutdown-panel", GTK_ICON_SIZE_MENU));
3078- gtk_widget_show(GTK_WIDGET(status_image));
3079+ if (status_image == NULL) {
3080+ /* Will create the status icon if it doesn't exist already */
3081+ status_icon_cb(NULL, DEFAULT_ICON, NULL, NULL);
3082+ }
3083 return status_image;
3084 }
3085
3086-typedef struct _realized_data_t realized_data_t;
3087-struct _realized_data_t {
3088- section_t section;
3089-};
3090-
3091-static void
3092-resort_menu (void)
3093-{
3094- guint location = 0;
3095- guint clientnum;
3096-
3097- for (clientnum = 0; clientnum < 3; clientnum++) {
3098- DbusmenuGtkClient * client = NULL;
3099- if (clientnum == 0) client = status_client;
3100- if (clientnum == 1) client = users_client;
3101- if (clientnum == 2) client = session_client;
3102-
3103- if (client == NULL) continue;
3104-
3105- DbusmenuMenuitem * root = dbusmenu_client_get_root(DBUSMENU_CLIENT(client));
3106-
3107- GList * children = dbusmenu_menuitem_get_children(root);
3108- if (children == NULL) {
3109- continue;
3110- }
3111-
3112- GList * child;
3113- for (child = children; child != NULL; child = g_list_next(child)) {
3114- GtkMenuItem * widget = dbusmenu_gtkclient_menuitem_get(client, DBUSMENU_MENUITEM(child->data));
3115- if (widget != NULL) {
3116- gtk_menu_reorder_child(main_menu, GTK_WIDGET(widget), location);
3117- location++;
3118- }
3119- }
3120-
3121- if (clientnum == 0) {
3122- gtk_menu_reorder_child(main_menu, status_separator, location);
3123- location++;
3124- }
3125- if (clientnum == 1) {
3126- gtk_menu_reorder_child(main_menu, users_separator, location);
3127- location++;
3128- }
3129- }
3130-
3131- return;
3132-}
3133-
3134-static void
3135-child_added (DbusmenuMenuitem * parent, DbusmenuMenuitem * child, guint position, gpointer section)
3136-{
3137- realized_data_t * data = g_new0(realized_data_t, 1);
3138- if (data == NULL) {
3139- g_warning("Unable to allocate data for realization of item");
3140- return;
3141- }
3142-
3143- data->section = GPOINTER_TO_UINT(section);
3144-
3145- g_signal_connect(G_OBJECT(child), DBUSMENU_MENUITEM_SIGNAL_REALIZED, G_CALLBACK(child_realized), data);
3146- return;
3147-}
3148-
3149-static void
3150-child_realized (DbusmenuMenuitem * child, gpointer userdata)
3151-{
3152- g_return_if_fail(userdata != NULL);
3153- g_return_if_fail(DBUSMENU_IS_MENUITEM(child));
3154-
3155- realized_data_t * data = (realized_data_t *)userdata;
3156- section_t section = data->section;
3157- g_free(data);
3158-
3159- DbusmenuGtkClient * client = NULL;
3160- gchar * errorstr = NULL;
3161- guint (*posfunc) (void) = NULL;
3162-
3163- switch (section) {
3164- case STATUS_SECTION:
3165- client = status_client;
3166- errorstr = "Status";
3167- posfunc = status_menu_pos_offset;
3168- break;
3169- case USERS_SECTION:
3170- client = users_client;
3171- errorstr = "Users";
3172- posfunc = users_menu_pos_offset;
3173- break;
3174- case SESSION_SECTION:
3175- client = session_client;
3176- errorstr = "Session";
3177- posfunc = session_menu_pos_offset;
3178- break;
3179- default:
3180- g_warning("Child Added called with an unknown position function!");
3181- return;
3182- }
3183-
3184- if (client == NULL) {
3185- g_warning("Child realized for a menu we don't have? Section: %s", errorstr);
3186- return;
3187- }
3188-
3189- GtkMenuItem * widget = dbusmenu_gtkclient_menuitem_get(client, child);
3190-
3191- if (widget == NULL) {
3192- g_warning("Had a menu item added to the %s menu, but yet it didn't have a GtkWidget with it. Can't add that to a menu now can we? You need to figure this @#$# out!", errorstr);
3193- return;
3194- }
3195-
3196- gtk_menu_append(main_menu, GTK_WIDGET(widget));
3197- gtk_widget_show(GTK_WIDGET(widget));
3198-
3199- resort_menu();
3200-
3201- gtk_widget_hide(loading_item);
3202-
3203- return;
3204-}
3205-
3206-static void
3207-child_moved (DbusmenuMenuitem * parent, DbusmenuMenuitem * child, guint newpos, guint oldpos, guint (*posfunc) (void))
3208-{
3209-
3210-
3211-}
3212-
3213-
3214-/* Status Menu */
3215-static guint
3216-status_menu_pos_offset (void)
3217-{
3218- return 0;
3219-}
3220-
3221-static void
3222-status_menu_added (DbusmenuMenuitem * root, DbusmenuMenuitem * child, guint position, gpointer user_data)
3223-{
3224- gtk_widget_show(GTK_WIDGET(status_separator));
3225- return;
3226-}
3227-
3228-static void
3229-status_menu_removed (DbusmenuMenuitem * root, DbusmenuMenuitem * child, gpointer user_data)
3230-{
3231- if (g_list_length(dbusmenu_menuitem_get_children(root)) == 0) {
3232- gtk_widget_hide(GTK_WIDGET(status_separator));
3233- }
3234-
3235- return;
3236-}
3237-
3238-static void
3239-status_menu_root_changed(DbusmenuGtkClient * client, DbusmenuMenuitem * newroot, GtkMenu * main)
3240-{
3241- if (newroot == NULL) {
3242- gtk_widget_hide(GTK_WIDGET(status_separator));
3243- return;
3244- }
3245-
3246- g_signal_connect(G_OBJECT(newroot), DBUSMENU_MENUITEM_SIGNAL_CHILD_ADDED, G_CALLBACK(child_added), GUINT_TO_POINTER(STATUS_SECTION));
3247- g_signal_connect(G_OBJECT(newroot), DBUSMENU_MENUITEM_SIGNAL_CHILD_REMOVED, G_CALLBACK(status_menu_added), NULL);
3248- g_signal_connect(G_OBJECT(newroot), DBUSMENU_MENUITEM_SIGNAL_CHILD_REMOVED, G_CALLBACK(status_menu_removed), NULL);
3249- g_signal_connect(G_OBJECT(newroot), DBUSMENU_MENUITEM_SIGNAL_CHILD_MOVED, G_CALLBACK(child_moved), GUINT_TO_POINTER(STATUS_SECTION));
3250-
3251- GList * child = NULL;
3252- guint count = 0;
3253- for (child = dbusmenu_menuitem_get_children(newroot); child != NULL; child = g_list_next(child), count++) {
3254- child_added(newroot, DBUSMENU_MENUITEM(child->data), count, GUINT_TO_POINTER(STATUS_SECTION));
3255- }
3256-
3257- if (count > 0) {
3258- gtk_widget_show(GTK_WIDGET(status_separator));
3259- }
3260-
3261- return;
3262-}
3263-
3264 static void
3265 status_icon_cb (DBusGProxy * proxy, char * icons, GError *error, gpointer userdata)
3266 {
3267- g_return_if_fail(status_image != NULL);
3268 g_return_if_fail(icons != NULL);
3269 g_return_if_fail(icons[0] != '\0');
3270
3271 g_debug("Changing status icon: '%s'", icons);
3272+
3273+ if (status_image == NULL) {
3274+ status_image = GTK_IMAGE(gtk_image_new_from_icon_name(DEFAULT_ICON, GTK_ICON_SIZE_MENU));
3275+ gtk_widget_show(GTK_WIDGET(status_image));
3276+ }
3277+
3278 gtk_image_set_from_icon_name(status_image, icons, GTK_ICON_SIZE_MENU);
3279
3280 return;
3281@@ -354,289 +168,44 @@
3282 return status_icon_cb(proxy, icon, NULL, NULL);
3283 }
3284
3285-
3286-static gboolean
3287-connect_to_status (gpointer userdata)
3288+static void
3289+connection_changed (IndicatorServiceManager * sm, gboolean connected, gpointer userdata)
3290 {
3291- if (status_proxy == NULL) {
3292- GError * error = NULL;
3293-
3294- DBusGConnection * sbus = dbus_g_bus_get(DBUS_BUS_SESSION, NULL);
3295-
3296- status_proxy = dbus_g_proxy_new_for_name_owner(sbus,
3297- INDICATOR_STATUS_DBUS_NAME,
3298- INDICATOR_STATUS_SERVICE_DBUS_OBJECT,
3299- INDICATOR_STATUS_SERVICE_DBUS_INTERFACE,
3300- &error);
3301-
3302- if (error != NULL) {
3303- g_warning("Unable to get status proxy: %s", error->message);
3304- g_error_free(error);
3305- return FALSE;
3306+ if (connected) {
3307+ if (status_proxy == NULL) {
3308+ GError * error = NULL;
3309+
3310+ DBusGConnection * sbus = dbus_g_bus_get(DBUS_BUS_SESSION, NULL);
3311+
3312+ status_proxy = dbus_g_proxy_new_for_name_owner(sbus,
3313+ INDICATOR_ME_DBUS_NAME,
3314+ INDICATOR_ME_SERVICE_DBUS_OBJECT,
3315+ INDICATOR_ME_SERVICE_DBUS_INTERFACE,
3316+ &error);
3317+
3318+ if (error != NULL) {
3319+ g_warning("Unable to get status proxy: %s", error->message);
3320+ g_error_free(error);
3321+ }
3322+
3323+ dbus_g_proxy_add_signal(status_proxy, "StatusIconsChanged", G_TYPE_STRING, G_TYPE_INVALID);
3324+ dbus_g_proxy_connect_signal(status_proxy, "StatusIconsChanged", G_CALLBACK(status_icon_changed), NULL, NULL);
3325 }
3326
3327- dbus_g_proxy_add_signal(status_proxy, "StatusIconsChanged", G_TYPE_STRING, G_TYPE_INVALID);
3328- dbus_g_proxy_connect_signal(status_proxy, "StatusIconsChanged", G_CALLBACK(status_icon_changed), NULL, NULL);
3329- }
3330-
3331- org_ayatana_indicator_status_service_status_icons_async(status_proxy, status_icon_cb, NULL);
3332-
3333- return FALSE;
3334-}
3335-
3336-/* Follow up the service being started by connecting
3337- up the DBus Menu Client and creating our separator.
3338- Also creates an idle func to connect to the service for
3339- getting the icon that we should be using on the panel. */
3340-static void
3341-status_followup (void)
3342-{
3343- status_client = dbusmenu_gtkclient_new(INDICATOR_STATUS_DBUS_NAME, INDICATOR_STATUS_DBUS_OBJECT);
3344- g_signal_connect(G_OBJECT(status_client), DBUSMENU_GTKCLIENT_SIGNAL_ROOT_CHANGED, G_CALLBACK(status_menu_root_changed), main_menu);
3345-
3346- status_separator = gtk_separator_menu_item_new();
3347- gtk_menu_shell_append(GTK_MENU_SHELL(main_menu), status_separator);
3348- gtk_widget_hide(status_separator); /* Should be default, I'm just being explicit. $(%*#$ hide already! */
3349-
3350- g_idle_add(connect_to_status, NULL);
3351-
3352- return;
3353-}
3354-
3355-/* Users menu */
3356-
3357-static guint
3358-users_menu_pos_offset (void)
3359-{
3360- guint position = 0;
3361- if (SEPARATOR_SHOWN(status_separator)) {
3362- GList * location = g_list_find(GTK_MENU_SHELL(main_menu)->children, status_separator);
3363- position = g_list_position(GTK_MENU_SHELL(main_menu)->children, location) + 1;
3364- }
3365-
3366- return position;
3367-}
3368-
3369-static void
3370-users_menu_added (DbusmenuMenuitem * root, DbusmenuMenuitem * child, guint position, gpointer user_data)
3371-{
3372- gtk_widget_show(GTK_WIDGET(users_separator));
3373- return;
3374-}
3375-
3376-static void
3377-users_menu_removed (DbusmenuMenuitem * root, DbusmenuMenuitem * child, gpointer user_data)
3378-{
3379- if (g_list_length(dbusmenu_menuitem_get_children(root)) == 0) {
3380- gtk_widget_hide(GTK_WIDGET(users_separator));
3381- }
3382-
3383- return;
3384-}
3385-
3386-static void
3387-users_menu_root_changed(DbusmenuGtkClient * client, DbusmenuMenuitem * newroot, GtkMenu * main)
3388-{
3389- if (newroot == NULL) {
3390- gtk_widget_hide(GTK_WIDGET(users_separator));
3391- return;
3392- }
3393-
3394- g_signal_connect(G_OBJECT(newroot), DBUSMENU_MENUITEM_SIGNAL_CHILD_ADDED, G_CALLBACK(child_added), GUINT_TO_POINTER(USERS_SECTION));
3395- g_signal_connect(G_OBJECT(newroot), DBUSMENU_MENUITEM_SIGNAL_CHILD_REMOVED, G_CALLBACK(users_menu_added), NULL);
3396- g_signal_connect(G_OBJECT(newroot), DBUSMENU_MENUITEM_SIGNAL_CHILD_REMOVED, G_CALLBACK(users_menu_removed), NULL);
3397- g_signal_connect(G_OBJECT(newroot), DBUSMENU_MENUITEM_SIGNAL_CHILD_MOVED, G_CALLBACK(child_moved), GUINT_TO_POINTER(USERS_SECTION));
3398-
3399- GList * child = NULL;
3400- guint count = 0;
3401- for (child = dbusmenu_menuitem_get_children(newroot); child != NULL; child = g_list_next(child), count++) {
3402- child_added(newroot, DBUSMENU_MENUITEM(child->data), count, GUINT_TO_POINTER(USERS_SECTION));
3403- }
3404-
3405- if (count > 0) {
3406- gtk_widget_show(GTK_WIDGET(users_separator));
3407- }
3408-
3409- return;
3410-}
3411-
3412-/* Follow up the service being started by connecting
3413- up the DBus Menu Client and creating our separator. */
3414-static void
3415-users_followup (void)
3416-{
3417- users_client = dbusmenu_gtkclient_new(INDICATOR_USERS_DBUS_NAME, INDICATOR_USERS_DBUS_OBJECT);
3418- g_signal_connect(G_OBJECT(users_client), DBUSMENU_GTKCLIENT_SIGNAL_ROOT_CHANGED, G_CALLBACK(users_menu_root_changed), main_menu);
3419-
3420- users_separator = gtk_separator_menu_item_new();
3421- gtk_menu_shell_append(GTK_MENU_SHELL(main_menu), users_separator);
3422- gtk_widget_hide(users_separator); /* Should be default, I'm just being explicit. $(%*#$ hide already! */
3423-
3424- return;
3425-}
3426-
3427-/* Session Menu Stuff */
3428-
3429-static guint
3430-session_menu_pos_offset (void)
3431-{
3432- guint position = 0;
3433- if (SEPARATOR_SHOWN(users_separator)) {
3434- GList * location = g_list_find(GTK_MENU_SHELL(main_menu)->children, users_separator);
3435- position = g_list_position(GTK_MENU_SHELL(main_menu)->children, location) + 1;
3436- } else if (SEPARATOR_SHOWN(status_separator)) {
3437- GList * location = g_list_find(GTK_MENU_SHELL(main_menu)->children, status_separator);
3438- position = g_list_position(GTK_MENU_SHELL(main_menu)->children, location) + 1;
3439- }
3440-
3441- return position;
3442-}
3443-
3444-static void
3445-session_menu_removed (DbusmenuMenuitem * root, DbusmenuMenuitem * child, gpointer user_data)
3446-{
3447- return;
3448-}
3449-
3450-static void
3451-session_menu_root_changed(DbusmenuGtkClient * client, DbusmenuMenuitem * newroot, GtkMenu * main)
3452-{
3453- if (newroot == NULL) {
3454- /* We're assuming this'll crash the least so it doesn't
3455- hide a separator. May be a bad choice. */
3456- return;
3457- }
3458-
3459- g_signal_connect(G_OBJECT(newroot), DBUSMENU_MENUITEM_SIGNAL_CHILD_ADDED, G_CALLBACK(child_added), GUINT_TO_POINTER(SESSION_SECTION));
3460- g_signal_connect(G_OBJECT(newroot), DBUSMENU_MENUITEM_SIGNAL_CHILD_REMOVED, G_CALLBACK(session_menu_removed), NULL);
3461- g_signal_connect(G_OBJECT(newroot), DBUSMENU_MENUITEM_SIGNAL_CHILD_MOVED, G_CALLBACK(child_moved), GUINT_TO_POINTER(SESSION_SECTION));
3462-
3463- GList * child = NULL;
3464- guint count = 0;
3465- for (child = dbusmenu_menuitem_get_children(newroot); child != NULL; child = g_list_next(child), count++) {
3466- child_added(newroot, DBUSMENU_MENUITEM(child->data), count, GUINT_TO_POINTER(SESSION_SECTION));
3467- }
3468-
3469- return;
3470-}
3471-
3472-/* Follow up the service being started by connecting
3473- up the DBus Menu Client. */
3474-static void
3475-session_followup (void)
3476-{
3477- session_client = dbusmenu_gtkclient_new(INDICATOR_SESSION_DBUS_NAME, INDICATOR_SESSION_DBUS_OBJECT);
3478- g_signal_connect(G_OBJECT(session_client), DBUSMENU_GTKCLIENT_SIGNAL_ROOT_CHANGED, G_CALLBACK(session_menu_root_changed), main_menu);
3479-
3480- return;
3481-}
3482-
3483-/* Base menu stuff */
3484-
3485-/* This takes the response to the service starting up.
3486- It checks to see if it's started and if so, continues
3487- with the follow function for the particular area that
3488- it's working in. */
3489-static void
3490-start_service_phase2 (DBusGProxy * proxy, guint status, GError * error, gpointer data)
3491-{
3492- /* If we've got an error respond to it */
3493- if (error != NULL) {
3494- g_critical("Starting service has resulted in error.");
3495- g_error_free(error);
3496- /* Try it all again, we need to get this started! */
3497- g_idle_add(start_service, data);
3498- return;
3499- }
3500-
3501- /* If it's not running or we started it, try again */
3502- if (status != DBUS_START_REPLY_SUCCESS && status != DBUS_START_REPLY_ALREADY_RUNNING) {
3503- g_critical("Return value isn't indicative of success: %d", status);
3504- /* Try it all again, we need to get this started! */
3505- g_idle_add(start_service, data);
3506- return;
3507- }
3508-
3509- /* Check which part of the menu we're in and do the
3510- appropriate follow up from the service being started. */
3511- switch (GPOINTER_TO_INT(data)) {
3512- case STATUS_SECTION:
3513- status_followup();
3514- break;
3515- case USERS_SECTION:
3516- users_followup();
3517- break;
3518- case SESSION_SECTION:
3519- session_followup();
3520- break;
3521- default:
3522- g_critical("Oh, how can we get a value that we don't know!");
3523- break;
3524- }
3525-
3526- return;
3527-}
3528-
3529-/* Our idle service starter. It looks at the section that
3530- we're doing and then asks async for that service to be
3531- started by dbus. Probably not really useful to be in
3532- the idle loop as it's so quick, but why not. */
3533-static gboolean
3534-start_service (gpointer userdata)
3535-{
3536- g_debug("Starting a service");
3537-
3538- if (proxy == NULL) {
3539- /* If we don't have DBus, let's stay in the idle loop */
3540- return TRUE;
3541- }
3542-
3543- const gchar * service = NULL;
3544- switch (GPOINTER_TO_INT(userdata)) {
3545- case STATUS_SECTION:
3546- service = INDICATOR_STATUS_DBUS_NAME;
3547- break;
3548- case USERS_SECTION:
3549- service = INDICATOR_USERS_DBUS_NAME;
3550- break;
3551- case SESSION_SECTION:
3552- service = INDICATOR_SESSION_DBUS_NAME;
3553- break;
3554- default:
3555- g_critical("Oh, how can we get a value that we don't know!");
3556- return FALSE;
3557- }
3558-
3559- org_freedesktop_DBus_start_service_by_name_async (proxy, service, 0 /* Flags */, start_service_phase2, userdata);
3560-
3561- return FALSE;
3562-}
3563-
3564-/* Indicator based function to get the menu for the whole
3565- applet. This starts up asking for the parts of the menu
3566- from the various services. */
3567+ org_ayatana_indicator_me_service_status_icons_async(status_proxy, status_icon_cb, NULL);
3568+ } else {
3569+ /* If we're disconnecting, go back to offline */
3570+ status_icon_cb(NULL, DEFAULT_ICON, NULL, NULL);
3571+ }
3572+
3573+ return;
3574+}
3575+
3576+/* Builds the dbusmenu for the service. */
3577 static GtkMenu *
3578 get_menu (IndicatorObject * io)
3579 {
3580- connection = dbus_g_bus_get(DBUS_BUS_SESSION, NULL);
3581- proxy = dbus_g_proxy_new_for_name(connection, DBUS_SERVICE_DBUS, DBUS_PATH_DBUS, DBUS_INTERFACE_DBUS);
3582- if (proxy == NULL) {
3583- g_warning("Unable to get proxy for DBus itself. Seriously.");
3584- }
3585-
3586- /* Startup in the idle loop */
3587- g_idle_add(start_service, GINT_TO_POINTER(STATUS_SECTION));
3588- g_idle_add(start_service, GINT_TO_POINTER(USERS_SECTION));
3589- g_idle_add(start_service, GINT_TO_POINTER(SESSION_SECTION));
3590-
3591- /* Build a temp menu incase someone can ask for it
3592- before the services start. Fast user! */
3593- main_menu = GTK_MENU(gtk_menu_new());
3594- loading_item = gtk_menu_item_new_with_label("Loading...");
3595- gtk_menu_shell_append(GTK_MENU_SHELL(main_menu), loading_item);
3596- gtk_widget_show(GTK_WIDGET(loading_item));
3597-
3598- return main_menu;
3599+ return GTK_MENU(dbusmenu_gtkmenu_new(INDICATOR_ME_DBUS_NAME, INDICATOR_ME_DBUS_OBJECT));
3600 }
3601
3602
3603
3604=== removed file 'src/lock-helper.c'
3605--- src/lock-helper.c 2009-10-07 17:10:38 +0000
3606+++ src/lock-helper.c 1970-01-01 00:00:00 +0000
3607@@ -1,326 +0,0 @@
3608-/*
3609-A small helper for locking the screen.
3610-
3611-Copyright 2009 Canonical Ltd.
3612-
3613-Authors:
3614- Ted Gould <ted@canonical.com>
3615-
3616-This program is free software: you can redistribute it and/or modify it
3617-under the terms of the GNU General Public License version 3, as published
3618-by the Free Software Foundation.
3619-
3620-This program is distributed in the hope that it will be useful, but
3621-WITHOUT ANY WARRANTY; without even the implied warranties of
3622-MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
3623-PURPOSE. See the GNU General Public License for more details.
3624-
3625-You should have received a copy of the GNU General Public License along
3626-with this program. If not, see <http://www.gnu.org/licenses/>.
3627-*/
3628-
3629-#include <dbus/dbus-glib.h>
3630-#include "lock-helper.h"
3631-
3632-static DBusGProxy * gss_proxy = NULL;
3633-static GMainLoop * gss_mainloop = NULL;
3634-static guint cookie = 0;
3635-static DBusGProxyCall * cookie_call = NULL;
3636-
3637-static DBusGProxy * gdm_settings_proxy = NULL;
3638-static gboolean gdm_auto_login = FALSE;
3639-static const gchar * gdm_auto_login_string = "daemon/AutomaticLoginEnable";
3640-
3641-static gboolean is_guest = FALSE;
3642-
3643-static gdm_autologin_cb_t gdm_autologin_cb = NULL;
3644-
3645-/* Checks to see if there is an error and reports
3646- it. Not much else we can do. */
3647-static void
3648-unthrottle_return (DBusGProxy * proxy, DBusGProxyCall * call, gpointer data)
3649-{
3650- GError * error = NULL;
3651- dbus_g_proxy_end_call(proxy, call, &error,
3652- G_TYPE_INVALID);
3653-
3654- if (error != NULL) {
3655- g_warning("Unable to unthrottle: %s", error->message);
3656- }
3657- return;
3658-}
3659-
3660-/* Sends an unthrottle if we're throttled. */
3661-void
3662-screensaver_unthrottle (void)
3663-{
3664- g_return_if_fail(cookie != 0);
3665-
3666- dbus_g_proxy_begin_call(gss_proxy, "UnThrottle",
3667- unthrottle_return, NULL,
3668- NULL,
3669- G_TYPE_UINT, cookie,
3670- G_TYPE_INVALID);
3671-
3672- cookie = 0;
3673- return;
3674-}
3675-
3676-/* Gets there return cookie from the throttle command
3677- and sets things valid */
3678-static void
3679-throttle_return (DBusGProxy * proxy, DBusGProxyCall * call, gpointer data)
3680-{
3681- GError * error = NULL;
3682- cookie_call = NULL;
3683-
3684- dbus_g_proxy_end_call(proxy, call, &error,
3685- G_TYPE_UINT, &cookie,
3686- G_TYPE_INVALID);
3687-
3688- if (error != NULL) {
3689- g_warning("Unable to throttle the screensaver: %s", error->message);
3690- return;
3691- }
3692-
3693-
3694- if (cookie == 0) {
3695- g_warning("We didn't get a throttle cookie!");
3696- }
3697-
3698- return;
3699-}
3700-
3701-/* Throttling the screensaver by using the screen saver
3702- command. */
3703-void
3704-screensaver_throttle (gchar * reason)
3705-{
3706- g_return_if_fail(cookie_call == NULL);
3707- g_return_if_fail(will_lock_screen());
3708-
3709- if (cookie != 0) {
3710- screensaver_unthrottle();
3711- }
3712-
3713- cookie_call = dbus_g_proxy_begin_call(gss_proxy, "Throttle",
3714- throttle_return, NULL,
3715- NULL,
3716- G_TYPE_STRING, "Session Menu",
3717- G_TYPE_STRING, reason,
3718- G_TYPE_INVALID);
3719-
3720- return;
3721-}
3722-
3723-/* Setting up a call back */
3724-void
3725-lock_screen_gdm_cb_set (gdm_autologin_cb_t cb)
3726-{
3727- if (gdm_autologin_cb) {
3728- g_warning("Already had a callback, setting up a new one...");
3729- }
3730-
3731- gdm_autologin_cb = cb;
3732- return;
3733-}
3734-
3735-/* This is our logic on whether the screen should be locked
3736- or not. It effects everything else. */
3737-gboolean
3738-will_lock_screen (void)
3739-{
3740- if (gdm_auto_login) {
3741- return FALSE;
3742- }
3743- if (is_guest) {
3744- return FALSE;
3745- }
3746-
3747- return TRUE;
3748-}
3749-
3750-/* Respond to the signal of autologin changing to see if the
3751- setting for timed login changes. */
3752-static void
3753-gdm_settings_change (DBusGProxy * proxy, const gchar * value, const gchar * old, const gchar * new, gpointer data)
3754-{
3755- if (g_strcmp0(value, gdm_auto_login_string)) {
3756- /* This is not a setting that we care about,
3757- there is only one. */
3758- return;
3759- }
3760- g_debug("GDM Settings change: %s", new);
3761-
3762- if (g_strcmp0(new, "true") == 0) {
3763- gdm_auto_login = TRUE;
3764- } else {
3765- gdm_auto_login = FALSE;
3766- }
3767-
3768- if (gdm_autologin_cb != NULL) {
3769- gdm_autologin_cb();
3770- }
3771-
3772- return;
3773-}
3774-
3775-/* Get back the data from querying to see if there is auto
3776- login enabled in GDM */
3777-static void
3778-gdm_get_autologin (DBusGProxy * proxy, DBusGProxyCall * call, gpointer data)
3779-{
3780- GError * error = NULL;
3781- gchar * value = NULL;
3782-
3783- if (!dbus_g_proxy_end_call(proxy, call, &error, G_TYPE_STRING, &value, G_TYPE_INVALID)) {
3784- g_warning("Unable to get autologin setting: %s", error != NULL ? error->message : "null");
3785- g_error_free(error);
3786- return;
3787- }
3788-
3789- g_return_if_fail(value != NULL);
3790- gdm_settings_change(proxy, gdm_auto_login_string, NULL, value, NULL);
3791-
3792- return;
3793-}
3794-
3795-/* Sets up the proxy and queries for the setting to know
3796- whether we're doing an autologin. */
3797-static void
3798-build_gdm_proxy (void)
3799-{
3800- g_return_if_fail(gdm_settings_proxy == NULL);
3801-
3802- /* Grab the system bus */
3803- DBusGConnection * bus = dbus_g_bus_get(DBUS_BUS_SYSTEM, NULL);
3804- g_return_if_fail(bus != NULL);
3805-
3806- /* Get the settings proxy */
3807- gdm_settings_proxy = dbus_g_proxy_new_for_name_owner(bus,
3808- "org.gnome.DisplayManager",
3809- "/org/gnome/DisplayManager/Settings",
3810- "org.gnome.DisplayManager.Settings", NULL);
3811- g_return_if_fail(gdm_settings_proxy != NULL);
3812-
3813- /* Signal for value changed */
3814- dbus_g_proxy_add_signal(gdm_settings_proxy,
3815- "ValueChanged",
3816- G_TYPE_STRING,
3817- G_TYPE_STRING,
3818- G_TYPE_STRING,
3819- G_TYPE_INVALID);
3820- dbus_g_proxy_connect_signal(gdm_settings_proxy,
3821- "ValueChanged",
3822- G_CALLBACK(gdm_settings_change),
3823- NULL,
3824- NULL);
3825-
3826- /* Start to get the initial value */
3827- dbus_g_proxy_begin_call(gdm_settings_proxy,
3828- "GetValue",
3829- gdm_get_autologin,
3830- NULL,
3831- NULL,
3832- G_TYPE_STRING,
3833- gdm_auto_login_string,
3834- G_TYPE_INVALID);
3835-
3836- return;
3837-}
3838-
3839-/* When the screensave go active, if we've got a mainloop
3840- running we should quit it. */
3841-static void
3842-gss_active_changed (DBusGProxy * proxy, gboolean active, gpointer data)
3843-{
3844- if (active && gss_mainloop != NULL) {
3845- g_main_loop_quit(gss_mainloop);
3846- }
3847-
3848- return;
3849-}
3850-
3851-/* Build the gss proxy and set up it's signals */
3852-void
3853-build_gss_proxy (void)
3854-{
3855- DBusGConnection * session_bus = dbus_g_bus_get(DBUS_BUS_SESSION, NULL);
3856- g_return_if_fail(session_bus != NULL);
3857-
3858- gss_proxy = dbus_g_proxy_new_for_name_owner(session_bus,
3859- "org.gnome.ScreenSaver",
3860- "/",
3861- "org.gnome.ScreenSaver",
3862- NULL);
3863- g_return_if_fail(gss_proxy != NULL);
3864-
3865- dbus_g_proxy_add_signal(gss_proxy, "ActiveChanged", G_TYPE_BOOLEAN, G_TYPE_INVALID);
3866- dbus_g_proxy_connect_signal(gss_proxy, "ActiveChanged", G_CALLBACK(gss_active_changed), NULL, NULL);
3867-
3868- return;
3869-}
3870-
3871-/* This is a timeout, we only want to wait for the screen to
3872- lock for a little bit, but not forever. */
3873-static gboolean
3874-activate_timeout (gpointer data)
3875-{
3876- guint * address = (guint *)data;
3877- *address = 0;
3878-
3879- if (gss_mainloop != NULL) {
3880- g_main_loop_quit(gss_mainloop);
3881- }
3882-
3883- return FALSE;
3884-}
3885-
3886-/* A fun little function to actually lock the screen. If,
3887- that's what you want, let's do it! */
3888-void
3889-lock_screen (DbusmenuMenuitem * mi, gpointer data)
3890-{
3891- g_debug("Lock Screen");
3892- if (!will_lock_screen()) {
3893- g_debug("\tGDM set to autologin, blocking lock");
3894- return;
3895- }
3896-
3897- g_return_if_fail(gss_proxy != NULL);
3898-
3899- dbus_g_proxy_call_no_reply(gss_proxy,
3900- "Lock",
3901- G_TYPE_INVALID,
3902- G_TYPE_INVALID);
3903-
3904- if (gss_mainloop == NULL) {
3905- gss_mainloop = g_main_loop_new(NULL, FALSE);
3906- }
3907-
3908- guint timer = g_timeout_add_seconds(1, activate_timeout, &timer);
3909-
3910- g_main_loop_run(gss_mainloop);
3911-
3912- if (timer != 0) {
3913- g_source_remove(timer);
3914- }
3915-
3916- return;
3917-}
3918-
3919-/* Do what it takes to make the lock screen function work
3920- and be happy. */
3921-gboolean
3922-lock_screen_setup (gpointer data)
3923-{
3924- if (!g_strcmp0(g_get_user_name(), "guest")) {
3925- is_guest = TRUE;
3926- }
3927-
3928- build_gdm_proxy();
3929- build_gss_proxy();
3930-
3931- return FALSE;
3932-}
3933-
3934
3935=== removed file 'src/lock-helper.h'
3936--- src/lock-helper.h 2009-10-07 15:57:52 +0000
3937+++ src/lock-helper.h 1970-01-01 00:00:00 +0000
3938@@ -1,37 +0,0 @@
3939-/*
3940-A small helper for locking the screen.
3941-
3942-Copyright 2009 Canonical Ltd.
3943-
3944-Authors:
3945- Ted Gould <ted@canonical.com>
3946-
3947-This program is free software: you can redistribute it and/or modify it
3948-under the terms of the GNU General Public License version 3, as published
3949-by the Free Software Foundation.
3950-
3951-This program is distributed in the hope that it will be useful, but
3952-WITHOUT ANY WARRANTY; without even the implied warranties of
3953-MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
3954-PURPOSE. See the GNU General Public License for more details.
3955-
3956-You should have received a copy of the GNU General Public License along
3957-with this program. If not, see <http://www.gnu.org/licenses/>.
3958-*/
3959-
3960-#ifndef LOCK_HELPER_H__
3961-#define LOCK_HELPER_H__
3962-
3963-#include <libdbusmenu-glib/menuitem.h>
3964-
3965-typedef void (*gdm_autologin_cb_t) (void);
3966-
3967-void screensaver_throttle (gchar * reason);
3968-void screensaver_unthrottle (void);
3969-
3970-gboolean will_lock_screen (void);
3971-void lock_screen (DbusmenuMenuitem * mi, gpointer data);
3972-gboolean lock_screen_setup (gpointer data);
3973-void lock_screen_gdm_cb_set (gdm_autologin_cb_t cb);
3974-
3975-#endif /* LOCK_HELPER_H__ */
3976
3977=== renamed file 'src/status-service-dbus.c' => 'src/me-service-dbus.c'
3978--- src/status-service-dbus.c 2009-08-08 20:54:51 +0000
3979+++ src/me-service-dbus.c 2010-01-04 21:25:21 +0000
3980@@ -27,17 +27,17 @@
3981 #include <dbus/dbus-glib.h>
3982
3983 #include "dbus-shared-names.h"
3984-#include "status-service-dbus.h"
3985+#include "me-service-dbus.h"
3986
3987 static void status_service_dbus_class_init (StatusServiceDbusClass *klass);
3988 static void status_service_dbus_init (StatusServiceDbus *self);
3989 static void status_service_dbus_dispose (GObject *object);
3990 static void status_service_dbus_finalize (GObject *object);
3991-static gboolean _status_service_server_watch (StatusServiceDbus * service, GError ** error);
3992-static gboolean _status_service_server_status_icons (StatusServiceDbus * service, gchar ** icon, GError ** error);
3993-static gboolean _status_service_server_pretty_user_name (StatusServiceDbus * service, gchar ** username, GError ** error);
3994+static gboolean _me_service_server_watch (StatusServiceDbus * service, GError ** error);
3995+static gboolean _me_service_server_status_icons (StatusServiceDbus * service, gchar ** icon, GError ** error);
3996+static gboolean _me_service_server_pretty_user_name (StatusServiceDbus * service, gchar ** username, GError ** error);
3997
3998-#include "status-service-server.h"
3999+#include "me-service-server.h"
4000
4001 /* Private */
4002 typedef struct _StatusServiceDbusPrivate StatusServiceDbusPrivate;
4003@@ -106,7 +106,7 @@
4004 g_cclosure_marshal_VOID__STRING,
4005 G_TYPE_NONE, 1, G_TYPE_STRING);
4006
4007- dbus_g_object_type_install_info(STATUS_SERVICE_DBUS_TYPE, &dbus_glib__status_service_server_object_info);
4008+ dbus_g_object_type_install_info(STATUS_SERVICE_DBUS_TYPE, &dbus_glib__me_service_server_object_info);
4009
4010 return;
4011 }
4012@@ -117,7 +117,7 @@
4013
4014 DBusGConnection * connection = dbus_g_bus_get(DBUS_BUS_SESSION, NULL);
4015 dbus_g_connection_register_g_object(connection,
4016- INDICATOR_STATUS_SERVICE_DBUS_OBJECT,
4017+ INDICATOR_ME_SERVICE_DBUS_OBJECT,
4018 G_OBJECT(self));
4019
4020 StatusServiceDbusPrivate * priv = STATUS_SERVICE_DBUS_GET_PRIVATE(self);
4021@@ -144,14 +144,14 @@
4022 }
4023
4024 static gboolean
4025-_status_service_server_watch (StatusServiceDbus * service, GError ** error)
4026+_me_service_server_watch (StatusServiceDbus * service, GError ** error)
4027 {
4028
4029 return TRUE;
4030 }
4031
4032 static gboolean
4033-_status_service_server_status_icons (StatusServiceDbus * service, gchar ** icon, GError ** error)
4034+_me_service_server_status_icons (StatusServiceDbus * service, gchar ** icon, GError ** error)
4035 {
4036 if (!IS_STATUS_SERVICE_DBUS(service)) {
4037 g_warning("NO BAD EVIL!");
4038@@ -169,7 +169,7 @@
4039 }
4040
4041 static gboolean
4042-_status_service_server_pretty_user_name (StatusServiceDbus * service, gchar ** username, GError ** error)
4043+_me_service_server_pretty_user_name (StatusServiceDbus * service, gchar ** username, GError ** error)
4044 {
4045 if (!IS_STATUS_SERVICE_DBUS(service)) {
4046 g_warning("NO BAD EVIL!");
4047
4048=== renamed file 'src/status-service-dbus.h' => 'src/me-service-dbus.h'
4049=== renamed file 'src/status-service.c' => 'src/me-service.c'
4050--- src/status-service.c 2009-10-06 22:51:09 +0000
4051+++ src/me-service.c 2010-01-04 21:25:21 +0000
4052@@ -35,9 +35,11 @@
4053 #include <libdbusmenu-glib/server.h>
4054 #include <libdbusmenu-glib/menuitem.h>
4055
4056+#include <libindicator/indicator-service.h>
4057+
4058 #include "dbus-shared-names.h"
4059
4060-#include "status-service-dbus.h"
4061+#include "me-service-dbus.h"
4062
4063 #include "status-provider.h"
4064 #include "status-provider-mc5.h"
4065@@ -73,7 +75,6 @@
4066
4067
4068 static DbusmenuMenuitem * root_menuitem = NULL;
4069-static DbusmenuMenuitem * status_menuitem = NULL;
4070 static DbusmenuMenuitem * status_menuitems[STATUS_PROVIDER_STATUS_LAST] = {0};
4071 static GMainLoop * mainloop = NULL;
4072 static StatusServiceDbus * dbus_interface = NULL;
4073@@ -107,7 +108,7 @@
4074 StatusProviderStatus i;
4075 for (i = STATUS_PROVIDER_STATUS_ONLINE; i < STATUS_PROVIDER_STATUS_LAST; i++) {
4076 if (status_menuitems[i] == NULL) continue;
4077- dbusmenu_menuitem_property_set(status_menuitems[i], DBUSMENU_MENUITEM_PROP_SENSITIVE, "false");
4078+ dbusmenu_menuitem_property_set_bool(status_menuitems[i], DBUSMENU_MENUITEM_PROP_SENSITIVE, FALSE);
4079 }
4080 }
4081
4082@@ -117,7 +118,7 @@
4083 StatusProviderStatus i;
4084 for (i = STATUS_PROVIDER_STATUS_ONLINE; i < STATUS_PROVIDER_STATUS_LAST; i++) {
4085 if (status_menuitems[i] == NULL) continue;
4086- dbusmenu_menuitem_property_set(status_menuitems[i], DBUSMENU_MENUITEM_PROP_SENSITIVE, "true");
4087+ dbusmenu_menuitem_property_set_bool(status_menuitems[i], DBUSMENU_MENUITEM_PROP_SENSITIVE, TRUE);
4088 }
4089 }
4090 }
4091@@ -171,7 +172,7 @@
4092 if (name[0] != '\0') {
4093 DbusmenuMenuitem * useritem = dbusmenu_menuitem_new();
4094 dbusmenu_menuitem_property_set(useritem, DBUSMENU_MENUITEM_PROP_LABEL, name);
4095- dbusmenu_menuitem_property_set(useritem, DBUSMENU_MENUITEM_PROP_SENSITIVE, "false");
4096+ dbusmenu_menuitem_property_set_bool(useritem, DBUSMENU_MENUITEM_PROP_SENSITIVE, FALSE);
4097 dbusmenu_menuitem_child_append(root, useritem);
4098 }
4099
4100@@ -191,10 +192,6 @@
4101
4102 build_user_item(root);
4103
4104- status_menuitem = dbusmenu_menuitem_new();
4105- dbusmenu_menuitem_property_set(status_menuitem, DBUSMENU_MENUITEM_PROP_LABEL, _("Set Status"));
4106- dbusmenu_menuitem_child_append(root, status_menuitem);
4107-
4108 StatusProviderStatus i;
4109 for (i = STATUS_PROVIDER_STATUS_ONLINE; i < STATUS_PROVIDER_STATUS_LAST; i++) {
4110 if (i == STATUS_PROVIDER_STATUS_DISCONNECTED) {
4111@@ -205,15 +202,14 @@
4112
4113 status_menuitems[i] = dbusmenu_menuitem_new();
4114
4115- dbusmenu_menuitem_property_set(status_menuitems[i], "type", DBUSMENU_CLIENT_TYPES_IMAGE);
4116 dbusmenu_menuitem_property_set(status_menuitems[i], DBUSMENU_MENUITEM_PROP_LABEL, _(status_strings[i]));
4117 dbusmenu_menuitem_property_set(status_menuitems[i], DBUSMENU_MENUITEM_PROP_ICON, status_icons[i]);
4118 if (global_status == STATUS_PROVIDER_STATUS_DISCONNECTED) {
4119- dbusmenu_menuitem_property_set(status_menuitems[i], DBUSMENU_MENUITEM_PROP_SENSITIVE, "false");
4120+ dbusmenu_menuitem_property_set_bool(status_menuitems[i], DBUSMENU_MENUITEM_PROP_SENSITIVE, FALSE);
4121 }
4122 g_signal_connect(G_OBJECT(status_menuitems[i]), DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, G_CALLBACK(status_menu_click), GINT_TO_POINTER(i));
4123
4124- dbusmenu_menuitem_child_append(status_menuitem, status_menuitems[i]);
4125+ dbusmenu_menuitem_child_append(root, status_menuitems[i]);
4126
4127 g_debug("Built %s", status_strings[i]);
4128 }
4129@@ -221,6 +217,14 @@
4130 return FALSE;
4131 }
4132
4133+void
4134+service_shutdown (IndicatorService * service, gpointer user_data)
4135+{
4136+ g_debug("Service shutting down");
4137+ g_main_loop_quit(mainloop);
4138+ return;
4139+}
4140+
4141 int
4142 main (int argc, char ** argv)
4143 {
4144@@ -232,25 +236,13 @@
4145 bindtextdomain (GETTEXT_PACKAGE, GNOMELOCALEDIR);
4146 textdomain (GETTEXT_PACKAGE);
4147
4148- DBusGConnection * connection = dbus_g_bus_get(DBUS_BUS_SESSION, NULL);
4149- DBusGProxy * bus_proxy = dbus_g_proxy_new_for_name(connection, DBUS_SERVICE_DBUS, DBUS_PATH_DBUS, DBUS_INTERFACE_DBUS);
4150- GError * error = NULL;
4151- guint nameret = 0;
4152-
4153- if (!org_freedesktop_DBus_request_name(bus_proxy, INDICATOR_STATUS_DBUS_NAME, 0, &nameret, &error)) {
4154- g_error("Unable to call to request name");
4155- return 1;
4156- }
4157-
4158- if (nameret != DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER) {
4159- g_error("Unable to get name");
4160- return 1;
4161- }
4162+ IndicatorService * service = indicator_service_new_version(INDICATOR_ME_DBUS_NAME, INDICATOR_ME_DBUS_VERSION);
4163+ g_signal_connect(G_OBJECT(service), INDICATOR_SERVICE_SIGNAL_SHUTDOWN, G_CALLBACK(service_shutdown), NULL);
4164
4165 g_idle_add(build_providers, NULL);
4166
4167 root_menuitem = dbusmenu_menuitem_new();
4168- DbusmenuServer * server = dbusmenu_server_new(INDICATOR_STATUS_DBUS_OBJECT);
4169+ DbusmenuServer * server = dbusmenu_server_new(INDICATOR_ME_DBUS_OBJECT);
4170 dbusmenu_server_set_root(server, root_menuitem);
4171
4172 g_idle_add(build_menu, root_menuitem);
4173
4174=== renamed file 'src/status-service.xml' => 'src/me-service.xml'
4175--- src/status-service.xml 2009-08-08 16:47:24 +0000
4176+++ src/me-service.xml 2010-01-04 21:25:21 +0000
4177@@ -1,6 +1,6 @@
4178 <?xml version="1.0" encoding="UTF-8"?>
4179 <node name="/">
4180- <interface name="org.ayatana.indicator.status.service">
4181+ <interface name="org.ayatana.indicator.me.service">
4182
4183 <!-- Methods -->
4184 <method name="Watch">
4185
4186=== removed file 'src/session-service.c'
4187--- src/session-service.c 2009-10-07 16:56:05 +0000
4188+++ src/session-service.c 1970-01-01 00:00:00 +0000
4189@@ -1,339 +0,0 @@
4190-/*
4191-A small wrapper utility to load indicators and put them as menu items
4192-into the gnome-panel using it's applet interface.
4193-
4194-Copyright 2009 Canonical Ltd.
4195-
4196-Authors:
4197- Ted Gould <ted@canonical.com>
4198- Christoph Korn <c_korn@gmx.de>
4199-
4200-This program is free software: you can redistribute it and/or modify it
4201-under the terms of the GNU General Public License version 3, as published
4202-by the Free Software Foundation.
4203-
4204-This program is distributed in the hope that it will be useful, but
4205-WITHOUT ANY WARRANTY; without even the implied warranties of
4206-MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
4207-PURPOSE. See the GNU General Public License for more details.
4208-
4209-You should have received a copy of the GNU General Public License along
4210-with this program. If not, see <http://www.gnu.org/licenses/>.
4211-*/
4212-
4213-#include <config.h>
4214-
4215-#include <glib/gi18n.h>
4216-
4217-#include <dbus/dbus-glib.h>
4218-#include <dbus/dbus-glib-bindings.h>
4219-
4220-#include <libdbusmenu-glib/server.h>
4221-#include <libdbusmenu-glib/menuitem.h>
4222-
4223-#include "dbus-shared-names.h"
4224-
4225-#include "gtk-dialog/gconf-helper.h"
4226-
4227-#include "lock-helper.h"
4228-
4229-#define DKP_ADDRESS "org.freedesktop.DeviceKit.Power"
4230-#define DKP_OBJECT "/org/freedesktop/DeviceKit/Power"
4231-#define DKP_INTERFACE "org.freedesktop.DeviceKit.Power"
4232-
4233-static DbusmenuMenuitem * root_menuitem = NULL;
4234-static GMainLoop * mainloop = NULL;
4235-static DBusGProxy * dkp_main_proxy = NULL;
4236-static DBusGProxy * dkp_prop_proxy = NULL;
4237-
4238-static DBusGProxyCall * suspend_call = NULL;
4239-static DBusGProxyCall * hibernate_call = NULL;
4240-
4241-static DbusmenuMenuitem * hibernate_mi = NULL;
4242-static DbusmenuMenuitem * suspend_mi = NULL;
4243-static DbusmenuMenuitem * logout_mi = NULL;
4244-static DbusmenuMenuitem * restart_mi = NULL;
4245-static DbusmenuMenuitem * shutdown_mi = NULL;
4246-
4247-/* A return from the command to sleep the system. Make sure
4248- that we unthrottle the screensaver. */
4249-static void
4250-sleep_response (DBusGProxy * proxy, DBusGProxyCall * call, gpointer data)
4251-{
4252- screensaver_unthrottle();
4253- return;
4254-}
4255-
4256-/* Let's put this machine to sleep, with some info on how
4257- it should sleep. */
4258-static void
4259-sleep (DbusmenuMenuitem * mi, gpointer userdata)
4260-{
4261- gchar * type = (gchar *)userdata;
4262-
4263- if (dkp_main_proxy == NULL) {
4264- g_warning("Can not %s as no DeviceKit Power Proxy", type);
4265- }
4266-
4267- screensaver_throttle(type);
4268- lock_screen(NULL, NULL);
4269-
4270- dbus_g_proxy_begin_call(dkp_main_proxy,
4271- type,
4272- sleep_response,
4273- NULL,
4274- NULL,
4275- G_TYPE_INVALID);
4276-
4277- return;
4278-}
4279-
4280-/* A response to getting the suspend property */
4281-static void
4282-suspend_prop_cb (DBusGProxy * proxy, DBusGProxyCall * call, gpointer userdata)
4283-{
4284- suspend_call = NULL;
4285-
4286- GValue candoit = {0};
4287- GError * error = NULL;
4288- dbus_g_proxy_end_call(proxy, call, &error, G_TYPE_VALUE, &candoit, G_TYPE_INVALID);
4289- if (error != NULL) {
4290- g_warning("Unable to check suspend: %s", error->message);
4291- g_error_free(error);
4292- return;
4293- }
4294- g_debug("Got Suspend: %s", g_value_get_boolean(&candoit) ? "true" : "false");
4295-
4296- if (suspend_mi != NULL) {
4297- dbusmenu_menuitem_property_set(suspend_mi, DBUSMENU_MENUITEM_PROP_VISIBLE, g_value_get_boolean(&candoit) ? "true" : "false");
4298- }
4299-
4300- return;
4301-}
4302-
4303-/* Response to getting the hibernate property */
4304-static void
4305-hibernate_prop_cb (DBusGProxy * proxy, DBusGProxyCall * call, gpointer userdata)
4306-{
4307- hibernate_call = NULL;
4308-
4309- GValue candoit = {0};
4310- GError * error = NULL;
4311- dbus_g_proxy_end_call(proxy, call, &error, G_TYPE_VALUE, &candoit, G_TYPE_INVALID);
4312- if (error != NULL) {
4313- g_warning("Unable to check hibernate: %s", error->message);
4314- g_error_free(error);
4315- return;
4316- }
4317- g_debug("Got Hibernate: %s", g_value_get_boolean(&candoit) ? "true" : "false");
4318-
4319- if (suspend_mi != NULL) {
4320- dbusmenu_menuitem_property_set(hibernate_mi, DBUSMENU_MENUITEM_PROP_VISIBLE, g_value_get_boolean(&candoit) ? "true" : "false");
4321- }
4322-
4323- return;
4324-}
4325-
4326-/* A signal that we need to recheck to ensure we can still
4327- hibernate and/or suspend */
4328-static void
4329-dpk_changed_cb (DBusGProxy * proxy, gpointer user_data)
4330-{
4331- /* Start Async call to see if we can hibernate */
4332- if (suspend_call == NULL) {
4333- suspend_call = dbus_g_proxy_begin_call(dkp_prop_proxy,
4334- "Get",
4335- suspend_prop_cb,
4336- NULL,
4337- NULL,
4338- G_TYPE_STRING,
4339- DKP_INTERFACE,
4340- G_TYPE_STRING,
4341- "can-suspend",
4342- G_TYPE_INVALID,
4343- G_TYPE_VALUE,
4344- G_TYPE_INVALID);
4345- }
4346-
4347- /* Start Async call to see if we can suspend */
4348- if (hibernate_call == NULL) {
4349- hibernate_call = dbus_g_proxy_begin_call(dkp_prop_proxy,
4350- "Get",
4351- hibernate_prop_cb,
4352- NULL,
4353- NULL,
4354- G_TYPE_STRING,
4355- DKP_INTERFACE,
4356- G_TYPE_STRING,
4357- "can-hibernate",
4358- G_TYPE_INVALID,
4359- G_TYPE_VALUE,
4360- G_TYPE_INVALID);
4361- }
4362-
4363- return;
4364-}
4365-
4366-/* This function goes through and sets up what we need for
4367- DKp checking. We're even setting up the calls for the props
4368- we need */
4369-static void
4370-setup_dkp (void) {
4371- DBusGConnection * bus = dbus_g_bus_get(DBUS_BUS_SYSTEM, NULL);
4372- g_return_if_fail(bus != NULL);
4373-
4374- if (dkp_main_proxy == NULL) {
4375- dkp_main_proxy = dbus_g_proxy_new_for_name(bus,
4376- DKP_ADDRESS,
4377- DKP_OBJECT,
4378- DKP_INTERFACE);
4379- }
4380- g_return_if_fail(dkp_main_proxy != NULL);
4381-
4382- if (dkp_prop_proxy == NULL) {
4383- dkp_prop_proxy = dbus_g_proxy_new_for_name(bus,
4384- DKP_ADDRESS,
4385- DKP_OBJECT,
4386- DBUS_INTERFACE_PROPERTIES);
4387- }
4388- g_return_if_fail(dkp_prop_proxy != NULL);
4389-
4390- /* Connect to changed signal */
4391- dbus_g_proxy_add_signal(dkp_main_proxy,
4392- "Changed",
4393- G_TYPE_INVALID);
4394-
4395- dbus_g_proxy_connect_signal(dkp_main_proxy,
4396- "Changed",
4397- G_CALLBACK(dpk_changed_cb),
4398- NULL,
4399- NULL);
4400-
4401- /* Force an original "changed" event */
4402- dpk_changed_cb(dkp_main_proxy, NULL);
4403-
4404- return;
4405-}
4406-
4407-/* This is the function to show a dialog on actions that
4408- can destroy data. Currently it just calls the GTK version
4409- but it seems that in the future it should figure out
4410- what's going on and something better. */
4411-static void
4412-show_dialog (DbusmenuMenuitem * mi, gchar * type)
4413-{
4414- gchar * helper = g_build_filename(LIBEXECDIR, "gtk-logout-helper", NULL);
4415- gchar * dialog_line = g_strdup_printf("%s --%s", helper, type);
4416- g_free(helper);
4417-
4418- g_debug("Showing dialog '%s'", dialog_line);
4419-
4420- GError * error = NULL;
4421- if (!g_spawn_command_line_async(dialog_line, &error)) {
4422- g_warning("Unable to show dialog: %s", error->message);
4423- g_error_free(error);
4424- }
4425-
4426- g_free(dialog_line);
4427-
4428- return;
4429-}
4430-
4431-/* This function creates all of the menuitems that the service
4432- provides in the UI. It also connects them to the callbacks. */
4433-static void
4434-create_items (DbusmenuMenuitem * root) {
4435- logout_mi = dbusmenu_menuitem_new();
4436- if (supress_confirmations()) {
4437- dbusmenu_menuitem_property_set(logout_mi, DBUSMENU_MENUITEM_PROP_LABEL, _("Log Out"));
4438- } else {
4439- dbusmenu_menuitem_property_set(logout_mi, DBUSMENU_MENUITEM_PROP_LABEL, _("Log Out..."));
4440- }
4441- dbusmenu_menuitem_child_append(root, logout_mi);
4442- g_signal_connect(G_OBJECT(logout_mi), DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, G_CALLBACK(show_dialog), "logout");
4443-
4444- suspend_mi = dbusmenu_menuitem_new();
4445- dbusmenu_menuitem_property_set(suspend_mi, DBUSMENU_MENUITEM_PROP_VISIBLE, "false");
4446- dbusmenu_menuitem_property_set(suspend_mi, DBUSMENU_MENUITEM_PROP_LABEL, _("Suspend"));
4447- dbusmenu_menuitem_child_append(root, suspend_mi);
4448- g_signal_connect(G_OBJECT(suspend_mi), DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, G_CALLBACK(sleep), "Suspend");
4449-
4450- hibernate_mi = dbusmenu_menuitem_new();
4451- dbusmenu_menuitem_property_set(hibernate_mi, DBUSMENU_MENUITEM_PROP_VISIBLE, "false");
4452- dbusmenu_menuitem_property_set(hibernate_mi, DBUSMENU_MENUITEM_PROP_LABEL, _("Hibernate"));
4453- dbusmenu_menuitem_child_append(root, hibernate_mi);
4454- g_signal_connect(G_OBJECT(hibernate_mi), DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, G_CALLBACK(sleep), "Hibernate");
4455-
4456- restart_mi = dbusmenu_menuitem_new();
4457- if (supress_confirmations()) {
4458- dbusmenu_menuitem_property_set(restart_mi, DBUSMENU_MENUITEM_PROP_LABEL, _("Restart"));
4459- } else {
4460- dbusmenu_menuitem_property_set(restart_mi, DBUSMENU_MENUITEM_PROP_LABEL, _("Restart..."));
4461- }
4462- dbusmenu_menuitem_child_append(root, restart_mi);
4463- g_signal_connect(G_OBJECT(restart_mi), DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, G_CALLBACK(show_dialog), "restart");
4464-
4465- shutdown_mi = dbusmenu_menuitem_new();
4466- if (supress_confirmations()) {
4467- dbusmenu_menuitem_property_set(shutdown_mi, DBUSMENU_MENUITEM_PROP_LABEL, _("Shut Down"));
4468- } else {
4469- dbusmenu_menuitem_property_set(shutdown_mi, DBUSMENU_MENUITEM_PROP_LABEL, _("Shut Down..."));
4470- }
4471- dbusmenu_menuitem_child_append(root, shutdown_mi);
4472- g_signal_connect(G_OBJECT(shutdown_mi), DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, G_CALLBACK(show_dialog), "shutdown");
4473-
4474- RestartShutdownLogoutMenuItems * restart_shutdown_logout_mi = g_new0 (RestartShutdownLogoutMenuItems, 1);
4475- restart_shutdown_logout_mi->logout_mi = logout_mi;
4476- restart_shutdown_logout_mi->restart_mi = restart_mi;
4477- restart_shutdown_logout_mi->shutdown_mi = shutdown_mi;
4478-
4479- update_menu_entries(restart_shutdown_logout_mi);
4480-
4481- return;
4482-}
4483-
4484-/* Main, is well, main. It brings everything up and throws
4485- us into the mainloop of no return. */
4486-int
4487-main (int argc, char ** argv)
4488-{
4489- g_type_init();
4490-
4491- /* Setting up i18n and gettext. Apparently, we need
4492- all of these. */
4493- setlocale (LC_ALL, "");
4494- bindtextdomain (GETTEXT_PACKAGE, GNOMELOCALEDIR);
4495- textdomain (GETTEXT_PACKAGE);
4496-
4497- DBusGConnection * connection = dbus_g_bus_get(DBUS_BUS_SESSION, NULL);
4498- DBusGProxy * bus_proxy = dbus_g_proxy_new_for_name(connection, DBUS_SERVICE_DBUS, DBUS_PATH_DBUS, DBUS_INTERFACE_DBUS);
4499- GError * error = NULL;
4500- guint nameret = 0;
4501-
4502- if (!org_freedesktop_DBus_request_name(bus_proxy, INDICATOR_SESSION_DBUS_NAME, 0, &nameret, &error)) {
4503- g_error("Unable to call to request name");
4504- return 1;
4505- }
4506-
4507- if (nameret != DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER) {
4508- g_error("Unable to get name");
4509- return 1;
4510- }
4511-
4512- g_idle_add(lock_screen_setup, NULL);
4513-
4514- root_menuitem = dbusmenu_menuitem_new();
4515- g_debug("Root ID: %d", dbusmenu_menuitem_get_id(root_menuitem));
4516-
4517- create_items(root_menuitem);
4518- setup_dkp();
4519-
4520- DbusmenuServer * server = dbusmenu_server_new(INDICATOR_SESSION_DBUS_OBJECT);
4521- dbusmenu_server_set_root(server, root_menuitem);
4522-
4523- mainloop = g_main_loop_new(NULL, FALSE);
4524- g_main_loop_run(mainloop);
4525-
4526- return 0;
4527-}
4528-
4529
4530=== modified file 'src/status-provider-mc5.c'
4531--- src/status-provider-mc5.c 2009-10-08 20:12:42 +0000
4532+++ src/status-provider-mc5.c 2010-01-04 21:25:21 +0000
4533@@ -24,7 +24,7 @@
4534 #include "config.h"
4535 #endif
4536
4537-#include "libempathy/empathy-account-manager.h"
4538+#include <telepathy-glib/account-manager.h>
4539
4540 #include "status-provider.h"
4541 #include "status-provider-mc5.h"
4542@@ -65,7 +65,7 @@
4543
4544 typedef struct _StatusProviderMC5Private StatusProviderMC5Private;
4545 struct _StatusProviderMC5Private {
4546- EmpathyAccountManager * manager;
4547+ TpAccountManager * manager;
4548 StatusProviderStatus status;
4549 DBusGProxy * dbus_proxy;
4550 };
4551@@ -83,7 +83,7 @@
4552 /* Internal Funcs */
4553 static void set_status (StatusProvider * sp, StatusProviderStatus status);
4554 static StatusProviderStatus get_status (StatusProvider * sp);
4555-static void presence_changed (EmpathyAccountManager * eam, guint type, const gchar * type_str, const gchar * message, StatusProviderMC5 * sp);
4556+static void presence_changed (TpAccountManager * eam, guint type, const gchar * type_str, const gchar * message, StatusProviderMC5 * sp);
4557 static void dbus_namechange (DBusGProxy * proxy, const gchar * name, const gchar * prev, const gchar * new, StatusProviderMC5 * self);
4558 static void mc5_exists_cb (DBusGProxy * proxy, gboolean exists, GError * error, gpointer userdata);
4559
4560@@ -109,25 +109,41 @@
4561 return;
4562 }
4563
4564-/* Build our empathy account manager instance if we don't
4565+/* Build our telepathy account manager instance if we don't
4566 have one. */
4567 static void
4568 build_eam (StatusProviderMC5 * self)
4569 {
4570 StatusProviderMC5Private * priv = STATUS_PROVIDER_MC5_GET_PRIVATE(self);
4571+ static TpDBusDaemon *daemon = NULL;
4572+ GError *error = NULL;
4573
4574 if (priv->manager != NULL) {
4575 return;
4576 }
4577-
4578- priv->manager = EMPATHY_ACCOUNT_MANAGER(g_object_new(EMPATHY_TYPE_ACCOUNT_MANAGER, NULL));
4579- g_signal_connect(G_OBJECT(priv->manager), "global-presence-changed", G_CALLBACK(presence_changed), self);
4580+ /* the daemon is used to communicate via DBus */
4581+ daemon = tp_dbus_daemon_dup(&error);
4582+
4583+ if (daemon == NULL)
4584+ {
4585+ g_debug("Cannot create DBus daemon: %s\n", error->message);
4586+ g_error_free(error);
4587+ return;
4588+ }
4589+
4590+ priv->manager = TP_ACCOUNT_MANAGER (g_object_new (TP_TYPE_ACCOUNT_MANAGER,
4591+ "dbus-daemon", daemon,
4592+ "dbus-connection", ((TpProxy *) daemon)->dbus_connection,
4593+ "bus-name", "org.freedesktop.Telepathy.MissionControl5",
4594+ "object-path", "/org/freedesktop/Telepathy/AccountManager",
4595+ NULL));
4596+ g_signal_connect(G_OBJECT(priv->manager), "most-available-presence-changed", G_CALLBACK(presence_changed), self);
4597
4598 return;
4599 }
4600
4601 /* Creating an instance of the status provider. We set the variables
4602- and create an EmpathyAccountManager object. It does all the hard
4603+ and create an TpAccountManager object. It does all the hard
4604 work in this module of tracking MissionControl and enumerating the
4605 accounts and all that jazz. */
4606 static void
4607@@ -266,8 +282,7 @@
4608 StatusProviderMC5Private * priv = STATUS_PROVIDER_MC5_GET_PRIVATE(sp);
4609
4610 build_eam(STATUS_PROVIDER_MC5(sp));
4611-
4612- empathy_account_manager_request_global_presence(priv->manager, sp_to_tp_map[status], sp_to_mc_map[status], "");
4613+ tp_account_manager_set_all_requested_presences(priv->manager, sp_to_tp_map[status], sp_to_mc_map[status], "");
4614
4615 return;
4616 }
4617@@ -287,11 +302,11 @@
4618 return priv->status;
4619 }
4620
4621-/* A signal handler for when the EmpatyAccountManager believes
4622+/* A signal handler for when the TpAccountManager believes
4623 that the global status has changed. It roughly calculates this
4624 by finding the most available of all accounts that are active. */
4625 static void
4626-presence_changed (EmpathyAccountManager * eam, guint type, const gchar * type_str, const gchar * message, StatusProviderMC5 * sp)
4627+presence_changed (TpAccountManager * eam, guint type, const gchar * type_str, const gchar * message, StatusProviderMC5 * sp)
4628 {
4629 StatusProviderMC5Private * priv = STATUS_PROVIDER_MC5_GET_PRIVATE(sp);
4630
4631
4632=== removed file 'src/users-service-dbus.c'
4633--- src/users-service-dbus.c 2009-09-24 22:02:11 +0000
4634+++ src/users-service-dbus.c 1970-01-01 00:00:00 +0000
4635@@ -1,1147 +0,0 @@
4636-/*
4637- * Copyright 2009 Canonical Ltd.
4638- *
4639- * Authors:
4640- * Cody Russell <crussell@canonical.com>
4641- *
4642- * This program is free software: you can redistribute it and/or modify it
4643- * under the terms of the GNU General Public License version 3, as published
4644- * by the Free Software Foundation.
4645- *
4646- * This program is distributed in the hope that it will be useful, but
4647- * WITHOUT ANY WARRANTY; without even the implied warranties of
4648- * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
4649- * PURPOSE. See the GNU General Public License for more details.
4650- *
4651- * You should have received a copy of the GNU General Public License along
4652- * with this program. If not, see <http://www.gnu.org/licenses/>.
4653- */
4654-
4655-#ifdef HAVE_CONFIG_H
4656-#include "config.h"
4657-#endif
4658-
4659-#include <string.h>
4660-#include <errno.h>
4661-#include <pwd.h>
4662-
4663-#include <dbus/dbus-glib.h>
4664-#include <dbus/dbus-glib.h>
4665-#include <dbus/dbus-glib-lowlevel.h>
4666-
4667-#include "dbus-shared-names.h"
4668-#include "users-service-dbus.h"
4669-#include "users-service-client.h"
4670-#include "users-service-marshal.h"
4671-
4672-static void users_service_dbus_class_init (UsersServiceDbusClass *klass);
4673-static void users_service_dbus_init (UsersServiceDbus *self);
4674-static void users_service_dbus_dispose (GObject *object);
4675-static void users_service_dbus_finalize (GObject *object);
4676-static void create_gdm_proxy (UsersServiceDbus *self);
4677-static void create_seat_proxy (UsersServiceDbus *self);
4678-static void create_ck_proxy (UsersServiceDbus *self);
4679-static void create_cksession_proxy (UsersServiceDbus *self);
4680-static gchar *get_seat (UsersServiceDbus *service);
4681-static void users_loaded (DBusGProxy *proxy,
4682- gpointer user_data);
4683-static void user_added (DBusGProxy *proxy,
4684- gint64 uid,
4685- gpointer user_data);
4686-static void user_removed (DBusGProxy *proxy,
4687- gint64 uid,
4688- gpointer user_data);
4689-static void user_updated (DBusGProxy *proxy,
4690- guint uid,
4691- gpointer user_data);
4692-static void seat_proxy_session_added (DBusGProxy *seat_proxy,
4693- const gchar *session_id,
4694- UsersServiceDbus *service);
4695-static void seat_proxy_session_removed (DBusGProxy *seat_proxy,
4696- const gchar *session_id,
4697- UsersServiceDbus *service);
4698-static gboolean do_add_session (UsersServiceDbus *service,
4699- UserData *user,
4700- const gchar *ssid);
4701-static gchar * get_seat_internal (UsersServiceDbus *self);
4702-
4703-/* Private */
4704-typedef struct _UsersServiceDbusPrivate UsersServiceDbusPrivate;
4705-
4706-struct _UsersServiceDbusPrivate
4707-{
4708- GHashTable *users;
4709- gint count;
4710- gchar *seat;
4711- gchar *ssid;
4712-
4713- DBusGConnection *system_bus;
4714-
4715- DBusGProxy *gdm_proxy;
4716- DBusGProxy *ck_proxy;
4717- DBusGProxy *seat_proxy;
4718- DBusGProxy *session_proxy;
4719-
4720- GHashTable *exclusions;
4721- GHashTable *sessions;
4722-};
4723-
4724-#define USERS_SERVICE_DBUS_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), USERS_SERVICE_DBUS_TYPE, UsersServiceDbusPrivate))
4725-
4726-/* Signals */
4727-enum {
4728- USERS_LOADED,
4729- USER_ADDED,
4730- USER_REMOVED,
4731- USER_UPDATED,
4732- LAST_SIGNAL
4733-};
4734-
4735-static guint signals[LAST_SIGNAL] = { 0 };
4736-
4737-/* GObject Boilerplate */
4738-G_DEFINE_TYPE (UsersServiceDbus, users_service_dbus, G_TYPE_OBJECT);
4739-
4740-static void
4741-users_service_dbus_class_init (UsersServiceDbusClass *klass)
4742-{
4743- GObjectClass *object_class = G_OBJECT_CLASS (klass);
4744-
4745- g_type_class_add_private (object_class, sizeof (UsersServiceDbusPrivate));
4746-
4747- object_class->dispose = users_service_dbus_dispose;
4748- object_class->finalize = users_service_dbus_finalize;
4749-
4750- signals[USERS_LOADED] = g_signal_new ("users-loaded",
4751- G_TYPE_FROM_CLASS (klass),
4752- G_SIGNAL_RUN_LAST,
4753- G_STRUCT_OFFSET (UsersServiceDbusClass, users_loaded),
4754- NULL, NULL,
4755- g_cclosure_marshal_VOID__VOID,
4756- G_TYPE_NONE, 0);
4757-
4758- signals[USER_ADDED] = g_signal_new ("user-added",
4759- G_TYPE_FROM_CLASS (klass),
4760- G_SIGNAL_RUN_LAST,
4761- G_STRUCT_OFFSET (UsersServiceDbusClass, user_added),
4762- NULL, NULL,
4763- _users_service_marshal_VOID__INT64,
4764- G_TYPE_NONE, 1, G_TYPE_INT64);
4765-
4766- signals[USER_REMOVED] = g_signal_new ("user-removed",
4767- G_TYPE_FROM_CLASS (klass),
4768- G_SIGNAL_RUN_LAST,
4769- G_STRUCT_OFFSET (UsersServiceDbusClass, user_removed),
4770- NULL, NULL,
4771- _users_service_marshal_VOID__INT64,
4772- G_TYPE_NONE, 1, G_TYPE_INT64);
4773-
4774- signals[USER_UPDATED] = g_signal_new ("user-updated",
4775- G_TYPE_FROM_CLASS (klass),
4776- G_SIGNAL_RUN_LAST,
4777- G_STRUCT_OFFSET (UsersServiceDbusClass, user_updated),
4778- NULL, NULL,
4779- _users_service_marshal_VOID__INT64,
4780- G_TYPE_NONE, 1, G_TYPE_INT64);
4781-}
4782-
4783-static void
4784-users_service_dbus_init (UsersServiceDbus *self)
4785-{
4786- GError *error = NULL;
4787- UsersServiceDbusPrivate *priv = USERS_SERVICE_DBUS_GET_PRIVATE (self);
4788-
4789- priv->users = NULL;
4790- priv->count = 0;
4791-
4792- /* Get the system bus */
4793- priv->system_bus = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error);
4794- if (error != NULL)
4795- {
4796- g_error ("Unable to get system bus: %s", error->message);
4797- g_error_free(error);
4798-
4799- return;
4800- }
4801-
4802- priv->sessions = g_hash_table_new_full (g_str_hash,
4803- g_str_equal,
4804- g_free,
4805- g_free);
4806-
4807- priv->users = g_hash_table_new_full (g_str_hash,
4808- g_str_equal,
4809- g_free,
4810- NULL);
4811-
4812- dbus_g_object_register_marshaller (_users_service_marshal_VOID__INT64,
4813- G_TYPE_NONE,
4814- G_TYPE_INT64,
4815- G_TYPE_INVALID);
4816-
4817- create_gdm_proxy (self);
4818- create_ck_proxy (self);
4819- create_seat_proxy (self);
4820-
4821- users_loaded (priv->gdm_proxy, self);
4822-}
4823-
4824-static void
4825-users_service_dbus_dispose (GObject *object)
4826-{
4827- G_OBJECT_CLASS (users_service_dbus_parent_class)->dispose (object);
4828-}
4829-
4830-static void
4831-users_service_dbus_finalize (GObject *object)
4832-{
4833- G_OBJECT_CLASS (users_service_dbus_parent_class)->finalize (object);
4834-}
4835-
4836-static void
4837-create_gdm_proxy (UsersServiceDbus *self)
4838-{
4839- UsersServiceDbusPrivate *priv = USERS_SERVICE_DBUS_GET_PRIVATE (self);
4840- GError *error = NULL;
4841-
4842- priv->gdm_proxy = dbus_g_proxy_new_for_name_owner (priv->system_bus,
4843- "org.gnome.DisplayManager",
4844- "/org/gnome/DisplayManager/UserManager",
4845- "org.gnome.DisplayManager.UserManager",
4846- &error);
4847-
4848- if (!priv->gdm_proxy)
4849- {
4850- if (error != NULL)
4851- {
4852- g_error ("Unable to get DisplayManager proxy on system bus: %s", error->message);
4853- g_error_free (error);
4854- }
4855-
4856- return;
4857- }
4858-
4859- dbus_g_proxy_add_signal (priv->gdm_proxy,
4860- "UsersLoaded",
4861- G_TYPE_INVALID);
4862-
4863- dbus_g_proxy_add_signal (priv->gdm_proxy,
4864- "UserAdded",
4865- G_TYPE_INT64,
4866- G_TYPE_INVALID);
4867-
4868- dbus_g_proxy_add_signal (priv->gdm_proxy,
4869- "UserRemoved",
4870- G_TYPE_INT64,
4871- G_TYPE_INVALID);
4872-
4873- dbus_g_proxy_add_signal (priv->gdm_proxy,
4874- "UserUpdated",
4875- G_TYPE_INT64,
4876- G_TYPE_INVALID);
4877-
4878- dbus_g_proxy_connect_signal (priv->gdm_proxy,
4879- "UsersLoaded",
4880- G_CALLBACK (users_loaded),
4881- self,
4882- NULL);
4883-
4884- dbus_g_proxy_connect_signal (priv->gdm_proxy,
4885- "UserAdded",
4886- G_CALLBACK (user_added),
4887- self,
4888- NULL);
4889-
4890- dbus_g_proxy_connect_signal (priv->gdm_proxy,
4891- "UserRemoved",
4892- G_CALLBACK (user_removed),
4893- self,
4894- NULL);
4895-
4896- dbus_g_proxy_connect_signal (priv->gdm_proxy,
4897- "UserUpdated",
4898- G_CALLBACK (user_updated),
4899- self,
4900- NULL);
4901-}
4902-
4903-static void
4904-create_ck_proxy (UsersServiceDbus *self)
4905-{
4906- UsersServiceDbusPrivate *priv = USERS_SERVICE_DBUS_GET_PRIVATE (self);
4907-
4908- priv->ck_proxy = dbus_g_proxy_new_for_name (priv->system_bus,
4909- "org.freedesktop.ConsoleKit",
4910- "/org/freedesktop/ConsoleKit/Manager",
4911- "org.freedesktop.ConsoleKit.Manager");
4912-
4913- if (!priv->ck_proxy)
4914- {
4915- g_warning ("Failed to get ConsoleKit proxy.");
4916- return;
4917- }
4918-}
4919-
4920-static void
4921-create_seat_proxy (UsersServiceDbus *self)
4922-{
4923- UsersServiceDbusPrivate *priv = USERS_SERVICE_DBUS_GET_PRIVATE (self);
4924- GError *error = NULL;
4925-
4926- priv->seat = get_seat (self);
4927- if (priv->seat == NULL)
4928- {
4929- return;
4930- }
4931-
4932- priv->seat_proxy = dbus_g_proxy_new_for_name_owner (priv->system_bus,
4933- "org.freedesktop.ConsoleKit",
4934- priv->seat,
4935- "org.freedesktop.ConsoleKit.Seat",
4936- &error);
4937-
4938- if (!priv->seat_proxy)
4939- {
4940- if (error != NULL)
4941- {
4942- g_warning ("Failed to connect to the ConsoleKit seat: %s", error->message);
4943- g_error_free (error);
4944- }
4945-
4946- return;
4947- }
4948-
4949- dbus_g_proxy_add_signal (priv->seat_proxy,
4950- "SessionAdded",
4951- DBUS_TYPE_G_OBJECT_PATH,
4952- G_TYPE_INVALID);
4953- dbus_g_proxy_add_signal (priv->seat_proxy,
4954- "SessionRemoved",
4955- DBUS_TYPE_G_OBJECT_PATH,
4956- G_TYPE_INVALID);
4957-
4958- dbus_g_proxy_connect_signal (priv->seat_proxy,
4959- "SessionAdded",
4960- G_CALLBACK (seat_proxy_session_added),
4961- self,
4962- NULL);
4963- dbus_g_proxy_connect_signal (priv->seat_proxy,
4964- "SessionRemoved",
4965- G_CALLBACK (seat_proxy_session_removed),
4966- self,
4967- NULL);
4968-}
4969-
4970-static void
4971-create_cksession_proxy (UsersServiceDbus *service)
4972-{
4973- UsersServiceDbusPrivate *priv = USERS_SERVICE_DBUS_GET_PRIVATE (service);
4974-
4975- priv->session_proxy = dbus_g_proxy_new_for_name (priv->system_bus,
4976- "org.freedesktop.ConsoleKit",
4977- priv->ssid,
4978- "org.freedesktop.ConsoleKit.Session");
4979-
4980- if (!priv->session_proxy)
4981- {
4982- g_warning ("Failed to get ConsoleKit session proxy");
4983- return;
4984- }
4985-}
4986-
4987-static gchar *
4988-get_seat (UsersServiceDbus *service)
4989-{
4990- UsersServiceDbusPrivate *priv = USERS_SERVICE_DBUS_GET_PRIVATE (service);
4991- GError *error = NULL;
4992- gchar *ssid = NULL;
4993- gchar *seat;
4994-
4995- if (!dbus_g_proxy_call (priv->ck_proxy,
4996- "GetCurrentSession",
4997- &error,
4998- G_TYPE_INVALID,
4999- DBUS_TYPE_G_OBJECT_PATH,
5000- &ssid,
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches