Merge lp:~rodrigo-moya/ubuntu/natty/gnome-applets/no-more-deprecated into lp:~ubuntu-desktop/gnome-applets/ubuntu

Proposed by Rodrigo Moya
Status: Merged
Merged at revision: 57
Proposed branch: lp:~rodrigo-moya/ubuntu/natty/gnome-applets/no-more-deprecated
Merge into: lp:~ubuntu-desktop/gnome-applets/ubuntu
Diff against target: 1259 lines (+953/-140)
8 files modified
debian/changelog (+15/-0)
debian/control (+6/-10)
debian/control.in (+6/-10)
debian/patches/01_no_more_deprecated.patch (+915/-0)
debian/patches/81_silent_applet_cleaning (+5/-8)
debian/patches/86_deprecate_battstatus.patch (+2/-63)
debian/patches/87_deprecate_modemlights.patch (+2/-48)
debian/patches/series (+2/-1)
To merge this branch: bzr merge lp:~rodrigo-moya/ubuntu/natty/gnome-applets/no-more-deprecated
Reviewer Review Type Date Requested Status
Sebastien Bacher Needs Fixing
Review via email: mp+41494@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Sebastien Bacher (seb128) wrote :

Setting to Needs Fixing for now, as discussed on IRC the invest applet needs fixing before landing the update

review: Needs Fixing
59. By Rodrigo Moya

Some more invest applet fixes

60. By Rodrigo Moya

Add bug numbers

61. By Rodrigo Moya

New upstream release

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'debian/changelog'
2--- debian/changelog 2010-11-25 23:24:33 +0000
3+++ debian/changelog 2010-11-29 16:14:03 +0000
4@@ -1,3 +1,18 @@
5+gnome-applets (2.32.1.1-0ubuntu2) UNRELEASED; urgency=low
6+
7+ * debian/control*:
8+ - Don't build-depend on deprecated python-gnome bindings
9+ - Depend on introspection packages
10+ * debian/patches/01_no_more_deprecated.patch:
11+ - Add patch to migrate null_applet to libpanel-applet-3 (LP: #673109)
12+ and invest applet to use GObject introspection (LP: #673110)
13+ * debian/patches/81_silent_applet_cleaning:
14+ * debian/patches/86_deprecate_battstatus.patch:
15+ * debian/patches/87_deprecate_modemlights.patch:
16+ - Rebased patches
17+
18+ -- Rodrigo Moya <rodrigo.moya@canonical.com> Fri, 26 Nov 2010 19:10:27 +0100
19+
20 gnome-applets (2.32.1.1-0ubuntu1) natty; urgency=low
21
22 * New upstream release
23
24=== modified file 'debian/control'
25--- debian/control 2010-11-09 22:44:31 +0000
26+++ debian/control 2010-11-29 16:14:03 +0000
27@@ -18,7 +18,6 @@
28 libglib2.0-dev (>= 2.22.0),
29 libgconf2-dev (>= 2.8.0),
30 scrollkeeper (>= 0.1.4) | rarian-compat,
31- libpanel-applet2-dev (>= 2.13.4),
32 libpanel-applet-3-dev,
33 libgtop2-dev (>= 2.11.92),
34 libwnck-dev (>= 2.9.3),
35@@ -26,9 +25,7 @@
36 libnotify-dev (>= 0.3.2),
37 libdbus-1-dev (>= 1.1.2),
38 libdbus-glib-1-dev (>= 0.74),
39- python-gtk2-dev (>= 2.6),
40 python-gobject-dev (>= 2.6),
41- python-gnome2-dev (>= 2.10),
42 gnome-icon-theme (>= 2.15.91),
43 libxml2-dev (>= 2.5.0),
44 libgweather-dev (>= 2.22.1),
45@@ -47,8 +44,7 @@
46 network-manager-dev (>= 0.7),
47 x11proto-kb-dev,
48 gnome-pkg-tools (>= 0.10),
49- python-support (>= 0.4),
50- python-gnome2-desktop-dev
51+ python-support (>= 0.4)
52 Vcs-Bzr: https://code.launchpad.net/~ubuntu-desktop/gnome-applets/ubuntu
53
54 Package: gnome-applets-data
55@@ -71,17 +67,17 @@
56 gnome-panel (>= 2.32),
57 gnome-icon-theme (>= 2.15.91),
58 ${python:Depends},
59- gvfs
60+ gvfs,
61+ gir1.0-gtk-2.0,
62+ gir1.0-gdkpixbuf-2.0,
63+ gir1.0-gconf-2.0,
64+ gir1.0-panelapplet-3.0
65 Conflicts: trashapplet
66 Replaces: trashapplet
67 Provides: trashapplet
68 Recommends: gnome-system-monitor,
69 gnome-media,
70- python-gconf,
71- python-gnome2,
72- python-gnomeapplet,
73 python-gobject,
74- python-gtk2,
75 policykit-1-gnome
76 Suggests: tomboy,
77 gnome-netstatus-applet,
78
79=== modified file 'debian/control.in'
80--- debian/control.in 2010-11-09 22:44:31 +0000
81+++ debian/control.in 2010-11-29 16:14:03 +0000
82@@ -13,7 +13,6 @@
83 libglib2.0-dev (>= 2.22.0),
84 libgconf2-dev (>= 2.8.0),
85 scrollkeeper (>= 0.1.4) | rarian-compat,
86- libpanel-applet2-dev (>= 2.13.4),
87 libpanel-applet-3-dev,
88 libgtop2-dev (>= 2.11.92),
89 libwnck-dev (>= 2.9.3),
90@@ -21,9 +20,7 @@
91 libnotify-dev (>= 0.3.2),
92 libdbus-1-dev (>= 1.1.2),
93 libdbus-glib-1-dev (>= 0.74),
94- python-gtk2-dev (>= 2.6),
95 python-gobject-dev (>= 2.6),
96- python-gnome2-dev (>= 2.10),
97 gnome-icon-theme (>= 2.15.91),
98 libxml2-dev (>= 2.5.0),
99 libgweather-dev (>= 2.22.1),
100@@ -42,8 +39,7 @@
101 network-manager-dev (>= 0.7),
102 x11proto-kb-dev,
103 gnome-pkg-tools (>= 0.10),
104- python-support (>= 0.4),
105- python-gnome2-desktop-dev
106+ python-support (>= 0.4)
107 Vcs-Bzr: https://code.launchpad.net/~ubuntu-desktop/gnome-applets/ubuntu
108
109 Package: gnome-applets-data
110@@ -66,17 +62,17 @@
111 gnome-panel (>= 2.32),
112 gnome-icon-theme (>= 2.15.91),
113 ${python:Depends},
114- gvfs
115+ gvfs,
116+ gir1.0-gtk-2.0,
117+ gir1.0-gdkpixbuf-2.0,
118+ gir1.0-gconf-2.0,
119+ gir1.0-panelapplet-3.0
120 Conflicts: trashapplet
121 Replaces: trashapplet
122 Provides: trashapplet
123 Recommends: gnome-system-monitor,
124 gnome-media,
125- python-gconf,
126- python-gnome2,
127- python-gnomeapplet,
128 python-gobject,
129- python-gtk2,
130 policykit-1-gnome
131 Suggests: tomboy,
132 gnome-netstatus-applet,
133
134=== added file 'debian/patches/01_no_more_deprecated.patch'
135--- debian/patches/01_no_more_deprecated.patch 1970-01-01 00:00:00 +0000
136+++ debian/patches/01_no_more_deprecated.patch 2010-11-29 16:14:03 +0000
137@@ -0,0 +1,915 @@
138+diff --git a/configure.in b/configure.in
139+index 1779cd0..eca3982 100644
140+--- a/configure.in
141++++ b/configure.in
142+@@ -16,7 +16,6 @@ GLIB_REQUIRED=2.22.0
143+ GIO_REQUIRED=2.15.3
144+ GCONF_REQUIRED=2.8.0
145+ SCROLLKEEPER_REQUIRED=0.1.4
146+-LIBPANEL_REQUIRED=2.13.4
147+ LIBPANEL3_REQUIRED=2.31.2
148+ LIBGTOP_REQUIRED=2.11.92
149+ LIBXKLAVIER_REQUIRED=4.0
150+@@ -26,9 +25,7 @@ LIBNOTIFY_REQUIRED=0.3.2
151+ HAL_REQUIRED=0.5.3
152+ DBUS_REQUIRED=1.1.2
153+ DBUS_GLIB_REQUIRED=0.74
154+-PYGTK_REQUIRED=2.6
155+-PYGOBJECT_REQUIRED=2.6
156+-GNOME_PYTHON_REQUIRED=2.10
157++PYGOBJECT_REQUIRED=2.26
158+ GNOME_ICON_THEME_REQUIRED=2.15.91
159+ LIBXML_REQUIRED=2.5.0
160+ GWEATHER_REQUIRED=2.22.1
161+@@ -116,11 +113,6 @@ PKG_CHECK_MODULES(GTK, gtk+-2.0 >= $GTK_REQUIRED)
162+ AC_SUBST(GTK_FLAGS)
163+ AC_SUBST(GTK_LIBS)
164+
165+-dnl -- check for libpanelapplet (required) ------------------------------------
166+-PKG_CHECK_MODULES(GNOME_APPLETS, libpanelapplet-2.0 >= $LIBPANEL_REQUIRED)
167+-AC_SUBST(GNOME_APPLETS_CFLAGS)
168+-AC_SUBST(GNOME_APPLETS_LIBS)
169+-
170+ dnl -- check for libpanelapplet3 (required) ------------------------------------
171+ PKG_CHECK_MODULES(GNOME_APPLETS3, libpanelapplet-3.0 >= $LIBPANEL3_REQUIRED)
172+ AC_SUBST(GNOME_APPLETS3_CFLAGS)
173+@@ -254,9 +246,7 @@ dnl -- check for Python/GNOME modules (optional) ------------------------------
174+ PYGTK_CFLAGS=
175+ PYGTK_LIBS=
176+ PKG_CHECK_MODULES(PYGTK,
177+- pygtk-2.0 >= $PYGTK_REQUIRED
178+- pygobject-2.0 >= $PYGOBJECT_REQUIRED
179+- gnome-python-2.0 >= $GNOME_PYTHON_REQUIRED,
180++ pygobject-2.0 >= $PYGOBJECT_REQUIRED,
181+ HAVE_PYGTK="yes", HAVE_PYGTK="no")
182+ AC_SUBST(PYGTK_LIBS)
183+ AC_SUBST(PYGTK_CFLAGS)
184+@@ -559,14 +549,7 @@ dnl ***************************************************************************
185+ dnl *** invest-applet specific checks ***
186+ dnl ***************************************************************************
187+
188+-if test "x$HAVE_PYGTK" = "xyes" -a "x$HAVE_PYHDRS" = "xyes"; then
189+- AM_CHECK_PYMOD(gnomeapplet,,
190+- BUILD_INVEST_APPLET="yes", BUILD_INVEST_APPLET="no")
191+-else
192+- BUILD_INVEST_APPLET="no"
193+-fi
194+-
195+-AM_CONDITIONAL(BUILD_INVEST_APPLET, test "x$BUILD_INVEST_APPLET" = "xyes")
196++AM_CONDITIONAL(BUILD_INVEST_APPLET, test "x$HAVE_PYGTK" = "xyes")
197+
198+ dnl ***************************************************************************
199+ dnl *** Check if IPv6 is available ***
200+diff --git a/invest-applet/invest/__init__.py b/invest-applet/invest/__init__.py
201+index 29fb7d6..ec53bcb 100644
202+--- a/invest-applet/invest/__init__.py
203++++ b/invest-applet/invest/__init__.py
204+@@ -3,7 +3,7 @@ from os.path import join, exists, isdir, isfile, dirname, abspath, expanduser
205+ from types import ListType
206+ import datetime
207+
208+-import gtk, gtk.gdk, gconf, gobject
209++from gi.repository import Gtk, Gdk, GConf, GObject
210+ import cPickle
211+
212+ import networkmanager
213+@@ -55,7 +55,7 @@ if not exists(USER_INVEST_DIR):
214+ os.chdir(expanduser("~"))
215+
216+ #Gconf client
217+-GCONF_CLIENT = gconf.client_get_default()
218++GCONF_CLIENT = GConf.Client.get_default()
219+
220+ # GConf directory for invest in window mode and shared settings
221+ GCONF_DIR = "/apps/invest"
222+@@ -205,7 +205,7 @@ def get_gnome_proxy_retry(client, attempts, sleep):
223+ gobject.timeout_add(sleep * 1000, get_gnome_proxy_retry, client, attempts, sleep)
224+
225+ # use gconf to get proxy config
226+-client = gconf.client_get_default()
227++client = GConf.Client.get_default()
228+ get_gnome_proxy(client)
229+
230+
231+diff --git a/invest-applet/invest/about.py b/invest-applet/invest/about.py
232+index e2829e8..f228ae1 100644
233+--- a/invest-applet/invest/about.py
234++++ b/invest-applet/invest/about.py
235+@@ -3,16 +3,16 @@ from os.path import join
236+ from gettext import gettext as _
237+ from invest.defs import VERSION
238+ import invest
239+-import gtk, gtk.gdk
240++from gi.repository import Gtk, GdkPixbuf
241+
242+ invest_logo = None
243+ try:
244+- invest_logo = gtk.gdk.pixbuf_new_from_file_at_size(join(invest.ART_DATA_DIR, "invest_neutral.svg"), 96, 96)
245++ invest_logo = GdkPixbuf_new_from_file_at_size(join(invest.ART_DATA_DIR, "invest_neutral.svg"), 96, 96)
246+ except Exception, msg:
247+ pass
248+
249+ def show_about():
250+- about = gtk.AboutDialog()
251++ about = Gtk.AboutDialog()
252+ infos = {
253+ "program-name" : _("Invest"),
254+ "logo" : invest_logo,
255+diff --git a/invest-applet/invest/applet.py b/invest-applet/invest/applet.py
256+index 4cd5ad7..a0236f2 100644
257+--- a/invest-applet/invest/applet.py
258++++ b/invest-applet/invest/applet.py
259+@@ -1,17 +1,16 @@
260+ import os, time
261+ from os.path import *
262+-import gnomeapplet, gtk, gtk.gdk, gconf, gobject
263+-gobject.threads_init()
264++from gi.repository import Gdk, GdkPixbuf, Gtk, PanelApplet, GObject, GConf
265++GObject.threads_init()
266+ from gettext import gettext as _
267+-import gconf
268+
269+ import invest, invest.about, invest.chart, invest.preferences, invest.defs
270+ from invest.quotes import QuoteUpdater
271+ from invest.widgets import *
272+
273+-gtk.window_set_default_icon_from_file(join(invest.ART_DATA_DIR, "invest_neutral.svg"))
274++Gtk.Window.set_default_icon_from_file(join(invest.ART_DATA_DIR, "invest_neutral.svg"))
275+
276+-class InvestApplet:
277++class InvestApplet(PanelApplet.Applet):
278+ def __init__(self, applet):
279+ self.applet = applet
280+ self.applet.setup_menu_from_file (
281+@@ -22,8 +21,8 @@ class InvestApplet:
282+ ("Refresh", self.on_refresh)
283+ ])
284+
285+- evbox = gtk.HBox()
286+- self.applet_icon = gtk.Image()
287++ evbox = Gtk.HBox()
288++ self.applet_icon = Gtk.Image()
289+ self.set_applet_icon(0)
290+ self.applet_icon.show()
291+ evbox.add(self.applet_icon)
292+@@ -43,7 +42,7 @@ class InvestApplet:
293+ self.new_ilw()
294+
295+ def button_clicked(self, widget,event):
296+- if event.type == gtk.gdk.BUTTON_PRESS and event.button == 1:
297++ if event.type == Gdk.BUTTON_PRESS and event.button == 1:
298+ # Three cases...
299+ if len (invest.STOCKS) == 0:
300+ # a) We aren't configured yet
301+@@ -51,7 +50,7 @@ class InvestApplet:
302+ self.reload_ilw()
303+ elif not self.quotes_updater.quotes_valid:
304+ # b) We can't get the data (e.g. offline)
305+- alert = gtk.MessageDialog(buttons=gtk.BUTTONS_CLOSE)
306++ alert = Gtk.MessageDialog(buttons=gtk.BUTTONS_CLOSE)
307+ alert.set_markup(_("<b>No stock quotes are currently available</b>"))
308+ alert.format_secondary_text(_("The server could not be contacted. The computer is either offline or the servers are down. Try again later."))
309+ alert.run()
310+@@ -75,19 +74,19 @@ class InvestApplet:
311+
312+ def set_applet_icon(self, change):
313+ if change == 1:
314+- pixbuf = gtk.gdk.pixbuf_new_from_file_at_size(join(invest.ART_DATA_DIR, "invest-22_up.png"), -1,-1)
315++ pixbuf = GdkPixbuf_new_from_file_at_size(join(invest.ART_DATA_DIR, "invest-22_up.png"), -1,-1)
316+ elif change == 0:
317+- pixbuf = gtk.gdk.pixbuf_new_from_file_at_size(join(invest.ART_DATA_DIR, "invest-22_neutral.png"), -1,-1)
318++ pixbuf = GdkPixbuf_new_from_file_at_size(join(invest.ART_DATA_DIR, "invest-22_neutral.png"), -1,-1)
319+ else:
320+- pixbuf = gtk.gdk.pixbuf_new_from_file_at_size(join(invest.ART_DATA_DIR, "invest-22_down.png"), -1,-1)
321++ pixbuf = GdkPixbuf_new_from_file_at_size(join(invest.ART_DATA_DIR, "invest-22_down.png"), -1,-1)
322+ self.applet_icon.set_from_pixbuf(pixbuf)
323+
324+ def set_applet_tooltip(self, text):
325+ self.applet_icon.set_tooltip_text(text)
326+
327+-class InvestmentsListWindow(gtk.Window):
328++class InvestmentsListWindow(Gtk.Window):
329+ def __init__(self, applet, list):
330+- gtk.Window.__init__(self, gtk.WINDOW_TOPLEVEL)
331++ Gtk.Window.__init__(self, gtk.WINDOW_TOPLEVEL)
332+ self.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DOCK)
333+ self.stick()
334+ self.set_resizable(False)
335+@@ -128,58 +127,58 @@ class InvestmentsListWindow(gtk.Window):
336+ screen = self.applet.window.get_screen()
337+ monitor = screen.get_monitor_geometry (screen.get_monitor_at_window (self.applet.window))
338+
339+- if self.alignment == gnomeapplet.ORIENT_LEFT:
340+- x = ax - ww
341+- y = ay
342++ if self.alignment == PanelApplet.ORIENT_LEFT:
343++ x = ax - ww
344++ y = ay
345+
346+- if (y + wh > monitor.y + monitor.height):
347+- y = monitor.y + monitor.height - wh
348++ if (y + wh > monitor.y + monitor.height):
349++ y = monitor.y + monitor.height - wh
350+
351+- if (y < 0):
352+- y = 0
353++ if (y < 0):
354++ y = 0
355+
356+- if (y + wh > monitor.height / 2):
357+- gravity = gtk.gdk.GRAVITY_SOUTH_WEST
358+- else:
359+- gravity = gtk.gdk.GRAVITY_NORTH_WEST
360++ if (y + wh > monitor.height / 2):
361++ gravity = gtk.gdk.GRAVITY_SOUTH_WEST
362++ else:
363++ gravity = gtk.gdk.GRAVITY_NORTH_WEST
364+
365+ elif self.alignment == gnomeapplet.ORIENT_RIGHT:
366+- x = ax + aw
367+- y = ay
368++ x = ax + aw
369++ y = ay
370+
371+- if (y + wh > monitor.y + monitor.height):
372+- y = monitor.y + monitor.height - wh
373++ if (y + wh > monitor.y + monitor.height):
374++ y = monitor.y + monitor.height - wh
375+
376+- if (y < 0):
377+- y = 0
378++ if (y < 0):
379++ y = 0
380+
381+- if (y + wh > monitor.height / 2):
382+- gravity = gtk.gdk.GRAVITY_SOUTH_EAST
383+- else:
384+- gravity = gtk.gdk.GRAVITY_NORTH_EAST
385++ if (y + wh > monitor.height / 2):
386++ gravity = gtk.gdk.GRAVITY_SOUTH_EAST
387++ else:
388++ gravity = gtk.gdk.GRAVITY_NORTH_EAST
389+
390+ elif self.alignment == gnomeapplet.ORIENT_DOWN:
391+- x = ax
392+- y = ay + ah
393++ x = ax
394++ y = ay + ah
395+
396+- if (x + ww > monitor.x + monitor.width):
397+- x = monitor.x + monitor.width - ww
398++ if (x + ww > monitor.x + monitor.width):
399++ x = monitor.x + monitor.width - ww
400+
401+- if (x < 0):
402+- x = 0
403++ if (x < 0):
404++ x = 0
405+
406+- gravity = gtk.gdk.GRAVITY_NORTH_WEST
407++ gravity = gtk.gdk.GRAVITY_NORTH_WEST
408+ elif self.alignment == gnomeapplet.ORIENT_UP:
409+- x = ax
410+- y = ay - wh
411++ x = ax
412++ y = ay - wh
413+
414+- if (x + ww > monitor.x + monitor.width):
415+- x = monitor.x + monitor.width - ww
416++ if (x + ww > monitor.x + monitor.width):
417++ x = monitor.x + monitor.width - ww
418+
419+- if (x < 0):
420+- x = 0
421++ if (x < 0):
422++ x = 0
423+
424+- gravity = gtk.gdk.GRAVITY_SOUTH_WEST
425++ gravity = gtk.gdk.GRAVITY_SOUTH_WEST
426+
427+ self.move(x, y)
428+ self.set_gravity(gravity)
429+diff --git a/invest-applet/invest/chart.py b/invest-applet/invest/chart.py
430+index c6caff7..3e226e0 100644
431+--- a/invest-applet/invest/chart.py
432++++ b/invest-applet/invest/chart.py
433+@@ -1,7 +1,6 @@
434+ #!/usr/bin/env python
435+
436+-import gtk, gtk.gdk
437+-import gobject
438++from gi.repository import Gtk, GdkPixbuf, GObject
439+ import os
440+ import invest
441+ from gettext import gettext as _
442+@@ -15,16 +14,16 @@ import time
443+ AUTOREFRESH_TIMEOUT = 20*60*1000 # 15 minutes
444+
445+ # based on http://www.johnstowers.co.nz/blog/index.php/2007/03/12/threading-and-pygtk/
446+-class _IdleObject(gobject.GObject):
447++class _IdleObject(GObject.GObject):
448+ """
449+ Override gobject.GObject to always emit signals in the main thread
450+ by emmitting on an idle handler
451+ """
452+ def __init__(self):
453+- gobject.GObject.__init__(self)
454++ GObject.GObject.__init__(self)
455+
456+ def emit(self, *args):
457+- gobject.idle_add(gobject.GObject.emit,self,*args)
458++ GObject.idle_add(gobject.GObject.emit,self,*args)
459+
460+ class ImageRetriever(Thread, _IdleObject):
461+ """
462+@@ -33,7 +32,7 @@ class ImageRetriever(Thread, _IdleObject):
463+ """
464+ __gsignals__ = {
465+ "completed": (
466+- gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, []),
467++ GObject.SIGNAL_RUN_LAST, GObject.TYPE_NONE, []),
468+ # FIXME: should we be making use of this?
469+ #"progress": (
470+ # gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, [
471+@@ -47,12 +46,12 @@ class ImageRetriever(Thread, _IdleObject):
472+ self.retrieved = False
473+
474+ def run(self):
475+- self.image = gtk.Image()
476++ self.image = Gtk.Image()
477+ try: sock = urllib.urlopen(self.image_url, proxies = invest.PROXY)
478+ except Exception, msg:
479+ invest.debug("Error while opening %s: %s" % (self.image_url, msg))
480+ else:
481+- loader = gtk.gdk.PixbufLoader()
482++ loader = GdkPixbuf.PixbufLoader()
483+ loader.connect("closed", lambda loader: self.image.set_from_pixbuf(loader.get_pixbuf()))
484+ loader.write(sock.read())
485+ sock.close()
486+@@ -107,7 +106,7 @@ class FinancialChart:
487+ win.set_title(_("Financial Chart"))
488+
489+ try:
490+- pixbuf = gtk.gdk.pixbuf_new_from_file_at_size(join(invest.ART_DATA_DIR, "invest_neutral.svg"), 96,96)
491++ pixbuf = GdkPixbuf.pixbuf_new_from_file_at_size(join(invest.ART_DATA_DIR, "invest_neutral.svg"), 96,96)
492+ self.ui.get_object("plot").set_from_pixbuf(pixbuf)
493+ except Exception, msg:
494+ invest.debug("Could not load 'invest-neutral.svg' file: %s" % msg)
495+@@ -241,14 +240,14 @@ class FinancialChart:
496+
497+ def on_autorefresh_toggled(self, autorefresh):
498+ if self.autorefresh_id != 0:
499+- gobject.source_remove(self.autorefresh_id)
500++ GObject.source_remove(self.autorefresh_id)
501+ self.autorefresh_id = 0
502+
503+ if autorefresh.get_active():
504+- self.autorefresh_id = gobject.timeout_add(AUTOREFRESH_TIMEOUT, self.on_refresh_chart, True)
505++ self.autorefresh_id = GObject.timeout_add(AUTOREFRESH_TIMEOUT, self.on_refresh_chart, True)
506+
507+ def show_chart(tickers):
508+- ui = gtk.Builder();
509++ ui = Gtk.Builder();
510+ ui.add_from_file(os.path.join(invest.BUILDER_DATA_DIR, "financialchart.ui"))
511+ chart = FinancialChart(ui)
512+ ui.get_object("s").set_text(' '.join(tickers))
513+diff --git a/invest-applet/invest/help.py b/invest-applet/invest/help.py
514+index 7dfaabf..66399c5 100644
515+--- a/invest-applet/invest/help.py
516++++ b/invest-applet/invest/help.py
517+@@ -1,8 +1,8 @@
518+ # -*- coding: utf-8 -*-
519+-import gtk, gtk.gdk
520++from gi.repository import Gdk, Gtk
521+
522+ def show_help():
523+- gtk.show_uri(None, "ghelp:invest-applet", gtk.gdk.CURRENT_TIME)
524++ Gtk.show_uri(None, "ghelp:invest-applet", Gdk.CURRENT_TIME)
525+
526+ def show_help_section(id):
527+- gtk.show_uri(None, "ghelp:invest-applet?%s" % id, gtk.gdk.CURRENT_TIME)
528++ Gtk.show_uri(None, "ghelp:invest-applet?%s" % id, Gdk.CURRENT_TIME)
529+diff --git a/invest-applet/invest/invest-applet.py b/invest-applet/invest/invest-applet.py
530+index da1fb05..fd7b334 100755
531+--- a/invest-applet/invest/invest-applet.py
532++++ b/invest-applet/invest/invest-applet.py
533+@@ -1,8 +1,8 @@
534+ #!/usr/bin/env python
535+ #
536+
537+-import gobject
538+-import gtk, gnomeapplet
539++from gi.repository import GObject, Gtk, PanelApplet
540++from invest.applet import InvestApplet
541+
542+ import getopt, sys
543+ from os.path import *
544+@@ -37,12 +37,12 @@ def applet_factory(applet, iid):
545+
546+ # Return a standalone window that holds the applet
547+ def build_window():
548+- app = gtk.Window(gtk.WINDOW_TOPLEVEL)
549++ app = Gtk.Window(Gtk.WindowType.toplevel)
550+ app.set_title(_("Invest Applet"))
551+ app.connect("destroy", gtk.main_quit)
552+ app.set_property('resizable', False)
553+
554+- applet = gnomeapplet.Applet()
555++ applet = PanelApplet.Applet()
556+ applet_factory(applet, None)
557+ applet.reparent(app)
558+
559+@@ -68,7 +68,7 @@ if __name__ == "__main__":
560+ try:
561+ opts, args = getopt.getopt(sys.argv[1:], "hdw", ["help", "debug", "window"])
562+ except getopt.GetoptError:
563+- # Unknown args were passed, we fallback to bahave as if
564++ # Unknown args were passed, we fallback to behave as if
565+ # no options were passed
566+ opts = []
567+ args = sys.argv[1:]
568+@@ -88,11 +88,11 @@ if __name__ == "__main__":
569+
570+ if standalone:
571+ build_window()
572+- gtk.main()
573++ Gtk.main()
574+ else:
575+- gnomeapplet.bonobo_factory(
576+- "OAFIID:Invest_Applet_Factory",
577+- gnomeapplet.Applet.__gtype__,
578+- invest.defs.PACKAGE,
579+- invest.defs.VERSION,
580+- applet_factory)
581++ PanelApplet.Applet.factory_main(
582++ "InvestAppletFactory",
583++ True,
584++ InvestApplet.__gtype__,
585++ applet_factory,
586++ None)
587+diff --git a/invest-applet/invest/preferences.py b/invest-applet/invest/preferences.py
588+index 2485e16..018a630 100644
589+--- a/invest-applet/invest/preferences.py
590++++ b/invest-applet/invest/preferences.py
591+@@ -1,14 +1,14 @@
592+ from gettext import gettext as _
593+ import locale
594+ from os.path import join
595+-import gtk, gobject, gconf
596++from gi.repository import Gtk, GObject, GConf
597+ import invest
598+ import currencies
599+ import cPickle
600+
601+ class PrefsDialog:
602+ def __init__(self, applet):
603+- self.ui = gtk.Builder()
604++ self.ui = Gtk.Builder()
605+ self.ui.add_from_file(join(invest.BUILDER_DATA_DIR, "prefs-dialog.ui"))
606+
607+ self.dialog = self.ui.get_object("preferences")
608+@@ -29,14 +29,14 @@ class PrefsDialog:
609+
610+ self.typs = (str, str, float, float, float, float)
611+ self.names = (_("Symbol"), _("Label"), _("Amount"), _("Price"), _("Commission"), _("Currency Rate"))
612+- store = gtk.ListStore(*self.typs)
613++ store = Gtk.ListStore(*self.typs)
614+ store.set_sort_column_id(0, gtk.SORT_ASCENDING)
615+ self.treeview.set_model(store)
616+ self.model = store
617+
618+- completion = gtk.EntryCompletion()
619++ completion = Gtk.EntryCompletion()
620+ self.currency.set_completion(completion)
621+- liststore = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING)
622++ liststore = Gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING)
623+ completion.set_model(liststore)
624+ completion.set_text_column(0)
625+ for code, label in self.currencies.items():
626+@@ -107,12 +107,12 @@ class PrefsDialog:
627+ return len(text) - text.find(".") - 1
628+
629+ def create_cell (self, view, column, name, typ):
630+- cell_description = gtk.CellRendererText ()
631++ cell_description = Gtk.CellRendererText ()
632+ if typ == float:
633+ cell_description.set_property("xalign", 1.0)
634+ cell_description.set_property("editable", True)
635+ cell_description.connect("edited", self.on_cell_edited, column, typ)
636+- column_description = gtk.TreeViewColumn (name, cell_description)
637++ column_description = Gtk.TreeViewColumn (name, cell_description)
638+ if typ == str:
639+ column_description.set_attributes (cell_description, text=column)
640+ column_description.set_sort_column_id(column)
641+diff --git a/invest-applet/invest/quotes.py b/invest-applet/invest/quotes.py
642+index b7ec21b..69472f3 100644
643+--- a/invest-applet/invest/quotes.py
644++++ b/invest-applet/invest/quotes.py
645+@@ -1,5 +1,5 @@
646+ from os.path import join
647+-import gnomeapplet, gtk, gtk.gdk, gconf, gobject
648++from gi.repository import PanelApplet, Gtk, Gdk, GConf, GObject
649+ from gettext import gettext as _
650+ import csv
651+ import locale
652+@@ -19,16 +19,16 @@ QUOTES_URL="http://finance.yahoo.com/d/quotes.csv?s=%(s)s&f=snc4l1d1t1c1ohgv&e=.
653+ QUOTES_CSV_FIELDS=["ticker", "label", "currency", ("trade", float), "date", "time", ("variation", float), ("open", float), ("high", float), ("low", float), ("volume", int)]
654+
655+ # based on http://www.johnstowers.co.nz/blog/index.php/2007/03/12/threading-and-pygtk/
656+-class _IdleObject(gobject.GObject):
657++class _IdleObject(GObject.GObject):
658+ """
659+ Override gobject.GObject to always emit signals in the main thread
660+ by emmitting on an idle handler
661+ """
662+ def __init__(self):
663+- gobject.GObject.__init__(self)
664++ GObject.GObject.__init__(self)
665+
666+ def emit(self, *args):
667+- gobject.idle_add(gobject.GObject.emit,self,*args)
668++ GObject.idle_add(gobject.GObject.emit,self,*args)
669+
670+ class QuotesRetriever(Thread, _IdleObject):
671+ """
672+@@ -37,7 +37,7 @@ class QuotesRetriever(Thread, _IdleObject):
673+ """
674+ __gsignals__ = {
675+ "completed": (
676+- gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, []),
677++ GObject.SIGNAL_RUN_LAST, GObject.TYPE_NONE, []),
678+ # FIXME: We don't monitor progress, yet ...
679+ #"progress": (
680+ # gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, [
681+@@ -65,14 +65,14 @@ class QuotesRetriever(Thread, _IdleObject):
682+ self.emit("completed")
683+
684+
685+-class QuoteUpdater(gtk.ListStore):
686++class QuoteUpdater(Gtk.ListStore):
687+ updated = False
688+ last_updated = None
689+ quotes_valid = False
690+ timeout_id = None
691+ SYMBOL, LABEL, CURRENCY, TICKER_ONLY, BALANCE, BALANCE_PCT, VALUE, VARIATION_PCT, PB = range(9)
692+ def __init__ (self, change_icon_callback, set_tooltip_callback):
693+- gtk.ListStore.__init__ (self, gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING, bool, float, float, float, float, gtk.gdk.Pixbuf)
694++ Gtk.ListStore.__init__ (self, gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING, bool, float, float, float, float, gtk.gdk.Pixbuf)
695+ self.set_update_interval(AUTOREFRESH_TIMEOUT)
696+ self.change_icon_callback = change_icon_callback
697+ self.set_tooltip_callback = set_tooltip_callback
698+@@ -85,11 +85,11 @@ class QuoteUpdater(gtk.ListStore):
699+ def set_update_interval(self, interval):
700+ if self.timeout_id != None:
701+ invest.debug("Canceling refresh timer")
702+- gobject.source_remove(self.timeout_id)
703++ GObject.source_remove(self.timeout_id)
704+ self.timeout_id = None
705+ if interval > 0:
706+ invest.debug("Setting refresh timer to %s:%02d.%03d" % ( interval / 60000, interval % 60000 / 1000, interval % 1000) )
707+- self.timeout_id = gobject.timeout_add(interval, self.refresh)
708++ self.timeout_id = GObject.timeout_add(interval, self.refresh)
709+
710+ def nm_state_changed(self):
711+ # when nm is online but we do not have an update timer, create it and refresh
712+@@ -406,6 +406,3 @@ class QuoteUpdater(gtk.ListStore):
713+ res = False
714+ break
715+ return res
716+-
717+-if gtk.pygtk_version < (2,8,0):
718+- gobject.type_register(QuoteUpdater)
719+diff --git a/invest-applet/invest/widgets.py b/invest-applet/invest/widgets.py
720+index 13a2ec9..7c9bc91 100644
721+--- a/invest-applet/invest/widgets.py
722++++ b/invest-applet/invest/widgets.py
723+@@ -1,6 +1,6 @@
724+ import os, time
725+ from os.path import *
726+-import gnomeapplet, gtk, gtk.gdk, gconf, gobject, pango
727++from gi.repository import PanelApplet, Gtk, Gdk, GConf, GObject, Pango
728+ from gettext import gettext as _
729+ import locale
730+ import csv
731+@@ -35,9 +35,9 @@ MEDIUM = -1
732+
733+ TICKER_TIMEOUT = 10000#3*60*1000#
734+
735+-class InvestWidget(gtk.TreeView):
736++class InvestWidget(Gtk.TreeView):
737+ def __init__(self, quotes_updater):
738+- gtk.TreeView.__init__(self)
739++ Gtk.TreeView.__init__(self)
740+ self.set_property("rules-hint", True)
741+ self.set_reorderable(True)
742+ self.set_hover_selection(True)
743+@@ -54,10 +54,10 @@ class InvestWidget(gtk.TreeView):
744+ self._getcelldata_balancepct]
745+ for i, col_name in enumerate(col_names):
746+ if i < 3:
747+- cell = gtk.CellRendererText()
748++ cell = Gtk.CellRendererText()
749+ if i > 0:
750+ cell.set_property("xalign", 1.0)
751+- column = gtk.TreeViewColumn (col_name, cell)
752++ column = Gtk.TreeViewColumn (col_name, cell)
753+ if i == 0:
754+ column.set_sort_column_id(quotes_updater.LABEL)
755+ elif i == 2:
756+@@ -65,15 +65,15 @@ class InvestWidget(gtk.TreeView):
757+ column.set_cell_data_func(cell, col_cellgetdata_functions[i])
758+ self.append_column(column)
759+ elif i == 3:
760+- cell_pb = gtk.CellRendererPixbuf()
761+- column = gtk.TreeViewColumn (col_name, cell_pb, pixbuf=quotes_updater.PB)
762++ cell_pb = Gtk.CellRendererPixbuf()
763++ column = Gtk.TreeViewColumn (col_name, cell_pb, pixbuf=quotes_updater.PB)
764+ self.append_column(column)
765+ else:
766+ # add the last two column only if we have any positions
767+ if simple_quotes_only == False:
768+- cell = gtk.CellRendererText()
769++ cell = Gtk.CellRendererText()
770+ cell.set_property("xalign", 1.0)
771+- column = gtk.TreeViewColumn (col_name, cell)
772++ column = Gtk.TreeViewColumn (col_name, cell)
773+ if i == 4:
774+ column.set_sort_column_id(quotes_updater.BALANCE)
775+ elif i == 5:
776+@@ -156,12 +156,12 @@ class InvestWidget(gtk.TreeView):
777+
778+ invest.chart.show_chart([ticker])
779+
780+-#class InvestTicker(gtk.Label):
781++#class InvestTicker(Gtk.Label):
782+ # def __init__(self):
783+-# gtk.Label.__init__(self, _("Waiting..."))
784++# Gtk.Label.__init__(self, _("Waiting..."))
785+ #
786+ # self.quotes = []
787+-# gobject.timeout_add(TICKER_TIMEOUT, self.scroll_quotes)
788++# GObject.timeout_add(TICKER_TIMEOUT, self.scroll_quotes)
789+ #
790+ # get_quotes_updater().connect('quotes-updated', self.on_quotes_update)
791+ #
792+@@ -190,9 +190,9 @@ class InvestWidget(gtk.TreeView):
793+ #
794+ #gobject.type_register(InvestTicker)
795+
796+-class InvestTrend(gtk.Image):
797++class InvestTrend(Gtk.Image):
798+ def __init__(self):
799+- gtk.Image.__init__(self)
800++ Gtk.Image.__init__(self)
801+ self.pixbuf = None
802+ self.previous_allocation = (0,0)
803+ self.connect('size-allocate', self.on_size_allocate)
804+@@ -202,14 +202,14 @@ class InvestTrend(gtk.Image):
805+ if self.previous_allocation == (allocation.width, allocation.height):
806+ return
807+
808+- self.pixbuf = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, True, 8, allocation.height, allocation.height)
809++ self.pixbuf = GdkPixbuf.Pixbuf(Gdk.COLORSPACE_RGB, True, 8, allocation.height, allocation.height)
810+ self.set_color("grey")
811+ self.previous_allocation = (allocation.width, allocation.height)
812+
813+ def set_color(self, color, opacity=0xFF):
814+ if self.pixbuf != None:
815+ try:
816+- color = pango.Color(color)
817++ color = Pango.Color(color)
818+ factor = float(0xFF)/0xFFFF
819+ self.pixbuf.fill(
820+ int(color.red*factor)<<24|int(color.green*factor)<<16|int(color.blue*factor)<<8|opacity)
821+@@ -247,4 +247,4 @@ class InvestTrend(gtk.Image):
822+
823+ self.set_color(color, opacity)
824+
825+-gobject.type_register(InvestTrend)
826++GObject.type_register(InvestTrend)
827+diff --git a/null_applet/Makefile.am b/null_applet/Makefile.am
828+index 2fe1d3e..b072b04 100644
829+--- a/null_applet/Makefile.am
830++++ b/null_applet/Makefile.am
831+@@ -1,44 +1,40 @@
832++applet_in_files = org.gnome.applets.NullApplet.panel-applet.in
833++service_in_files = org.gnome.panel.applet.NullAppletFactory.service.in
834++
835+ INCLUDES = \
836+ -I. \
837+ -I$(srcdir) \
838+- $(GNOME_APPLETS_CFLAGS)
839+-
840+-## The null applet takes over if the mixer isn't built.
841+-if !BUILD_MIXER_APPLET
842+-mixer_server_in = GNOME_MixerApplet.server.in
843+-endif
844++ $(GNOME_APPLETS3_CFLAGS)
845+
846+ libexec_PROGRAMS = null_applet
847+
848+-null_applet_SOURCES = null_applet.c
849++null_applet_SOURCES = null_applet.c null_applet.h
850++
851++null_applet_LDADD = $(GNOME_APPLETS3_LIBS)
852++
853++appletdir = $(datadir)/gnome-panel/applets
854++applet_DATA = $(applet_in_files:.panel-applet.in=.panel-applet)
855+
856+-null_applet_LDADD = $(GNOME_APPLETS_LIBS)
857++$(applet_in_files): $(applet_in_files).in Makefile
858++ $(AM_V_GEN)sed \
859++ -e "s|\@LIBEXECDIR\@|$(libexecdir)|" \
860++ -e "s|\@VERSION\@|$(PACKAGE_VERSION)|" \
861++ $< > $@
862+
863+-serverdir = $(libdir)/bonobo/servers
864+-server_in_files = \
865+- GNOME_NullApplet_Factory.server.in \
866+- GNOME_CDPlayerApplet.server.in \
867+- GNOME_MailcheckApplet_Factory.server.in \
868+- GNOME_Panel_WirelessApplet.server.in \
869+- GNOME_KeyboardApplet.server.in \
870+- $(mixer_server_in)
871+-server_DATA = $(server_in_files:.server.in=.server)
872++%.panel-applet: %.panel-applet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*po) ; $(INTLTOOL_MERGE) $(top_srcdir)/po $< $@ -d -u -c $(top_builddir)/po/.intltool-merge-cache
873+
874+-@INTLTOOL_SERVER_RULE@
875++servicedir = $(datadir)/dbus-1/services
876++service_DATA = $(service_in_files:.service.in=.service)
877+
878+-GNOME_NullApplet_Factory.server.in: GNOME_NullApplet_Factory.server.in.in
879+- sed -e "s|\@LIBEXECDIR\@|$(libexecdir)|" $< > $@
880++org.gnome.panel.applet.NullAppletFactory.service: $(service_in_files)
881++ $(AM_V_GEN)sed \
882++ -e "s|\@LIBEXECDIR\@|$(libexecdir)|" \
883++ $< > $@
884+
885+-CLEANFILES = GNOME_NullApplet_Factory.server.in $(server_DATA)
886++CLEANFILES = $(applet_DATA) $(applet_DATA).in $(service_DATA) $(schemas_DATA)
887+
888+-## Note that the mixer applet server.in file is always distributed, but
889+-## note always used.
890+-EXTRA_DIST = \
891+- GNOME_NullApplet_Factory.server.in.in \
892+- GNOME_CDPlayerApplet.server.in \
893+- GNOME_MailcheckApplet_Factory.server.in \
894+- GNOME_Panel_WirelessApplet.server.in \
895+- GNOME_MixerApplet.server.in \
896+- GNOME_KeyboardApplet.server.in
897++EXTRA_DIST = \
898++ $(service_in_files) \
899++ org.gnome.applets.NullApplet.panel-applet.in.in
900+
901+ -include $(top_srcdir)/git.mk
902+diff --git a/null_applet/null_applet.c b/null_applet/null_applet.c
903+index b03521b..d6fb35d 100644
904+--- a/null_applet/null_applet.c
905++++ b/null_applet/null_applet.c
906+@@ -24,11 +24,22 @@
907+ #include <config.h>
908+ #endif
909+
910++#include <glib/gi18n-lib.h>
911+ #include <gtk/gtk.h>
912+ #include <gconf/gconf-client.h>
913+-#include <panel-applet.h>
914++#include "null_applet.h"
915+
916+-static const char factory_iid[] = "OAFIID:GNOME_NullApplet_Factory";
917++G_DEFINE_TYPE(NullApplet, null_applet, PANEL_TYPE_APPLET)
918++
919++static void
920++null_applet_class_init (NullAppletClass *klass)
921++{
922++}
923++
924++static void
925++null_applet_init (NullApplet *applet)
926++{
927++}
928+
929+ static inline void
930+ insert_oafiids (GHashTable *hash_table)
931+@@ -48,8 +59,6 @@ insert_oafiids (GHashTable *hash_table)
932+ "OAFIID:GNOME_KeyboardApplet", _("Keyboard Indicator"));
933+ }
934+
935+-static gboolean already_running;
936+-
937+ static void
938+ response_cb (GtkWidget *dialog, gint arg1, gpointer user_data)
939+ {
940+@@ -135,11 +144,8 @@ applet_factory (PanelApplet *applet,
941+ char *applet_list;
942+ GtkWidget *dialog;
943+
944+- if (already_running)
945+- {
946+- return FALSE;
947+- }
948+- already_running = TRUE;
949++ if (!g_str_equal (iid, "NullApplet"))
950++ return FALSE;
951+
952+ applet_list = get_all_applets ();
953+
954+@@ -167,7 +173,8 @@ applet_factory (PanelApplet *applet,
955+ return TRUE;
956+ }
957+
958+-PANEL_APPLET_BONOBO_FACTORY (factory_iid,
959+- PANEL_TYPE_APPLET,
960+- "Null-Applet", "0",
961+- applet_factory, NULL)
962++PANEL_APPLET_OUT_PROCESS_FACTORY ("NullApplet",
963++ TYPE_NULL_APPLET,
964++ "null",
965++ applet_factory,
966++ NULL)
967+diff --git a/null_applet/null_applet.h b/null_applet/null_applet.h
968+new file mode 100644
969+index 0000000..1c5f5bf
970+--- /dev/null
971++++ b/null_applet/null_applet.h
972+@@ -0,0 +1,50 @@
973++/* -*- mode: C; c-basic-offset: 4 -*-
974++ * Null Applet - The Applet Deprecation Applet
975++ * Copyright (c) 2004, Davyd Madeley
976++ *
977++ * This library is free software; you can redistribute it and/or
978++ * modify it under the terms of the GNU General Public
979++ * License as published by the Free Software Foundation; either
980++ * version 2 of the License, or (at your option) any later version.
981++ *
982++ * This program is distributed in the hope that it will be useful,
983++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
984++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
985++ * GNU General Public License for more details.
986++ *
987++ * You should have received a copy of the GNU General Public License
988++ * along with this program; if not, write to the Free Software
989++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
990++ *
991++ * Author:
992++ * Rodrigo Moya <rodrigo@gnome.org>
993++ */
994++
995++#ifndef __NULL_APPLET_H
996++#define __NULL_APPLET_H
997++
998++#include <panel-applet.h>
999++
1000++G_BEGIN_DECLS
1001++
1002++#define TYPE_NULL_APPLET (null_applet_get_type ())
1003++#define NULL_APPLET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_NULL_APPLET, NullApplet))
1004++#define NULL_APPLET_CLASS(obj) (G_TYPE_CHECK_CLASS_CAST ((obj), TYPE_NULL_APPLET, NullAppletClass))
1005++#define IS_NULL_APPLET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_NULL_APPLET))
1006++#define IS_NULL_APPLET_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE ((obj), TYPE_NULL_APPLET))
1007++#define NULL_APPLET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_NULL_APPLET, NullAppletClass))
1008++
1009++typedef struct _NullApplet NullApplet;
1010++typedef struct _NullAppletClass NullAppletClass;
1011++
1012++struct _NullApplet {
1013++ PanelApplet parent;
1014++};
1015++
1016++struct _NullAppletClass {
1017++ PanelAppletClass parent_class;
1018++};
1019++
1020++G_END_DECLS
1021++
1022++#endif
1023+diff --git a/null_applet/org.gnome.applets.NullApplet.panel-applet.in.in b/null_applet/org.gnome.applets.NullApplet.panel-applet.in.in
1024+new file mode 100644
1025+index 0000000..b349511
1026+--- /dev/null
1027++++ b/null_applet/org.gnome.applets.NullApplet.panel-applet.in.in
1028+@@ -0,0 +1,15 @@
1029++[Applet Factory]
1030++Id=NullAppletFactory
1031++Location=@LIBEXECDIR@/null_applet
1032++_Name=Null Applet Factory
1033++_Description=Null Applet Factory
1034++
1035++[NullApplet]
1036++_Name=Null applet
1037++_Description=Check for obsolete applets
1038++BonoboId=OAFIID:GNOME_MailcheckApplet;OAFIID:GNOME_CDPlayerApplet;OAFIID:GNOME_MixerApplet_Factory;OAFIID:GNOME_MixerApplet;OAFIID:GNOME_KeyboardApplet;OAFIID:GNOME_BattstatApplet;OAFIID:GNOME_ModemLightsApplet;
1039++X-GNOME-Bugzilla-Bugzilla=GNOME
1040++X-GNOME-Bugzilla-Product=gnome-applets
1041++X-GNOME-Bugzilla-Component=null
1042++X-GNOME-Bugzilla-Version=@VERSION@
1043++X-GNOME-Bugzilla-OtherBinaries=null_applet
1044+diff --git a/null_applet/org.gnome.panel.applet.NullAppletFactory.service.in b/null_applet/org.gnome.panel.applet.NullAppletFactory.service.in
1045+new file mode 100644
1046+index 0000000..49f8d40
1047+--- /dev/null
1048++++ b/null_applet/org.gnome.panel.applet.NullAppletFactory.service.in
1049+@@ -0,0 +1,3 @@
1050++[D-BUS Service]
1051++Name=org.gnome.panel.applet.NullAppletFactory
1052++Exec=@LIBEXECDIR@/null_applet
1053
1054=== modified file 'debian/patches/81_silent_applet_cleaning'
1055--- debian/patches/81_silent_applet_cleaning 2010-07-13 04:27:53 +0000
1056+++ debian/patches/81_silent_applet_cleaning 2010-11-29 16:14:03 +0000
1057@@ -2,9 +2,9 @@
1058 ===================================================================
1059 --- gnome-applets-2.30.0.orig/null_applet/null_applet.c 2010-03-28 16:29:51.000000000 +1100
1060 +++ gnome-applets-2.30.0/null_applet/null_applet.c 2010-07-13 14:23:45.398124000 +1000
1061-@@ -50,11 +50,13 @@
1062+@@ -62,11 +62,13 @@
1063
1064- static gboolean already_running;
1065+ }
1066
1067 +/*
1068 static void
1069@@ -16,7 +16,7 @@
1070
1071 static char
1072 *get_all_applets (void)
1073-@@ -133,16 +135,18 @@
1074+@@ -142,12 +145,14 @@
1075 gpointer user_data)
1076 {
1077 char *applet_list;
1078@@ -24,11 +24,8 @@
1079 GtkWidget *dialog;
1080 + */
1081
1082- if (already_running)
1083- {
1084+ if (!g_str_equal (iid, "NullApplet"))
1085 return FALSE;
1086- }
1087- already_running = TRUE;
1088 -
1089 +
1090 applet_list = get_all_applets ();
1091@@ -37,7 +34,7 @@
1092 dialog = gtk_message_dialog_new_with_markup (NULL,
1093 GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
1094 GTK_MESSAGE_INFO, GTK_BUTTONS_OK,
1095-@@ -156,13 +160,14 @@
1096+@@ -162,13 +166,14 @@
1097 applet_list,
1098 _("You will not receive this message again.")
1099 );
1100
1101=== modified file 'debian/patches/86_deprecate_battstatus.patch'
1102--- debian/patches/86_deprecate_battstatus.patch 2010-03-29 09:59:14 +0000
1103+++ debian/patches/86_deprecate_battstatus.patch 2010-11-29 16:14:03 +0000
1104@@ -1,69 +1,8 @@
1105-Index: gnome-applets-2.30.0/null_applet/GNOME_BattstatApplet.server.in
1106-===================================================================
1107---- /dev/null 1970-01-01 00:00:00.000000000 +0000
1108-+++ gnome-applets-2.30.0/null_applet/GNOME_BattstatApplet.server.in 2010-03-29 11:55:08.885546800 +0200
1109-@@ -0,0 +1,21 @@
1110-+<oaf_info>
1111-+
1112-+<oaf_server iid="OAFIID:GNOME_BattstatApplet"
1113-+ type="factory"
1114-+ location="OAFIID:GNOME_NullApplet_Factory">
1115-+
1116-+ <oaf_attribute name="repo_ids" type="stringv">
1117-+ <item value="IDL:GNOME/Vertigo/PanelAppletShell:1.0"/>
1118-+ <item value="IDL:Bonobo/Control:1.0"/>
1119-+ <item value="IDL:Bonobo/Unknown:1.0"/>
1120-+ </oaf_attribute>
1121-+ <oaf_attribute name="name" type="string" _value="Battery Charge Monitor (Deprecated)"/>
1122-+ <oaf_attribute name="description" type="string" _value="Monitor a laptop's remaining power"/>
1123-+ <oaf_attribute name="bugzilla:bugzilla" type="string" value="GNOME"/>
1124-+ <oaf_attribute name="bugzilla:product" type="string" value="gnome-applets"/>
1125-+ <oaf_attribute name="bugzilla:component" type="string" value="battery"/>
1126-+ <oaf_attribute name="bugzilla:other_binaries" type="string" value="battstat-applet-2"/>
1127-+
1128-+</oaf_server>
1129-+
1130-+</oaf_info>
1131-Index: gnome-applets-2.30.0/null_applet/Makefile.am
1132-===================================================================
1133---- gnome-applets-2.30.0.orig/null_applet/Makefile.am 2010-03-28 07:29:51.000000000 +0200
1134-+++ gnome-applets-2.30.0/null_applet/Makefile.am 2010-03-29 11:57:44.597546031 +0200
1135-@@ -8,6 +8,11 @@
1136- mixer_server_in = GNOME_MixerApplet.server.in
1137- endif
1138-
1139-+## The null applet takes over if the battstat applet isn't built
1140-+if !BUILD_BATTSTAT_APPLET
1141-+battstat_server_in = GNOME_BattstatApplet.server.in
1142-+endif
1143-+
1144- libexec_PROGRAMS = null_applet
1145-
1146- null_applet_SOURCES = null_applet.c
1147-@@ -21,7 +26,8 @@
1148- GNOME_MailcheckApplet_Factory.server.in \
1149- GNOME_Panel_WirelessApplet.server.in \
1150- GNOME_KeyboardApplet.server.in \
1151-- $(mixer_server_in)
1152-+ $(mixer_server_in) \
1153-+ $(battstat_server_in)
1154- server_DATA = $(server_in_files:.server.in=.server)
1155-
1156- @INTLTOOL_SERVER_RULE@
1157-@@ -39,6 +45,7 @@
1158- GNOME_MailcheckApplet_Factory.server.in \
1159- GNOME_Panel_WirelessApplet.server.in \
1160- GNOME_MixerApplet.server.in \
1161-- GNOME_KeyboardApplet.server.in
1162-+ GNOME_KeyboardApplet.server.in \
1163-+ GNOME_BattstatApplet.server.in
1164-
1165- -include $(top_srcdir)/git.mk
1166 Index: gnome-applets-2.30.0/null_applet/null_applet.c
1167 ===================================================================
1168 --- gnome-applets-2.30.0.orig/null_applet/null_applet.c 2010-03-29 11:55:08.000000000 +0200
1169 +++ gnome-applets-2.30.0/null_applet/null_applet.c 2010-03-29 11:58:38.588546843 +0200
1170-@@ -46,6 +46,8 @@
1171+@@ -57,6 +57,8 @@
1172 "OAFIID:GNOME_MixerApplet", _("Volume Control"));
1173 g_hash_table_insert (hash_table,
1174 "OAFIID:GNOME_KeyboardApplet", _("Keyboard Indicator"));
1175@@ -71,4 +10,4 @@
1176 + "OAFIID:GNOME_BattstatApplet", _("Battery Charge Monitor"));
1177 }
1178
1179- static gboolean already_running;
1180+ static void
1181
1182=== modified file 'debian/patches/87_deprecate_modemlights.patch'
1183--- debian/patches/87_deprecate_modemlights.patch 2010-03-29 10:01:09 +0000
1184+++ debian/patches/87_deprecate_modemlights.patch 2010-11-29 16:14:03 +0000
1185@@ -1,34 +1,8 @@
1186-Index: gnome-applets-2.30.0/null_applet/GNOME_ModemLights.server.in
1187-===================================================================
1188---- /dev/null 1970-01-01 00:00:00.000000000 +0000
1189-+++ gnome-applets-2.30.0/null_applet/GNOME_ModemLights.server.in 2010-03-29 12:00:10.201547164 +0200
1190-@@ -0,0 +1,21 @@
1191-+<oaf_info>
1192-+
1193-+<oaf_server iid="OAFIID:GNOME_ModemLightsApplet"
1194-+ type="factory"
1195-+ location="OAFIID:GNOME_NullApplet_Factory">
1196-+
1197-+ <oaf_attribute name="repo_ids" type="stringv">
1198-+ <item value="IDL:GNOME/Vertigo/PanelAppletShell:1.0"/>
1199-+ <item value="IDL:Bonobo/Control:1.0"/>
1200-+ <item value="IDL:Bonobo/Unknown:1.0"/>
1201-+ </oaf_attribute>
1202-+ <oaf_attribute name="name" type="string" _value="Modem Monitor (Deprecated)"/>
1203-+ <oaf_attribute name="description" type="string" _value="Activate and monitor a dial-up network connection"/>
1204-+ <oaf_attribute name="bugzilla:bugzilla" type="string" value="GNOME"/>
1205-+ <oaf_attribute name="bugzilla:product" type="string" value="gnome-applets"/>
1206-+ <oaf_attribute name="bugzilla:component" type="string" value="modemlights"/>
1207-+ <oaf_attribute name="bugzilla:other_binaries" type="string" value="modem_applet"/>
1208-+
1209-+</oaf_server>
1210-+
1211-+</oaf_info>
1212 Index: gnome-applets-2.30.0/null_applet/null_applet.c
1213 ===================================================================
1214 --- gnome-applets-2.30.0.orig/null_applet/null_applet.c 2010-03-29 11:59:59.000000000 +0200
1215 +++ gnome-applets-2.30.0/null_applet/null_applet.c 2010-03-29 12:00:46.173545772 +0200
1216-@@ -48,6 +48,8 @@
1217+@@ -59,6 +59,8 @@
1218 "OAFIID:GNOME_KeyboardApplet", _("Keyboard Indicator"));
1219 g_hash_table_insert (hash_table,
1220 "OAFIID:GNOME_BattstatApplet", _("Battery Charge Monitor"));
1221@@ -36,24 +10,4 @@
1222 + "OAFIID:GNOME_ModemLightsApplet", _("Modem Monitor"));
1223 }
1224
1225- static gboolean already_running;
1226-Index: gnome-applets-2.30.0/null_applet/Makefile.am
1227-===================================================================
1228---- gnome-applets-2.30.0.orig/null_applet/Makefile.am 2010-03-29 11:59:59.000000000 +0200
1229-+++ gnome-applets-2.30.0/null_applet/Makefile.am 2010-03-29 12:00:10.213548548 +0200
1230-@@ -24,6 +24,7 @@
1231- GNOME_NullApplet_Factory.server.in \
1232- GNOME_CDPlayerApplet.server.in \
1233- GNOME_MailcheckApplet_Factory.server.in \
1234-+ GNOME_ModemLights.server.in \
1235- GNOME_Panel_WirelessApplet.server.in \
1236- GNOME_KeyboardApplet.server.in \
1237- $(mixer_server_in) \
1238-@@ -43,6 +44,7 @@
1239- GNOME_NullApplet_Factory.server.in.in \
1240- GNOME_CDPlayerApplet.server.in \
1241- GNOME_MailcheckApplet_Factory.server.in \
1242-+ GNOME_ModemLights.server.in \
1243- GNOME_Panel_WirelessApplet.server.in \
1244- GNOME_MixerApplet.server.in \
1245- GNOME_KeyboardApplet.server.in \
1246+ static void
1247
1248=== modified file 'debian/patches/series'
1249--- debian/patches/series 2010-11-09 22:10:19 +0000
1250+++ debian/patches/series 2010-11-29 16:14:03 +0000
1251@@ -1,6 +1,7 @@
1252+01_no_more_deprecated.patch
1253 15_path-max.patch
1254 80_correct_minicommander_install.patch
1255-81_silent_applet_cleaning
1256+#81_silent_applet_cleaning
1257 86_deprecate_battstatus.patch
1258 87_deprecate_modemlights.patch
1259 88_hide_deprecated_mixer.patch

Subscribers

People subscribed via source and target branches

to all changes: