Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Schampijer <simon@laptop.org>2012-09-03 08:17:48 (GMT)
committer Simon Schampijer <simon@laptop.org>2012-09-07 09:14:24 (GMT)
commit3007f43996b5ef9a9fb4ccf37906f17612438c68 (patch)
treec91708f35f18baef6ef60779165bb14a85f0c09e
parent98f5b640ad4c3f1d67622a031629af42f0b96997 (diff)
Run pygi-convert.sh for automatic conversion from GTK+ 2 to GTK+ 3
Run pygi-convert.sh for automatic conversion from GTK+ 2 to GTK+ 3 and pygobject+gobject-introspection. This is only on a best-effort basis; the code will be in a broken state after this patch and need to be fixed manually. The purpose of committing the intermediate, non-working output is to make it reproducible. It's impractical to manually review the changes. The exact version used was 2d8f48f4ff56bb75985136452b50b75895258608 from the main pygobject repository [1]. [1] git://git.gnome.org/pygobject Signed-off-by: Simon Schampijer <simon@laptop.org> Acked-by: Manuel QuiƱones <manuq@laptop.org>
-rwxr-xr-xbin/sugar-session46
-rw-r--r--extensions/cpsection/aboutcomputer/view.py136
-rw-r--r--extensions/cpsection/aboutme/__init__.py4
-rw-r--r--extensions/cpsection/aboutme/model.py14
-rw-r--r--extensions/cpsection/aboutme/view.py64
-rw-r--r--extensions/cpsection/datetime/model.py6
-rw-r--r--extensions/cpsection/datetime/view.py34
-rw-r--r--extensions/cpsection/frame/model.py10
-rw-r--r--extensions/cpsection/frame/view.py78
-rw-r--r--extensions/cpsection/keyboard/model.py12
-rw-r--r--extensions/cpsection/keyboard/view.py142
-rw-r--r--extensions/cpsection/language/view.py56
-rwxr-xr-xextensions/cpsection/modemconfiguration/model.py4
-rw-r--r--extensions/cpsection/modemconfiguration/view.py38
-rw-r--r--extensions/cpsection/network/model.py12
-rw-r--r--extensions/cpsection/network/view.py106
-rw-r--r--extensions/cpsection/power/model.py6
-rw-r--r--extensions/cpsection/power/view.py34
-rw-r--r--extensions/cpsection/updater/backends/aslo.py4
-rwxr-xr-xextensions/cpsection/updater/model.py40
-rw-r--r--extensions/cpsection/updater/view.py98
-rw-r--r--extensions/deviceicon/battery.py36
-rw-r--r--extensions/deviceicon/network.py84
-rw-r--r--extensions/deviceicon/speaker.py24
-rw-r--r--extensions/deviceicon/speech.py26
-rw-r--r--extensions/deviceicon/touchpad.py12
-rw-r--r--extensions/deviceicon/volume.py24
-rw-r--r--extensions/globalkey/screenshot.py12
-rw-r--r--src/jarabe/controlpanel/gui.py82
-rw-r--r--src/jarabe/controlpanel/inlinealert.py22
-rw-r--r--src/jarabe/controlpanel/sectionview.py12
-rw-r--r--src/jarabe/controlpanel/toolbar.py38
-rw-r--r--src/jarabe/desktop/activitieslist.py102
-rw-r--r--src/jarabe/desktop/favoriteslayout.py18
-rw-r--r--src/jarabe/desktop/favoritesview.py50
-rw-r--r--src/jarabe/desktop/friendview.py6
-rw-r--r--src/jarabe/desktop/grid.py40
-rw-r--r--src/jarabe/desktop/homebox.py18
-rw-r--r--src/jarabe/desktop/homewindow.py48
-rw-r--r--src/jarabe/desktop/keydialog.py76
-rw-r--r--src/jarabe/desktop/meshbox.py22
-rw-r--r--src/jarabe/desktop/schoolserver.py4
-rw-r--r--src/jarabe/desktop/snowflakelayout.py12
-rw-r--r--src/jarabe/desktop/transitionbox.py4
-rw-r--r--src/jarabe/desktop/viewcontainer.py8
-rw-r--r--src/jarabe/desktop/viewtoolbar.py28
-rw-r--r--src/jarabe/frame/activitiestray.py54
-rw-r--r--src/jarabe/frame/clipboard.py18
-rw-r--r--src/jarabe/frame/clipboardicon.py16
-rw-r--r--src/jarabe/frame/clipboardmenu.py16
-rw-r--r--src/jarabe/frame/clipboardobject.py10
-rw-r--r--src/jarabe/frame/clipboardpanelwindow.py6
-rw-r--r--src/jarabe/frame/clipboardtray.py14
-rw-r--r--src/jarabe/frame/eventarea.py42
-rw-r--r--src/jarabe/frame/frame.py34
-rw-r--r--src/jarabe/frame/frameinvoker.py10
-rw-r--r--src/jarabe/frame/framewindow.py52
-rw-r--r--src/jarabe/frame/notification.py26
-rw-r--r--src/jarabe/frame/zoomtoolbar.py12
-rw-r--r--src/jarabe/intro/__init__.py4
-rw-r--r--src/jarabe/intro/colorpicker.py8
-rw-r--r--src/jarabe/intro/window.py78
-rw-r--r--src/jarabe/journal/detailview.py38
-rw-r--r--src/jarabe/journal/expandedentry.py114
-rw-r--r--src/jarabe/journal/journalactivity.py28
-rw-r--r--src/jarabe/journal/journaltoolbox.py56
-rw-r--r--src/jarabe/journal/keepicon.py12
-rw-r--r--src/jarabe/journal/listmodel.py16
-rw-r--r--src/jarabe/journal/listview.py152
-rw-r--r--src/jarabe/journal/misc.py18
-rw-r--r--src/jarabe/journal/modalalert.py38
-rw-r--r--src/jarabe/journal/model.py14
-rw-r--r--src/jarabe/journal/objectchooser.py58
-rw-r--r--src/jarabe/journal/palettes.py62
-rw-r--r--src/jarabe/journal/volumestoolbar.py46
-rw-r--r--src/jarabe/model/adhoc.py18
-rw-r--r--src/jarabe/model/buddy.py26
-rw-r--r--src/jarabe/model/bundleregistry.py32
-rw-r--r--src/jarabe/model/filetransfer.py40
-rw-r--r--src/jarabe/model/friends.py16
-rw-r--r--src/jarabe/model/invites.py14
-rw-r--r--src/jarabe/model/mimeregistry.py8
-rw-r--r--src/jarabe/model/neighborhood.py80
-rw-r--r--src/jarabe/model/network.py18
-rw-r--r--src/jarabe/model/olpcmesh.py6
-rw-r--r--src/jarabe/model/session.py6
-rw-r--r--src/jarabe/model/shell.py86
-rw-r--r--src/jarabe/model/sound.py10
-rw-r--r--src/jarabe/model/speech.py36
-rw-r--r--src/jarabe/util/emulator.py10
-rw-r--r--src/jarabe/util/telepathy/connection_watcher.py16
-rw-r--r--src/jarabe/view/buddymenu.py8
-rw-r--r--src/jarabe/view/customizebundle.py4
-rw-r--r--src/jarabe/view/eventicon.py36
-rw-r--r--src/jarabe/view/keyhandler.py4
-rw-r--r--src/jarabe/view/launcher.py40
-rw-r--r--src/jarabe/view/palettes.py32
-rw-r--r--src/jarabe/view/pulsingicon.py22
-rw-r--r--src/jarabe/view/service.py4
-rw-r--r--src/jarabe/view/tabbinghandler.py30
-rw-r--r--src/jarabe/view/viewsource.py104
101 files changed, 1755 insertions, 1755 deletions
diff --git a/bin/sugar-session b/bin/sugar-session
index e9c8d50..4c16073 100755
--- a/bin/sugar-session
+++ b/bin/sugar-session
@@ -29,18 +29,18 @@ if os.environ.get('SUGAR_LOGGER_LEVEL', '') == 'debug':
import gettext
import logging
-import gconf
-import gtk
-import gobject
+from gi.repository import GConf
+from gi.repository import Gtk
+from gi.repository import GObject
import dbus.glib
-import wnck
+from gi.repository import Wnck
try:
import xklavier
except ImportError:
logging.debug('Could not load xklavier for keyboard configuration')
-gtk.gdk.threads_init()
+Gdk.threads_init()
dbus.glib.threads_init()
def cleanup_logs(logs_dir):
@@ -126,11 +126,11 @@ def setup_file_transfer_cb():
def setup_keyboard_cb():
logging.debug('STARTUP: setup_keyboard_cb')
- gconf_client = gconf.client_get_default()
+ gconf_client = GConf.Client.get_default()
have_config = False
try:
- display = gtk.gdk.display_get_default()
+ display = Gdk.Display.get_default()
if display is not None:
engine = xklavier.Engine(display)
else:
@@ -141,7 +141,7 @@ def setup_keyboard_cb():
configrec.get_from_server(engine)
layouts = gconf_client.get_list(\
- '/desktop/sugar/peripherals/keyboard/layouts', gconf.VALUE_STRING)
+ '/desktop/sugar/peripherals/keyboard/layouts', GConf.ValueType.STRING)
layouts_list = []
variants_list = []
for layout in layouts:
@@ -160,7 +160,7 @@ def setup_keyboard_cb():
configrec.set_model(model)
options = gconf_client.get_list(\
- '/desktop/sugar/peripherals/keyboard/options', gconf.VALUE_STRING)
+ '/desktop/sugar/peripherals/keyboard/options', GConf.ValueType.STRING)
if options:
have_config = True
configrec.set_options(options)
@@ -191,21 +191,21 @@ def bootstrap():
from jarabe.view import launcher
launcher.setup()
- gobject.idle_add(setup_frame_cb)
- gobject.idle_add(setup_keyhandler_cb)
- gobject.idle_add(setup_journal_cb)
- gobject.idle_add(setup_notification_service_cb)
- gobject.idle_add(setup_file_transfer_cb)
- gobject.idle_add(show_software_updates_cb)
+ GObject.idle_add(setup_frame_cb)
+ GObject.idle_add(setup_keyhandler_cb)
+ GObject.idle_add(setup_journal_cb)
+ GObject.idle_add(setup_notification_service_cb)
+ GObject.idle_add(setup_file_transfer_cb)
+ GObject.idle_add(show_software_updates_cb)
if sys.modules.has_key('xklavier'):
- gobject.idle_add(setup_keyboard_cb)
+ GObject.idle_add(setup_keyboard_cb)
def set_fonts():
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
face = client.get_string('/desktop/sugar/font/default_face')
size = client.get_float('/desktop/sugar/font/default_size')
- settings = gtk.settings_get_default()
+ settings = Gtk.Settings.get_default()
settings.set_property("gtk-font-name", "%s %f" % (face, size))
def main():
@@ -235,7 +235,7 @@ def main():
logger.start('shell')
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
client.set_string('/apps/metacity/general/mouse_button_modifier',
'<Super>')
@@ -247,7 +247,7 @@ def main():
# this must be added early, so that it executes and unfreezes the screen
# even when we initially get blocked on the intro screen
- gobject.idle_add(unfreeze_dcon_cb)
+ GObject.idle_add(unfreeze_dcon_cb)
# make sure we have the correct cursor in the intro screen
# TODO #3204
@@ -263,18 +263,18 @@ def main():
sys.path.append(config.ext_path)
icons_path = os.path.join(config.data_path, 'icons')
- gtk.icon_theme_get_default().append_search_path(icons_path)
+ Gtk.IconTheme.get_default().append_search_path(icons_path)
# open homewindow before window_manager to let desktop appear fast
home_window = homewindow.get_instance()
home_window.show()
- screen = wnck.screen_get_default()
+ screen = Wnck.Screen.get_default()
screen.connect('window-manager-changed', __window_manager_changed_cb)
_check_for_window_manager(screen)
try:
- gtk.main()
+ Gtk.main()
except KeyboardInterrupt:
print 'Ctrl+C pressed, exiting...'
diff --git a/extensions/cpsection/aboutcomputer/view.py b/extensions/cpsection/aboutcomputer/view.py
index 6b16005..dbd38ae 100644
--- a/extensions/cpsection/aboutcomputer/view.py
+++ b/extensions/cpsection/aboutcomputer/view.py
@@ -18,7 +18,7 @@
from gettext import gettext as _
-import gtk
+from gi.repository import Gtk
from sugar.graphics import style
@@ -35,14 +35,14 @@ class AboutComputer(SectionView):
self.set_border_width(style.DEFAULT_SPACING * 2)
self.set_spacing(style.DEFAULT_SPACING)
- self._group = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL)
+ self._group = Gtk.SizeGroup(Gtk.SizeGroupMode.HORIZONTAL)
- scrollwindow = gtk.ScrolledWindow()
- scrollwindow.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
- self.pack_start(scrollwindow, expand=True)
+ scrollwindow = Gtk.ScrolledWindow()
+ scrollwindow.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC)
+ self.pack_start(scrollwindow, True, True, 0)
scrollwindow.show()
- self._vbox = gtk.VBox()
+ self._vbox = Gtk.VBox()
scrollwindow.add_with_viewport(self._vbox)
self._vbox.show()
@@ -52,161 +52,161 @@ class AboutComputer(SectionView):
self._setup_copyright()
def _setup_identity(self):
- separator_identity = gtk.HSeparator()
- self._vbox.pack_start(separator_identity, expand=False)
+ separator_identity = Gtk.HSeparator()
+ self._vbox.pack_start(separator_identity, False, True, 0)
separator_identity.show()
- label_identity = gtk.Label(_('Identity'))
+ label_identity = Gtk.Label(label=_('Identity'))
label_identity.set_alignment(0, 0)
- self._vbox.pack_start(label_identity, expand=False)
+ self._vbox.pack_start(label_identity, False, True, 0)
label_identity.show()
- vbox_identity = gtk.VBox()
+ vbox_identity = Gtk.VBox()
vbox_identity.set_border_width(style.DEFAULT_SPACING * 2)
vbox_identity.set_spacing(style.DEFAULT_SPACING)
- box_identity = gtk.HBox(spacing=style.DEFAULT_SPACING)
- label_serial = gtk.Label(_('Serial Number:'))
+ box_identity = Gtk.HBox(spacing=style.DEFAULT_SPACING)
+ label_serial = Gtk.Label(label=_('Serial Number:'))
label_serial.set_alignment(1, 0)
- label_serial.modify_fg(gtk.STATE_NORMAL,
+ label_serial.modify_fg(Gtk.StateType.NORMAL,
style.COLOR_SELECTION_GREY.get_gdk_color())
- box_identity.pack_start(label_serial, expand=False)
+ box_identity.pack_start(label_serial, False, True, 0)
self._group.add_widget(label_serial)
label_serial.show()
- label_serial_no = gtk.Label(self._model.get_serial_number())
+ label_serial_no = Gtk.Label(label=self._model.get_serial_number())
label_serial_no.set_alignment(0, 0)
- box_identity.pack_start(label_serial_no, expand=False)
+ box_identity.pack_start(label_serial_no, False, True, 0)
label_serial_no.show()
- vbox_identity.pack_start(box_identity, expand=False)
+ vbox_identity.pack_start(box_identity, False, True, 0)
box_identity.show()
- self._vbox.pack_start(vbox_identity, expand=False)
+ self._vbox.pack_start(vbox_identity, False, True, 0)
vbox_identity.show()
def _setup_software(self):
- separator_software = gtk.HSeparator()
- self._vbox.pack_start(separator_software, expand=False)
+ separator_software = Gtk.HSeparator()
+ self._vbox.pack_start(separator_software, False, True, 0)
separator_software.show()
- label_software = gtk.Label(_('Software'))
+ label_software = Gtk.Label(label=_('Software'))
label_software.set_alignment(0, 0)
- self._vbox.pack_start(label_software, expand=False)
+ self._vbox.pack_start(label_software, False, True, 0)
label_software.show()
- box_software = gtk.VBox()
+ box_software = Gtk.VBox()
box_software.set_border_width(style.DEFAULT_SPACING * 2)
box_software.set_spacing(style.DEFAULT_SPACING)
- box_build = gtk.HBox(spacing=style.DEFAULT_SPACING)
- label_build = gtk.Label(_('Build:'))
+ box_build = Gtk.HBox(spacing=style.DEFAULT_SPACING)
+ label_build = Gtk.Label(label=_('Build:'))
label_build.set_alignment(1, 0)
- label_build.modify_fg(gtk.STATE_NORMAL,
+ label_build.modify_fg(Gtk.StateType.NORMAL,
style.COLOR_SELECTION_GREY.get_gdk_color())
- box_build.pack_start(label_build, expand=False)
+ box_build.pack_start(label_build, False, True, 0)
self._group.add_widget(label_build)
label_build.show()
- label_build_no = gtk.Label(self._model.get_build_number())
+ label_build_no = Gtk.Label(label=self._model.get_build_number())
label_build_no.set_alignment(0, 0)
- box_build.pack_start(label_build_no, expand=False)
+ box_build.pack_start(label_build_no, False, True, 0)
label_build_no.show()
- box_software.pack_start(box_build, expand=False)
+ box_software.pack_start(box_build, False, True, 0)
box_build.show()
- box_sugar = gtk.HBox(spacing=style.DEFAULT_SPACING)
- label_sugar = gtk.Label(_('Sugar:'))
+ box_sugar = Gtk.HBox(spacing=style.DEFAULT_SPACING)
+ label_sugar = Gtk.Label(label=_('Sugar:'))
label_sugar.set_alignment(1, 0)
- label_sugar.modify_fg(gtk.STATE_NORMAL,
+ label_sugar.modify_fg(Gtk.StateType.NORMAL,
style.COLOR_SELECTION_GREY.get_gdk_color())
- box_sugar.pack_start(label_sugar, expand=False)
+ box_sugar.pack_start(label_sugar, False, True, 0)
self._group.add_widget(label_sugar)
label_sugar.show()
- label_sugar_ver = gtk.Label(config.version)
+ label_sugar_ver = Gtk.Label(label=config.version)
label_sugar_ver.set_alignment(0, 0)
- box_sugar.pack_start(label_sugar_ver, expand=False)
+ box_sugar.pack_start(label_sugar_ver, False, True, 0)
label_sugar_ver.show()
- box_software.pack_start(box_sugar, expand=False)
+ box_software.pack_start(box_sugar, False, True, 0)
box_sugar.show()
- box_firmware = gtk.HBox(spacing=style.DEFAULT_SPACING)
- label_firmware = gtk.Label(_('Firmware:'))
+ box_firmware = Gtk.HBox(spacing=style.DEFAULT_SPACING)
+ label_firmware = Gtk.Label(label=_('Firmware:'))
label_firmware.set_alignment(1, 0)
- label_firmware.modify_fg(gtk.STATE_NORMAL,
+ label_firmware.modify_fg(Gtk.StateType.NORMAL,
style.COLOR_SELECTION_GREY.get_gdk_color())
- box_firmware.pack_start(label_firmware, expand=False)
+ box_firmware.pack_start(label_firmware, False, True, 0)
self._group.add_widget(label_firmware)
label_firmware.show()
- label_firmware_no = gtk.Label(self._model.get_firmware_number())
+ label_firmware_no = Gtk.Label(label=self._model.get_firmware_number())
label_firmware_no.set_alignment(0, 0)
- box_firmware.pack_start(label_firmware_no, expand=False)
+ box_firmware.pack_start(label_firmware_no, False, True, 0)
label_firmware_no.show()
- box_software.pack_start(box_firmware, expand=False)
+ box_software.pack_start(box_firmware, False, True, 0)
box_firmware.show()
- box_wireless_fw = gtk.HBox(spacing=style.DEFAULT_SPACING)
- label_wireless_fw = gtk.Label(_('Wireless Firmware:'))
+ box_wireless_fw = Gtk.HBox(spacing=style.DEFAULT_SPACING)
+ label_wireless_fw = Gtk.Label(label=_('Wireless Firmware:'))
label_wireless_fw.set_alignment(1, 0)
- label_wireless_fw.modify_fg(gtk.STATE_NORMAL,
+ label_wireless_fw.modify_fg(Gtk.StateType.NORMAL,
style.COLOR_SELECTION_GREY.get_gdk_color())
- box_wireless_fw.pack_start(label_wireless_fw, expand=False)
+ box_wireless_fw.pack_start(label_wireless_fw, False, True, 0)
self._group.add_widget(label_wireless_fw)
label_wireless_fw.show()
wireless_fw_no = self._model.get_wireless_firmware()
- label_wireless_fw_no = gtk.Label(wireless_fw_no)
+ label_wireless_fw_no = Gtk.Label(label=wireless_fw_no)
label_wireless_fw_no.set_alignment(0, 0)
- box_wireless_fw.pack_start(label_wireless_fw_no, expand=False)
+ box_wireless_fw.pack_start(label_wireless_fw_no, False, True, 0)
label_wireless_fw_no.show()
- box_software.pack_start(box_wireless_fw, expand=False)
+ box_software.pack_start(box_wireless_fw, False, True, 0)
box_wireless_fw.show()
- self._vbox.pack_start(box_software, expand=False)
+ self._vbox.pack_start(box_software, False, True, 0)
box_software.show()
def _setup_copyright(self):
- separator_copyright = gtk.HSeparator()
- self._vbox.pack_start(separator_copyright, expand=False)
+ separator_copyright = Gtk.HSeparator()
+ self._vbox.pack_start(separator_copyright, False, True, 0)
separator_copyright.show()
- label_copyright = gtk.Label(_('Copyright and License'))
+ label_copyright = Gtk.Label(label=_('Copyright and License'))
label_copyright.set_alignment(0, 0)
- self._vbox.pack_start(label_copyright, expand=False)
+ self._vbox.pack_start(label_copyright, False, True, 0)
label_copyright.show()
- vbox_copyright = gtk.VBox()
+ vbox_copyright = Gtk.VBox()
vbox_copyright.set_border_width(style.DEFAULT_SPACING * 2)
vbox_copyright.set_spacing(style.DEFAULT_SPACING)
copyright_text = 'Ā© 2006-2012 One Laptop per Child Association Inc,' \
' Sugar Labs Inc, Red Hat Inc, Collabora Ltd and' \
' Contributors.'
- label_copyright = gtk.Label(copyright_text)
+ label_copyright = Gtk.Label(label=copyright_text)
label_copyright.set_alignment(0, 0)
- label_copyright.set_size_request(gtk.gdk.screen_width() / 2, -1)
+ label_copyright.set_size_request(Gdk.Screen.width() / 2, -1)
label_copyright.set_line_wrap(True)
label_copyright.show()
- vbox_copyright.pack_start(label_copyright, expand=False)
+ vbox_copyright.pack_start(label_copyright, False, True, 0)
info_text = _('Sugar is the graphical user interface that you are'
' looking at. Sugar is free software, covered by the'
' GNU General Public License, and you are welcome to'
' change it and/or distribute copies of it under'
' certain conditions described therein.')
- label_info = gtk.Label(info_text)
+ label_info = Gtk.Label(label=info_text)
label_info.set_alignment(0, 0)
label_info.set_line_wrap(True)
- label_info.set_size_request(gtk.gdk.screen_width() / 2, -1)
+ label_info.set_size_request(Gdk.Screen.width() / 2, -1)
label_info.show()
- vbox_copyright.pack_start(label_info, expand=False)
+ vbox_copyright.pack_start(label_info, False, True, 0)
- expander = gtk.Expander(_('Full license:'))
+ expander = Gtk.Expander(_('Full license:'))
expander.connect('notify::expanded', self.license_expander_cb)
expander.show()
- vbox_copyright.pack_start(expander, expand=True)
+ vbox_copyright.pack_start(expander, True, True, 0)
- self._vbox.pack_start(vbox_copyright, expand=True)
+ self._vbox.pack_start(vbox_copyright, True, True, 0)
vbox_copyright.show()
def license_expander_cb(self, expander, param_spec):
# load/destroy the license viewer on-demand, to avoid storing the
# GPL in memory at all times
if expander.get_expanded():
- view_license = gtk.TextView()
+ view_license = Gtk.TextView()
view_license.set_editable(False)
view_license.get_buffer().set_text(self._model.get_license())
view_license.show()
diff --git a/extensions/cpsection/aboutme/__init__.py b/extensions/cpsection/aboutme/__init__.py
index 7ded428..67e1dd5 100644
--- a/extensions/cpsection/aboutme/__init__.py
+++ b/extensions/cpsection/aboutme/__init__.py
@@ -15,12 +15,12 @@
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
from gettext import gettext as _
-import gconf
+from gi.repository import GConf
from sugar.graphics.xocolor import XoColor
CLASS = 'AboutMe'
ICON = 'module-about_me'
TITLE = _('About Me')
-client = gconf.client_get_default()
+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 fb4c2f1..ad1de66 100644
--- a/extensions/cpsection/aboutme/model.py
+++ b/extensions/cpsection/aboutme/model.py
@@ -16,7 +16,7 @@
#
from gettext import gettext as _
-import gconf
+from gi.repository import GConf
_COLORS = {
@@ -32,7 +32,7 @@ _MODIFIERS = ('dark', 'medium', 'light')
def get_nick():
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
return client.get_string('/desktop/sugar/user/nick')
@@ -48,13 +48,13 @@ def set_nick(nick):
raise ValueError(_('You must enter a name.'))
if not isinstance(nick, unicode):
nick = unicode(nick, 'utf-8')
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
client.set_string('/desktop/sugar/user/nick', nick)
return 1
def get_color():
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
return client.get_string('/desktop/sugar/user/color')
@@ -106,13 +106,13 @@ def set_color(stroke, fill, stroke_modifier='medium', fill_modifier='medium'):
color = _COLORS[stroke][stroke_modifier] + ',' \
+ _COLORS[fill][fill_modifier]
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
client.set_string('/desktop/sugar/user/color', color)
return 1
def get_color_xo():
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
return client.get_string('/desktop/sugar/user/color')
@@ -120,6 +120,6 @@ def set_color_xo(color):
"""Set a color with an XoColor
This method is used by the graphical user interface
"""
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
client.set_string('/desktop/sugar/user/color', color)
return 1
diff --git a/extensions/cpsection/aboutme/view.py b/extensions/cpsection/aboutme/view.py
index ea7c7c8..143ec26 100644
--- a/extensions/cpsection/aboutme/view.py
+++ b/extensions/cpsection/aboutme/view.py
@@ -15,8 +15,8 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-import gtk
-import gobject
+from gi.repository import Gtk
+from gi.repository import GObject
from gettext import gettext as _
from sugar.graphics import style
@@ -113,8 +113,8 @@ _PREVIOUS_STROKE_COLOR = 4
class ColorPicker(EventIcon):
__gsignals__ = {
- 'color-changed': (gobject.SIGNAL_RUN_FIRST,
- gobject.TYPE_NONE,
+ 'color-changed': (GObject.SignalFlags.RUN_FIRST,
+ None,
([object])),
}
@@ -157,11 +157,11 @@ class AboutMe(SectionView):
self.set_border_width(style.DEFAULT_SPACING * 2)
self.set_spacing(style.DEFAULT_SPACING)
- self._group = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL)
+ self._group = Gtk.SizeGroup(Gtk.SizeGroupMode.HORIZONTAL)
- self._color_label = gtk.HBox(spacing=style.DEFAULT_SPACING)
- self._color_box = gtk.HBox(spacing=style.DEFAULT_SPACING)
- self._color_alert_box = gtk.HBox(spacing=style.DEFAULT_SPACING)
+ self._color_label = Gtk.HBox(spacing=style.DEFAULT_SPACING)
+ self._color_box = Gtk.HBox(spacing=style.DEFAULT_SPACING)
+ self._color_alert_box = Gtk.HBox(spacing=style.DEFAULT_SPACING)
self._color_alert = None
self._pickers = {
@@ -176,35 +176,35 @@ class AboutMe(SectionView):
initial_color = XoColor(self._model.get_color_xo())
self._update_pickers(initial_color)
- self._nick_box = gtk.HBox(spacing=style.DEFAULT_SPACING)
- self._nick_alert_box = gtk.HBox(spacing=style.DEFAULT_SPACING)
+ self._nick_box = Gtk.HBox(spacing=style.DEFAULT_SPACING)
+ self._nick_alert_box = Gtk.HBox(spacing=style.DEFAULT_SPACING)
self._nick_entry = None
self._nick_alert = None
self._setup_nick()
self.setup()
def _setup_nick(self):
- self._nick_entry = gtk.Entry()
- self._nick_entry.modify_bg(gtk.STATE_INSENSITIVE,
+ self._nick_entry = Gtk.Entry()
+ self._nick_entry.modify_bg(Gtk.StateType.INSENSITIVE,
style.COLOR_WHITE.get_gdk_color())
- self._nick_entry.modify_base(gtk.STATE_INSENSITIVE,
+ self._nick_entry.modify_base(Gtk.StateType.INSENSITIVE,
style.COLOR_WHITE.get_gdk_color())
self._nick_entry.set_width_chars(25)
- self._nick_box.pack_start(self._nick_entry, expand=False)
+ self._nick_box.pack_start(self._nick_entry, False, True, 0)
self._nick_entry.show()
- label_entry_error = gtk.Label()
+ label_entry_error = Gtk.Label()
self._group.add_widget(label_entry_error)
- self._nick_alert_box.pack_start(label_entry_error, expand=False)
+ self._nick_alert_box.pack_start(label_entry_error, False, True, 0)
label_entry_error.show()
self._nick_alert = InlineAlert()
- self._nick_alert_box.pack_start(self._nick_alert)
+ self._nick_alert_box.pack_start(self._nick_alert, True, True, 0)
if 'nick' in self.restart_alerts:
self._nick_alert.props.msg = self.restart_msg
self._nick_alert.show()
- self._center_in_panel = gtk.Alignment(0.5)
+ self._center_in_panel = Gtk.Alignment.new(0.5)
self._center_in_panel.add(self._nick_box)
self.pack_start(self._center_in_panel, False)
self.pack_start(self._nick_alert_box, False)
@@ -213,40 +213,40 @@ class AboutMe(SectionView):
self._center_in_panel.show()
def _setup_color(self):
- label_color = gtk.Label(_('Click to change your color:'))
- label_color.modify_fg(gtk.STATE_NORMAL,
+ label_color = Gtk.Label(label=_('Click to change your color:'))
+ label_color.modify_fg(Gtk.StateType.NORMAL,
style.COLOR_SELECTION_GREY.get_gdk_color())
self._group.add_widget(label_color)
- self._color_label.pack_start(label_color, expand=False)
+ self._color_label.pack_start(label_color, False, True, 0)
label_color.show()
for picker_index in sorted(self._pickers.keys()):
if picker_index == _CURRENT_COLOR:
- left_separator = gtk.SeparatorToolItem()
+ left_separator = Gtk.SeparatorToolItem()
left_separator.show()
- self._color_box.pack_start(left_separator, expand=False)
+ self._color_box.pack_start(left_separator, False, True, 0)
picker = self._pickers[picker_index]
picker.show()
- self._color_box.pack_start(picker, expand=False)
+ self._color_box.pack_start(picker, False, True, 0)
if picker_index == _CURRENT_COLOR:
- right_separator = gtk.SeparatorToolItem()
+ right_separator = Gtk.SeparatorToolItem()
right_separator.show()
- self._color_box.pack_start(right_separator, expand=False)
+ self._color_box.pack_start(right_separator, False, True, 0)
- label_color_error = gtk.Label()
+ label_color_error = Gtk.Label()
self._group.add_widget(label_color_error)
- self._color_alert_box.pack_start(label_color_error, expand=False)
+ self._color_alert_box.pack_start(label_color_error, False, True, 0)
label_color_error.show()
self._color_alert = InlineAlert()
- self._color_alert_box.pack_start(self._color_alert)
+ self._color_alert_box.pack_start(self._color_alert, True, True, 0)
if 'color' in self.restart_alerts:
self._color_alert.props.msg = self.restart_msg
self._color_alert.show()
- self._center_in_panel = gtk.Alignment(0.5)
+ self._center_in_panel = Gtk.Alignment.new(0.5)
self._center_in_panel.add(self._color_box)
self.pack_start(self._color_label, False)
self.pack_start(self._center_in_panel, False)
@@ -283,8 +283,8 @@ class AboutMe(SectionView):
def __nick_changed_cb(self, widget, data=None):
if self._nick_sid:
- gobject.source_remove(self._nick_sid)
- self._nick_sid = gobject.timeout_add(self._APPLY_TIMEOUT,
+ GObject.source_remove(self._nick_sid)
+ self._nick_sid = GObject.timeout_add(self._APPLY_TIMEOUT,
self.__nick_timeout_cb, widget)
def __nick_timeout_cb(self, widget):
diff --git a/extensions/cpsection/datetime/model.py b/extensions/cpsection/datetime/model.py
index 84e1259..c9b4586 100644
--- a/extensions/cpsection/datetime/model.py
+++ b/extensions/cpsection/datetime/model.py
@@ -22,7 +22,7 @@
import os
from gettext import gettext as _
-import gconf
+from gi.repository import GConf
_zone_tab = '/usr/share/zoneinfo/zone.tab'
@@ -71,7 +71,7 @@ def read_all_timezones(fn=_zone_tab):
def get_timezone():
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
return client.get_string('/desktop/sugar/date/timezone')
@@ -86,7 +86,7 @@ def set_timezone(timezone):
timezones = read_all_timezones()
if timezone in timezones:
os.environ['TZ'] = timezone
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
client.set_string('/desktop/sugar/date/timezone', timezone)
else:
raise ValueError(_('Error timezone does not exist.'))
diff --git a/extensions/cpsection/datetime/view.py b/extensions/cpsection/datetime/view.py
index 1cef78f..e800856 100644
--- a/extensions/cpsection/datetime/view.py
+++ b/extensions/cpsection/datetime/view.py
@@ -14,8 +14,8 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-import gtk
-import gobject
+from gi.repository import Gtk
+from gi.repository import GObject
from gettext import gettext as _
from sugar.graphics import style
@@ -43,45 +43,45 @@ class TimeZone(SectionView):
self._entry.set_icon_from_name(iconentry.ICON_ENTRY_PRIMARY,
'system-search')
self._entry.add_clear_button()
- self._entry.modify_bg(gtk.STATE_INSENSITIVE,
+ self._entry.modify_bg(Gtk.StateType.INSENSITIVE,
style.COLOR_WHITE.get_gdk_color())
- self._entry.modify_base(gtk.STATE_INSENSITIVE,
+ self._entry.modify_base(Gtk.StateType.INSENSITIVE,
style.COLOR_WHITE.get_gdk_color())
self.pack_start(self._entry, False)
self._entry.show()
- self._scrolled_window = gtk.ScrolledWindow()
- self._scrolled_window.set_policy(gtk.POLICY_NEVER,
- gtk.POLICY_AUTOMATIC)
- self._scrolled_window.set_shadow_type(gtk.SHADOW_IN)
+ self._scrolled_window = Gtk.ScrolledWindow()
+ self._scrolled_window.set_policy(Gtk.PolicyType.NEVER,
+ Gtk.PolicyType.AUTOMATIC)
+ self._scrolled_window.set_shadow_type(Gtk.ShadowType.IN)
- self._store = gtk.ListStore(gobject.TYPE_STRING)
+ self._store = Gtk.ListStore(GObject.TYPE_STRING)
zones = model.read_all_timezones()
for zone in zones:
self._store.append([zone])
- self._treeview = gtk.TreeView(self._store)
+ self._treeview = Gtk.TreeView(self._store)
self._treeview.set_search_entry(self._entry)
self._treeview.set_search_equal_func(self._search)
self._treeview.set_search_column(0)
self._scrolled_window.add(self._treeview)
self._treeview.show()
- self._timezone_column = gtk.TreeViewColumn(_('Timezone'))
- self._cell = gtk.CellRendererText()
+ self._timezone_column = Gtk.TreeViewColumn(_('Timezone'))
+ self._cell = Gtk.CellRendererText()
self._timezone_column.pack_start(self._cell, True)
self._timezone_column.add_attribute(self._cell, 'text', 0)
self._timezone_column.set_sort_column_id(0)
self._treeview.append_column(self._timezone_column)
- self.pack_start(self._scrolled_window)
+ self.pack_start(self._scrolled_window, True, True, 0)
self._scrolled_window.show()
- self._zone_alert_box = gtk.HBox(spacing=style.DEFAULT_SPACING)
+ self._zone_alert_box = Gtk.HBox(spacing=style.DEFAULT_SPACING)
self.pack_start(self._zone_alert_box, False)
self._zone_alert = InlineAlert()
- self._zone_alert_box.pack_start(self._zone_alert)
+ self._zone_alert_box.pack_start(self._zone_alert, True, True, 0)
if 'zone' in self.restart_alerts:
self._zone_alert.props.msg = self.restart_msg
self._zone_alert.show()
@@ -125,8 +125,8 @@ class TimeZone(SectionView):
return False
if self._zone_sid:
- gobject.source_remove(self._zone_sid)
- self._zone_sid = gobject.timeout_add(self._APPLY_TIMEOUT,
+ GObject.source_remove(self._zone_sid)
+ self._zone_sid = GObject.timeout_add(self._APPLY_TIMEOUT,
self.__zone_timeout_cb, row)
return True
diff --git a/extensions/cpsection/frame/model.py b/extensions/cpsection/frame/model.py
index 4796062..d4039f6 100644
--- a/extensions/cpsection/frame/model.py
+++ b/extensions/cpsection/frame/model.py
@@ -16,11 +16,11 @@
#
from gettext import gettext as _
-import gconf
+from gi.repository import GConf
def get_corner_delay():
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
corner_delay = client.get_int('/desktop/sugar/frame/corner_delay')
return corner_delay
@@ -39,13 +39,13 @@ def set_corner_delay(delay):
int(delay)
except ValueError:
raise ValueError(_('Value must be an integer.'))
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
client.set_int('/desktop/sugar/frame/corner_delay', int(delay))
return 0
def get_edge_delay():
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
edge_delay = client.get_int('/desktop/sugar/frame/edge_delay')
return edge_delay
@@ -64,6 +64,6 @@ def set_edge_delay(delay):
int(delay)
except ValueError:
raise ValueError(_('Value must be an integer.'))
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
client.set_int('/desktop/sugar/frame/edge_delay', int(delay))
return 0
diff --git a/extensions/cpsection/frame/view.py b/extensions/cpsection/frame/view.py
index 8b4ab83..6d314f0 100644
--- a/extensions/cpsection/frame/view.py
+++ b/extensions/cpsection/frame/view.py
@@ -14,8 +14,8 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-import gtk
-import gobject
+from gi.repository import Gtk
+from gi.repository import GObject
from gettext import gettext as _
from sugar.graphics import style
@@ -45,18 +45,18 @@ class Frame(SectionView):
self.set_border_width(style.DEFAULT_SPACING * 2)
self.set_spacing(style.DEFAULT_SPACING)
- self._group = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL)
+ self._group = Gtk.SizeGroup(Gtk.SizeGroupMode.HORIZONTAL)
- separator = gtk.HSeparator()
- self.pack_start(separator, expand=False)
+ separator = Gtk.HSeparator()
+ self.pack_start(separator, False, True, 0)
separator.show()
- label_activation = gtk.Label(_('Activation Delay'))
+ label_activation = Gtk.Label(label=_('Activation Delay'))
label_activation.set_alignment(0, 0)
- self.pack_start(label_activation, expand=False)
+ self.pack_start(label_activation, False, True, 0)
label_activation.show()
- self._box_sliders = gtk.VBox()
+ self._box_sliders = Gtk.VBox()
self._box_sliders.set_border_width(style.DEFAULT_SPACING * 2)
self._box_sliders.set_spacing(style.DEFAULT_SPACING)
@@ -68,76 +68,76 @@ class Frame(SectionView):
self._edge_delay_alert = None
self._setup_edge()
- self.pack_start(self._box_sliders, expand=False)
+ self.pack_start(self._box_sliders, False, True, 0)
self._box_sliders.show()
self.setup()
def _setup_corner(self):
- box_delay = gtk.HBox(spacing=style.DEFAULT_SPACING)
- label_delay = gtk.Label(_('Corner'))
+ box_delay = Gtk.HBox(spacing=style.DEFAULT_SPACING)
+ label_delay = Gtk.Label(label=_('Corner'))
label_delay.set_alignment(1, 0.75)
- label_delay.modify_fg(gtk.STATE_NORMAL,
+ label_delay.modify_fg(Gtk.StateType.NORMAL,
style.COLOR_SELECTION_GREY.get_gdk_color())
- box_delay.pack_start(label_delay, expand=False)
+ box_delay.pack_start(label_delay, False, True, 0)
self._group.add_widget(label_delay)
label_delay.show()
- adj = gtk.Adjustment(value=100, lower=0, upper=_MAX_DELAY,
+ adj = Gtk.Adjustment(value=100, lower=0, upper=_MAX_DELAY,
step_incr=100, page_incr=100, page_size=0)
- self._corner_delay_slider = gtk.HScale(adj)
+ self._corner_delay_slider = Gtk.HScale(adj)
self._corner_delay_slider.set_digits(0)
self._corner_delay_slider.connect('format-value',
self.__corner_delay_format_cb)
- box_delay.pack_start(self._corner_delay_slider)
+ box_delay.pack_start(self._corner_delay_slider, True, True, 0)
self._corner_delay_slider.show()
- self._box_sliders.pack_start(box_delay, expand=False)
+ self._box_sliders.pack_start(box_delay, False, True, 0)
box_delay.show()
self._corner_delay_alert = InlineAlert()
- label_delay_error = gtk.Label()
+ label_delay_error = Gtk.Label()
self._group.add_widget(label_delay_error)
- delay_alert_box = gtk.HBox(spacing=style.DEFAULT_SPACING)
- delay_alert_box.pack_start(label_delay_error, expand=False)
+ delay_alert_box = Gtk.HBox(spacing=style.DEFAULT_SPACING)
+ delay_alert_box.pack_start(label_delay_error, False, True, 0)
label_delay_error.show()
- delay_alert_box.pack_start(self._corner_delay_alert, expand=False)
- self._box_sliders.pack_start(delay_alert_box, expand=False)
+ delay_alert_box.pack_start(self._corner_delay_alert, False, True, 0)
+ self._box_sliders.pack_start(delay_alert_box, False, True, 0)
delay_alert_box.show()
if 'corner_delay' in self.restart_alerts:
self._corner_delay_alert.props.msg = self.restart_msg
self._corner_delay_alert.show()
def _setup_edge(self):
- box_delay = gtk.HBox(spacing=style.DEFAULT_SPACING)
- label_delay = gtk.Label(_('Edge'))
+ box_delay = Gtk.HBox(spacing=style.DEFAULT_SPACING)
+ label_delay = Gtk.Label(label=_('Edge'))
label_delay.set_alignment(1, 0.75)
- label_delay.modify_fg(gtk.STATE_NORMAL,
+ label_delay.modify_fg(Gtk.StateType.NORMAL,
style.COLOR_SELECTION_GREY.get_gdk_color())
- box_delay.pack_start(label_delay, expand=False)
+ box_delay.pack_start(label_delay, False, True, 0)
self._group.add_widget(label_delay)
label_delay.show()
- adj = gtk.Adjustment(value=100, lower=0, upper=_MAX_DELAY,
+ adj = Gtk.Adjustment(value=100, lower=0, upper=_MAX_DELAY,
step_incr=100, page_incr=100, page_size=0)
- self._edge_delay_slider = gtk.HScale(adj)
+ self._edge_delay_slider = Gtk.HScale(adj)
self._edge_delay_slider.set_digits(0)
self._edge_delay_slider.connect('format-value',
self.__edge_delay_format_cb)
- box_delay.pack_start(self._edge_delay_slider)
+ box_delay.pack_start(self._edge_delay_slider, True, True, 0)
self._edge_delay_slider.show()
- self._box_sliders.pack_start(box_delay, expand=False)
+ self._box_sliders.pack_start(box_delay, False, True, 0)
box_delay.show()
self._edge_delay_alert = InlineAlert()
- label_delay_error = gtk.Label()
+ label_delay_error = Gtk.Label()
self._group.add_widget(label_delay_error)
- delay_alert_box = gtk.HBox(spacing=style.DEFAULT_SPACING)
- delay_alert_box.pack_start(label_delay_error, expand=False)
+ delay_alert_box = Gtk.HBox(spacing=style.DEFAULT_SPACING)
+ delay_alert_box.pack_start(label_delay_error, False, True, 0)
label_delay_error.show()
- delay_alert_box.pack_start(self._edge_delay_alert, expand=False)
- self._box_sliders.pack_start(delay_alert_box, expand=False)
+ delay_alert_box.pack_start(self._edge_delay_alert, False, True, 0)
+ self._box_sliders.pack_start(delay_alert_box, False, True, 0)
delay_alert_box.show()
if 'edge_delay' in self.restart_alerts:
self._edge_delay_alert.props.msg = self.restart_msg
@@ -169,8 +169,8 @@ class Frame(SectionView):
def __corner_delay_changed_cb(self, scale, data=None):
if self._corner_delay_sid:
- gobject.source_remove(self._corner_delay_sid)
- self._corner_delay_sid = gobject.timeout_add( \
+ GObject.source_remove(self._corner_delay_sid)
+ self._corner_delay_sid = GObject.timeout_add( \
self._APPLY_TIMEOUT, self.__corner_delay_timeout_cb, scale)
def __corner_delay_timeout_cb(self, scale):
@@ -202,8 +202,8 @@ class Frame(SectionView):
def __edge_delay_changed_cb(self, scale, data=None):
if self._edge_delay_sid:
- gobject.source_remove(self._edge_delay_sid)
- self._edge_delay_sid = gobject.timeout_add( \
+ GObject.source_remove(self._edge_delay_sid)
+ self._edge_delay_sid = GObject.timeout_add( \
self._APPLY_TIMEOUT, self.__edge_delay_timeout_cb, scale)
def __edge_delay_timeout_cb(self, scale):
diff --git a/extensions/cpsection/keyboard/model.py b/extensions/cpsection/keyboard/model.py
index 1f92973..b5bc53a 100644
--- a/extensions/cpsection/keyboard/model.py
+++ b/extensions/cpsection/keyboard/model.py
@@ -17,7 +17,7 @@
#
import xklavier
-import gconf
+from gi.repository import GConf
_GROUP_NAME = 'grp' # The XKB name for group switch options
@@ -35,7 +35,7 @@ class KeyboardManager(object):
self._configrec = xklavier.ConfigRec()
self._configrec.get_from_server(self._engine)
- self._gconf_client = gconf.client_get_default()
+ self._gconf_client = GConf.Client.get_default()
def _populate_one(self, config_registry, item, store):
store.append([item.get_description(), item.get_name()])
@@ -94,7 +94,7 @@ class KeyboardManager(object):
def get_current_layouts(self):
"""Return the enabled keyboard layouts with variants"""
- layouts = self._gconf_client.get_list(_LAYOUTS_KEY, gconf.VALUE_STRING)
+ layouts = self._gconf_client.get_list(_LAYOUTS_KEY, GConf.ValueType.STRING)
if layouts:
return layouts
@@ -116,7 +116,7 @@ class KeyboardManager(object):
def get_current_option_group(self):
"""Return the enabled option for switching keyboard group"""
- options = self._gconf_client.get_list(_OPTIONS_KEY, gconf.VALUE_STRING)
+ options = self._gconf_client.get_list(_OPTIONS_KEY, GConf.ValueType.STRING)
if not options:
options = self._configrec.get_options()
@@ -149,7 +149,7 @@ class KeyboardManager(object):
options = option_group
else:
options = [option_group]
- self._gconf_client.set_list(_OPTIONS_KEY, gconf.VALUE_STRING, options)
+ self._gconf_client.set_list(_OPTIONS_KEY, GConf.ValueType.STRING, options)
self._configrec.set_options(options)
self._configrec.activate(self._engine)
@@ -157,7 +157,7 @@ class KeyboardManager(object):
"""Sets the supplied keyboard layouts (with variants)"""
if layouts is None or not layouts:
return
- self._gconf_client.set_list(_LAYOUTS_KEY, gconf.VALUE_STRING, layouts)
+ self._gconf_client.set_list(_LAYOUTS_KEY, GConf.ValueType.STRING, layouts)
layouts_list = []
variants_list = []
for layout in layouts:
diff --git a/extensions/cpsection/keyboard/view.py b/extensions/cpsection/keyboard/view.py
index e349255..9f8b5e3 100644
--- a/extensions/cpsection/keyboard/view.py
+++ b/extensions/cpsection/keyboard/view.py
@@ -15,9 +15,9 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-import gtk
-import gobject
-import pango
+from gi.repository import Gtk
+from gi.repository import GObject
+from gi.repository import Pango
import logging
from gettext import gettext as _
@@ -39,7 +39,7 @@ _APPLY_TIMEOUT = 500
# For more information, see: http://dev.sugarlabs.org/ticket/407
-class LayoutCombo(gtk.HBox):
+class LayoutCombo(Gtk.HBox):
"""
Custom GTK widget with two comboboxes side by side, one for layout, and
@@ -47,49 +47,49 @@ class LayoutCombo(gtk.HBox):
"""
__gsignals__ = {
- 'selection-changed': (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE,
- (gobject.TYPE_STRING, gobject.TYPE_INT)),
+ 'selection-changed': (GObject.SignalFlags.RUN_LAST, None,
+ (GObject.TYPE_STRING, GObject.TYPE_INT)),
}
def __init__(self, keyboard_manager, n):
- gtk.HBox.__init__(self)
+ GObject.GObject.__init__(self)
self._keyboard_manager = keyboard_manager
self._index = n
self.set_border_width(style.DEFAULT_SPACING)
self.set_spacing(style.DEFAULT_SPACING)
- label = gtk.Label(' <b>%s</b> ' % str(n + 1))
+ label = Gtk.Label(label=' <b>%s</b> ' % str(n + 1))
label.set_use_markup(True)
- label.modify_fg(gtk.STATE_NORMAL,
+ label.modify_fg(Gtk.StateType.NORMAL,
style.COLOR_SELECTION_GREY.get_gdk_color())
label.set_alignment(0.5, 0.5)
- self.pack_start(label, expand=False)
+ self.pack_start(label, False, True, 0)
- self._klang_store = gtk.ListStore(gobject.TYPE_STRING, \
- gobject.TYPE_STRING)
+ self._klang_store = Gtk.ListStore(GObject.TYPE_STRING, \
+ GObject.TYPE_STRING)
for description, name in self._keyboard_manager.get_languages():
self._klang_store.append([name, description])
- self._klang_combo = gtk.ComboBox(model=self._klang_store)
+ self._klang_combo = Gtk.ComboBox(model=self._klang_store)
self._klang_combo_changed_id = \
self._klang_combo.connect('changed', self._klang_combo_changed_cb)
- cell = gtk.CellRendererText()
- cell.props.ellipsize = pango.ELLIPSIZE_MIDDLE
+ cell = Gtk.CellRendererText()
+ cell.props.ellipsize = Pango.EllipsizeMode.MIDDLE
cell.props.ellipsize_set = True
- self._klang_combo.pack_start(cell)
+ self._klang_combo.pack_start(cell, True, True, 0)
self._klang_combo.add_attribute(cell, 'text', 1)
self.pack_start(self._klang_combo, expand=True, fill=True)
self._kvariant_store = None
- self._kvariant_combo = gtk.ComboBox(model=None)
+ self._kvariant_combo = Gtk.ComboBox(model=None)
self._kvariant_combo_changed_id = \
self._kvariant_combo.connect('changed', \
self._kvariant_combo_changed_cb)
- cell = gtk.CellRendererText()
- cell.props.ellipsize = pango.ELLIPSIZE_MIDDLE
+ cell = Gtk.CellRendererText()
+ cell.props.ellipsize = Pango.EllipsizeMode.MIDDLE
cell.props.ellipsize_set = True
- self._kvariant_combo.pack_start(cell)
+ self._kvariant_combo.pack_start(cell, True, True, 0)
self._kvariant_combo.add_attribute(cell, 'text', 1)
self.pack_start(self._kvariant_combo, expand=True, fill=True)
@@ -118,8 +118,8 @@ class LayoutCombo(gtk.HBox):
return model.get(it, 0)[0]
def _set_kvariant_store(self, lang):
- self._kvariant_store = gtk.ListStore(gobject.TYPE_STRING, \
- gobject.TYPE_STRING)
+ self._kvariant_store = Gtk.ListStore(GObject.TYPE_STRING, \
+ GObject.TYPE_STRING)
layouts = self._keyboard_manager.get_layouts_for_language(lang)
for description, name in layouts:
self._kvariant_store.append([name, description])
@@ -157,18 +157,18 @@ class Keyboard(SectionView):
self.set_border_width(style.DEFAULT_SPACING * 2)
self.set_spacing(style.DEFAULT_SPACING)
- self._layout_table = gtk.Table(rows=4, columns=2, homogeneous=False)
+ self._layout_table = Gtk.Table(rows=4, columns=2, homogeneous=False)
self._keyboard_manager = model.KeyboardManager(self.get_display())
self._layout_combo_list = []
self._layout_addremovebox_list = []
- scrollwindow = gtk.ScrolledWindow()
- scrollwindow.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
- self.pack_start(scrollwindow, expand=True)
+ scrollwindow = Gtk.ScrolledWindow()
+ scrollwindow.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC)
+ self.pack_start(scrollwindow, True, True, 0)
scrollwindow.show()
- self._vbox = gtk.VBox()
+ self._vbox = Gtk.VBox()
scrollwindow.add_with_viewport(self._vbox)
self.__kmodel_sid = None
@@ -183,29 +183,29 @@ class Keyboard(SectionView):
def _setup_kmodel(self):
"""Adds the controls for changing the keyboard model"""
- separator_kmodel = gtk.HSeparator()
- self._vbox.pack_start(separator_kmodel, expand=False)
+ separator_kmodel = Gtk.HSeparator()
+ self._vbox.pack_start(separator_kmodel, False, True, 0)
separator_kmodel.show_all()
- label_kmodel = gtk.Label(_('Keyboard Model'))
+ label_kmodel = Gtk.Label(label=_('Keyboard Model'))
label_kmodel.set_alignment(0, 0)
- self._vbox.pack_start(label_kmodel, expand=False)
+ self._vbox.pack_start(label_kmodel, False, True, 0)
label_kmodel.show_all()
- box_kmodel = gtk.VBox()
+ box_kmodel = Gtk.VBox()
box_kmodel.set_border_width(style.DEFAULT_SPACING * 2)
box_kmodel.set_spacing(style.DEFAULT_SPACING)
- kmodel_store = gtk.ListStore(gobject.TYPE_STRING, \
- gobject.TYPE_STRING)
+ kmodel_store = Gtk.ListStore(GObject.TYPE_STRING, \
+ GObject.TYPE_STRING)
for description, name in self._keyboard_manager.get_models():
kmodel_store.append([name, description])
- kmodel_combo = gtk.ComboBox(model=kmodel_store)
- cell = gtk.CellRendererText()
- cell.props.ellipsize = pango.ELLIPSIZE_MIDDLE
+ kmodel_combo = Gtk.ComboBox(model=kmodel_store)
+ cell = Gtk.CellRendererText()
+ cell.props.ellipsize = Pango.EllipsizeMode.MIDDLE
cell.props.ellipsize_set = True
- kmodel_combo.pack_start(cell)
+ kmodel_combo.pack_start(cell, True, True, 0)
kmodel_combo.add_attribute(cell, 'text', 1)
self._kmodel = self._keyboard_manager.get_current_model()
@@ -215,16 +215,16 @@ class Keyboard(SectionView):
kmodel_combo.set_active_iter(row.iter)
break
- box_kmodel.pack_start(kmodel_combo, expand=False)
- self._vbox.pack_start(box_kmodel, expand=False)
+ box_kmodel.pack_start(kmodel_combo, False, True, 0)
+ self._vbox.pack_start(box_kmodel, False, True, 0)
box_kmodel.show_all()
kmodel_combo.connect('changed', self.__kmodel_changed_cb)
def __kmodel_changed_cb(self, combobox):
if self.__kmodel_sid is not None:
- gobject.source_remove(self.__kmodel_sid)
- self.__kmodel_sid = gobject.timeout_add(_APPLY_TIMEOUT,
+ GObject.source_remove(self.__kmodel_sid)
+ self.__kmodel_sid = GObject.timeout_add(_APPLY_TIMEOUT,
self.__kmodel_timeout_cb, combobox)
def __kmodel_timeout_cb(self, combobox):
@@ -243,29 +243,29 @@ class Keyboard(SectionView):
def _setup_group_switch_option(self):
"""Adds the controls for changing the group switch option of keyboard
"""
- separator_group_option = gtk.HSeparator()
- self._vbox.pack_start(separator_group_option, expand=False)
+ separator_group_option = Gtk.HSeparator()
+ self._vbox.pack_start(separator_group_option, False, True, 0)
separator_group_option.show_all()
- label_group_option = gtk.Label(_('Key(s) to change layout'))
+ label_group_option = Gtk.Label(label=_('Key(s) to change layout'))
label_group_option.set_alignment(0, 0)
- self._vbox.pack_start(label_group_option, expand=False)
+ self._vbox.pack_start(label_group_option, False, True, 0)
label_group_option.show_all()
- box_group_option = gtk.VBox()
+ box_group_option = Gtk.VBox()
box_group_option.set_border_width(style.DEFAULT_SPACING * 2)
box_group_option.set_spacing(style.DEFAULT_SPACING)
- group_option_store = gtk.ListStore(gobject.TYPE_STRING, \
- gobject.TYPE_STRING)
+ group_option_store = Gtk.ListStore(GObject.TYPE_STRING, \
+ GObject.TYPE_STRING)
for description, name in self._keyboard_manager.get_options_group():
group_option_store.append([name, description])
- group_option_combo = gtk.ComboBox(model=group_option_store)
- cell = gtk.CellRendererText()
- cell.props.ellipsize = pango.ELLIPSIZE_MIDDLE
+ group_option_combo = Gtk.ComboBox(model=group_option_store)
+ cell = Gtk.CellRendererText()
+ cell.props.ellipsize = Pango.EllipsizeMode.MIDDLE
cell.props.ellipsize_set = True
- group_option_combo.pack_start(cell)
+ group_option_combo.pack_start(cell, True, True, 0)
group_option_combo.add_attribute(cell, 'text', 1)
self._group_switch_option = \
@@ -282,8 +282,8 @@ class Keyboard(SectionView):
if not found:
group_option_combo.set_active(0)
- box_group_option.pack_start(group_option_combo, expand=False)
- self._vbox.pack_start(box_group_option, expand=False)
+ box_group_option.pack_start(group_option_combo, False, True, 0)
+ self._vbox.pack_start(box_group_option, False, True, 0)
box_group_option.show_all()
group_option_combo.connect('changed', \
@@ -291,8 +291,8 @@ class Keyboard(SectionView):
def __group_switch_changed_cb(self, combobox):
if self.__group_switch_sid is not None:
- gobject.source_remove(self.__group_switch_sid)
- self.__group_switch_sid = gobject.timeout_add(_APPLY_TIMEOUT,
+ GObject.source_remove(self.__group_switch_sid)
+ self.__group_switch_sid = GObject.timeout_add(_APPLY_TIMEOUT,
self.__group_switch_timeout_cb, combobox)
def __group_switch_timeout_cb(self, combobox):
@@ -312,14 +312,14 @@ class Keyboard(SectionView):
def _setup_layouts(self):
"""Adds the controls for changing the keyboard layouts"""
- separator_klayout = gtk.HSeparator()
- self._vbox.pack_start(separator_klayout, expand=False)
+ separator_klayout = Gtk.HSeparator()
+ self._vbox.pack_start(separator_klayout, False, True, 0)
separator_klayout.show_all()
- label_klayout = gtk.Label(_('Keyboard Layout(s)'))
+ label_klayout = Gtk.Label(label=_('Keyboard Layout(s)'))
label_klayout.set_alignment(0, 0)
label_klayout.show_all()
- self._vbox.pack_start(label_klayout, expand=False)
+ self._vbox.pack_start(label_klayout, False, True, 0)
self._klayouts = self._keyboard_manager.get_current_layouts()
for i in range(0, self._keyboard_manager.get_max_layouts()):
@@ -337,7 +337,7 @@ class Keyboard(SectionView):
layout_combo.show_all()
layout_combo.select_layout(self._klayouts[i])
- self._vbox.pack_start(self._layout_table, expand=False)
+ self._vbox.pack_start(self._layout_table, False, True, 0)
self._layout_table.set_size_request(self._vbox.size_request()[0], -1)
self._layout_table.show()
self._update_klayouts()
@@ -360,25 +360,25 @@ class Keyboard(SectionView):
i += 1
def __create_add_remove_box(self):
- """Creates gtk.Hbox with add/remove buttons"""
+ """Creates Gtk.Hbox with add/remove buttons"""
add_icon = Icon(icon_name='list-add')
- add_button = gtk.Button()
+ add_button = Gtk.Button()
add_button.set_image(add_icon)
add_button.connect('clicked',
self.__add_button_clicked_cb)
remove_icon = Icon(icon_name='list-remove')
- remove_button = gtk.Button()
+ remove_button = Gtk.Button()
remove_button.set_image(remove_icon)
remove_button.connect('clicked',
self.__remove_button_clicked_cb)
- add_remove_box = gtk.HButtonBox()
- add_remove_box.set_layout(gtk.BUTTONBOX_START)
+ add_remove_box = Gtk.HButtonBox()
+ add_remove_box.set_layout(Gtk.ButtonBoxStyle.START)
add_remove_box.set_spacing(10)
- add_remove_box.pack_start(add_button)
- add_remove_box.pack_start(remove_button)
+ add_remove_box.pack_start(add_button, True, True, 0)
+ add_remove_box.pack_start(remove_button, True, True, 0)
return add_remove_box
@@ -403,8 +403,8 @@ class Keyboard(SectionView):
self.__determine_add_remove_box_visibility()
if self.__layout_sid is not None:
- gobject.source_remove(self.__layout_sid)
- self.__layout_sid = gobject.timeout_add(_APPLY_TIMEOUT,
+ GObject.source_remove(self.__layout_sid)
+ self.__layout_sid = GObject.timeout_add(_APPLY_TIMEOUT,
self.__layout_timeout_cb)
def __layout_timeout_cb(self):
diff --git a/extensions/cpsection/language/view.py b/extensions/cpsection/language/view.py
index 1553959..5c02a0a 100644
--- a/extensions/cpsection/language/view.py
+++ b/extensions/cpsection/language/view.py
@@ -15,8 +15,8 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-import gtk
-import gobject
+from gi.repository import Gtk
+from gi.repository import GObject
import gettext
from sugar.graphics import style
@@ -57,28 +57,28 @@ class Language(SectionView):
explanation = gettext.gettext('Add languages in the order you prefer.'
' If a translation is not available,'
' the next in the list will be used.')
- self._text = gtk.Label(explanation)
+ self._text = Gtk.Label(label=explanation)
self._text.set_width_chars(100)
self._text.set_line_wrap(True)
self._text.set_alignment(0, 0)
self.pack_start(self._text, False)
self._text.show()
- scrolled = gtk.ScrolledWindow()
- scrolled.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
+ scrolled = Gtk.ScrolledWindow()
+ scrolled.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC)
scrolled.show()
- self.pack_start(scrolled, expand=True)
+ self.pack_start(scrolled, True, True, 0)
- self._table = gtk.Table(rows=1, columns=3, homogeneous=False)
+ self._table = Gtk.Table(rows=1, columns=3, homogeneous=False)
self._table.set_border_width(style.DEFAULT_SPACING * 2)
self._table.show()
scrolled.add_with_viewport(self._table)
- self._lang_alert_box = gtk.HBox(spacing=style.DEFAULT_SPACING)
+ self._lang_alert_box = Gtk.HBox(spacing=style.DEFAULT_SPACING)
self.pack_start(self._lang_alert_box, False)
self._lang_alert = InlineAlert()
- self._lang_alert_box.pack_start(self._lang_alert)
+ self._lang_alert_box.pack_start(self._lang_alert, True, True, 0)
if 'lang' in self.restart_alerts:
self._lang_alert.props.msg = self.restart_msg
self._lang_alert.show()
@@ -93,22 +93,22 @@ class Language(SectionView):
self._table.resize(self._selected_lang_count, 3)
- label = gtk.Label(str=str(self._selected_lang_count))
- label.modify_fg(gtk.STATE_NORMAL,
+ label = Gtk.Label(label=str=str(self._selected_lang_count))
+ label.modify_fg(Gtk.StateType.NORMAL,
style.COLOR_SELECTION_GREY.get_gdk_color())
self._labels.append(label)
self._attach_to_table(label, 0, 1, padding=1)
label.show()
- store = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING)
+ store = Gtk.ListStore(GObject.TYPE_STRING, GObject.TYPE_STRING)
for language, country, code in self._available_locales:
description = '%s (%s)' % (_translate_language(language), \
_translate_country(country))
store.append([code, description])
- combobox = gtk.ComboBox(model=store)
- cell = gtk.CellRendererText()
- combobox.pack_start(cell)
+ combobox = Gtk.ComboBox(model=store)
+ cell = Gtk.CellRendererText()
+ combobox.pack_start(cell, True, True, 0)
combobox.add_attribute(cell, 'text', 1)
if locale_code:
@@ -125,7 +125,7 @@ class Language(SectionView):
self._stores.append(store)
self._comboboxes.append(combobox)
- self._attach_to_table(combobox, 1, 2, yoptions=gtk.SHRINK)
+ self._attach_to_table(combobox, 1, 2, yoptions=Gtk.AttachOptions.SHRINK)
add_remove_box = self._create_add_remove_box()
self._add_remove_boxes.append(add_remove_box)
@@ -142,10 +142,10 @@ class Language(SectionView):
combobox.show()
def _attach_to_table(self, widget, row, column, padding=20, \
- yoptions=gtk.FILL):
+ yoptions=Gtk.AttachOptions.FILL):
self._table.attach(widget, row, column, \
self._selected_lang_count - 1, self._selected_lang_count, \
- xoptions=gtk.FILL, yoptions=yoptions, xpadding=padding, \
+ xoptions=Gtk.AttachOptions.FILL, yoptions=yoptions, xpadding=padding, \
ypadding=padding)
def _delete_last_row(self):
@@ -180,25 +180,25 @@ class Language(SectionView):
self._lang_alert.hide()
def _create_add_remove_box(self):
- """Creates gtk.Hbox with add/remove buttons"""
+ """Creates Gtk.Hbox with add/remove buttons"""
add_icon = Icon(icon_name='list-add')
- add_button = gtk.Button()
+ add_button = Gtk.Button()
add_button.set_image(add_icon)
add_button.connect('clicked',
self.__add_button_clicked_cb)
remove_icon = Icon(icon_name='list-remove')
- remove_button = gtk.Button()
+ remove_button = Gtk.Button()
remove_button.set_image(remove_icon)
remove_button.connect('clicked',
self.__remove_button_clicked_cb)
- add_remove_box = gtk.HButtonBox()
- add_remove_box.set_layout(gtk.BUTTONBOX_START)
+ add_remove_box = Gtk.HButtonBox()
+ add_remove_box.set_layout(Gtk.ButtonBoxStyle.START)
add_remove_box.set_spacing(10)
- add_remove_box.pack_start(add_button)
- add_remove_box.pack_start(remove_button)
+ add_remove_box.pack_start(add_button, True, True, 0)
+ add_remove_box.pack_start(remove_button, True, True, 0)
return add_remove_box
@@ -228,13 +228,13 @@ class Language(SectionView):
self.restart_alerts.remove('lang')
self._lang_alert.hide()
if self._lang_sid:
- gobject.source_remove(self._lang_sid)
+ GObject.source_remove(self._lang_sid)
self._model.undo()
return False
if self._lang_sid:
- gobject.source_remove(self._lang_sid)
- self._lang_sid = gobject.timeout_add(self._APPLY_TIMEOUT,
+ GObject.source_remove(self._lang_sid)
+ self._lang_sid = GObject.timeout_add(self._APPLY_TIMEOUT,
self.__lang_timeout_cb,
selected_langs)
diff --git a/extensions/cpsection/modemconfiguration/model.py b/extensions/cpsection/modemconfiguration/model.py
index 969b5d9..f457293 100755
--- a/extensions/cpsection/modemconfiguration/model.py
+++ b/extensions/cpsection/modemconfiguration/model.py
@@ -17,7 +17,7 @@
import logging
import dbus
-import gtk
+from gi.repository import Gtk
from jarabe.model import network
@@ -61,7 +61,7 @@ def get_modem_settings():
# wait til asynchronous execution completes
while not secrets_call_done[0]:
- gtk.main_iteration()
+ Gtk.main_iteration()
return modem_settings
diff --git a/extensions/cpsection/modemconfiguration/view.py b/extensions/cpsection/modemconfiguration/view.py
index 4ce6c0d..62b6099 100644
--- a/extensions/cpsection/modemconfiguration/view.py
+++ b/extensions/cpsection/modemconfiguration/view.py
@@ -17,8 +17,8 @@
from gettext import gettext as _
import logging
-import gtk
-import gobject
+from gi.repository import Gtk
+from gi.repository import GObject
from sugar.graphics import style
@@ -28,28 +28,28 @@ from jarabe.controlpanel.sectionview import SectionView
APPLY_TIMEOUT = 1000
-class EntryWithLabel(gtk.HBox):
+class EntryWithLabel(Gtk.HBox):
__gtype_name__ = 'SugarEntryWithLabel'
def __init__(self, label_text):
- gtk.HBox.__init__(self, spacing=style.DEFAULT_SPACING)
+ GObject.GObject.__init__(self, spacing=style.DEFAULT_SPACING)
- self.label = gtk.Label(label_text)
- self.label.modify_fg(gtk.STATE_NORMAL,
+ self.label = Gtk.Label(label=label_text)
+ self.label.modify_fg(Gtk.StateType.NORMAL,
style.COLOR_SELECTION_GREY.get_gdk_color())
self.label.set_alignment(1, 0.5)
- self.pack_start(self.label, expand=False)
+ self.pack_start(self.label, False, True, 0)
self.label.show()
- self._entry = gtk.Entry(25)
+ self._entry = Gtk.Entry(25)
self._entry.set_width_chars(25)
- self.pack_start(self._entry, expand=False)
+ self.pack_start(self._entry, False, True, 0)
self._entry.show()
def get_entry(self):
return self._entry
- entry = gobject.property(type=object, getter=get_entry)
+ entry = GObject.property(type=object, getter=get_entry)
class ModemConfiguration(SectionView):
@@ -62,12 +62,12 @@ class ModemConfiguration(SectionView):
self.set_border_width(style.DEFAULT_SPACING)
self.set_spacing(style.DEFAULT_SPACING)
- self._group = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL)
+ self._group = Gtk.SizeGroup(Gtk.SizeGroupMode.HORIZONTAL)
explanation = _('You will need to provide the following information'
' to set up a mobile broadband connection to a'
' cellular (3G) network.')
- self._text = gtk.Label(explanation)
+ self._text = Gtk.Label(label=explanation)
self._text.set_width_chars(100)
self._text.set_line_wrap(True)
self._text.set_alignment(0, 0)
@@ -77,31 +77,31 @@ class ModemConfiguration(SectionView):
self._username_entry = EntryWithLabel(_('Username:'))
self._username_entry.entry.connect('changed', self.__entry_changed_cb)
self._group.add_widget(self._username_entry.label)
- self.pack_start(self._username_entry, expand=False)
+ self.pack_start(self._username_entry, False, True, 0)
self._username_entry.show()
self._password_entry = EntryWithLabel(_('Password:'))
self._password_entry.entry.connect('changed', self.__entry_changed_cb)
self._group.add_widget(self._password_entry.label)
- self.pack_start(self._password_entry, expand=False)
+ self.pack_start(self._password_entry, False, True, 0)
self._password_entry.show()
self._number_entry = EntryWithLabel(_('Number:'))
self._number_entry.entry.connect('changed', self.__entry_changed_cb)
self._group.add_widget(self._number_entry.label)
- self.pack_start(self._number_entry, expand=False)
+ self.pack_start(self._number_entry, False, True, 0)
self._number_entry.show()
self._apn_entry = EntryWithLabel(_('Access Point Name (APN):'))
self._apn_entry.entry.connect('changed', self.__entry_changed_cb)
self._group.add_widget(self._apn_entry.label)
- self.pack_start(self._apn_entry, expand=False)
+ self.pack_start(self._apn_entry, False, True, 0)
self._apn_entry.show()
self._pin_entry = EntryWithLabel(_('Personal Identity Number (PIN):'))
self._pin_entry.entry.connect('changed', self.__entry_changed_cb)
self._group.add_widget(self._pin_entry.label)
- self.pack_start(self._pin_entry, expand=False)
+ self.pack_start(self._pin_entry, False, True, 0)
self._pin_entry.show()
self.setup()
@@ -129,8 +129,8 @@ class ModemConfiguration(SectionView):
def __entry_changed_cb(self, widget, data=None):
if self._timeout_sid:
- gobject.source_remove(self._timeout_sid)
- self._timeout_sid = gobject.timeout_add(APPLY_TIMEOUT,
+ GObject.source_remove(self._timeout_sid)
+ self._timeout_sid = GObject.timeout_add(APPLY_TIMEOUT,
self.__timeout_cb)
def __timeout_cb(self):
diff --git a/extensions/cpsection/network/model.py b/extensions/cpsection/network/model.py
index 4ddab35..ae9e64d 100644
--- a/extensions/cpsection/network/model.py
+++ b/extensions/cpsection/network/model.py
@@ -19,7 +19,7 @@ import logging
import dbus
from gettext import gettext as _
-import gconf
+from gi.repository import GConf
from jarabe.model import network
@@ -40,7 +40,7 @@ class ReadError(Exception):
def get_jabber():
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
return client.get_string('/desktop/sugar/collaboration/jabber_server')
@@ -52,7 +52,7 @@ def set_jabber(server):
"""Set the jabber server
server : e.g. 'olpc.collabora.co.uk'
"""
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
client.set_string('/desktop/sugar/collaboration/jabber_server', server)
return 0
@@ -106,7 +106,7 @@ def set_radio(state):
def clear_registration():
"""Clear the registration with the schoolserver
"""
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
client.set_string('/desktop/sugar/backup_url', '')
return 1
@@ -132,7 +132,7 @@ def have_networks():
def get_publish_information():
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
publish = client.get_bool('/desktop/sugar/collaboration/publish_gadget')
return publish
@@ -151,6 +151,6 @@ def set_publish_information(value):
except:
raise ValueError(_('Error in specified argument use 0/1.'))
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
client.set_bool('/desktop/sugar/collaboration/publish_gadget', value)
return 0
diff --git a/extensions/cpsection/network/view.py b/extensions/cpsection/network/view.py
index 381dcb6..c1d937e 100644
--- a/extensions/cpsection/network/view.py
+++ b/extensions/cpsection/network/view.py
@@ -14,8 +14,8 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-import gtk
-import gobject
+from gi.repository import Gtk
+from gi.repository import GObject
from gettext import gettext as _
from sugar.graphics import style
@@ -46,133 +46,133 @@ class Network(SectionView):
self.set_border_width(style.DEFAULT_SPACING * 2)
self.set_spacing(style.DEFAULT_SPACING)
- group = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL)
+ group = Gtk.SizeGroup(Gtk.SizeGroupMode.HORIZONTAL)
- self._radio_alert_box = gtk.HBox(spacing=style.DEFAULT_SPACING)
- self._jabber_alert_box = gtk.HBox(spacing=style.DEFAULT_SPACING)
+ self._radio_alert_box = Gtk.HBox(spacing=style.DEFAULT_SPACING)
+ self._jabber_alert_box = Gtk.HBox(spacing=style.DEFAULT_SPACING)
- workspace = gtk.VBox()
+ workspace = Gtk.VBox()
workspace.show()
- separator_wireless = gtk.HSeparator()
- workspace.pack_start(separator_wireless, expand=False)
+ separator_wireless = Gtk.HSeparator()
+ workspace.pack_start(separator_wireless, False, True, 0)
separator_wireless.show()
- label_wireless = gtk.Label(_('Wireless'))
+ label_wireless = Gtk.Label(label=_('Wireless'))
label_wireless.set_alignment(0, 0)
- workspace.pack_start(label_wireless, expand=False)
+ workspace.pack_start(label_wireless, False, True, 0)
label_wireless.show()
- box_wireless = gtk.VBox()
+ box_wireless = Gtk.VBox()
box_wireless.set_border_width(style.DEFAULT_SPACING * 2)
box_wireless.set_spacing(style.DEFAULT_SPACING)
- radio_info = gtk.Label(_('Turn off the wireless radio to save battery'
+ radio_info = Gtk.Label(label=_('Turn off the wireless radio to save battery'
' life'))
radio_info.set_alignment(0, 0)
radio_info.set_line_wrap(True)
radio_info.show()
- box_wireless.pack_start(radio_info, expand=False)
+ box_wireless.pack_start(radio_info, False, True, 0)
- box_radio = gtk.HBox(spacing=style.DEFAULT_SPACING)
- self._button = gtk.CheckButton()
+ box_radio = Gtk.HBox(spacing=style.DEFAULT_SPACING)
+ self._button = Gtk.CheckButton()
self._button.set_alignment(0, 0)
- box_radio.pack_start(self._button, expand=False)
+ box_radio.pack_start(self._button, False, True, 0)
self._button.show()
- label_radio = gtk.Label(_('Radio'))
+ label_radio = Gtk.Label(label=_('Radio'))
label_radio.set_alignment(0, 0.5)
- box_radio.pack_start(label_radio, expand=False)
+ box_radio.pack_start(label_radio, False, True, 0)
label_radio.show()
- box_wireless.pack_start(box_radio, expand=False)
+ box_wireless.pack_start(box_radio, False, True, 0)
box_radio.show()
self._radio_alert = InlineAlert()
- self._radio_alert_box.pack_start(self._radio_alert, expand=False)
- box_radio.pack_end(self._radio_alert_box, expand=False)
+ self._radio_alert_box.pack_start(self._radio_alert, False, True, 0)
+ box_radio.pack_end(self._radio_alert_box, False, True, 0)
self._radio_alert_box.show()
if 'radio' in self.restart_alerts:
self._radio_alert.props.msg = self.restart_msg
self._radio_alert.show()
- history_info = gtk.Label(_('Discard network history if you have'
+ history_info = Gtk.Label(label=_('Discard network history if you have'
' trouble connecting to the network'))
history_info.set_alignment(0, 0)
history_info.set_line_wrap(True)
history_info.show()
- box_wireless.pack_start(history_info, expand=False)
+ box_wireless.pack_start(history_info, False, True, 0)
- box_clear_history = gtk.HBox(spacing=style.DEFAULT_SPACING)
- self._clear_history_button = gtk.Button()
+ box_clear_history = Gtk.HBox(spacing=style.DEFAULT_SPACING)
+ self._clear_history_button = Gtk.Button()
self._clear_history_button.set_label(_('Discard network history'))
- box_clear_history.pack_start(self._clear_history_button, expand=False)
+ box_clear_history.pack_start(self._clear_history_button, False, True, 0)
if not self._model.have_networks():
self._clear_history_button.set_sensitive(False)
self._clear_history_button.show()
- box_wireless.pack_start(box_clear_history, expand=False)
+ box_wireless.pack_start(box_clear_history, False, True, 0)
box_clear_history.show()
- workspace.pack_start(box_wireless, expand=False)
+ workspace.pack_start(box_wireless, False, True, 0)
box_wireless.show()
- separator_mesh = gtk.HSeparator()
+ separator_mesh = Gtk.HSeparator()
workspace.pack_start(separator_mesh, False)
separator_mesh.show()
- label_mesh = gtk.Label(_('Collaboration'))
+ label_mesh = Gtk.Label(label=_('Collaboration'))
label_mesh.set_alignment(0, 0)
- workspace.pack_start(label_mesh, expand=False)
+ workspace.pack_start(label_mesh, False, True, 0)
label_mesh.show()
- box_mesh = gtk.VBox()
+ box_mesh = Gtk.VBox()
box_mesh.set_border_width(style.DEFAULT_SPACING * 2)
box_mesh.set_spacing(style.DEFAULT_SPACING)
- server_info = gtk.Label(_("The server is the equivalent of what"
+ server_info = Gtk.Label(_("The server is the equivalent of what"
" room you are in; people on the same server"
" will be able to see each other, even when"
" they aren't on the same network."))
server_info.set_alignment(0, 0)
server_info.set_line_wrap(True)
- box_mesh.pack_start(server_info, expand=False)
+ box_mesh.pack_start(server_info, False, True, 0)
server_info.show()
- box_server = gtk.HBox(spacing=style.DEFAULT_SPACING)
- label_server = gtk.Label(_('Server:'))
+ box_server = Gtk.HBox(spacing=style.DEFAULT_SPACING)
+ label_server = Gtk.Label(label=_('Server:'))
label_server.set_alignment(1, 0.5)
- label_server.modify_fg(gtk.STATE_NORMAL,
+ label_server.modify_fg(Gtk.StateType.NORMAL,
style.COLOR_SELECTION_GREY.get_gdk_color())
- box_server.pack_start(label_server, expand=False)
+ box_server.pack_start(label_server, False, True, 0)
group.add_widget(label_server)
label_server.show()
- self._entry = gtk.Entry()
+ self._entry = Gtk.Entry()
self._entry.set_alignment(0)
- self._entry.modify_bg(gtk.STATE_INSENSITIVE,
+ self._entry.modify_bg(Gtk.StateType.INSENSITIVE,
style.COLOR_WHITE.get_gdk_color())
- self._entry.modify_base(gtk.STATE_INSENSITIVE,
+ self._entry.modify_base(Gtk.StateType.INSENSITIVE,
style.COLOR_WHITE.get_gdk_color())
- self._entry.set_size_request(int(gtk.gdk.screen_width() / 3), -1)
- box_server.pack_start(self._entry, expand=False)
+ self._entry.set_size_request(int(Gdk.Screen.width() / 3), -1)
+ box_server.pack_start(self._entry, False, True, 0)
self._entry.show()
- box_mesh.pack_start(box_server, expand=False)
+ box_mesh.pack_start(box_server, False, True, 0)
box_server.show()
self._jabber_alert = InlineAlert()
- label_jabber_error = gtk.Label()
+ label_jabber_error = Gtk.Label()
group.add_widget(label_jabber_error)
- self._jabber_alert_box.pack_start(label_jabber_error, expand=False)
+ self._jabber_alert_box.pack_start(label_jabber_error, False, True, 0)
label_jabber_error.show()
- self._jabber_alert_box.pack_start(self._jabber_alert, expand=False)
- box_mesh.pack_end(self._jabber_alert_box, expand=False)
+ self._jabber_alert_box.pack_start(self._jabber_alert, False, True, 0)
+ box_mesh.pack_end(self._jabber_alert_box, False, True, 0)
self._jabber_alert_box.show()
if 'jabber' in self.restart_alerts:
self._jabber_alert.props.msg = self.restart_msg
self._jabber_alert.show()
- workspace.pack_start(box_mesh, expand=False)
+ workspace.pack_start(box_mesh, False, True, 0)
box_mesh.show()
- scrolled = gtk.ScrolledWindow()
- scrolled.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
+ scrolled = Gtk.ScrolledWindow()
+ scrolled.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC)
scrolled.add_with_viewport(workspace)
scrolled.show()
self.add(scrolled)
@@ -230,8 +230,8 @@ class Network(SectionView):
def __jabber_changed_cb(self, widget, data=None):
if self._jabber_sid:
- gobject.source_remove(self._jabber_sid)
- self._jabber_sid = gobject.timeout_add(_APPLY_TIMEOUT,
+ GObject.source_remove(self._jabber_sid)
+ self._jabber_sid = GObject.timeout_add(_APPLY_TIMEOUT,
self.__jabber_timeout_cb,
widget)
diff --git a/extensions/cpsection/power/model.py b/extensions/cpsection/power/model.py
index 8b6a1d3..1aa0704 100644
--- a/extensions/cpsection/power/model.py
+++ b/extensions/cpsection/power/model.py
@@ -19,7 +19,7 @@ import os
from gettext import gettext as _
import logging
-import gconf
+from gi.repository import GConf
import dbus
OHM_SERVICE_NAME = 'org.freedesktop.ohm'
@@ -51,7 +51,7 @@ def get_automatic_pm():
return not os.access(POWERD_INHIBIT_FLAG, os.R_OK)
# ohmd
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
return client.get_bool('/desktop/sugar/power/automatic')
@@ -89,6 +89,6 @@ def set_automatic_pm(enabled):
else:
raise ValueError(_('Error in automatic pm argument, use on/off.'))
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
client.set_bool('/desktop/sugar/power/automatic', enabled)
return
diff --git a/extensions/cpsection/power/view.py b/extensions/cpsection/power/view.py
index be0815d..987c9a7 100644
--- a/extensions/cpsection/power/view.py
+++ b/extensions/cpsection/power/view.py
@@ -14,7 +14,7 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-import gtk
+from gi.repository import Gtk
from gettext import gettext as _
from sugar.graphics import style
@@ -34,51 +34,51 @@ class Power(SectionView):
self.set_border_width(style.DEFAULT_SPACING * 2)
self.set_spacing(style.DEFAULT_SPACING)
- group = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL)
+ group = Gtk.SizeGroup(Gtk.SizeGroupMode.HORIZONTAL)
- self._automatic_pm_alert_box = gtk.HBox(spacing=style.DEFAULT_SPACING)
+ self._automatic_pm_alert_box = Gtk.HBox(spacing=style.DEFAULT_SPACING)
- separator_pm = gtk.HSeparator()
- self.pack_start(separator_pm, expand=False)
+ separator_pm = Gtk.HSeparator()
+ self.pack_start(separator_pm, False, True, 0)
separator_pm.show()
- label_pm = gtk.Label(_('Power management'))
+ label_pm = Gtk.Label(label=_('Power management'))
label_pm.set_alignment(0, 0)
- self.pack_start(label_pm, expand=False)
+ self.pack_start(label_pm, False, True, 0)
label_pm.show()
- box_pm = gtk.VBox()
+ box_pm = Gtk.VBox()
box_pm.set_border_width(style.DEFAULT_SPACING * 2)
box_pm.set_spacing(style.DEFAULT_SPACING)
- box_automatic_pm = gtk.HBox(spacing=style.DEFAULT_SPACING)
- label_automatic_pm = gtk.Label(
+ box_automatic_pm = Gtk.HBox(spacing=style.DEFAULT_SPACING)
+ label_automatic_pm = Gtk.Label(label=
_('Automatic power management (increases battery life)'))
label_automatic_pm.set_alignment(0, 0.5)
- self._automatic_button = gtk.CheckButton()
+ self._automatic_button = Gtk.CheckButton()
self._automatic_button.set_alignment(0, 0)
- box_automatic_pm.pack_start(self._automatic_button, expand=False)
- box_automatic_pm.pack_start(label_automatic_pm, expand=False)
+ box_automatic_pm.pack_start(self._automatic_button, False, True, 0)
+ box_automatic_pm.pack_start(label_automatic_pm, False, True, 0)
self._automatic_button.show()
label_automatic_pm.show()
group.add_widget(label_automatic_pm)
- box_pm.pack_start(box_automatic_pm, expand=False)
+ box_pm.pack_start(box_automatic_pm, False, True, 0)
box_automatic_pm.show()
self._automatic_pm_alert = InlineAlert()
- label_automatic_pm_error = gtk.Label()
+ label_automatic_pm_error = Gtk.Label()
group.add_widget(label_automatic_pm_error)
self._automatic_pm_alert_box.pack_start(label_automatic_pm_error,
expand=False)
label_automatic_pm_error.show()
self._automatic_pm_alert_box.pack_start(self._automatic_pm_alert,
expand=False)
- box_pm.pack_end(self._automatic_pm_alert_box, expand=False)
+ box_pm.pack_end(self._automatic_pm_alert_box, False, True, 0)
self._automatic_pm_alert_box.show()
if 'automatic_pm' in self.restart_alerts:
self._automatic_pm_alert.props.msg = self.restart_msg
self._automatic_pm_alert.show()
- self.pack_start(box_pm, expand=False)
+ self.pack_start(box_pm, False, True, 0)
box_pm.show()
self.setup()
diff --git a/extensions/cpsection/updater/backends/aslo.py b/extensions/cpsection/updater/backends/aslo.py
index 6504e9e..0273003 100644
--- a/extensions/cpsection/updater/backends/aslo.py
+++ b/extensions/cpsection/updater/backends/aslo.py
@@ -52,7 +52,7 @@ import logging
from xml.etree.ElementTree import XML
import traceback
-import gio
+from gi.repository import Gio
from sugar.bundle.bundleversion import NormalizedVersion
from sugar.bundle.bundleversion import InvalidVersionError
@@ -85,7 +85,7 @@ class _UpdateFetcher(object):
logging.debug('Fetch %s', url)
self._completion_cb = completion_cb
- self._file = gio.File(url)
+ self._file = Gio.File(url)
self._stream = None
self._xml_data = ''
self._bundle = bundle
diff --git a/extensions/cpsection/updater/model.py b/extensions/cpsection/updater/model.py
index 7ea445f..467af0a 100755
--- a/extensions/cpsection/updater/model.py
+++ b/extensions/cpsection/updater/model.py
@@ -27,8 +27,8 @@ import tempfile
from urlparse import urlparse
import traceback
-import gobject
-import gio
+from gi.repository import GObject
+from gi.repository import Gio
from sugar import env
from sugar.datastore import datastore
@@ -40,12 +40,12 @@ from jarabe.model import bundleregistry
from backends import aslo
-class UpdateModel(gobject.GObject):
+class UpdateModel(GObject.GObject):
__gtype_name__ = 'SugarUpdateModel'
__gsignals__ = {
- 'progress': (gobject.SIGNAL_RUN_FIRST,
- gobject.TYPE_NONE,
+ 'progress': (GObject.SignalFlags.RUN_FIRST,
+ None,
([int, str, float, int])),
}
@@ -54,7 +54,7 @@ class UpdateModel(gobject.GObject):
ACTION_DOWNLOADING = 2
def __init__(self):
- gobject.GObject.__init__(self)
+ GObject.GObject.__init__(self)
self.updates = None
self._bundles_to_check = None
@@ -93,7 +93,7 @@ class UpdateModel(gobject.GObject):
if self._cancelling:
self._cancel_checking()
elif self._bundles_to_check:
- gobject.idle_add(self._check_next_update)
+ GObject.idle_add(self._check_next_update)
else:
total = len(bundleregistry.get_registry())
if bundle is None:
@@ -161,7 +161,7 @@ class UpdateModel(gobject.GObject):
if self._bundles_to_update:
# do it in idle so the UI has a chance to refresh
- gobject.idle_add(self._download_next_update)
+ GObject.idle_add(self._download_next_update)
def _install_update(self, bundle_update, local_file_path):
@@ -191,7 +191,7 @@ class UpdateModel(gobject.GObject):
if self._bundles_to_update:
# do it in idle so the UI has a chance to refresh
- gobject.idle_add(self._download_next_update)
+ GObject.idle_add(self._download_next_update)
def cancel(self):
self._cancelling = True
@@ -233,25 +233,25 @@ class BundleUpdate(object):
self.size = size
-class _Downloader(gobject.GObject):
+class _Downloader(GObject.GObject):
_CHUNK_SIZE = 10240 # 10K
__gsignals__ = {
- 'progress': (gobject.SIGNAL_RUN_FIRST,
- gobject.TYPE_NONE,
+ 'progress': (GObject.SignalFlags.RUN_FIRST,
+ None,
([float])),
- 'error': (gobject.SIGNAL_RUN_FIRST,
- gobject.TYPE_NONE,
+ 'error': (GObject.SignalFlags.RUN_FIRST,
+ None,
([str])),
}
def __init__(self, bundle_update):
- gobject.GObject.__init__(self)
+ GObject.GObject.__init__(self)
self.bundle_update = bundle_update
self._input_stream = None
self._output_stream = None
self._pending_buffers = []
- self._input_file = gio.File(bundle_update.link)
+ self._input_file = Gio.File(bundle_update.link)
self._output_file = None
self._downloaded_size = 0
self._cancelling = False
@@ -272,11 +272,11 @@ class _Downloader(gobject.GObject):
return
temp_file_path = self._get_temp_file_path(self.bundle_update.link)
- self._output_file = gio.File(temp_file_path)
+ self._output_file = Gio.File(temp_file_path)
self._output_stream = self._output_file.create()
self._input_stream.read_async(self._CHUNK_SIZE, self.__read_async_cb,
- gobject.PRIORITY_LOW)
+ GObject.PRIORITY_LOW)
def __read_async_cb(self, input_stream, result):
if self._cancelling:
@@ -295,7 +295,7 @@ class _Downloader(gobject.GObject):
self._pending_buffers.append(data)
self._input_stream.read_async(self._CHUNK_SIZE,
self.__read_async_cb,
- gobject.PRIORITY_LOW)
+ GObject.PRIORITY_LOW)
self._write_next_buffer()
@@ -320,7 +320,7 @@ class _Downloader(gobject.GObject):
# TODO: we pass the buffer as user_data because of
# http://bugzilla.gnome.org/show_bug.cgi?id=564102
self._output_stream.write_async(data, self.__write_async_cb,
- gobject.PRIORITY_LOW,
+ GObject.PRIORITY_LOW,
user_data=data)
def _get_temp_file_path(self, uri):
diff --git a/extensions/cpsection/updater/view.py b/extensions/cpsection/updater/view.py
index 814658f..a51b9b4 100644
--- a/extensions/cpsection/updater/view.py
+++ b/extensions/cpsection/updater/view.py
@@ -20,8 +20,8 @@ from gettext import ngettext
import locale
import logging
-import gobject
-import gtk
+from gi.repository import GObject
+from gi.repository import Gtk
from sugar.graphics import style
from sugar.graphics.icon import Icon, CellRendererIcon
@@ -44,25 +44,25 @@ class ActivityUpdater(SectionView):
self.set_spacing(style.DEFAULT_SPACING)
self.set_border_width(style.DEFAULT_SPACING * 2)
- self._top_label = gtk.Label()
+ self._top_label = Gtk.Label()
self._top_label.set_line_wrap(True)
- self._top_label.set_justify(gtk.JUSTIFY_LEFT)
+ self._top_label.set_justify(Gtk.Justification.LEFT)
self._top_label.props.xalign = 0
- self.pack_start(self._top_label, expand=False)
+ self.pack_start(self._top_label, False, True, 0)
self._top_label.show()
- separator = gtk.HSeparator()
- self.pack_start(separator, expand=False)
+ separator = Gtk.HSeparator()
+ self.pack_start(separator, False, True, 0)
separator.show()
- bottom_label = gtk.Label()
+ bottom_label = Gtk.Label()
bottom_label.set_line_wrap(True)
- bottom_label.set_justify(gtk.JUSTIFY_LEFT)
+ bottom_label.set_justify(Gtk.Justification.LEFT)
bottom_label.props.xalign = 0
bottom_label.set_markup(
_('Software updates correct errors, eliminate security ' \
'vulnerabilities, and provide new features.'))
- self.pack_start(bottom_label, expand=False)
+ self.pack_start(bottom_label, False, True, 0)
bottom_label.show()
self._update_box = None
@@ -142,7 +142,7 @@ class ActivityUpdater(SectionView):
'You can install %s updates',
available_updates)
top_message = top_message % available_updates
- top_message = gobject.markup_escape_text(top_message)
+ top_message = GObject.markup_escape_text(top_message)
self._top_label.set_markup('<big>%s</big>' % top_message)
@@ -173,7 +173,7 @@ class ActivityUpdater(SectionView):
top_message = ngettext('%s update was installed',
'%s updates were installed', installed_updates)
top_message = top_message % installed_updates
- top_message = gobject.markup_escape_text(top_message)
+ top_message = GObject.markup_escape_text(top_message)
self._top_label.set_markup('<big>%s</big>' % top_message)
self._clear_center()
@@ -181,32 +181,32 @@ class ActivityUpdater(SectionView):
self._model.cancel()
-class ProgressPane(gtk.VBox):
+class ProgressPane(Gtk.VBox):
"""Container which replaces the `ActivityPane` during refresh or
install."""
def __init__(self):
- gtk.VBox.__init__(self)
+ GObject.GObject.__init__(self)
self.set_spacing(style.DEFAULT_PADDING)
self.set_border_width(style.DEFAULT_SPACING * 2)
- self._progress = gtk.ProgressBar()
- self.pack_start(self._progress)
+ self._progress = Gtk.ProgressBar()
+ self.pack_start(self._progress, True, True, 0)
self._progress.show()
- self._label = gtk.Label()
+ self._label = Gtk.Label()
self._label.set_line_wrap(True)
self._label.set_property('xalign', 0.5)
- self._label.modify_fg(gtk.STATE_NORMAL,
+ self._label.modify_fg(Gtk.StateType.NORMAL,
style.COLOR_BUTTON_GREY.get_gdk_color())
- self.pack_start(self._label)
+ self.pack_start(self._label, True, True, 0)
self._label.show()
- alignment_box = gtk.Alignment(xalign=0.5, yalign=0.5)
- self.pack_start(alignment_box)
+ alignment_box = Gtk.Alignment.new(xalign=0.5, yalign=0.5)
+ self.pack_start(alignment_box, True, True, 0)
alignment_box.show()
- self.cancel_button = gtk.Button(stock=gtk.STOCK_CANCEL)
+ self.cancel_button = Gtk.Button(stock=Gtk.STOCK_CANCEL)
alignment_box.add(self.cancel_button)
self.cancel_button.show()
@@ -217,18 +217,18 @@ class ProgressPane(gtk.VBox):
self._progress.props.fraction = fraction
-class UpdateBox(gtk.VBox):
+class UpdateBox(Gtk.VBox):
def __init__(self, model):
- gtk.VBox.__init__(self)
+ GObject.GObject.__init__(self)
self._model = model
self.set_spacing(style.DEFAULT_PADDING)
- scrolled_window = gtk.ScrolledWindow()
- scrolled_window.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
- self.pack_start(scrolled_window)
+ scrolled_window = Gtk.ScrolledWindow()
+ scrolled_window.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
+ self.pack_start(scrolled_window, True, True, 0)
scrolled_window.show()
self._update_list = UpdateList(model)
@@ -237,25 +237,25 @@ class UpdateBox(gtk.VBox):
scrolled_window.add(self._update_list)
self._update_list.show()
- bottom_box = gtk.HBox()
+ bottom_box = Gtk.HBox()
bottom_box.set_spacing(style.DEFAULT_SPACING)
- self.pack_start(bottom_box, expand=False)
+ self.pack_start(bottom_box, False, True, 0)
bottom_box.show()
- self._size_label = gtk.Label()
+ self._size_label = Gtk.Label()
self._size_label.props.xalign = 0
- self._size_label.set_justify(gtk.JUSTIFY_LEFT)
- bottom_box.pack_start(self._size_label, expand=True)
+ self._size_label.set_justify(Gtk.Justification.LEFT)
+ bottom_box.pack_start(self._size_label, True, True, 0)
self._size_label.show()
- self.refresh_button = gtk.Button(stock=gtk.STOCK_REFRESH)
- bottom_box.pack_start(self.refresh_button, expand=False)
+ self.refresh_button = Gtk.Button(stock=Gtk.STOCK_REFRESH)
+ bottom_box.pack_start(self.refresh_button, False, True, 0)
self.refresh_button.show()
- self.install_button = gtk.Button(_('Install selected'))
+ self.install_button = Gtk.Button(_('Install selected'))
self.install_button.props.image = Icon(icon_name='emblem-downloads',
- icon_size=gtk.ICON_SIZE_BUTTON)
- bottom_box.pack_start(self.install_button, expand=False)
+ icon_size=Gtk.IconSize.BUTTON)
+ bottom_box.pack_start(self.install_button, False, True, 0)
self.install_button.show()
self._update_total_size_label()
@@ -291,24 +291,24 @@ class UpdateBox(gtk.VBox):
return bundles_to_update
-class UpdateList(gtk.TreeView):
+class UpdateList(Gtk.TreeView):
def __init__(self, model):
list_model = UpdateListModel(model)
- gtk.TreeView.__init__(self, list_model)
+ GObject.GObject.__init__(self, list_model)
self.set_reorderable(False)
self.set_enable_search(False)
self.set_headers_visible(False)
- toggle_renderer = gtk.CellRendererToggle()
+ toggle_renderer = Gtk.CellRendererToggle()
toggle_renderer.props.activatable = True
toggle_renderer.props.xpad = style.DEFAULT_PADDING
toggle_renderer.props.indicator_size = style.zoom(26)
toggle_renderer.connect('toggled', self.__toggled_cb)
- toggle_column = gtk.TreeViewColumn()
- toggle_column.pack_start(toggle_renderer)
+ toggle_column = Gtk.TreeViewColumn()
+ toggle_column.pack_start(toggle_renderer, True)
toggle_column.add_attribute(toggle_renderer, 'active',
UpdateListModel.SELECTED)
self.append_column(toggle_column)
@@ -322,16 +322,16 @@ class UpdateList(gtk.TreeView):
icon_renderer.props.stroke_color = style.COLOR_TOOLBAR_GREY.get_svg()
icon_renderer.props.fill_color = style.COLOR_TRANSPARENT.get_svg()
- icon_column = gtk.TreeViewColumn()
- icon_column.pack_start(icon_renderer)
+ icon_column = Gtk.TreeViewColumn()
+ icon_column.pack_start(icon_renderer, True)
icon_column.add_attribute(icon_renderer, 'file-name',
UpdateListModel.ICON_FILE_NAME)
self.append_column(icon_column)
- text_renderer = gtk.CellRendererText()
+ text_renderer = Gtk.CellRendererText()
- description_column = gtk.TreeViewColumn()
- description_column.pack_start(text_renderer)
+ description_column = Gtk.TreeViewColumn()
+ description_column.pack_start(text_renderer, True)
description_column.add_attribute(text_renderer, 'markup',
UpdateListModel.DESCRIPTION)
self.append_column(description_column)
@@ -344,7 +344,7 @@ class UpdateList(gtk.TreeView):
pass
-class UpdateListModel(gtk.ListStore):
+class UpdateListModel(Gtk.ListStore):
BUNDLE_ID = 0
SELECTED = 1
@@ -353,7 +353,7 @@ class UpdateListModel(gtk.ListStore):
SIZE = 4
def __init__(self, model):
- gtk.ListStore.__init__(self, str, bool, str, str, int)
+ GObject.GObject.__init__(self, str, bool, str, str, int)
for bundle_update in model.updates:
row = [None] * 5
diff --git a/extensions/deviceicon/battery.py b/extensions/deviceicon/battery.py
index 3354c08..66cb490 100644
--- a/extensions/deviceicon/battery.py
+++ b/extensions/deviceicon/battery.py
@@ -17,10 +17,10 @@
import logging
from gettext import gettext as _
-import gconf
+from gi.repository import GConf
import glib
-import gobject
-import gtk
+from gi.repository import GObject
+from gi.repository import Gtk
import dbus
from sugar.graphics import style
@@ -59,7 +59,7 @@ class DeviceView(TrayIcon):
FRAME_POSITION_RELATIVE = 102
def __init__(self, battery):
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
self._color = XoColor(client.get_string('/desktop/sugar/user/color'))
TrayIcon.__init__(self, icon_name=_ICON_NAME, xo_color=self._color)
@@ -120,16 +120,16 @@ class BatteryPalette(Palette):
self._level = 0
self._time = 0
self._status = _STATUS_NOT_PRESENT
- self._progress_bar = gtk.ProgressBar()
+ self._progress_bar = Gtk.ProgressBar()
self._progress_bar.set_size_request(
style.zoom(style.GRID_CELL_SIZE * 4), -1)
self._progress_bar.show()
- self._status_label = gtk.Label()
+ self._status_label = Gtk.Label()
self._status_label.show()
- vbox = gtk.VBox()
- vbox.pack_start(self._progress_bar)
- vbox.pack_start(self._status_label)
+ vbox = Gtk.VBox()
+ vbox.pack_start(self._progress_bar, True, True, 0)
+ vbox.pack_start(self._status_label, True, True, 0)
vbox.show()
self._progress_widget = vbox
@@ -172,22 +172,22 @@ class BatteryPalette(Palette):
self._status_label.set_text(status_text)
-class DeviceModel(gobject.GObject):
+class DeviceModel(GObject.GObject):
__gproperties__ = {
- 'level': (int, None, None, 0, 100, 0, gobject.PARAM_READABLE),
- 'time-remaining': (int, None, None, 0, gobject.constants.G_MAXINT32, 0,
- gobject.PARAM_READABLE), # unit: seconds
- 'charging': (bool, None, None, False, gobject.PARAM_READABLE),
- 'discharging': (bool, None, None, False, gobject.PARAM_READABLE),
- 'present': (bool, None, None, False, gobject.PARAM_READABLE),
+ 'level': (int, None, None, 0, 100, 0, GObject.PARAM_READABLE),
+ 'time-remaining': (int, None, None, 0, GObject.constants.G_MAXINT32, 0,
+ GObject.PARAM_READABLE), # unit: seconds
+ 'charging': (bool, None, None, False, GObject.PARAM_READABLE),
+ 'discharging': (bool, None, None, False, GObject.PARAM_READABLE),
+ 'present': (bool, None, None, False, GObject.PARAM_READABLE),
}
__gsignals__ = {
- 'updated': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([])),
+ 'updated': (GObject.SignalFlags.RUN_FIRST, None, ([])),
}
def __init__(self, battery):
- gobject.GObject.__init__(self)
+ GObject.GObject.__init__(self)
self._battery = battery
self._battery_props_iface = dbus.Interface(self._battery,
dbus.PROPERTIES_IFACE)
diff --git a/extensions/deviceicon/network.py b/extensions/deviceicon/network.py
index ff451f4..6c16890 100644
--- a/extensions/deviceicon/network.py
+++ b/extensions/deviceicon/network.py
@@ -25,10 +25,10 @@ import socket
import struct
import datetime
import time
-import gtk
+from gi.repository import Gtk
import glib
-import gobject
-import gconf
+from gi.repository import GObject
+from gi.repository import GConf
import dbus
from sugar.graphics.icon import get_icon_state
@@ -59,7 +59,7 @@ class WirelessPalette(Palette):
__gtype_name__ = 'SugarWirelessPalette'
__gsignals__ = {
- 'deactivate-connection': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ 'deactivate-connection': (GObject.SignalFlags.RUN_FIRST, None,
([])),
}
@@ -68,16 +68,16 @@ class WirelessPalette(Palette):
self._disconnect_item = None
- self._channel_label = gtk.Label()
+ self._channel_label = Gtk.Label()
self._channel_label.props.xalign = 0.0
self._channel_label.show()
- self._ip_address_label = gtk.Label()
+ self._ip_address_label = Gtk.Label()
- self._info = gtk.VBox()
+ self._info = Gtk.VBox()
def _padded(child, xalign=0, yalign=0.5):
- padder = gtk.Alignment(xalign=xalign, yalign=yalign,
+ padder = Gtk.Alignment.new(xalign=xalign, yalign=yalign,
xscale=1, yscale=0.33)
padder.set_padding(style.DEFAULT_SPACING,
style.DEFAULT_SPACING,
@@ -86,12 +86,12 @@ class WirelessPalette(Palette):
padder.add(child)
return padder
- self._info.pack_start(_padded(self._channel_label))
- self._info.pack_start(_padded(self._ip_address_label))
+ self._info.pack_start(_padded(self._channel_label, True, True, 0))
+ self._info.pack_start(_padded(self._ip_address_label, True, True, 0))
self._info.show_all()
self._disconnect_item = MenuItem(_('Disconnect'))
- icon = Icon(icon_size=gtk.ICON_SIZE_MENU, icon_name='media-eject')
+ icon = Icon(icon_size=Gtk.IconSize.MENU, icon_name='media-eject')
self._disconnect_item.set_image(icon)
self._disconnect_item.connect('activate',
self.__disconnect_activate_cb)
@@ -148,16 +148,16 @@ class WiredPalette(Palette):
label = glib.markup_escape_text(_('Wired Network'))
Palette.__init__(self, primary_text=label)
- self._speed_label = gtk.Label()
+ self._speed_label = Gtk.Label()
self._speed_label.props.xalign = 0.0
self._speed_label.show()
- self._ip_address_label = gtk.Label()
+ self._ip_address_label = Gtk.Label()
- self._info = gtk.VBox()
+ self._info = Gtk.VBox()
def _padded(child, xalign=0, yalign=0.5):
- padder = gtk.Alignment(xalign=xalign, yalign=yalign,
+ padder = Gtk.Alignment.new(xalign=xalign, yalign=yalign,
xscale=1, yscale=0.33)
padder.set_padding(style.DEFAULT_SPACING,
style.DEFAULT_SPACING,
@@ -166,8 +166,8 @@ class WiredPalette(Palette):
padder.add(child)
return padder
- self._info.pack_start(_padded(self._speed_label))
- self._info.pack_start(_padded(self._ip_address_label))
+ self._info.pack_start(_padded(self._speed_label, True, True, 0))
+ self._info.pack_start(_padded(self._ip_address_label, True, True, 0))
self._info.show_all()
self.set_content(self._info)
@@ -194,8 +194,8 @@ class GsmPalette(Palette):
__gtype_name__ = 'SugarGsmPalette'
__gsignals__ = {
- 'gsm-connect': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([])),
- 'gsm-disconnect': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([])),
+ 'gsm-connect': (GObject.SignalFlags.RUN_FIRST, None, ([])),
+ 'gsm-disconnect': (GObject.SignalFlags.RUN_FIRST, None, ([])),
}
def __init__(self):
@@ -210,40 +210,40 @@ class GsmPalette(Palette):
self.menu.append(self._toggle_state_item)
self._toggle_state_item.show()
- self.info_box = gtk.VBox()
+ self.info_box = Gtk.VBox()
- self.error_title_label = gtk.Label("")
+ self.error_title_label = Gtk.Label(label="")
self.error_title_label.set_alignment(0, 0.5)
self.error_title_label.set_line_wrap(True)
- self.info_box.pack_start(self.error_title_label)
- self.error_description_label = gtk.Label("")
+ self.info_box.pack_start(self.error_title_label, True, True, 0)
+ self.error_description_label = Gtk.Label(label="")
self.error_description_label.set_alignment(0, 0.5)
self.error_description_label.set_line_wrap(True)
- self.info_box.pack_start(self.error_description_label)
+ self.info_box.pack_start(self.error_description_label, True, True, 0)
- self.connection_info_box = gtk.HBox()
- icon = Icon(icon_name='data-upload', icon_size=gtk.ICON_SIZE_MENU)
- self.connection_info_box.pack_start(icon)
+ self.connection_info_box = Gtk.HBox()
+ icon = Icon(icon_name='data-upload', icon_size=Gtk.IconSize.MENU)
+ self.connection_info_box.pack_start(icon, True, True, 0)
icon.show()
- self._data_label_up = gtk.Label()
+ self._data_label_up = Gtk.Label()
self._data_label_up.props.xalign = 0.0
label_alignment = self._add_widget_with_padding(self._data_label_up)
- self.connection_info_box.pack_start(label_alignment)
+ self.connection_info_box.pack_start(label_alignment, True, True, 0)
self._data_label_up.show()
label_alignment.show()
- icon = Icon(icon_name='data-download', icon_size=gtk.ICON_SIZE_MENU)
- self.connection_info_box.pack_start(icon)
+ icon = Icon(icon_name='data-download', icon_size=Gtk.IconSize.MENU)
+ self.connection_info_box.pack_start(icon, True, True, 0)
icon.show()
- self._data_label_down = gtk.Label()
+ self._data_label_down = Gtk.Label()
self._data_label_down.props.xalign = 0.0
label_alignment = self._add_widget_with_padding(self._data_label_down)
- self.connection_info_box.pack_start(label_alignment)
+ self.connection_info_box.pack_start(label_alignment, True, True, 0)
self._data_label_down.show()
label_alignment.show()
- self.info_box.pack_start(self.connection_info_box)
+ self.info_box.pack_start(self.connection_info_box, True, True, 0)
self.info_box.show()
self.set_content(self.info_box)
@@ -251,7 +251,7 @@ class GsmPalette(Palette):
self.set_state(_GSM_STATE_NOT_READY)
def _add_widget_with_padding(self, child, xalign=0, yalign=0.5):
- alignment = gtk.Alignment(xalign=xalign, yalign=yalign,
+ alignment = Gtk.Alignment.new(xalign=xalign, yalign=yalign,
xscale=1, yscale=0.33)
alignment.set_padding(style.DEFAULT_SPACING,
style.DEFAULT_SPACING,
@@ -276,7 +276,7 @@ class GsmPalette(Palette):
label = glib.markup_escape_text(_('Disconnected'))
self.props.secondary_text = label
icon = Icon(icon_name='dialog-ok', \
- icon_size=gtk.ICON_SIZE_MENU)
+ icon_size=Gtk.IconSize.MENU)
self._toggle_state_item.set_image(icon)
elif self._current_state == _GSM_STATE_CONNECTING:
@@ -284,7 +284,7 @@ class GsmPalette(Palette):
label = glib.markup_escape_text(_('Connecting...'))
self.props.secondary_text = label
icon = Icon(icon_name='dialog-cancel', \
- icon_size=gtk.ICON_SIZE_MENU)
+ icon_size=Gtk.IconSize.MENU)
self._toggle_state_item.set_image(icon)
elif self._current_state == _GSM_STATE_CONNECTED:
@@ -292,7 +292,7 @@ class GsmPalette(Palette):
self._toggle_state_item.get_child().set_label(_('Disconnect'))
self.update_connection_time()
icon = Icon(icon_name='media-eject', \
- icon_size=gtk.ICON_SIZE_MENU)
+ icon_size=Gtk.IconSize.MENU)
self._toggle_state_item.set_image(icon)
elif self._current_state == _GSM_STATE_FAILED:
@@ -701,7 +701,7 @@ class WiredDeviceView(TrayIcon):
FRAME_POSITION_RELATIVE = 301
def __init__(self, speed, address):
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
color = xocolor.XoColor(client.get_string('/desktop/sugar/user/color'))
TrayIcon.__init__(self, icon_name=self._ICON_NAME, xo_color=color)
@@ -727,7 +727,7 @@ class GsmDeviceView(TrayIcon):
self._connection_time_handler = None
self._connection_timestamp = 0
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
color = xocolor.XoColor(client.get_string('/desktop/sugar/user/color'))
TrayIcon.__init__(self, icon_name=self._ICON_NAME, xo_color=color)
@@ -828,7 +828,7 @@ class GsmDeviceView(TrayIcon):
if connection is not None:
self._connection_timestamp = time.time() - \
connection.get_settings('connection')['timestamp']
- self._connection_time_handler = gobject.timeout_add_seconds( \
+ self._connection_time_handler = GObject.timeout_add_seconds( \
1, self.__connection_timecount_cb)
self._palette.update_connection_time()
self._palette.update_stats(0, 0)
@@ -839,7 +839,7 @@ class GsmDeviceView(TrayIcon):
gsm_state = _GSM_STATE_DISCONNECTED
self._connection_timestamp = 0
if self._connection_time_handler is not None:
- gobject.source_remove(self._connection_time_handler)
+ GObject.source_remove(self._connection_time_handler)
if self._palette is not None:
self._palette.connection_info_box.hide()
diff --git a/extensions/deviceicon/speaker.py b/extensions/deviceicon/speaker.py
index d8b26be..4e2ed0e 100644
--- a/extensions/deviceicon/speaker.py
+++ b/extensions/deviceicon/speaker.py
@@ -15,11 +15,11 @@
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
from gettext import gettext as _
-import gconf
+from gi.repository import GConf
import glib
-import gobject
-import gtk
+from gi.repository import GObject
+from gi.repository import Gtk
from sugar.graphics import style
from sugar.graphics.icon import get_icon_state, Icon
@@ -39,7 +39,7 @@ class DeviceView(TrayIcon):
FRAME_POSITION_RELATIVE = 103
def __init__(self):
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
self._color = XoColor(client.get_string('/desktop/sugar/user/color'))
TrayIcon.__init__(self, icon_name=_ICON_NAME, xo_color=self._color)
@@ -98,25 +98,25 @@ class SpeakerPalette(Palette):
self._model = model
- vbox = gtk.VBox()
+ vbox = Gtk.VBox()
self.set_content(vbox)
vbox.show()
vol_step = sound.VOLUME_STEP
- self._adjustment = gtk.Adjustment(value=self._model.props.level,
+ self._adjustment = Gtk.Adjustment(value=self._model.props.level,
lower=0,
upper=100 + vol_step,
step_incr=vol_step,
page_incr=vol_step,
page_size=vol_step)
- self._hscale = gtk.HScale(self._adjustment)
+ self._hscale = Gtk.HScale(self._adjustment)
self._hscale.set_digits(0)
self._hscale.set_draw_value(False)
vbox.add(self._hscale)
self._hscale.show()
self._mute_item = MenuItem('')
- self._mute_icon = Icon(icon_size=gtk.ICON_SIZE_MENU)
+ self._mute_icon = Icon(icon_size=Gtk.IconSize.MENU)
self._mute_item.set_image(self._mute_icon)
self.menu.append(self._mute_item)
self._mute_item.show()
@@ -173,14 +173,14 @@ class SpeakerPalette(Palette):
self._update_muted()
-class DeviceModel(gobject.GObject):
+class DeviceModel(GObject.GObject):
__gproperties__ = {
- 'level': (int, None, None, 0, 100, 0, gobject.PARAM_READWRITE),
- 'muted': (bool, None, None, False, gobject.PARAM_READWRITE),
+ 'level': (int, None, None, 0, 100, 0, GObject.PARAM_READWRITE),
+ 'muted': (bool, None, None, False, GObject.PARAM_READWRITE),
}
def __init__(self):
- gobject.GObject.__init__(self)
+ GObject.GObject.__init__(self)
sound.muted_changed.connect(self.__muted_changed_cb)
sound.volume_changed.connect(self.__volume_changed_cb)
diff --git a/extensions/deviceicon/speech.py b/extensions/deviceicon/speech.py
index 6b8f915..019e9fa 100644
--- a/extensions/deviceicon/speech.py
+++ b/extensions/deviceicon/speech.py
@@ -17,9 +17,9 @@
from gettext import gettext as _
import glib
-import gtk
-import gconf
-import gobject
+from gi.repository import Gtk
+from gi.repository import GConf
+from gi.repository import GObject
from sugar.graphics.icon import Icon
from sugar.graphics.tray import TrayIcon
@@ -40,7 +40,7 @@ class SpeechDeviceView(TrayIcon):
FRAME_POSITION_RELATIVE = 150
def __init__(self):
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
self._color = XoColor(client.get_string('/desktop/sugar/user/color'))
TrayIcon.__init__(self, icon_name=_ICON_NAME, xo_color=self._color)
self.set_palette_invoker(FrameWidgetInvoker(self))
@@ -69,7 +69,7 @@ class SpeechPalette(Palette):
self._manager.connect('stop', self._set_menu_state, 'stop')
self._manager.connect('pause', self._set_menu_state, 'pause')
- vbox = gtk.VBox()
+ vbox = Gtk.VBox()
self.set_content(vbox)
self._play_icon = Icon(icon_name='player_play')
@@ -88,23 +88,23 @@ class SpeechPalette(Palette):
self.menu.append(self._play_pause_menu)
self.menu.append(self._stop_menu)
- self._adj_pitch = gtk.Adjustment(value=self._manager.get_pitch(),
+ self._adj_pitch = Gtk.Adjustment(value=self._manager.get_pitch(),
lower=self._manager.MIN_PITCH,
upper=self._manager.MAX_PITCH)
- self._hscale_pitch = gtk.HScale(self._adj_pitch)
+ self._hscale_pitch = Gtk.HScale(self._adj_pitch)
self._hscale_pitch.set_draw_value(False)
- vbox.pack_start(gtk.Label(_('Pitch')), padding=style.DEFAULT_PADDING)
- vbox.pack_start(self._hscale_pitch)
+ vbox.pack_start(Gtk.Label(_('Pitch', True, True, 0)), padding=style.DEFAULT_PADDING)
+ vbox.pack_start(self._hscale_pitch, True, True, 0)
- self._adj_rate = gtk.Adjustment(value=self._manager.get_rate(),
+ self._adj_rate = Gtk.Adjustment(value=self._manager.get_rate(),
lower=self._manager.MIN_RATE,
upper=self._manager.MAX_RATE)
- self._hscale_rate = gtk.HScale(self._adj_rate)
+ self._hscale_rate = Gtk.HScale(self._adj_rate)
self._hscale_rate.set_draw_value(False)
- vbox.pack_start(gtk.Label(_('Rate')), padding=style.DEFAULT_PADDING)
- vbox.pack_start(self._hscale_rate)
+ vbox.pack_start(Gtk.Label(_('Rate', True, True, 0)), padding=style.DEFAULT_PADDING)
+ vbox.pack_start(self._hscale_rate, True, True, 0)
vbox.show_all()
self._adj_pitch.connect('value_changed', self.__adj_pitch_changed_cb)
diff --git a/extensions/deviceicon/touchpad.py b/extensions/deviceicon/touchpad.py
index 150e8dc..3e4c23f 100644
--- a/extensions/deviceicon/touchpad.py
+++ b/extensions/deviceicon/touchpad.py
@@ -18,8 +18,8 @@
from gettext import gettext as _
import os
-import gtk
-import gconf
+from gi.repository import Gtk
+from gi.repository import GConf
import glib
import logging
@@ -51,7 +51,7 @@ class DeviceView(TrayIcon):
""" Create the icon that represents the touchpad. """
icon_name = STATUS_ICON[_read_touchpad_mode()]
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
color = XoColor(client.get_string('/desktop/sugar/user/color'))
TrayIcon.__init__(self, icon_name=icon_name, xo_color=color)
@@ -82,11 +82,11 @@ class ResourcePalette(Palette):
self._icon = icon
- vbox = gtk.VBox()
+ vbox = Gtk.VBox()
self.set_content(vbox)
- self._status_text = gtk.Label()
- vbox.pack_start(self._status_text, padding=style.DEFAULT_PADDING)
+ self._status_text = Gtk.Label()
+ vbox.pack_start(self._status_text, True, True, style.DEFAULT_PADDING)
self._status_text.show()
vbox.show()
diff --git a/extensions/deviceicon/volume.py b/extensions/deviceicon/volume.py
index 49e3711..a687481 100644
--- a/extensions/deviceicon/volume.py
+++ b/extensions/deviceicon/volume.py
@@ -17,10 +17,10 @@
import logging
from gettext import gettext as _
-import gobject
-import gio
-import gtk
-import gconf
+from gi.repository import GObject
+from gi.repository import Gio
+from gi.repository import Gtk
+from gi.repository import GConf
from sugar.graphics.tray import TrayIcon
from sugar.graphics.xocolor import XoColor
@@ -44,10 +44,10 @@ class DeviceView(TrayIcon):
self._mount = mount
self._icon_name = None
- icon_theme = gtk.icon_theme_get_default()
+ icon_theme = Gtk.IconTheme.get_default()
for icon_name in self._mount.get_icon().props.names:
icon_info = icon_theme.lookup_icon(icon_name,
- gtk.ICON_SIZE_LARGE_TOOLBAR, 0)
+ Gtk.IconSize.LARGE_TOOLBAR, 0)
if icon_info is not None:
self._icon_name = icon_name
break
@@ -56,7 +56,7 @@ class DeviceView(TrayIcon):
self._icon_name = 'drive'
# TODO: retrieve the colors from the owner of the device
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
color = XoColor(client.get_string('/desktop/sugar/user/color'))
TrayIcon.__init__(self, icon_name=icon_name, xo_color=color)
@@ -70,9 +70,9 @@ class DeviceView(TrayIcon):
palette.set_group_id('frame')
menu_item = MenuItem(_('Show contents'))
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
color = XoColor(client.get_string('/desktop/sugar/user/color'))
- icon = Icon(icon_name=self._icon_name, icon_size=gtk.ICON_SIZE_MENU,
+ icon = Icon(icon_name=self._icon_name, icon_size=Gtk.IconSize.MENU,
xo_color=color)
menu_item.set_image(icon)
icon.show()
@@ -94,11 +94,11 @@ class DeviceView(TrayIcon):
def setup(tray):
- gobject.idle_add(_setup_volumes, tray)
+ GObject.idle_add(_setup_volumes, tray)
def _setup_volumes(tray):
- volume_monitor = gio.volume_monitor_get()
+ volume_monitor = Gio.volume_monitor_get()
for volume in volume_monitor.get_volumes():
_mount(volume, tray)
@@ -126,7 +126,7 @@ def _mount(volume, tray):
#TODO: use volume.should_automount() when it gets into pygtk
if volume.get_mount() is None and volume.can_mount():
#TODO: pass None as mount_operation, or better, SugarMountOperation
- volume.mount(gtk.MountOperation(tray.get_toplevel()), _mount_cb)
+ volume.mount(Gtk.MountOperation(tray.get_toplevel()), _mount_cb)
def _mount_cb(volume, result):
diff --git a/extensions/globalkey/screenshot.py b/extensions/globalkey/screenshot.py
index 0afe964..f7c3a84 100644
--- a/extensions/globalkey/screenshot.py
+++ b/extensions/globalkey/screenshot.py
@@ -19,8 +19,8 @@ import os
import tempfile
from gettext import gettext as _
-import gtk
-import gconf
+from gi.repository import Gtk
+from gi.repository import GConf
import dbus
from sugar.datastore import datastore
@@ -36,18 +36,18 @@ def handle_key_press(key):
fd, file_path = tempfile.mkstemp(dir=tmp_dir)
os.close(fd)
- window = gtk.gdk.get_default_root_window()
+ window = Gdk.get_default_root_window()
width, height = window.get_size()
x_orig, y_orig = window.get_origin()
- screenshot = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, has_alpha=False,
+ screenshot = GdkPixbuf.Pixbuf(GdkPixbuf.Colorspace.RGB, has_alpha=False,
bits_per_sample=8, width=width,
height=height)
screenshot.get_from_drawable(window, window.get_colormap(), x_orig,
y_orig, 0, 0, width, height)
screenshot.save(file_path, 'png')
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
color = client.get_string('/desktop/sugar/user/color')
content_title = None
@@ -90,7 +90,7 @@ def handle_key_press(key):
def _get_preview_data(screenshot):
preview = screenshot.scale_simple(style.zoom(300), style.zoom(225),
- gtk.gdk.INTERP_BILINEAR)
+ GdkPixbuf.InterpType.BILINEAR)
preview_data = []
def save_func(buf, data):
diff --git a/src/jarabe/controlpanel/gui.py b/src/jarabe/controlpanel/gui.py
index 46810aa..d9e0bf0 100644
--- a/src/jarabe/controlpanel/gui.py
+++ b/src/jarabe/controlpanel/gui.py
@@ -18,8 +18,8 @@ import os
import logging
from gettext import gettext as _
-import gobject
-import gtk
+from gi.repository import GObject
+from gi.repository import Gtk
from sugar.graphics.icon import Icon
from sugar.graphics import style
@@ -35,21 +35,21 @@ POWERD_FLAG_DIR = '/etc/powerd/flags'
_logger = logging.getLogger('ControlPanel')
-class ControlPanel(gtk.Window):
+class ControlPanel(Gtk.Window):
__gtype_name__ = 'SugarControlPanel'
def __init__(self):
- gtk.Window.__init__(self)
+ GObject.GObject.__init__(self)
- self._max_columns = int(0.285 * (float(gtk.gdk.screen_width()) /
+ self._max_columns = int(0.285 * (float(Gdk.Screen.width()) /
style.GRID_CELL_SIZE - 3))
self.set_border_width(style.LINE_WIDTH)
offset = style.GRID_CELL_SIZE
- width = gtk.gdk.screen_width() - offset * 2
- height = gtk.gdk.screen_height() - offset * 2
+ width = Gdk.Screen.width() - offset * 2
+ height = Gdk.Screen.height() - offset * 2
self.set_size_request(width, height)
- self.set_position(gtk.WIN_POS_CENTER_ALWAYS)
+ self.set_position(Gtk.WindowPosition.CENTER_ALWAYS)
self.set_decorated(False)
self.set_resizable(False)
self.set_modal(True)
@@ -63,14 +63,14 @@ class ControlPanel(gtk.Window):
self._section_toolbar = None
self._main_toolbar = None
- self._vbox = gtk.VBox()
- self._hbox = gtk.HBox()
- self._vbox.pack_start(self._hbox)
+ self._vbox = Gtk.VBox()
+ self._hbox = Gtk.HBox()
+ self._vbox.pack_start(self._hbox, True, True, 0)
self._hbox.show()
- self._main_view = gtk.EventBox()
- self._hbox.pack_start(self._main_view)
- self._main_view.modify_bg(gtk.STATE_NORMAL,
+ self._main_view = Gtk.EventBox()
+ self._hbox.pack_start(self._main_view, True, True, 0)
+ self._main_view.modify_bg(Gtk.StateType.NORMAL,
style.COLOR_BLACK.get_gdk_color())
self._main_view.show()
@@ -86,7 +86,7 @@ class ControlPanel(gtk.Window):
self._show_main_view()
def __realize_cb(self, widget):
- self.window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DIALOG)
+ self.set_type_hint(Gdk.WindowTypeHint.DIALOG)
self.window.set_accept_focus(True)
def _set_canvas(self, canvas):
@@ -103,7 +103,7 @@ class ControlPanel(gtk.Window):
self._vbox.reorder_child(toolbar, 0)
self._toolbar = toolbar
if not self._separator:
- self._separator = gtk.HSeparator()
+ self._separator = Gtk.HSeparator()
self._vbox.pack_start(self._separator, False)
self._vbox.reorder_child(self._separator, 1)
self._separator.show()
@@ -111,17 +111,17 @@ class ControlPanel(gtk.Window):
def _setup_main(self):
self._main_toolbar = MainToolbar()
- self._table = gtk.Table()
+ self._table = Gtk.Table()
self._table.set_col_spacings(style.GRID_CELL_SIZE)
self._table.set_row_spacings(style.GRID_CELL_SIZE)
self._table.set_border_width(style.GRID_CELL_SIZE)
- self._scrolledwindow = gtk.ScrolledWindow()
- self._scrolledwindow.set_policy(gtk.POLICY_AUTOMATIC,
- gtk.POLICY_AUTOMATIC)
+ self._scrolledwindow = Gtk.ScrolledWindow()
+ self._scrolledwindow.set_policy(Gtk.PolicyType.AUTOMATIC,
+ Gtk.PolicyType.AUTOMATIC)
self._scrolledwindow.add_with_viewport(self._table)
child = self._scrolledwindow.get_child()
- child.modify_bg(gtk.STATE_NORMAL, style.COLOR_BLACK.get_gdk_color())
+ child.modify_bg(Gtk.StateType.NORMAL, style.COLOR_BLACK.get_gdk_color())
self._setup_options()
self._main_toolbar.connect('stop-clicked',
@@ -180,7 +180,7 @@ class ControlPanel(gtk.Window):
self._set_toolbar(self._main_toolbar)
self._main_toolbar.show()
self._set_canvas(self._scrolledwindow)
- self._main_view.modify_bg(gtk.STATE_NORMAL,
+ self._main_view.modify_bg(Gtk.StateType.NORMAL,
style.COLOR_BLACK.get_gdk_color())
self._table.show()
self._scrolledwindow.show()
@@ -211,7 +211,7 @@ class ControlPanel(gtk.Window):
icon = self._section_toolbar.get_icon()
icon.set_from_icon_name(self._options[option]['icon'],
- gtk.ICON_SIZE_LARGE_TOOLBAR)
+ Gtk.IconSize.LARGE_TOOLBAR)
icon.props.xo_color = self._options[option]['color']
title = self._section_toolbar.get_title()
title.set_text(self._options[option]['title'])
@@ -228,7 +228,7 @@ class ControlPanel(gtk.Window):
model = ModelWrapper(mod)
try:
- self.get_window().set_cursor(gtk.gdk.Cursor(gtk.gdk.WATCH))
+ self.get_window().set_cursor(Gdk.Cursor.new(Gdk.CursorType.WATCH))
self._section_view = view_class(model,
self._options[option]['alerts'])
@@ -241,7 +241,7 @@ class ControlPanel(gtk.Window):
self.__valid_section_cb)
self._section_view.connect('request-close',
self.__close_request_cb)
- self._main_view.modify_bg(gtk.STATE_NORMAL,
+ self._main_view.modify_bg(Gtk.StateType.NORMAL,
style.COLOR_WHITE.get_gdk_color())
def set_section_view_auto_close(self):
@@ -298,16 +298,16 @@ class ControlPanel(gtk.Window):
alert.props.msg = _('Changes require restart')
icon = Icon(icon_name='dialog-cancel')
- alert.add_button(gtk.RESPONSE_CANCEL, _('Cancel changes'), icon)
+ alert.add_button(Gtk.ResponseType.CANCEL, _('Cancel changes'), icon)
icon.show()
if self._current_option != 'aboutme':
icon = Icon(icon_name='dialog-ok')
- alert.add_button(gtk.RESPONSE_ACCEPT, _('Later'), icon)
+ alert.add_button(Gtk.ResponseType.ACCEPT, _('Later'), icon)
icon.show()
icon = Icon(icon_name='system-restart')
- alert.add_button(gtk.RESPONSE_APPLY, _('Restart now'), icon)
+ alert.add_button(Gtk.ResponseType.APPLY, _('Restart now'), icon)
icon.show()
self._vbox.pack_start(alert, False)
@@ -321,15 +321,15 @@ class ControlPanel(gtk.Window):
self._vbox.remove(alert)
self._section_toolbar.accept_button.set_sensitive(True)
self._section_toolbar.cancel_button.set_sensitive(True)
- if response_id is gtk.RESPONSE_CANCEL:
+ if response_id is Gtk.ResponseType.CANCEL:
self._section_view.undo()
self._section_view.setup()
self._options[self._current_option]['alerts'] = []
- elif response_id is gtk.RESPONSE_ACCEPT:
+ elif response_id is Gtk.ResponseType.ACCEPT:
self._options[self._current_option]['alerts'] = \
self._section_view.restart_alerts
self._show_main_view()
- elif response_id is gtk.RESPONSE_APPLY:
+ elif response_id is Gtk.ResponseType.APPLY:
session_manager = get_session_manager()
session_manager.logout()
@@ -378,14 +378,14 @@ class ModelWrapper(object):
_logger.debug('Error undo option: %s', detail)
-class _SectionIcon(gtk.EventBox):
+class _SectionIcon(Gtk.EventBox):
__gtype_name__ = 'SugarSectionIcon'
__gproperties__ = {
- 'icon-name': (str, None, None, None, gobject.PARAM_READWRITE),
- 'pixel-size': (object, None, None, gobject.PARAM_READWRITE),
- 'xo-color': (object, None, None, gobject.PARAM_READWRITE),
- 'title': (str, None, None, None, gobject.PARAM_READWRITE),
+ 'icon-name': (str, None, None, None, GObject.PARAM_READWRITE),
+ 'pixel-size': (object, None, None, GObject.PARAM_READWRITE),
+ 'xo-color': (object, None, None, GObject.PARAM_READWRITE),
+ 'title': (str, None, None, None, GObject.PARAM_READWRITE),
}
def __init__(self, **kwargs):
@@ -394,23 +394,23 @@ class _SectionIcon(gtk.EventBox):
self._xo_color = None
self._title = 'No Title'
- gobject.GObject.__init__(self, **kwargs)
+ GObject.GObject.__init__(self, **kwargs)
- self._vbox = gtk.VBox()
+ self._vbox = Gtk.VBox()
self._icon = Icon(icon_name=self._icon_name,
pixel_size=self._pixel_size,
xo_color=self._xo_color)
self._vbox.pack_start(self._icon, expand=False, fill=False)
- self._label = gtk.Label(self._title)
- self._label.modify_fg(gtk.STATE_NORMAL,
+ self._label = Gtk.Label(label=self._title)
+ self._label.modify_fg(Gtk.StateType.NORMAL,
style.COLOR_WHITE.get_gdk_color())
self._vbox.pack_start(self._label, expand=False, fill=False)
self._vbox.set_spacing(style.DEFAULT_SPACING)
self.set_visible_window(False)
self.set_app_paintable(True)
- self.set_events(gtk.gdk.BUTTON_PRESS_MASK)
+ self.set_events(Gdk.EventMask.BUTTON_PRESS_MASK)
self.add(self._vbox)
self._vbox.show()
diff --git a/src/jarabe/controlpanel/inlinealert.py b/src/jarabe/controlpanel/inlinealert.py
index f970af4..49419a3 100644
--- a/src/jarabe/controlpanel/inlinealert.py
+++ b/src/jarabe/controlpanel/inlinealert.py
@@ -14,15 +14,15 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-import gtk
-import gobject
-import pango
+from gi.repository import Gtk
+from gi.repository import GObject
+from gi.repository import Pango
from sugar.graphics import style
from sugar.graphics.icon import Icon
-class InlineAlert(gtk.HBox):
+class InlineAlert(Gtk.HBox):
"""UI interface for Inline alerts
Inline alerts are different from the other alerts beause they are
@@ -37,8 +37,8 @@ class InlineAlert(gtk.HBox):
__gtype_name__ = 'SugarInlineAlert'
__gproperties__ = {
- 'msg': (str, None, None, None, gobject.PARAM_READWRITE),
- 'icon': (object, None, None, gobject.PARAM_WRITABLE),
+ 'msg': (str, None, None, None, GObject.PARAM_READWRITE),
+ 'icon': (object, None, None, GObject.PARAM_WRITABLE),
}
def __init__(self, **kwargs):
@@ -49,17 +49,17 @@ class InlineAlert(gtk.HBox):
fill_color=style.COLOR_SELECTION_GREY.get_svg(),
stroke_color=style.COLOR_WHITE.get_svg())
- self._msg_label = gtk.Label()
+ self._msg_label = Gtk.Label()
self._msg_label.set_max_width_chars(50)
- self._msg_label.set_ellipsize(pango.ELLIPSIZE_MIDDLE)
+ self._msg_label.set_ellipsize(Pango.EllipsizeMode.MIDDLE)
self._msg_label.set_alignment(0, 0.5)
- self._msg_label.modify_fg(gtk.STATE_NORMAL,
+ self._msg_label.modify_fg(Gtk.StateType.NORMAL,
style.COLOR_SELECTION_GREY.get_gdk_color())
- gobject.GObject.__init__(self, **kwargs)
+ GObject.GObject.__init__(self, **kwargs)
self.set_spacing(style.DEFAULT_SPACING)
- self.modify_bg(gtk.STATE_NORMAL,
+ self.modify_bg(Gtk.StateType.NORMAL,
style.COLOR_WHITE.get_gdk_color())
self.pack_start(self._icon, False)
diff --git a/src/jarabe/controlpanel/sectionview.py b/src/jarabe/controlpanel/sectionview.py
index 4b5751f..0e37e18 100644
--- a/src/jarabe/controlpanel/sectionview.py
+++ b/src/jarabe/controlpanel/sectionview.py
@@ -14,26 +14,26 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-import gobject
-import gtk
+from gi.repository import GObject
+from gi.repository import Gtk
from gettext import gettext as _
-class SectionView(gtk.VBox):
+class SectionView(Gtk.VBox):
__gtype_name__ = 'SugarSectionView'
__gsignals__ = {
- 'request-close': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([])),
+ 'request-close': (GObject.SignalFlags.RUN_FIRST, None, ([])),
}
__gproperties__ = {
- 'is_valid': (bool, None, None, True, gobject.PARAM_READWRITE),
+ 'is_valid': (bool, None, None, True, GObject.PARAM_READWRITE),
}
_APPLY_TIMEOUT = 1000
def __init__(self):
- gtk.VBox.__init__(self)
+ GObject.GObject.__init__(self)
self._is_valid = True
self.auto_close = False
self.needs_restart = False
diff --git a/src/jarabe/controlpanel/toolbar.py b/src/jarabe/controlpanel/toolbar.py
index fca34a0..309a2cb 100644
--- a/src/jarabe/controlpanel/toolbar.py
+++ b/src/jarabe/controlpanel/toolbar.py
@@ -14,9 +14,9 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-import gtk
+from gi.repository import Gtk
import gettext
-import gobject
+from gi.repository import GObject
_ = lambda msg: gettext.dgettext('sugar', msg)
@@ -26,26 +26,26 @@ from sugar.graphics import iconentry
from sugar.graphics import style
-class MainToolbar(gtk.Toolbar):
+class MainToolbar(Gtk.Toolbar):
""" Main toolbar of the control panel
"""
__gtype_name__ = 'MainToolbar'
__gsignals__ = {
- 'stop-clicked': (gobject.SIGNAL_RUN_FIRST,
- gobject.TYPE_NONE,
+ 'stop-clicked': (GObject.SignalFlags.RUN_FIRST,
+ None,
([])),
- 'search-changed': (gobject.SIGNAL_RUN_FIRST,
- gobject.TYPE_NONE,
+ 'search-changed': (GObject.SignalFlags.RUN_FIRST,
+ None,
([str])),
}
def __init__(self):
- gtk.Toolbar.__init__(self)
+ GObject.GObject.__init__(self)
self._add_separator()
- tool_item = gtk.ToolItem()
+ tool_item = Gtk.ToolItem()
self.insert(tool_item, -1)
tool_item.show()
self._search_entry = iconentry.IconEntry()
@@ -70,7 +70,7 @@ class MainToolbar(gtk.Toolbar):
return self._search_entry
def _add_separator(self, expand=False):
- separator = gtk.SeparatorToolItem()
+ separator = Gtk.SeparatorToolItem()
separator.props.draw = False
if expand:
separator.set_expand(True)
@@ -86,22 +86,22 @@ class MainToolbar(gtk.Toolbar):
self.emit('stop-clicked')
-class SectionToolbar(gtk.Toolbar):
+class SectionToolbar(Gtk.Toolbar):
""" Toolbar of the sections of the control panel
"""
__gtype_name__ = 'SectionToolbar'
__gsignals__ = {
- 'cancel-clicked': (gobject.SIGNAL_RUN_FIRST,
- gobject.TYPE_NONE,
+ 'cancel-clicked': (GObject.SignalFlags.RUN_FIRST,
+ None,
([])),
- 'accept-clicked': (gobject.SIGNAL_RUN_FIRST,
- gobject.TYPE_NONE,
+ 'accept-clicked': (GObject.SignalFlags.RUN_FIRST,
+ None,
([])),
}
def __init__(self):
- gtk.Toolbar.__init__(self)
+ GObject.GObject.__init__(self)
self._add_separator()
@@ -110,7 +110,7 @@ class SectionToolbar(gtk.Toolbar):
self._add_separator()
- self._title = gtk.Label()
+ self._title = Gtk.Label()
self._add_widget(self._title)
self._add_separator(True)
@@ -134,7 +134,7 @@ class SectionToolbar(gtk.Toolbar):
return self._title
def _add_separator(self, expand=False):
- separator = gtk.SeparatorToolItem()
+ separator = Gtk.SeparatorToolItem()
separator.props.draw = False
if expand:
separator.set_expand(True)
@@ -144,7 +144,7 @@ class SectionToolbar(gtk.Toolbar):
separator.show()
def _add_widget(self, widget, expand=False):
- tool_item = gtk.ToolItem()
+ tool_item = Gtk.ToolItem()
tool_item.set_expand(expand)
tool_item.add(widget)
diff --git a/src/jarabe/desktop/activitieslist.py b/src/jarabe/desktop/activitieslist.py
index 7bf0960..83d0d9c 100644
--- a/src/jarabe/desktop/activitieslist.py
+++ b/src/jarabe/desktop/activitieslist.py
@@ -19,10 +19,10 @@ import os
import logging
from gettext import gettext as _
-import gobject
-import pango
-import gconf
-import gtk
+from gi.repository import GObject
+from gi.repository import Pango
+from gi.repository import GConf
+from gi.repository import Gtk
from sugar import util
from sugar.graphics import style
@@ -36,23 +36,23 @@ from jarabe.view.palettes import ActivityPalette
from jarabe.journal import misc
-class ActivitiesTreeView(gtk.TreeView):
+class ActivitiesTreeView(Gtk.TreeView):
__gtype_name__ = 'SugarActivitiesTreeView'
__gsignals__ = {
- 'erase-activated': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ 'erase-activated': (GObject.SignalFlags.RUN_FIRST, None,
([str])),
}
def __init__(self):
- gobject.GObject.__init__(self)
+ GObject.GObject.__init__(self)
self._query = ''
- self.modify_base(gtk.STATE_NORMAL, style.COLOR_WHITE.get_gdk_color())
+ self.modify_base(Gtk.StateType.NORMAL, style.COLOR_WHITE.get_gdk_color())
self.set_headers_visible(False)
selection = self.get_selection()
- selection.set_mode(gtk.SELECTION_NONE)
+ selection.set_mode(Gtk.SelectionMode.NONE)
model = ListModel()
model.set_visible_func(self.__model_visible_cb)
@@ -61,8 +61,8 @@ class ActivitiesTreeView(gtk.TreeView):
cell_favorite = CellRendererFavorite(self)
cell_favorite.connect('clicked', self.__favorite_clicked_cb)
- column = gtk.TreeViewColumn()
- column.pack_start(cell_favorite)
+ column = Gtk.TreeViewColumn()
+ column.pack_start(cell_favorite, True)
column.set_cell_data_func(cell_favorite, self.__favorite_set_data_cb)
self.append_column(column)
@@ -70,48 +70,48 @@ class ActivitiesTreeView(gtk.TreeView):
cell_icon.connect('erase-activated', self.__erase_activated_cb)
cell_icon.connect('clicked', self.__icon_clicked_cb)
- column = gtk.TreeViewColumn()
- column.pack_start(cell_icon)
+ column = Gtk.TreeViewColumn()
+ column.pack_start(cell_icon, True)
column.add_attribute(cell_icon, 'file-name', ListModel.COLUMN_ICON)
self.append_column(column)
- cell_text = gtk.CellRendererText()
- cell_text.props.ellipsize = pango.ELLIPSIZE_MIDDLE
+ cell_text = Gtk.CellRendererText()
+ cell_text.props.ellipsize = Pango.EllipsizeMode.MIDDLE
cell_text.props.ellipsize_set = True
- column = gtk.TreeViewColumn()
- column.props.sizing = gtk.TREE_VIEW_COLUMN_GROW_ONLY
+ column = Gtk.TreeViewColumn()
+ column.props.sizing = Gtk.TreeViewColumnSizing.GROW_ONLY
column.props.expand = True
column.set_sort_column_id(ListModel.COLUMN_TITLE)
- column.pack_start(cell_text)
+ column.pack_start(cell_text, True)
column.add_attribute(cell_text, 'markup', ListModel.COLUMN_TITLE)
self.append_column(column)
- cell_text = gtk.CellRendererText()
+ cell_text = Gtk.CellRendererText()
cell_text.props.xalign = 1
- column = gtk.TreeViewColumn()
+ column = Gtk.TreeViewColumn()
column.set_alignment(1)
- column.props.sizing = gtk.TREE_VIEW_COLUMN_GROW_ONLY
+ column.props.sizing = Gtk.TreeViewColumnSizing.GROW_ONLY
column.props.resizable = True
column.props.reorderable = True
column.props.expand = True
column.set_sort_column_id(ListModel.COLUMN_VERSION)
- column.pack_start(cell_text)
+ column.pack_start(cell_text, True)
column.add_attribute(cell_text, 'text', ListModel.COLUMN_VERSION_TEXT)
self.append_column(column)
- cell_text = gtk.CellRendererText()
+ cell_text = Gtk.CellRendererText()
cell_text.props.xalign = 1
- column = gtk.TreeViewColumn()
+ column = Gtk.TreeViewColumn()
column.set_alignment(1)
- column.props.sizing = gtk.TREE_VIEW_COLUMN_GROW_ONLY
+ column.props.sizing = Gtk.TreeViewColumnSizing.GROW_ONLY
column.props.resizable = True
column.props.reorderable = True
column.props.expand = True
column.set_sort_column_id(ListModel.COLUMN_DATE)
- column.pack_start(cell_text)
+ column.pack_start(cell_text, True)
column.add_attribute(cell_text, 'text', ListModel.COLUMN_DATE_TEXT)
self.append_column(column)
@@ -124,7 +124,7 @@ class ActivitiesTreeView(gtk.TreeView):
def __favorite_set_data_cb(self, column, cell, model, tree_iter):
favorite = model[tree_iter][ListModel.COLUMN_FAVORITE]
if favorite:
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
color = XoColor(client.get_string('/desktop/sugar/user/color'))
cell.props.xo_color = color
else:
@@ -154,7 +154,7 @@ class ActivitiesTreeView(gtk.TreeView):
return title is not None and title.lower().find(self._query) > -1
-class ListModel(gtk.TreeModelSort):
+class ListModel(Gtk.TreeModelSort):
__gtype_name__ = 'SugarListModel'
COLUMN_BUNDLE_ID = 0
@@ -167,11 +167,11 @@ class ListModel(gtk.TreeModelSort):
COLUMN_DATE_TEXT = 7
def __init__(self):
- self._model = gtk.ListStore(str, bool, str, str, str, str, int, str)
+ self._model = Gtk.ListStore(str, bool, str, str, str, str, int, str)
self._model_filter = self._model.filter_new()
- gtk.TreeModelSort.__init__(self, self._model_filter)
+ GObject.GObject.__init__(self, self._model_filter)
- gobject.idle_add(self.__connect_to_bundle_registry_cb)
+ GObject.idle_add(self.__connect_to_bundle_registry_cb)
def __connect_to_bundle_registry_cb(self):
registry = bundleregistry.get_registry()
@@ -233,7 +233,7 @@ class ListModel(gtk.TreeModelSort):
util.timestamp_to_elapsed_string(timestamp)])
def set_visible_func(self, func):
- self._model_filter.set_visible_func(func)
+ return;self._model_filter.set_visible_func(func)
def refilter(self):
self._model_filter.refilter()
@@ -249,8 +249,8 @@ class CellRendererFavorite(CellRendererIcon):
self.props.height = style.GRID_CELL_SIZE
self.props.size = style.SMALL_ICON_SIZE
self.props.icon_name = 'emblem-favorite'
- self.props.mode = gtk.CELL_RENDERER_MODE_ACTIVATABLE
- client = gconf.client_get_default()
+ self.props.mode = Gtk.CellRendererMode.ACTIVATABLE
+ client = GConf.Client.get_default()
prelit_color = XoColor(client.get_string('/desktop/sugar/user/color'))
self.props.prelit_stroke_color = prelit_color.get_stroke_color()
self.props.prelit_fill_color = prelit_color.get_fill_color()
@@ -260,7 +260,7 @@ class CellRendererActivityIcon(CellRendererIcon):
__gtype_name__ = 'SugarCellRendererActivityIcon'
__gsignals__ = {
- 'erase-activated': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ 'erase-activated': (GObject.SignalFlags.RUN_FIRST, None,
([str])),
}
@@ -272,9 +272,9 @@ class CellRendererActivityIcon(CellRendererIcon):
self.props.size = style.STANDARD_ICON_SIZE
self.props.stroke_color = style.COLOR_BUTTON_GREY.get_svg()
self.props.fill_color = style.COLOR_TRANSPARENT.get_svg()
- self.props.mode = gtk.CELL_RENDERER_MODE_ACTIVATABLE
+ self.props.mode = Gtk.CellRendererMode.ACTIVATABLE
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
prelit_color = XoColor(client.get_string('/desktop/sugar/user/color'))
self.props.prelit_stroke_color = prelit_color.get_stroke_color()
self.props.prelit_fill_color = prelit_color.get_fill_color()
@@ -295,19 +295,19 @@ class CellRendererActivityIcon(CellRendererIcon):
self.emit('erase-activated', bundle_id)
-class ActivitiesList(gtk.VBox):
+class ActivitiesList(Gtk.VBox):
__gtype_name__ = 'SugarActivitiesList'
def __init__(self):
logging.debug('STARTUP: Loading the activities list')
- gobject.GObject.__init__(self)
+ GObject.GObject.__init__(self)
- scrolled_window = gtk.ScrolledWindow()
- scrolled_window.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
- scrolled_window.set_shadow_type(gtk.SHADOW_NONE)
+ scrolled_window = Gtk.ScrolledWindow()
+ scrolled_window.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC)
+ scrolled_window.set_shadow_type(Gtk.ShadowType.NONE)
scrolled_window.connect('key-press-event', self.__key_press_event_cb)
- self.pack_start(scrolled_window)
+ self.pack_start(scrolled_window, True, True, 0)
scrolled_window.show()
self._tree_view = ActivitiesTreeView()
@@ -321,7 +321,7 @@ class ActivitiesList(gtk.VBox):
self._tree_view.set_filter(query)
def __key_press_event_cb(self, scrolled_window, event):
- keyname = gtk.gdk.keyval_name(event.keyval)
+ keyname = Gdk.keyval_name(event.keyval)
vadjustment = scrolled_window.props.vadjustment
if keyname == 'Up':
@@ -360,10 +360,10 @@ class ActivitiesList(gtk.VBox):
% activity_info.get_name()
cancel_icon = Icon(icon_name='dialog-cancel')
- alert.add_button(gtk.RESPONSE_CANCEL, _('Keep'), cancel_icon)
+ alert.add_button(Gtk.ResponseType.CANCEL, _('Keep'), cancel_icon)
erase_icon = Icon(icon_name='dialog-ok')
- alert.add_button(gtk.RESPONSE_OK, _('Erase'), erase_icon)
+ alert.add_button(Gtk.ResponseType.OK, _('Erase'), erase_icon)
alert.connect('response', self.__erase_confirmation_dialog_response_cb,
bundle_id)
@@ -373,7 +373,7 @@ class ActivitiesList(gtk.VBox):
def __erase_confirmation_dialog_response_cb(self, alert, response_id,
bundle_id):
self.remove_alert()
- if response_id == gtk.RESPONSE_OK:
+ if response_id == Gtk.ResponseType.OK:
registry = bundleregistry.get_registry()
bundle = registry.get_bundle(bundle_id)
registry.uninstall(bundle, delete_profile=True)
@@ -383,7 +383,7 @@ class ActivityListPalette(ActivityPalette):
__gtype_name__ = 'SugarActivityListPalette'
__gsignals__ = {
- 'erase-activated': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ 'erase-activated': (GObject.SignalFlags.RUN_FIRST, None,
([str])),
}
@@ -399,7 +399,7 @@ class ActivityListPalette(ActivityPalette):
self._favorite_item = MenuItem('')
self._favorite_icon = Icon(icon_name='emblem-favorite',
- icon_size=gtk.ICON_SIZE_MENU)
+ icon_size=Gtk.IconSize.MENU)
self._favorite_item.set_image(self._favorite_icon)
self._favorite_item.connect('activate',
self.__change_favorite_activate_cb)
@@ -431,14 +431,14 @@ class ActivityListPalette(ActivityPalette):
registry.disconnect(self._activity_changed_sid)
def _update_favorite_item(self):
- label = self._favorite_item.child
+ label = self._favorite_item.get_child()
if self._favorite:
label.set_text(_('Remove favorite'))
xo_color = XoColor('%s,%s' % (style.COLOR_WHITE.get_svg(),
style.COLOR_TRANSPARENT.get_svg()))
else:
label.set_text(_('Make favorite'))
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
xo_color = XoColor(client.get_string('/desktop/sugar/user/color'))
self._favorite_icon.props.xo_color = xo_color
diff --git a/src/jarabe/desktop/favoriteslayout.py b/src/jarabe/desktop/favoriteslayout.py
index e0ee80e..1b8194c 100644
--- a/src/jarabe/desktop/favoriteslayout.py
+++ b/src/jarabe/desktop/favoriteslayout.py
@@ -20,7 +20,7 @@ import math
import hashlib
from gettext import gettext as _
-import gtk
+from gi.repository import Gtk
from sugar.graphics import style
@@ -84,7 +84,7 @@ class ViewLayout(Layout):
# calculate x coordinate and create allocation
x = (width - owner_width) / 2
- owner_icon_allocation = gtk.gdk.Rectangle(x, allocation.y + y,
+ owner_icon_allocation = (x, allocation.y + y,
owner_width, owner_height)
owner_icon.size_allocate(owner_icon_allocation)
@@ -104,7 +104,7 @@ class ViewLayout(Layout):
activity_width, activity_height = activity_icon.size_request()
x = (width - activity_width) / 2
y = owner_icon_allocation.y + owner_height
- activity_icon_allocation = gtk.gdk.Rectangle(x, y, activity_width,
+ activity_icon_allocation = (x, y, activity_width,
activity_height)
activity_icon.size_allocate(activity_icon_allocation)
@@ -123,7 +123,7 @@ class ViewLayout(Layout):
self._grid.move(child, x / _CELL_SIZE, y / _CELL_SIZE, locked=True)
width, height = child.size_request()
rect = self._grid.get_child_rect(child)
- child_allocation = gtk.gdk.Rectangle(int(round(rect.x * _CELL_SIZE)),
+ child_allocation = (int(round(rect.x * _CELL_SIZE)),
int(round(rect.y * _CELL_SIZE)),
width,
height)
@@ -138,7 +138,7 @@ class ViewLayout(Layout):
def __grid_child_changed_cb(self, grid, child):
width, height = child.size_request()
rect = self._grid.get_child_rect(child)
- child_allocation = gtk.gdk.Rectangle(int(round(rect.x * _CELL_SIZE)),
+ child_allocation = (int(round(rect.x * _CELL_SIZE)),
int(round(rect.y * _CELL_SIZE)),
width,
height)
@@ -168,7 +168,7 @@ class SpreadLayout(ViewLayout):
rect = self._grid.get_child_rect(child)
x = int(round(rect.x * _CELL_SIZE))
y = int(round(rect.y * _CELL_SIZE)) + allocation.y
- child_allocation = gtk.gdk.Rectangle(x, y, width, height)
+ child_allocation = (x, y, width, height)
child.size_allocate(child_allocation)
@@ -239,7 +239,7 @@ class RandomLayout(SpreadLayout):
rect = self._grid.get_child_rect(child)
x = int(round(rect.x * _CELL_SIZE))
y = int(round(rect.y * _CELL_SIZE)) + allocation.y
- child_allocation = gtk.gdk.Rectangle(x, y,
+ child_allocation = (x, y,
child_width, child_height)
child.size_allocate(child_allocation)
@@ -261,7 +261,7 @@ class RandomLayout(SpreadLayout):
_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 - \
+_MAXIMUM_RADIUS = (Gdk.Screen.height() - style.GRID_CELL_SIZE) / 2 - \
style.STANDARD_ICON_SIZE - style.DEFAULT_SPACING
_ICON_SPACING_FACTORS = [1.5, 1.4, 1.3, 1.2, 1.1, 1.0]
_SPIRAL_SPACING_FACTORS = [1.5, 1.5, 1.5, 1.4, 1.3, 1.2]
@@ -368,7 +368,7 @@ class RingLayout(ViewLayout):
allocation.height)
child.size_request()
child.set_size(icon_size)
- child_allocation = gtk.gdk.Rectangle(allocation.x + x,
+ child_allocation = (allocation.x + x,
allocation.y + y,
icon_size, icon_size)
child.size_allocate(child_allocation)
diff --git a/src/jarabe/desktop/favoritesview.py b/src/jarabe/desktop/favoritesview.py
index 35c4053..ef6c09c 100644
--- a/src/jarabe/desktop/favoritesview.py
+++ b/src/jarabe/desktop/favoritesview.py
@@ -19,10 +19,10 @@ import logging
from gettext import gettext as _
import math
-import gobject
-import gconf
+from gi.repository import GObject
+from gi.repository import GConf
import glib
-import gtk
+from gi.repository import Gtk
from sugar.graphics import style
from sugar.graphics.icon import Icon
@@ -52,7 +52,7 @@ from jarabe.desktop.viewcontainer import ViewContainer
_logger = logging.getLogger('FavoritesView')
-_ICON_DND_TARGET = ('activity-icon', gtk.TARGET_SAME_WIDGET, 0)
+_ICON_DND_TARGET = ('activity-icon', Gtk.TargetFlags.SAME_WIDGET, 0)
LAYOUT_MAP = {favoriteslayout.RingLayout.key: favoriteslayout.RingLayout,
#favoriteslayout.BoxLayout.key: favoriteslayout.BoxLayout,
@@ -66,14 +66,14 @@ about the layout can be accessed with fields of the class."""
_favorites_settings = None
-class FavoritesBox(gtk.VBox):
+class FavoritesBox(Gtk.VBox):
__gtype_name__ = 'SugarFavoritesBox'
def __init__(self):
- gtk.VBox.__init__(self)
+ GObject.GObject.__init__(self)
self._view = FavoritesView(self)
- self.pack_start(self._view)
+ self.pack_start(self._view, True, True, 0)
self._view.show()
self._alert = None
@@ -116,8 +116,8 @@ class FavoritesView(ViewContainer):
owner_icon=owner_icon,
activity_icon=current_activity)
- self.add_events(gtk.gdk.BUTTON_PRESS_MASK |
- gtk.gdk.POINTER_MOTION_HINT_MASK)
+ self.add_events(Gdk.EventMask.BUTTON_PRESS_MASK |
+ Gdk.EventMask.POINTER_MOTION_HINT_MASK)
self.drag_dest_set(0, [], 0)
self.connect('drag-motion', self.__drag_motion_cb)
self.connect('drag-drop', self.__drag_drop_cb)
@@ -134,7 +134,7 @@ class FavoritesView(ViewContainer):
self._alert = None
self._resume_mode = True
- gobject.idle_add(self.__connect_to_bundle_registry_cb)
+ GObject.idle_add(self.__connect_to_bundle_registry_cb)
def __settings_changed_cb(self, **kwargs):
favorites_settings = get_settings()
@@ -168,7 +168,7 @@ class FavoritesView(ViewContainer):
child.connect('button-release-event', self.__button_release_cb)
child.connect('motion-notify-event', self.__motion_notify_event_cb)
child.connect('drag-begin', self.__drag_begin_cb)
- if child.flags() & gtk.REALIZED:
+ if child.get_realized():
child.set_parent_window(self.get_parent_window())
child.set_parent(self)
@@ -179,7 +179,7 @@ class FavoritesView(ViewContainer):
return False
def __button_press_cb(self, widget, event):
- if event.button == 1 and event.type == gtk.gdk.BUTTON_PRESS:
+ if event.button == 1 and event.type == Gdk.EventType.BUTTON_PRESS:
self._last_clicked_icon = widget
self._pressed_button = event.button
self._press_start_x = event.x
@@ -188,7 +188,7 @@ class FavoritesView(ViewContainer):
def __motion_notify_event_cb(self, widget, event):
# if the mouse button is not pressed, no drag should occurr
- if not event.state & gtk.gdk.BUTTON1_MASK:
+ if not event.get_state() & Gdk.ModifierType.BUTTON1_MASK:
self._pressed_button = None
return False
@@ -204,13 +204,13 @@ class FavoritesView(ViewContainer):
int(y)):
self._dragging = True
context_ = widget.drag_begin([_ICON_DND_TARGET],
- gtk.gdk.ACTION_MOVE,
+ Gdk.DragAction.MOVE,
1,
event)
return False
def __drag_begin_cb(self, widget, context):
- pixbuf = gtk.gdk.pixbuf_new_from_file(widget.props.file_name)
+ pixbuf = GdkPixbuf.Pixbuf.new_from_file(widget.props.file_name)
self._hot_x = pixbuf.props.width / 2
self._hot_y = pixbuf.props.height / 2
@@ -323,7 +323,7 @@ class FavoritesView(ViewContainer):
self._owner_icon.set_registered()
ok_icon = Icon(icon_name='dialog-ok')
- alert.add_button(gtk.RESPONSE_OK, _('Ok'), ok_icon)
+ alert.add_button(Gtk.ResponseType.OK, _('Ok'), ok_icon)
self._box.add_alert(alert)
alert.connect('response', self.__register_alert_response_cb)
@@ -512,8 +512,8 @@ class FavoritePalette(ActivityPalette):
__gtype_name__ = 'SugarFavoritePalette'
__gsignals__ = {
- 'entry-activate': (gobject.SIGNAL_RUN_FIRST,
- gobject.TYPE_NONE, ([object])),
+ 'entry-activate': (GObject.SignalFlags.RUN_FIRST,
+ None, ([object])),
}
def __init__(self, activity_info, journal_entries):
@@ -527,7 +527,7 @@ class FavoritePalette(ActivityPalette):
self.props.icon = Icon(file=activity_info.get_icon(),
xo_color=xo_color,
- icon_size=gtk.ICON_SIZE_LARGE_TOOLBAR)
+ icon_size=Gtk.IconSize.LARGE_TOOLBAR)
if journal_entries:
title = journal_entries[0]['title']
@@ -546,7 +546,7 @@ class FavoritePalette(ActivityPalette):
menu_item.show()
if journal_entries:
- separator = gtk.SeparatorMenuItem()
+ separator = Gtk.SeparatorMenuItem()
menu_items.append(separator)
separator.show()
@@ -576,7 +576,7 @@ class CurrentActivityIcon(EventIcon):
def __button_release_event_cb(self, icon, event):
window = self._home_model.get_active_activity().get_window()
- window.activate(gtk.get_current_event_time())
+ window.activate(Gtk.get_current_event_time())
def _update(self):
self.props.file_name = self._home_activity.get_icon_path()
@@ -603,7 +603,7 @@ class OwnerIcon(BuddyIcon):
__gtype_name__ = 'SugarFavoritesOwnerIcon'
__gsignals__ = {
- 'register-activate': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ 'register-activate': (GObject.SignalFlags.RUN_FIRST, None,
([])),
}
@@ -622,7 +622,7 @@ class OwnerIcon(BuddyIcon):
palette = BuddyMenu(get_owner_instance())
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
backup_url = client.get_string('/desktop/sugar/backup_url')
if not backup_url:
@@ -653,7 +653,7 @@ class FavoritesSetting(object):
_FAVORITES_KEY = '/desktop/sugar/desktop/favorites_layout'
def __init__(self):
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
self._layout = client.get_string(self._FAVORITES_KEY)
logging.debug('FavoritesSetting layout %r', self._layout)
@@ -669,7 +669,7 @@ class FavoritesSetting(object):
if layout != self._layout:
self._layout = layout
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
client.set_string(self._FAVORITES_KEY, layout)
self.changed.send(self)
diff --git a/src/jarabe/desktop/friendview.py b/src/jarabe/desktop/friendview.py
index 01c2b71..62a3f96 100644
--- a/src/jarabe/desktop/friendview.py
+++ b/src/jarabe/desktop/friendview.py
@@ -15,7 +15,7 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-import gtk
+from gi.repository import Gtk
from sugar.graphics import style
@@ -24,9 +24,9 @@ from jarabe.view.eventicon import EventIcon
from jarabe.model import bundleregistry
-class FriendView(gtk.VBox):
+class FriendView(Gtk.VBox):
def __init__(self, buddy, **kwargs):
- gtk.VBox.__init__(self)
+ GObject.GObject.__init__(self)
# round icon sizes to an even number so that it can be accurately
# centered in a larger bounding box also of even dimensions
diff --git a/src/jarabe/desktop/grid.py b/src/jarabe/desktop/grid.py
index 65b33b2..b7381c9 100644
--- a/src/jarabe/desktop/grid.py
+++ b/src/jarabe/desktop/grid.py
@@ -17,10 +17,10 @@
import random
-import gobject
-import gtk
+from gi.repository import GObject
+from gi.repository import Gtk
-from sugar import _sugarext
+from gi.repository import SugarExt
_PLACE_TRIALS = 20
@@ -29,14 +29,14 @@ _REFRESH_RATE = 200
_MAX_COLLISIONS_PER_REFRESH = 20
-class Grid(_sugarext.Grid):
+class Grid(SugarExt.Grid):
__gsignals__ = {
- 'child-changed': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
- ([gobject.TYPE_PYOBJECT])),
+ 'child-changed': (GObject.SignalFlags.RUN_FIRST, None,
+ ([GObject.TYPE_PYOBJECT])),
}
def __init__(self, width, height):
- gobject.GObject.__init__(self)
+ GObject.GObject.__init__(self)
self.width = width
self.height = height
@@ -50,7 +50,7 @@ class Grid(_sugarext.Grid):
def add(self, child, width, height, x=None, y=None, locked=False):
if x is not None and y is not None:
- rect = gtk.gdk.Rectangle(x, y, width, height)
+ rect = (x, y, width, height)
weight = self.compute_weight(rect)
else:
trials = _PLACE_TRIALS
@@ -59,7 +59,7 @@ class Grid(_sugarext.Grid):
x = int(random.random() * (self.width - width))
y = int(random.random() * (self.height - height))
- rect = gtk.gdk.Rectangle(x, y, width, height)
+ rect = (x, y, width, height)
new_weight = self.compute_weight(rect)
if weight > new_weight:
weight = new_weight
@@ -112,37 +112,37 @@ class Grid(_sugarext.Grid):
# Get rects right, left, bottom and top
if (rect.x + rect.width < self.width - 1):
- new_rects.append(gtk.gdk.Rectangle(rect.x + 1, rect.y,
+ new_rects.append((rect.x + 1, rect.y,
rect.width, rect.height))
if (rect.x - 1 > 0):
- new_rects.append(gtk.gdk.Rectangle(rect.x - 1, rect.y,
+ new_rects.append((rect.x - 1, rect.y,
rect.width, rect.height))
if (rect.y + rect.height < self.height - 1):
- new_rects.append(gtk.gdk.Rectangle(rect.x, rect.y + 1,
+ new_rects.append((rect.x, rect.y + 1,
rect.width, rect.height))
if (rect.y - 1 > 0):
- new_rects.append(gtk.gdk.Rectangle(rect.x, rect.y - 1,
+ new_rects.append((rect.x, rect.y - 1,
rect.width, rect.height))
# Get diagonal rects
if rect.x + rect.width < self.width - 1 and \
rect.y + rect.height < self.height - 1:
- new_rects.append(gtk.gdk.Rectangle(rect.x + 1, rect.y + 1,
+ new_rects.append((rect.x + 1, rect.y + 1,
rect.width, rect.height))
if rect.x - 1 > 0 and rect.y + rect.height < self.height - 1:
- new_rects.append(gtk.gdk.Rectangle(rect.x - 1, rect.y + 1,
+ new_rects.append((rect.x - 1, rect.y + 1,
rect.width, rect.height))
if rect.x + rect.width < self.width - 1 and rect.y - 1 > 0:
- new_rects.append(gtk.gdk.Rectangle(rect.x + 1, rect.y - 1,
+ new_rects.append((rect.x + 1, rect.y - 1,
rect.width, rect.height))
if rect.x - 1 > 0 and rect.y - 1 > 0:
- new_rects.append(gtk.gdk.Rectangle(rect.x - 1, rect.y - 1,
+ new_rects.append((rect.x - 1, rect.y - 1,
rect.width, rect.height))
random.shuffle(new_rects)
@@ -188,7 +188,7 @@ class Grid(_sugarext.Grid):
collision_found = False
child_rect = self._child_rects[child]
for c in self._children:
- intersection = child_rect.intersect(self._child_rects[c])
+ intersects_, intersection = child_rect.intersect(self._child_rects[c])
if c != child and intersection.width > 0:
if (c not in self._locked_children and
c not in self._collisions):
@@ -200,8 +200,8 @@ class Grid(_sugarext.Grid):
self._collisions.append(child)
if self._collisions and not self._collisions_sid:
- self._collisions_sid = gobject.timeout_add(_REFRESH_RATE,
- self.__solve_collisions_cb, priority=gobject.PRIORITY_LOW)
+ self._collisions_sid = GObject.timeout_add(_REFRESH_RATE,
+ self.__solve_collisions_cb, priority=GObject.PRIORITY_LOW)
def get_child_rect(self, child):
return self._child_rects[child]
diff --git a/src/jarabe/desktop/homebox.py b/src/jarabe/desktop/homebox.py
index 8f3963b..7fa5637 100644
--- a/src/jarabe/desktop/homebox.py
+++ b/src/jarabe/desktop/homebox.py
@@ -18,8 +18,8 @@ from gettext import gettext as _
import logging
import os
-import gobject
-import gtk
+from gi.repository import GObject
+from gi.repository import Gtk
from sugar.graphics import style
from sugar.graphics.alert import Alert
@@ -32,13 +32,13 @@ _FAVORITES_VIEW = 0
_LIST_VIEW = 1
-class HomeBox(gtk.VBox):
+class HomeBox(Gtk.VBox):
__gtype_name__ = 'SugarHomeBox'
def __init__(self, toolbar):
logging.debug('STARTUP: Loading the home view')
- gobject.GObject.__init__(self)
+ GObject.GObject.__init__(self)
self._favorites_box = favoritesview.FavoritesBox()
self._list_view = ActivitiesList()
@@ -60,12 +60,12 @@ class HomeBox(gtk.VBox):
' compatibility with your new software')
cancel_icon = Icon(icon_name='dialog-cancel')
- alert.add_button(gtk.RESPONSE_CANCEL, _('Cancel'), cancel_icon)
+ alert.add_button(Gtk.ResponseType.CANCEL, _('Cancel'), cancel_icon)
- alert.add_button(gtk.RESPONSE_REJECT, _('Later'))
+ alert.add_button(Gtk.ResponseType.REJECT, _('Later'))
erase_icon = Icon(icon_name='dialog-ok')
- alert.add_button(gtk.RESPONSE_OK, _('Check now'), erase_icon)
+ alert.add_button(Gtk.ResponseType.OK, _('Check now'), erase_icon)
if self._list_view in self.get_children():
self._list_view.add_alert(alert)
@@ -79,7 +79,7 @@ class HomeBox(gtk.VBox):
else:
self._favorites_box.remove_alert()
- if response_id != gtk.RESPONSE_REJECT:
+ if response_id != Gtk.ResponseType.REJECT:
update_trigger_file = os.path.expanduser('~/.sugar-update')
try:
os.unlink(update_trigger_file)
@@ -87,7 +87,7 @@ class HomeBox(gtk.VBox):
logging.error('Software-update: Can not remove file %s',
update_trigger_file)
- if response_id == gtk.RESPONSE_OK:
+ if response_id == Gtk.ResponseType.OK:
from jarabe.controlpanel.gui import ControlPanel
panel = ControlPanel()
panel.set_transient_for(self.get_toplevel())
diff --git a/src/jarabe/desktop/homewindow.py b/src/jarabe/desktop/homewindow.py
index c4f1401..acd68a7 100644
--- a/src/jarabe/desktop/homewindow.py
+++ b/src/jarabe/desktop/homewindow.py
@@ -16,8 +16,8 @@
import logging
-import gobject
-import gtk
+from gi.repository import GObject
+from gi.repository import Gtk
from sugar.graphics import style
from sugar.graphics import palettegroup
@@ -39,12 +39,12 @@ _TRANSITION_PAGE = 3
_instance = None
-class HomeWindow(gtk.Window):
+class HomeWindow(Gtk.Window):
def __init__(self):
logging.debug('STARTUP: Loading the desktop window')
- gtk.Window.__init__(self)
+ GObject.GObject.__init__(self)
- accel_group = gtk.AccelGroup()
+ accel_group = Gtk.AccelGroup()
self.set_data('sugar-accel-group', accel_group)
self.add_accel_group(accel_group)
@@ -57,25 +57,25 @@ class HomeWindow(gtk.Window):
screen.get_height())
self.realize()
- self.window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DESKTOP)
- self.modify_bg(gtk.STATE_NORMAL,
+ self.set_type_hint(Gdk.WindowTypeHint.DESKTOP)
+ self.modify_bg(Gtk.StateType.NORMAL,
style.COLOR_WHITE.get_gdk_color())
- self.add_events(gtk.gdk.VISIBILITY_NOTIFY_MASK)
+ self.add_events(Gdk.EventMask.VISIBILITY_NOTIFY_MASK)
self.connect('visibility-notify-event',
self._visibility_notify_event_cb)
self.connect('map-event', self.__map_event_cb)
self.connect('key-press-event', self.__key_press_event_cb)
self.connect('key-release-event', self.__key_release_event_cb)
- self._box = gtk.VBox()
+ self._box = Gtk.VBox()
self._toolbar = ViewToolbar()
- self._box.pack_start(self._toolbar, expand=False)
+ self._box.pack_start(self._toolbar, False, True, 0)
self._toolbar.show()
self._home_box = HomeBox(self._toolbar)
- self._box.pack_start(self._home_box)
+ self._box.pack_start(self._home_box, True, True, 0)
self._home_box.show()
self._toolbar.show_view_buttons()
@@ -110,7 +110,7 @@ class HomeWindow(gtk.Window):
self._mesh_box.resume()
def _visibility_notify_event_cb(self, window, event):
- fully_obscured = (event.state == gtk.gdk.VISIBILITY_FULLY_OBSCURED)
+ fully_obscured = (event.get_state() == Gdk.VisibilityState.FULLY_OBSCURED)
if self._fully_obscured == fully_obscured:
return
self._fully_obscured = fully_obscured
@@ -118,9 +118,9 @@ class HomeWindow(gtk.Window):
if fully_obscured:
self._deactivate_view(shell.get_model().zoom_level)
else:
- display = gtk.gdk.display_get_default()
- screen_, x_, y_, modmask = display.get_pointer()
- if modmask & gtk.gdk.MOD1_MASK:
+ display = Gdk.Display.get_default()
+ x_, y_, modmask = display.get_pointer(None)
+ if modmask & Gdk.ModifierType.MOD1_MASK:
self._home_box.set_resume_mode(False)
else:
self._home_box.set_resume_mode(True)
@@ -128,12 +128,12 @@ class HomeWindow(gtk.Window):
self._activate_view(shell.get_model().zoom_level)
def __key_press_event_cb(self, window, event):
- if event.keyval in [gtk.keysyms.Alt_L, gtk.keysyms.Alt_R]:
+ if event.keyval in [Gdk.KEY_Alt_L, Gdk.KEY_Alt_R]:
self._home_box.set_resume_mode(False)
return False
def __key_release_event_cb(self, window, event):
- if event.keyval in [gtk.keysyms.Alt_L, gtk.keysyms.Alt_R]:
+ if event.keyval in [Gdk.KEY_Alt_L, Gdk.KEY_Alt_R]:
self._home_box.set_resume_mode(True)
return False
@@ -142,7 +142,7 @@ class HomeWindow(gtk.Window):
# since metacity doesn't make it on startup
timestamp = event.get_time()
if not timestamp:
- timestamp = gtk.gdk.x11_get_server_time(self.window)
+ timestamp = GdkX11.x11_get_server_time(self.window)
self.window.focus(timestamp)
def __zoom_level_changed_cb(self, **kwargs):
@@ -157,7 +157,7 @@ class HomeWindow(gtk.Window):
children = self._box.get_children()
if len(children) >= 2:
self._box.remove(children[1])
- self._box.pack_start(self._transition_box)
+ self._box.pack_start(self._transition_box, True, True, 0)
self._transition_box.show()
if new_level == ShellModel.ZOOM_HOME:
@@ -190,17 +190,17 @@ class HomeWindow(gtk.Window):
self._box.remove(children[1])
if level == ShellModel.ZOOM_HOME:
- self._box.pack_start(self._home_box)
+ self._box.pack_start(self._home_box, True, True, 0)
self._home_box.show()
self._toolbar.search_entry.grab_focus()
self._toolbar.show_view_buttons()
elif level == ShellModel.ZOOM_GROUP:
- self._box.pack_start(self._group_box)
+ self._box.pack_start(self._group_box, True, True, 0)
self._group_box.show()
self._toolbar.search_entry.grab_focus()
self._toolbar.hide_view_buttons()
elif level == ShellModel.ZOOM_MESH:
- self._box.pack_start(self._mesh_box)
+ self._box.pack_start(self._mesh_box, True, True, 0)
self._mesh_box.show()
self._toolbar.search_entry.grab_focus()
self._toolbar.hide_view_buttons()
@@ -218,8 +218,8 @@ class HomeWindow(gtk.Window):
self.get_window().set_cursor(old_cursor)
old_cursor = self.get_window().get_cursor()
- self.get_window().set_cursor(gtk.gdk.Cursor(gtk.gdk.WATCH))
- gobject.idle_add(action_wrapper, old_cursor)
+ self.get_window().set_cursor(Gdk.Cursor.new(Gdk.CursorType.WATCH))
+ GObject.idle_add(action_wrapper, old_cursor)
def get_instance():
diff --git a/src/jarabe/desktop/keydialog.py b/src/jarabe/desktop/keydialog.py
index 41c2a51..5434825 100644
--- a/src/jarabe/desktop/keydialog.py
+++ b/src/jarabe/desktop/keydialog.py
@@ -18,7 +18,7 @@
import hashlib
from gettext import gettext as _
-import gtk
+from gi.repository import Gtk
import dbus
from jarabe.model import network
@@ -72,9 +72,9 @@ class CanceledKeyRequestError(dbus.DBusException):
self._dbus_error_name = network.NM_SETTINGS_IFACE + '.CanceledError'
-class KeyDialog(gtk.Dialog):
+class KeyDialog(Gtk.Dialog):
def __init__(self, ssid, flags, wpa_flags, rsn_flags, dev_caps, response):
- gtk.Dialog.__init__(self, flags=gtk.DIALOG_MODAL)
+ GObject.GObject.__init__(self, flags=Gtk.DialogFlags.MODAL)
self.set_title('Wireless Key Required')
self._response = response
@@ -88,20 +88,20 @@ class KeyDialog(gtk.Dialog):
self.set_has_separator(False)
display_name = network.ssid_to_display_name(ssid)
- label = gtk.Label(_("A wireless encryption key is required for\n"
+ label = Gtk.Label(label=_("A wireless encryption key is required for\n"
" the wireless network '%s'.") % (display_name, ))
- self.vbox.pack_start(label)
+ self.vbox.pack_start(label, True, True, 0)
- self.add_buttons(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
- gtk.STOCK_OK, gtk.RESPONSE_OK)
- self.set_default_response(gtk.RESPONSE_OK)
+ self.add_buttons(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL,
+ Gtk.STOCK_OK, Gtk.ResponseType.OK)
+ self.set_default_response(Gtk.ResponseType.OK)
self.set_has_separator(True)
def add_key_entry(self):
- self._entry = gtk.Entry()
+ self._entry = Gtk.Entry()
self._entry.connect('changed', self._update_response_sensitivity)
self._entry.connect('activate', self._entry_activate_cb)
- self.vbox.pack_start(self._entry)
+ self.vbox.pack_start(self._entry, True, True, 0)
self.vbox.set_spacing(6)
self.vbox.show_all()
@@ -109,7 +109,7 @@ class KeyDialog(gtk.Dialog):
self._entry.grab_focus()
def _entry_activate_cb(self, entry):
- self.response(gtk.RESPONSE_OK)
+ self.response(Gtk.ResponseType.OK)
def create_security(self):
raise NotImplementedError
@@ -124,44 +124,44 @@ class WEPKeyDialog(KeyDialog):
dev_caps, response)
# WEP key type
- self.key_store = gtk.ListStore(str, int)
+ self.key_store = Gtk.ListStore(str, int)
self.key_store.append(['Passphrase (128-bit)', WEP_PASSPHRASE])
self.key_store.append(['Hex (40/128-bit)', WEP_HEX])
self.key_store.append(['ASCII (40/128-bit)', WEP_ASCII])
- self.key_combo = gtk.ComboBox(self.key_store)
- cell = gtk.CellRendererText()
+ self.key_combo = Gtk.ComboBox(self.key_store)
+ cell = Gtk.CellRendererText()
self.key_combo.pack_start(cell, True)
self.key_combo.add_attribute(cell, 'text', 0)
self.key_combo.set_active(0)
self.key_combo.connect('changed', self._key_combo_changed_cb)
- hbox = gtk.HBox()
- hbox.pack_start(gtk.Label(_('Key Type:')))
- hbox.pack_start(self.key_combo)
+ hbox = Gtk.HBox()
+ hbox.pack_start(Gtk.Label(_('Key Type:', True, True, 0)))
+ hbox.pack_start(self.key_combo, True, True, 0)
hbox.show_all()
- self.vbox.pack_start(hbox)
+ self.vbox.pack_start(hbox, True, True, 0)
# Key entry field
self.add_key_entry()
# WEP authentication mode
- self.auth_store = gtk.ListStore(str, str)
+ self.auth_store = Gtk.ListStore(str, str)
self.auth_store.append(['Open System', IW_AUTH_ALG_OPEN_SYSTEM])
self.auth_store.append(['Shared Key', IW_AUTH_ALG_SHARED_KEY])
- self.auth_combo = gtk.ComboBox(self.auth_store)
- cell = gtk.CellRendererText()
+ self.auth_combo = Gtk.ComboBox(self.auth_store)
+ cell = Gtk.CellRendererText()
self.auth_combo.pack_start(cell, True)
self.auth_combo.add_attribute(cell, 'text', 0)
self.auth_combo.set_active(0)
- hbox = gtk.HBox()
- hbox.pack_start(gtk.Label(_('Authentication Type:')))
- hbox.pack_start(self.auth_combo)
+ hbox = Gtk.HBox()
+ hbox.pack_start(Gtk.Label(_('Authentication Type:', True, True, 0)))
+ hbox.pack_start(self.auth_combo, True, True, 0)
hbox.show_all()
- self.vbox.pack_start(hbox)
+ self.vbox.pack_start(hbox, True, True, 0)
def _key_combo_changed_cb(self, widget):
self._update_response_sensitivity()
@@ -210,7 +210,7 @@ class WEPKeyDialog(KeyDialog):
if len(key) == 10 or len(key) == 26:
valid = string_is_hex(key)
- self.set_response_sensitive(gtk.RESPONSE_OK, valid)
+ self.set_response_sensitive(Gtk.ResponseType.OK, valid)
class WPAKeyDialog(KeyDialog):
@@ -219,21 +219,21 @@ class WPAKeyDialog(KeyDialog):
dev_caps, response)
self.add_key_entry()
- self.store = gtk.ListStore(str)
+ self.store = Gtk.ListStore(str)
self.store.append([_('WPA & WPA2 Personal')])
- self.combo = gtk.ComboBox(self.store)
- cell = gtk.CellRendererText()
+ self.combo = Gtk.ComboBox(self.store)
+ cell = Gtk.CellRendererText()
self.combo.pack_start(cell, True)
self.combo.add_attribute(cell, 'text', 0)
self.combo.set_active(0)
- self.hbox = gtk.HBox()
- self.hbox.pack_start(gtk.Label(_('Wireless Security:')))
- self.hbox.pack_start(self.combo)
+ self.hbox = Gtk.HBox()
+ self.hbox.pack_start(Gtk.Label(_('Wireless Security:', True, True, 0)))
+ self.hbox.pack_start(self.combo, True, True, 0)
self.hbox.show_all()
- self.vbox.pack_start(self.hbox)
+ self.vbox.pack_start(self.hbox, True, True, 0)
def _get_security(self):
ssid = self._ssid
@@ -280,7 +280,7 @@ class WPAKeyDialog(KeyDialog):
elif len(key) >= 8 and len(key) <= 63:
# passphrase
valid = True
- self.set_response_sensitive(gtk.RESPONSE_OK, valid)
+ self.set_response_sensitive(Gtk.ResponseType.OK, valid)
return False
@@ -300,14 +300,14 @@ def create(ssid, flags, wpa_flags, rsn_flags, dev_caps, response):
def _key_dialog_response_cb(key_dialog, response_id):
response = key_dialog.get_response_object()
secrets = None
- if response_id == gtk.RESPONSE_OK:
+ if response_id == Gtk.ResponseType.OK:
secrets = key_dialog.create_security()
- if response_id in [gtk.RESPONSE_CANCEL, gtk.RESPONSE_NONE,
- gtk.RESPONSE_DELETE_EVENT]:
+ if response_id in [Gtk.ResponseType.CANCEL, Gtk.ResponseType.NONE,
+ Gtk.ResponseType.DELETE_EVENT]:
# key dialog dialog was canceled; send the error back to NM
response.set_error(CanceledKeyRequestError())
- elif response_id == gtk.RESPONSE_OK:
+ elif response_id == Gtk.ResponseType.OK:
if not secrets:
raise RuntimeError('Invalid security arguments.')
response.set_secrets(secrets)
diff --git a/src/jarabe/desktop/meshbox.py b/src/jarabe/desktop/meshbox.py
index 1ee5e67..258ef45 100644
--- a/src/jarabe/desktop/meshbox.py
+++ b/src/jarabe/desktop/meshbox.py
@@ -22,9 +22,9 @@ import logging
import dbus
import glib
-import gobject
-import gtk
-import gconf
+from gi.repository import GObject
+from gi.repository import Gtk
+from gi.repository import GConf
from sugar.graphics.icon import Icon
from sugar.graphics import style
@@ -68,7 +68,7 @@ class _ActivityIcon(EventIcon):
secondary_text = glib.markup_escape_text(self._model.get_name())
p_icon = Icon(file=self._model.bundle.get_icon(),
xo_color=self._model.get_color())
- p_icon.props.icon_size = gtk.ICON_SIZE_LARGE_TOOLBAR
+ p_icon.props.icon_size = Gtk.IconSize.LARGE_TOOLBAR
p = palette.Palette(None,
primary_text=primary_text,
secondary_text=secondary_text,
@@ -157,16 +157,16 @@ class ActivityView(SnowflakeLayout):
icon.set_filter(query)
-class DeviceObserver(gobject.GObject):
+class DeviceObserver(GObject.GObject):
__gsignals__ = {
- 'access-point-added': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
- ([gobject.TYPE_PYOBJECT])),
- 'access-point-removed': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
- ([gobject.TYPE_PYOBJECT])),
+ 'access-point-added': (GObject.SignalFlags.RUN_FIRST, None,
+ ([GObject.TYPE_PYOBJECT])),
+ 'access-point-removed': (GObject.SignalFlags.RUN_FIRST, None,
+ ([GObject.TYPE_PYOBJECT])),
}
def __init__(self, device):
- gobject.GObject.__init__(self)
+ GObject.GObject.__init__(self)
self._bus = dbus.SystemBus()
self.device = device
@@ -221,7 +221,7 @@ class NetworkManagerObserver(object):
self._netmgr = None
self._olpc_mesh_device_o = None
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
self._have_adhoc_networks = client.get_bool(self._SHOW_ADHOC_GCONF_KEY)
def listen(self):
diff --git a/src/jarabe/desktop/schoolserver.py b/src/jarabe/desktop/schoolserver.py
index 403897b..a3f717c 100644
--- a/src/jarabe/desktop/schoolserver.py
+++ b/src/jarabe/desktop/schoolserver.py
@@ -26,7 +26,7 @@ import time
import uuid
import sys
-import gconf
+from gi.repository import GConf
from sugar import env
from sugar.profile import get_profile
@@ -108,7 +108,7 @@ class _TimeoutTransport(xmlrpclib.Transport):
def register_laptop(url=_REGISTER_URL):
profile = get_profile()
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
if _have_ofw_tree():
sn = _read_mfg_data(os.path.join(_OFW_TREE, _MFG_SN))
diff --git a/src/jarabe/desktop/snowflakelayout.py b/src/jarabe/desktop/snowflakelayout.py
index 25cae76..eabfc8e 100644
--- a/src/jarabe/desktop/snowflakelayout.py
+++ b/src/jarabe/desktop/snowflakelayout.py
@@ -16,7 +16,7 @@
import math
-import gtk
+from gi.repository import Gtk
from sugar.graphics import style
@@ -25,18 +25,18 @@ _BASE_DISTANCE = style.zoom(25)
_CHILDREN_FACTOR = style.zoom(3)
-class SnowflakeLayout(gtk.Container):
+class SnowflakeLayout(Gtk.Container):
__gtype_name__ = 'SugarSnowflakeLayout'
def __init__(self):
- gtk.Container.__init__(self)
+ GObject.GObject.__init__(self)
self.set_has_window(False)
self._nflakes = 0
self._children = {}
def do_realize(self):
# FIXME what is this for?
- self.set_flags(gtk.REALIZED)
+ self.set_flags(Gtk.REALIZED)
self.set_window(self.get_parent_window())
self.style.attach(self.window)
for child in self._children.keys():
@@ -44,7 +44,7 @@ class SnowflakeLayout(gtk.Container):
self.queue_resize()
def do_add(self, child):
- if child.flags() & gtk.REALIZED:
+ if child.get_realized():
child.set_parent_window(self.get_parent_window())
child.set_parent(self)
@@ -83,7 +83,7 @@ class SnowflakeLayout(gtk.Container):
for child, centered in self._children.items():
child_width, child_height = child.size_request()
- rect = gtk.gdk.Rectangle(0, 0, child_width, child_height)
+ rect = (0, 0, child_width, child_height)
width = allocation.width - child_width
height = allocation.height - child_height
diff --git a/src/jarabe/desktop/transitionbox.py b/src/jarabe/desktop/transitionbox.py
index 3718bdd..064abd1 100644
--- a/src/jarabe/desktop/transitionbox.py
+++ b/src/jarabe/desktop/transitionbox.py
@@ -14,7 +14,7 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-import gobject
+from gi.repository import GObject
from sugar.graphics import style
from sugar.graphics import animator
@@ -42,7 +42,7 @@ class TransitionBox(ViewContainer):
__gtype_name__ = 'SugarTransitionBox'
__gsignals__ = {
- 'completed': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([])),
+ 'completed': (GObject.SignalFlags.RUN_FIRST, None, ([])),
}
def __init__(self):
diff --git a/src/jarabe/desktop/viewcontainer.py b/src/jarabe/desktop/viewcontainer.py
index 1c76fb1..afd8ed1 100644
--- a/src/jarabe/desktop/viewcontainer.py
+++ b/src/jarabe/desktop/viewcontainer.py
@@ -17,14 +17,14 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-import gtk
+from gi.repository import Gtk
-class ViewContainer(gtk.Container):
+class ViewContainer(Gtk.Container):
__gtype_name__ = 'SugarViewContainer'
def __init__(self, layout, owner_icon, activity_icon=None, **kwargs):
- gtk.Container.__init__(self, **kwargs)
+ GObject.GObject.__init__(self, **kwargs)
self.set_has_window(False)
self._activity_icon = None
@@ -47,7 +47,7 @@ class ViewContainer(gtk.Container):
def do_add(self, child):
if child != self._owner_icon and child != self._activity_icon:
self._children.append(child)
- if child.flags() & gtk.REALIZED:
+ if child.get_realized():
child.set_parent_window(self.get_parent_window())
child.set_parent(self)
diff --git a/src/jarabe/desktop/viewtoolbar.py b/src/jarabe/desktop/viewtoolbar.py
index f0e3943..3ffdb8b 100644
--- a/src/jarabe/desktop/viewtoolbar.py
+++ b/src/jarabe/desktop/viewtoolbar.py
@@ -20,8 +20,8 @@
from gettext import gettext as _
import logging
-import gtk
-import gobject
+from gi.repository import Gtk
+from gi.repository import GObject
from sugar.graphics import style
from sugar.graphics import iconentry
@@ -34,25 +34,25 @@ _FAVORITES_VIEW = 0
_LIST_VIEW = 1
-class ViewToolbar(gtk.Toolbar):
+class ViewToolbar(Gtk.Toolbar):
__gtype_name__ = 'SugarViewToolbar'
__gsignals__ = {
- 'query-changed': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ 'query-changed': (GObject.SignalFlags.RUN_FIRST, None,
([str])),
- 'view-changed': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ 'view-changed': (GObject.SignalFlags.RUN_FIRST, None,
([object])),
}
def __init__(self):
- gtk.Toolbar.__init__(self)
+ GObject.GObject.__init__(self)
self._query = None
self._autosearch_timer = None
self._add_separator()
- tool_item = gtk.ToolItem()
+ tool_item = Gtk.ToolItem()
self.insert(tool_item, -1)
tool_item.show()
@@ -93,7 +93,7 @@ class ViewToolbar(gtk.Toolbar):
self._list_button.hide()
def _add_separator(self, expand=False):
- separator = gtk.SeparatorToolItem()
+ separator = Gtk.SeparatorToolItem()
separator.props.draw = False
if expand:
separator.set_expand(True)
@@ -105,7 +105,7 @@ class ViewToolbar(gtk.Toolbar):
def _entry_activated_cb(self, entry):
if self._autosearch_timer:
- gobject.source_remove(self._autosearch_timer)
+ GObject.source_remove(self._autosearch_timer)
new_query = entry.props.text
if self._query != new_query:
self._query = new_query
@@ -117,8 +117,8 @@ class ViewToolbar(gtk.Toolbar):
return
if self._autosearch_timer:
- gobject.source_remove(self._autosearch_timer)
- self._autosearch_timer = gobject.timeout_add(_AUTOSEARCH_TIMEOUT,
+ GObject.source_remove(self._autosearch_timer)
+ self._autosearch_timer = GObject.timeout_add(_AUTOSEARCH_TIMEOUT,
self._autosearch_timer_cb)
def _autosearch_timer_cb(self):
@@ -147,15 +147,15 @@ class FavoritesButton(RadioToolButton):
self._layout = favorites_settings.layout
self._update_icon()
- # someday, this will be a gtk.Table()
- layouts_grid = gtk.HBox()
+ # someday, this will be a Gtk.Table()
+ layouts_grid = Gtk.HBox()
layout_item = None
for layoutid, layoutclass in sorted(favoritesview.LAYOUT_MAP.items()):
layout_item = RadioToolButton(icon_name=layoutclass.icon_name,
group=layout_item, active=False)
if layoutid == self._layout:
layout_item.set_active(True)
- layouts_grid.pack_start(layout_item, fill=False)
+ layouts_grid.pack_start(layout_item, True, False, 0)
layout_item.connect('toggled', self.__layout_activate_cb,
layoutid)
layouts_grid.show_all()
diff --git a/src/jarabe/frame/activitiestray.py b/src/jarabe/frame/activitiestray.py
index d386b3b..0b44880 100644
--- a/src/jarabe/frame/activitiestray.py
+++ b/src/jarabe/frame/activitiestray.py
@@ -21,11 +21,11 @@ from gettext import gettext as _
import tempfile
import os
-import gobject
-import gconf
-import gio
+from gi.repository import GObject
+from gi.repository import GConf
+from gi.repository import Gio
import glib
-import gtk
+from gi.repository import Gtk
from sugar.graphics import style
from sugar.graphics.tray import HTray
@@ -104,7 +104,7 @@ class InviteButton(ToolButton):
"""Invite to shared activity"""
__gsignals__ = {
- 'remove-invite': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([])),
+ 'remove-invite': (GObject.SignalFlags.RUN_FIRST, None, ([])),
}
def __init__(self, invite):
@@ -144,7 +144,7 @@ class InviteButton(ToolButton):
self._notif_icon.props.icon_name = 'image-missing'
frame = jarabe.frame.get_view()
- frame.add_notification(self._notif_icon, gtk.CORNER_TOP_LEFT)
+ frame.add_notification(self._notif_icon, Gtk.CornerType.TOP_LEFT)
def __button_release_event_cb(self, icon, event):
if self._notif_icon is not None:
@@ -171,7 +171,7 @@ class InvitePalette(Palette):
"""Palette for frame or notification icon for invites."""
__gsignals__ = {
- 'remove-invite': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([])),
+ 'remove-invite': (GObject.SignalFlags.RUN_FIRST, None, ([])),
}
def __init__(self, invite):
@@ -286,7 +286,7 @@ class ActivitiesTray(HTray):
logging.debug('ActivitiesTray.__activity_clicked_cb')
window = home_activity.get_window()
if window:
- window.activate(gtk.get_current_event_time())
+ window.activate(Gtk.get_current_event_time())
frame = jarabe.frame.get_view()
frame.hide()
@@ -379,7 +379,7 @@ class IncomingTransferButton(BaseTransferButton):
file_transfer.connect('notify::transferred-bytes',
self.__notify_transferred_bytes_cb)
- icons = gio.content_type_get_icon(file_transfer.mime_type).props.names
+ icons = Gio.content_type_get_icon(file_transfer.mime_type).props.names
icons.append('application-octet-stream')
for icon_name in icons:
icon_name = 'transfer-from-%s' % icon_name
@@ -395,7 +395,7 @@ class IncomingTransferButton(BaseTransferButton):
frame = jarabe.frame.get_view()
frame.add_notification(self.notif_icon,
- gtk.CORNER_TOP_LEFT)
+ Gtk.CornerType.TOP_LEFT)
def create_palette(self):
palette = IncomingTransferPalette(self.file_transfer)
@@ -454,7 +454,7 @@ class OutgoingTransferButton(BaseTransferButton):
def __init__(self, file_transfer):
BaseTransferButton.__init__(self, file_transfer)
- icons = gio.content_type_get_icon(file_transfer.mime_type).props.names
+ icons = Gio.content_type_get_icon(file_transfer.mime_type).props.names
icons.append('application-octet-stream')
for icon_name in icons:
icon_name = 'transfer-to-%s' % icon_name
@@ -464,14 +464,14 @@ class OutgoingTransferButton(BaseTransferButton):
self.notif_icon.props.icon_name = icon_name
break
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
icon_color = XoColor(client.get_string('/desktop/sugar/user/color'))
self.props.icon_widget.props.xo_color = icon_color
self.notif_icon.props.xo_color = icon_color
frame = jarabe.frame.get_view()
frame.add_notification(self.notif_icon,
- gtk.CORNER_TOP_LEFT)
+ Gtk.CornerType.TOP_LEFT)
def create_palette(self):
palette = OutgoingTransferPalette(self.file_transfer)
@@ -490,7 +490,7 @@ class BaseTransferPalette(Palette):
__gtype_name__ = 'SugarBaseTransferPalette'
__gsignals__ = {
- 'dismiss-clicked': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([])),
+ 'dismiss-clicked': (GObject.SignalFlags.RUN_FIRST, None, ([])),
}
def __init__(self, file_transfer):
@@ -579,12 +579,12 @@ class IncomingTransferPalette(BaseTransferPalette):
self.menu.append(menu_item)
menu_item.show()
- vbox = gtk.VBox()
+ vbox = Gtk.VBox()
self.set_content(vbox)
vbox.show()
if self.file_transfer.description:
- label = gtk.Label(self.file_transfer.description)
+ label = Gtk.Label(label=self.file_transfer.description)
vbox.add(label)
label.show()
@@ -592,7 +592,7 @@ class IncomingTransferPalette(BaseTransferPalette):
type_description = mime.get_mime_description(mime_type)
size = self._format_size(self.file_transfer.file_size)
- label = gtk.Label('%s (%s)' % (size, type_description))
+ label = Gtk.Label(label='%s (%s)' % (size, type_description))
vbox.add(label)
label.show()
@@ -607,15 +607,15 @@ class IncomingTransferPalette(BaseTransferPalette):
self.menu.append(menu_item)
menu_item.show()
- vbox = gtk.VBox()
+ vbox = Gtk.VBox()
self.set_content(vbox)
vbox.show()
- self.progress_bar = gtk.ProgressBar()
+ self.progress_bar = Gtk.ProgressBar()
vbox.add(self.progress_bar)
self.progress_bar.show()
- self.progress_label = gtk.Label('')
+ self.progress_label = Gtk.Label(label='')
vbox.add(self.progress_label)
self.progress_label.show()
@@ -644,7 +644,7 @@ class IncomingTransferPalette(BaseTransferPalette):
self.menu.append(menu_item)
menu_item.show()
text = _('The other participant canceled the file transfer')
- label = gtk.Label(text)
+ label = Gtk.Label(label=text)
self.set_content(label)
label.show()
@@ -709,12 +709,12 @@ class OutgoingTransferPalette(BaseTransferPalette):
self.menu.append(menu_item)
menu_item.show()
- vbox = gtk.VBox()
+ vbox = Gtk.VBox()
self.set_content(vbox)
vbox.show()
if self.file_transfer.description:
- label = gtk.Label(self.file_transfer.description)
+ label = Gtk.Label(label=self.file_transfer.description)
vbox.add(label)
label.show()
@@ -722,7 +722,7 @@ class OutgoingTransferPalette(BaseTransferPalette):
type_description = mime.get_mime_description(mime_type)
size = self._format_size(self.file_transfer.file_size)
- label = gtk.Label('%s (%s)' % (size, type_description))
+ label = Gtk.Label(label='%s (%s)' % (size, type_description))
vbox.add(label)
label.show()
@@ -737,15 +737,15 @@ class OutgoingTransferPalette(BaseTransferPalette):
self.menu.append(menu_item)
menu_item.show()
- vbox = gtk.VBox()
+ vbox = Gtk.VBox()
self.set_content(vbox)
vbox.show()
- self.progress_bar = gtk.ProgressBar()
+ self.progress_bar = Gtk.ProgressBar()
vbox.add(self.progress_bar)
self.progress_bar.show()
- self.progress_label = gtk.Label('')
+ self.progress_label = Gtk.Label(label='')
vbox.add(self.progress_label)
self.progress_label.show()
diff --git a/src/jarabe/frame/clipboard.py b/src/jarabe/frame/clipboard.py
index 09e652a..6677c28 100644
--- a/src/jarabe/frame/clipboard.py
+++ b/src/jarabe/frame/clipboard.py
@@ -20,8 +20,8 @@ import shutil
import urlparse
import tempfile
-import gobject
-import gtk
+from gi.repository import GObject
+from gi.repository import Gtk
from sugar import mime
@@ -31,21 +31,21 @@ from jarabe.frame.clipboardobject import ClipboardObject, Format
_instance = None
-class Clipboard(gobject.GObject):
+class Clipboard(GObject.GObject):
__gsignals__ = {
- 'object-added': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ 'object-added': (GObject.SignalFlags.RUN_FIRST, None,
([object])),
- 'object-deleted': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ 'object-deleted': (GObject.SignalFlags.RUN_FIRST, None,
([long])),
- 'object-selected': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ 'object-selected': (GObject.SignalFlags.RUN_FIRST, None,
([long])),
- 'object-state-changed': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ 'object-state-changed': (GObject.SignalFlags.RUN_FIRST, None,
([object])),
}
def __init__(self):
- gobject.GObject.__init__(self)
+ GObject.GObject.__init__(self)
self._objects = {}
self._next_id = 0
@@ -99,7 +99,7 @@ class Clipboard(gobject.GObject):
cb_object = self._objects.pop(object_id)
cb_object.destroy()
if not self._objects:
- gtk_clipboard = gtk.Clipboard()
+ gtk_clipboard = Gtk.Clipboard()
gtk_clipboard.clear()
self.emit('object-deleted', object_id)
logging.debug('Deleted object with object_id %r', object_id)
diff --git a/src/jarabe/frame/clipboardicon.py b/src/jarabe/frame/clipboardicon.py
index 4baf844..321c4aa 100644
--- a/src/jarabe/frame/clipboardicon.py
+++ b/src/jarabe/frame/clipboardicon.py
@@ -16,9 +16,9 @@
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
import logging
-import gconf
+from gi.repository import GConf
-import gtk
+from gi.repository import Gtk
from sugar.graphics.radiotoolbutton import RadioToolButton
from sugar.graphics.icon import Icon
@@ -48,7 +48,7 @@ class ClipboardIcon(RadioToolButton):
self._current_percent = None
self._icon = Icon()
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
color = XoColor(client.get_string('/desktop/sugar/user/color'))
self._icon.props.xo_color = color
self.set_icon_widget(self._icon)
@@ -94,7 +94,7 @@ class ClipboardIcon(RadioToolButton):
targets = self._get_targets()
if targets:
- x_clipboard = gtk.Clipboard()
+ x_clipboard = Gtk.Clipboard()
if not x_clipboard.set_with_data(targets,
self._clipboard_data_get_cb,
self._clipboard_clear_cb,
@@ -128,9 +128,9 @@ class ClipboardIcon(RadioToolButton):
child = self.get_child()
child.connect('drag-begin', self._drag_begin_cb)
- child.drag_source_set(gtk.gdk.BUTTON1_MASK,
+ child.drag_source_set(Gdk.ModifierType.BUTTON1_MASK,
self._get_targets(),
- gtk.gdk.ACTION_COPY)
+ Gdk.DragAction.COPY)
if cb_object.get_percent() == 100:
self.props.sensitive = True
@@ -156,11 +156,11 @@ class ClipboardIcon(RadioToolButton):
XoColor('%s,%s' % (self._icon.props.stroke_color,
self._icon.props.fill_color))
frame = jarabe.frame.get_view()
- frame.add_notification(self._notif_icon, gtk.CORNER_BOTTOM_LEFT)
+ frame.add_notification(self._notif_icon, Gtk.CornerType.BOTTOM_LEFT)
def _drag_begin_cb(self, widget, context):
# TODO: We should get the pixbuf from the icon, with colors, etc.
- icon_theme = gtk.icon_theme_get_default()
+ icon_theme = Gtk.IconTheme.get_default()
pixbuf = icon_theme.load_icon(self._icon.props.icon_name,
style.STANDARD_ICON_SIZE, 0)
context.set_icon_pixbuf(pixbuf, hot_x=pixbuf.props.width / 2,
diff --git a/src/jarabe/frame/clipboardmenu.py b/src/jarabe/frame/clipboardmenu.py
index 4c077d9..c1c9764 100644
--- a/src/jarabe/frame/clipboardmenu.py
+++ b/src/jarabe/frame/clipboardmenu.py
@@ -19,10 +19,10 @@ import tempfile
import urlparse
import os
import logging
-import gconf
+from gi.repository import GConf
import glib
-import gtk
+from gi.repository import Gtk
from sugar.graphics.palette import Palette
from sugar.graphics.menuitem import MenuItem
@@ -65,9 +65,9 @@ class ClipboardMenu(Palette):
self._open_item.show()
self._journal_item = MenuItem(_('Keep'))
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
color = XoColor(client.get_string('/desktop/sugar/user/color'))
- icon = Icon(icon_name='document-save', icon_size=gtk.ICON_SIZE_MENU,
+ icon = Icon(icon_name='document-save', icon_size=Gtk.IconSize.MENU,
xo_color=color)
self._journal_item.set_image(icon)
@@ -90,7 +90,7 @@ class ClipboardMenu(Palette):
child.set_text(_('Open with'))
submenu = self._open_item.get_submenu()
if submenu is None:
- submenu = gtk.Menu()
+ submenu = Gtk.Menu()
self._open_item.set_submenu(submenu)
submenu.show()
else:
@@ -104,7 +104,7 @@ class ClipboardMenu(Palette):
if not activity_info:
logging.warning('Activity %s is unknown.', service_name)
- item = gtk.MenuItem(activity_info.get_name())
+ item = Gtk.MenuItem(activity_info.get_name())
item.connect('activate', self._open_submenu_item_activate_cb,
service_name)
submenu.append(item)
@@ -150,7 +150,7 @@ class ClipboardMenu(Palette):
self.set_content(None)
else:
if self._progress_bar is None:
- self._progress_bar = gtk.ProgressBar()
+ self._progress_bar = Gtk.ProgressBar()
self._progress_bar.show()
self.set_content(self._progress_bar)
@@ -245,7 +245,7 @@ class ClipboardMenu(Palette):
jobject.metadata['keep'] = '0'
jobject.metadata['buddies'] = ''
jobject.metadata['preview'] = ''
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
color = client.get_string('/desktop/sugar/user/color')
jobject.metadata['icon-color'] = color
jobject.metadata['mime_type'] = mime_type
diff --git a/src/jarabe/frame/clipboardobject.py b/src/jarabe/frame/clipboardobject.py
index 407af2f..df3f2ac 100644
--- a/src/jarabe/frame/clipboardobject.py
+++ b/src/jarabe/frame/clipboardobject.py
@@ -17,8 +17,8 @@
import os
import logging
import urlparse
-import gio
-import gtk
+from gi.repository import Gio
+from gi.repository import Gtk
from gettext import gettext as _
from sugar import mime
@@ -59,13 +59,13 @@ class ClipboardObject(object):
if mime_type in generic_type.mime_types:
return generic_type.icon
- icons = gio.content_type_get_icon(mime_type)
+ icons = Gio.content_type_get_icon(mime_type)
icon_name = None
if icons is not None:
- icon_theme = gtk.icon_theme_get_default()
+ icon_theme = Gtk.IconTheme.get_default()
for icon_name in icons.props.names:
icon_info = icon_theme.lookup_icon(icon_name,
- gtk.ICON_SIZE_LARGE_TOOLBAR, 0)
+ Gtk.IconSize.LARGE_TOOLBAR, 0)
if icon_info is not None:
icon_info.free()
return icon_name
diff --git a/src/jarabe/frame/clipboardpanelwindow.py b/src/jarabe/frame/clipboardpanelwindow.py
index 6811c0d..fed6ba1 100644
--- a/src/jarabe/frame/clipboardpanelwindow.py
+++ b/src/jarabe/frame/clipboardpanelwindow.py
@@ -18,7 +18,7 @@ import logging
from urlparse import urlparse
import hashlib
-import gtk
+from gi.repository import Gtk
from jarabe.frame.framewindow import FrameWindow
from jarabe.frame.clipboardtray import ClipboardTray
@@ -33,9 +33,9 @@ class ClipboardPanelWindow(FrameWindow):
self._frame = frame
# Listening for new clipboard objects
- # NOTE: we need to keep a reference to gtk.Clipboard in order to keep
+ # NOTE: we need to keep a reference to Gtk.Clipboard in order to keep
# listening to it.
- self._clipboard = gtk.Clipboard()
+ self._clipboard = Gtk.Clipboard()
self._clipboard.connect('owner-change', self._owner_change_cb)
self._clipboard_tray = ClipboardTray()
diff --git a/src/jarabe/frame/clipboardtray.py b/src/jarabe/frame/clipboardtray.py
index 72c6f39..4edc1c0 100644
--- a/src/jarabe/frame/clipboardtray.py
+++ b/src/jarabe/frame/clipboardtray.py
@@ -16,7 +16,7 @@
import logging
-import gtk
+from gi.repository import Gtk
from sugar.graphics import tray
from sugar.graphics import style
@@ -57,7 +57,7 @@ class _ContextMap(object):
class ClipboardTray(tray.VTray):
- MAX_ITEMS = gtk.gdk.screen_height() / style.GRID_CELL_SIZE - 2
+ MAX_ITEMS = Gdk.Screen.height() / style.GRID_CELL_SIZE - 2
def __init__(self):
tray.VTray.__init__(self, align=tray.ALIGN_TO_END)
@@ -131,9 +131,9 @@ class ClipboardTray(tray.VTray):
logging.debug('ClipboardTray._drag_motion_cb')
if self._internal_drag(context):
- context.drag_status(gtk.gdk.ACTION_MOVE, time)
+ context.drag_status(Gdk.DragAction.MOVE, time)
else:
- context.drag_status(gtk.gdk.ACTION_COPY, time)
+ context.drag_status(Gdk.DragAction.COPY, time)
self.props.drag_active = True
return True
@@ -147,7 +147,7 @@ class ClipboardTray(tray.VTray):
if self._internal_drag(context):
# TODO: We should move the object within the clipboard here
if not self._context_map.has_context(context):
- context.drop_finish(False, gtk.get_current_event_time())
+ context.drop_finish(False, Gtk.get_current_event_time())
return False
cb_service = clipboard.get_instance()
@@ -180,13 +180,13 @@ class ClipboardTray(tray.VTray):
# If it's the last target to be processed, finish
# the dnd transaction
if not self._context_map.has_context(context):
- context.drop_finish(True, gtk.get_current_event_time())
+ context.drop_finish(True, Gtk.get_current_event_time())
def _internal_drag(self, context):
source_widget = context.get_source_widget()
if source_widget is None:
return False
- view_ancestor = source_widget.get_ancestor(gtk.Viewport)
+ view_ancestor = source_widget.get_ancestor(Gtk.Viewport)
if view_ancestor is self._viewport:
return True
else:
diff --git a/src/jarabe/frame/eventarea.py b/src/jarabe/frame/eventarea.py
index 1b5bf86..39aa7b4 100644
--- a/src/jarabe/frame/eventarea.py
+++ b/src/jarabe/frame/eventarea.py
@@ -14,36 +14,36 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-import gtk
-import gobject
-import wnck
-import gconf
+from gi.repository import Gtk
+from gi.repository import GObject
+from gi.repository import Wnck
+from gi.repository import GConf
_MAX_DELAY = 1000
-class EventArea(gobject.GObject):
+class EventArea(GObject.GObject):
__gsignals__ = {
- 'enter': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([])),
- 'leave': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([])),
+ 'enter': (GObject.SignalFlags.RUN_FIRST, None, ([])),
+ 'leave': (GObject.SignalFlags.RUN_FIRST, None, ([])),
}
def __init__(self):
- gobject.GObject.__init__(self)
+ GObject.GObject.__init__(self)
self._windows = []
self._hover = False
self._sids = {}
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
self._edge_delay = client.get_int('/desktop/sugar/frame/edge_delay')
self._corner_delay = client.get_int('/desktop/sugar/frame'
'/corner_delay')
- right = gtk.gdk.screen_width() - 1
- bottom = gtk.gdk.screen_height() - 1
- width = gtk.gdk.screen_width() - 2
- height = gtk.gdk.screen_height() - 2
+ right = Gdk.Screen.width() - 1
+ bottom = Gdk.Screen.height() - 1
+ width = Gdk.Screen.width() - 2
+ height = Gdk.Screen.height() - 2
if self._edge_delay != _MAX_DELAY:
invisible = self._create_invisible(1, 0, width, 1,
@@ -79,12 +79,12 @@ class EventArea(gobject.GObject):
self._corner_delay)
self._windows.append(invisible)
- screen = wnck.screen_get_default()
+ screen = Wnck.Screen.get_default()
screen.connect('window-stacking-changed',
self._window_stacking_changed_cb)
def _create_invisible(self, x, y, width, height, delay):
- invisible = gtk.Invisible()
+ invisible = Gtk.Invisible()
if delay >= 0:
invisible.connect('enter-notify-event', self._enter_notify_cb,
delay)
@@ -96,9 +96,9 @@ class EventArea(gobject.GObject):
invisible.realize()
# pylint: disable=E1101
- invisible.window.set_events(gtk.gdk.POINTER_MOTION_MASK |
- gtk.gdk.ENTER_NOTIFY_MASK |
- gtk.gdk.LEAVE_NOTIFY_MASK)
+ invisible.window.set_events(Gdk.EventMask.POINTER_MOTION_MASK |
+ Gdk.EventMask.ENTER_NOTIFY_MASK |
+ Gdk.EventMask.LEAVE_NOTIFY_MASK)
invisible.window.move_resize(x, y, width, height)
return invisible
@@ -115,8 +115,8 @@ class EventArea(gobject.GObject):
def _enter_notify_cb(self, widget, event, delay):
if widget in self._sids:
- gobject.source_remove(self._sids[widget])
- self._sids[widget] = gobject.timeout_add(delay,
+ GObject.source_remove(self._sids[widget])
+ self._sids[widget] = GObject.timeout_add(delay,
self.__delay_cb,
widget)
@@ -127,7 +127,7 @@ class EventArea(gobject.GObject):
def _leave_notify_cb(self, widget, event):
if widget in self._sids:
- gobject.source_remove(self._sids[widget])
+ GObject.source_remove(self._sids[widget])
del self._sids[widget]
self._notify_leave()
diff --git a/src/jarabe/frame/frame.py b/src/jarabe/frame/frame.py
index 9b867a9..cafa343 100644
--- a/src/jarabe/frame/frame.py
+++ b/src/jarabe/frame/frame.py
@@ -16,8 +16,8 @@
import logging
-import gtk
-import gobject
+from gi.repository import Gtk
+from gi.repository import GObject
from sugar.graphics import animator
from sugar.graphics import style
@@ -87,7 +87,7 @@ class Frame(object):
self._left_panel = self._create_left_panel()
self._right_panel = self._create_right_panel()
- screen = gtk.gdk.screen_get_default()
+ screen = Gdk.Screen.get_default()
screen.connect('size-changed', self._size_changed_cb)
self._key_listener = _KeyListener(self)
@@ -131,7 +131,7 @@ class Frame(object):
self._update_position()
def _create_top_panel(self):
- panel = self._create_panel(gtk.POS_TOP)
+ panel = self._create_panel(Gtk.PositionType.TOP)
zoom_toolbar = ZoomToolbar()
panel.append(zoom_toolbar, expand=False)
@@ -145,7 +145,7 @@ class Frame(object):
return panel
def _create_bottom_panel(self):
- panel = self._create_panel(gtk.POS_BOTTOM)
+ panel = self._create_panel(Gtk.PositionType.BOTTOM)
devices_tray = DevicesTray()
panel.append(devices_tray)
@@ -154,7 +154,7 @@ class Frame(object):
return panel
def _create_right_panel(self):
- panel = self._create_panel(gtk.POS_RIGHT)
+ panel = self._create_panel(Gtk.PositionType.RIGHT)
tray = FriendsTray()
panel.append(tray)
@@ -163,7 +163,7 @@ class Frame(object):
return panel
def _create_left_panel(self):
- panel = ClipboardPanelWindow(self, gtk.POS_LEFT)
+ panel = ClipboardPanelWindow(self, Gtk.PositionType.LEFT)
return panel
@@ -186,8 +186,8 @@ class Frame(object):
self.hide()
def _update_position(self):
- screen_h = gtk.gdk.screen_height()
- screen_w = gtk.gdk.screen_width()
+ screen_h = Gdk.Screen.height()
+ screen_w = Gdk.Screen.width()
self._move_panel(self._top_panel, self.current_position,
0, - self._top_panel.size, 0, 0)
@@ -213,7 +213,7 @@ class Frame(object):
def notify_key_press(self):
self._key_listener.key_press()
- def add_notification(self, icon, corner=gtk.CORNER_TOP_LEFT,
+ def add_notification(self, icon, corner=Gtk.CornerType.TOP_LEFT,
duration=_NOTIFICATION_DURATION):
if not isinstance(icon, NotificationIcon):
@@ -221,14 +221,14 @@ class Frame(object):
window = NotificationWindow()
- screen = gtk.gdk.screen_get_default()
- if corner == gtk.CORNER_TOP_LEFT:
+ screen = Gdk.Screen.get_default()
+ if corner == Gtk.CornerType.TOP_LEFT:
window.move(0, 0)
- elif corner == gtk.CORNER_TOP_RIGHT:
+ elif corner == Gtk.CornerType.TOP_RIGHT:
window.move(screen.get_width() - style.GRID_CELL_SIZE, 0)
- elif corner == gtk.CORNER_BOTTOM_LEFT:
+ elif corner == Gtk.CornerType.BOTTOM_LEFT:
window.move(0, screen.get_height() - style.GRID_CELL_SIZE)
- elif corner == gtk.CORNER_BOTTOM_RIGHT:
+ elif corner == Gtk.CornerType.BOTTOM_RIGHT:
window.move(screen.get_width() - style.GRID_CELL_SIZE,
screen.get_height() - style.GRID_CELL_SIZE)
else:
@@ -240,7 +240,7 @@ class Frame(object):
self._notif_by_icon[icon] = window
- gobject.timeout_add(duration,
+ GObject.timeout_add(duration,
lambda: self.remove_notification(icon))
def remove_notification(self, icon):
@@ -273,7 +273,7 @@ class Frame(object):
if duration == -1:
duration = _NOTIFICATION_DURATION
- self.add_notification(icon, gtk.CORNER_TOP_RIGHT, duration)
+ self.add_notification(icon, Gtk.CornerType.TOP_RIGHT, duration)
def __notification_cancelled_cb(self, **kwargs):
# Do nothing for now. Our notification UI is so simple, there's no
diff --git a/src/jarabe/frame/frameinvoker.py b/src/jarabe/frame/frameinvoker.py
index a4abfa8..4aef631 100644
--- a/src/jarabe/frame/frameinvoker.py
+++ b/src/jarabe/frame/frameinvoker.py
@@ -14,7 +14,7 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-import gtk
+from gi.repository import Gtk
from sugar.graphics import style
from sugar.graphics.palette import WidgetInvoker
@@ -24,15 +24,15 @@ def _get_screen_area():
frame_thickness = style.GRID_CELL_SIZE
x = y = frame_thickness
- width = gtk.gdk.screen_width() - frame_thickness
- height = gtk.gdk.screen_height() - frame_thickness
+ width = Gdk.Screen.width() - frame_thickness
+ height = Gdk.Screen.height() - frame_thickness
- return gtk.gdk.Rectangle(x, y, width, height)
+ return (x, y, width, height)
class FrameWidgetInvoker(WidgetInvoker):
def __init__(self, widget):
- WidgetInvoker.__init__(self, widget, widget.child)
+ WidgetInvoker.__init__(self, widget, widget.get_child())
self._position_hint = self.ANCHORED
self._screen_area = _get_screen_area()
diff --git a/src/jarabe/frame/framewindow.py b/src/jarabe/frame/framewindow.py
index 394ba00..a4e4fc8 100644
--- a/src/jarabe/frame/framewindow.py
+++ b/src/jarabe/frame/framewindow.py
@@ -14,14 +14,14 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-import gtk
-from gtk import gdk
-import gobject
+from gi.repository import Gtk
+from gi.repository import Gdk
+from gi.repository import GObject
from sugar.graphics import style
-class FrameContainer(gtk.Bin):
+class FrameContainer(Gtk.Bin):
"""A container class for frame panel rendering. Hosts a child 'box' where
frame elements can be added. Excludes grid-sized squares at each end
of the frame panel, and a space alongside the inside of the screen where
@@ -30,18 +30,18 @@ class FrameContainer(gtk.Bin):
__gtype_name__ = 'SugarFrameContainer'
def __init__(self, position):
- gtk.Bin.__init__(self)
+ GObject.GObject.__init__(self)
self._position = position
if self.is_vertical():
- box = gtk.VBox()
+ box = Gtk.VBox()
else:
- box = gtk.HBox()
+ box = Gtk.HBox()
self.add(box)
box.show()
def is_vertical(self):
- return self._position in (gtk.POS_LEFT, gtk.POS_RIGHT)
+ return self._position in (Gtk.PositionType.LEFT, Gtk.PositionType.RIGHT)
def do_expose_event(self, event):
# Draw the inner border as a rectangle
@@ -50,28 +50,28 @@ class FrameContainer(gtk.Bin):
cr.set_source_rgba (r, g, b, a)
if self.is_vertical():
- x = style.GRID_CELL_SIZE if self._position == gtk.POS_LEFT else 0
+ x = style.GRID_CELL_SIZE if self._position == Gtk.PositionType.LEFT else 0
y = style.GRID_CELL_SIZE
width = style.LINE_WIDTH
height = self.allocation.height - (style.GRID_CELL_SIZE * 2)
else:
x = style.GRID_CELL_SIZE
- y = style.GRID_CELL_SIZE if self._position == gtk.POS_TOP else 0
+ y = style.GRID_CELL_SIZE if self._position == Gtk.PositionType.TOP else 0
height = style.LINE_WIDTH
width = self.allocation.width - (style.GRID_CELL_SIZE * 2)
cr.rectangle(x, y, width, height)
cr.fill()
- gtk.Bin.do_expose_event(self, event)
+ Gtk.Bin.do_expose_event(self, event)
return False
def do_size_request(self, req):
if self.is_vertical():
- req.height = gdk.screen_height()
+ req.height = Gdk.Screen.height()
req.width = style.GRID_CELL_SIZE + style.LINE_WIDTH
else:
- req.width = gdk.screen_width()
+ req.width = Gdk.Screen.width()
req.height = style.GRID_CELL_SIZE + style.LINE_WIDTH
self.get_child().size_request()
@@ -82,9 +82,9 @@ class FrameContainer(gtk.Bin):
# exclude grid squares at two ends of the frame
# allocate remaining space to child box, minus the space needed for
# drawing the border
- allocation = gdk.Rectangle()
+ allocation = ()
if self.is_vertical():
- allocation.x = 0 if self._position == gtk.POS_LEFT \
+ allocation.x = 0 if self._position == Gtk.PositionType.LEFT \
else style.LINE_WIDTH
allocation.y = style.GRID_CELL_SIZE
allocation.width = self.allocation.width - style.LINE_WIDTH
@@ -92,7 +92,7 @@ class FrameContainer(gtk.Bin):
- (style.GRID_CELL_SIZE * 2)
else:
allocation.x = style.GRID_CELL_SIZE
- allocation.y = 0 if self._position == gtk.POS_TOP \
+ allocation.y = 0 if self._position == Gtk.PositionType.TOP \
else style.LINE_WIDTH
allocation.width = self.allocation.width \
- (style.GRID_CELL_SIZE * 2)
@@ -101,15 +101,15 @@ class FrameContainer(gtk.Bin):
self.get_child().size_allocate(allocation)
-class FrameWindow(gtk.Window):
+class FrameWindow(Gtk.Window):
__gtype_name__ = 'SugarFrameWindow'
def __init__(self, position):
- gtk.Window.__init__(self)
+ GObject.GObject.__init__(self)
self.hover = False
self.size = style.GRID_CELL_SIZE + style.LINE_WIDTH
- accel_group = gtk.AccelGroup()
+ accel_group = Gtk.AccelGroup()
self.set_data('sugar-accel-group', accel_group)
self.add_accel_group(accel_group)
@@ -125,28 +125,28 @@ class FrameWindow(gtk.Window):
self._container.show()
self._update_size()
- screen = gdk.screen_get_default()
+ screen = Gdk.Screen.get_default()
screen.connect('size-changed', self._size_changed_cb)
def append(self, child, expand=True, fill=True):
self._container.get_child().pack_start(child, expand=expand, fill=fill)
def _update_size(self):
- if self._position == gtk.POS_TOP or self._position == gtk.POS_BOTTOM:
- self.resize(gdk.screen_width(), self.size)
+ if self._position == Gtk.PositionType.TOP or self._position == Gtk.PositionType.BOTTOM:
+ self.resize(Gdk.Screen.width(), self.size)
else:
- self.resize(self.size, gdk.screen_height())
+ self.resize(self.size, Gdk.Screen.height())
def _realize_cb(self, widget):
- self.window.set_type_hint(gdk.WINDOW_TYPE_HINT_DOCK)
+ self.set_type_hint(Gdk.WindowTypeHint.DOCK)
self.window.set_accept_focus(False)
def _enter_notify_cb(self, window, event):
- if event.detail != gdk.NOTIFY_INFERIOR:
+ if event.detail != Gdk.NotifyType.INFERIOR:
self.hover = True
def _leave_notify_cb(self, window, event):
- if event.detail != gdk.NOTIFY_INFERIOR:
+ if event.detail != Gdk.NotifyType.INFERIOR:
self.hover = False
def _size_changed_cb(self, screen):
diff --git a/src/jarabe/frame/notification.py b/src/jarabe/frame/notification.py
index 3471e2c..a9f3863 100644
--- a/src/jarabe/frame/notification.py
+++ b/src/jarabe/frame/notification.py
@@ -14,8 +14,8 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-import gobject
-import gtk
+from gi.repository import GObject
+from gi.repository import Gtk
from sugar.graphics import style
from sugar.graphics.xocolor import XoColor
@@ -23,20 +23,20 @@ from sugar.graphics.xocolor import XoColor
from jarabe.view.pulsingicon import PulsingIcon
-class NotificationIcon(gtk.EventBox):
+class NotificationIcon(Gtk.EventBox):
__gtype_name__ = 'SugarNotificationIcon'
__gproperties__ = {
- 'xo-color': (object, None, None, gobject.PARAM_READWRITE),
- 'icon-name': (str, None, None, None, gobject.PARAM_READWRITE),
- 'icon-filename': (str, None, None, None, gobject.PARAM_READWRITE),
+ 'xo-color': (object, None, None, GObject.PARAM_READWRITE),
+ 'icon-name': (str, None, None, None, GObject.PARAM_READWRITE),
+ 'icon-filename': (str, None, None, None, GObject.PARAM_READWRITE),
}
_PULSE_TIMEOUT = 3
def __init__(self, **kwargs):
self._icon = PulsingIcon(pixel_size=style.STANDARD_ICON_SIZE)
- gobject.GObject.__init__(self, **kwargs)
+ GObject.GObject.__init__(self, **kwargs)
self.props.visible_window = False
self._icon.props.pulse_color = \
@@ -46,7 +46,7 @@ class NotificationIcon(gtk.EventBox):
self.add(self._icon)
self._icon.show()
- gobject.timeout_add_seconds(self._PULSE_TIMEOUT,
+ GObject.timeout_add_seconds(self._PULSE_TIMEOUT,
self.__stop_pulsing_cb)
self.set_size_request(style.GRID_CELL_SIZE, style.GRID_CELL_SIZE)
@@ -83,20 +83,20 @@ class NotificationIcon(gtk.EventBox):
palette = property(_get_palette, _set_palette)
-class NotificationWindow(gtk.Window):
+class NotificationWindow(Gtk.Window):
__gtype_name__ = 'SugarNotificationWindow'
def __init__(self, **kwargs):
- gtk.Window.__init__(self, **kwargs)
+ GObject.GObject.__init__(self, **kwargs)
self.set_decorated(False)
self.set_resizable(False)
self.connect('realize', self._realize_cb)
def _realize_cb(self, widget):
- self.window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DIALOG)
+ self.set_type_hint(Gdk.WindowTypeHint.DIALOG)
self.window.set_accept_focus(False)
- color = gtk.gdk.color_parse(style.COLOR_TOOLBAR_GREY.get_html())
- self.modify_bg(gtk.STATE_NORMAL, color)
+ color = Gdk.color_parse(style.COLOR_TOOLBAR_GREY.get_html())
+ self.modify_bg(Gtk.StateType.NORMAL, color)
diff --git a/src/jarabe/frame/zoomtoolbar.py b/src/jarabe/frame/zoomtoolbar.py
index b71f4f3..4d72a25 100644
--- a/src/jarabe/frame/zoomtoolbar.py
+++ b/src/jarabe/frame/zoomtoolbar.py
@@ -19,8 +19,8 @@ from gettext import gettext as _
import logging
import glib
-import gtk
-import gobject
+from gi.repository import Gtk
+from gi.repository import GObject
from sugar.graphics import style
from sugar.graphics.palette import Palette
@@ -30,16 +30,16 @@ from jarabe.frame.frameinvoker import FrameWidgetInvoker
from jarabe.model import shell
-class ZoomToolbar(gtk.Toolbar):
+class ZoomToolbar(Gtk.Toolbar):
__gsignals__ = {
- 'level-clicked': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ 'level-clicked': (GObject.SignalFlags.RUN_FIRST, None,
([]))
}
def __init__(self):
- gtk.Toolbar.__init__(self)
+ GObject.GObject.__init__(self)
# we shouldn't be mirrored in RTL locales
- self.set_direction(gtk.TEXT_DIR_LTR)
+ self.set_direction(Gtk.TextDirection.LTR)
# ask not to be collapsed if possible
self.set_size_request(4 * style.GRID_CELL_SIZE, -1)
diff --git a/src/jarabe/intro/__init__.py b/src/jarabe/intro/__init__.py
index d2932f1..163e16b 100644
--- a/src/jarabe/intro/__init__.py
+++ b/src/jarabe/intro/__init__.py
@@ -1,6 +1,6 @@
import os
-import gtk
+from gi.repository import Gtk
from sugar import env
from sugar.profile import get_profile
@@ -23,4 +23,4 @@ def check_profile():
if not profile.is_valid():
win = IntroWindow()
win.show_all()
- gtk.main()
+ Gtk.main()
diff --git a/src/jarabe/intro/colorpicker.py b/src/jarabe/intro/colorpicker.py
index 75c15c1..2884517 100644
--- a/src/jarabe/intro/colorpicker.py
+++ b/src/jarabe/intro/colorpicker.py
@@ -14,16 +14,16 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-import gtk
+from gi.repository import Gtk
from sugar.graphics.icon import Icon
from sugar.graphics import style
from sugar.graphics.xocolor import XoColor
-class ColorPicker(gtk.EventBox):
+class ColorPicker(Gtk.EventBox):
def __init__(self):
- gtk.EventBox.__init__(self)
+ GObject.GObject.__init__(self)
self._xo_color = None
self._xo = Icon(pixel_size=style.XLARGE_ICON_SIZE,
@@ -33,7 +33,7 @@ class ColorPicker(gtk.EventBox):
self.add(self._xo)
def _button_press_cb(self, widget, event):
- if event.button == 1 and event.type == gtk.gdk.BUTTON_PRESS:
+ if event.button == 1 and event.type == Gdk.EventType.BUTTON_PRESS:
self._set_random_colors()
def get_color(self):
diff --git a/src/jarabe/intro/window.py b/src/jarabe/intro/window.py
index 15765f9..8c76083 100644
--- a/src/jarabe/intro/window.py
+++ b/src/jarabe/intro/window.py
@@ -18,11 +18,11 @@ import os
import os.path
import logging
from gettext import gettext as _
-import gconf
+from gi.repository import GConf
import pwd
-import gtk
-import gobject
+from gi.repository import Gtk
+from gi.repository import GObject
from sugar import env
from sugar import profile
@@ -40,7 +40,7 @@ def create_profile(name, color=None):
if not color:
color = XoColor()
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
client.set_string('/desktop/sugar/user/nick', name)
client.set_string('/desktop/sugar/user/color', color.to_string())
client.suggest_sync()
@@ -71,13 +71,13 @@ def create_profile(name, color=None):
logging.debug("User keypair generated")
-class _Page(gtk.VBox):
+class _Page(Gtk.VBox):
__gproperties__ = {
- 'valid': (bool, None, None, False, gobject.PARAM_READABLE),
+ 'valid': (bool, None, None, False, GObject.PARAM_READABLE),
}
def __init__(self):
- gtk.VBox.__init__(self)
+ GObject.GObject.__init__(self)
self.valid = False
def set_valid(self, valid):
@@ -97,20 +97,20 @@ class _NamePage(_Page):
_Page.__init__(self)
self._intro = intro
- alignment = gtk.Alignment(0.5, 0.5, 0, 0)
+ alignment = Gtk.Alignment.new(0.5, 0.5, 0, 0)
self.pack_start(alignment, expand=True, fill=True)
- hbox = gtk.HBox(spacing=style.DEFAULT_SPACING)
+ hbox = Gtk.HBox(spacing=style.DEFAULT_SPACING)
alignment.add(hbox)
- label = gtk.Label(_('Name:'))
- hbox.pack_start(label, expand=False)
+ label = Gtk.Label(label=_('Name:'))
+ hbox.pack_start(label, False, True, 0)
- self._entry = gtk.Entry()
+ self._entry = Gtk.Entry()
self._entry.connect('notify::text', self._text_changed_cb)
self._entry.set_size_request(style.zoom(300), -1)
self._entry.set_max_length(45)
- hbox.pack_start(self._entry, expand=False)
+ hbox.pack_start(self._entry, False, True, 0)
def _text_changed_cb(self, entry, pspec):
valid = len(entry.props.text.strip()) > 0
@@ -130,14 +130,14 @@ class _ColorPage(_Page):
def __init__(self):
_Page.__init__(self)
- vbox = gtk.VBox(spacing=style.DEFAULT_SPACING)
+ vbox = Gtk.VBox(spacing=style.DEFAULT_SPACING)
self.pack_start(vbox, expand=True, fill=False)
- self._label = gtk.Label(_('Click to change color:'))
- vbox.pack_start(self._label)
+ self._label = Gtk.Label(label=_('Click to change color:'))
+ vbox.pack_start(self._label, True, True, 0)
self._cp = colorpicker.ColorPicker()
- vbox.pack_start(self._cp)
+ vbox.pack_start(self._cp, True, True, 0)
self._color = self._cp.get_color()
self.set_valid(True)
@@ -146,10 +146,10 @@ class _ColorPage(_Page):
return self._cp.get_color()
-class _IntroBox(gtk.VBox):
+class _IntroBox(Gtk.VBox):
__gsignals__ = {
- 'done': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
- ([gobject.TYPE_PYOBJECT, gobject.TYPE_PYOBJECT])),
+ 'done': (GObject.SignalFlags.RUN_FIRST, None,
+ ([GObject.TYPE_PYOBJECT, GObject.TYPE_PYOBJECT])),
}
PAGE_NAME = 0
@@ -159,7 +159,7 @@ class _IntroBox(gtk.VBox):
PAGE_LAST = PAGE_COLOR
def __init__(self):
- gtk.VBox.__init__(self)
+ GObject.GObject.__init__(self)
self.set_border_width(style.zoom(30))
self._page = self.PAGE_NAME
@@ -168,7 +168,7 @@ class _IntroBox(gtk.VBox):
self._current_page = None
self._next_button = None
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
default_nick = client.get_string('/desktop/sugar/user/default_nick')
if default_nick != 'disabled':
self._page = self.PAGE_COLOR
@@ -189,21 +189,21 @@ class _IntroBox(gtk.VBox):
elif self._page == self.PAGE_COLOR:
self._current_page = self._color_page
- self.pack_start(self._current_page, expand=True)
+ self.pack_start(self._current_page, True, True, 0)
- button_box = gtk.HButtonBox()
+ button_box = Gtk.HButtonBox()
if self._page == self.PAGE_FIRST:
- button_box.set_layout(gtk.BUTTONBOX_END)
+ button_box.set_layout(Gtk.ButtonBoxStyle.END)
else:
- button_box.set_layout(gtk.BUTTONBOX_EDGE)
- back_button = gtk.Button(_('Back'))
+ button_box.set_layout(Gtk.ButtonBoxStyle.EDGE)
+ back_button = Gtk.Button(_('Back'))
image = Icon(icon_name='go-left')
back_button.set_image(image)
back_button.connect('clicked', self._back_activated_cb)
- button_box.pack_start(back_button)
+ button_box.pack_start(back_button, True, True, 0)
- self._next_button = gtk.Button()
+ self._next_button = Gtk.Button()
image = Icon(icon_name='go-right')
self._next_button.set_image(image)
@@ -217,12 +217,12 @@ class _IntroBox(gtk.VBox):
self._current_page.activate()
self._update_next_button()
- button_box.pack_start(self._next_button)
+ button_box.pack_start(self._next_button, True, True, 0)
self._current_page.connect('notify::valid',
self._page_valid_changed_cb)
- self.pack_start(button_box, expand=False)
+ self.pack_start(button_box, False, True, 0)
self.show_all()
def _update_next_button(self):
@@ -259,11 +259,11 @@ class _IntroBox(gtk.VBox):
self.emit('done', name, color)
-class IntroWindow(gtk.Window):
+class IntroWindow(Gtk.Window):
__gtype_name__ = 'SugarIntroWindow'
def __init__(self):
- gtk.Window.__init__(self)
+ GObject.GObject.__init__(self)
self.props.decorated = False
self.maximize()
@@ -277,19 +277,19 @@ class IntroWindow(gtk.Window):
def _done_cb(self, box, name, color):
self.hide()
- gobject.idle_add(self._create_profile_cb, name, color)
+ GObject.idle_add(self._create_profile_cb, name, color)
def _create_profile_cb(self, name, color):
create_profile(name, color)
- gtk.main_quit()
+ Gtk.main_quit()
return False
def __key_press_cb(self, widget, event):
- if gtk.gdk.keyval_name(event.keyval) == 'Return':
+ if Gdk.keyval_name(event.keyval) == 'Return':
self._intro_box.next()
return True
- elif gtk.gdk.keyval_name(event.keyval) == 'Escape':
+ elif Gdk.keyval_name(event.keyval) == 'Escape':
self._intro_box.back()
return True
return False
@@ -298,5 +298,5 @@ class IntroWindow(gtk.Window):
if __name__ == '__main__':
w = IntroWindow()
w.show()
- w.connect('destroy', gtk.main_quit)
- gtk.main()
+ w.connect('destroy', Gtk.main_quit)
+ Gtk.main()
diff --git a/src/jarabe/journal/detailview.py b/src/jarabe/journal/detailview.py
index 628af01..fc4c31a 100644
--- a/src/jarabe/journal/detailview.py
+++ b/src/jarabe/journal/detailview.py
@@ -17,8 +17,8 @@
import logging
from gettext import gettext as _
-import gobject
-import gtk
+from gi.repository import GObject
+from gi.repository import Gtk
from sugar.graphics import style
from sugar.graphics.icon import Icon
@@ -27,24 +27,24 @@ from jarabe.journal.expandedentry import ExpandedEntry
from jarabe.journal import model
-class DetailView(gtk.VBox):
+class DetailView(Gtk.VBox):
__gtype_name__ = 'DetailView'
__gsignals__ = {
- 'go-back-clicked': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([])),
+ 'go-back-clicked': (GObject.SignalFlags.RUN_FIRST, None, ([])),
}
def __init__(self, **kwargs):
self._metadata = None
self._expanded_entry = None
- gobject.GObject.__init__(self, **kwargs)
- gtk.VBox.__init__(self)
+ GObject.GObject.__init__(self, **kwargs)
+ GObject.GObject.__init__(self)
back_bar = BackBar()
back_bar.connect('button-release-event',
self.__back_bar_release_event_cb)
- self.pack_start(back_bar, expand=False)
+ self.pack_start(back_bar, False, True, 0)
self.show_all()
@@ -60,7 +60,7 @@ class DetailView(gtk.VBox):
def _update_view(self):
if self._expanded_entry is None:
self._expanded_entry = ExpandedEntry()
- self.pack_start(self._expanded_entry)
+ self.pack_start(self._expanded_entry, True, True, 0)
self._expanded_entry.set_metadata(self._metadata)
self.show_all()
@@ -76,41 +76,41 @@ class DetailView(gtk.VBox):
self._metadata = metadata
self._update_view()
- metadata = gobject.property(
+ metadata = GObject.property(
type=object, getter=get_metadata, setter=set_metadata)
-class BackBar(gtk.EventBox):
+class BackBar(Gtk.EventBox):
def __init__(self):
- gtk.EventBox.__init__(self)
- self.modify_bg(gtk.STATE_NORMAL,
+ GObject.GObject.__init__(self)
+ self.modify_bg(Gtk.StateType.NORMAL,
style.COLOR_PANEL_GREY.get_gdk_color())
- hbox = gtk.HBox(spacing=style.DEFAULT_PADDING)
+ hbox = Gtk.HBox(spacing=style.DEFAULT_PADDING)
hbox.set_border_width(style.DEFAULT_PADDING)
- icon = Icon(icon_name='go-previous', icon_size=gtk.ICON_SIZE_MENU,
+ icon = Icon(icon_name='go-previous', icon_size=Gtk.IconSize.MENU,
fill_color=style.COLOR_TOOLBAR_GREY.get_svg())
hbox.pack_start(icon, False, False)
- label = gtk.Label()
+ label = Gtk.Label()
label.set_text(_('Back'))
- halign = gtk.Alignment(0, 0.5, 0, 1)
+ halign = Gtk.Alignment.new(0, 0.5, 0, 1)
halign.add(label)
hbox.pack_start(halign, True, True)
hbox.show()
self.add(hbox)
- if gtk.widget_get_default_direction() == gtk.TEXT_DIR_RTL:
+ if Gtk.widget_get_default_direction() == Gtk.TextDirection.RTL:
hbox.reverse()
self.connect('enter-notify-event', self.__enter_notify_event_cb)
self.connect('leave-notify-event', self.__leave_notify_event_cb)
def __enter_notify_event_cb(self, box, event):
- box.modify_bg(gtk.STATE_NORMAL,
+ box.modify_bg(Gtk.StateType.NORMAL,
style.COLOR_SELECTION_GREY.get_gdk_color())
return False
def __leave_notify_event_cb(self, box, event):
- box.modify_bg(gtk.STATE_NORMAL,
+ box.modify_bg(Gtk.StateType.NORMAL,
style.COLOR_PANEL_GREY.get_gdk_color())
return False
diff --git a/src/jarabe/journal/expandedentry.py b/src/jarabe/journal/expandedentry.py
index d0c7166..d3d2bad 100644
--- a/src/jarabe/journal/expandedentry.py
+++ b/src/jarabe/journal/expandedentry.py
@@ -21,9 +21,9 @@ import time
import os
import cairo
-import gobject
+from gi.repository import GObject
import glib
-import gtk
+from gi.repository import Gtk
import simplejson
from sugar.graphics import style
@@ -37,80 +37,80 @@ from jarabe.journal import model
from jarabe.view.eventicon import EventIcon
-class Separator(gtk.VBox):
+class Separator(Gtk.VBox):
def __init__(self, orientation):
- gtk.VBox.__init__(self,
+ GObject.GObject.__init__(self,
background_color=style.COLOR_PANEL_GREY.get_gdk_color())
-class BuddyList(gtk.Alignment):
+class BuddyList(Gtk.Alignment):
def __init__(self, buddies):
- gtk.Alignment.__init__(self, 0, 0, 0, 0)
+ GObject.GObject.__init__(self, 0, 0, 0, 0)
- hbox = gtk.HBox()
+ hbox = Gtk.HBox()
for buddy in buddies:
nick_, color = buddy
icon = EventIcon(icon_name='computer-xo',
xo_color=XoColor(color),
pixel_size=style.STANDARD_ICON_SIZE)
icon.set_palette(BuddyPalette(buddy))
- hbox.pack_start(icon)
+ hbox.pack_start(icon, True, True, 0)
self.add(hbox)
-class ExpandedEntry(gtk.EventBox):
+class ExpandedEntry(Gtk.EventBox):
def __init__(self):
- gtk.EventBox.__init__(self)
- self._vbox = gtk.VBox()
+ GObject.GObject.__init__(self)
+ self._vbox = Gtk.VBox()
self.add(self._vbox)
self._metadata = None
self._update_title_sid = None
- self.modify_bg(gtk.STATE_NORMAL, style.COLOR_WHITE.get_gdk_color())
+ self.modify_bg(Gtk.StateType.NORMAL, style.COLOR_WHITE.get_gdk_color())
# Create a header
- header = gtk.HBox()
+ header = Gtk.HBox()
self._vbox.pack_start(header, False, False, style.DEFAULT_SPACING * 2)
# Create a two-column body
- body_box = gtk.EventBox()
+ body_box = Gtk.EventBox()
body_box.set_border_width(style.DEFAULT_SPACING)
- body_box.modify_bg(gtk.STATE_NORMAL, style.COLOR_WHITE.get_gdk_color())
- self._vbox.pack_start(body_box)
- body = gtk.HBox()
+ body_box.modify_bg(Gtk.StateType.NORMAL, style.COLOR_WHITE.get_gdk_color())
+ self._vbox.pack_start(body_box, True, True, 0)
+ body = Gtk.HBox()
body_box.add(body)
- first_column = gtk.VBox()
+ first_column = Gtk.VBox()
body.pack_start(first_column, False, False, style.DEFAULT_SPACING)
- second_column = gtk.VBox()
- body.pack_start(second_column)
+ second_column = Gtk.VBox()
+ body.pack_start(second_column, True, True, 0)
# Header
self._keep_icon = self._create_keep_icon()
header.pack_start(self._keep_icon, False, False, style.DEFAULT_SPACING)
self._icon = None
- self._icon_box = gtk.HBox()
+ self._icon_box = Gtk.HBox()
header.pack_start(self._icon_box, False, False, style.DEFAULT_SPACING)
self._title = self._create_title()
- header.pack_start(self._title)
+ header.pack_start(self._title, True, True, 0)
# TODO: create a version list popup instead of a date label
self._date = self._create_date()
header.pack_start(self._date, False, False, style.DEFAULT_SPACING)
- if gtk.widget_get_default_direction() == gtk.TEXT_DIR_RTL:
+ if Gtk.widget_get_default_direction() == Gtk.TextDirection.RTL:
header.reverse()
# First body column
- self._preview_box = gtk.Frame()
- first_column.pack_start(self._preview_box, expand=False)
+ self._preview_box = Gtk.Frame()
+ first_column.pack_start(self._preview_box, False, True, 0)
- self._technical_box = gtk.VBox()
- first_column.pack_start(self._technical_box)
+ self._technical_box = Gtk.VBox()
+ first_column.pack_start(self._technical_box, True)
# Second body column
description_box, self._description = self._create_description()
@@ -121,8 +121,8 @@ class ExpandedEntry(gtk.EventBox):
second_column.pack_start(tags_box, True, True,
style.DEFAULT_SPACING)
- self._buddy_list = gtk.VBox()
- second_column.pack_start(self._buddy_list)
+ self._buddy_list = Gtk.VBox()
+ second_column.pack_start(self._buddy_list, True)
self.show_all()
@@ -146,11 +146,11 @@ class ExpandedEntry(gtk.EventBox):
self._preview_box.add(self._create_preview())
self._technical_box.foreach(self._technical_box.remove)
- self._technical_box.pack_start(self._create_technical(),
+ self._technical_box.pack_start(self._create_technical(, True, True, 0),
False, False, style.DEFAULT_SPACING)
self._buddy_list.foreach(self._buddy_list.remove)
- self._buddy_list.pack_start(self._create_buddy_list(), False, False,
+ self._buddy_list.pack_start(self._create_buddy_list(, True, True, 0), False, False,
style.DEFAULT_SPACING)
description = metadata.get('description', '')
@@ -180,22 +180,22 @@ class ExpandedEntry(gtk.EventBox):
return icon
def _create_title(self):
- entry = gtk.Entry()
+ entry = Gtk.Entry()
entry.connect('focus-out-event', self._title_focus_out_event_cb)
bg_color = style.COLOR_WHITE.get_gdk_color()
- entry.modify_bg(gtk.STATE_INSENSITIVE, bg_color)
- entry.modify_base(gtk.STATE_INSENSITIVE, bg_color)
+ entry.modify_bg(Gtk.StateType.INSENSITIVE, bg_color)
+ entry.modify_base(Gtk.StateType.INSENSITIVE, bg_color)
return entry
def _create_date(self):
- date = gtk.Label()
+ date = Gtk.Label()
return date
def _create_preview(self):
- box = gtk.EventBox()
- box.modify_bg(gtk.STATE_NORMAL, style.COLOR_WHITE.get_gdk_color())
+ box = Gtk.EventBox()
+ box.modify_bg(Gtk.StateType.NORMAL, style.COLOR_WHITE.get_gdk_color())
box.connect('expose-event', self.__expose_event_cb)
box.connect_after('button-release-event',
@@ -222,7 +222,7 @@ class ExpandedEntry(gtk.EventBox):
png_width = surface.get_width()
png_height = surface.get_height()
gdk_window = self.get_toplevel().window
- pixmap = gtk.gdk.Pixmap(gdk_window, png_width, png_height, -1)
+ pixmap = Gdk.Pixmap(gdk_window, png_width, png_height, -1)
cr = pixmap.cairo_create()
cr.set_source_rgb(1, 1, 1)
cr.paint()
@@ -230,7 +230,7 @@ class ExpandedEntry(gtk.EventBox):
cr.scale(width / png_width, height / png_height)
cr.paint()
- im = gtk.image_new_from_pixmap(pixmap, None)
+ im = Gtk.image_new_from_pixmap(pixmap, None)
has_preview = True
except Exception:
logging.exception('Error while loading the preview')
@@ -242,14 +242,14 @@ class ExpandedEntry(gtk.EventBox):
box.add(im)
im.show()
else:
- label = gtk.Label()
+ label = Gtk.Label()
label.set_text(_('No preview'))
label.set_size_request(width, height)
box.add(label)
label.show()
def _create_technical(self):
- vbox = gtk.VBox()
+ vbox = Gtk.VBox()
vbox.props.spacing = style.DEFAULT_SPACING
label = \
@@ -260,10 +260,10 @@ class ExpandedEntry(gtk.EventBox):
'filesize',
model.get_file_size(self._metadata['uid'])))))
- text = gtk.Label()
+ text = Gtk.Label()
text.set_markup('<span foreground="%s">%s</span>' % (
style.COLOR_BUTTON_GREY.get_html(), label))
- halign = gtk.Alignment(0, 0, 0, 0)
+ halign = Gtk.Alignment.new(0, 0, 0, 0)
halign.add(text)
vbox.pack_start(halign, False, False, 0)
@@ -283,44 +283,44 @@ class ExpandedEntry(gtk.EventBox):
def _create_buddy_list(self):
- vbox = gtk.VBox()
+ vbox = Gtk.VBox()
vbox.props.spacing = style.DEFAULT_SPACING
- text = gtk.Label()
+ text = Gtk.Label()
text.set_markup('<span foreground="%s">%s</span>' % (
style.COLOR_BUTTON_GREY.get_html(), _('Participants:')))
- halign = gtk.Alignment(0, 0, 0, 0)
+ halign = Gtk.Alignment.new(0, 0, 0, 0)
halign.add(text)
vbox.pack_start(halign, False, False, 0)
if self._metadata.get('buddies'):
buddies = simplejson.loads(self._metadata['buddies']).values()
- vbox.pack_start(BuddyList(buddies), False, False, 0)
+ vbox.pack_start(BuddyList(buddies, True, True, 0), False, False, 0)
return vbox
else:
return vbox
def _create_scrollable(self, label):
- vbox = gtk.VBox()
+ vbox = Gtk.VBox()
vbox.props.spacing = style.DEFAULT_SPACING
- text = gtk.Label()
+ text = Gtk.Label()
text.set_markup('<span foreground="%s">%s</span>' % (
style.COLOR_BUTTON_GREY.get_html(), label))
- halign = gtk.Alignment(0, 0, 0, 0)
+ halign = Gtk.Alignment.new(0, 0, 0, 0)
halign.add(text)
vbox.pack_start(halign, False, False, 0)
- scrolled_window = gtk.ScrolledWindow()
- scrolled_window.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
+ scrolled_window = Gtk.ScrolledWindow()
+ scrolled_window.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC)
scrolled_window.set_border_width(style.LINE_WIDTH)
- text_buffer = gtk.TextBuffer()
- text_view = gtk.TextView(text_buffer)
+ text_buffer = Gtk.TextBuffer()
+ text_view = Gtk.TextView(text_buffer)
text_view.set_left_margin(style.DEFAULT_PADDING)
- text_view.set_wrap_mode(gtk.WRAP_WORD_CHAR)
+ text_view.set_wrap_mode(Gtk.WrapMode.WORD_CHAR)
scrolled_window.add_with_viewport(text_view)
- vbox.pack_start(scrolled_window)
+ vbox.pack_start(scrolled_window, True, True, 0)
# text_view.text_view_widget.connect('focus-out-event',
# self._description_focus_out_event_cb)
@@ -335,7 +335,7 @@ class ExpandedEntry(gtk.EventBox):
def _title_notify_text_cb(self, entry, pspec):
if not self._update_title_sid:
- self._update_title_sid = gobject.timeout_add_seconds(1,
+ self._update_title_sid = GObject.timeout_add_seconds(1,
self._update_title_cb)
def _title_focus_out_event_cb(self, entry, event):
diff --git a/src/jarabe/journal/journalactivity.py b/src/jarabe/journal/journalactivity.py
index 1132f82..309c6a7 100644
--- a/src/jarabe/journal/journalactivity.py
+++ b/src/jarabe/journal/journalactivity.py
@@ -19,7 +19,7 @@ import logging
from gettext import gettext as _
import uuid
-import gtk
+from gi.repository import Gtk
import dbus
import statvfs
import os
@@ -76,7 +76,7 @@ class JournalActivityDBusService(dbus.service.Object):
def _chooser_response_cb(self, chooser, response_id, chooser_id):
logging.debug('JournalActivityDBusService._chooser_response_cb')
- if response_id == gtk.RESPONSE_ACCEPT:
+ if response_id == Gtk.ResponseType.ACCEPT:
object_id = chooser.get_selected_object_id()
self.ObjectChooserResponse(chooser_id, object_id)
else:
@@ -89,7 +89,7 @@ class JournalActivityDBusService(dbus.service.Object):
def ChooseObject(self, parent_xid, what_filter=''):
chooser_id = uuid.uuid4().hex
if parent_xid > 0:
- parent = gtk.gdk.window_foreign_new(parent_xid)
+ parent = Gdk.window_foreign_new(parent_xid)
else:
parent = None
chooser = ObjectChooser(parent, what_filter)
@@ -125,8 +125,8 @@ class JournalActivity(JournalWindow):
self._setup_main_view()
self._setup_secondary_view()
- self.add_events(gtk.gdk.ALL_EVENTS_MASK |
- gtk.gdk.VISIBILITY_NOTIFY_MASK)
+ self.add_events(Gdk.EventMask.ALL_EVENTS_MASK |
+ Gdk.EventMask.VISIBILITY_NOTIFY_MASK)
self._realized_sid = self.connect('realize', self.__realize_cb)
self.connect('visibility-notify-event',
self.__visibility_notify_event_cb)
@@ -166,26 +166,26 @@ class JournalActivity(JournalWindow):
def _setup_main_view(self):
self._main_toolbox = MainToolbox()
- self._main_view = gtk.VBox()
+ self._main_view = Gtk.VBox()
self._list_view = ListView()
self._list_view.connect('detail-clicked', self.__detail_clicked_cb)
self._list_view.connect('clear-clicked', self.__clear_clicked_cb)
self._list_view.connect('volume-error', self.__volume_error_cb)
- self._main_view.pack_start(self._list_view)
+ self._main_view.pack_start(self._list_view, True, True, 0)
self._list_view.show()
self._volumes_toolbar = VolumesToolbar()
self._volumes_toolbar.connect('volume-changed',
self.__volume_changed_cb)
self._volumes_toolbar.connect('volume-error', self.__volume_error_cb)
- self._main_view.pack_start(self._volumes_toolbar, expand=False)
+ self._main_view.pack_start(self._volumes_toolbar, False, True, 0)
self._main_toolbox.connect('query-changed', self._query_changed_cb)
self._main_toolbox.set_mount_point('/')
def _setup_secondary_view(self):
- self._secondary_view = gtk.VBox()
+ self._secondary_view = Gtk.VBox()
self._detail_toolbox = DetailToolbox()
self._detail_toolbox.connect('volume-error',
@@ -193,11 +193,11 @@ class JournalActivity(JournalWindow):
self._detail_view = DetailView()
self._detail_view.connect('go-back-clicked', self.__go_back_clicked_cb)
- self._secondary_view.pack_end(self._detail_view)
+ self._secondary_view.pack_end(self._detail_view, True, True, 0)
self._detail_view.show()
def _key_press_event_cb(self, widget, event):
- keyname = gtk.gdk.keyval_name(event.keyval)
+ keyname = Gdk.keyval_name(event.keyval)
if keyname == 'Escape':
self.show_main_view()
@@ -318,14 +318,14 @@ class JournalActivity(JournalWindow):
def __window_state_event_cb(self, window, event):
logging.debug('window_state_event_cb %r', self)
- if event.changed_mask & gtk.gdk.WINDOW_STATE_ICONIFIED:
+ if event.changed_mask & Gdk.WindowState.ICONIFIED:
state = event.new_window_state
- visible = not state & gtk.gdk.WINDOW_STATE_ICONIFIED
+ visible = not state & Gdk.WindowState.ICONIFIED
self._list_view.set_is_visible(visible)
def __visibility_notify_event_cb(self, window, event):
logging.debug('visibility_notify_event_cb %r', self)
- visible = event.state != gtk.gdk.VISIBILITY_FULLY_OBSCURED
+ visible = event.get_state() != Gdk.VisibilityState.FULLY_OBSCURED
self._list_view.set_is_visible(visible)
def _check_available_space(self):
diff --git a/src/jarabe/journal/journaltoolbox.py b/src/jarabe/journal/journaltoolbox.py
index 21ba9c3..ab6294e 100644
--- a/src/jarabe/journal/journaltoolbox.py
+++ b/src/jarabe/journal/journaltoolbox.py
@@ -19,13 +19,13 @@ from gettext import gettext as _
import logging
from datetime import datetime, timedelta
import os
-import gconf
+from gi.repository import GConf
import time
-import gobject
-import gio
+from gi.repository import GObject
+from gi.repository import Gio
import glib
-import gtk
+from gi.repository import Gtk
from sugar.graphics.palette import Palette
from sugar.graphics.toolbarbox import ToolbarBox
@@ -67,7 +67,7 @@ _ACTION_MY_CLASS = 2
class MainToolbox(ToolbarBox):
__gsignals__ = {
- 'query-changed': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ 'query-changed': (GObject.SignalFlags.RUN_FIRST, None,
([object])),
}
@@ -157,7 +157,7 @@ class MainToolbox(ToolbarBox):
return with_search
def _add_widget(self, widget, expand=False):
- tool_item = gtk.ToolItem()
+ tool_item = Gtk.ToolItem()
tool_item.set_expand(expand)
tool_item.add(widget)
@@ -195,7 +195,7 @@ class MainToolbox(ToolbarBox):
property_, order = self._sorting_button.get_current_sort()
- if order == gtk.SORT_ASCENDING:
+ if order == Gtk.SortType.ASCENDING:
sign = '+'
else:
sign = '-'
@@ -237,7 +237,7 @@ class MainToolbox(ToolbarBox):
def _search_entry_activated_cb(self, search_entry):
if self._autosearch_timer:
- gobject.source_remove(self._autosearch_timer)
+ GObject.source_remove(self._autosearch_timer)
new_query = self._build_query()
if self._query != new_query:
self._query = new_query
@@ -249,8 +249,8 @@ class MainToolbox(ToolbarBox):
return
if self._autosearch_timer:
- gobject.source_remove(self._autosearch_timer)
- self._autosearch_timer = gobject.timeout_add(_AUTOSEARCH_TIMEOUT,
+ GObject.source_remove(self._autosearch_timer)
+ self._autosearch_timer = GObject.timeout_add(_AUTOSEARCH_TIMEOUT,
self._autosearch_timer_cb)
def _autosearch_timer_cb(self):
@@ -323,7 +323,7 @@ class MainToolbox(ToolbarBox):
self._what_search_combo.append_item(service_name,
activity_info.get_name(),
file_name=activity_info.get_icon())
- except glib.GError, exception:
+ except GObject.GError, exception:
logging.warning('Falling back to default icon for'
' "what" filter because %r (%r) has an'
' invalid icon: %s',
@@ -353,7 +353,7 @@ class MainToolbox(ToolbarBox):
class DetailToolbox(ToolbarBox):
__gsignals__ = {
- 'volume-error': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ 'volume-error': (GObject.SignalFlags.RUN_FIRST, None,
([str, str])),
}
@@ -368,7 +368,7 @@ class DetailToolbox(ToolbarBox):
self.toolbar.insert(self._resume, -1)
self._resume.show()
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
color = XoColor(client.get_string('/desktop/sugar/user/color'))
self._copy = ToolButton()
icon = Icon(icon_name='edit-copy', xo_color=color)
@@ -386,7 +386,7 @@ class DetailToolbox(ToolbarBox):
self._duplicate.connect('clicked', self._duplicate_clicked_cb)
self.toolbar.insert(self._duplicate, -1)
- separator = gtk.SeparatorToolItem()
+ separator = Gtk.SeparatorToolItem()
self.toolbar.insert(separator, -1)
separator.show()
@@ -425,10 +425,10 @@ class DetailToolbox(ToolbarBox):
alert.props.msg = _('Do you want to permanently erase \"%s\"?') \
% self._metadata['title']
icon = Icon(icon_name='dialog-cancel')
- alert.add_button(gtk.RESPONSE_CANCEL, _('Cancel'), icon)
+ alert.add_button(Gtk.ResponseType.CANCEL, _('Cancel'), icon)
icon.show()
ok_icon = Icon(icon_name='dialog-ok')
- alert.add_button(gtk.RESPONSE_OK, erase_string, ok_icon)
+ alert.add_button(Gtk.ResponseType.OK, erase_string, ok_icon)
ok_icon.show()
alert.connect('response', self.__erase_alert_response_cb)
journalwindow.get_journal_window().add_alert(alert)
@@ -436,7 +436,7 @@ class DetailToolbox(ToolbarBox):
def __erase_alert_response_cb(self, alert, response_id):
journalwindow.get_journal_window().remove_alert(alert)
- if response_id is gtk.RESPONSE_OK:
+ if response_id is Gtk.ResponseType.OK:
registry = bundleregistry.get_registry()
bundle = misc.get_bundle(self._metadata)
if bundle is not None and registry.is_installed(bundle):
@@ -455,24 +455,24 @@ class DetailToolbox(ToolbarBox):
clipboard_menu = ClipboardMenu(self._metadata)
clipboard_menu.set_image(Icon(icon_name='toolbar-edit',
- icon_size=gtk.ICON_SIZE_MENU))
+ icon_size=Gtk.IconSize.MENU))
clipboard_menu.connect('volume-error', self.__volume_error_cb)
palette.menu.append(clipboard_menu)
clipboard_menu.show()
if self._metadata['mountpoint'] != '/':
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
color = XoColor(client.get_string('/desktop/sugar/user/color'))
journal_menu = VolumeMenu(self._metadata, _('Journal'), '/')
journal_menu.set_image(Icon(icon_name='activity-journal',
xo_color=color,
- icon_size=gtk.ICON_SIZE_MENU))
+ icon_size=Gtk.IconSize.MENU))
journal_menu.connect('volume-error', self.__volume_error_cb)
palette.menu.append(journal_menu)
journal_menu.show()
- volume_monitor = gio.volume_monitor_get()
- icon_theme = gtk.icon_theme_get_default()
+ volume_monitor = Gio.volume_monitor_get()
+ icon_theme = Gtk.IconTheme.get_default()
for mount in volume_monitor.get_mounts():
if self._metadata['mountpoint'] == mount.get_root().get_path():
continue
@@ -481,7 +481,7 @@ class DetailToolbox(ToolbarBox):
for name in mount.get_icon().props.names:
if icon_theme.has_icon(name):
volume_menu.set_image(Icon(icon_name=name,
- icon_size=gtk.ICON_SIZE_MENU))
+ icon_size=Gtk.IconSize.MENU))
break
volume_menu.connect('volume-error', self.__volume_error_cb)
palette.menu.append(volume_menu)
@@ -518,7 +518,7 @@ class DetailToolbox(ToolbarBox):
for activity_info in misc.get_activities(self._metadata):
menu_item = MenuItem(activity_info.get_name())
menu_item.set_image(Icon(file=activity_info.get_icon(),
- icon_size=gtk.ICON_SIZE_MENU))
+ icon_size=Gtk.IconSize.MENU))
menu_item.connect('activate', self._resume_menu_item_activate_cb,
activity_info.get_bundle_id())
palette.menu.append(menu_item)
@@ -529,8 +529,8 @@ class SortingButton(ToolButton):
__gtype_name__ = 'JournalSortingButton'
__gsignals__ = {
- 'sort-property-changed': (gobject.SIGNAL_RUN_FIRST,
- gobject.TYPE_NONE,
+ 'sort-property-changed': (GObject.SignalFlags.RUN_FIRST,
+ None,
([])),
}
@@ -544,7 +544,7 @@ class SortingButton(ToolButton):
ToolButton.__init__(self)
self._property = 'timestamp'
- self._order = gtk.SORT_ASCENDING
+ self._order = Gtk.SortType.ASCENDING
self.props.tooltip = _('Sort view')
self.props.icon_name = 'view-lastedit'
@@ -561,7 +561,7 @@ class SortingButton(ToolButton):
def __sort_type_changed_cb(self, widget, property_, icon_name):
self._property = property_
#FIXME: Implement sorting order
- self._order = gtk.SORT_ASCENDING
+ self._order = Gtk.SortType.ASCENDING
self.emit('sort-property-changed')
self.props.icon_name = icon_name
diff --git a/src/jarabe/journal/keepicon.py b/src/jarabe/journal/keepicon.py
index 85b1728..2b2f069 100644
--- a/src/jarabe/journal/keepicon.py
+++ b/src/jarabe/journal/keepicon.py
@@ -14,8 +14,8 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-import gtk
-import gconf
+from gi.repository import Gtk
+from gi.repository import GConf
import logging
from sugar.graphics.icon import Icon
@@ -23,10 +23,10 @@ from sugar.graphics import style
from sugar.graphics.xocolor import XoColor
-class KeepIcon(gtk.ToggleButton):
+class KeepIcon(Gtk.ToggleButton):
def __init__(self):
- gtk.ToggleButton.__init__(self)
- self.set_relief(gtk.RELIEF_NONE)
+ GObject.GObject.__init__(self)
+ self.set_relief(Gtk.ReliefStyle.NONE)
self.set_focus_on_click(False)
self._icon = Icon(icon_name='emblem-favorite',
@@ -38,7 +38,7 @@ class KeepIcon(gtk.ToggleButton):
def __toggled_cb(self, widget):
if self.get_active():
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
color = XoColor(client.get_string('/desktop/sugar/user/color'))
self._icon.props.xo_color = color
logging.debug('KEEPICON: setting xo_color')
diff --git a/src/jarabe/journal/listmodel.py b/src/jarabe/journal/listmodel.py
index 417ff61..5ab3671 100644
--- a/src/jarabe/journal/listmodel.py
+++ b/src/jarabe/journal/listmodel.py
@@ -17,8 +17,8 @@
import logging
import simplejson
-import gobject
-import gtk
+from gi.repository import GObject
+from gi.repository import Gtk
from gettext import gettext as _
from sugar.graphics.xocolor import XoColor
@@ -34,12 +34,12 @@ DS_DBUS_INTERFACE = 'org.laptop.sugar.DataStore'
DS_DBUS_PATH = '/org/laptop/sugar/DataStore'
-class ListModel(gtk.GenericTreeModel, gtk.TreeDragSource):
+class ListModel(Gtk.GenericTreeModel, Gtk.TreeDragSource):
__gtype_name__ = 'JournalListModel'
__gsignals__ = {
- 'ready': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([])),
- 'progress': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([])),
+ 'ready': (GObject.SignalFlags.RUN_FIRST, None, ([])),
+ 'progress': (GObject.SignalFlags.RUN_FIRST, None, ([])),
}
COLUMN_UID = 0
@@ -73,7 +73,7 @@ class ListModel(gtk.GenericTreeModel, gtk.TreeDragSource):
_PAGE_SIZE = 10
def __init__(self, query):
- gobject.GObject.__init__(self)
+ GObject.GObject.__init__(self)
self._last_requested_index = None
self._cached_row = None
@@ -140,7 +140,7 @@ class ListModel(gtk.GenericTreeModel, gtk.TreeDragSource):
xo_color = misc.get_icon_color(metadata)
self._cached_row.append(xo_color)
- title = gobject.markup_escape_text(metadata.get('title',
+ title = GObject.markup_escape_text(metadata.get('title',
_('Untitled')))
self._cached_row.append('<b>%s</b>' % (title, ))
@@ -217,7 +217,7 @@ class ListModel(gtk.GenericTreeModel, gtk.TreeDragSource):
return None
def on_get_flags(self):
- return gtk.TREE_MODEL_ITERS_PERSIST | gtk.TREE_MODEL_LIST_ONLY
+ return Gtk.TREE_MODEL_ITERS_PERSIST | Gtk.TREE_MODEL_LIST_ONLY
def on_iter_children(self, iterator):
return None
diff --git a/src/jarabe/journal/listview.py b/src/jarabe/journal/listview.py
index e3f8745..f1e96cf 100644
--- a/src/jarabe/journal/listview.py
+++ b/src/jarabe/journal/listview.py
@@ -19,10 +19,10 @@ from gettext import gettext as _
import time
import glib
-import gobject
-import gtk
-import gconf
-import pango
+from gi.repository import GObject
+from gi.repository import Gtk
+from gi.repository import GConf
+from gi.repository import Pango
from sugar.graphics import style
from sugar.graphics.icon import Icon, CellRendererIcon
@@ -39,11 +39,11 @@ from jarabe.view.eventicon import EventIcon
UPDATE_INTERVAL = 300
-class TreeView(gtk.TreeView):
+class TreeView(Gtk.TreeView):
__gtype_name__ = 'JournalTreeView'
def __init__(self):
- gtk.TreeView.__init__(self)
+ GObject.GObject.__init__(self)
self.set_headers_visible(False)
self.set_enable_search(False)
@@ -54,17 +54,17 @@ class TreeView(gtk.TreeView):
if tree_model is not None:
tree_model.view_is_resizing = True
try:
- gtk.TreeView.do_size_request(self, requisition)
+ Gtk.TreeView.do_size_request(self, requisition)
finally:
if tree_model is not None:
tree_model.view_is_resizing = False
-class BaseListView(gtk.Bin):
+class BaseListView(Gtk.Bin):
__gtype_name__ = 'JournalBaseListView'
__gsignals__ = {
- 'clear-clicked': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([])),
+ 'clear-clicked': (GObject.SignalFlags.RUN_FIRST, None, ([])),
}
def __init__(self):
@@ -74,23 +74,23 @@ class BaseListView(gtk.Bin):
self._last_progress_bar_pulse = None
self._scroll_position = 0.
- gobject.GObject.__init__(self)
+ GObject.GObject.__init__(self)
self.connect('map', self.__map_cb)
self.connect('unrealize', self.__unrealize_cb)
self.connect('destroy', self.__destroy_cb)
- self._scrolled_window = gtk.ScrolledWindow()
- self._scrolled_window.set_policy(gtk.POLICY_NEVER,
- gtk.POLICY_AUTOMATIC)
+ self._scrolled_window = Gtk.ScrolledWindow()
+ self._scrolled_window.set_policy(Gtk.PolicyType.NEVER,
+ Gtk.PolicyType.AUTOMATIC)
self.add(self._scrolled_window)
self._scrolled_window.show()
self.tree_view = TreeView()
selection = self.tree_view.get_selection()
- selection.set_mode(gtk.SELECTION_NONE)
+ selection.set_mode(Gtk.SelectionMode.NONE)
self.tree_view.props.fixed_height_mode = True
- self.tree_view.modify_base(gtk.STATE_NORMAL,
+ self.tree_view.modify_base(Gtk.StateType.NORMAL,
style.COLOR_WHITE.get_gdk_color())
self._scrolled_window.add(self.tree_view)
self.tree_view.show()
@@ -101,10 +101,10 @@ class BaseListView(gtk.Bin):
self.sort_column = None
self._add_columns()
- self.tree_view.enable_model_drag_source(gtk.gdk.BUTTON1_MASK,
+ self.tree_view.enable_model_drag_source(Gdk.ModifierType.BUTTON1_MASK,
[('text/uri-list', 0, 0),
('journal-object-id', 0, 0)],
- gtk.gdk.ACTION_COPY)
+ Gdk.DragAction.COPY)
# Auto-update stuff
self._fully_obscured = True
@@ -139,40 +139,40 @@ class BaseListView(gtk.Bin):
cell_favorite = CellRendererFavorite(self.tree_view)
cell_favorite.connect('clicked', self.__favorite_clicked_cb)
- column = gtk.TreeViewColumn()
- column.props.sizing = gtk.TREE_VIEW_COLUMN_FIXED
+ column = Gtk.TreeViewColumn()
+ column.props.sizing = Gtk.TreeViewColumnSizing.FIXED
column.props.fixed_width = cell_favorite.props.width
- column.pack_start(cell_favorite)
+ column.pack_start(cell_favorite, True)
column.set_cell_data_func(cell_favorite, self.__favorite_set_data_cb)
self.tree_view.append_column(column)
self.cell_icon = CellRendererActivityIcon(self.tree_view)
- column = gtk.TreeViewColumn()
- column.props.sizing = gtk.TREE_VIEW_COLUMN_FIXED
+ column = Gtk.TreeViewColumn()
+ column.props.sizing = Gtk.TreeViewColumnSizing.FIXED
column.props.fixed_width = self.cell_icon.props.width
- column.pack_start(self.cell_icon)
+ column.pack_start(self.cell_icon, True)
column.add_attribute(self.cell_icon, 'file-name',
ListModel.COLUMN_ICON)
column.add_attribute(self.cell_icon, 'xo-color',
ListModel.COLUMN_ICON_COLOR)
self.tree_view.append_column(column)
- self.cell_title = gtk.CellRendererText()
- self.cell_title.props.ellipsize = pango.ELLIPSIZE_MIDDLE
+ self.cell_title = Gtk.CellRendererText()
+ self.cell_title.props.ellipsize = Pango.EllipsizeMode.MIDDLE
self.cell_title.props.ellipsize_set = True
- self._title_column = gtk.TreeViewColumn()
- self._title_column.props.sizing = gtk.TREE_VIEW_COLUMN_FIXED
+ self._title_column = Gtk.TreeViewColumn()
+ self._title_column.props.sizing = Gtk.TreeViewColumnSizing.FIXED
self._title_column.props.expand = True
self._title_column.props.clickable = True
- self._title_column.pack_start(self.cell_title)
+ self._title_column.pack_start(self.cell_title, True)
self._title_column.add_attribute(self.cell_title, 'markup',
ListModel.COLUMN_TITLE)
self.tree_view.append_column(self._title_column)
- buddies_column = gtk.TreeViewColumn()
- buddies_column.props.sizing = gtk.TREE_VIEW_COLUMN_FIXED
+ buddies_column = Gtk.TreeViewColumn()
+ buddies_column.props.sizing = Gtk.TreeViewColumnSizing.FIXED
self.tree_view.append_column(buddies_column)
for column_index in [ListModel.COLUMN_BUDDY_1,
@@ -180,21 +180,21 @@ class BaseListView(gtk.Bin):
ListModel.COLUMN_BUDDY_3]:
cell_icon = CellRendererBuddy(self.tree_view,
column_index=column_index)
- buddies_column.pack_start(cell_icon)
+ buddies_column.pack_start(cell_icon, True)
buddies_column.props.fixed_width += cell_icon.props.width
buddies_column.add_attribute(cell_icon, 'buddy', column_index)
- buddies_column.set_cell_data_func(cell_icon,
+ return;buddies_column.set_cell_data_func(cell_icon,
self.__buddies_set_data_cb)
- cell_progress = gtk.CellRendererProgress()
+ cell_progress = Gtk.CellRendererProgress()
cell_progress.props.ypad = style.GRID_CELL_SIZE / 4
- buddies_column.pack_start(cell_progress)
+ buddies_column.pack_start(cell_progress, True)
buddies_column.add_attribute(cell_progress, 'value',
ListModel.COLUMN_PROGRESS)
- buddies_column.set_cell_data_func(cell_progress,
+ return;buddies_column.set_cell_data_func(cell_progress,
self.__progress_data_cb)
- cell_text = gtk.CellRendererText()
+ cell_text = Gtk.CellRendererText()
cell_text.props.xalign = 1
# Measure the required width for a date in the form of "10 hours, 10
@@ -203,13 +203,13 @@ class BaseListView(gtk.Bin):
date = util.timestamp_to_elapsed_string(timestamp)
date_width = self._get_width_for_string(date)
- self.sort_column = gtk.TreeViewColumn()
- self.sort_column.props.sizing = gtk.TREE_VIEW_COLUMN_FIXED
+ self.sort_column = Gtk.TreeViewColumn()
+ self.sort_column.props.sizing = Gtk.TreeViewColumnSizing.FIXED
self.sort_column.props.fixed_width = date_width
self.sort_column.set_alignment(1)
self.sort_column.props.resizable = True
self.sort_column.props.clickable = True
- self.sort_column.pack_start(cell_text)
+ self.sort_column.pack_start(cell_text, True)
self.sort_column.add_attribute(cell_text, 'text',
ListModel.COLUMN_TIMESTAMP)
self.tree_view.append_column(self.sort_column)
@@ -218,19 +218,19 @@ class BaseListView(gtk.Bin):
# Add some extra margin
text = text + 'aaaaa'
- widget = gtk.Label('')
+ widget = Gtk.Label(label='')
context = widget.get_pango_context()
- layout = pango.Layout(context)
+ layout = Pango.Layout(context)
layout.set_text(text)
width, height_ = layout.get_size()
- return pango.PIXELS(width)
+ return Pango.PIXELS(width)
def do_size_allocate(self, allocation):
self.allocation = allocation
- self.child.size_allocate(allocation)
+ self.get_child().size_allocate(allocation)
def do_size_request(self, requisition):
- requisition.width, requisition.height = self.child.size_request()
+ requisition.width, requisition.height = self.get_child().size_request()
def __destroy_cb(self, widget):
if self._model is not None:
@@ -247,7 +247,7 @@ class BaseListView(gtk.Bin):
def __favorite_set_data_cb(self, column, cell, tree_model, tree_iter):
favorite = tree_model[tree_iter][ListModel.COLUMN_FAVORITE]
if favorite:
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
color = XoColor(client.get_string('/desktop/sugar/user/color'))
cell.props.xo_color = color
else:
@@ -352,12 +352,12 @@ class BaseListView(gtk.Bin):
self._last_progress_bar_pulse = time.time()
def _start_progress_bar(self):
- alignment = gtk.Alignment(xalign=0.5, yalign=0.5, xscale=0.5)
- self.remove(self.child)
+ alignment = Gtk.Alignment.new(xalign=0.5, yalign=0.5, xscale=0.5)
+ self.remove(self.get_child())
self.add(alignment)
alignment.show()
- self._progress_bar = gtk.ProgressBar()
+ self._progress_bar = Gtk.ProgressBar()
self._progress_bar.props.pulse_step = 0.01
self._last_progress_bar_pulse = time.time()
alignment.add(self._progress_bar)
@@ -366,22 +366,22 @@ class BaseListView(gtk.Bin):
def _stop_progress_bar(self):
if self._progress_bar is None:
return
- self.remove(self.child)
+ self.remove(self.get_child())
self.add(self._scrolled_window)
self._progress_bar = None
def _show_message(self, message, show_clear_query=False):
- self.remove(self.child)
+ self.remove(self.get_child())
- background_box = gtk.EventBox()
- background_box.modify_bg(gtk.STATE_NORMAL,
+ background_box = Gtk.EventBox()
+ background_box.modify_bg(Gtk.StateType.NORMAL,
style.COLOR_WHITE.get_gdk_color())
self.add(background_box)
- alignment = gtk.Alignment(0.5, 0.5, 0.1, 0.1)
+ alignment = Gtk.Alignment.new(0.5, 0.5, 0.1, 0.1)
background_box.add(alignment)
- box = gtk.VBox()
+ box = Gtk.VBox()
alignment.add(box)
icon = EventIcon(pixel_size=style.LARGE_ICON_SIZE,
@@ -390,17 +390,17 @@ class BaseListView(gtk.Bin):
fill_color=style.COLOR_TRANSPARENT.get_svg())
box.pack_start(icon, expand=True, fill=False)
- label = gtk.Label()
+ label = Gtk.Label()
color = style.COLOR_BUTTON_GREY.get_html()
label.set_markup('<span weight="bold" color="%s">%s</span>' % ( \
color, glib.markup_escape_text(message)))
box.pack_start(label, expand=True, fill=False)
if show_clear_query:
- button = gtk.Button(label=_('Clear search'))
+ button = Gtk.Button(label=_('Clear search'))
button.connect('clicked', self.__clear_button_clicked_cb)
button.props.image = Icon(icon_name='dialog-cancel',
- icon_size=gtk.ICON_SIZE_BUTTON)
+ icon_size=Gtk.IconSize.BUTTON)
box.pack_start(button, expand=True, fill=False)
background_box.show_all()
@@ -409,14 +409,14 @@ class BaseListView(gtk.Bin):
self.emit('clear-clicked')
def _clear_message(self):
- if self.child == self._scrolled_window:
+ if self.get_child() == self._scrolled_window:
return
- self.remove(self.child)
+ self.remove(self.get_child())
self.add(self._scrolled_window)
self._scrolled_window.show()
def update_dates(self):
- if not self.tree_view.flags() & gtk.REALIZED:
+ if not self.tree_view.get_realized():
return
visible_range = self.tree_view.get_visible_range()
if visible_range is None:
@@ -456,13 +456,13 @@ class BaseListView(gtk.Bin):
if self._update_dates_timer is None:
logging.debug('Adding date updating timer')
self._update_dates_timer = \
- gobject.timeout_add_seconds(UPDATE_INTERVAL,
+ GObject.timeout_add_seconds(UPDATE_INTERVAL,
self.__update_dates_timer_cb)
else:
self._fully_obscured = True
if self._update_dates_timer is not None:
logging.debug('Remove date updating timer')
- gobject.source_remove(self._update_dates_timer)
+ GObject.source_remove(self._update_dates_timer)
self._update_dates_timer = None
def __update_dates_timer_cb(self):
@@ -474,9 +474,9 @@ class ListView(BaseListView):
__gtype_name__ = 'JournalListView'
__gsignals__ = {
- 'detail-clicked': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ 'detail-clicked': (GObject.SignalFlags.RUN_FIRST, None,
([object])),
- 'volume-error': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ 'volume-error': (GObject.SignalFlags.RUN_FIRST, None,
([str, str])),
}
@@ -498,10 +498,10 @@ class ListView(BaseListView):
cell_detail = CellRendererDetail(self.tree_view)
cell_detail.connect('clicked', self.__detail_cell_clicked_cb)
- column = gtk.TreeViewColumn()
- column.props.sizing = gtk.TREE_VIEW_COLUMN_FIXED
+ column = Gtk.TreeViewColumn()
+ column.props.sizing = Gtk.TreeViewColumnSizing.FIXED
column.props.fixed_width = cell_detail.props.width
- column.pack_start(cell_detail)
+ column.pack_start(cell_detail, True)
self.tree_view.append_column(column)
def __drag_begin_cb(self, widget, drag_context):
@@ -564,8 +564,8 @@ class CellRendererFavorite(CellRendererIcon):
self.props.height = style.GRID_CELL_SIZE
self.props.size = style.SMALL_ICON_SIZE
self.props.icon_name = 'emblem-favorite'
- self.props.mode = gtk.CELL_RENDERER_MODE_ACTIVATABLE
- client = gconf.client_get_default()
+ self.props.mode = Gtk.CellRendererMode.ACTIVATABLE
+ client = GConf.Client.get_default()
prelit_color = XoColor(client.get_string('/desktop/sugar/user/color'))
self.props.prelit_stroke_color = prelit_color.get_stroke_color()
self.props.prelit_fill_color = prelit_color.get_fill_color()
@@ -581,7 +581,7 @@ class CellRendererDetail(CellRendererIcon):
self.props.height = style.GRID_CELL_SIZE
self.props.size = style.SMALL_ICON_SIZE
self.props.icon_name = 'go-right'
- self.props.mode = gtk.CELL_RENDERER_MODE_ACTIVATABLE
+ self.props.mode = Gtk.CellRendererMode.ACTIVATABLE
self.props.stroke_color = style.COLOR_TRANSPARENT.get_svg()
self.props.fill_color = style.COLOR_BUTTON_GREY.get_svg()
self.props.prelit_stroke_color = style.COLOR_TRANSPARENT.get_svg()
@@ -592,9 +592,9 @@ class CellRendererActivityIcon(CellRendererIcon):
__gtype_name__ = 'JournalCellRendererActivityIcon'
__gsignals__ = {
- 'detail-clicked': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ 'detail-clicked': (GObject.SignalFlags.RUN_FIRST, None,
([str])),
- 'volume-error': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ 'volume-error': (GObject.SignalFlags.RUN_FIRST, None,
([str, str])),
}
@@ -606,7 +606,7 @@ class CellRendererActivityIcon(CellRendererIcon):
self.props.width = style.GRID_CELL_SIZE
self.props.height = style.GRID_CELL_SIZE
self.props.size = style.STANDARD_ICON_SIZE
- self.props.mode = gtk.CELL_RENDERER_MODE_ACTIVATABLE
+ self.props.mode = Gtk.CellRendererMode.ACTIVATABLE
self.tree_view = tree_view
@@ -633,7 +633,7 @@ class CellRendererActivityIcon(CellRendererIcon):
def set_show_palette(self, show_palette):
self._show_palette = show_palette
- show_palette = gobject.property(type=bool, default=True,
+ show_palette = GObject.property(type=bool, default=True,
setter=set_show_palette)
@@ -646,7 +646,7 @@ class CellRendererBuddy(CellRendererIcon):
self.props.width = style.STANDARD_ICON_SIZE
self.props.height = style.STANDARD_ICON_SIZE
self.props.size = style.STANDARD_ICON_SIZE
- self.props.mode = gtk.CELL_RENDERER_MODE_ACTIVATABLE
+ self.props.mode = Gtk.CellRendererMode.ACTIVATABLE
self.tree_view = tree_view
self._model_column_index = column_index
@@ -669,4 +669,4 @@ class CellRendererBuddy(CellRendererIcon):
self.props.icon_name = 'computer-xo'
self.props.xo_color = xo_color
- buddy = gobject.property(type=object, setter=set_buddy)
+ buddy = GObject.property(type=object, setter=set_buddy)
diff --git a/src/jarabe/journal/misc.py b/src/jarabe/journal/misc.py
index 1431d5f..ff92d65 100644
--- a/src/jarabe/journal/misc.py
+++ b/src/jarabe/journal/misc.py
@@ -19,9 +19,9 @@ import time
import os
from gettext import gettext as _
-import gio
-import gconf
-import gtk
+from gi.repository import Gio
+from gi.repository import GConf
+from gi.repository import Gtk
from sugar.activity import activityfactory
from sugar.activity.activityhandle import ActivityHandle
@@ -49,7 +49,7 @@ def _get_icon_for_mime(mime_type):
if file_name is not None:
return file_name
- icons = gio.content_type_get_icon(mime_type)
+ icons = Gio.content_type_get_icon(mime_type)
logging.debug('icons for this file: %r', icons.props.names)
for icon_name in icons.props.names:
file_name = get_icon_file_name(icon_name)
@@ -255,11 +255,11 @@ def launch(bundle, activity_id=None, object_id=None, uri=None, color=None,
activity = shell_model.get_activity_by_id(activity_id)
if activity is not None:
logging.debug('re-launch %r', activity.get_window())
- activity.get_window().activate(gtk.get_current_event_time())
+ activity.get_window().activate(Gtk.get_current_event_time())
return
if color is None:
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
color = XoColor(client.get_string('/desktop/sugar/user/color'))
launcher.add_launcher(activity_id, bundle.get_icon(), color)
@@ -279,12 +279,12 @@ def _downgrade_option_alert(bundle):
def _downgrade_alert_response_cb(alert, response_id, bundle):
- if response_id is gtk.RESPONSE_OK:
+ if response_id is Gtk.ResponseType.OK:
journalwindow.get_journal_window().remove_alert(alert)
registry = bundleregistry.get_registry()
registry.install(bundle, force_downgrade=True)
_launch_bundle(bundle)
- elif response_id is gtk.RESPONSE_CANCEL:
+ elif response_id is Gtk.ResponseType.CANCEL:
journalwindow.get_journal_window().remove_alert(alert)
@@ -309,7 +309,7 @@ def is_bundle(metadata):
def get_icon_color(metadata):
if metadata is None or not 'icon-color' in metadata:
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
return XoColor(client.get_string('/desktop/sugar/user/color'))
else:
return XoColor(metadata['icon-color'])
diff --git a/src/jarabe/journal/modalalert.py b/src/jarabe/journal/modalalert.py
index 6880941..8b93b21 100644
--- a/src/jarabe/journal/modalalert.py
+++ b/src/jarabe/journal/modalalert.py
@@ -14,42 +14,42 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-import gtk
+from gi.repository import Gtk
from gettext import gettext as _
-import gconf
+from gi.repository import GConf
from sugar.graphics.icon import Icon
from sugar.graphics import style
from sugar.graphics.xocolor import XoColor
-class ModalAlert(gtk.Window):
+class ModalAlert(Gtk.Window):
__gtype_name__ = 'SugarModalAlert'
def __init__(self):
- gtk.Window.__init__(self)
+ GObject.GObject.__init__(self)
self.set_border_width(style.LINE_WIDTH)
offset = style.GRID_CELL_SIZE
- width = gtk.gdk.screen_width() - offset * 2
- height = gtk.gdk.screen_height() - offset * 2
+ width = Gdk.Screen.width() - offset * 2
+ height = Gdk.Screen.height() - offset * 2
self.set_size_request(width, height)
- self.set_position(gtk.WIN_POS_CENTER_ALWAYS)
+ self.set_position(Gtk.WindowPosition.CENTER_ALWAYS)
self.set_decorated(False)
self.set_resizable(False)
self.set_modal(True)
- self._main_view = gtk.EventBox()
- self._vbox = gtk.VBox()
+ self._main_view = Gtk.EventBox()
+ self._vbox = Gtk.VBox()
self._vbox.set_spacing(style.DEFAULT_SPACING)
self._vbox.set_border_width(style.GRID_CELL_SIZE * 2)
- self._main_view.modify_bg(gtk.STATE_NORMAL,
+ self._main_view.modify_bg(Gtk.StateType.NORMAL,
style.COLOR_BLACK.get_gdk_color())
self._main_view.add(self._vbox)
self._vbox.show()
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
color = XoColor(client.get_string('/desktop/sugar/user/color'))
icon = Icon(icon_name='activity-journal',
@@ -58,25 +58,25 @@ class ModalAlert(gtk.Window):
self._vbox.pack_start(icon, False)
icon.show()
- self._title = gtk.Label()
- self._title.modify_fg(gtk.STATE_NORMAL,
+ self._title = Gtk.Label()
+ self._title.modify_fg(Gtk.StateType.NORMAL,
style.COLOR_WHITE.get_gdk_color())
self._title.set_markup('<b>%s</b>' % _('Your Journal is full'))
self._vbox.pack_start(self._title, False)
self._title.show()
- self._message = gtk.Label(_('Please delete some old Journal'
+ self._message = Gtk.Label(label=_('Please delete some old Journal'
' entries to make space for new ones.'))
- self._message.modify_fg(gtk.STATE_NORMAL,
+ self._message.modify_fg(Gtk.StateType.NORMAL,
style.COLOR_WHITE.get_gdk_color())
self._vbox.pack_start(self._message, False)
self._message.show()
- alignment = gtk.Alignment(xalign=0.5, yalign=0.5)
- self._vbox.pack_start(alignment, expand=False)
+ alignment = Gtk.Alignment.new(xalign=0.5, yalign=0.5)
+ self._vbox.pack_start(alignment, False, True, 0)
alignment.show()
- self._show_journal = gtk.Button()
+ self._show_journal = Gtk.Button()
self._show_journal.set_label(_('Show Journal'))
alignment.add(self._show_journal)
self._show_journal.show()
@@ -88,7 +88,7 @@ class ModalAlert(gtk.Window):
self.connect('realize', self.__realize_cb)
def __realize_cb(self, widget):
- self.window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DIALOG)
+ self.set_type_hint(Gdk.WindowTypeHint.DIALOG)
self.window.set_accept_focus(True)
def __show_journal_cb(self, button):
diff --git a/src/jarabe/journal/model.py b/src/jarabe/journal/model.py
index 5285a7c..b052542 100644
--- a/src/jarabe/journal/model.py
+++ b/src/jarabe/journal/model.py
@@ -28,10 +28,10 @@ from operator import itemgetter
import simplejson
from gettext import gettext as _
-import gobject
+from gi.repository import GObject
import dbus
-import gio
-import gconf
+from gi.repository import Gio
+from gi.repository import GConf
from sugar import dispatch
from sugar import mime
@@ -269,7 +269,7 @@ class InplaceResultSet(BaseResultSet):
self._pending_directories = [self._mount_point]
self._visited_directories = []
self._pending_files = []
- gobject.idle_add(self._scan)
+ GObject.idle_add(self._scan)
def stop(self):
self._stopped = True
@@ -394,7 +394,7 @@ class InplaceResultSet(BaseResultSet):
return
if self._mime_types:
- mime_type = gio.content_type_guess(filename=full_path)
+ mime_type = Gio.content_type_guess(filename=full_path)
if mime_type not in self._mime_types:
return
@@ -440,7 +440,7 @@ def _get_file_metadata(path, stat, fetch_preview=True):
'title': os.path.basename(path),
'timestamp': stat.st_mtime,
'filesize': stat.st_size,
- 'mime_type': gio.content_type_guess(filename=path),
+ 'mime_type': Gio.content_type_guess(filename=path),
'activity': '',
'activity_id': '',
'icon-color': '#000000,#ffffff',
@@ -619,7 +619,7 @@ def copy(metadata, mount_point):
"""
metadata = get(metadata['uid'])
if mount_point == '/' and metadata['icon-color'] == '#000000,#ffffff':
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
metadata['icon-color'] = client.get_string('/desktop/sugar/user/color')
file_path = get_file(metadata['uid'])
if file_path is None:
diff --git a/src/jarabe/journal/objectchooser.py b/src/jarabe/journal/objectchooser.py
index 175aa0f..c830005 100644
--- a/src/jarabe/journal/objectchooser.py
+++ b/src/jarabe/journal/objectchooser.py
@@ -17,9 +17,9 @@
from gettext import gettext as _
import logging
-import gobject
-import gtk
-import wnck
+from gi.repository import GObject
+from gi.repository import Gtk
+from gi.repository import Wnck
from sugar.graphics import style
from sugar.graphics.toolbutton import ToolButton
@@ -30,24 +30,24 @@ from jarabe.journal.journaltoolbox import MainToolbox
from jarabe.journal.volumestoolbar import VolumesToolbar
-class ObjectChooser(gtk.Window):
+class ObjectChooser(Gtk.Window):
__gtype_name__ = 'ObjectChooser'
__gsignals__ = {
- 'response': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([int])),
+ 'response': (GObject.SignalFlags.RUN_FIRST, None, ([int])),
}
def __init__(self, parent=None, what_filter=''):
- gtk.Window.__init__(self)
- self.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DIALOG)
+ GObject.GObject.__init__(self)
+ self.set_type_hint(Gdk.WindowTypeHint.DIALOG)
self.set_decorated(False)
- self.set_position(gtk.WIN_POS_CENTER_ALWAYS)
+ self.set_position(Gtk.WindowPosition.CENTER_ALWAYS)
self.set_border_width(style.LINE_WIDTH)
self._selected_object_id = None
- self.add_events(gtk.gdk.VISIBILITY_NOTIFY_MASK)
+ self.add_events(Gdk.EventMask.VISIBILITY_NOTIFY_MASK)
self.connect('visibility-notify-event',
self.__visibility_notify_event_cb)
self.connect('delete-event', self.__delete_event_cb)
@@ -58,10 +58,10 @@ class ObjectChooser(gtk.Window):
else:
self.connect('realize', self.__realize_cb, parent)
- screen = wnck.screen_get_default()
+ screen = Wnck.Screen.get_default()
screen.connect('window-closed', self.__window_closed_cb, parent)
- vbox = gtk.VBox()
+ vbox = Gtk.VBox()
self.add(vbox)
vbox.show()
@@ -70,35 +70,35 @@ class ObjectChooser(gtk.Window):
title_box.close_button.connect('clicked',
self.__close_button_clicked_cb)
title_box.set_size_request(-1, style.GRID_CELL_SIZE)
- vbox.pack_start(title_box, expand=False)
+ vbox.pack_start(title_box, False, True, 0)
title_box.show()
- separator = gtk.HSeparator()
- vbox.pack_start(separator, expand=False)
+ separator = Gtk.HSeparator()
+ vbox.pack_start(separator, False, True, 0)
separator.show()
self._toolbar = MainToolbox()
self._toolbar.connect('query-changed', self.__query_changed_cb)
self._toolbar.set_size_request(-1, style.GRID_CELL_SIZE)
- vbox.pack_start(self._toolbar, expand=False)
+ vbox.pack_start(self._toolbar, False, True, 0)
self._toolbar.show()
self._list_view = ChooserListView()
self._list_view.connect('entry-activated', self.__entry_activated_cb)
- vbox.pack_start(self._list_view)
+ vbox.pack_start(self._list_view, True, True, 0)
self._list_view.show()
self._toolbar.set_mount_point('/')
- width = gtk.gdk.screen_width() - style.GRID_CELL_SIZE * 2
- height = gtk.gdk.screen_height() - style.GRID_CELL_SIZE * 2
+ width = Gdk.Screen.width() - style.GRID_CELL_SIZE * 2
+ height = Gdk.Screen.height() - style.GRID_CELL_SIZE * 2
self.set_size_request(width, height)
if what_filter:
self._toolbar.set_what_filter(what_filter)
def __realize_cb(self, chooser, parent):
- self.window.set_transient_for(parent)
+ self.set_transient_for(parent)
# TODO: Should we disconnect the signal here?
def __window_closed_cb(self, screen, window, parent):
@@ -107,18 +107,18 @@ class ObjectChooser(gtk.Window):
def __entry_activated_cb(self, list_view, uid):
self._selected_object_id = uid
- self.emit('response', gtk.RESPONSE_ACCEPT)
+ self.emit('response', Gtk.ResponseType.ACCEPT)
def __delete_event_cb(self, chooser, event):
- self.emit('response', gtk.RESPONSE_DELETE_EVENT)
+ self.emit('response', Gtk.ResponseType.DELETE_EVENT)
def __key_press_event_cb(self, widget, event):
- keyname = gtk.gdk.keyval_name(event.keyval)
+ keyname = Gdk.keyval_name(event.keyval)
if keyname == 'Escape':
- self.emit('response', gtk.RESPONSE_DELETE_EVENT)
+ self.emit('response', Gtk.ResponseType.DELETE_EVENT)
def __close_button_clicked_cb(self, button):
- self.emit('response', gtk.RESPONSE_DELETE_EVENT)
+ self.emit('response', Gtk.ResponseType.DELETE_EVENT)
def get_selected_object_id(self):
return self._selected_object_id
@@ -132,7 +132,7 @@ class ObjectChooser(gtk.Window):
def __visibility_notify_event_cb(self, window, event):
logging.debug('visibility_notify_event_cb %r', self)
- visible = event.state == gtk.gdk.VISIBILITY_FULLY_OBSCURED
+ visible = event.get_state() == Gdk.VisibilityState.FULLY_OBSCURED
self._list_view.set_is_visible(visible)
@@ -142,7 +142,7 @@ class TitleBox(VolumesToolbar):
def __init__(self):
VolumesToolbar.__init__(self)
- label = gtk.Label()
+ label = Gtk.Label()
label.set_markup('<b>%s</b>' % _('Choose an object'))
label.set_alignment(0, 0.5)
self._add_widget(label, expand=True)
@@ -153,7 +153,7 @@ class TitleBox(VolumesToolbar):
self.close_button.show()
def _add_widget(self, widget, expand=False):
- tool_item = gtk.ToolItem()
+ tool_item = Gtk.ToolItem()
tool_item.set_expand(expand)
tool_item.add(widget)
@@ -167,8 +167,8 @@ class ChooserListView(BaseListView):
__gtype_name__ = 'ChooserListView'
__gsignals__ = {
- 'entry-activated': (gobject.SIGNAL_RUN_FIRST,
- gobject.TYPE_NONE,
+ 'entry-activated': (GObject.SignalFlags.RUN_FIRST,
+ None,
([str])),
}
diff --git a/src/jarabe/journal/palettes.py b/src/jarabe/journal/palettes.py
index f0d686f..01743d6 100644
--- a/src/jarabe/journal/palettes.py
+++ b/src/jarabe/journal/palettes.py
@@ -18,10 +18,10 @@ from gettext import gettext as _
import logging
import os
-import gobject
-import gtk
-import gconf
-import gio
+from gi.repository import GObject
+from gi.repository import Gtk
+from gi.repository import GConf
+from gi.repository import Gio
import glib
from sugar.graphics import style
@@ -45,9 +45,9 @@ class ObjectPalette(Palette):
__gtype_name__ = 'ObjectPalette'
__gsignals__ = {
- 'detail-clicked': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ 'detail-clicked': (GObject.SignalFlags.RUN_FIRST, None,
([str])),
- 'volume-error': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ 'volume-error': (GObject.SignalFlags.RUN_FIRST, None,
([str, str])),
}
@@ -55,13 +55,13 @@ class ObjectPalette(Palette):
self._metadata = metadata
- activity_icon = Icon(icon_size=gtk.ICON_SIZE_LARGE_TOOLBAR)
+ activity_icon = Icon(icon_size=Gtk.IconSize.LARGE_TOOLBAR)
activity_icon.props.file = misc.get_icon_name(metadata)
color = misc.get_icon_color(metadata)
activity_icon.props.xo_color = color
if 'title' in metadata:
- title = gobject.markup_escape_text(metadata['title'])
+ title = GObject.markup_escape_text(metadata['title'])
else:
title = glib.markup_escape_text(_('Untitled'))
@@ -94,7 +94,7 @@ class ObjectPalette(Palette):
menu_item = MenuItem(_('Copy to'))
icon = Icon(icon_name='edit-copy', xo_color=color,
- icon_size=gtk.ICON_SIZE_MENU)
+ icon_size=Gtk.IconSize.MENU)
menu_item.set_image(icon)
self.menu.append(menu_item)
menu_item.show()
@@ -105,7 +105,7 @@ class ObjectPalette(Palette):
if self._metadata['mountpoint'] == '/':
menu_item = MenuItem(_('Duplicate'))
icon = Icon(icon_name='edit-duplicate', xo_color=color,
- icon_size=gtk.ICON_SIZE_MENU)
+ icon_size=Gtk.IconSize.MENU)
menu_item.set_image(icon)
menu_item.connect('activate', self.__duplicate_activate_cb)
self.menu.append(menu_item)
@@ -150,10 +150,10 @@ class ObjectPalette(Palette):
alert.props.msg = _('Do you want to permanently erase \"%s\"?') \
% self._metadata['title']
icon = Icon(icon_name='dialog-cancel')
- alert.add_button(gtk.RESPONSE_CANCEL, _('Cancel'), icon)
+ alert.add_button(Gtk.ResponseType.CANCEL, _('Cancel'), icon)
icon.show()
ok_icon = Icon(icon_name='dialog-ok')
- alert.add_button(gtk.RESPONSE_OK, erase_string, ok_icon)
+ alert.add_button(Gtk.ResponseType.OK, erase_string, ok_icon)
ok_icon.show()
alert.connect('response', self.__erase_alert_response_cb)
journalwindow.get_journal_window().add_alert(alert)
@@ -161,7 +161,7 @@ class ObjectPalette(Palette):
def __erase_alert_response_cb(self, alert, response_id):
journalwindow.get_journal_window().remove_alert(alert)
- if response_id is gtk.RESPONSE_OK:
+ if response_id is Gtk.ResponseType.OK:
model.delete(self._metadata['uid'])
def __detail_activate_cb(self, menu_item):
@@ -192,39 +192,39 @@ class ObjectPalette(Palette):
mime_type)
-class CopyMenu(gtk.Menu):
+class CopyMenu(Gtk.Menu):
__gtype_name__ = 'JournalCopyMenu'
__gsignals__ = {
- 'volume-error': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ 'volume-error': (GObject.SignalFlags.RUN_FIRST, None,
([str, str])),
}
def __init__(self, metadata):
- gobject.GObject.__init__(self)
+ GObject.GObject.__init__(self)
self._metadata = metadata
clipboard_menu = ClipboardMenu(self._metadata)
clipboard_menu.set_image(Icon(icon_name='toolbar-edit',
- icon_size=gtk.ICON_SIZE_MENU))
+ icon_size=Gtk.IconSize.MENU))
clipboard_menu.connect('volume-error', self.__volume_error_cb)
self.append(clipboard_menu)
clipboard_menu.show()
if self._metadata['mountpoint'] != '/':
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
color = XoColor(client.get_string('/desktop/sugar/user/color'))
journal_menu = VolumeMenu(self._metadata, _('Journal'), '/')
journal_menu.set_image(Icon(icon_name='activity-journal',
xo_color=color,
- icon_size=gtk.ICON_SIZE_MENU))
+ icon_size=Gtk.IconSize.MENU))
journal_menu.connect('volume-error', self.__volume_error_cb)
self.append(journal_menu)
journal_menu.show()
- volume_monitor = gio.volume_monitor_get()
- icon_theme = gtk.icon_theme_get_default()
+ volume_monitor = Gio.volume_monitor_get()
+ icon_theme = Gtk.IconTheme.get_default()
for mount in volume_monitor.get_mounts():
if self._metadata['mountpoint'] == mount.get_root().get_path():
continue
@@ -233,7 +233,7 @@ class CopyMenu(gtk.Menu):
for name in mount.get_icon().props.names:
if icon_theme.has_icon(name):
volume_menu.set_image(Icon(icon_name=name,
- icon_size=gtk.ICON_SIZE_MENU))
+ icon_size=Gtk.IconSize.MENU))
break
volume_menu.connect('volume-error', self.__volume_error_cb)
self.append(volume_menu)
@@ -247,7 +247,7 @@ class VolumeMenu(MenuItem):
__gtype_name__ = 'JournalVolumeMenu'
__gsignals__ = {
- 'volume-error': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ 'volume-error': (GObject.SignalFlags.RUN_FIRST, None,
([str, str])),
}
@@ -279,7 +279,7 @@ class ClipboardMenu(MenuItem):
__gtype_name__ = 'JournalClipboardMenu'
__gsignals__ = {
- 'volume-error': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ 'volume-error': (GObject.SignalFlags.RUN_FIRST, None,
([str, str])),
}
@@ -299,7 +299,7 @@ class ClipboardMenu(MenuItem):
_('Warning'))
return
- clipboard = gtk.Clipboard()
+ clipboard = Gtk.Clipboard()
clipboard.set_with_data([('text/uri-list', 0, 0)],
self.__clipboard_get_func_cb,
self.__clipboard_clear_func_cb)
@@ -315,16 +315,16 @@ class ClipboardMenu(MenuItem):
self._temp_file_path = None
-class FriendsMenu(gtk.Menu):
+class FriendsMenu(Gtk.Menu):
__gtype_name__ = 'JournalFriendsMenu'
__gsignals__ = {
- 'friend-selected': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ 'friend-selected': (GObject.SignalFlags.RUN_FIRST, None,
([object])),
}
def __init__(self):
- gobject.GObject.__init__(self)
+ GObject.GObject.__init__(self)
if filetransfer.file_transfer_available():
friends_model = friends.get_model()
@@ -353,18 +353,18 @@ class FriendsMenu(gtk.Menu):
self.emit('friend-selected', friend)
-class StartWithMenu(gtk.Menu):
+class StartWithMenu(Gtk.Menu):
__gtype_name__ = 'JournalStartWithMenu'
def __init__(self, metadata):
- gobject.GObject.__init__(self)
+ GObject.GObject.__init__(self)
self._metadata = metadata
for activity_info in misc.get_activities(metadata):
menu_item = MenuItem(activity_info.get_name())
menu_item.set_image(Icon(file=activity_info.get_icon(),
- icon_size=gtk.ICON_SIZE_MENU))
+ icon_size=Gtk.IconSize.MENU))
menu_item.connect('activate', self.__item_activate_cb,
activity_info.get_bundle_id())
self.append(menu_item)
diff --git a/src/jarabe/journal/volumestoolbar.py b/src/jarabe/journal/volumestoolbar.py
index 71b6ea8..f75dd61 100644
--- a/src/jarabe/journal/volumestoolbar.py
+++ b/src/jarabe/journal/volumestoolbar.py
@@ -19,11 +19,11 @@ import os
import statvfs
from gettext import gettext as _
-import gobject
-import gio
+from gi.repository import GObject
+from gi.repository import Gio
import glib
-import gtk
-import gconf
+from gi.repository import Gtk
+from gi.repository import GConf
import cPickle
import xapian
import simplejson
@@ -159,18 +159,18 @@ def _convert_entry(root, document):
os.path.join(root, filename), metadata)
-class VolumesToolbar(gtk.Toolbar):
+class VolumesToolbar(Gtk.Toolbar):
__gtype_name__ = 'VolumesToolbar'
__gsignals__ = {
- 'volume-changed': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ 'volume-changed': (GObject.SignalFlags.RUN_FIRST, None,
([str])),
- 'volume-error': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ 'volume-error': (GObject.SignalFlags.RUN_FIRST, None,
([str, str])),
}
def __init__(self):
- gtk.Toolbar.__init__(self)
+ GObject.GObject.__init__(self)
self._mount_added_hid = None
self._mount_removed_hid = None
@@ -182,17 +182,17 @@ class VolumesToolbar(gtk.Toolbar):
self.connect('destroy', self.__destroy_cb)
- gobject.idle_add(self._set_up_volumes)
+ GObject.idle_add(self._set_up_volumes)
def __destroy_cb(self, widget):
- volume_monitor = gio.volume_monitor_get()
+ volume_monitor = Gio.volume_monitor_get()
volume_monitor.disconnect(self._mount_added_hid)
volume_monitor.disconnect(self._mount_removed_hid)
def _set_up_volumes(self):
self._set_up_documents_button()
- volume_monitor = gio.volume_monitor_get()
+ volume_monitor = Gio.volume_monitor_get()
self._mount_added_hid = volume_monitor.connect('mount-added',
self.__mount_added_cb)
self._mount_removed_hid = volume_monitor.connect('mount-removed',
@@ -228,7 +228,7 @@ class VolumesToolbar(gtk.Toolbar):
if os.path.exists(os.path.join(mount.get_root().get_path(),
_JOURNAL_0_METADATA_DIR)):
logging.debug('Convert DS-0 Journal entries: starting conversion')
- gobject.idle_add(_convert_entries, mount.get_root().get_path())
+ GObject.idle_add(_convert_entries, mount.get_root().get_path())
button = VolumeButton(mount)
button.props.group = self._volume_buttons[0]
@@ -281,7 +281,7 @@ class VolumesToolbar(gtk.Toolbar):
class BaseButton(RadioToolButton):
__gsignals__ = {
- 'volume-error': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ 'volume-error': (GObject.SignalFlags.RUN_FIRST, None,
([str, str])),
}
@@ -290,9 +290,9 @@ class BaseButton(RadioToolButton):
self.mount_point = mount_point
- self.drag_dest_set(gtk.DEST_DEFAULT_ALL,
+ self.drag_dest_set(Gtk.DestDefaults.ALL,
[('journal-object-id', 0, 0)],
- gtk.gdk.ACTION_COPY)
+ Gdk.DragAction.COPY)
self.connect('drag-data-received', self._drag_data_received_cb)
def _drag_data_received_cb(self, widget, drag_context, x, y,
@@ -323,10 +323,10 @@ class VolumeButton(BaseButton):
BaseButton.__init__(self, mount_point)
icon_name = None
- icon_theme = gtk.icon_theme_get_default()
+ icon_theme = Gtk.IconTheme.get_default()
for icon_name in mount.get_icon().props.names:
icon_info = icon_theme.lookup_icon(icon_name,
- gtk.ICON_SIZE_LARGE_TOOLBAR, 0)
+ Gtk.IconSize.LARGE_TOOLBAR, 0)
if icon_info is not None:
break
@@ -336,7 +336,7 @@ class VolumeButton(BaseButton):
self.props.named_icon = icon_name
# TODO: retrieve the colors from the owner of the device
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
color = XoColor(client.get_string('/desktop/sugar/user/color'))
self.props.xo_color = color
@@ -353,7 +353,7 @@ class JournalButton(BaseButton):
self.props.named_icon = 'activity-journal'
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
color = XoColor(client.get_string('/desktop/sugar/user/color'))
self.props.xo_color = color
@@ -366,15 +366,15 @@ class JournalButtonPalette(Palette):
def __init__(self, mount):
Palette.__init__(self, glib.markup_escape_text(_('Journal')))
- vbox = gtk.VBox()
+ vbox = Gtk.VBox()
self.set_content(vbox)
vbox.show()
- self._progress_bar = gtk.ProgressBar()
+ self._progress_bar = Gtk.ProgressBar()
vbox.add(self._progress_bar)
self._progress_bar.show()
- self._free_space_label = gtk.Label()
+ self._free_space_label = Gtk.Label()
self._free_space_label.set_alignment(0.5, 0.5)
vbox.add(self._free_space_label)
self._free_space_label.show()
@@ -399,6 +399,6 @@ class DocumentsButton(BaseButton):
self.props.named_icon = 'user-documents'
- client = gconf.client_get_default()
+ 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/adhoc.py b/src/jarabe/model/adhoc.py
index 68a9aa3..eda7c83 100644
--- a/src/jarabe/model/adhoc.py
+++ b/src/jarabe/model/adhoc.py
@@ -17,7 +17,7 @@
import logging
import dbus
-import gobject
+from gi.repository import GObject
from jarabe.model import network
from jarabe.model.network import Settings
@@ -35,7 +35,7 @@ def get_adhoc_manager_instance():
return _adhoc_manager_instance
-class AdHocManager(gobject.GObject):
+class AdHocManager(GObject.GObject):
"""To mimic the mesh behavior on devices where mesh hardware is
not available we support the creation of an Ad-hoc network on
three channels 1, 6, 11. If Sugar sees no "known" network when it
@@ -44,10 +44,10 @@ class AdHocManager(gobject.GObject):
"""
__gsignals__ = {
- 'members-changed': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
- ([gobject.TYPE_PYOBJECT, gobject.TYPE_PYOBJECT])),
- 'state-changed': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
- ([gobject.TYPE_PYOBJECT, gobject.TYPE_PYOBJECT])),
+ 'members-changed': (GObject.SignalFlags.RUN_FIRST, None,
+ ([GObject.TYPE_PYOBJECT, GObject.TYPE_PYOBJECT])),
+ 'state-changed': (GObject.SignalFlags.RUN_FIRST, None,
+ ([GObject.TYPE_PYOBJECT, GObject.TYPE_PYOBJECT])),
}
_AUTOCONNECT_TIMEOUT = 60
@@ -56,7 +56,7 @@ class AdHocManager(gobject.GObject):
_CHANNEL_11 = 11
def __init__(self):
- gobject.GObject.__init__(self)
+ GObject.GObject.__init__(self)
self._bus = dbus.SystemBus()
self._device = None
@@ -142,8 +142,8 @@ class AdHocManager(gobject.GObject):
will complete quickly, and long before the timeout ticks.
"""
if self._idle_source != 0:
- gobject.source_remove(self._idle_source)
- self._idle_source = gobject.timeout_add_seconds(
+ GObject.source_remove(self._idle_source)
+ self._idle_source = GObject.timeout_add_seconds(
self._AUTOCONNECT_TIMEOUT, self.__idle_check_cb)
def __idle_check_cb(self):
diff --git a/src/jarabe/model/buddy.py b/src/jarabe/model/buddy.py
index 8f17d7e..33d8948 100644
--- a/src/jarabe/model/buddy.py
+++ b/src/jarabe/model/buddy.py
@@ -17,8 +17,8 @@
import logging
-import gobject
-import gconf
+from gi.repository import GObject
+from gi.repository import GConf
import dbus
from telepathy.client import Connection
from telepathy.interfaces import CONNECTION
@@ -34,7 +34,7 @@ CONNECTION_INTERFACE_BUDDY_INFO = 'org.laptop.Telepathy.BuddyInfo'
_owner_instance = None
-class BaseBuddyModel(gobject.GObject):
+class BaseBuddyModel(GObject.GObject):
__gtype_name__ = 'SugarBaseBuddyModel'
def __init__(self, **kwargs):
@@ -44,7 +44,7 @@ class BaseBuddyModel(gobject.GObject):
self._tags = None
self._current_activity = None
- gobject.GObject.__init__(self, **kwargs)
+ GObject.GObject.__init__(self, **kwargs)
def get_nick(self):
return self._nick
@@ -52,7 +52,7 @@ class BaseBuddyModel(gobject.GObject):
def set_nick(self, nick):
self._nick = nick
- nick = gobject.property(type=object, getter=get_nick, setter=set_nick)
+ nick = GObject.property(type=object, getter=get_nick, setter=set_nick)
def get_key(self):
return self._key
@@ -60,7 +60,7 @@ class BaseBuddyModel(gobject.GObject):
def set_key(self, key):
self._key = key
- key = gobject.property(type=object, getter=get_key, setter=set_key)
+ key = GObject.property(type=object, getter=get_key, setter=set_key)
def get_color(self):
return self._color
@@ -68,12 +68,12 @@ class BaseBuddyModel(gobject.GObject):
def set_color(self, color):
self._color = color
- color = gobject.property(type=object, getter=get_color, setter=set_color)
+ color = GObject.property(type=object, getter=get_color, setter=set_color)
def get_tags(self):
return self._tags
- tags = gobject.property(type=object, getter=get_tags)
+ tags = GObject.property(type=object, getter=get_tags)
def get_current_activity(self):
return self._current_activity
@@ -83,7 +83,7 @@ class BaseBuddyModel(gobject.GObject):
self._current_activity = current_activity
self.notify('current-activity')
- current_activity = gobject.property(type=object,
+ current_activity = GObject.property(type=object,
getter=get_current_activity,
setter=set_current_activity)
@@ -97,7 +97,7 @@ class OwnerBuddyModel(BaseBuddyModel):
def __init__(self):
BaseBuddyModel.__init__(self)
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
self.props.nick = client.get_string('/desktop/sugar/user/nick')
color = client.get_string('/desktop/sugar/user/color')
self.props.color = XoColor(color)
@@ -191,7 +191,7 @@ class BuddyModel(BaseBuddyModel):
def set_account(self, account):
self._account = account
- account = gobject.property(type=object, getter=get_account,
+ account = GObject.property(type=object, getter=get_account,
setter=set_account)
def get_contact_id(self):
@@ -200,7 +200,7 @@ class BuddyModel(BaseBuddyModel):
def set_contact_id(self, contact_id):
self._contact_id = contact_id
- contact_id = gobject.property(type=object, getter=get_contact_id,
+ contact_id = GObject.property(type=object, getter=get_contact_id,
setter=set_contact_id)
def get_handle(self):
@@ -209,5 +209,5 @@ class BuddyModel(BaseBuddyModel):
def set_handle(self, handle):
self._handle = handle
- handle = gobject.property(type=object, getter=get_handle,
+ handle = GObject.property(type=object, getter=get_handle,
setter=set_handle)
diff --git a/src/jarabe/model/bundleregistry.py b/src/jarabe/model/bundleregistry.py
index 26e719f..d790410 100644
--- a/src/jarabe/model/bundleregistry.py
+++ b/src/jarabe/model/bundleregistry.py
@@ -18,9 +18,9 @@
import os
import logging
-import gconf
-import gobject
-import gio
+from gi.repository import GConf
+from gi.repository import GObject
+from gi.repository import Gio
import simplejson
from sugar.bundle.activitybundle import ActivityBundle
@@ -38,21 +38,21 @@ from jarabe.model import mimeregistry
_instance = None
-class BundleRegistry(gobject.GObject):
+class BundleRegistry(GObject.GObject):
"""Tracks the available activity bundles"""
__gsignals__ = {
- 'bundle-added': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
- ([gobject.TYPE_PYOBJECT])),
- 'bundle-removed': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
- ([gobject.TYPE_PYOBJECT])),
- 'bundle-changed': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
- ([gobject.TYPE_PYOBJECT])),
+ 'bundle-added': (GObject.SignalFlags.RUN_FIRST, None,
+ ([GObject.TYPE_PYOBJECT])),
+ 'bundle-removed': (GObject.SignalFlags.RUN_FIRST, None,
+ ([GObject.TYPE_PYOBJECT])),
+ 'bundle-changed': (GObject.SignalFlags.RUN_FIRST, None,
+ ([GObject.TYPE_PYOBJECT])),
}
def __init__(self):
logging.debug('STARTUP: Loading the bundle registry')
- gobject.GObject.__init__(self)
+ GObject.GObject.__init__(self)
self._mime_defaults = self._load_mime_defaults()
@@ -63,7 +63,7 @@ class BundleRegistry(gobject.GObject):
user_path = env.get_user_activities_path()
for activity_dir in [user_path, config.activities_path]:
self._scan_directory(activity_dir)
- directory = gio.File(activity_dir)
+ directory = Gio.File(activity_dir)
monitor = directory.monitor_directory()
monitor.connect('changed', self.__file_monitor_changed_cb)
self._gio_monitors.append(monitor)
@@ -71,10 +71,10 @@ class BundleRegistry(gobject.GObject):
self._last_defaults_mtime = -1
self._favorite_bundles = {}
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
self._protected_activities = client.get_list(
'/desktop/sugar/protected_activities',
- gconf.VALUE_STRING)
+ GConf.ValueType.STRING)
if self._protected_activities is None:
self._protected_activities = []
@@ -90,9 +90,9 @@ class BundleRegistry(gobject.GObject):
event_type):
if not one_file.get_path().endswith('.activity'):
return
- if event_type == gio.FILE_MONITOR_EVENT_CREATED:
+ if event_type == Gio.FileMonitorEvent.CREATED:
self.add_bundle(one_file.get_path(), install_mime_type=True)
- elif event_type == gio.FILE_MONITOR_EVENT_DELETED:
+ elif event_type == Gio.FileMonitorEvent.DELETED:
self.remove_bundle(one_file.get_path())
def _load_mime_defaults(self):
diff --git a/src/jarabe/model/filetransfer.py b/src/jarabe/model/filetransfer.py
index 710c3a4..c73625d 100644
--- a/src/jarabe/model/filetransfer.py
+++ b/src/jarabe/model/filetransfer.py
@@ -18,8 +18,8 @@ import os
import logging
import socket
-import gobject
-import gio
+from gi.repository import GObject
+from gi.repository import Gio
import dbus
from telepathy.interfaces import CONNECTION_INTERFACE_REQUESTS, CHANNEL
from telepathy.constants import CONNECTION_HANDLE_TYPE_CONTACT, \
@@ -57,16 +57,16 @@ new_file_transfer = dispatch.Signal()
# TODO Move to use splice_async() in Sugar 0.88
-class StreamSplicer(gobject.GObject):
+class StreamSplicer(GObject.GObject):
_CHUNK_SIZE = 10240 # 10K
__gsignals__ = {
- 'finished': (gobject.SIGNAL_RUN_FIRST,
- gobject.TYPE_NONE,
+ 'finished': (GObject.SignalFlags.RUN_FIRST,
+ None,
([])),
}
def __init__(self, input_stream, output_stream):
- gobject.GObject.__init__(self)
+ GObject.GObject.__init__(self)
self._input_stream = input_stream
self._output_stream = output_stream
@@ -74,7 +74,7 @@ class StreamSplicer(gobject.GObject):
def start(self):
self._input_stream.read_async(self._CHUNK_SIZE, self.__read_async_cb,
- gobject.PRIORITY_LOW)
+ GObject.PRIORITY_LOW)
def __read_async_cb(self, input_stream, result):
data = input_stream.read_finish(result)
@@ -86,7 +86,7 @@ class StreamSplicer(gobject.GObject):
self._pending_buffers.append(data)
self._input_stream.read_async(self._CHUNK_SIZE,
self.__read_async_cb,
- gobject.PRIORITY_LOW)
+ GObject.PRIORITY_LOW)
self._write_next_buffer()
def __write_async_cb(self, output_stream, result, user_data):
@@ -107,14 +107,14 @@ class StreamSplicer(gobject.GObject):
# TODO: we pass the buffer as user_data because of
# http://bugzilla.gnome.org/show_bug.cgi?id=564102
self._output_stream.write_async(data, self.__write_async_cb,
- gobject.PRIORITY_LOW,
+ GObject.PRIORITY_LOW,
user_data=data)
-class BaseFileTransfer(gobject.GObject):
+class BaseFileTransfer(GObject.GObject):
def __init__(self, connection):
- gobject.GObject.__init__(self)
+ GObject.GObject.__init__(self)
self._connection = connection
self._state = FT_STATE_NONE
self._transferred_bytes = 0
@@ -159,7 +159,7 @@ class BaseFileTransfer(gobject.GObject):
def _get_transferred_bytes(self):
return self._transferred_bytes
- transferred_bytes = gobject.property(type=int, default=0,
+ transferred_bytes = GObject.property(type=int, default=0,
getter=_get_transferred_bytes, setter=_set_transferred_bytes)
def __initial_offset_defined_cb(self, offset):
@@ -177,7 +177,7 @@ class BaseFileTransfer(gobject.GObject):
def _get_state(self):
return self._state
- state = gobject.property(type=int, getter=_get_state, setter=_set_state)
+ state = GObject.property(type=int, getter=_get_state, setter=_set_state)
def cancel(self):
self.channel[CHANNEL].Close()
@@ -215,9 +215,9 @@ class IncomingFileTransfer(BaseFileTransfer):
# close the fd when it goes out of scope
self._socket = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
self._socket.connect(self._socket_address)
- input_stream = gio.unix.InputStream(self._socket.fileno(), True)
+ input_stream = Gio.unix.InputStream(self._socket.fileno(), True)
- destination_file = gio.File(self.destination_path)
+ destination_file = Gio.File(self.destination_path)
if self.initial_offset == 0:
output_stream = destination_file.create()
else:
@@ -277,10 +277,10 @@ class OutgoingFileTransfer(BaseFileTransfer):
# closes the fd when it goes out of scope
self._socket = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
self._socket.connect(self._socket_address)
- output_stream = gio.unix.OutputStream(self._socket.fileno(), True)
+ output_stream = Gio.unix.OutputStream(self._socket.fileno(), True)
logging.debug('opening %s for reading', self._file_name)
- input_stream = gio.File(self._file_name).read()
+ input_stream = Gio.File(self._file_name).read()
if self.initial_offset > 0:
input_stream.skip(self.initial_offset)
@@ -357,12 +357,12 @@ if __name__ == '__main__':
import tempfile
test_file_name = '/home/tomeu/isos/Soas2-200904031934.iso'
- test_input_stream = gio.File(test_file_name).read()
- test_output_stream = gio.File(tempfile.mkstemp()[1]).append_to()
+ test_input_stream = Gio.File(test_file_name).read()
+ test_output_stream = Gio.File(tempfile.mkstemp()[1]).append_to()
# TODO: Use splice_async when it gets implemented
splicer = StreamSplicer(test_input_stream, test_output_stream)
splicer.start()
- loop = gobject.MainLoop()
+ loop = GObject.MainLoop()
loop.run()
diff --git a/src/jarabe/model/friends.py b/src/jarabe/model/friends.py
index 7605af1..101de51 100644
--- a/src/jarabe/model/friends.py
+++ b/src/jarabe/model/friends.py
@@ -18,7 +18,7 @@ import os
import logging
from ConfigParser import ConfigParser
-import gobject
+from gi.repository import GObject
import dbus
from sugar import env
@@ -81,7 +81,7 @@ class FriendBuddyModel(BuddyModel):
def is_present(self):
return self._online_buddy is not None
- present = gobject.property(type=bool, default=False, getter=is_present)
+ present = GObject.property(type=bool, default=False, getter=is_present)
def get_color(self):
if self._online_buddy is not None:
@@ -89,7 +89,7 @@ class FriendBuddyModel(BuddyModel):
else:
return XoColor(FriendBuddyModel._NOT_PRESENT_COLOR)
- color = gobject.property(type=object, getter=get_color)
+ color = GObject.property(type=object, getter=get_color)
def get_handle(self):
if self._online_buddy is not None:
@@ -97,19 +97,19 @@ class FriendBuddyModel(BuddyModel):
else:
return None
- handle = gobject.property(type=object, getter=get_handle)
+ handle = GObject.property(type=object, getter=get_handle)
-class Friends(gobject.GObject):
+class Friends(GObject.GObject):
__gsignals__ = {
- 'friend-added': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ 'friend-added': (GObject.SignalFlags.RUN_FIRST, None,
([object])),
- 'friend-removed': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ 'friend-removed': (GObject.SignalFlags.RUN_FIRST, None,
([str])),
}
def __init__(self):
- gobject.GObject.__init__(self)
+ GObject.GObject.__init__(self)
self._friends = {}
self._path = os.path.join(env.get_profile_path(), 'friends')
diff --git a/src/jarabe/model/invites.py b/src/jarabe/model/invites.py
index 631e49f..2d897ce 100644
--- a/src/jarabe/model/invites.py
+++ b/src/jarabe/model/invites.py
@@ -19,9 +19,9 @@ import logging
from functools import partial
import simplejson
-import gobject
+from gi.repository import GObject
import dbus
-import gconf
+from gi.repository import GConf
from telepathy.interfaces import CHANNEL, \
CHANNEL_DISPATCHER, \
CHANNEL_DISPATCH_OPERATION, \
@@ -123,7 +123,7 @@ class PrivateInvite(BaseInvite):
self._private_channel = private_channel
def get_color(self):
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
return XoColor(client.get_string('/desktop/sugar/user/color'))
def join(self):
@@ -141,16 +141,16 @@ class PrivateInvite(BaseInvite):
uri=self._private_channel)
-class Invites(gobject.GObject):
+class Invites(GObject.GObject):
__gsignals__ = {
- 'invite-added': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ 'invite-added': (GObject.SignalFlags.RUN_FIRST, None,
([object])),
- 'invite-removed': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ 'invite-removed': (GObject.SignalFlags.RUN_FIRST, None,
([object])),
}
def __init__(self):
- gobject.GObject.__init__(self)
+ GObject.GObject.__init__(self)
self._dispatch_operations = {}
diff --git a/src/jarabe/model/mimeregistry.py b/src/jarabe/model/mimeregistry.py
index 7fb5bcf..87e14cd 100644
--- a/src/jarabe/model/mimeregistry.py
+++ b/src/jarabe/model/mimeregistry.py
@@ -16,7 +16,7 @@
import re
-import gconf
+from gi.repository import GConf
_DEFAULTS_KEY = '/desktop/sugar/journal/defaults'
@@ -29,13 +29,13 @@ class MimeRegistry(object):
def __init__(self):
# TODO move here all mime_type related code from jarabe modules
- self._gconf = gconf.client_get_default()
+ self._gconf = GConf.Client.get_default()
def get_default_activity(self, mime_type):
- return self._gconf.get_string(_key_name(mime_type))
+ return self._GConf.get_string(_key_name(mime_type))
def set_default_activity(self, mime_type, bundle_id):
- self._gconf.set_string(_key_name(mime_type), bundle_id)
+ self._GConf.set_string(_key_name(mime_type), bundle_id)
def get_registry():
diff --git a/src/jarabe/model/neighborhood.py b/src/jarabe/model/neighborhood.py
index 828cb14..99845a0 100644
--- a/src/jarabe/model/neighborhood.py
+++ b/src/jarabe/model/neighborhood.py
@@ -18,8 +18,8 @@ import logging
from functools import partial
from hashlib import sha1
-import gobject
-import gconf
+from gi.repository import GObject
+from gi.repository import GConf
import dbus
from dbus import PROPERTIES_IFACE
from telepathy.interfaces import ACCOUNT, \
@@ -70,20 +70,20 @@ will be very slow in returning these queries, so just be patient.
_model = None
-class ActivityModel(gobject.GObject):
+class ActivityModel(GObject.GObject):
__gsignals__ = {
- 'current-buddy-added': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ 'current-buddy-added': (GObject.SignalFlags.RUN_FIRST, None,
([object])),
- 'current-buddy-removed': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ 'current-buddy-removed': (GObject.SignalFlags.RUN_FIRST, None,
([object])),
- 'buddy-added': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ 'buddy-added': (GObject.SignalFlags.RUN_FIRST, None,
([object])),
- 'buddy-removed': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ 'buddy-removed': (GObject.SignalFlags.RUN_FIRST, None,
([object])),
}
def __init__(self, activity_id, room_handle):
- gobject.GObject.__init__(self)
+ GObject.GObject.__init__(self)
self.activity_id = activity_id
self.room_handle = room_handle
@@ -100,7 +100,7 @@ class ActivityModel(gobject.GObject):
def set_color(self, color):
self._color = color
- color = gobject.property(type=object, getter=get_color, setter=set_color)
+ color = GObject.property(type=object, getter=get_color, setter=set_color)
def get_bundle(self):
return self._bundle
@@ -108,7 +108,7 @@ class ActivityModel(gobject.GObject):
def set_bundle(self, bundle):
self._bundle = bundle
- bundle = gobject.property(type=object, getter=get_bundle,
+ bundle = GObject.property(type=object, getter=get_bundle,
setter=set_bundle)
def get_name(self):
@@ -117,7 +117,7 @@ class ActivityModel(gobject.GObject):
def set_name(self, name):
self._name = name
- name = gobject.property(type=object, getter=get_name, setter=set_name)
+ name = GObject.property(type=object, getter=get_name, setter=set_name)
def is_private(self):
return self._private
@@ -125,7 +125,7 @@ class ActivityModel(gobject.GObject):
def set_private(self, private):
self._private = private
- private = gobject.property(type=object, getter=is_private,
+ private = GObject.property(type=object, getter=is_private,
setter=set_private)
def get_buddies(self):
@@ -141,7 +141,7 @@ class ActivityModel(gobject.GObject):
self.notify('buddies')
self.emit('buddy-removed', buddy)
- buddies = gobject.property(type=object, getter=get_buddies)
+ buddies = GObject.property(type=object, getter=get_buddies)
def get_current_buddies(self):
return self._current_buddies
@@ -156,35 +156,35 @@ class ActivityModel(gobject.GObject):
self.notify('current-buddies')
self.emit('current-buddy-removed', buddy)
- current_buddies = gobject.property(type=object, getter=get_current_buddies)
+ current_buddies = GObject.property(type=object, getter=get_current_buddies)
-class _Account(gobject.GObject):
+class _Account(GObject.GObject):
__gsignals__ = {
- 'activity-added': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ 'activity-added': (GObject.SignalFlags.RUN_FIRST, None,
([object, object])),
- 'activity-updated': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ 'activity-updated': (GObject.SignalFlags.RUN_FIRST, None,
([object, object])),
- 'activity-removed': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ 'activity-removed': (GObject.SignalFlags.RUN_FIRST, None,
([object])),
- 'buddy-added': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ 'buddy-added': (GObject.SignalFlags.RUN_FIRST, None,
([object, object, object])),
- 'buddy-updated': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ 'buddy-updated': (GObject.SignalFlags.RUN_FIRST, None,
([object, object])),
- 'buddy-removed': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ 'buddy-removed': (GObject.SignalFlags.RUN_FIRST, None,
([object])),
- 'buddy-joined-activity': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ 'buddy-joined-activity': (GObject.SignalFlags.RUN_FIRST, None,
([object, object])),
- 'buddy-left-activity': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ 'buddy-left-activity': (GObject.SignalFlags.RUN_FIRST, None,
([object, object])),
- 'current-activity-updated': (gobject.SIGNAL_RUN_FIRST,
- gobject.TYPE_NONE, ([object, object])),
- 'connected': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([])),
- 'disconnected': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([])),
+ 'current-activity-updated': (GObject.SignalFlags.RUN_FIRST,
+ None, ([object, object])),
+ 'connected': (GObject.SignalFlags.RUN_FIRST, None, ([])),
+ 'disconnected': (GObject.SignalFlags.RUN_FIRST, None, ([])),
}
def __init__(self, account_path):
- gobject.GObject.__init__(self)
+ GObject.GObject.__init__(self)
self.object_path = account_path
@@ -672,20 +672,20 @@ class _Account(gobject.GObject):
logging.debug('_Account.__set_enabled_cb success')
-class Neighborhood(gobject.GObject):
+class Neighborhood(GObject.GObject):
__gsignals__ = {
- 'activity-added': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ 'activity-added': (GObject.SignalFlags.RUN_FIRST, None,
([object])),
- 'activity-removed': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ 'activity-removed': (GObject.SignalFlags.RUN_FIRST, None,
([object])),
- 'buddy-added': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ 'buddy-added': (GObject.SignalFlags.RUN_FIRST, None,
([object])),
- 'buddy-removed': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ 'buddy-removed': (GObject.SignalFlags.RUN_FIRST, None,
([object])),
}
def __init__(self):
- gobject.GObject.__init__(self)
+ GObject.GObject.__init__(self)
self._buddies = {None: get_owner_instance()}
self._activities = {}
@@ -693,12 +693,12 @@ class Neighborhood(gobject.GObject):
self._server_account = None
self._shell_model = shell.get_model()
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
client.add_dir('/desktop/sugar/collaboration',
- gconf.CLIENT_PRELOAD_NONE)
+ GConf.ClientPreloadType.PRELOAD_NONE)
client.notify_add('/desktop/sugar/collaboration/jabber_server',
self.__jabber_server_changed_cb)
- client.add_dir('/desktop/sugar/user/nick', gconf.CLIENT_PRELOAD_NONE)
+ client.add_dir('/desktop/sugar/user/nick', GConf.ClientPreloadType.PRELOAD_NONE)
client.notify_add('/desktop/sugar/user/nick', self.__nick_changed_cb)
bus = dbus.Bus()
@@ -766,7 +766,7 @@ class Neighborhood(gobject.GObject):
logging.debug('Still dont have a Salut account, creating one')
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
nick = client.get_string('/desktop/sugar/user/nick')
params = {
@@ -801,7 +801,7 @@ class Neighborhood(gobject.GObject):
logging.debug('Still dont have a Gabble account, creating one')
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
nick = client.get_string('/desktop/sugar/user/nick')
server = client.get_string('/desktop/sugar/collaboration'
'/jabber_server')
@@ -835,7 +835,7 @@ class Neighborhood(gobject.GObject):
def _get_jabber_account_id(self):
public_key_hash = sha1(get_profile().pubkey).hexdigest()
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
server = client.get_string('/desktop/sugar/collaboration'
'/jabber_server')
return '%s@%s' % (public_key_hash, server)
diff --git a/src/jarabe/model/network.py b/src/jarabe/model/network.py
index cc02b58..b513c16 100644
--- a/src/jarabe/model/network.py
+++ b/src/jarabe/model/network.py
@@ -24,9 +24,9 @@ import os
import dbus
import dbus.service
-import gobject
+from gi.repository import GObject
import ConfigParser
-import gconf
+from gi.repository import GConf
import ctypes
from sugar import dispatch
@@ -595,10 +595,10 @@ class SecretAgent(dbus.service.Object):
self.secrets_request.send(self, settings=settings, response=response)
-class AccessPoint(gobject.GObject):
+class AccessPoint(GObject.GObject):
__gsignals__ = {
- 'props-changed': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
- ([gobject.TYPE_PYOBJECT])),
+ 'props-changed': (GObject.SignalFlags.RUN_FIRST, None,
+ ([GObject.TYPE_PYOBJECT])),
}
def __init__(self, device, model):
@@ -744,13 +744,13 @@ def _add_and_activate_error_cb(err):
logging.error('Failed to add and activate connection: %s', err)
-class Connection(gobject.GObject):
+class Connection(GObject.GObject):
__gsignals__ = {
- 'removed': (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, ()),
+ 'removed': (GObject.SignalFlags.RUN_LAST, None, ()),
}
def __init__(self, bus, path):
- gobject.GObject.__init__(self)
+ GObject.GObject.__init__(self)
obj = bus.get_object(NM_SERVICE, path)
self._connection = dbus.Interface(obj, NM_CONNECTION_IFACE)
self._removed_handle = self._connection.connect_to_signal(
@@ -1004,7 +1004,7 @@ def _migrate_old_gsm_connection():
# don't attempt migration if a NM-level connection already exists
return
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
username = client.get_string(GSM_USERNAME_PATH) or ''
password = client.get_string(GSM_PASSWORD_PATH) or ''
diff --git a/src/jarabe/model/olpcmesh.py b/src/jarabe/model/olpcmesh.py
index 6ab7ab6..cd38740 100644
--- a/src/jarabe/model/olpcmesh.py
+++ b/src/jarabe/model/olpcmesh.py
@@ -17,7 +17,7 @@
import logging
import dbus
-import gobject
+from gi.repository import GObject
from jarabe.model import network
from jarabe.model.network import Settings
@@ -98,8 +98,8 @@ class OlpcMeshManager(object):
"""
if self._idle_source != 0:
- gobject.source_remove(self._idle_source)
- self._idle_source = gobject.timeout_add_seconds(10, self._idle_check)
+ GObject.source_remove(self._idle_source)
+ self._idle_source = GObject.timeout_add_seconds(10, self._idle_check)
def __get_state_error_cb(self, err):
logging.debug('Error getting the device state: %s', err)
diff --git a/src/jarabe/model/session.py b/src/jarabe/model/session.py
index 4e66bdc..38cc540 100644
--- a/src/jarabe/model/session.py
+++ b/src/jarabe/model/session.py
@@ -14,7 +14,7 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-import gtk
+from gi.repository import Gtk
import dbus
import os
import signal
@@ -91,10 +91,10 @@ class SessionManager(session.SessionManager):
return
session.SessionManager.shutdown_completed(self)
- gtk.main_quit()
+ Gtk.main_quit()
def _close_emulator(self):
- gtk.main_quit()
+ Gtk.main_quit()
if 'SUGAR_EMULATOR_PID' in os.environ:
pid = int(os.environ['SUGAR_EMULATOR_PID'])
diff --git a/src/jarabe/model/shell.py b/src/jarabe/model/shell.py
index 1f3ee8d..01379d8 100644
--- a/src/jarabe/model/shell.py
+++ b/src/jarabe/model/shell.py
@@ -18,10 +18,10 @@
import logging
import time
-import gconf
-import wnck
-import gobject
-import gtk
+from gi.repository import GConf
+from gi.repository import Wnck
+from gi.repository import GObject
+from gi.repository import Gtk
import dbus
from sugar import wm
@@ -37,7 +37,7 @@ _SERVICE_INTERFACE = 'org.laptop.Activity'
_model = None
-class Activity(gobject.GObject):
+class Activity(GObject.GObject):
"""Activity which appears in the "Home View" of the Sugar shell
This class stores the Sugar Shell's metadata regarding a
@@ -64,7 +64,7 @@ class Activity(gobject.GObject):
_windows -- WnckWindows registered for the activity. The lowest
one in the stack is the main window.
"""
- gobject.GObject.__init__(self)
+ GObject.GObject.__init__(self)
self._windows = []
self._service = None
@@ -76,7 +76,7 @@ class Activity(gobject.GObject):
if color is not None:
self._color = color
else:
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
color = client.get_string('/desktop/sugar/user/color')
self._color = XoColor(color)
@@ -101,7 +101,7 @@ class Activity(gobject.GObject):
def get_launch_status(self):
return self._launch_status
- launch_status = gobject.property(getter=get_launch_status)
+ launch_status = GObject.property(getter=get_launch_status)
def add_window(self, window):
"""Add a window to the windows stack."""
@@ -137,9 +137,9 @@ class Activity(gobject.GObject):
def get_icon_path(self):
"""Retrieve the activity's icon (file) name"""
if self.is_journal():
- icon_theme = gtk.icon_theme_get_default()
+ icon_theme = Gtk.IconTheme.get_default()
info = icon_theme.lookup_icon('activity-journal',
- gtk.ICON_SIZE_SMALL_TOOLBAR, 0)
+ Gtk.IconSize.SMALL_TOOLBAR, 0)
if not info:
return None
fname = info.get_filename()
@@ -310,7 +310,7 @@ class Activity(gobject.GObject):
self._set_launch_status(Activity.LAUNCH_FAILED)
-class ShellModel(gobject.GObject):
+class ShellModel(GObject.GObject):
"""Model of the shell (activity management)
The ShellModel is basically the point of registration
@@ -326,22 +326,22 @@ class ShellModel(gobject.GObject):
"""
__gsignals__ = {
- 'activity-added': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
- ([gobject.TYPE_PYOBJECT])),
- 'activity-removed': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
- ([gobject.TYPE_PYOBJECT])),
- 'active-activity-changed': (gobject.SIGNAL_RUN_FIRST,
- gobject.TYPE_NONE,
- ([gobject.TYPE_PYOBJECT])),
- 'tabbing-activity-changed': (gobject.SIGNAL_RUN_FIRST,
- gobject.TYPE_NONE,
- ([gobject.TYPE_PYOBJECT])),
- 'launch-started': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
- ([gobject.TYPE_PYOBJECT])),
- 'launch-completed': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
- ([gobject.TYPE_PYOBJECT])),
- 'launch-failed': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
- ([gobject.TYPE_PYOBJECT])),
+ 'activity-added': (GObject.SignalFlags.RUN_FIRST, None,
+ ([GObject.TYPE_PYOBJECT])),
+ 'activity-removed': (GObject.SignalFlags.RUN_FIRST, None,
+ ([GObject.TYPE_PYOBJECT])),
+ 'active-activity-changed': (GObject.SignalFlags.RUN_FIRST,
+ None,
+ ([GObject.TYPE_PYOBJECT])),
+ 'tabbing-activity-changed': (GObject.SignalFlags.RUN_FIRST,
+ None,
+ ([GObject.TYPE_PYOBJECT])),
+ 'launch-started': (GObject.SignalFlags.RUN_FIRST, None,
+ ([GObject.TYPE_PYOBJECT])),
+ 'launch-completed': (GObject.SignalFlags.RUN_FIRST, None,
+ ([GObject.TYPE_PYOBJECT])),
+ 'launch-failed': (GObject.SignalFlags.RUN_FIRST, None,
+ ([GObject.TYPE_PYOBJECT])),
}
ZOOM_MESH = 0
@@ -350,9 +350,9 @@ class ShellModel(gobject.GObject):
ZOOM_ACTIVITY = 3
def __init__(self):
- gobject.GObject.__init__(self)
+ GObject.GObject.__init__(self)
- self._screen = wnck.screen_get_default()
+ self._screen = Wnck.Screen.get_default()
self._screen.connect('window-opened', self._window_opened_cb)
self._screen.connect('window-closed', self._window_closed_cb)
self._screen.connect('active-window-changed',
@@ -382,9 +382,9 @@ class ShellModel(gobject.GObject):
del self._launchers[activity_id]
def _update_zoom_level(self, window):
- if window.get_window_type() == wnck.WINDOW_DIALOG:
+ if window.get_window_type() == Wnck.WindowType.DIALOG:
return
- elif window.get_window_type() == wnck.WINDOW_NORMAL:
+ elif window.get_window_type() == Wnck.WindowType.NORMAL:
new_level = self.ZOOM_ACTIVITY
else:
new_level = self._desktop_level
@@ -401,9 +401,9 @@ class ShellModel(gobject.GObject):
return
if old_level != self.ZOOM_ACTIVITY:
- screen = gtk.gdk.screen_get_default()
+ screen = Gdk.Screen.get_default()
active_window_type = screen.get_active_window().get_type_hint()
- if active_window_type != gtk.gdk.WINDOW_TYPE_HINT_DESKTOP:
+ if active_window_type != Gdk.WindowTypeHint.DESKTOP:
return
self._zoom_level = new_level
@@ -421,7 +421,7 @@ class ShellModel(gobject.GObject):
# (e.g. during sugar launch, the Journal starts in this state)
window = self._active_activity.get_window()
if window:
- window.activate(x_event_time or gtk.get_current_event_time())
+ window.activate(x_event_time or Gtk.get_current_event_time())
def _get_zoom_level(self):
return self._zoom_level
@@ -521,8 +521,8 @@ class ShellModel(gobject.GObject):
them.
"""
- if window.get_window_type() == wnck.WINDOW_NORMAL or \
- window.get_window_type() == wnck.WINDOW_SPLASHSCREEN:
+ if window.get_window_type() == Wnck.WindowType.NORMAL or \
+ window.get_window_type() == Wnck.WindowType.SPLASHSCREEN:
home_activity = None
activity_id = wm.get_activity_id(window)
@@ -538,7 +538,7 @@ class ShellModel(gobject.GObject):
home_activity = self.get_activity_by_id(activity_id)
xid = window.get_xid()
- gdk_window = gtk.gdk.window_foreign_new(xid)
+ gdk_window = Gdk.window_foreign_new(xid)
gdk_window.set_decorations(0)
window.maximize()
@@ -553,7 +553,7 @@ class ShellModel(gobject.GObject):
logging.debug('window registered for %s', activity_id)
home_activity.add_window(window)
- if window.get_window_type() != wnck.WINDOW_SPLASHSCREEN \
+ if window.get_window_type() != Wnck.WindowType.SPLASHSCREEN \
and home_activity.get_launch_status() == Activity.LAUNCHING:
self.emit('launch-completed', home_activity)
startup_time = time.time() - home_activity.get_launch_time()
@@ -564,8 +564,8 @@ class ShellModel(gobject.GObject):
self._set_active_activity(home_activity)
def _window_closed_cb(self, screen, window):
- if window.get_window_type() == wnck.WINDOW_NORMAL or \
- window.get_window_type() == wnck.WINDOW_SPLASHSCREEN:
+ if window.get_window_type() == Wnck.WindowType.NORMAL or \
+ window.get_window_type() == Wnck.WindowType.SPLASHSCREEN:
xid = window.get_xid()
activity = self._get_activity_by_xid(xid)
if activity is not None:
@@ -592,7 +592,7 @@ class ShellModel(gobject.GObject):
if window is None:
return
- if window.get_window_type() != wnck.WINDOW_DIALOG:
+ if window.get_window_type() != Wnck.WindowType.DIALOG:
while window.get_transient() is not None:
window = window.get_transient()
@@ -608,7 +608,7 @@ class ShellModel(gobject.GObject):
def _remove_activity(self, home_activity):
if home_activity == self._active_activity:
- windows = wnck.screen_get_default().get_windows_stacked()
+ windows = Wnck.Screen.get_default().get_windows_stacked()
windows.reverse()
for window in windows:
new_activity = self._get_activity_by_xid(window.get_xid())
@@ -639,7 +639,7 @@ class ShellModel(gobject.GObject):
# FIXME: better learn about finishing processes by receiving a signal.
# Now just check whether an activity has a window after ~90sec
- gobject.timeout_add_seconds(90, self._check_activity_launched,
+ GObject.timeout_add_seconds(90, self._check_activity_launched,
activity_id)
def notify_launch_failed(self, activity_id):
diff --git a/src/jarabe/model/sound.py b/src/jarabe/model/sound.py
index 9e1e748..e1d8878 100644
--- a/src/jarabe/model/sound.py
+++ b/src/jarabe/model/sound.py
@@ -14,10 +14,10 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-import gconf
+from gi.repository import GConf
from sugar import env
-from sugar import _sugarext
+from gi.repository import SugarExt
from sugar import dispatch
@@ -26,7 +26,7 @@ VOLUME_STEP = 10
muted_changed = dispatch.Signal()
volume_changed = dispatch.Signal()
-_volume = _sugarext.VolumeAlsa()
+_volume = SugarExt.AcmeVolumeAlsa()
def get_muted():
@@ -55,11 +55,11 @@ def set_muted(new_state):
def save():
if env.is_emulator() is False:
- client = gconf.client_get_default()
+ 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()
+ client = GConf.Client.get_default()
set_volume(client.get_int('/desktop/sugar/sound/volume'))
diff --git a/src/jarabe/model/speech.py b/src/jarabe/model/speech.py
index 1cb0ad4..86a30d9 100644
--- a/src/jarabe/model/speech.py
+++ b/src/jarabe/model/speech.py
@@ -17,10 +17,10 @@
import os
import logging
-import gconf
+from gi.repository import GConf
import gst
-import gtk
-import gobject
+from gi.repository import Gtk
+from gi.repository import GObject
DEFAULT_PITCH = 0
@@ -31,14 +31,14 @@ DEFAULT_RATE = 0
_speech_manager = None
-class SpeechManager(gobject.GObject):
+class SpeechManager(GObject.GObject):
__gtype_name__ = 'SpeechManager'
__gsignals__ = {
- 'play': (gobject.SIGNAL_RUN_FIRST, None, []),
- 'pause': (gobject.SIGNAL_RUN_FIRST, None, []),
- 'stop': (gobject.SIGNAL_RUN_FIRST, None, [])
+ 'play': (GObject.SignalFlags.RUN_FIRST, None, []),
+ 'pause': (GObject.SignalFlags.RUN_FIRST, None, []),
+ 'stop': (GObject.SignalFlags.RUN_FIRST, None, [])
}
MIN_PITCH = -100
@@ -48,7 +48,7 @@ class SpeechManager(gobject.GObject):
MAX_RATE = 100
def __init__(self, **kwargs):
- gobject.GObject.__init__(self, **kwargs)
+ GObject.GObject.__init__(self, **kwargs)
self._player = _GstSpeechPlayer()
self._player.connect('play', self._update_state, 'play')
self._player.connect('stop', self._update_state, 'stop')
@@ -68,13 +68,13 @@ class SpeechManager(gobject.GObject):
def get_is_playing(self):
return self._is_playing
- is_playing = gobject.property(type=bool, getter=get_is_playing,
+ is_playing = GObject.property(type=bool, getter=get_is_playing,
setter=None, default=False)
def get_is_paused(self):
return self._is_paused
- is_paused = gobject.property(type=bool, getter=get_is_paused,
+ is_paused = GObject.property(type=bool, getter=get_is_paused,
setter=None, default=False)
def get_pitch(self):
@@ -96,7 +96,7 @@ class SpeechManager(gobject.GObject):
self._player.speak(self._pitch, self._rate, self._voice_name, text)
def say_selected_text(self):
- clipboard = gtk.clipboard_get(selection='PRIMARY')
+ clipboard = Gtk.clipboard_get(selection='PRIMARY')
clipboard.request_text(self.__primary_selection_cb)
def pause(self):
@@ -112,30 +112,30 @@ class SpeechManager(gobject.GObject):
self.say_text(text)
def save(self):
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
client.set_int('/desktop/sugar/speech/pitch', self._pitch)
client.set_int('/desktop/sugar/speech/rate', self._rate)
logging.debug('saving speech configuration pitch %s rate %s',
self._pitch, self._rate)
def restore(self):
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
self._pitch = client.get_int('/desktop/sugar/speech/pitch')
self._rate = client.get_int('/desktop/sugar/speech/rate')
logging.debug('loading speech configuration pitch %s rate %s',
self._pitch, self._rate)
-class _GstSpeechPlayer(gobject.GObject):
+class _GstSpeechPlayer(GObject.GObject):
__gsignals__ = {
- 'play': (gobject.SIGNAL_RUN_FIRST, None, []),
- 'pause': (gobject.SIGNAL_RUN_FIRST, None, []),
- 'stop': (gobject.SIGNAL_RUN_FIRST, None, [])
+ 'play': (GObject.SignalFlags.RUN_FIRST, None, []),
+ 'pause': (GObject.SignalFlags.RUN_FIRST, None, []),
+ 'stop': (GObject.SignalFlags.RUN_FIRST, None, [])
}
def __init__(self):
- gobject.GObject.__init__(self)
+ GObject.GObject.__init__(self)
self._pipeline = None
def restart_sound_device(self):
diff --git a/src/jarabe/util/emulator.py b/src/jarabe/util/emulator.py
index 8d72620..a8d5f00 100644
--- a/src/jarabe/util/emulator.py
+++ b/src/jarabe/util/emulator.py
@@ -22,8 +22,8 @@ import time
from optparse import OptionParser
from gettext import gettext as _
-import gtk
-import gobject
+from gi.repository import Gtk
+from gi.repository import GObject
from sugar import env
@@ -39,7 +39,7 @@ def _run_xephyr(display, dpi, dimensions, fullscreen):
cmd.append('-ac')
cmd += ['-title', _('Sugar in a window')]
- screen_size = (gtk.gdk.screen_width(), gtk.gdk.screen_height())
+ screen_size = (Gdk.Screen.width(), Gdk.Screen.height())
if (not dimensions) and (fullscreen is None) and \
(screen_size <= default_dimensions):
@@ -51,7 +51,7 @@ def _run_xephyr(display, dpi, dimensions, fullscreen):
dimensions = '%dx%d' % default_dimensions
if not dpi:
- dpi = gtk.settings_get_default().get_property('gtk-xft-dpi') / 1024
+ dpi = Gtk.Settings.get_default().get_property('gtk-xft-dpi') / 1024
if fullscreen:
cmd.append('-fullscreen')
@@ -116,7 +116,7 @@ def _start_window_manager():
cmd.extend(['--no-force-fullscreen'])
- gobject.spawn_async(cmd, flags=gobject.SPAWN_SEARCH_PATH)
+ GObject.spawn_async(cmd, flags=GObject.SPAWN_SEARCH_PATH)
def _setup_env(display, scaling, emulator_pid):
diff --git a/src/jarabe/util/telepathy/connection_watcher.py b/src/jarabe/util/telepathy/connection_watcher.py
index 96af1cf..c252985 100644
--- a/src/jarabe/util/telepathy/connection_watcher.py
+++ b/src/jarabe/util/telepathy/connection_watcher.py
@@ -21,7 +21,7 @@ import logging
import dbus
import dbus.mainloop.glib
-import gobject
+from gi.repository import GObject
from telepathy.client import Connection
from telepathy.interfaces import CONN_INTERFACE
@@ -32,16 +32,16 @@ from telepathy.constants import CONNECTION_STATUS_CONNECTED, \
_instance = None
-class ConnectionWatcher(gobject.GObject):
+class ConnectionWatcher(GObject.GObject):
__gsignals__ = {
- 'connection-added': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
- ([gobject.TYPE_PYOBJECT])),
- 'connection-removed': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
- ([gobject.TYPE_PYOBJECT])),
+ 'connection-added': (GObject.SignalFlags.RUN_FIRST, None,
+ ([GObject.TYPE_PYOBJECT])),
+ 'connection-removed': (GObject.SignalFlags.RUN_FIRST, None,
+ ([GObject.TYPE_PYOBJECT])),
}
def __init__(self, bus=None):
- gobject.GObject.__init__(self)
+ GObject.GObject.__init__(self)
if bus is None:
self.bus = dbus.Bus()
@@ -118,5 +118,5 @@ if __name__ == '__main__':
watcher.connect('connection-added', connection_added_cb)
watcher.connect('connection-removed', connection_removed_cb)
- loop = gobject.MainLoop()
+ loop = GObject.MainLoop()
loop.run()
diff --git a/src/jarabe/view/buddymenu.py b/src/jarabe/view/buddymenu.py
index de5a772..8fd54cf 100644
--- a/src/jarabe/view/buddymenu.py
+++ b/src/jarabe/view/buddymenu.py
@@ -18,8 +18,8 @@
import logging
from gettext import gettext as _
-import gtk
-import gconf
+from gi.repository import Gtk
+from gi.repository import GConf
import glib
import dbus
@@ -40,7 +40,7 @@ class BuddyMenu(Palette):
buddy_icon = Icon(icon_name='computer-xo',
xo_color=buddy.get_color(),
- icon_size=gtk.ICON_SIZE_LARGE_TOOLBAR)
+ icon_size=Gtk.IconSize.LARGE_TOOLBAR)
nick = buddy.get_nick()
Palette.__init__(self, None,
primary_text=glib.markup_escape_text(nick),
@@ -89,7 +89,7 @@ class BuddyMenu(Palette):
self.menu.append(item)
item.show()
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
if client.get_bool('/desktop/sugar/show_restart'):
item = MenuItem(_('Restart'), 'system-restart')
diff --git a/src/jarabe/view/customizebundle.py b/src/jarabe/view/customizebundle.py
index 42da1b3..3e94def 100644
--- a/src/jarabe/view/customizebundle.py
+++ b/src/jarabe/view/customizebundle.py
@@ -18,7 +18,7 @@ import os
import glob
import hashlib
-import gtk
+from gi.repository import Gtk
from sugar import profile
from sugar.activity import bundlebuilder
@@ -152,7 +152,7 @@ def _create_custom_icon(new_basename, icon_name):
"""
user_activities_path = get_user_activities_path()
badge_path = None
- for path in gtk.icon_theme_get_default().get_search_path():
+ for path in Gtk.IconTheme.get_default().get_search_path():
if os.path.exists(os.path.join(path, 'sugar', 'scalable',
BADGE_SUBPATH)):
badge_path = path
diff --git a/src/jarabe/view/eventicon.py b/src/jarabe/view/eventicon.py
index 0432c34..c4da237 100644
--- a/src/jarabe/view/eventicon.py
+++ b/src/jarabe/view/eventicon.py
@@ -14,8 +14,8 @@
# License along with this library; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
-import gobject
-import gtk
+from gi.repository import GObject
+from gi.repository import Gtk
from sugar.graphics import style
from sugar.graphics.icon import _IconBuffer
@@ -60,7 +60,7 @@ class CursorInvoker(Invoker):
def get_rect(self):
window = self._item.get_window()
allocation = self._item.get_allocation()
- rect = Gdk.Rectangle()
+ rect = ()
rect.x, rect.y = window.get_root_coords(allocation.x, allocation.y)
rect.width = allocation.width
rect.height = allocation.height
@@ -85,7 +85,7 @@ class CursorInvoker(Invoker):
return self._item.get_toplevel()
-class EventIcon(gtk.EventBox):
+class EventIcon(Gtk.EventBox):
__gtype_name__ = 'SugarEventIcon'
@@ -93,7 +93,7 @@ class EventIcon(gtk.EventBox):
self._buffer = _IconBuffer()
self._alpha = 1.0
- gtk.EventBox.__init__(self)
+ GObject.GObject.__init__(self)
self.set_visible_window(False)
for key, value in kwargs.iteritems():
self.set_property(key, value)
@@ -142,7 +142,7 @@ class EventIcon(gtk.EventBox):
def get_file_name(self):
return self._buffer.file_name
- file_name = gobject.property(
+ file_name = GObject.property(
type=object, getter=get_file_name, setter=set_file_name)
def set_icon_name(self, value):
@@ -153,7 +153,7 @@ class EventIcon(gtk.EventBox):
def get_icon_name(self):
return self._buffer.icon_name
- icon_name = gobject.property(
+ icon_name = GObject.property(
type=object, getter=get_icon_name, setter=set_icon_name)
def set_xo_color(self, value):
@@ -161,7 +161,7 @@ class EventIcon(gtk.EventBox):
self._buffer.xo_color = value
self.queue_draw()
- xo_color = gobject.property(
+ xo_color = GObject.property(
type=object, getter=None, setter=set_xo_color)
def set_fill_color(self, value):
@@ -172,7 +172,7 @@ class EventIcon(gtk.EventBox):
def get_fill_color(self):
return self._buffer.fill_color
- fill_color = gobject.property(
+ fill_color = GObject.property(
type=object, getter=get_fill_color, setter=set_fill_color)
def set_stroke_color(self, value):
@@ -183,7 +183,7 @@ class EventIcon(gtk.EventBox):
def get_stroke_color(self):
return self._buffer.stroke_color
- stroke_color = gobject.property(
+ stroke_color = GObject.property(
type=object, getter=get_stroke_color, setter=set_stroke_color)
def set_background_color(self, value):
@@ -194,7 +194,7 @@ class EventIcon(gtk.EventBox):
def get_background_color(self):
return self._buffer.background_color
- background_color = gobject.property(
+ background_color = GObject.property(
type=object, getter=get_background_color, setter=set_background_color)
def set_size(self, value):
@@ -206,7 +206,7 @@ class EventIcon(gtk.EventBox):
def get_size(self):
return self._buffer.width
- pixel_size = gobject.property(
+ pixel_size = GObject.property(
type=object, getter=get_size, setter=set_size)
def set_scale(self, value):
@@ -217,7 +217,7 @@ class EventIcon(gtk.EventBox):
def get_scale(self):
return self._buffer.scale
- scale = gobject.property(
+ scale = GObject.property(
type=float, getter=get_scale, setter=set_scale)
def set_alpha(self, alpha):
@@ -225,7 +225,7 @@ class EventIcon(gtk.EventBox):
self._alpha = alpha
self.queue_draw()
- alpha = gobject.property(
+ alpha = GObject.property(
type=float, setter=set_alpha)
def set_cache(self, value):
@@ -234,7 +234,7 @@ class EventIcon(gtk.EventBox):
def get_cache(self):
return self._buffer.cache
- cache = gobject.property(
+ cache = GObject.property(
type=bool, default=False, getter=get_cache, setter=set_cache)
def set_badge_name(self, value):
@@ -245,7 +245,7 @@ class EventIcon(gtk.EventBox):
def get_badge_name(self):
return self._buffer.badge_name
- badge_name = gobject.property(
+ badge_name = GObject.property(
type=object, getter=get_badge_name, setter=set_badge_name)
def create_palette(self):
@@ -257,7 +257,7 @@ class EventIcon(gtk.EventBox):
def set_palette(self, palette):
self._palette_invoker.palette = palette
- palette = gobject.property(
+ palette = GObject.property(
type=object, setter=set_palette, getter=get_palette)
def get_palette_invoker(self):
@@ -267,7 +267,7 @@ class EventIcon(gtk.EventBox):
self._palette_invoker.detach()
self._palette_invoker = palette_invoker
- palette_invoker = gobject.property(
+ palette_invoker = GObject.property(
type=object, setter=set_palette_invoker, getter=get_palette_invoker)
def set_tooltip(self, text):
diff --git a/src/jarabe/view/keyhandler.py b/src/jarabe/view/keyhandler.py
index 530da75..4d67db7 100644
--- a/src/jarabe/view/keyhandler.py
+++ b/src/jarabe/view/keyhandler.py
@@ -19,7 +19,7 @@ import os
import logging
import dbus
-import gtk
+from gi.repository import Gtk
from sugar._sugarext import KeyGrabber
@@ -34,7 +34,7 @@ from jarabe.journal import journalactivity
_VOLUME_STEP = sound.VOLUME_STEP
_VOLUME_MAX = 100
-_TABBING_MODIFIER = gtk.gdk.MOD1_MASK
+_TABBING_MODIFIER = Gdk.ModifierType.MOD1_MASK
_actions_table = {
diff --git a/src/jarabe/view/launcher.py b/src/jarabe/view/launcher.py
index cb19448..6625df1 100644
--- a/src/jarabe/view/launcher.py
+++ b/src/jarabe/view/launcher.py
@@ -17,8 +17,8 @@
import logging
from gettext import gettext as _
-import gtk
-import gobject
+from gi.repository import Gtk
+from gi.repository import GObject
from sugar import wm
from sugar.graphics import style
@@ -27,24 +27,24 @@ from jarabe.model import shell
from jarabe.view.pulsingicon import PulsingIcon
-class LaunchWindow(gtk.Window):
+class LaunchWindow(Gtk.Window):
def __init__(self, activity_id, icon_path, icon_color):
- gobject.GObject.__init__(self)
+ GObject.GObject.__init__(self)
- self.props.type_hint = gtk.gdk.WINDOW_TYPE_HINT_SPLASHSCREEN
- self.modify_bg(gtk.STATE_NORMAL, style.COLOR_WHITE.get_gdk_color())
+ self.props.type_hint = Gdk.WindowTypeHint.SPLASHSCREEN
+ self.modify_bg(Gtk.StateType.NORMAL, style.COLOR_WHITE.get_gdk_color())
- canvas = gtk.VBox()
+ canvas = Gtk.VBox()
canvas.show()
self.add(canvas)
- bar_size = gtk.gdk.screen_height() / 5 * 2
+ bar_size = Gdk.Screen.height() / 5 * 2
- header = gtk.VBox()
+ header = Gtk.VBox()
header.set_size_request(-1, bar_size)
header.show()
- canvas.pack_start(header, expand=False)
+ canvas.pack_start(header, False, True, 0)
self._activity_id = activity_id
@@ -55,26 +55,26 @@ class LaunchWindow(gtk.Window):
style.XLARGE_ICON_SIZE, 10)
self._activity_icon.set_pulsing(True)
self._activity_icon.show()
- canvas.pack_start(self._activity_icon)
+ canvas.pack_start(self._activity_icon, True, True, 0)
- footer = gtk.VBox(spacing=style.DEFAULT_SPACING)
+ footer = Gtk.VBox(spacing=style.DEFAULT_SPACING)
footer.set_size_request(-1, bar_size)
footer.show()
- canvas.pack_end(footer, expand=False)
+ canvas.pack_end(footer, False, True, 0)
- self.error_text = gtk.Label()
+ self.error_text = Gtk.Label()
self.error_text.props.use_markup = True
- footer.pack_start(self.error_text, expand=False)
+ footer.pack_start(self.error_text, False, True, 0)
- button_box = gtk.Alignment(xalign=0.5)
+ button_box = Gtk.Alignment.new(xalign=0.5)
button_box.show()
- footer.pack_start(button_box, expand=False)
- self.cancel_button = gtk.Button(stock=gtk.STOCK_STOP)
+ footer.pack_start(button_box, False, True, 0)
+ self.cancel_button = Gtk.Button(stock=Gtk.STOCK_STOP)
button_box.add(self.cancel_button)
self.connect('realize', self.__realize_cb)
- screen = gtk.gdk.screen_get_default()
+ screen = Gdk.Screen.get_default()
screen.connect('size-changed', self.__size_changed_cb)
self._home = shell.get_model()
@@ -89,7 +89,7 @@ class LaunchWindow(gtk.Window):
self.present()
def _update_size(self):
- self.resize(gtk.gdk.screen_width(), gtk.gdk.screen_height())
+ self.resize(Gdk.Screen.width(), Gdk.Screen.height())
def __realize_cb(self, widget):
wm.set_activity_id(widget.window, str(self._activity_id))
diff --git a/src/jarabe/view/palettes.py b/src/jarabe/view/palettes.py
index 3195c0c..e321221 100644
--- a/src/jarabe/view/palettes.py
+++ b/src/jarabe/view/palettes.py
@@ -19,9 +19,9 @@ import statvfs
from gettext import gettext as _
import logging
-import gconf
+from gi.repository import GConf
import glib
-import gtk
+from gi.repository import Gtk
from sugar import env
from sugar.graphics.palette import Palette
@@ -95,7 +95,7 @@ class CurrentActivityPalette(BasePalette):
self.menu.append(menu_item)
menu_item.show()
- separator = gtk.SeparatorMenuItem()
+ separator = Gtk.SeparatorMenuItem()
self.menu.append(separator)
separator.show()
@@ -105,14 +105,14 @@ class CurrentActivityPalette(BasePalette):
menu_item.show()
def __resume_activate_cb(self, menu_item):
- self._home_activity.get_window().activate(gtk.get_current_event_time())
+ self._home_activity.get_window().activate(Gtk.get_current_event_time())
def __view_source__cb(self, menu_item):
setup_view_source(self._home_activity)
shell_model = shell.get_model()
if self._home_activity is not shell_model.get_active_activity():
self._home_activity.get_window().activate( \
- gtk.get_current_event_time())
+ Gtk.get_current_event_time())
def __stop_activate_cb(self, menu_item):
self._home_activity.get_window().close(1)
@@ -124,11 +124,11 @@ class ActivityPalette(Palette):
def __init__(self, activity_info):
self._activity_info = activity_info
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
color = XoColor(client.get_string('/desktop/sugar/user/color'))
activity_icon = Icon(file=activity_info.get_icon(),
xo_color=color,
- icon_size=gtk.ICON_SIZE_LARGE_TOOLBAR)
+ icon_size=Gtk.IconSize.LARGE_TOOLBAR)
name = activity_info.get_name()
Palette.__init__(self, primary_text=glib.markup_escape_text(name),
@@ -162,15 +162,15 @@ class JournalPalette(BasePalette):
title = self._home_activity.get_title()
self.set_primary_text(glib.markup_escape_text(title))
- vbox = gtk.VBox()
+ vbox = Gtk.VBox()
self.set_content(vbox)
vbox.show()
- self._progress_bar = gtk.ProgressBar()
+ self._progress_bar = Gtk.ProgressBar()
vbox.add(self._progress_bar)
self._progress_bar.show()
- self._free_space_label = gtk.Label()
+ self._free_space_label = Gtk.Label()
self._free_space_label.set_alignment(0.5, 0.5)
vbox.add(self._free_space_label)
self._free_space_label.show()
@@ -180,7 +180,7 @@ class JournalPalette(BasePalette):
menu_item = MenuItem(_('Show contents'))
icon = Icon(file=self._home_activity.get_icon_path(),
- icon_size=gtk.ICON_SIZE_MENU,
+ icon_size=Gtk.IconSize.MENU,
xo_color=self._home_activity.get_icon_color())
menu_item.set_image(icon)
icon.show()
@@ -190,7 +190,7 @@ class JournalPalette(BasePalette):
menu_item.show()
def __open_activate_cb(self, menu_item):
- self._home_activity.get_window().activate(gtk.get_current_event_time())
+ self._home_activity.get_window().activate(Gtk.get_current_event_time())
def __popup_cb(self, palette):
stat = os.statvfs(env.get_profile_path())
@@ -211,15 +211,15 @@ class VolumePalette(Palette):
path = mount.get_root().get_path()
self.props.secondary_text = glib.markup_escape_text(path)
- vbox = gtk.VBox()
+ vbox = Gtk.VBox()
self.set_content(vbox)
vbox.show()
- self._progress_bar = gtk.ProgressBar()
+ self._progress_bar = Gtk.ProgressBar()
vbox.add(self._progress_bar)
self._progress_bar.show()
- self._free_space_label = gtk.Label()
+ self._free_space_label = Gtk.Label()
self._free_space_label.set_alignment(0.5, 0.5)
vbox.add(self._free_space_label)
self._free_space_label.show()
@@ -228,7 +228,7 @@ class VolumePalette(Palette):
menu_item = MenuItem(pgettext('Volume', 'Remove'))
- icon = Icon(icon_name='media-eject', icon_size=gtk.ICON_SIZE_MENU)
+ icon = Icon(icon_name='media-eject', icon_size=Gtk.IconSize.MENU)
menu_item.set_image(icon)
icon.show()
diff --git a/src/jarabe/view/pulsingicon.py b/src/jarabe/view/pulsingicon.py
index 39e0bab..6cecfb5 100644
--- a/src/jarabe/view/pulsingicon.py
+++ b/src/jarabe/view/pulsingicon.py
@@ -16,7 +16,7 @@
import math
-import gobject
+from gi.repository import GObject
from sugar.graphics.icon import Icon
from sugar.graphics import style
@@ -53,14 +53,14 @@ class Pulser(object):
if restart:
self._phase = 0
if self._pulse_hid is None:
- self._pulse_hid = gobject.timeout_add(_INTERVAL, self.__pulse_cb)
+ self._pulse_hid = GObject.timeout_add(_INTERVAL, self.__pulse_cb)
if self._start_scale != self._end_scale:
self._icon.scale = self._start_scale + \
self._current_scale_step * self._current_zoom_step
def stop(self):
if self._pulse_hid is not None:
- gobject.source_remove(self._pulse_hid)
+ GObject.source_remove(self._pulse_hid)
self._pulse_hid = None
self._icon.xo_color = self._icon.get_base_color()
self._phase = 0
@@ -104,7 +104,7 @@ class PulsingIcon(Icon):
def get_pulse_color(self):
return self._pulse_color
- pulse_color = gobject.property(
+ pulse_color = GObject.property(
type=object, getter=get_pulse_color, setter=set_pulse_color)
def set_base_color(self, base_color):
@@ -125,7 +125,7 @@ class PulsingIcon(Icon):
end_scale = 1.0
self._pulser.set_zooming(start_scale, end_scale, zoom_steps)
- base_color = gobject.property(
+ base_color = GObject.property(
type=object, getter=get_base_color, setter=set_base_color)
def set_paused(self, paused):
@@ -139,7 +139,7 @@ class PulsingIcon(Icon):
def get_paused(self):
return self._paused
- paused = gobject.property(
+ paused = GObject.property(
type=bool, default=False, getter=get_paused, setter=set_paused)
def set_pulsing(self, pulsing):
@@ -153,7 +153,7 @@ class PulsingIcon(Icon):
def get_pulsing(self):
return self._pulsing
- pulsing = gobject.property(
+ pulsing = GObject.property(
type=bool, default=False, getter=get_pulsing, setter=set_pulsing)
def _get_palette(self):
@@ -196,7 +196,7 @@ class EventPulsingIcon(EventIcon):
def get_pulse_color(self):
return self._pulse_color
- pulse_color = gobject.property(
+ pulse_color = GObject.property(
type=object, getter=get_pulse_color, setter=set_pulse_color)
def set_base_color(self, base_color):
@@ -206,7 +206,7 @@ class EventPulsingIcon(EventIcon):
def get_base_color(self):
return self._base_color
- base_color = gobject.property(
+ base_color = GObject.property(
type=object, getter=get_base_color, setter=set_base_color)
def set_paused(self, paused):
@@ -220,7 +220,7 @@ class EventPulsingIcon(EventIcon):
def get_paused(self):
return self._paused
- paused = gobject.property(
+ paused = GObject.property(
type=bool, default=False, getter=get_paused, setter=set_paused)
def set_pulsing(self, pulsing):
@@ -236,5 +236,5 @@ class EventPulsingIcon(EventIcon):
def get_pulsing(self):
return self._pulsing
- pulsing = gobject.property(
+ pulsing = GObject.property(
type=bool, default=False, getter=get_pulsing, setter=set_pulsing)
diff --git a/src/jarabe/view/service.py b/src/jarabe/view/service.py
index 29e46b2..61b3d59 100644
--- a/src/jarabe/view/service.py
+++ b/src/jarabe/view/service.py
@@ -18,7 +18,7 @@
"""D-bus service providing access to the shell's functionality"""
import dbus
-import gtk
+from gi.repository import Gtk
from jarabe.model import shell
from jarabe.model import bundleregistry
@@ -74,7 +74,7 @@ class UIService(dbus.service.Object):
activity = self._shell_model.get_activity_by_id(activity_id)
if activity is not None and activity.get_window() is not None:
- activity.get_window().activate(gtk.get_current_event_time())
+ activity.get_window().activate(Gtk.get_current_event_time())
return self._shell_model.get_launcher(activity_id) is None
return False
diff --git a/src/jarabe/view/tabbinghandler.py b/src/jarabe/view/tabbinghandler.py
index 0a298cd..4c1106d 100644
--- a/src/jarabe/view/tabbinghandler.py
+++ b/src/jarabe/view/tabbinghandler.py
@@ -16,8 +16,8 @@
import logging
-import gobject
-import gtk
+from gi.repository import GObject
+from gi.repository import Gtk
from jarabe.model import shell
@@ -36,13 +36,13 @@ class TabbingHandler(object):
if not self._tabbing:
logging.debug('Grabing the input.')
- screen = gtk.gdk.screen_get_default()
+ screen = Gdk.Screen.get_default()
window = screen.get_root_window()
- keyboard_grab_result = gtk.gdk.keyboard_grab(window)
- pointer_grab_result = gtk.gdk.pointer_grab(window)
+ keyboard_grab_result = Gdk.keyboard_grab(window)
+ pointer_grab_result = Gdk.pointer_grab(window)
- self._tabbing = (keyboard_grab_result == gtk.gdk.GRAB_SUCCESS and
- pointer_grab_result == gtk.gdk.GRAB_SUCCESS)
+ self._tabbing = (keyboard_grab_result == Gdk.GrabStatus.SUCCESS and
+ pointer_grab_result == Gdk.GrabStatus.SUCCESS)
# Now test that the modifier is still active to prevent race
# conditions. We also test if one of the grabs failed.
@@ -51,10 +51,10 @@ class TabbingHandler(object):
logging.debug('Releasing grabs again.')
# ungrab keyboard/pointer if the grab was successfull.
- if keyboard_grab_result == gtk.gdk.GRAB_SUCCESS:
- gtk.gdk.keyboard_ungrab()
- if pointer_grab_result == gtk.gdk.GRAB_SUCCESS:
- gtk.gdk.pointer_ungrab()
+ if keyboard_grab_result == Gdk.GrabStatus.SUCCESS:
+ Gdk.keyboard_ungrab()
+ if pointer_grab_result == Gdk.GrabStatus.SUCCESS:
+ Gdk.pointer_ungrab()
self._tabbing = False
else:
@@ -67,12 +67,12 @@ class TabbingHandler(object):
def _start_timeout(self, event_time):
self._cancel_timeout()
- self._timeout = gobject.timeout_add(_RAISE_DELAY,
+ self._timeout = GObject.timeout_add(_RAISE_DELAY,
lambda: self.__timeout_cb(event_time))
def _cancel_timeout(self):
if self._timeout:
- gobject.source_remove(self._timeout)
+ GObject.source_remove(self._timeout)
self._timeout = None
def _activate_current(self, event_time):
@@ -133,8 +133,8 @@ class TabbingHandler(object):
next_activity.get_window().activate(event_time)
def stop(self, event_time):
- gtk.gdk.keyboard_ungrab()
- gtk.gdk.pointer_ungrab()
+ Gdk.keyboard_ungrab()
+ Gdk.pointer_ungrab()
self._tabbing = False
self._frame.hide()
diff --git a/src/jarabe/view/viewsource.py b/src/jarabe/view/viewsource.py
index 1285e69..2ab2f3c 100644
--- a/src/jarabe/view/viewsource.py
+++ b/src/jarabe/view/viewsource.py
@@ -22,12 +22,12 @@ import sys
import logging
from gettext import gettext as _
-import gobject
-import pango
-import gtk
-import gtksourceview2
+from gi.repository import GObject
+from gi.repository import Pango
+from gi.repository import Gtk
+from gi.repository import GtkSource
import dbus
-import gconf
+from gi.repository import GConf
from sugar.graphics import style
from sugar.graphics.icon import Icon
@@ -46,7 +46,7 @@ _EXCLUDE_EXTENSIONS = ('.pyc', '.pyo', '.so', '.o', '.a', '.la', '.mo', '~',
'.xo', '.tar', '.bz2', '.zip', '.gz')
_EXCLUDE_NAMES = ['.deps', '.libs']
-_SOURCE_FONT = pango.FontDescription('Monospace %d' % style.FONT_SIZE)
+_SOURCE_FONT = Pango.FontDescription('Monospace %d' % style.FONT_SIZE)
_logger = logging.getLogger('ViewSource')
map_activity_to_window = {}
@@ -107,22 +107,22 @@ def setup_view_source(activity):
view_source.show()
-class ViewSource(gtk.Window):
+class ViewSource(Gtk.Window):
__gtype_name__ = 'SugarViewSource'
def __init__(self, window_xid, bundle_path, document_path,
sugar_toolkit_path, title):
- gtk.Window.__init__(self)
+ GObject.GObject.__init__(self)
_logger.debug('ViewSource paths: %r %r %r', bundle_path,
document_path, sugar_toolkit_path)
self.set_decorated(False)
- self.set_position(gtk.WIN_POS_CENTER_ALWAYS)
+ self.set_position(Gtk.WindowPosition.CENTER_ALWAYS)
self.set_border_width(style.LINE_WIDTH)
- width = gtk.gdk.screen_width() - style.GRID_CELL_SIZE * 2
- height = gtk.gdk.screen_height() - style.GRID_CELL_SIZE * 2
+ width = Gdk.Screen.width() - style.GRID_CELL_SIZE * 2
+ height = Gdk.Screen.height() - style.GRID_CELL_SIZE * 2
self.set_size_request(width, height)
self._parent_window_xid = window_xid
@@ -132,19 +132,19 @@ class ViewSource(gtk.Window):
self.connect('destroy', self.__destroy_cb, document_path)
self.connect('key-press-event', self.__key_press_event_cb)
- vbox = gtk.VBox()
+ vbox = Gtk.VBox()
self.add(vbox)
vbox.show()
toolbar = Toolbar(title, bundle_path, document_path,
sugar_toolkit_path)
- vbox.pack_start(toolbar, expand=False)
+ vbox.pack_start(toolbar, False, True, 0)
toolbar.connect('stop-clicked', self.__stop_clicked_cb)
toolbar.connect('source-selected', self.__source_selected_cb)
toolbar.show()
- pane = gtk.HPaned()
- vbox.pack_start(pane)
+ pane = Gtk.HPaned()
+ vbox.pack_start(pane, True, True, 0)
pane.show()
self._selected_bundle_file = None
@@ -162,7 +162,7 @@ class ViewSource(gtk.Window):
# Split the tree pane into two vertical panes, one of which
# will be hidden
- tree_panes = gtk.VPaned()
+ tree_panes = Gtk.VPaned()
tree_panes.show()
self._bundle_source_viewer = FileViewer(bundle_path, file_name)
@@ -190,18 +190,18 @@ class ViewSource(gtk.Window):
self._select_source(document_path)
def _calculate_char_width(self, char_count):
- widget = gtk.Label('')
+ widget = Gtk.Label(label='')
context = widget.get_pango_context()
pango_font = context.load_font(_SOURCE_FONT)
metrics = pango_font.get_metrics()
- return pango.PIXELS(metrics.get_approximate_char_width()) * char_count
+ return Pango.PIXELS(metrics.get_approximate_char_width()) * char_count
def __realize_cb(self, widget):
- self.window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DIALOG)
+ self.set_type_hint(Gdk.WindowTypeHint.DIALOG)
self.window.set_accept_focus(True)
- parent = gtk.gdk.window_foreign_new(self._parent_window_xid)
- self.window.set_transient_for(parent)
+ parent = Gdk.window_foreign_new(self._parent_window_xid)
+ self.set_transient_for(parent)
def __stop_clicked_cb(self, widget):
self.destroy()
@@ -235,7 +235,7 @@ class ViewSource(gtk.Window):
os.unlink(document_path)
def __key_press_event_cb(self, window, event):
- keyname = gtk.gdk.keyval_name(event.keyval)
+ keyname = Gdk.keyval_name(event.keyval)
if keyname == 'Escape':
self.destroy()
@@ -262,10 +262,10 @@ class DocumentButton(RadioToolButton):
self.props.tooltip = _('Instance Source')
- client = gconf.client_get_default()
+ client = GConf.Client.get_default()
self._color = client.get_string('/desktop/sugar/user/color')
icon = Icon(file=file_name,
- icon_size=gtk.ICON_SIZE_LARGE_TOOLBAR,
+ icon_size=Gtk.IconSize.LARGE_TOOLBAR,
xo_color=XoColor(self._color))
self.set_icon_widget(icon)
icon.show()
@@ -273,13 +273,13 @@ class DocumentButton(RadioToolButton):
if bundle:
menu_item = MenuItem(_('Duplicate'))
icon = Icon(icon_name='edit-duplicate',
- icon_size=gtk.ICON_SIZE_MENU,
+ icon_size=Gtk.IconSize.MENU,
xo_color=XoColor(self._color))
menu_item.connect('activate', self.__copy_to_home_cb)
else:
menu_item = MenuItem(_('Keep'))
icon = Icon(icon_name='document-save',
- icon_size=gtk.ICON_SIZE_MENU,
+ icon_size=Gtk.IconSize.MENU,
xo_color=XoColor(self._color))
menu_item.connect('activate', self.__keep_in_journal_cb)
@@ -331,17 +331,17 @@ class DocumentButton(RadioToolButton):
self._jobject.destroy()
-class Toolbar(gtk.Toolbar):
+class Toolbar(Gtk.Toolbar):
__gtype_name__ = 'SugarViewSourceToolbar'
__gsignals__ = {
- 'stop-clicked': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ([])),
- 'source-selected': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ 'stop-clicked': (GObject.SignalFlags.RUN_FIRST, None, ([])),
+ 'source-selected': (GObject.SignalFlags.RUN_FIRST, None,
([str])),
}
def __init__(self, title, bundle_path, document_path, sugar_toolkit_path):
- gtk.Toolbar.__init__(self)
+ GObject.GObject.__init__(self)
document_button = None
self.bundle_path = bundle_path
@@ -364,7 +364,7 @@ class Toolbar(gtk.Toolbar):
activity_button = DocumentButton(file_name, bundle_path, title,
bundle=True)
icon = Icon(file=file_name,
- icon_size=gtk.ICON_SIZE_LARGE_TOOLBAR,
+ icon_size=Gtk.IconSize.LARGE_TOOLBAR,
fill_color=style.COLOR_TRANSPARENT.get_svg(),
stroke_color=style.COLOR_WHITE.get_svg())
activity_button.set_icon_widget(icon)
@@ -381,7 +381,7 @@ class Toolbar(gtk.Toolbar):
if sugar_toolkit_path is not None:
sugar_button = RadioToolButton()
icon = Icon(icon_name='computer-xo',
- icon_size=gtk.ICON_SIZE_LARGE_TOOLBAR,
+ icon_size=Gtk.IconSize.LARGE_TOOLBAR,
fill_color=style.COLOR_TRANSPARENT.get_svg(),
stroke_color=style.COLOR_WHITE.get_svg())
sugar_button.set_icon_widget(icon)
@@ -399,7 +399,7 @@ class Toolbar(gtk.Toolbar):
self.activity_title_text = _('View source: %s') % title
self.sugar_toolkit_title_text = _('View source: %r') % 'Sugar Toolkit'
- self.label = gtk.Label()
+ self.label = Gtk.Label()
self.label.set_markup('<b>%s</b>' % self.activity_title_text)
self.label.set_alignment(0, 0.5)
self._add_widget(self.label)
@@ -413,7 +413,7 @@ class Toolbar(gtk.Toolbar):
stop.show()
def _add_separator(self, expand=False):
- separator = gtk.SeparatorToolItem()
+ separator = Gtk.SeparatorToolItem()
separator.props.draw = False
if expand:
separator.set_expand(True)
@@ -423,7 +423,7 @@ class Toolbar(gtk.Toolbar):
separator.show()
def _add_widget(self, widget, expand=False):
- tool_item = gtk.ToolItem()
+ tool_item = Gtk.ToolItem()
tool_item.set_expand(expand)
tool_item.add(widget)
@@ -444,26 +444,26 @@ class Toolbar(gtk.Toolbar):
self.label.set_markup('<b>%s</b>' % self.activity_title_text)
-class FileViewer(gtk.ScrolledWindow):
+class FileViewer(Gtk.ScrolledWindow):
__gtype_name__ = 'SugarFileViewer'
__gsignals__ = {
- 'file-selected': (gobject.SIGNAL_RUN_FIRST,
- gobject.TYPE_NONE,
+ 'file-selected': (GObject.SignalFlags.RUN_FIRST,
+ None,
([str])),
}
def __init__(self, path, initial_filename):
- gtk.ScrolledWindow.__init__(self)
+ GObject.GObject.__init__(self)
- self.props.hscrollbar_policy = gtk.POLICY_AUTOMATIC
- self.props.vscrollbar_policy = gtk.POLICY_AUTOMATIC
+ self.props.hscrollbar_policy = Gtk.PolicyType.AUTOMATIC
+ self.props.vscrollbar_policy = Gtk.PolicyType.AUTOMATIC
self.set_size_request(style.GRID_CELL_SIZE * 3, -1)
self._path = None
self._initial_filename = initial_filename
- self._tree_view = gtk.TreeView()
+ self._tree_view = Gtk.TreeView()
self.add(self._tree_view)
self._tree_view.show()
@@ -471,8 +471,8 @@ class FileViewer(gtk.ScrolledWindow):
selection = self._tree_view.get_selection()
selection.connect('changed', self.__selection_changed_cb)
- cell = gtk.CellRendererText()
- column = gtk.TreeViewColumn()
+ cell = Gtk.CellRendererText()
+ column = Gtk.TreeViewColumn()
column.pack_start(cell, True)
column.add_attribute(cell, 'text', 0)
self._tree_view.append_column(column)
@@ -486,7 +486,7 @@ class FileViewer(gtk.ScrolledWindow):
return
self._path = path
- self._tree_view.set_model(gtk.TreeStore(str, str))
+ self._tree_view.set_model(Gtk.TreeStore(str, str))
self._model = self._tree_view.get_model()
self._add_dir_to_model(path)
@@ -514,19 +514,19 @@ class FileViewer(gtk.ScrolledWindow):
self.emit('file-selected', file_path)
-class SourceDisplay(gtk.ScrolledWindow):
+class SourceDisplay(Gtk.ScrolledWindow):
__gtype_name__ = 'SugarSourceDisplay'
def __init__(self):
- gtk.ScrolledWindow.__init__(self)
+ GObject.GObject.__init__(self)
- self.props.hscrollbar_policy = gtk.POLICY_AUTOMATIC
- self.props.vscrollbar_policy = gtk.POLICY_AUTOMATIC
+ self.props.hscrollbar_policy = Gtk.PolicyType.AUTOMATIC
+ self.props.vscrollbar_policy = Gtk.PolicyType.AUTOMATIC
- self._buffer = gtksourceview2.Buffer()
+ self._buffer = GtkSource.Buffer()
self._buffer.set_highlight_syntax(True)
- self._source_view = gtksourceview2.View(self._buffer)
+ self._source_view = GtkSource.View(self._buffer)
self._source_view.set_editable(False)
self._source_view.set_cursor_visible(True)
self._source_view.set_show_line_numbers(True)
@@ -549,7 +549,7 @@ class SourceDisplay(gtk.ScrolledWindow):
mime_type = mime.get_for_file(self._file_path)
_logger.debug('Detected mime type: %r', mime_type)
- language_manager = gtksourceview2.language_manager_get_default()
+ language_manager = GtkSource.LanguageManager.get_default()
detected_language = None
for language_id in language_manager.get_language_ids():
language = language_manager.get_language(language_id)