[Sugar-devel] [PATCH sugar 03/21] pep8 cleanup: fix number of blank lines
John Tierney
jtis4stx at hotmail.com
Sat Oct 16 18:37:42 EDT 2010
Hi Sascha,
jt4sugar or JT here..... I'm signed up on Sugar-Devel but only digest. I just got about 20 emails with
[Sugar-devel] [Patch...] since I'm only signed up as digest I believe something is out of kilter.
Just thought I would bring to your attention. Hope it helps!
Best!
John Tierney
> From: sascha-pgp at silbe.org
> To: sugar-devel at lists.sugarlabs.org
> Date: Sun, 17 Oct 2010 00:20:05 +0200
> Subject: [Sugar-devel] [PATCH sugar 03/21] pep8 cleanup: fix number of blank lines
>
> Signed-off-by: Sascha Silbe <sascha-pgp at silbe.org>
>
> diff --git a/extensions/cpsection/aboutcomputer/__init__.py b/extensions/cpsection/aboutcomputer/__init__.py
> index ceb515a..faf814d 100644
> --- a/extensions/cpsection/aboutcomputer/__init__.py
> +++ b/extensions/cpsection/aboutcomputer/__init__.py
> @@ -19,4 +19,3 @@ from gettext import gettext as _
> CLASS = 'AboutComputer'
> ICON = 'module-about_my_computer'
> TITLE = _('About my Computer')
> -
> diff --git a/extensions/cpsection/aboutcomputer/model.py b/extensions/cpsection/aboutcomputer/model.py
> index 77d3b86..b700a6b 100644
> --- a/extensions/cpsection/aboutcomputer/model.py
> +++ b/extensions/cpsection/aboutcomputer/model.py
> @@ -24,29 +24,35 @@ import errno
>
> from jarabe import config
>
> +
> _logger = logging.getLogger('ControlPanel - AboutComputer')
> _not_available = _('Not available')
>
> +
> def get_aboutcomputer():
> msg = 'Serial Number: %s \nBuild Number: %s \nFirmware Number: %s \n' \
> % (get_serial_number(), get_build_number(), get_firmware_number())
> return msg
>
> +
> def print_aboutcomputer():
> print get_aboutcomputer()
>
> +
> def get_serial_number():
> serial_no = _read_file('/ofw/serial-number')
> if serial_no is None:
> serial_no = _not_available
> return serial_no
>
> +
> def print_serial_number():
> serial_no = get_serial_number()
> if serial_no is None:
> serial_no = _not_available
> print serial_no
>
> +
> def get_build_number():
> build_no = _read_file('/boot/olpc_build')
>
> @@ -68,9 +74,11 @@ def get_build_number():
>
> return build_no
>
> +
> def print_build_number():
> print get_build_number()
>
> +
> def get_firmware_number():
> firmware_no = _read_file('/ofw/openprom/model')
> if firmware_no is None:
> @@ -81,9 +89,11 @@ def get_firmware_number():
> firmware_no = firmware_no[1]
> return firmware_no
>
> +
> def print_firmware_number():
> print get_firmware_number()
>
> +
> def get_wireless_firmware():
> try:
> info = subprocess.Popen(["/usr/sbin/ethtool", "-i", "eth0"],
> @@ -97,9 +107,11 @@ def get_wireless_firmware():
> wireless_firmware = _not_available
> return wireless_firmware
>
> +
> def print_wireless_firmware():
> print get_wireless_firmware()
>
> +
> def _read_file(path):
> if os.access(path, os.R_OK) == 0:
> return None
> @@ -114,6 +126,7 @@ def _read_file(path):
> _logger.debug('No information in file or directory: %s', path)
> return None
>
> +
> def get_license():
> license_file = os.path.join(config.data_path, 'GPLv2')
> lang = os.environ['LANG']
> diff --git a/extensions/cpsection/aboutcomputer/view.py b/extensions/cpsection/aboutcomputer/view.py
> index 39bacfb..68545fd 100644
> --- a/extensions/cpsection/aboutcomputer/view.py
> +++ b/extensions/cpsection/aboutcomputer/view.py
> @@ -26,6 +26,7 @@ from sugar.graphics import style
> from jarabe import config
> from jarabe.controlpanel.sectionview import SectionView
>
> +
> class AboutComputer(SectionView):
> def __init__(self, model, alerts=None):
> SectionView.__init__(self)
> diff --git a/extensions/cpsection/aboutme/__init__.py b/extensions/cpsection/aboutme/__init__.py
> index 98843e1..7ded428 100644
> --- a/extensions/cpsection/aboutme/__init__.py
> +++ b/extensions/cpsection/aboutme/__init__.py
> @@ -24,5 +24,3 @@ ICON = 'module-about_me'
> TITLE = _('About Me')
> client = gconf.client_get_default()
> COLOR = XoColor(client.get_string('/desktop/sugar/user/color'))
> -
> -
> diff --git a/extensions/cpsection/aboutme/model.py b/extensions/cpsection/aboutme/model.py
> index 078fff4..fd7261c 100644
> --- a/extensions/cpsection/aboutme/model.py
> +++ b/extensions/cpsection/aboutme/model.py
> @@ -18,6 +18,7 @@
> from gettext import gettext as _
> import gconf
>
> +
> _COLORS = {'red': {'dark':'#b20008', 'medium':'#e6000a', 'light':'#ffadce'},
> 'orange': {'dark':'#9a5200', 'medium':'#c97e00', 'light':'#ffc169'},
> 'yellow': {'dark':'#807500', 'medium':'#be9e00', 'light':'#fffa00'},
> @@ -28,13 +29,16 @@ _COLORS = {'red': {'dark':'#b20008', 'medium':'#e6000a', 'light':'#ffadce'},
>
> _MODIFIERS = ('dark', 'medium', 'light')
>
> +
> def get_nick():
> client = gconf.client_get_default()
> return client.get_string("/desktop/sugar/user/nick")
>
> +
> def print_nick():
> print get_nick()
>
> +
> def set_nick(nick):
> """Set the nickname.
> nick : e.g. 'walter'
> @@ -47,10 +51,12 @@ def set_nick(nick):
> client.set_string("/desktop/sugar/user/nick", nick)
> return 1
>
> +
> def get_color():
> client = gconf.client_get_default()
> return client.get_string("/desktop/sugar/user/color")
>
> +
> def print_color():
> color_string = get_color()
> tmp = color_string.split(',')
> @@ -74,6 +80,7 @@ def print_color():
> else:
> print _('fill: %s') % (tmp[1])
>
> +
> def set_color(stroke, fill, stroke_modifier='medium', fill_modifier='medium'):
> """Set the system color by setting a fill and stroke color.
> fill : [red, orange, yellow, blue, green, purple]
> @@ -102,10 +109,12 @@ def set_color(stroke, fill, stroke_modifier='medium', fill_modifier='medium'):
> client.set_string("/desktop/sugar/user/color", color)
> return 1
>
> +
> def get_color_xo():
> client = gconf.client_get_default()
> return client.get_string("/desktop/sugar/user/color")
>
> +
> def set_color_xo(color):
> """Set a color with an XoColor
> This method is used by the graphical user interface
> diff --git a/extensions/cpsection/datetime/model.py b/extensions/cpsection/datetime/model.py
> index a928b41..39d5e5e 100644
> --- a/extensions/cpsection/datetime/model.py
> +++ b/extensions/cpsection/datetime/model.py
> @@ -26,6 +26,7 @@ import gconf
>
> _zone_tab = '/usr/share/zoneinfo/zone.tab'
>
> +
> def _initialize():
> '''Initialize the docstring of the set function'''
> if set_timezone.__doc__ is None:
> @@ -36,6 +37,7 @@ def _initialize():
> for timezone in timezones:
> set_timezone.__doc__ += timezone + '\n'
>
> +
> def read_all_timezones(fn=_zone_tab):
> fd = open (fn, 'r')
> lines = fd.readlines()
> @@ -67,13 +69,16 @@ def read_all_timezones(fn=_zone_tab):
> timezones.append(tz)
> return timezones
>
> +
> def get_timezone():
> client = gconf.client_get_default()
> return client.get_string('/desktop/sugar/date/timezone')
>
> +
> def print_timezone():
> print get_timezone()
>
> +
> def set_timezone(timezone):
> """Set the system timezone
> timezone : e.g. 'America/Los_Angeles'
> @@ -89,4 +94,3 @@ def set_timezone(timezone):
>
> # inilialize the docstrings for the timezone
> _initialize()
> -
> diff --git a/extensions/cpsection/datetime/view.py b/extensions/cpsection/datetime/view.py
> index a2c4c78..72fdad1 100644
> --- a/extensions/cpsection/datetime/view.py
> +++ b/extensions/cpsection/datetime/view.py
> @@ -24,6 +24,7 @@ from sugar.graphics import iconentry
> from jarabe.controlpanel.sectionview import SectionView
> from jarabe.controlpanel.inlinealert import InlineAlert
>
> +
> class TimeZone(SectionView):
> def __init__(self, model, alerts):
> SectionView.__init__(self)
> diff --git a/extensions/cpsection/frame/model.py b/extensions/cpsection/frame/model.py
> index 765d183..de2da5e 100644
> --- a/extensions/cpsection/frame/model.py
> +++ b/extensions/cpsection/frame/model.py
> @@ -18,14 +18,17 @@
> from gettext import gettext as _
> import gconf
>
> +
> def get_corner_delay():
> client = gconf.client_get_default()
> corner_delay = client.get_int('/desktop/sugar/frame/corner_delay')
> return corner_delay
>
> +
> def print_corner_delay():
> print get_corner_delay()
>
> +
> def set_corner_delay(delay):
> """Set a delay for the activation of the frame using hot corners.
> instantaneous: 0 (0 milliseconds)
> @@ -40,14 +43,17 @@ def set_corner_delay(delay):
> client.set_int('/desktop/sugar/frame/corner_delay', int(delay))
> return 0
>
> +
> def get_edge_delay():
> client = gconf.client_get_default()
> edge_delay = client.get_int('/desktop/sugar/frame/edge_delay')
> return edge_delay
>
> +
> def print_edge_delay():
> print get_edge_delay()
>
> +
> def set_edge_delay(delay):
> """Set a delay for the activation of the frame using warm edges.
> instantaneous: 0 (0 milliseconds)
> diff --git a/extensions/cpsection/frame/view.py b/extensions/cpsection/frame/view.py
> index d9e1a6a..fb2b6b7 100644
> --- a/extensions/cpsection/frame/view.py
> +++ b/extensions/cpsection/frame/view.py
> @@ -23,11 +23,13 @@ from sugar.graphics import style
> from jarabe.controlpanel.sectionview import SectionView
> from jarabe.controlpanel.inlinealert import InlineAlert
>
> +
> _never = _('never')
> _instantaneous = _('instantaneous')
> _seconds_label = _('%s seconds')
> _MAX_DELAY = 1000
>
> +
> class Frame(SectionView):
> def __init__(self, model, alerts):
> SectionView.__init__(self)
> diff --git a/extensions/cpsection/keyboard/__init__.py b/extensions/cpsection/keyboard/__init__.py
> index 568e7a5..065086c 100644
> --- a/extensions/cpsection/keyboard/__init__.py
> +++ b/extensions/cpsection/keyboard/__init__.py
> @@ -19,4 +19,3 @@ from gettext import gettext as _
> CLASS = 'Keyboard'
> ICON = 'module-keyboard'
> TITLE = _('Keyboard')
> -
> diff --git a/extensions/cpsection/keyboard/model.py b/extensions/cpsection/keyboard/model.py
> index 4c44740..b7186e2 100644
> --- a/extensions/cpsection/keyboard/model.py
> +++ b/extensions/cpsection/keyboard/model.py
> @@ -26,6 +26,7 @@ _LAYOUTS_KEY = '/desktop/sugar/peripherals/keyboard/layouts'
> _OPTIONS_KEY = '/desktop/sugar/peripherals/keyboard/options'
> _MODEL_KEY = '/desktop/sugar/peripherals/keyboard/model'
>
> +
> class KeyboardManager(object):
> def __init__(self, display):
> self._engine = xklavier.Engine(display)
> @@ -166,4 +167,3 @@ class KeyboardManager(object):
> self._configrec.set_layouts(layouts_list)
> self._configrec.set_variants(variants_list)
> self._configrec.activate(self._engine)
> -
> diff --git a/extensions/cpsection/keyboard/view.py b/extensions/cpsection/keyboard/view.py
> index bcc98d8..51062fd 100644
> --- a/extensions/cpsection/keyboard/view.py
> +++ b/extensions/cpsection/keyboard/view.py
> @@ -26,6 +26,7 @@ from sugar.graphics.icon import Icon
>
> from jarabe.controlpanel.sectionview import SectionView
>
> +
> CLASS = 'Language'
> ICON = 'module-keyboard'
> TITLE = _('Keyboard')
> @@ -37,6 +38,7 @@ _APPLY_TIMEOUT = 500
> # once python-xklavier has been packaged for all major distributions
> # For more information, see: http://dev.sugarlabs.org/ticket/407
>
> +
> class LayoutCombo(gtk.HBox):
>
> """
> @@ -306,7 +308,6 @@ class Keyboard(SectionView):
> except Exception:
> logging.exception('Could not set new keyboard group switch option')
>
> -
> return False
>
> def _setup_layouts(self):
> @@ -417,10 +418,8 @@ class Keyboard(SectionView):
>
> return False
>
> -
> def undo(self):
> """Reverts back to the original keyboard configuration"""
> self._keyboard_manager.set_model(self._kmodel)
> self._keyboard_manager.set_layouts(self._klayouts)
> self._keyboard_manager.set_option_group(self._group_switch_option)
> -
> diff --git a/extensions/cpsection/language/__init__.py b/extensions/cpsection/language/__init__.py
> index a8f9f08..c93b7d1 100644
> --- a/extensions/cpsection/language/__init__.py
> +++ b/extensions/cpsection/language/__init__.py
> @@ -19,4 +19,3 @@ from gettext import gettext as _
> CLASS = 'Language'
> ICON = 'module-language'
> TITLE = _('Language')
> -
> diff --git a/extensions/cpsection/language/model.py b/extensions/cpsection/language/model.py
> index bd61ed1..c6f4847 100644
> --- a/extensions/cpsection/language/model.py
> +++ b/extensions/cpsection/language/model.py
> @@ -25,9 +25,11 @@ import locale
> from gettext import gettext as _
> import subprocess
>
> +
> _default_lang = '%s.%s' % locale.getdefaultlocale()
> _standard_msg = _("Could not access ~/.i18n. Create standard settings.")
>
> +
> def read_all_languages():
> fdp = subprocess.Popen(['locale', '-av'], stdout=subprocess.PIPE)
> lines = fdp.stdout.read().split('\n')
> @@ -52,6 +54,7 @@ def read_all_languages():
> locales.sort()
> return locales
>
> +
> def _initialize():
> if set_languages.__doc__ is None:
> # when running under 'python -OO', all __doc__ fields are None,
> @@ -63,6 +66,7 @@ def _initialize():
> set_languages.__doc__ += '%s \n' % (lang[0].replace(' ', '_') + '/' +
> lang[1].replace(' ', '_'))
>
> +
> def _write_i18n(langs):
> colon = ':'
> langstr = colon.join(langs)
> @@ -79,6 +83,7 @@ def _write_i18n(langs):
> fd.write('LANGUAGE="%s"\n' % langstr)
> fd.close()
>
> +
> def get_languages():
> path = os.path.join(os.environ.get("HOME"), '.i18n')
> if not os.access(path, os.R_OK):
> @@ -109,6 +114,7 @@ def get_languages():
> else:
> return langlist
>
> +
> def print_languages():
> codes = get_languages()
>
> @@ -124,6 +130,7 @@ def print_languages():
> if not found_lang:
> print (_("Language for code=%s could not be determined.") % code)
>
> +
> def set_languages(languages):
> """Set the system language.
> languages :
> @@ -146,6 +153,6 @@ def set_languages(languages):
> else:
> _write_i18n(languages)
>
> +
> # inilialize the docstrings for the language
> _initialize()
> -
> diff --git a/extensions/cpsection/language/view.py b/extensions/cpsection/language/view.py
> index 4ce7196..3a1f1a5 100644
> --- a/extensions/cpsection/language/view.py
> +++ b/extensions/cpsection/language/view.py
> @@ -32,6 +32,7 @@ CLASS = 'Language'
> ICON = 'module-language'
> TITLE = gettext.gettext('Language')
>
> +
> class Language(SectionView):
> def __init__(self, model, alerts):
> SectionView.__init__(self)
> @@ -99,7 +100,6 @@ class Language(SectionView):
> self._attach_to_table(label, 0, 1, padding=1)
> label.show()
>
> -
> store = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING)
> for language, country, code in self._available_locales:
> description = '%s (%s)' % (_translate_language(language), \
> @@ -271,7 +271,6 @@ class Language(SectionView):
> else:
> remove_button.props.visible = True
>
> -
> def __lang_timeout_cb(self, codes):
> self._lang_sid = 0
> self._model.set_languages(codes)
> diff --git a/extensions/cpsection/modemconfiguration/__init__.py b/extensions/cpsection/modemconfiguration/__init__.py
> index 8a219dc..61f5904 100644
> --- a/extensions/cpsection/modemconfiguration/__init__.py
> +++ b/extensions/cpsection/modemconfiguration/__init__.py
> @@ -19,4 +19,3 @@ from gettext import gettext as _
> CLASS = 'ModemConfiguration'
> ICON = 'module-modemconfiguration'
> TITLE = _('Modem Configuration')
> -
> diff --git a/extensions/cpsection/modemconfiguration/model.py b/extensions/cpsection/modemconfiguration/model.py
> index 2545ce1..1e83c44 100755
> --- a/extensions/cpsection/modemconfiguration/model.py
> +++ b/extensions/cpsection/modemconfiguration/model.py
> @@ -20,51 +20,62 @@ from jarabe.model.network import GSM_USERNAME_PATH, GSM_PASSWORD_PATH, \
> GSM_NUMBER_PATH, GSM_APN_PATH, GSM_PIN_PATH, \
> GSM_PUK_PATH
>
> +
> def get_username():
> client = gconf.client_get_default()
> return client.get_string(GSM_USERNAME_PATH) or ''
>
> +
> def get_password():
> client = gconf.client_get_default()
> return client.get_string(GSM_PASSWORD_PATH) or ''
>
> +
> def get_number():
> client = gconf.client_get_default()
> return client.get_string(GSM_NUMBER_PATH) or ''
>
> +
> def get_apn():
> client = gconf.client_get_default()
> return client.get_string(GSM_APN_PATH) or ''
>
> +
> def get_pin():
> client = gconf.client_get_default()
> return client.get_string(GSM_PIN_PATH) or ''
>
> +
> def get_puk():
> client = gconf.client_get_default()
> return client.get_string(GSM_PUK_PATH) or ''
>
> +
> def set_username(username):
> client = gconf.client_get_default()
> client.set_string(GSM_USERNAME_PATH, username)
>
> +
> def set_password(password):
> client = gconf.client_get_default()
> client.set_string(GSM_PASSWORD_PATH, password)
>
> +
> def set_number(number):
> client = gconf.client_get_default()
> client.set_string(GSM_NUMBER_PATH, number)
>
> +
> def set_apn(apn):
> client = gconf.client_get_default()
> client.set_string(GSM_APN_PATH, apn)
>
> +
> def set_pin(pin):
> client = gconf.client_get_default()
> client.set_string(GSM_PIN_PATH, pin)
>
> +
> def set_puk(puk):
> client = gconf.client_get_default()
> client.set_string(GSM_PUK_PATH, puk)
> -
> diff --git a/extensions/cpsection/modemconfiguration/view.py b/extensions/cpsection/modemconfiguration/view.py
> index af8f332..11396d7 100644
> --- a/extensions/cpsection/modemconfiguration/view.py
> +++ b/extensions/cpsection/modemconfiguration/view.py
> @@ -25,8 +25,10 @@ from sugar.graphics import style
>
> from jarabe.controlpanel.sectionview import SectionView
>
> +
> APPLY_TIMEOUT = 1000
>
> +
> class EntryWithLabel(gtk.HBox):
> __gtype_name__ = "SugarEntryWithLabel"
>
> @@ -86,6 +88,7 @@ class EntryWithLabel(gtk.HBox):
> return self._is_valid
> is_valid = gobject.property(type=bool, getter=_get_is_valid, default=True)
>
> +
> class UsernameEntry(EntryWithLabel):
> def __init__(self, model):
> EntryWithLabel.__init__(self, _('Username:'))
> @@ -97,6 +100,7 @@ class UsernameEntry(EntryWithLabel):
> def set_value(self, username):
> self._model.set_username(username)
>
> +
> class PasswordEntry(EntryWithLabel):
> def __init__(self, model):
> EntryWithLabel.__init__(self, _('Password:'))
> @@ -108,6 +112,7 @@ class PasswordEntry(EntryWithLabel):
> def set_value(self, password):
> self._model.set_password(password)
>
> +
> class NumberEntry(EntryWithLabel):
> def __init__(self, model):
> EntryWithLabel.__init__(self, _('Number:'))
> @@ -119,6 +124,7 @@ class NumberEntry(EntryWithLabel):
> def set_value(self, number):
> self._model.set_number(number)
>
> +
> class ApnEntry(EntryWithLabel):
> def __init__(self, model):
> EntryWithLabel.__init__(self, _('Access Point Name (APN):'))
> @@ -130,6 +136,7 @@ class ApnEntry(EntryWithLabel):
> def set_value(self, apn):
> self._model.set_apn(apn)
>
> +
> class PinEntry(EntryWithLabel):
> def __init__(self, model):
> EntryWithLabel.__init__(self, _('Personal Identity Number (PIN):'))
> @@ -141,6 +148,7 @@ class PinEntry(EntryWithLabel):
> def set_value(self, pin):
> self._model.set_pin(pin)
>
> +
> class PukEntry(EntryWithLabel):
> def __init__(self, model):
> EntryWithLabel.__init__(self, _('Personal Unblocking Key (PUK):'))
> @@ -247,4 +255,3 @@ class ModemConfiguration(SectionView):
> if entry.is_valid:
> self.needs_restart = True
> self._validate()
> -
> diff --git a/extensions/cpsection/network/__init__.py b/extensions/cpsection/network/__init__.py
> index 8fea274..86546f7 100644
> --- a/extensions/cpsection/network/__init__.py
> +++ b/extensions/cpsection/network/__init__.py
> @@ -20,6 +20,3 @@ CLASS = 'Network'
> ICON = 'module-network'
> TITLE = _('Network')
> KEYWORDS = ['network', 'jabber', 'radio', 'server']
> -
> -
> -
> diff --git a/extensions/cpsection/network/model.py b/extensions/cpsection/network/model.py
> index aad0607..c1e7229 100644
> --- a/extensions/cpsection/network/model.py
> +++ b/extensions/cpsection/network/model.py
> @@ -25,19 +25,24 @@ _NM_IFACE = 'org.freedesktop.NetworkManager'
>
> KEYWORDS = ['network', 'jabber', 'radio', 'server']
>
> +
> class ReadError(Exception):
> def __init__(self, value):
> self.value = value
> +
> def __str__(self):
> return repr(self.value)
>
> +
> def get_jabber():
> client = gconf.client_get_default()
> return client.get_string('/desktop/sugar/collaboration/jabber_server')
>
> +
> def print_jabber():
> print get_jabber()
>
> +
> def set_jabber(server):
> """Set the jabber server
> server : e.g. 'olpc.collabora.co.uk'
> @@ -47,6 +52,7 @@ def set_jabber(server):
>
> return 0
>
> +
> def get_radio():
> try:
> bus = dbus.SystemBus()
> @@ -61,9 +67,11 @@ def get_radio():
> else:
> raise ReadError(_('State is unknown.'))
>
> +
> def print_radio():
> print ('off', 'on')[get_radio()]
>
> +
> def set_radio(state):
> """Turn Radio 'on' or 'off'
> state : 'on/off'
> @@ -89,6 +97,7 @@ def set_radio(state):
>
> return 0
>
> +
> def clear_registration():
> """Clear the registration with the schoolserver
> """
> @@ -96,19 +105,23 @@ def clear_registration():
> client.set_string('/desktop/sugar/backup_url', '')
> return 1
>
> +
> def clear_networks():
> """Clear saved passwords and network configurations.
> """
> pass
>
> +
> def get_publish_information():
> client = gconf.client_get_default()
> publish = client.get_bool('/desktop/sugar/collaboration/publish_gadget')
> return publish
>
> +
> def print_publish_information():
> print get_publish_information()
>
> +
> def set_publish_information(value):
> """ If set to true, Sugar will make you searchable for
> the other users of the Jabber server.
> diff --git a/extensions/cpsection/network/view.py b/extensions/cpsection/network/view.py
> index a331bbd..447a51d 100644
> --- a/extensions/cpsection/network/view.py
> +++ b/extensions/cpsection/network/view.py
> @@ -23,12 +23,14 @@ from sugar.graphics import style
> from jarabe.controlpanel.sectionview import SectionView
> from jarabe.controlpanel.inlinealert import InlineAlert
>
> +
> CLASS = 'Network'
> ICON = 'module-network'
> TITLE = _('Network')
>
> _APPLY_TIMEOUT = 3000
>
> +
> class Network(SectionView):
> def __init__(self, model, alerts):
> SectionView.__init__(self)
> diff --git a/extensions/cpsection/power/__init__.py b/extensions/cpsection/power/__init__.py
> index 8b2e85f..35f7efd 100644
> --- a/extensions/cpsection/power/__init__.py
> +++ b/extensions/cpsection/power/__init__.py
> @@ -20,4 +20,3 @@ CLASS = 'Power'
> ICON = 'module-power'
> TITLE = _('Power')
> KEYWORDS = ['automatic', 'extreme', 'power', 'suspend', 'battery']
> -
> diff --git a/extensions/cpsection/power/model.py b/extensions/cpsection/power/model.py
> index 6c03ca8..ffbb5a2 100644
> --- a/extensions/cpsection/power/model.py
> +++ b/extensions/cpsection/power/model.py
> @@ -35,14 +35,17 @@ _logger = logging.getLogger('ControlPanel - Power')
> class ReadError(Exception):
> def __init__(self, value):
> self.value = value
> +
> def __str__(self):
> return repr(self.value)
>
> +
> def using_powerd():
> # directory exists if powerd running, and it's recent
> # enough to be controllable.
> return os.access(POWERD_FLAG_DIR, os.W_OK)
>
> +
> def get_automatic_pm():
> if using_powerd():
> return not os.access(POWERD_INHIBIT_FLAG, os.R_OK)
> @@ -51,9 +54,11 @@ def get_automatic_pm():
> client = gconf.client_get_default()
> return client.get_bool('/desktop/sugar/power/automatic')
>
> +
> def print_automatic_pm():
> print ('off', 'on')[get_automatic_pm()]
>
> +
> def set_automatic_pm(enabled):
> """Automatic suspends on/off."""
>
> @@ -88,13 +93,16 @@ def set_automatic_pm(enabled):
> client.set_bool('/desktop/sugar/power/automatic', enabled)
> return
>
> +
> def get_extreme_pm():
> client = gconf.client_get_default()
> return client.get_bool('/desktop/sugar/power/extreme')
>
> +
> def print_extreme_pm():
> print ('off', 'on')[get_extreme_pm()]
>
> +
> def set_extreme_pm(enabled):
> """Extreme power management on/off."""
>
> diff --git a/extensions/cpsection/power/view.py b/extensions/cpsection/power/view.py
> index 8f1ed56..fd89efa 100644
> --- a/extensions/cpsection/power/view.py
> +++ b/extensions/cpsection/power/view.py
> @@ -22,6 +22,7 @@ from sugar.graphics import style
> from jarabe.controlpanel.sectionview import SectionView
> from jarabe.controlpanel.inlinealert import InlineAlert
>
> +
> class Power(SectionView):
> def __init__(self, model, alerts):
> SectionView.__init__(self)
> diff --git a/extensions/cpsection/updater/model.py b/extensions/cpsection/updater/model.py
> index 4cb90ed..7db49fe 100755
> --- a/extensions/cpsection/updater/model.py
> +++ b/extensions/cpsection/updater/model.py
> @@ -216,6 +216,7 @@ class UpdateModel(gobject.GObject):
> self._bundles_to_update = None
> self._cancelling = False
>
> +
> class BundleUpdate(object):
>
> def __init__(self, bundle, version, link, size):
> diff --git a/extensions/cpsection/updater/view.py b/extensions/cpsection/updater/view.py
> index 31a5737..2bec3f0 100644
> --- a/extensions/cpsection/updater/view.py
> +++ b/extensions/cpsection/updater/view.py
> @@ -179,6 +179,7 @@ class ActivityUpdater(SectionView):
> def undo(self):
> self._model.cancel()
>
> +
> class ProgressPane(gtk.VBox):
> '''Container which replaces the `ActivityPane` during refresh or
> install.'''
> diff --git a/extensions/deviceicon/battery.py b/extensions/deviceicon/battery.py
> index 8b1bac8..c1c920b 100644
> --- a/extensions/deviceicon/battery.py
> +++ b/extensions/deviceicon/battery.py
> @@ -30,6 +30,7 @@ from sugar.graphics.xocolor import XoColor
>
> from jarabe.frame.frameinvoker import FrameWidgetInvoker
>
> +
> _ICON_NAME = 'battery'
>
> _STATUS_CHARGING = 0
> @@ -42,6 +43,7 @@ _CHARGING_PROP = 'battery.rechargeable.is_charging'
> _DISCHARGING_PROP = 'battery.rechargeable.is_discharging'
> _PRESENT_PROP = 'battery.present'
>
> +
> class DeviceView(TrayIcon):
>
> FRAME_POSITION_RELATIVE = 102
> @@ -101,6 +103,7 @@ class DeviceView(TrayIcon):
> def _battery_status_changed_cb(self, pspec, param):
> self._update_info()
>
> +
> class BatteryPalette(Palette):
>
> def __init__(self, primary_text):
> @@ -155,6 +158,7 @@ class BatteryPalette(Palette):
> self.props.secondary_text = secondary_text
> self._status_label.set_text(status_text)
>
> +
> class DeviceModel(gobject.GObject):
> __gproperties__ = {
> 'level' : (int, None, None, 0, 100, 0,
> @@ -241,6 +245,7 @@ class DeviceModel(gobject.GObject):
> self._present = self._get_present()
> self.notify('present')
>
> +
> def setup(tray):
> bus = dbus.Bus(dbus.Bus.TYPE_SYSTEM)
> proxy = bus.get_object('org.freedesktop.Hal',
> diff --git a/extensions/deviceicon/network.py b/extensions/deviceicon/network.py
> index 447cad5..55e334f 100644
> --- a/extensions/deviceicon/network.py
> +++ b/extensions/deviceicon/network.py
> @@ -49,6 +49,7 @@ from jarabe.model.network import IP4Config
> from jarabe.frame.frameinvoker import FrameWidgetInvoker
> from jarabe.view.pulsingicon import PulsingIcon
>
> +
> IP_ADDRESS_TEXT_TEMPLATE = _("IP address: %s")
>
> _NM_SERVICE = 'org.freedesktop.NetworkManager'
> @@ -199,6 +200,7 @@ class WiredPalette(Palette):
> ip_address_text = ""
> self._ip_address_label.set_text(ip_address_text)
>
> +
> class GsmPalette(Palette):
> __gtype_name__ = 'SugarGsmPalette'
>
> @@ -749,6 +751,7 @@ class GsmDeviceView(TrayIcon):
> signal_name='PppStats',
> path=self._device.object_path,
> dbus_interface=_NM_SERIAL_IFACE)
> +
> def create_palette(self):
> palette = GsmPalette()
>
> @@ -1001,6 +1004,7 @@ class WiredDeviceObserver(object):
> del self._device_view
> self._device_view = None
>
> +
> class GsmDeviceObserver(object):
> def __init__(self, device, tray):
> self._device = device
> @@ -1015,6 +1019,7 @@ class GsmDeviceObserver(object):
> self._tray.remove_device(self._device_view)
> self._device_view = None
>
> +
> class NetworkManagerObserver(object):
> def __init__(self, tray):
> self._bus = dbus.SystemBus()
> @@ -1073,5 +1078,6 @@ class NetworkManagerObserver(object):
> device.disconnect()
> del self._devices[device_op]
>
> +
> def setup(tray):
> device_observer = NetworkManagerObserver(tray)
> diff --git a/extensions/deviceicon/speaker.py b/extensions/deviceicon/speaker.py
> index cf06e01..ae84036 100644
> --- a/extensions/deviceicon/speaker.py
> +++ b/extensions/deviceicon/speaker.py
> @@ -32,6 +32,7 @@ from jarabe.model import sound
>
> _ICON_NAME = 'speaker'
>
> +
> class DeviceView(TrayIcon):
>
> FRAME_POSITION_RELATIVE = 103
> @@ -86,6 +87,7 @@ class DeviceView(TrayIcon):
> def __speaker_status_changed_cb(self, pspec_, param_):
> self._update_info()
>
> +
> class SpeakerPalette(Palette):
>
> def __init__(self, primary_text, model):
> @@ -167,6 +169,7 @@ class SpeakerPalette(Palette):
> self._update_level()
> self._update_muted()
>
> +
> class DeviceModel(gobject.GObject):
> __gproperties__ = {
> 'level' : (int, None, None, 0, 100, 0, gobject.PARAM_READWRITE),
> @@ -212,5 +215,6 @@ class DeviceModel(gobject.GObject):
> elif pspec.name == "muted":
> self._set_muted(value)
>
> +
> def setup(tray):
> tray.add_device(DeviceView())
> diff --git a/extensions/deviceicon/volume.py b/extensions/deviceicon/volume.py
> index e7f62a2..ea2377d 100644
> --- a/extensions/deviceicon/volume.py
> +++ b/extensions/deviceicon/volume.py
> @@ -28,8 +28,10 @@ from jarabe.journal import journalactivity
> from jarabe.view.palettes import VolumePalette
> from jarabe.frame.frameinvoker import FrameWidgetInvoker
>
> +
> _icons = {}
>
> +
> class DeviceView(TrayIcon):
>
> FRAME_POSITION_RELATIVE = 500
> @@ -70,9 +72,11 @@ class DeviceView(TrayIcon):
> journal.reveal()
> return True
>
> +
> def setup(tray):
> gobject.idle_add(_setup_volumes, tray)
>
> +
> def _setup_volumes(tray):
> volume_monitor = gio.volume_monitor_get()
>
> @@ -86,9 +90,11 @@ def _setup_volumes(tray):
> volume_monitor.connect('mount-added', _mount_added_cb, tray)
> volume_monitor.connect('mount-removed', _mount_removed_cb, tray)
>
> +
> def _volume_added_cb(volume_monitor, volume, tray):
> _mount(volume, tray)
>
> +
> def _mount(volume, tray):
> # Follow Nautilus behaviour here
> # since it has the same issue with removable device
> @@ -102,20 +108,23 @@ def _mount(volume, tray):
> #TODO: pass None as mount_operation, or better, SugarMountOperation
> volume.mount(gtk.MountOperation(tray.get_toplevel()), _mount_cb)
>
> +
> def _mount_cb(volume, result):
> logging.debug('_mount_cb %r %r', volume, result)
> volume.mount_finish(result)
>
> +
> def _mount_added_cb(volume_monitor, mount, tray):
> _add_device(mount, tray)
>
> +
> def _mount_removed_cb(volume_monitor, mount, tray):
> icon = _icons[mount]
> tray.remove_device(icon)
> del _icons[mount]
>
> +
> def _add_device(mount, tray):
> icon = DeviceView(mount)
> _icons[mount] = icon
> tray.add_device(icon)
> -
> diff --git a/extensions/globalkey/screenshot.py b/extensions/globalkey/screenshot.py
> index 8b4d4c2..b62806f 100644
> --- a/extensions/globalkey/screenshot.py
> +++ b/extensions/globalkey/screenshot.py
> @@ -31,6 +31,7 @@ from jarabe.model import shell
>
> BOUND_KEYS = ['<alt>1', 'Print']
>
> +
> def handle_key_press(key):
> tmp_dir = os.path.join(env.get_profile_path(), 'data')
> fd, file_path = tempfile.mkstemp(dir=tmp_dir)
> @@ -87,14 +88,15 @@ def handle_key_press(key):
> jobject.destroy()
> del jobject
>
> +
> def _get_preview_data(screenshot):
> preview = screenshot.scale_simple(style.zoom(300), style.zoom(225),
> gtk.gdk.INTERP_BILINEAR)
> preview_data = []
> +
> def save_func(buf, data):
> data.append(buf)
>
> preview.save_to_callback(save_func, 'png', user_data=preview_data)
>
> return dbus.ByteArray(''.join(preview_data))
> -
> diff --git a/extensions/globalkey/viewsource.py b/extensions/globalkey/viewsource.py
> index df3cd9e..96e7c6b 100644
> --- a/extensions/globalkey/viewsource.py
> +++ b/extensions/globalkey/viewsource.py
> @@ -18,8 +18,10 @@
> from jarabe.view.viewsource import setup_view_source
> from jarabe.model import shell
>
> +
> BOUND_KEYS = ['0xEC', '<alt><shift>v']
>
> +
> def handle_key_press(key):
> shell_model = shell.get_model()
> activity = shell_model.get_active_activity()
> diff --git a/src/jarabe/__init__.py b/src/jarabe/__init__.py
> index 41b4b1c..ed2f639 100644
> --- a/src/jarabe/__init__.py
> +++ b/src/jarabe/__init__.py
> @@ -23,4 +23,3 @@ refer to a command-line "shell" interface.
> # You should have received a copy of the GNU General Public License
> # along with this program; if not, write to the Free Software
> # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
> -
> diff --git a/src/jarabe/controlpanel/__init__.py b/src/jarabe/controlpanel/__init__.py
> index a9dd95a..85f6a24 100644
> --- a/src/jarabe/controlpanel/__init__.py
> +++ b/src/jarabe/controlpanel/__init__.py
> @@ -13,4 +13,3 @@
> # You should have received a copy of the GNU General Public License
> # along with this program; if not, write to the Free Software
> # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
> -
> diff --git a/src/jarabe/controlpanel/cmd.py b/src/jarabe/controlpanel/cmd.py
> index 7144b33..6d5f127 100644
> --- a/src/jarabe/controlpanel/cmd.py
> +++ b/src/jarabe/controlpanel/cmd.py
> @@ -23,6 +23,7 @@ import logging
>
> from jarabe import config
>
> +
> _RESTART = 1
>
> _same_option_warning = _("sugar-control-panel: WARNING, found more than"
> @@ -30,6 +31,7 @@ _same_option_warning = _("sugar-control-panel: WARNING, found more than"
> _no_option_error = _("sugar-control-panel: key=%s not an available option")
> _general_error = _("sugar-control-panel: %s")
>
> +
> def cmd_help():
> '''Print the help to the screen'''
> # TRANS: Translators, there's a empty line at the end of this string,
> @@ -45,11 +47,13 @@ def cmd_help():
> -c key clear the current value for the key \n\
> ')
>
> +
> def note_restart():
> '''Instructions how to restart sugar'''
> print _('To apply your changes you have to restart sugar.\n' +
> 'Hit ctrl+alt+erase on the keyboard to trigger a restart.')
>
> +
> def load_modules():
> '''Build a list of pointers to available modules and import them.
> '''
> @@ -72,6 +76,7 @@ def load_modules():
>
> return modules
>
> +
> def main():
> try:
> options, args = getopt.getopt(sys.argv[1:], "h:s:g:c:l", [])
> diff --git a/src/jarabe/controlpanel/gui.py b/src/jarabe/controlpanel/gui.py
> index 51d9820..4e2cbd1 100644
> --- a/src/jarabe/controlpanel/gui.py
> +++ b/src/jarabe/controlpanel/gui.py
> @@ -32,9 +32,11 @@ from jarabe.controlpanel.toolbar import MainToolbar
> from jarabe.controlpanel.toolbar import SectionToolbar
> from jarabe import config
>
> +
> _logger = logging.getLogger('ControlPanel')
> _MAX_COLUMNS = 5
>
> +
> class ControlPanel(gtk.Window):
> __gtype_name__ = 'SugarControlPanel'
>
> @@ -333,6 +335,7 @@ class ControlPanel(gtk.Window):
> section_is_valid = section_view.props.is_valid
> self._section_toolbar.accept_button.set_sensitive(section_is_valid)
>
> +
> class ModelWrapper(object):
> def __init__(self, module):
> self._module = module
> @@ -360,6 +363,7 @@ class ModelWrapper(object):
> except Exception, detail:
> _logger.debug('Error undo option: %s', detail)
>
> +
> class _SectionIcon(gtk.EventBox):
> __gtype_name__ = "SugarSectionIcon"
>
> diff --git a/src/jarabe/controlpanel/inlinealert.py b/src/jarabe/controlpanel/inlinealert.py
> index b1880da..9c08c62 100644
> --- a/src/jarabe/controlpanel/inlinealert.py
> +++ b/src/jarabe/controlpanel/inlinealert.py
> @@ -21,6 +21,7 @@ import pango
> from sugar.graphics import style
> from sugar.graphics.icon import Icon
>
> +
> class InlineAlert(gtk.HBox):
> """UI interface for Inline alerts
>
> @@ -80,4 +81,3 @@ class InlineAlert(gtk.HBox):
> def do_get_property(self, pspec):
> if pspec.name == 'msg':
> return self._msg
> -
> diff --git a/src/jarabe/controlpanel/sectionview.py b/src/jarabe/controlpanel/sectionview.py
> index 4de27a2..5b44161 100644
> --- a/src/jarabe/controlpanel/sectionview.py
> +++ b/src/jarabe/controlpanel/sectionview.py
> @@ -18,6 +18,7 @@ import gobject
> import gtk
> from gettext import gettext as _
>
> +
> class SectionView(gtk.VBox):
> __gtype_name__ = 'SugarSectionView'
>
> diff --git a/src/jarabe/controlpanel/toolbar.py b/src/jarabe/controlpanel/toolbar.py
> index 320a8eb..72b1be3 100644
> --- a/src/jarabe/controlpanel/toolbar.py
> +++ b/src/jarabe/controlpanel/toolbar.py
> @@ -25,6 +25,7 @@ from sugar.graphics.toolbutton import ToolButton
> from sugar.graphics import iconentry
> from sugar.graphics import style
>
> +
> class MainToolbar(gtk.Toolbar):
> """ Main toolbar of the control panel
> """
> @@ -38,6 +39,7 @@ class MainToolbar(gtk.Toolbar):
> gobject.TYPE_NONE,
> ([str]))
> }
> +
> def __init__(self):
> gtk.Toolbar.__init__(self)
>
> @@ -83,6 +85,7 @@ class MainToolbar(gtk.Toolbar):
> def __stop_clicked_cb(self, button):
> self.emit('stop-clicked')
>
> +
> class SectionToolbar(gtk.Toolbar):
> """ Toolbar of the sections of the control panel
> """
> @@ -96,6 +99,7 @@ class SectionToolbar(gtk.Toolbar):
> gobject.TYPE_NONE,
> ([]))
> }
> +
> def __init__(self):
> gtk.Toolbar.__init__(self)
>
> @@ -154,4 +158,3 @@ class SectionToolbar(gtk.Toolbar):
>
> def __accept_button_clicked_cb(self, widget, data=None):
> self.emit('accept-clicked')
> -
> diff --git a/src/jarabe/desktop/__init__.py b/src/jarabe/desktop/__init__.py
> index a9dd95a..85f6a24 100644
> --- a/src/jarabe/desktop/__init__.py
> +++ b/src/jarabe/desktop/__init__.py
> @@ -13,4 +13,3 @@
> # You should have received a copy of the GNU General Public License
> # along with this program; if not, write to the Free Software
> # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
> -
> diff --git a/src/jarabe/desktop/activitieslist.py b/src/jarabe/desktop/activitieslist.py
> index 56b3b5f..9476370 100644
> --- a/src/jarabe/desktop/activitieslist.py
> +++ b/src/jarabe/desktop/activitieslist.py
> @@ -38,6 +38,7 @@ from jarabe.view.palettes import ActivityPalette
> from jarabe.view import launcher
> from jarabe.journal import misc
>
> +
> class ActivitiesTreeView(gtk.TreeView):
> __gtype_name__ = 'SugarActivitiesTreeView'
>
> @@ -154,6 +155,7 @@ class ActivitiesTreeView(gtk.TreeView):
> title = model[tree_iter][ListModel.COLUMN_TITLE]
> return title is not None and title.lower().find(self._query) > -1
>
> +
> class ListModel(gtk.TreeModelSort):
> __gtype_name__ = 'SugarListModel'
>
> @@ -238,6 +240,7 @@ class ListModel(gtk.TreeModelSort):
> def refilter(self):
> self._model_filter.refilter()
>
> +
> class CellRendererFavorite(CellRendererIcon):
> __gtype_name__ = 'SugarCellRendererFavorite'
>
> @@ -252,6 +255,7 @@ class CellRendererFavorite(CellRendererIcon):
> self.props.prelit_stroke_color = style.COLOR_BUTTON_GREY.get_svg()
> self.props.prelit_fill_color = style.COLOR_BUTTON_GREY.get_svg()
>
> +
> class CellRendererActivityIcon(CellRendererIcon):
> __gtype_name__ = 'SugarCellRendererActivityIcon'
>
> @@ -290,6 +294,7 @@ class CellRendererActivityIcon(CellRendererIcon):
> def __erase_activated_cb(self, palette, bundle_id):
> self.emit('erase-activated', bundle_id)
>
> +
> class ActivitiesList(gtk.VBox):
> __gtype_name__ = 'SugarActivitiesList'
>
> @@ -373,6 +378,7 @@ class ActivitiesList(gtk.VBox):
> bundle = registry.get_bundle(bundle_id)
> registry.uninstall(bundle, delete_profile=True)
>
> +
> class ActivityListPalette(ActivityPalette):
> __gtype_name__ = 'SugarActivityListPalette'
>
> @@ -452,4 +458,3 @@ class ActivityListPalette(ActivityPalette):
>
> def __erase_activate_cb(self, menu_item):
> self.emit('erase-activated', self._bundle_id)
> -
> diff --git a/src/jarabe/desktop/favoriteslayout.py b/src/jarabe/desktop/favoriteslayout.py
> index 7b847ac..433dd2d 100644
> --- a/src/jarabe/desktop/favoriteslayout.py
> +++ b/src/jarabe/desktop/favoriteslayout.py
> @@ -29,6 +29,7 @@ from sugar.graphics import style
> from jarabe.model import bundleregistry
> from jarabe.desktop.grid import Grid
>
> +
> _logger = logging.getLogger('FavoritesLayout')
>
> _CELL_SIZE = 4
> @@ -109,6 +110,7 @@ class FavoritesLayout(gobject.GObject, hippo.CanvasLayout):
> def allow_dnd(self):
> return False
>
> +
> class RandomLayout(FavoritesLayout):
> """Lay out icons randomly; try to nudge them around to resolve overlaps."""
>
> @@ -189,6 +191,7 @@ class RandomLayout(FavoritesLayout):
> def allow_dnd(self):
> return True
>
> +
> _MINIMUM_RADIUS = style.XLARGE_ICON_SIZE / 2 + style.DEFAULT_SPACING + \
> style.STANDARD_ICON_SIZE * 2
> _MAXIMUM_RADIUS = (gtk.gdk.screen_height() - style.GRID_CELL_SIZE) / 2 - \
> @@ -351,6 +354,7 @@ class RingLayout(FavoritesLayout):
> else:
> return 0
>
> +
> _SUNFLOWER_CONSTANT = style.STANDARD_ICON_SIZE * .75
> """Chose a constant such that STANDARD_ICON_SIZE icons are nicely spaced."""
>
> @@ -376,6 +380,7 @@ This is the golden angle: http://en.wikipedia.org/wiki/Golden_angle
> Calculation: math.radians(360) / ( _GOLDEN_RATIO * _GOLDEN_RATIO )
> """
>
> +
> class SunflowerLayout(RingLayout):
> """Spiral layout based on Fibonacci ratio in phyllotaxis.
>
> @@ -446,6 +451,7 @@ class SunflowerLayout(RingLayout):
>
> return x, y
>
> +
> class BoxLayout(RingLayout):
> """Lay out icons in a square around the XO man."""
>
> @@ -487,6 +493,7 @@ class BoxLayout(RingLayout):
> (self, radius, icon_size, index, children_count,
> sin=sin, cos=cos)
>
> +
> class TriangleLayout(RingLayout):
> """Lay out icons in a triangle around the XO man."""
>
> diff --git a/src/jarabe/desktop/favoritesview.py b/src/jarabe/desktop/favoritesview.py
> index d582433..08c3675 100644
> --- a/src/jarabe/desktop/favoritesview.py
> +++ b/src/jarabe/desktop/favoritesview.py
> @@ -48,6 +48,7 @@ from jarabe.desktop import schoolserver
> from jarabe.desktop.schoolserver import RegisterError
> from jarabe.desktop import favoriteslayout
>
> +
> _logger = logging.getLogger('FavoritesView')
>
> _ICON_DND_TARGET = ('activity-icon', gtk.TARGET_SAME_WIDGET, 0)
> @@ -509,6 +510,7 @@ class ActivityIcon(CanvasIcon):
> self._resume_mode = resume_mode
> self._update()
>
> +
> class FavoritePalette(ActivityPalette):
> __gtype_name__ = 'SugarFavoritePalette'
>
> @@ -557,6 +559,7 @@ class FavoritePalette(ActivityPalette):
> if entry is not None:
> self.emit('entry-activate', entry)
>
> +
> class CurrentActivityIcon(CanvasIcon, hippo.CanvasItem):
> def __init__(self):
> CanvasIcon.__init__(self, cache=True)
> @@ -595,6 +598,7 @@ class CurrentActivityIcon(CanvasIcon, hippo.CanvasItem):
> self._home_activity = home_activity
> self._update()
>
> +
> class OwnerIcon(BuddyIcon):
> __gtype_name__ = 'SugarFavoritesOwnerIcon'
>
> @@ -602,6 +606,7 @@ class OwnerIcon(BuddyIcon):
> 'register-activate' : (gobject.SIGNAL_RUN_FIRST,
> gobject.TYPE_NONE, ([]))
> }
> +
> def __init__(self, size):
> BuddyIcon.__init__(self, buddy=get_owner_instance(), size=size)
>
> @@ -634,6 +639,7 @@ class OwnerIcon(BuddyIcon):
> def remove_register_menu(self):
> self.palette.menu.remove(self._register_menu)
>
> +
> class FavoritesSetting(object):
>
> _FAVORITES_KEY = "/desktop/sugar/desktop/favorites_layout"
> diff --git a/src/jarabe/desktop/friendview.py b/src/jarabe/desktop/friendview.py
> index 53b8f5e..8dab35f 100644
> --- a/src/jarabe/desktop/friendview.py
> +++ b/src/jarabe/desktop/friendview.py
> @@ -23,6 +23,7 @@ from sugar.graphics import style
> from jarabe.view.buddyicon import BuddyIcon
> from jarabe.model import bundleregistry
>
> +
> class FriendView(hippo.CanvasBox):
> def __init__(self, buddy, **kwargs):
> hippo.CanvasBox.__init__(self, **kwargs)
> @@ -81,4 +82,3 @@ class FriendView(hippo.CanvasBox):
> def __buddy_notify_color_cb(self, buddy, pspec):
> # TODO: shouldn't this change self._buddy_icon instead?
> self._activity_icon.props.xo_color = buddy.props.color
> -
> diff --git a/src/jarabe/desktop/grid.py b/src/jarabe/desktop/grid.py
> index f3412c9..319ff38 100644
> --- a/src/jarabe/desktop/grid.py
> +++ b/src/jarabe/desktop/grid.py
> @@ -22,17 +22,20 @@ import gtk
>
> from sugar import _sugarext
>
> +
> _PLACE_TRIALS = 20
> _MAX_WEIGHT = 255
> _REFRESH_RATE = 200
> _MAX_COLLISIONS_PER_REFRESH = 20
>
> +
> class Grid(_sugarext.Grid):
> __gsignals__ = {
> 'child-changed' : (gobject.SIGNAL_RUN_FIRST,
> gobject.TYPE_NONE,
> ([gobject.TYPE_PYOBJECT]))
> }
> +
> def __init__(self, width, height):
> gobject.GObject.__init__(self)
>
> diff --git a/src/jarabe/desktop/groupbox.py b/src/jarabe/desktop/groupbox.py
> index 89043fe..8172f83 100644
> --- a/src/jarabe/desktop/groupbox.py
> +++ b/src/jarabe/desktop/groupbox.py
> @@ -30,8 +30,10 @@ from jarabe.model import friends
> from jarabe.desktop.friendview import FriendView
> from jarabe.desktop.spreadlayout import SpreadLayout
>
> +
> class GroupBox(hippo.Canvas):
> __gtype_name__ = 'SugarGroupBox'
> +
> def __init__(self):
> logging.debug("STARTUP: Loading the group view")
>
> diff --git a/src/jarabe/desktop/homebox.py b/src/jarabe/desktop/homebox.py
> index 85279ff..beaaf41 100644
> --- a/src/jarabe/desktop/homebox.py
> +++ b/src/jarabe/desktop/homebox.py
> @@ -30,11 +30,13 @@ from sugar.graphics.icon import Icon
> from jarabe.desktop import favoritesview
> from jarabe.desktop.activitieslist import ActivitiesList
>
> +
> _FAVORITES_VIEW = 0
> _LIST_VIEW = 1
>
> _AUTOSEARCH_TIMEOUT = 1000
>
> +
> class HomeBox(gtk.VBox):
> __gtype_name__ = 'SugarHomeBox'
>
> @@ -144,6 +146,7 @@ class HomeBox(gtk.VBox):
> def set_resume_mode(self, resume_mode):
> self._favorites_view.set_resume_mode(resume_mode)
>
> +
> class HomeToolbar(gtk.Toolbar):
> __gtype_name__ = 'SugarHomeToolbar'
>
> @@ -246,6 +249,7 @@ class HomeToolbar(gtk.Toolbar):
> self.search_entry.activate()
> return False
>
> +
> class FavoritesButton(RadioToolButton):
> __gtype_name__ = 'SugarFavoritesButton'
>
> @@ -295,4 +299,3 @@ class FavoritesButton(RadioToolButton):
> def _update_icon(self):
> self.props.named_icon = favoritesview.LAYOUT_MAP[self._layout]\
> .icon_name
> -
> diff --git a/src/jarabe/desktop/homewindow.py b/src/jarabe/desktop/homewindow.py
> index ae970be..a2ea688 100644
> --- a/src/jarabe/desktop/homewindow.py
> +++ b/src/jarabe/desktop/homewindow.py
> @@ -28,6 +28,7 @@ from jarabe.desktop.transitionbox import TransitionBox
> from jarabe.model.shell import ShellModel
> from jarabe.model import shell
>
> +
> _HOME_PAGE = 0
> _GROUP_PAGE = 1
> _MESH_PAGE = 2
> @@ -192,4 +193,3 @@ def get_instance():
> if not _instance:
> _instance = HomeWindow()
> return _instance
> -
> diff --git a/src/jarabe/desktop/keydialog.py b/src/jarabe/desktop/keydialog.py
> index a83f77b..63099e2 100644
> --- a/src/jarabe/desktop/keydialog.py
> +++ b/src/jarabe/desktop/keydialog.py
> @@ -24,6 +24,7 @@ import dbus
> from jarabe.model import network
> from jarabe.model.network import Secrets
>
> +
> IW_AUTH_ALG_OPEN_SYSTEM = 'open'
> IW_AUTH_ALG_SHARED_KEY = 'shared'
>
> @@ -39,6 +40,7 @@ def string_is_hex(key):
> is_hex = False
> return is_hex
>
> +
> def string_is_ascii(string):
> try:
> string.encode('ascii')
> @@ -46,12 +48,14 @@ def string_is_ascii(string):
> except UnicodeEncodeError:
> return False
>
> +
> def string_to_hex(passphrase):
> key = ''
> for c in passphrase:
> key += '%02x' % ord(c)
> return key
>
> +
> def hash_passphrase(passphrase):
> # passphrase must have a length of 64
> if len(passphrase) > 64:
> @@ -62,11 +66,13 @@ def hash_passphrase(passphrase):
> passphrase = hashlib.md5(passphrase).digest()
> return string_to_hex(passphrase)[:26]
>
> +
> class CanceledKeyRequestError(dbus.DBusException):
> def __init__(self):
> dbus.DBusException.__init__(self)
> self._dbus_error_name = network.NM_SETTINGS_IFACE + '.CanceledError'
>
> +
> class KeyDialog(gtk.Dialog):
> def __init__(self, ssid, flags, wpa_flags, rsn_flags, dev_caps, settings,
> response):
> @@ -211,6 +217,7 @@ class WEPKeyDialog(KeyDialog):
>
> self.set_response_sensitive(gtk.RESPONSE_OK, valid)
>
> +
> class WPAKeyDialog(KeyDialog):
> def __init__(self, ssid, flags, wpa_flags, rsn_flags, dev_caps, settings,
> response):
> @@ -283,6 +290,7 @@ class WPAKeyDialog(KeyDialog):
> self.set_response_sensitive(gtk.RESPONSE_OK, valid)
> return False
>
> +
> def create(ssid, flags, wpa_flags, rsn_flags, dev_caps, settings, response):
> if wpa_flags == network.NM_802_11_AP_SEC_NONE and \
> rsn_flags == network.NM_802_11_AP_SEC_NONE:
> @@ -296,9 +304,11 @@ def create(ssid, flags, wpa_flags, rsn_flags, dev_caps, settings, response):
> key_dialog.connect("destroy", _key_dialog_destroy_cb)
> key_dialog.show_all()
>
> +
> def _key_dialog_destroy_cb(key_dialog, data=None):
> _key_dialog_response_cb(key_dialog, gtk.RESPONSE_CANCEL)
>
> +
> def _key_dialog_response_cb(key_dialog, response_id):
> response = key_dialog.get_response_object()
> secrets = None
> @@ -316,4 +326,3 @@ def _key_dialog_response_cb(key_dialog, response_id):
> raise RuntimeError("Unhandled key dialog response %d" % response_id)
>
> key_dialog.destroy()
> -
> diff --git a/src/jarabe/desktop/meshbox.py b/src/jarabe/desktop/meshbox.py
> index 18e3b1c..ededa6d 100644
> --- a/src/jarabe/desktop/meshbox.py
> +++ b/src/jarabe/desktop/meshbox.py
> @@ -47,6 +47,7 @@ from jarabe.model.olpcmesh import OlpcMeshManager
> from jarabe.model.adhoc import get_adhoc_manager_instance
> from jarabe.journal import misc
>
> +
> _NM_SERVICE = 'org.freedesktop.NetworkManager'
> _NM_IFACE = 'org.freedesktop.NetworkManager'
> _NM_PATH = '/org/freedesktop/NetworkManager'
> @@ -228,6 +229,7 @@ class DeviceObserver(gobject.GObject):
> 'access-point-removed': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
> ([gobject.TYPE_PYOBJECT]))
> }
> +
> def __init__(self, device):
> gobject.GObject.__init__(self)
> self._bus = dbus.SystemBus()
> diff --git a/src/jarabe/desktop/networkviews.py b/src/jarabe/desktop/networkviews.py
> index 87f182f..8cd6303 100644
> --- a/src/jarabe/desktop/networkviews.py
> +++ b/src/jarabe/desktop/networkviews.py
> @@ -41,6 +41,7 @@ from jarabe.model.network import IP4Config
> from jarabe.model.network import WirelessSecurity
> from jarabe.model.adhoc import get_adhoc_manager_instance
>
> +
> _NM_SERVICE = 'org.freedesktop.NetworkManager'
> _NM_IFACE = 'org.freedesktop.NetworkManager'
> _NM_PATH = '/org/freedesktop/NetworkManager'
> @@ -438,6 +439,7 @@ class WirelessNetworkView(CanvasPulsingIcon):
> path=self._device.object_path,
> dbus_interface=_NM_WIRELESS_IFACE)
>
> +
> class SugarAdhocView(CanvasPulsingIcon):
> """To mimic the mesh behavior on devices where mesh hardware is
> not available we support the creation of an Ad-hoc network on
> @@ -712,4 +714,3 @@ class OlpcMeshView(CanvasPulsingIcon):
> signal_name='PropertiesChanged',
> path=device_object_path,
> dbus_interface=_NM_OLPC_MESH_IFACE)
> -
> diff --git a/src/jarabe/desktop/schoolserver.py b/src/jarabe/desktop/schoolserver.py
> index f79711e..8dc7d71 100644
> --- a/src/jarabe/desktop/schoolserver.py
> +++ b/src/jarabe/desktop/schoolserver.py
> @@ -33,6 +33,7 @@ from sugar.profile import get_profile
> REGISTER_URL = 'http://schoolserver:8080/'
> REGISTER_TIMEOUT = 8
>
> +
> def generate_serial_number():
> """ Generates a serial number based on 3 random uppercase letters
> and the last 8 digits of the current unix seconds. """
> @@ -48,6 +49,7 @@ def generate_serial_number():
>
> return serial
>
> +
> def store_identifiers(serial_number, uuid, backup_url):
> """ Stores the serial number, uuid and backup_url
> in the identifier folder inside the profile directory
> @@ -75,6 +77,7 @@ def store_identifiers(serial_number, uuid, backup_url):
> backup_url_file.write(backup_url)
> backup_url_file.close()
>
> +
> class RegisterError(Exception):
> pass
>
> @@ -138,9 +141,11 @@ def register_laptop(url=REGISTER_URL):
>
> return True
>
> +
> def have_ofw_tree():
> return os.path.exists('/ofw')
>
> +
> def read_ofw(path):
> path = os.path.join('/ofw', path)
> if not os.path.exists(path):
> diff --git a/src/jarabe/desktop/snowflakelayout.py b/src/jarabe/desktop/snowflakelayout.py
> index 5782cff..e4963ba 100644
> --- a/src/jarabe/desktop/snowflakelayout.py
> +++ b/src/jarabe/desktop/snowflakelayout.py
> @@ -21,11 +21,14 @@ import hippo
>
> from sugar.graphics import style
>
> +
> _BASE_DISTANCE = style.zoom(25)
> _CHILDREN_FACTOR = style.zoom(3)
>
> +
> class SnowflakeLayout(gobject.GObject, hippo.CanvasLayout):
> __gtype_name__ = 'SugarSnowflakeLayout'
> +
> def __init__(self):
> gobject.GObject.__init__(self)
> self._nflakes = 0
> diff --git a/src/jarabe/desktop/spreadlayout.py b/src/jarabe/desktop/spreadlayout.py
> index ffc5bc7..9200361 100644
> --- a/src/jarabe/desktop/spreadlayout.py
> +++ b/src/jarabe/desktop/spreadlayout.py
> @@ -22,10 +22,13 @@ from sugar.graphics import style
>
> from jarabe.desktop.grid import Grid
>
> +
> _CELL_SIZE = 4.0
>
> +
> class SpreadLayout(gobject.GObject, hippo.CanvasLayout):
> __gtype_name__ = 'SugarSpreadLayout'
> +
> def __init__(self):
> gobject.GObject.__init__(self)
> self._box = None
> @@ -80,4 +83,3 @@ class SpreadLayout(gobject.GObject, hippo.CanvasLayout):
>
> def _grid_child_changed_cb(self, grid, child):
> child.emit_request_changed()
> -
> diff --git a/src/jarabe/desktop/transitionbox.py b/src/jarabe/desktop/transitionbox.py
> index cf9e0d6..184f62c 100644
> --- a/src/jarabe/desktop/transitionbox.py
> +++ b/src/jarabe/desktop/transitionbox.py
> @@ -23,6 +23,7 @@ from sugar.graphics import animator
> from jarabe.model.buddy import get_owner_instance
> from jarabe.view.buddyicon import BuddyIcon
>
> +
> class _Animation(animator.Animation):
> def __init__(self, icon, start_size, end_size):
> animator.Animation.__init__(self, 0.0, 1.0)
> @@ -35,8 +36,10 @@ class _Animation(animator.Animation):
> d = (self.end_size - self.start_size) * current
> self._icon.props.size = self.start_size + d
>
> +
> class _Layout(gobject.GObject, hippo.CanvasLayout):
> __gtype_name__ = 'SugarTransitionBoxLayout'
> +
> def __init__(self):
> gobject.GObject.__init__(self)
> self._box = None
> @@ -60,6 +63,7 @@ class _Layout(gobject.GObject, hippo.CanvasLayout):
> y + (height - child_height) / 2,
> child_width, child_height, origin_changed)
>
> +
> class TransitionBox(hippo.Canvas):
> __gtype_name__ = 'SugarTransitionBox'
>
> diff --git a/src/jarabe/frame/__init__.py b/src/jarabe/frame/__init__.py
> index d7aec3d..b3e4b80 100644
> --- a/src/jarabe/frame/__init__.py
> +++ b/src/jarabe/frame/__init__.py
> @@ -16,8 +16,10 @@
>
> from jarabe.frame.frame import Frame
>
> +
> _view = None
>
> +
> def get_view():
> global _view
> if not _view:
> diff --git a/src/jarabe/frame/activitiestray.py b/src/jarabe/frame/activitiestray.py
> index 6bd2a1b..05891b4 100644
> --- a/src/jarabe/frame/activitiestray.py
> +++ b/src/jarabe/frame/activitiestray.py
> @@ -98,7 +98,6 @@ class ActivityButton(RadioToolButton):
> self._icon.props.pulsing = False
>
>
> -
> class InviteButton(ToolButton):
> """Invite to shared activity"""
> def __init__(self, invite):
> @@ -313,6 +312,7 @@ class ActivitiesTray(HTray):
> self.add_item(button)
> button.show()
>
> +
> class BaseTransferButton(ToolButton):
> """Button with a notification attached
> """
> @@ -349,6 +349,7 @@ class BaseTransferButton(ToolButton):
> filetransfer.FT_REASON_LOCAL_STOPPED:
> self.remove()
>
> +
> class IncomingTransferButton(BaseTransferButton):
> """UI element representing an ongoing incoming file transfer
> """
> @@ -429,6 +430,7 @@ class IncomingTransferButton(BaseTransferButton):
> def __dismiss_clicked_cb(self, palette):
> self.remove()
>
> +
> class OutgoingTransferButton(BaseTransferButton):
> """UI element representing an ongoing outgoing file transfer
> """
> @@ -464,6 +466,7 @@ class OutgoingTransferButton(BaseTransferButton):
> def __dismiss_clicked_cb(self, palette):
> self.remove()
>
> +
> class BaseTransferPalette(Palette):
> """Base palette class for frame or notification icon for file transfers
> """
> @@ -526,10 +529,12 @@ class BaseTransferPalette(Palette):
> total = self._format_size(self.file_transfer.file_size)
> self.progress_label.props.label = _('%s of %s') % (transferred, total)
>
> +
> class IncomingTransferPalette(BaseTransferPalette):
> """Palette for frame or notification icon for incoming file transfers
> """
> __gtype_name__ = "SugarIncomingTransferPalette"
> +
> def __init__(self, file_transfer):
> BaseTransferPalette.__init__(self, file_transfer)
>
> @@ -652,6 +657,7 @@ class IncomingTransferPalette(BaseTransferPalette):
> def __dismiss_activate_cb(self, menu_item):
> self.emit('dismiss-clicked')
>
> +
> class OutgoingTransferPalette(BaseTransferPalette):
> """Palette for frame or notification icon for outgoing file transfers
> """
> diff --git a/src/jarabe/frame/clipboardicon.py b/src/jarabe/frame/clipboardicon.py
> index 279db08..9c44408 100644
> --- a/src/jarabe/frame/clipboardicon.py
> +++ b/src/jarabe/frame/clipboardicon.py
> @@ -31,6 +31,7 @@ from jarabe.frame.frameinvoker import FrameWidgetInvoker
> from jarabe.frame.notification import NotificationIcon
> import jarabe.frame
>
> +
> class ClipboardIcon(RadioToolButton):
> __gtype_name__ = 'SugarClipboardIcon'
>
> diff --git a/src/jarabe/frame/clipboardmenu.py b/src/jarabe/frame/clipboardmenu.py
> index b998110..03c953b 100644
> --- a/src/jarabe/frame/clipboardmenu.py
> +++ b/src/jarabe/frame/clipboardmenu.py
> @@ -35,6 +35,7 @@ from jarabe.frame import clipboard
> from jarabe.journal import misc
> from jarabe.model import bundleregistry
>
> +
> class ClipboardMenu(Palette):
>
> def __init__(self, cb_object):
> diff --git a/src/jarabe/frame/clipboardobject.py b/src/jarabe/frame/clipboardobject.py
> index e9403f9..90f64e7 100644
> --- a/src/jarabe/frame/clipboardobject.py
> +++ b/src/jarabe/frame/clipboardobject.py
> @@ -24,6 +24,7 @@ from gettext import gettext as _
> from sugar import mime
> from sugar.bundle.activitybundle import ActivityBundle
>
> +
> class ClipboardObject(object):
>
> def __init__(self, object_path, name):
> @@ -114,6 +115,7 @@ class ClipboardObject(object):
>
> return format_
>
> +
> class Format(object):
>
> def __init__(self, mime_type, data, on_disk):
> diff --git a/src/jarabe/frame/clipboardpanelwindow.py b/src/jarabe/frame/clipboardpanelwindow.py
> index ac324f4..f7a28a6 100644
> --- a/src/jarabe/frame/clipboardpanelwindow.py
> +++ b/src/jarabe/frame/clipboardpanelwindow.py
> @@ -25,6 +25,7 @@ from jarabe.frame.clipboardtray import ClipboardTray
>
> from jarabe.frame import clipboard
>
> +
> class ClipboardPanelWindow(FrameWindow):
> def __init__(self, frame, orientation):
> FrameWindow.__init__(self, orientation)
> @@ -100,4 +101,3 @@ class ClipboardPanelWindow(FrameWindow):
> selection.type,
> selection.data,
> on_disk=False)
> -
> diff --git a/src/jarabe/frame/clipboardtray.py b/src/jarabe/frame/clipboardtray.py
> index 8beb6a8..40a1f65 100644
> --- a/src/jarabe/frame/clipboardtray.py
> +++ b/src/jarabe/frame/clipboardtray.py
> @@ -27,6 +27,7 @@ from sugar.graphics import style
> from jarabe.frame import clipboard
> from jarabe.frame.clipboardicon import ClipboardIcon
>
> +
> class _ContextMap(object):
> """Maps a drag context to the clipboard object involved in the dragging."""
> def __init__(self):
> @@ -56,6 +57,7 @@ class _ContextMap(object):
> def has_context(self, context):
> return context in self._context_map
>
> +
> class ClipboardTray(tray.VTray):
>
> MAX_ITEMS = gtk.gdk.screen_height() / style.GRID_CELL_SIZE - 2
> @@ -213,4 +215,3 @@ class ClipboardTray(tray.VTray):
> return True
> else:
> return False
> -
> diff --git a/src/jarabe/frame/devicestray.py b/src/jarabe/frame/devicestray.py
> index 72affe3..1acde21 100644
> --- a/src/jarabe/frame/devicestray.py
> +++ b/src/jarabe/frame/devicestray.py
> @@ -23,6 +23,7 @@ from sugar.graphics import tray
>
> from jarabe import config
>
> +
> class DevicesTray(tray.HTray):
> def __init__(self):
> tray.HTray.__init__(self, align=tray.ALIGN_TO_END)
> diff --git a/src/jarabe/frame/eventarea.py b/src/jarabe/frame/eventarea.py
> index 166aaf5..cdd6f97 100644
> --- a/src/jarabe/frame/eventarea.py
> +++ b/src/jarabe/frame/eventarea.py
> @@ -19,8 +19,10 @@ import gobject
> import wnck
> import gconf
>
> +
> _MAX_DELAY = 1000
>
> +
> class EventArea(gobject.GObject):
> __gsignals__ = {
> 'enter': (gobject.SIGNAL_RUN_FIRST,
> diff --git a/src/jarabe/frame/frame.py b/src/jarabe/frame/frame.py
> index 7dde55b..39dd31e 100644
> --- a/src/jarabe/frame/frame.py
> +++ b/src/jarabe/frame/frame.py
> @@ -35,6 +35,7 @@ from jarabe.frame.clipboardpanelwindow import ClipboardPanelWindow
> from jarabe.frame.notification import NotificationIcon, NotificationWindow
> from jarabe.model import notifications
>
> +
> TOP_RIGHT = 0
> TOP_LEFT = 1
> BOTTOM_RIGHT = 2
> @@ -43,6 +44,7 @@ BOTTOM_LEFT = 3
> _FRAME_HIDING_DELAY = 500
> _NOTIFICATION_DURATION = 5000
>
> +
> class _Animation(animator.Animation):
> def __init__(self, frame, end):
> start = frame.current_position
> @@ -52,6 +54,7 @@ class _Animation(animator.Animation):
> def next_frame(self, current):
> self._frame.move(current)
>
> +
> class _MouseListener(object):
> def __init__(self, frame):
> self._frame = frame
> @@ -79,6 +82,7 @@ class _MouseListener(object):
> self._hide_sid = gobject.timeout_add(
> _FRAME_HIDING_DELAY, self._hide_frame_timeout_cb)
>
> +
> class _KeyListener(object):
> def __init__(self, frame):
> self._frame = frame
> @@ -90,6 +94,7 @@ class _KeyListener(object):
> else:
> self._frame.show(Frame.MODE_KEYBOARD)
>
> +
> class Frame(object):
> MODE_MOUSE = 0
> MODE_KEYBOARD = 1
> @@ -348,4 +353,3 @@ class Frame(object):
> # Do nothing for now. Our notification UI is so simple, there's no
> # point yet.
> pass
> -
> diff --git a/src/jarabe/frame/frameinvoker.py b/src/jarabe/frame/frameinvoker.py
> index e4a13e1..a4abfa8 100644
> --- a/src/jarabe/frame/frameinvoker.py
> +++ b/src/jarabe/frame/frameinvoker.py
> @@ -19,6 +19,7 @@ import gtk
> from sugar.graphics import style
> from sugar.graphics.palette import WidgetInvoker
>
> +
> def _get_screen_area():
> frame_thickness = style.GRID_CELL_SIZE
>
> @@ -28,6 +29,7 @@ def _get_screen_area():
>
> return gtk.gdk.Rectangle(x, y, width, height)
>
> +
> class FrameWidgetInvoker(WidgetInvoker):
> def __init__(self, widget):
> WidgetInvoker.__init__(self, widget, widget.child)
> diff --git a/src/jarabe/frame/framewindow.py b/src/jarabe/frame/framewindow.py
> index a7d8fe7..c77e76c 100644
> --- a/src/jarabe/frame/framewindow.py
> +++ b/src/jarabe/frame/framewindow.py
> @@ -19,6 +19,7 @@ import hippo
>
> from sugar.graphics import style
>
> +
> class FrameWindow(gtk.Window):
> __gtype_name__ = 'SugarFrameWindow'
>
> diff --git a/src/jarabe/frame/friendstray.py b/src/jarabe/frame/friendstray.py
> index 141505b..b387e06 100644
> --- a/src/jarabe/frame/friendstray.py
> +++ b/src/jarabe/frame/friendstray.py
> @@ -24,6 +24,7 @@ from jarabe.model import shell
> from jarabe.model.buddy import get_owner_instance
> from jarabe.model import neighborhood
>
> +
> class FriendIcon(TrayIcon):
> def __init__(self, buddy):
> TrayIcon.__init__(self, icon_name='computer-xo',
> @@ -34,6 +35,7 @@ class FriendIcon(TrayIcon):
> self.palette.props.icon_visible = False
> self.palette.set_group_id('frame')
>
> +
> class FriendsTray(VTray):
> def __init__(self):
> VTray.__init__(self)
> diff --git a/src/jarabe/frame/notification.py b/src/jarabe/frame/notification.py
> index 83dc27e..fceb41e 100644
> --- a/src/jarabe/frame/notification.py
> +++ b/src/jarabe/frame/notification.py
> @@ -22,6 +22,7 @@ from sugar.graphics.xocolor import XoColor
>
> from jarabe.view.pulsingicon import PulsingIcon
>
> +
> class NotificationIcon(gtk.EventBox):
> __gtype_name__ = 'SugarNotificationIcon'
>
> @@ -80,6 +81,7 @@ class NotificationIcon(gtk.EventBox):
>
> palette = property(_get_palette, _set_palette)
>
> +
> class NotificationWindow(gtk.Window):
> __gtype_name__ = 'SugarNotificationWindow'
>
> @@ -97,4 +99,3 @@ class NotificationWindow(gtk.Window):
>
> color = gtk.gdk.color_parse(style.COLOR_TOOLBAR_GREY.get_html())
> self.modify_bg(gtk.STATE_NORMAL, color)
> -
> diff --git a/src/jarabe/frame/zoomtoolbar.py b/src/jarabe/frame/zoomtoolbar.py
> index 2ed3c54..6c10c61 100644
> --- a/src/jarabe/frame/zoomtoolbar.py
> +++ b/src/jarabe/frame/zoomtoolbar.py
> @@ -26,6 +26,7 @@ from sugar.graphics.radiotoolbutton import RadioToolButton
> from jarabe.frame.frameinvoker import FrameWidgetInvoker
> from jarabe.model import shell
>
> +
> class ZoomToolbar(gtk.Toolbar):
> def __init__(self):
> gtk.Toolbar.__init__(self)
> @@ -86,4 +87,3 @@ class ZoomToolbar(gtk.Toolbar):
> self._activity_button.props.active = True
> else:
> raise ValueError('Invalid zoom level: %r' % (new_level))
> -
> diff --git a/src/jarabe/intro/__init__.py b/src/jarabe/intro/__init__.py
> index ca4f64d..d2932f1 100644
> --- a/src/jarabe/intro/__init__.py
> +++ b/src/jarabe/intro/__init__.py
> @@ -8,6 +8,7 @@ from sugar.profile import get_profile
> from jarabe.intro.window import IntroWindow
> from jarabe.intro.window import create_profile
>
> +
> def check_profile():
> profile = get_profile()
>
> diff --git a/src/jarabe/intro/colorpicker.py b/src/jarabe/intro/colorpicker.py
> index a939857..997199b 100644
> --- a/src/jarabe/intro/colorpicker.py
> +++ b/src/jarabe/intro/colorpicker.py
> @@ -20,6 +20,7 @@ from sugar.graphics.icon import CanvasIcon
> from sugar.graphics import style
> from sugar.graphics.xocolor import XoColor
>
> +
> class ColorPicker(hippo.CanvasBox, hippo.CanvasItem):
> def __init__(self, **kwargs):
> hippo.CanvasBox.__init__(self, **kwargs)
> diff --git a/src/jarabe/intro/window.py b/src/jarabe/intro/window.py
> index 35c0cda..4c8d224 100644
> --- a/src/jarabe/intro/window.py
> +++ b/src/jarabe/intro/window.py
> @@ -32,8 +32,10 @@ from sugar.graphics.xocolor import XoColor
>
> from jarabe.intro import colorpicker
>
> +
> _BACKGROUND_COLOR = style.COLOR_WHITE
>
> +
> def create_profile(name, color=None, pixbuf=None):
> if not pixbuf:
> path = os.path.join(os.path.dirname(__file__), 'default-picture.png')
> @@ -60,6 +62,7 @@ def create_profile(name, color=None, pixbuf=None):
> else:
> logging.error("Keypair exists, skip generation.")
>
> +
> class _Page(hippo.CanvasBox):
> __gproperties__ = {
> 'valid' : (bool, None, None, False,
> @@ -81,6 +84,7 @@ class _Page(hippo.CanvasBox):
> def activate(self):
> pass
>
> +
> class _NamePage(_Page):
> def __init__(self, intro):
> _Page.__init__(self, xalign=hippo.ALIGNMENT_CENTER,
> @@ -118,6 +122,7 @@ class _NamePage(_Page):
> def activate(self):
> self._entry.props.widget.grab_focus()
>
> +
> class _ColorPage(_Page):
> def __init__(self, **kwargs):
> _Page.__init__(self, xalign=hippo.ALIGNMENT_CENTER,
> @@ -138,6 +143,7 @@ class _ColorPage(_Page):
> def get_color(self):
> return self._cp.get_color()
>
> +
> class _IntroBox(hippo.CanvasBox):
> __gsignals__ = {
> 'done': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
> @@ -255,6 +261,7 @@ class _IntroBox(hippo.CanvasBox):
>
> self.emit('done', name, color)
>
> +
> class IntroWindow(gtk.Window):
> def __init__(self):
> gtk.Window.__init__(self)
> diff --git a/src/jarabe/journal/detailview.py b/src/jarabe/journal/detailview.py
> index b4a2339..6a04a44 100644
> --- a/src/jarabe/journal/detailview.py
> +++ b/src/jarabe/journal/detailview.py
> @@ -27,6 +27,7 @@ from sugar.graphics.icon import CanvasIcon
> from jarabe.journal.expandedentry import ExpandedEntry
> from jarabe.journal import model
>
> +
> class DetailView(gtk.VBox):
> __gtype_name__ = 'DetailView'
>
> @@ -84,6 +85,7 @@ class DetailView(gtk.VBox):
> metadata = gobject.property(
> type=object, getter=get_metadata, setter=set_metadata)
>
> +
> class BackBar(hippo.CanvasBox):
> def __init__(self):
> hippo.CanvasBox.__init__(self,
> diff --git a/src/jarabe/journal/expandedentry.py b/src/jarabe/journal/expandedentry.py
> index 725c0f9..9271313 100644
> --- a/src/jarabe/journal/expandedentry.py
> +++ b/src/jarabe/journal/expandedentry.py
> @@ -36,6 +36,7 @@ from jarabe.journal.palettes import ObjectPalette, BuddyPalette
> from jarabe.journal import misc
> from jarabe.journal import model
>
> +
> class Separator(hippo.CanvasBox, hippo.CanvasItem):
> def __init__(self, orientation):
> hippo.CanvasBox.__init__(self,
> @@ -46,6 +47,7 @@ class Separator(hippo.CanvasBox, hippo.CanvasItem):
> else:
> self.props.box_height = style.LINE_WIDTH
>
> +
> class BuddyList(hippo.CanvasBox):
> def __init__(self, buddies):
> hippo.CanvasBox.__init__(self, xalign=hippo.ALIGNMENT_START,
> @@ -61,6 +63,7 @@ class BuddyList(hippo.CanvasBox):
> hbox.append(icon)
> self.append(hbox)
>
> +
> class ExpandedEntry(hippo.CanvasBox):
> def __init__(self):
> hippo.CanvasBox.__init__(self)
> diff --git a/src/jarabe/journal/journalactivity.py b/src/jarabe/journal/journalactivity.py
> index c0d792d..84a376f 100644
> --- a/src/jarabe/journal/journalactivity.py
> +++ b/src/jarabe/journal/journalactivity.py
> @@ -45,6 +45,7 @@ from jarabe.journal.objectchooser import ObjectChooser
> from jarabe.journal.modalalert import ModalAlert
> from jarabe.journal import model
>
> +
> J_DBUS_SERVICE = 'org.laptop.Journal'
> J_DBUS_INTERFACE = 'org.laptop.Journal'
> J_DBUS_PATH = '/org/laptop/Journal'
> @@ -105,6 +106,7 @@ class JournalActivityDBusService(dbus.service.Object):
> def ObjectChooserCancelled(self, chooser_id):
> pass
>
> +
> class JournalActivity(Window):
> def __init__(self):
> logging.debug("STARTUP: Loading the journal")
> @@ -369,6 +371,6 @@ def get_journal():
> _journal.show()
> return _journal
>
> +
> def start():
> get_journal()
> -
> diff --git a/src/jarabe/journal/journalentrybundle.py b/src/jarabe/journal/journalentrybundle.py
> index 41777c7..9ce676e 100644
> --- a/src/jarabe/journal/journalentrybundle.py
> +++ b/src/jarabe/journal/journalentrybundle.py
> @@ -25,6 +25,7 @@ from sugar.bundle.bundle import Bundle, MalformedBundleException
>
> from jarabe.journal import model
>
> +
> class JournalEntryBundle(Bundle):
> """A Journal entry bundle
>
> @@ -91,4 +92,3 @@ class JournalEntryBundle(Bundle):
> def is_installed(self):
> # These bundles can be reinstalled as many times as desired.
> return False
> -
> diff --git a/src/jarabe/journal/journaltoolbox.py b/src/jarabe/journal/journaltoolbox.py
> index c6bd0fb..08c8b2f 100644
> --- a/src/jarabe/journal/journaltoolbox.py
> +++ b/src/jarabe/journal/journaltoolbox.py
> @@ -43,6 +43,7 @@ from jarabe.model import bundleregistry
> from jarabe.journal import misc
> from jarabe.journal import model
>
> +
> _AUTOSEARCH_TIMEOUT = 1000
>
> _ACTION_ANYTIME = 0
> @@ -68,6 +69,7 @@ class MainToolbox(Toolbox):
> self.add_toolbar(_('Search'), self.search_toolbar)
> self.search_toolbar.show()
>
> +
> class SearchToolbar(gtk.Toolbar):
> __gtype_name__ = 'SearchToolbar'
>
> @@ -355,6 +357,7 @@ class SearchToolbar(gtk.Toolbar):
> self._when_search_combo.set_active(0)
> self._favorite_button.props.active = False
>
> +
> class DetailToolbox(Toolbox):
> def __init__(self):
> Toolbox.__init__(self)
> @@ -363,12 +366,14 @@ class DetailToolbox(Toolbox):
> self.add_toolbar('', self.entry_toolbar)
> self.entry_toolbar.show()
>
> +
> class EntryToolbar(gtk.Toolbar):
> __gsignals__ = {
> 'volume-error': (gobject.SIGNAL_RUN_FIRST,
> gobject.TYPE_NONE,
> ([str, str]))
> }
> +
> def __init__(self):
> gtk.Toolbar.__init__(self)
>
> diff --git a/src/jarabe/journal/keepicon.py b/src/jarabe/journal/keepicon.py
> index 2c692c6..1253afc 100644
> --- a/src/jarabe/journal/keepicon.py
> +++ b/src/jarabe/journal/keepicon.py
> @@ -22,6 +22,7 @@ from sugar.graphics.icon import CanvasIcon
> from sugar.graphics import style
> from sugar.graphics.xocolor import XoColor
>
> +
> class KeepIcon(CanvasIcon):
> def __init__(self, keep):
> CanvasIcon.__init__(self, icon_name='emblem-favorite',
> diff --git a/src/jarabe/journal/listmodel.py b/src/jarabe/journal/listmodel.py
> index 3378350..fb50ea3 100644
> --- a/src/jarabe/journal/listmodel.py
> +++ b/src/jarabe/journal/listmodel.py
> @@ -29,10 +29,12 @@ from sugar import util
> from jarabe.journal import model
> from jarabe.journal import misc
>
> +
> DS_DBUS_SERVICE = 'org.laptop.sugar.DataStore'
> DS_DBUS_INTERFACE = 'org.laptop.sugar.DataStore'
> DS_DBUS_PATH = '/org/laptop/sugar/DataStore'
>
> +
> class ListModel(gtk.GenericTreeModel, gtk.TreeDragSource):
> __gtype_name__ = 'JournalListModel'
>
> @@ -219,4 +221,3 @@ class ListModel(gtk.GenericTreeModel, gtk.TreeDragSource):
> return True
>
> return False
> -
> diff --git a/src/jarabe/journal/listview.py b/src/jarabe/journal/listview.py
> index 3d6281a..bca9f2c 100644
> --- a/src/jarabe/journal/listview.py
> +++ b/src/jarabe/journal/listview.py
> @@ -34,11 +34,13 @@ from jarabe.journal.palettes import ObjectPalette, BuddyPalette
> from jarabe.journal import model
> from jarabe.journal import misc
>
> +
> UPDATE_INTERVAL = 300
>
> MESSAGE_EMPTY_JOURNAL = 0
> MESSAGE_NO_MATCH = 1
>
> +
> class TreeView(gtk.TreeView):
> __gtype_name__ = 'JournalTreeView'
>
> @@ -58,6 +60,7 @@ class TreeView(gtk.TreeView):
> if tree_model is not None:
> tree_model.view_is_resizing = False
>
> +
> class BaseListView(gtk.Bin):
> __gtype_name__ = 'JournalBaseListView'
>
> @@ -460,6 +463,7 @@ class BaseListView(gtk.Bin):
> self.update_dates()
> return True
>
> +
> class ListView(BaseListView):
> __gtype_name__ = 'JournalListView'
>
> @@ -538,6 +542,7 @@ class ListView(BaseListView):
> def __editing_canceled_cb(self, cell):
> self.cell_title.props.editable = False
>
> +
> class CellRendererFavorite(CellRendererIcon):
> __gtype_name__ = 'JournalCellRendererFavorite'
>
> @@ -552,6 +557,7 @@ class CellRendererFavorite(CellRendererIcon):
> self.props.prelit_stroke_color = style.COLOR_BUTTON_GREY.get_svg()
> self.props.prelit_fill_color = style.COLOR_BUTTON_GREY.get_svg()
>
> +
> class CellRendererDetail(CellRendererIcon):
> __gtype_name__ = 'JournalCellRendererDetail'
>
> @@ -568,6 +574,7 @@ class CellRendererDetail(CellRendererIcon):
> self.props.prelit_stroke_color = style.COLOR_TRANSPARENT.get_svg()
> self.props.prelit_fill_color = style.COLOR_BLACK.get_svg()
>
> +
> class CellRendererActivityIcon(CellRendererIcon):
> __gtype_name__ = 'JournalCellRendererActivityIcon'
>
> @@ -610,6 +617,7 @@ class CellRendererActivityIcon(CellRendererIcon):
> show_palette = gobject.property(type=bool, default=True,
> setter=set_show_palette)
>
> +
> class CellRendererBuddy(CellRendererIcon):
> __gtype_name__ = 'JournalCellRendererBuddy'
>
> @@ -643,4 +651,3 @@ class CellRendererBuddy(CellRendererIcon):
> self.props.xo_color = xo_color
>
> buddy = gobject.property(type=object, setter=set_buddy)
> -
> diff --git a/src/jarabe/journal/misc.py b/src/jarabe/journal/misc.py
> index 32a2847..31f14b2 100644
> --- a/src/jarabe/journal/misc.py
> +++ b/src/jarabe/journal/misc.py
> @@ -37,6 +37,7 @@ from jarabe.model import bundleregistry, shell
> from jarabe.journal.journalentrybundle import JournalEntryBundle
> from jarabe.journal import model
>
> +
> def _get_icon_for_mime(mime_type):
> generic_types = mime.get_all_generic_types()
> for generic_type in generic_types:
> @@ -52,6 +53,7 @@ def _get_icon_for_mime(mime_type):
> if file_name is not None:
> return file_name
>
> +
> def get_icon_name(metadata):
> file_name = None
>
> @@ -81,6 +83,7 @@ def get_icon_name(metadata):
>
> return file_name
>
> +
> def get_date(metadata):
> """ Convert from a string in iso format to a more human-like format. """
> if metadata.has_key('timestamp'):
> @@ -92,6 +95,7 @@ def get_date(metadata):
> else:
> return _('No date')
>
> +
> def get_bundle(metadata):
> try:
> if is_activity_bundle(metadata):
> @@ -120,6 +124,7 @@ def get_bundle(metadata):
> logging.exception('Incorrect bundle')
> return None
>
> +
> def _get_activities_for_mime(mime_type):
> registry = bundleregistry.get_registry()
> result = registry.get_activities_for_type(mime_type)
> @@ -130,6 +135,7 @@ def _get_activities_for_mime(mime_type):
> result.append(activity)
> return result
>
> +
> def get_activities(metadata):
> activities = []
>
> @@ -148,6 +154,7 @@ def get_activities(metadata):
>
> return activities
>
> +
> def resume(metadata, bundle_id=None):
> registry = bundleregistry.get_registry()
>
> @@ -206,7 +213,6 @@ def resume(metadata, bundle_id=None):
>
> bundle = registry.get_bundle(bundle_id)
>
> -
> if metadata.get('mountpoint', '/') == '/':
> object_id = metadata['uid']
> else:
> @@ -215,6 +221,7 @@ def resume(metadata, bundle_id=None):
> launch(bundle, activity_id=activity_id, object_id=object_id,
> color=get_icon_color(metadata))
>
> +
> def launch(bundle, activity_id=None, object_id=None, uri=None, color=None,
> invited=False):
> if activity_id is None or not activity_id:
> @@ -239,21 +246,26 @@ def launch(bundle, activity_id=None, object_id=None, uri=None, color=None,
> object_id=object_id, uri=uri, invited=invited)
> activityfactory.create(bundle, activity_handle)
>
> +
> def is_activity_bundle(metadata):
> mime_type = metadata.get('mime_type', '')
> return mime_type == ActivityBundle.MIME_TYPE or \
> mime_type == ActivityBundle.DEPRECATED_MIME_TYPE
>
> +
> def is_content_bundle(metadata):
> return metadata.get('mime_type', '') == ContentBundle.MIME_TYPE
>
> +
> def is_journal_bundle(metadata):
> return metadata.get('mime_type', '') == JournalEntryBundle.MIME_TYPE
>
> +
> def is_bundle(metadata):
> return is_activity_bundle(metadata) or is_content_bundle(metadata) or \
> is_journal_bundle(metadata)
>
> +
> def get_icon_color(metadata):
> if metadata is None or not 'icon-color' in metadata:
> client = gconf.client_get_default()
> diff --git a/src/jarabe/journal/modalalert.py b/src/jarabe/journal/modalalert.py
> index c7c6a0a..c306b9e 100644
> --- a/src/jarabe/journal/modalalert.py
> +++ b/src/jarabe/journal/modalalert.py
> @@ -22,6 +22,7 @@ from sugar.graphics.icon import Icon
> from sugar.graphics import style
> from sugar.graphics.xocolor import XoColor
>
> +
> class ModalAlert(gtk.Window):
>
> __gtype_name__ = 'SugarModalAlert'
> @@ -94,4 +95,3 @@ class ModalAlert(gtk.Window):
> '''The opener will listen on the destroy signal
> '''
> self.destroy()
> -
> diff --git a/src/jarabe/journal/model.py b/src/jarabe/journal/model.py
> index bbc3778..4a9a8c8 100644
> --- a/src/jarabe/journal/model.py
> +++ b/src/jarabe/journal/model.py
> @@ -32,6 +32,7 @@ from sugar import dispatch
> from sugar import mime
> from sugar import util
>
> +
> DS_DBUS_SERVICE = 'org.laptop.sugar.DataStore'
> DS_DBUS_INTERFACE = 'org.laptop.sugar.DataStore'
> DS_DBUS_PATH = '/org/laptop/sugar/DataStore'
> @@ -192,6 +193,7 @@ class BaseResultSet(object):
>
> return self._cache[self._position - self._offset]
>
> +
> class DatastoreResultSet(BaseResultSet):
> """Encapsulates the result of a query on the datastore
> """
> @@ -219,6 +221,7 @@ class DatastoreResultSet(BaseResultSet):
>
> return entries, total_count
>
> +
> class InplaceResultSet(BaseResultSet):
> """Encapsulates the result of a query on a mount point
> """
> @@ -350,6 +353,7 @@ class InplaceResultSet(BaseResultSet):
> except Exception:
> logging.exception('Error reading file %r', full_path)
>
> +
> def _get_file_metadata(path, stat):
> client = gconf.client_get_default()
> return {'uid': path,
> @@ -376,15 +380,19 @@ def _get_datastore():
>
> return _datastore
>
> +
> def _datastore_created_cb(object_id):
> created.send(None, object_id=object_id)
>
> +
> def _datastore_updated_cb(object_id):
> updated.send(None, object_id=object_id)
>
> +
> def _datastore_deleted_cb(object_id):
> deleted.send(None, object_id=object_id)
>
> +
> def find(query_, page_size):
> """Returns a ResultSet
> """
> @@ -399,6 +407,7 @@ def find(query_, page_size):
> else:
> return InplaceResultSet(query, page_size, mount_points[0])
>
> +
> def _get_mount_point(path):
> dir_path = os.path.dirname(path)
> while True:
> @@ -407,6 +416,7 @@ def _get_mount_point(path):
> else:
> dir_path = dir_path.rsplit(os.sep, 1)[0]
>
> +
> def get(object_id):
> """Returns the metadata for an object
> """
> @@ -419,6 +429,7 @@ def get(object_id):
> metadata['mountpoint'] = '/'
> return metadata
>
> +
> def get_file(object_id):
> """Returns the file for an object
> """
> @@ -433,6 +444,7 @@ def get_file(object_id):
> else:
> return None
>
> +
> def get_file_size(object_id):
> """Return the file size for an object
> """
> @@ -448,12 +460,14 @@ def get_file_size(object_id):
>
> return 0
>
> +
> def get_unique_values(key):
> """Returns a list with the different values a property has taken
> """
> empty_dict = dbus.Dictionary({}, signature='ss')
> return _get_datastore().get_uniquevaluesfor(key, empty_dict)
>
> +
> def delete(object_id):
> """Removes an object from persistent storage
> """
> @@ -463,6 +477,7 @@ def delete(object_id):
> else:
> _get_datastore().delete(object_id)
>
> +
> def copy(metadata, mount_point):
> """Copies an object to another mount point
> """
> @@ -474,6 +489,7 @@ def copy(metadata, mount_point):
>
> return write(metadata, file_path, transfer_ownership=False)
>
> +
> def write(metadata, file_path='', update_mtime=True, transfer_ownership=True):
> """Creates or updates an entry for that id
> """
> @@ -508,6 +524,7 @@ def write(metadata, file_path='', update_mtime=True, transfer_ownership=True):
>
> return object_id
>
> +
> def _get_file_name(title, mime_type):
> file_name = title
>
> @@ -532,6 +549,7 @@ def _get_file_name(title, mime_type):
>
> return file_name
>
> +
> def _get_unique_file_name(mount_point, file_name):
> if os.path.exists(os.path.join(mount_point, file_name)):
> i = 1
> @@ -544,6 +562,7 @@ def _get_unique_file_name(mount_point, file_name):
>
> return file_name
>
> +
> def is_editable(metadata):
> mountpoint = metadata.get('mountpoint', '/')
> return mountpoint == '/'
> diff --git a/src/jarabe/journal/objectchooser.py b/src/jarabe/journal/objectchooser.py
> index 16e6c4b..97139f8 100644
> --- a/src/jarabe/journal/objectchooser.py
> +++ b/src/jarabe/journal/objectchooser.py
> @@ -29,6 +29,7 @@ from jarabe.journal.listmodel import ListModel
> from jarabe.journal.journaltoolbox import SearchToolbar
> from jarabe.journal.volumestoolbar import VolumesToolbar
>
> +
> class ObjectChooser(gtk.Window):
>
> __gtype_name__ = 'ObjectChooser'
> @@ -136,6 +137,7 @@ class ObjectChooser(gtk.Window):
> visible = event.state == gtk.gdk.VISIBILITY_FULLY_OBSCURED
> self._list_view.set_is_visible(visible)
>
> +
> class TitleBox(VolumesToolbar):
> __gtype_name__ = 'TitleBox'
>
> @@ -162,6 +164,7 @@ class TitleBox(VolumesToolbar):
> self.insert(tool_item, -1)
> tool_item.show()
>
> +
> class ChooserListView(BaseListView):
> __gtype_name__ = 'ChooserListView'
>
> @@ -196,4 +199,3 @@ class ChooserListView(BaseListView):
> self.emit('entry-activated', uid)
>
> return False
> -
> diff --git a/src/jarabe/journal/palettes.py b/src/jarabe/journal/palettes.py
> index 7c3e5ff..cd8c628 100644
> --- a/src/jarabe/journal/palettes.py
> +++ b/src/jarabe/journal/palettes.py
> @@ -35,6 +35,7 @@ from jarabe.model import mimeregistry
> from jarabe.journal import misc
> from jarabe.journal import model
>
> +
> class ObjectPalette(Palette):
>
> __gtype_name__ = 'ObjectPalette'
> @@ -147,6 +148,7 @@ class ObjectPalette(Palette):
> filetransfer.start_transfer(buddy, file_name, title, description,
> mime_type)
>
> +
> class FriendsMenu(gtk.Menu):
> __gtype_name__ = 'JournalFriendsMenu'
>
> diff --git a/src/jarabe/journal/volumestoolbar.py b/src/jarabe/journal/volumestoolbar.py
> index 4208c17..d4caade 100644
> --- a/src/jarabe/journal/volumestoolbar.py
> +++ b/src/jarabe/journal/volumestoolbar.py
> @@ -30,6 +30,7 @@ from sugar.graphics.xocolor import XoColor
> from jarabe.journal import model
> from jarabe.view.palettes import VolumePalette
>
> +
> class VolumesToolbar(gtk.Toolbar):
> __gtype_name__ = 'VolumesToolbar'
>
> @@ -130,6 +131,7 @@ class VolumesToolbar(gtk.Toolbar):
> button = self._get_button_for_mount(mount)
> button.props.active = True
>
> +
> class BaseButton(RadioToolButton):
> __gsignals__ = {
> 'volume-error': (gobject.SIGNAL_RUN_FIRST,
> @@ -167,6 +169,7 @@ class BaseButton(RadioToolButton):
> _('Error while copying the entry. %s') % e.strerror,
> _('Error'))
>
> +
> class VolumeButton(BaseButton):
> def __init__(self, mount):
> self._mount = mount
> @@ -197,6 +200,7 @@ class VolumeButton(BaseButton):
> #palette.set_group_id('frame')
> return palette
>
> +
> class JournalButton(BaseButton):
> def __init__(self):
> BaseButton.__init__(self, mount_point='/')
> @@ -206,4 +210,3 @@ class JournalButton(BaseButton):
> client = gconf.client_get_default()
> color = XoColor(client.get_string('/desktop/sugar/user/color'))
> self.props.xo_color = color
> -
> diff --git a/src/jarabe/model/__init__.py b/src/jarabe/model/__init__.py
> index a9dd95a..85f6a24 100644
> --- a/src/jarabe/model/__init__.py
> +++ b/src/jarabe/model/__init__.py
> @@ -13,4 +13,3 @@
> # You should have received a copy of the GNU General Public License
> # along with this program; if not, write to the Free Software
> # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
> -
> diff --git a/src/jarabe/model/adhoc.py b/src/jarabe/model/adhoc.py
> index ad0c941..a3f2927 100644
> --- a/src/jarabe/model/adhoc.py
> +++ b/src/jarabe/model/adhoc.py
> @@ -24,6 +24,7 @@ from jarabe.model.network import Settings
> from sugar.util import unique_id
> from jarabe.model.network import IP4Config
>
> +
> _NM_SERVICE = 'org.freedesktop.NetworkManager'
> _NM_IFACE = 'org.freedesktop.NetworkManager'
> _NM_PATH = '/org/freedesktop/NetworkManager'
> @@ -32,8 +33,9 @@ _NM_WIRELESS_IFACE = 'org.freedesktop.NetworkManager.Device.Wireless'
> _NM_ACCESSPOINT_IFACE = 'org.freedesktop.NetworkManager.AccessPoint'
> _NM_ACTIVE_CONN_IFACE = 'org.freedesktop.NetworkManager.Connection.Active'
>
> -
> _adhoc_manager_instance = None
> +
> +
> def get_adhoc_manager_instance():
> global _adhoc_manager_instance
> if _adhoc_manager_instance is None:
> diff --git a/src/jarabe/model/buddy.py b/src/jarabe/model/buddy.py
> index 46a9366..dd0ad4f 100644
> --- a/src/jarabe/model/buddy.py
> +++ b/src/jarabe/model/buddy.py
> @@ -28,6 +28,7 @@ from sugar.profile import get_profile
>
> from jarabe.util.telepathy import connection_watcher
>
> +
> CONNECTION_INTERFACE_BUDDY_INFO = 'org.laptop.Telepathy.BuddyInfo'
>
> _owner_instance = None
> @@ -92,6 +93,7 @@ class BaseBuddyModel(gobject.GObject):
>
> class OwnerBuddyModel(BaseBuddyModel):
> __gtype_name__ = 'SugarOwnerBuddyModel'
> +
> def __init__(self):
> BaseBuddyModel.__init__(self)
>
> @@ -192,6 +194,7 @@ def get_owner_instance():
>
> class BuddyModel(BaseBuddyModel):
> __gtype_name__ = 'SugarBuddyModel'
> +
> def __init__(self, **kwargs):
>
> self._account = None
> diff --git a/src/jarabe/model/bundleregistry.py b/src/jarabe/model/bundleregistry.py
> index 2ca5d78..ff54fcf 100644
> --- a/src/jarabe/model/bundleregistry.py
> +++ b/src/jarabe/model/bundleregistry.py
> @@ -456,4 +456,3 @@ def get_registry():
> if not _instance:
> _instance = BundleRegistry()
> return _instance
> -
> diff --git a/src/jarabe/model/filetransfer.py b/src/jarabe/model/filetransfer.py
> index 7d2d5dd..45c1bc4 100644
> --- a/src/jarabe/model/filetransfer.py
> +++ b/src/jarabe/model/filetransfer.py
> @@ -33,6 +33,7 @@ from sugar import dispatch
> from jarabe.util.telepathy import connection_watcher
> from jarabe.model import neighborhood
>
> +
> FT_STATE_NONE = 0
> FT_STATE_PENDING = 1
> FT_STATE_ACCEPTED = 2
> @@ -63,6 +64,7 @@ class StreamSplicer(gobject.GObject):
> gobject.TYPE_NONE,
> ([])),
> }
> +
> def __init__(self, input_stream, output_stream):
> gobject.GObject.__init__(self)
>
> @@ -108,6 +110,7 @@ class StreamSplicer(gobject.GObject):
> gobject.PRIORITY_LOW,
> user_data=data)
>
> +
> class BaseFileTransfer(gobject.GObject):
>
> def __init__(self, connection):
> @@ -179,6 +182,7 @@ class BaseFileTransfer(gobject.GObject):
> def cancel(self):
> self.channel[CHANNEL].Close()
>
> +
> class IncomingFileTransfer(BaseFileTransfer):
> def __init__(self, connection, object_path, props):
> BaseFileTransfer.__init__(self, connection)
> @@ -223,6 +227,7 @@ class IncomingFileTransfer(BaseFileTransfer):
> self._splicer = StreamSplicer(input_stream, output_stream)
> self._splicer.start()
>
> +
> class OutgoingFileTransfer(BaseFileTransfer):
> def __init__(self, buddy, file_name, title, description, mime_type):
>
> @@ -286,6 +291,7 @@ class OutgoingFileTransfer(BaseFileTransfer):
> def cancel(self):
> self.channel[CHANNEL].Close()
>
> +
> def _new_channels_cb(connection, channels):
> for object_path, props in channels:
> if props[CHANNEL + '.ChannelType'] == CHANNEL_TYPE_FILE_TRANSFER and \
> @@ -297,17 +303,21 @@ def _new_channels_cb(connection, channels):
> object_path, props)
> new_file_transfer.send(None, file_transfer=incoming_file_transfer)
>
> +
> def _monitor_connection(connection):
> logging.debug('connection added %r', connection)
> connection[CONNECTION_INTERFACE_REQUESTS].connect_to_signal('NewChannels',
> lambda channels: _new_channels_cb(connection, channels))
>
> +
> def _connection_added_cb(conn_watcher, connection):
> _monitor_connection(connection)
>
> +
> def _connection_removed_cb(conn_watcher, connection):
> logging.debug('connection removed %r', connection)
>
> +
> def init():
> conn_watcher = connection_watcher.get_instance()
> conn_watcher.connect('connection-added', _connection_added_cb)
> @@ -316,11 +326,13 @@ def init():
> for connection in conn_watcher.get_connections():
> _monitor_connection(connection)
>
> +
> def start_transfer(buddy, file_name, title, description, mime_type):
> outgoing_file_transfer = OutgoingFileTransfer(buddy, file_name, title,
> description, mime_type)
> new_file_transfer.send(None, file_transfer=outgoing_file_transfer)
>
> +
> def file_transfer_available():
> conn_watcher = connection_watcher.get_instance()
> for connection in conn_watcher.get_connections():
> @@ -353,4 +365,3 @@ if __name__ == '__main__':
>
> loop = gobject.MainLoop()
> loop.run()
> -
> diff --git a/src/jarabe/model/friends.py b/src/jarabe/model/friends.py
> index ffd655b..b317130 100644
> --- a/src/jarabe/model/friends.py
> +++ b/src/jarabe/model/friends.py
> @@ -91,6 +91,7 @@ class FriendBuddyModel(BuddyModel):
>
> handle = gobject.property(type=object, getter=get_handle)
>
> +
> class Friends(gobject.GObject):
> __gsignals__ = {
> 'friend-added': (gobject.SIGNAL_RUN_FIRST,
> diff --git a/src/jarabe/model/invites.py b/src/jarabe/model/invites.py
> index 7020b8f..8fbc398 100644
> --- a/src/jarabe/model/invites.py
> +++ b/src/jarabe/model/invites.py
> @@ -38,6 +38,7 @@ from jarabe.model import bundleregistry
> from jarabe.model import neighborhood
> from jarabe.journal import misc
>
> +
> CONNECTION_INTERFACE_ACTIVITY_PROPERTIES = \
> 'org.laptop.Telepathy.ActivityProperties'
>
> @@ -107,6 +108,7 @@ class ActivityInvite(object):
> else:
> logging.debug('__handle_with_reply_cb')
>
> +
> class Invites(gobject.GObject):
> __gsignals__ = {
> 'invite-added': (gobject.SIGNAL_RUN_FIRST,
> diff --git a/src/jarabe/model/neighborhood.py b/src/jarabe/model/neighborhood.py
> index 3885b38..ec825ac 100644
> --- a/src/jarabe/model/neighborhood.py
> +++ b/src/jarabe/model/neighborhood.py
> @@ -48,6 +48,7 @@ from sugar.profile import get_profile
> from jarabe.model.buddy import BuddyModel, get_owner_instance
> from jarabe.model import bundleregistry
>
> +
> ACCOUNT_MANAGER_SERVICE = 'org.freedesktop.Telepathy.AccountManager'
> ACCOUNT_MANAGER_PATH = '/org/freedesktop/Telepathy/AccountManager'
> CHANNEL_DISPATCHER_SERVICE = 'org.freedesktop.Telepathy.ChannelDispatcher'
> @@ -79,6 +80,7 @@ class ActivityModel(gobject.GObject):
> 'buddy-removed': (gobject.SIGNAL_RUN_FIRST,
> gobject.TYPE_NONE, ([object])),
> }
> +
> def __init__(self, activity_id, room_handle):
> gobject.GObject.__init__(self)
>
> @@ -154,6 +156,7 @@ class ActivityModel(gobject.GObject):
>
> current_buddies = gobject.property(type=object, getter=get_current_buddies)
>
> +
> class _Account(gobject.GObject):
> __gsignals__ = {
> 'activity-added': (gobject.SIGNAL_RUN_FIRST,
> @@ -617,6 +620,7 @@ class _Account(gobject.GObject):
> def __set_enabled_cb(self):
> logging.debug('_Account.__set_enabled_cb success')
>
> +
> class Neighborhood(gobject.GObject):
> __gsignals__ = {
> 'activity-added': (gobject.SIGNAL_RUN_FIRST,
> diff --git a/src/jarabe/model/network.py b/src/jarabe/model/network.py
> index d76e408..20fd192 100644
> --- a/src/jarabe/model/network.py
> +++ b/src/jarabe/model/network.py
> @@ -34,6 +34,7 @@ from sugar import dispatch
> from sugar import env
> from sugar.util import unique_id
>
> +
> DEVICE_TYPE_802_3_ETHERNET = 1
> DEVICE_TYPE_802_11_WIRELESS = 2
> DEVICE_TYPE_GSM_MODEM = 3
> @@ -147,6 +148,7 @@ _conn_counter = 0
>
> _nm_device_state_reason_description = None
>
> +
> def get_error_by_reason(reason):
> global _nm_device_state_reason_description
>
> @@ -242,7 +244,6 @@ def get_error_by_reason(reason):
> return _nm_device_state_reason_description[reason]
>
>
> -
> def frequency_to_channel(frequency):
> """Returns the channel matching a given radio channel frequency. If a
> frequency is not in the dictionary channel 1 will be returned.
> @@ -263,6 +264,7 @@ def frequency_to_channel(frequency):
> return 1
> return ftoc[frequency]
>
> +
> def is_sugar_adhoc_network(ssid):
> """Checks whether an access point is a sugar Ad-hoc network.
>
> @@ -294,6 +296,7 @@ class WirelessSecurity(object):
> wireless_security['group'] = self.group
> return wireless_security
>
> +
> class Wireless(object):
> nm_name = "802-11-wireless"
>
> @@ -352,6 +355,7 @@ class Connection(object):
> connection['timestamp'] = self.timestamp
> return connection
>
> +
> class IP4Config(object):
> def __init__(self):
> self.method = None
> @@ -362,6 +366,7 @@ class IP4Config(object):
> ip4_config['method'] = self.method
> return ip4_config
>
> +
> class Serial(object):
> def __init__(self):
> self.baud = None
> @@ -374,6 +379,7 @@ class Serial(object):
>
> return serial
>
> +
> class Ppp(object):
> def __init__(self):
> pass
> @@ -382,6 +388,7 @@ class Ppp(object):
> ppp = {}
> return ppp
>
> +
> class Gsm(object):
> def __init__(self):
> self.apn = None
> @@ -400,6 +407,7 @@ class Gsm(object):
>
> return gsm
>
> +
> class Settings(object):
> def __init__(self, wireless_cfg=None):
> self.connection = Connection()
> @@ -422,6 +430,7 @@ class Settings(object):
> settings['ipv4'] = self.ip4_config.get_dict()
> return settings
>
> +
> class Secrets(object):
> def __init__(self, settings):
> self.settings = settings
> @@ -447,6 +456,7 @@ class Secrets(object):
>
> return settings
>
> +
> class SettingsGsm(object):
> def __init__(self):
> self.connection = Connection()
> @@ -466,6 +476,7 @@ class SettingsGsm(object):
>
> return settings
>
> +
> class SecretsGsm(object):
> def __init__(self):
> self.password = None
> @@ -482,6 +493,7 @@ class SecretsGsm(object):
> secrets['puk'] = self.puk
> return {'gsm': secrets}
>
> +
> class NMSettings(dbus.service.Object):
> def __init__(self):
> bus = dbus.SystemBus()
> @@ -509,6 +521,7 @@ class NMSettings(dbus.service.Object):
> self.secrets_request.send(self, connection=sender,
> response=kwargs['response'])
>
> +
> class SecretsResponse(object):
> ''' Intermediate object to report the secrets from the dialog
> back to the connection object and which will inform NM
> @@ -525,6 +538,7 @@ class SecretsResponse(object):
> def set_error(self, error):
> self._error_cb(error)
>
> +
> class NMSettingsConnection(dbus.service.Object):
> def __init__(self, path, settings, secrets):
> bus = dbus.SystemBus()
> @@ -649,6 +663,7 @@ class NMSettingsConnection(dbus.service.Object):
> else:
> raise Exception('The stored GSM secret has already been supplied ')
>
> +
> class AccessPoint(gobject.GObject):
> __gsignals__ = {
> 'props-changed': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
> @@ -757,6 +772,7 @@ class AccessPoint(gobject.GObject):
> path=self.model.object_path,
> dbus_interface=NM_ACCESSPOINT_IFACE)
>
> +
> def get_settings():
> global _nm_settings
> if _nm_settings is None:
> @@ -767,6 +783,7 @@ def get_settings():
> load_connections()
> return _nm_settings
>
> +
> def find_connection_by_ssid(ssid):
> connections = get_settings().connections
>
> @@ -778,6 +795,7 @@ def find_connection_by_ssid(ssid):
>
> return None
>
> +
> def add_connection(uuid, settings, secrets=None):
> global _conn_counter
>
> @@ -788,6 +806,7 @@ def add_connection(uuid, settings, secrets=None):
> _nm_settings.add_connection(uuid, conn)
> return conn
>
> +
> def load_wifi_connections():
> profile_path = env.get_profile_path()
> config_path = os.path.join(profile_path, 'nm', 'connections.cfg')
> @@ -893,10 +912,12 @@ def load_gsm_connection():
> else:
> logging.exception("No gsm connection was set in GConf.")
>
> +
> def load_connections():
> load_wifi_connections()
> load_gsm_connection()
>
> +
> def find_gsm_connection():
> connections = get_settings().connections
>
> diff --git a/src/jarabe/model/notifications.py b/src/jarabe/model/notifications.py
> index b5a6822..47185f1 100644
> --- a/src/jarabe/model/notifications.py
> +++ b/src/jarabe/model/notifications.py
> @@ -23,6 +23,7 @@ from sugar import dispatch
>
> from jarabe import config
>
> +
> _DBUS_SERVICE = "org.freedesktop.Notifications"
> _DBUS_IFACE = "org.freedesktop.Notifications"
> _DBUS_PATH = "/org/freedesktop/Notifications"
> @@ -76,7 +77,6 @@ class NotificationService(dbus.service.Object):
> def GetServerInformation(self, name, vendor, version):
> return 'Sugar Shell', 'Sugar', config.version
>
> -
> @dbus.service.signal(_DBUS_IFACE, signature="uu")
> def NotificationClosed(self, notification_id, reason):
> pass
> @@ -92,6 +92,6 @@ def get_service():
> _instance = NotificationService()
> return _instance
>
> +
> def init():
> get_service()
> -
> diff --git a/src/jarabe/model/olpcmesh.py b/src/jarabe/model/olpcmesh.py
> index 7873692..ceb7e37 100644
> --- a/src/jarabe/model/olpcmesh.py
> +++ b/src/jarabe/model/olpcmesh.py
> @@ -24,6 +24,7 @@ from jarabe.model.network import Settings
> from jarabe.model.network import OlpcMesh as OlpcMeshSettings
> from sugar.util import unique_id
>
> +
> _NM_SERVICE = 'org.freedesktop.NetworkManager'
> _NM_IFACE = 'org.freedesktop.NetworkManager'
> _NM_PATH = '/org/freedesktop/NetworkManager'
> @@ -43,6 +44,7 @@ DEVICE_STATE_IP_CONFIG = 7
> DEVICE_STATE_ACTIVATED = 8
> DEVICE_STATE_FAILED = 9
>
> +
> class OlpcMeshManager(object):
> def __init__(self, mesh_device):
> self._bus = dbus.SystemBus()
> @@ -211,4 +213,3 @@ class OlpcMeshManager(object):
> self._connection_queue.append((6, _XS_ANYCAST))
> self._connection_queue.append((1, _XS_ANYCAST))
> self._try_next_connection_from_queue()
> -
> diff --git a/src/jarabe/model/screen.py b/src/jarabe/model/screen.py
> index 4403c1c..965317d 100644
> --- a/src/jarabe/model/screen.py
> +++ b/src/jarabe/model/screen.py
> @@ -18,12 +18,14 @@ import logging
>
> import dbus
>
> +
> _HARDWARE_MANAGER_INTERFACE = 'org.freedesktop.ohm.Keystore'
> _HARDWARE_MANAGER_SERVICE = 'org.freedesktop.ohm'
> _HARDWARE_MANAGER_OBJECT_PATH = '/org/freedesktop/ohm/Keystore'
>
> _ohm_service = None
>
> +
> def _get_ohm():
> global _ohm_service
> if _ohm_service is None:
> @@ -35,9 +37,9 @@ def _get_ohm():
>
> return _ohm_service
>
> +
> def set_dcon_freeze(frozen):
> try:
> _get_ohm().SetKey("display.dcon_freeze", frozen)
> except dbus.DBusException:
> logging.error('Cannot unfreeze the DCON')
> -
> diff --git a/src/jarabe/model/session.py b/src/jarabe/model/session.py
> index 9e0f087..531b7a5 100644
> --- a/src/jarabe/model/session.py
> +++ b/src/jarabe/model/session.py
> @@ -24,8 +24,10 @@ import logging
> from sugar import session
> from sugar import env
>
> +
> _session_manager = None
>
> +
> class SessionManager(session.SessionManager):
> MODE_LOGOUT = 0
> MODE_SHUTDOWN = 1
> @@ -81,6 +83,7 @@ class SessionManager(session.SessionManager):
> # killed by the X (dis)connection
> sys.exit()
>
> +
> def get_session_manager():
> global _session_manager
>
> diff --git a/src/jarabe/model/shell.py b/src/jarabe/model/shell.py
> index 65d1c26..624648c 100644
> --- a/src/jarabe/model/shell.py
> +++ b/src/jarabe/model/shell.py
> @@ -638,4 +638,3 @@ def get_model():
> if _model is None:
> _model = ShellModel()
> return _model
> -
> diff --git a/src/jarabe/model/sound.py b/src/jarabe/model/sound.py
> index 16e69b5..9e1e748 100644
> --- a/src/jarabe/model/sound.py
> +++ b/src/jarabe/model/sound.py
> @@ -20,6 +20,7 @@ from sugar import env
> from sugar import _sugarext
> from sugar import dispatch
>
> +
> VOLUME_STEP = 10
>
> muted_changed = dispatch.Signal()
> @@ -31,9 +32,11 @@ _volume = _sugarext.VolumeAlsa()
> def get_muted():
> return _volume.get_mute()
>
> +
> def get_volume():
> return _volume.get_volume()
>
> +
> def set_volume(new_volume):
> old_volume = _volume.get_volume()
> _volume.set_volume(new_volume)
> @@ -41,6 +44,7 @@ def set_volume(new_volume):
> volume_changed.send(None)
> save()
>
> +
> def set_muted(new_state):
> old_state = _volume.get_mute()
> _volume.set_mute(new_state)
> @@ -48,11 +52,13 @@ def set_muted(new_state):
> muted_changed.send(None)
> save()
>
> +
> def save():
> if env.is_emulator() is False:
> client = gconf.client_get_default()
> client.set_int('/desktop/sugar/sound/volume', get_volume())
>
> +
> def restore():
> if env.is_emulator() is False:
> client = gconf.client_get_default()
> diff --git a/src/jarabe/model/telepathyclient.py b/src/jarabe/model/telepathyclient.py
> index 189e344..c6fbac1 100644
> --- a/src/jarabe/model/telepathyclient.py
> +++ b/src/jarabe/model/telepathyclient.py
> @@ -26,6 +26,7 @@ from telepathy.server import DBusProperties
>
> from sugar import dispatch
>
> +
> SUGAR_CLIENT_SERVICE = 'org.freedesktop.Telepathy.Client.Sugar'
> SUGAR_CLIENT_PATH = '/org/freedesktop/Telepathy/Client/Sugar'
>
> diff --git a/src/jarabe/util/__init__.py b/src/jarabe/util/__init__.py
> index 1610dd0..9c80ecb 100644
> --- a/src/jarabe/util/__init__.py
> +++ b/src/jarabe/util/__init__.py
> @@ -16,4 +16,3 @@
> # You should have received a copy of the GNU General Public License
> # along with this program; if not, write to the Free Software
> # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
> -
> diff --git a/src/jarabe/util/emulator.py b/src/jarabe/util/emulator.py
> index b6ce9dc..afcac30 100644
> --- a/src/jarabe/util/emulator.py
> +++ b/src/jarabe/util/emulator.py
> @@ -118,6 +118,7 @@ def _start_window_manager():
>
> gobject.spawn_async(cmd, flags=gobject.SPAWN_SEARCH_PATH)
>
> +
> def _setup_env(display, scaling, emulator_pid):
> os.environ['SUGAR_EMULATOR'] = 'yes'
> os.environ['GABBLE_LOGFILE'] = os.path.join(
> @@ -136,6 +137,7 @@ def _setup_env(display, scaling, emulator_pid):
> if scaling:
> os.environ['SUGAR_SCALING'] = scaling
>
> +
> def main():
> """Script-level operations"""
>
> diff --git a/src/jarabe/util/telepathy/__init__.py b/src/jarabe/util/telepathy/__init__.py
> index 387d09c..eee4abb 100644
> --- a/src/jarabe/util/telepathy/__init__.py
> +++ b/src/jarabe/util/telepathy/__init__.py
> @@ -16,4 +16,3 @@
> # You should have received a copy of the GNU General Public License
> # along with this program; if not, write to the Free Software
> # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
> -
> diff --git a/src/jarabe/util/telepathy/connection_watcher.py b/src/jarabe/util/telepathy/connection_watcher.py
> index 27ac018..2e073ae 100644
> --- a/src/jarabe/util/telepathy/connection_watcher.py
> +++ b/src/jarabe/util/telepathy/connection_watcher.py
> @@ -104,6 +104,7 @@ def get_instance():
> _instance = ConnectionWatcher()
> return _instance
>
> +
> if __name__ == '__main__':
> dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
>
> diff --git a/src/jarabe/view/__init__.py b/src/jarabe/view/__init__.py
> index a9dd95a..85f6a24 100644
> --- a/src/jarabe/view/__init__.py
> +++ b/src/jarabe/view/__init__.py
> @@ -13,4 +13,3 @@
> # You should have received a copy of the GNU General Public License
> # along with this program; if not, write to the Free Software
> # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
> -
> diff --git a/src/jarabe/view/buddyicon.py b/src/jarabe/view/buddyicon.py
> index 332c0c8..a274605 100644
> --- a/src/jarabe/view/buddyicon.py
> +++ b/src/jarabe/view/buddyicon.py
> @@ -19,6 +19,7 @@ from sugar.graphics import style
>
> from jarabe.view.buddymenu import BuddyMenu
>
> +
> class BuddyIcon(CanvasIcon):
> def __init__(self, buddy, size=style.STANDARD_ICON_SIZE):
> CanvasIcon.__init__(self, icon_name='computer-xo', size=size)
> @@ -60,4 +61,3 @@ class BuddyIcon(CanvasIcon):
> self._greyed_out = (self._buddy.get_nick().lower().find(query) == -1) \
> and not self._buddy.is_owner()
> self._update_color()
> -
> diff --git a/src/jarabe/view/buddymenu.py b/src/jarabe/view/buddymenu.py
> index 0ba6cc1..b4bb492 100644
> --- a/src/jarabe/view/buddymenu.py
> +++ b/src/jarabe/view/buddymenu.py
> @@ -31,6 +31,7 @@ from jarabe.model import friends
> from jarabe.model.session import get_session_manager
> from jarabe.controlpanel.gui import ControlPanel
>
> +
> class BuddyMenu(Palette):
> def __init__(self, buddy):
> self._buddy = buddy
> diff --git a/src/jarabe/view/keyhandler.py b/src/jarabe/view/keyhandler.py
> index 93ddf47..794092d 100644
> --- a/src/jarabe/view/keyhandler.py
> +++ b/src/jarabe/view/keyhandler.py
> @@ -32,10 +32,12 @@ from jarabe.model.shell import ShellModel
> from jarabe import config
> from jarabe.journal import journalactivity
>
> +
> _VOLUME_STEP = sound.VOLUME_STEP
> _VOLUME_MAX = 100
> _TABBING_MODIFIER = gtk.gdk.MOD1_MASK
>
> +
> _actions_table = {
> 'F1' : 'zoom_mesh',
> 'F2' : 'zoom_group',
> @@ -241,4 +243,3 @@ def setup(frame):
> del _instance
>
> _instance = KeyHandler(frame)
> -
> diff --git a/src/jarabe/view/palettes.py b/src/jarabe/view/palettes.py
> index 43612d4..6104538 100644
> --- a/src/jarabe/view/palettes.py
> +++ b/src/jarabe/view/palettes.py
> @@ -35,6 +35,7 @@ from jarabe.model import shell
> from jarabe.view.viewsource import setup_view_source
> from jarabe.journal import misc
>
> +
> class BasePalette(Palette):
> def __init__(self, home_activity):
> Palette.__init__(self)
> @@ -147,6 +148,7 @@ class ActivityPalette(Palette):
> self.popdown(immediate=True)
> misc.launch(self._activity_info)
>
> +
> class JournalPalette(BasePalette):
> def __init__(self, home_activity):
> self._home_activity = home_activity
> @@ -198,6 +200,7 @@ class JournalPalette(BasePalette):
> self._free_space_label.props.label = _('%(free_space)d MB Free') % \
> {'free_space': free_space / (1024 * 1024)}
>
> +
> class VolumePalette(Palette):
> def __init__(self, mount):
> Palette.__init__(self, label=mount.get_name())
> @@ -247,4 +250,3 @@ class VolumePalette(Palette):
> self._progress_bar.props.fraction = fraction
> self._free_space_label.props.label = _('%(free_space)d MB Free') % \
> {'free_space': free_space / (1024 * 1024)}
> -
> diff --git a/src/jarabe/view/pulsingicon.py b/src/jarabe/view/pulsingicon.py
> index 43ec358..392a404 100644
> --- a/src/jarabe/view/pulsingicon.py
> +++ b/src/jarabe/view/pulsingicon.py
> @@ -21,9 +21,11 @@ import gobject
>
> from sugar.graphics.icon import Icon, CanvasIcon
>
> +
> _INTERVAL = 100
> _STEP = math.pi / 10 # must be a fraction of pi, for clean caching
>
> +
> class Pulser(object):
> def __init__(self, icon):
> self._pulse_hid = None
> @@ -83,6 +85,7 @@ class Pulser(object):
>
> return True
>
> +
> class PulsingIcon(Icon):
> __gtype_name__ = 'SugarPulsingIcon'
>
> @@ -161,6 +164,7 @@ class PulsingIcon(Icon):
> if self._palette is not None:
> self._palette.destroy()
>
> +
> class CanvasPulsingIcon(CanvasIcon):
> __gtype_name__ = 'SugarCanvasPulsingIcon'
>
> diff --git a/src/jarabe/view/service.py b/src/jarabe/view/service.py
> index 7af778a..16299de 100644
> --- a/src/jarabe/view/service.py
> +++ b/src/jarabe/view/service.py
> @@ -23,10 +23,12 @@ import gtk
> from jarabe.model import shell
> from jarabe.model import bundleregistry
>
> +
> _DBUS_SERVICE = "org.laptop.Shell"
> _DBUS_SHELL_IFACE = "org.laptop.Shell"
> _DBUS_PATH = "/org/laptop/Shell"
>
> +
> class UIService(dbus.service.Object):
> """Provides d-bus service to script the shell's operations
>
> @@ -86,4 +88,3 @@ class UIService(dbus.service.Object):
> in_signature="s", out_signature="")
> def NotifyLaunchFailure(self, activity_id):
> shell.get_model().notify_launch_failed(activity_id)
> -
> diff --git a/src/jarabe/view/tabbinghandler.py b/src/jarabe/view/tabbinghandler.py
> index f52bda3..0889792 100644
> --- a/src/jarabe/view/tabbinghandler.py
> +++ b/src/jarabe/view/tabbinghandler.py
> @@ -21,8 +21,10 @@ import gtk
>
> from jarabe.model import shell
>
> +
> _RAISE_DELAY = 250
>
> +
> class TabbingHandler(object):
> def __init__(self, frame, modifier):
> self._frame = frame
> @@ -145,4 +147,3 @@ class TabbingHandler(object):
>
> def is_tabbing(self):
> return self._tabbing
> -
> diff --git a/src/jarabe/view/viewsource.py b/src/jarabe/view/viewsource.py
> index 290df18..e6e7e36 100644
> --- a/src/jarabe/view/viewsource.py
> +++ b/src/jarabe/view/viewsource.py
> @@ -37,11 +37,13 @@ from sugar.bundle.activitybundle import ActivityBundle
> from sugar.datastore import datastore
> from sugar import mime
>
> +
> _SOURCE_FONT = pango.FontDescription('Monospace %d' % style.FONT_SIZE)
>
> _logger = logging.getLogger('ViewSource')
> map_activity_to_window = {}
>
> +
> def setup_view_source(activity):
> service = activity.get_service()
> if service is not None:
> @@ -89,6 +91,7 @@ def setup_view_source(activity):
> map_activity_to_window[window_xid] = view_source
> view_source.show()
>
> +
> class ViewSource(gtk.Window):
> __gtype_name__ = 'SugarViewSource'
>
> @@ -195,6 +198,7 @@ class ViewSource(gtk.Window):
> else:
> self._source_display.file_path = None
>
> +
> class DocumentButton(RadioToolButton):
> __gtype_name__ = 'SugarDocumentButton'
>
> @@ -251,6 +255,7 @@ class DocumentButton(RadioToolButton):
> logging.debug('Error saving Source object to datastore: %s', err)
> self._jobject.destroy()
>
> +
> class Toolbar(gtk.Toolbar):
> __gtype_name__ = 'SugarViewSourceToolbar'
>
> @@ -339,6 +344,7 @@ class Toolbar(gtk.Toolbar):
> if button.props.active:
> self.emit('source-selected', path)
>
> +
> class FileViewer(gtk.ScrolledWindow):
> __gtype_name__ = 'SugarFileViewer'
>
> @@ -405,6 +411,7 @@ class FileViewer(gtk.ScrolledWindow):
> file_path = model.get_value(tree_iter, 1)
> self.emit('file-selected', file_path)
>
> +
> class SourceDisplay(gtk.ScrolledWindow):
> __gtype_name__ = 'SugarSourceDisplay'
>
> @@ -461,4 +468,3 @@ class SourceDisplay(gtk.ScrolledWindow):
> return self._file_path
>
> file_path = property(_get_file_path, _set_file_path)
> -
> --
> 1.7.1
>
> _______________________________________________
> Sugar-devel mailing list
> Sugar-devel at lists.sugarlabs.org
> http://lists.sugarlabs.org/listinfo/sugar-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sugarlabs.org/archive/sugar-devel/attachments/20101016/55ae1e63/attachment-0001.html>
More information about the Sugar-devel
mailing list