[Sugar-devel] [PATCH 1/2] Port from PyGTK to PyGI, renaming

Manuel Quiñones manuq at laptop.org
Tue Nov 22 16:42:48 EST 2011


Was done running the pygi-convert.sh script.

Signed-off-by: Manuel Quiñones <manuq at laptop.org>
---
 browser.py          |   54 +++++++++++++++++++++++++-------------------------
 downloadmanager.py  |   18 ++++++++--------
 edittoolbar.py      |   12 +++++-----
 filepicker.py       |    4 +-
 linkbutton.py       |   20 +++++++++---------
 model.py            |   10 ++++----
 palettes.py         |   34 ++++++++++++++++----------------
 progresslistener.py |   12 +++++-----
 sessionhistory.py   |   12 +++++-----
 viewtoolbar.py      |    8 +++---
 webactivity.py      |   30 ++++++++++++++--------------
 webtoolbar.py       |   50 +++++++++++++++++++++++-----------------------
 widgets.py          |   32 +++++++++++++++---------------
 13 files changed, 148 insertions(+), 148 deletions(-)

diff --git a/browser.py b/browser.py
index e1d8990..f2c4cc5 100644
--- a/browser.py
+++ b/browser.py
@@ -20,9 +20,9 @@ import os
 import time
 from gettext import gettext as _
 
-import gobject
-import gtk
-import pango
+from gi.repository import GObject
+from gi.repository import Gtk
+from gi.repository import Pango
 import hulahop
 import xpcom
 from xpcom.nsError import *
@@ -102,8 +102,8 @@ class TabbedView(BrowserNotebook):
     __gtype_name__ = 'TabbedView'
 
     __gsignals__ = {
-        'focus-url-entry': (gobject.SIGNAL_RUN_FIRST,
-                            gobject.TYPE_NONE,
+        'focus-url-entry': (GObject.SignalFlags.RUN_FIRST,
+                            None,
                             ([])),
     }
 
@@ -285,7 +285,7 @@ class TabbedView(BrowserNotebook):
     def _get_current_browser(self):
         return self.get_nth_page(self.get_current_page())
 
-    current_browser = gobject.property(type=object,
+    current_browser = GObject.property(type=object,
                                        getter=_get_current_browser)
 
     def get_session(self):
@@ -310,7 +310,7 @@ class TabbedView(BrowserNotebook):
             sessionstore.set_session(browser, tab_session)
 
 
-gtk.rc_parse_string('''
+Gtk.rc_parse_string('''
     style "browse-tab-close" {
         xthickness = 0
         ythickness = 0
@@ -318,37 +318,37 @@ gtk.rc_parse_string('''
     widget "*browse-tab-close" style "browse-tab-close"''')
 
 
-class TabLabel(gtk.HBox):
+class TabLabel(Gtk.HBox):
     __gtype_name__ = 'TabLabel'
 
     __gsignals__ = {
-        'tab-close': (gobject.SIGNAL_RUN_FIRST,
-                      gobject.TYPE_NONE,
+        'tab-close': (GObject.SignalFlags.RUN_FIRST,
+                      None,
                       ([object])),
     }
 
     def __init__(self, browser):
-        gobject.GObject.__init__(self)
+        GObject.GObject.__init__(self)
 
         self._browser = browser
         self._browser.connect('is-setup', self.__browser_is_setup_cb)
 
-        self._label = gtk.Label(_('Untitled'))
-        self._label.set_ellipsize(pango.ELLIPSIZE_END)
+        self._label = Gtk.Label(label=_('Untitled'))
+        self._label.set_ellipsize(Pango.EllipsizeMode.END)
         self._label.set_alignment(0, 0.5)
-        self.pack_start(self._label)
+        self.pack_start(self._label, True, True, 0)
         self._label.show()
 
         close_tab_icon = Icon(icon_name='browse-close-tab')
-        button = gtk.Button()
-        button.props.relief = gtk.RELIEF_NONE
+        button = Gtk.Button()
+        button.props.relief = Gtk.ReliefStyle.NONE
         button.props.focus_on_click = False
-        icon_box = gtk.HBox()
+        icon_box = Gtk.HBox()
         icon_box.pack_start(close_tab_icon, True, False, 0)
         button.add(icon_box)
         button.connect('clicked', self.__button_clicked_cb)
         button.set_name('browse-tab-close')
-        self.pack_start(button, expand=False)
+        self.pack_start(button, False, True, 0)
         close_tab_icon.show()
         icon_box.show()
         button.show()
@@ -389,11 +389,11 @@ class Browser(WebView):
     __gtype_name__ = 'Browser'
 
     __gsignals__ = {
-        'is-setup': (gobject.SIGNAL_RUN_FIRST,
-                     gobject.TYPE_NONE,
+        'is-setup': (GObject.SignalFlags.RUN_FIRST,
+                     None,
                      ([])),
-        'new-tab': (gobject.SIGNAL_RUN_FIRST,
-                    gobject.TYPE_NONE,
+        'new-tab': (GObject.SignalFlags.RUN_FIRST,
+                    None,
                     ([str])),
     }
 
@@ -489,15 +489,15 @@ class Browser(WebView):
         self.emit('new-tab', url)
 
 
-class PopupDialog(gtk.Window):
+class PopupDialog(Gtk.Window):
     def __init__(self):
-        gtk.Window.__init__(self)
+        GObject.GObject.__init__(self)
 
-        self.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DIALOG)
+        self.set_type_hint(Gdk.WindowTypeHint.DIALOG)
 
         border = style.GRID_CELL_SIZE
-        self.set_default_size(gtk.gdk.screen_width() - border * 2,
-                              gtk.gdk.screen_height() - border * 2)
+        self.set_default_size(Gdk.Screen.width() - border * 2,
+                              Gdk.Screen.height() - border * 2)
 
         self.view = WebView()
         self.view.connect('notify::visibility', self.__notify_visibility_cb)
diff --git a/downloadmanager.py b/downloadmanager.py
index 98d4f1a..0a8d2b2 100644
--- a/downloadmanager.py
+++ b/downloadmanager.py
@@ -21,7 +21,7 @@ from gettext import gettext as _
 import time
 import tempfile
 
-import gtk
+from gi.repository import Gtk
 import hulahop
 import xpcom
 from xpcom.nsError import *
@@ -188,11 +188,11 @@ class Download:
             self._stop_alert.props.title = _('Download completed')
             self._stop_alert.props.msg = self._get_file_name()
             open_icon = Icon(icon_name='zoom-activity')
-            self._stop_alert.add_button(gtk.RESPONSE_APPLY,
+            self._stop_alert.add_button(Gtk.ResponseType.APPLY,
                                         _('Show in Journal'), open_icon)
             open_icon.show()
             ok_icon = Icon(icon_name='dialog-ok')
-            self._stop_alert.add_button(gtk.RESPONSE_OK, _('Ok'), ok_icon)
+            self._stop_alert.add_button(Gtk.ResponseType.OK, _('Ok'), ok_icon)
             ok_icon.show()
             self._activity.add_alert(self._stop_alert)
             self._stop_alert.connect('response', self.__stop_response_cb)
@@ -219,7 +219,7 @@ class Download:
                             timeout=360 * DBUS_PYTHON_TIMEOUT_UNITS_PER_SECOND)
 
     def _check_image_mime_type(self):
-        for pixbuf_format in gtk.gdk.pixbuf_get_formats():
+        for pixbuf_format in GdkPixbuf.Pixbuf.get_formats():
             if self._mime_type in pixbuf_format['mime_types']:
                 return True
         return False
@@ -227,7 +227,7 @@ class Download:
     def _get_preview_image(self):
         preview_width, preview_height = style.zoom(300), style.zoom(225)
 
-        pixbuf = gtk.gdk.pixbuf_new_from_file(self._target_file.path)
+        pixbuf = GdkPixbuf.Pixbuf.new_from_file(self._target_file.path)
         width, height = pixbuf.get_width(), pixbuf.get_height()
 
         scale = 1
@@ -236,7 +236,7 @@ class Download:
             scale_y = preview_height / float(height)
             scale = min(scale_x, scale_y)
 
-        pixbuf2 = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, \
+        pixbuf2 = GdkPixbuf.Pixbuf(GdkPixbuf.Colorspace.RGB, \
                             pixbuf.get_has_alpha(), \
                             pixbuf.get_bits_per_sample(), \
                             preview_width, preview_height)
@@ -249,7 +249,7 @@ class Download:
                             preview_width - (margin_x * 2), \
                             preview_height - (margin_y * 2), \
                             margin_x, margin_y, scale, scale, \
-                            gtk.gdk.INTERP_BILINEAR)
+                            GdkPixbuf.InterpType.BILINEAR)
 
         preview_data = []
 
@@ -262,7 +262,7 @@ class Download:
 
     def __start_response_cb(self, alert, response_id):
         global _active_downloads
-        if response_id is gtk.RESPONSE_CANCEL:
+        if response_id is Gtk.ResponseType.CANCEL:
             logging.debug('Download Canceled')
             logging.debug('target_path=%r', self._target_file.path)
             self.cancelable.cancel(NS_ERROR_FAILURE)
@@ -278,7 +278,7 @@ class Download:
 
     def __stop_response_cb(self, alert, response_id):
         global _active_downloads
-        if response_id is gtk.RESPONSE_APPLY:
+        if response_id is Gtk.ResponseType.APPLY:
             logging.debug('Start application with downloaded object')
             activity.show_object_in_journal(self._object_id)
         self._activity.remove_alert(alert)
diff --git a/edittoolbar.py b/edittoolbar.py
index f0cdb1a..d5f0286 100644
--- a/edittoolbar.py
+++ b/edittoolbar.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 gettext import gettext as _
 
 from xpcom.components import interfaces
@@ -64,13 +64,13 @@ class EditToolbar(activity.EditToolbar):
         logging.debug('observe: %r %r %r' % (subject, topic, data))
         """
 
-        separator = gtk.SeparatorToolItem()
+        separator = Gtk.SeparatorToolItem()
         separator.set_draw(False)
         separator.set_expand(True)
         self.insert(separator, -1)
         separator.show()
 
-        search_item = gtk.ToolItem()
+        search_item = Gtk.ToolItem()
         self.search_entry = iconentry.IconEntry()
         self.search_entry.set_icon_from_name(iconentry.ICON_ENTRY_PRIMARY,
                                              'system-search')
@@ -78,7 +78,7 @@ class EditToolbar(activity.EditToolbar):
         self.search_entry.connect('activate', self.__search_entry_activate_cb)
         self.search_entry.connect('changed', self.__search_entry_changed_cb)
 
-        width = int(gtk.gdk.screen_width() / 3)
+        width = int(Gdk.Screen.width() / 3)
         self.search_entry.set_size_request(width, -1)
 
         search_item.add(self.search_entry)
@@ -135,12 +135,12 @@ class EditToolbar(activity.EditToolbar):
         if found == interfaces.nsITypeAheadFind.FIND_NOTFOUND:
             self._prev.props.sensitive = False
             self._next.props.sensitive = False
-            entry.modify_text(gtk.STATE_NORMAL,
+            entry.modify_text(Gtk.StateType.NORMAL,
                               style.COLOR_BUTTON_GREY.get_gdk_color())
         else:
             self._prev.props.sensitive = True
             self._next.props.sensitive = True
-            entry.modify_text(gtk.STATE_NORMAL,
+            entry.modify_text(Gtk.StateType.NORMAL,
                               style.COLOR_BLACK.get_gdk_color())
 
     def __find_previous_cb(self, button):
diff --git a/filepicker.py b/filepicker.py
index 27bf383..a06e879 100644
--- a/filepicker.py
+++ b/filepicker.py
@@ -19,7 +19,7 @@ import os
 import tempfile
 import shutil
 
-import gtk
+from gi.repository import Gtk
 import hulahop
 
 import xpcom
@@ -74,7 +74,7 @@ class FilePicker:
         jobject = None
         try:
             result = chooser.run()
-            if result == gtk.RESPONSE_ACCEPT:
+            if result == Gtk.ResponseType.ACCEPT:
                 jobject = chooser.get_selected_object()
                 logging.debug('FilePicker.show: %r', jobject)
 
diff --git a/linkbutton.py b/linkbutton.py
index 4a0a18f..49f6451 100644
--- a/linkbutton.py
+++ b/linkbutton.py
@@ -15,9 +15,9 @@
 # Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 # Boston, MA 02111-1307, USA.
 
-import gtk
+from gi.repository import Gtk
 import os
-import gobject
+from gi.repository import GObject
 from gettext import gettext as _
 import rsvg
 import re
@@ -28,11 +28,11 @@ from sugar.graphics.tray import TrayButton
 from sugar.graphics import style
 
 
-class LinkButton(TrayButton, gobject.GObject):
+class LinkButton(TrayButton, GObject.GObject):
     __gtype_name__ = 'LinkButton'
     __gsignals__ = {
-        'remove_link': (gobject.SIGNAL_RUN_FIRST,
-                        gobject.TYPE_NONE, ([str])),
+        'remove_link': (GObject.SignalFlags.RUN_FIRST,
+                        None, ([str])),
         }
 
     def __init__(self, url, buf, color, title, owner, index, hash):
@@ -44,8 +44,8 @@ class LinkButton(TrayButton, gobject.GObject):
         self.setup_rollover_options(info)
 
     def set_image(self, buf, fill='#0000ff', stroke='#4d4c4f'):
-        img = gtk.Image()
-        loader = gtk.gdk.PixbufLoader()
+        img = Gtk.Image()
+        loader = GdkPixbuf.PixbufLoader()
         loader.write(buf)
         loader.close()
         pixbuf = loader.get_pixbuf()
@@ -55,7 +55,7 @@ class LinkButton(TrayButton, gobject.GObject):
         pixbuf_bg = self._read_link_background(xo_buddy, fill, stroke)
         pixbuf_bg = pixbuf_bg.scale_simple(style.zoom(120),
                                            style.zoom(110),
-                                           gtk.gdk.INTERP_BILINEAR)
+                                           GdkPixbuf.InterpType.BILINEAR)
         dest_x = style.zoom(10)
         dest_y = style.zoom(20)
         w = pixbuf.get_width()
@@ -64,7 +64,7 @@ class LinkButton(TrayButton, gobject.GObject):
         scale_y = 1
 
         pixbuf.composite(pixbuf_bg, dest_x, dest_y, w, h, dest_x, dest_y,
-                         scale_x, scale_y, gtk.gdk.INTERP_BILINEAR, 255)
+                         scale_x, scale_y, GdkPixbuf.InterpType.BILINEAR, 255)
         img.set_from_pixbuf(pixbuf_bg)
         self.set_icon_widget(img)
         img.show()
@@ -92,7 +92,7 @@ class LinkButton(TrayButton, gobject.GObject):
         palette = Palette(info, text_maxlen=50)
         self.set_palette(palette)
 
-        menu_item = gtk.MenuItem(_('Remove'))
+        menu_item = Gtk.MenuItem(_('Remove'))
         menu_item.connect('activate', self.item_remove_cb)
         palette.menu.append(menu_item)
         menu_item.show()
diff --git a/model.py b/model.py
index f6d7eae..d3d26e4 100644
--- a/model.py
+++ b/model.py
@@ -18,21 +18,21 @@
 
 import cjson
 import sha
-import gobject
+from gi.repository import GObject
 import base64
 
 
-class Model(gobject.GObject):
+class Model(GObject.GObject):
     ''' The model of web-activity which uses json to serialize its data
     to a file and deserealize from it.
     '''
     __gsignals__ = {
-        'add_link': (gobject.SIGNAL_RUN_FIRST,
-                     gobject.TYPE_NONE, ([int])),
+        'add_link': (GObject.SignalFlags.RUN_FIRST,
+                     None, ([int])),
         }
 
     def __init__(self):
-        gobject.GObject.__init__(self)
+        GObject.GObject.__init__(self)
         self.data = {}
         self.data['shared_links'] = []
         self.data['deleted'] = []
diff --git a/palettes.py b/palettes.py
index 3c8eebb..5c8f242 100644
--- a/palettes.py
+++ b/palettes.py
@@ -20,8 +20,8 @@ import tempfile
 import urlparse
 from gettext import gettext as _
 
-import gtk
-import gobject
+from gi.repository import Gtk
+from gi.repository import GObject
 import xpcom
 from xpcom import components
 from xpcom.components import interfaces
@@ -35,17 +35,17 @@ from sugar.activity import activity
 import downloadmanager
 
 
-class MouseOutListener(gobject.GObject):
+class MouseOutListener(GObject.GObject):
     _com_interfaces_ = interfaces.nsIDOMEventListener
 
     __gsignals__ = {
-        'mouse-out': (gobject.SIGNAL_RUN_FIRST,
-                      gobject.TYPE_NONE,
+        'mouse-out': (GObject.SignalFlags.RUN_FIRST,
+                      None,
                       ([])),
     }
 
     def __init__(self, target):
-        gobject.GObject.__init__(self)
+        GObject.GObject.__init__(self)
         self.target = target
 
     def handleEvent(self, event):
@@ -66,7 +66,7 @@ class ContentInvoker(Invoker):
         return self.AT_CURSOR
 
     def get_rect(self):
-        return gtk.gdk.Rectangle()
+        return ()
 
     def get_toplevel(self):
         return None
@@ -153,7 +153,7 @@ class LinkPalette(Palette):
 
         menu_item = MenuItem(_('Keep link'))
         icon = Icon(icon_name='document-save', xo_color=profile.get_color(),
-                    icon_size=gtk.ICON_SIZE_MENU)
+                    icon_size=Gtk.IconSize.MENU)
         menu_item.set_image(icon)
         menu_item.connect('activate', self.__download_activate_cb)
         self.menu.append(menu_item)
@@ -161,7 +161,7 @@ class LinkPalette(Palette):
 
         menu_item = MenuItem(_('Copy link'))
         icon = Icon(icon_name='edit-copy', xo_color=profile.get_color(),
-                    icon_size=gtk.ICON_SIZE_MENU)
+                    icon_size=Gtk.IconSize.MENU)
         menu_item.set_image(icon)
         menu_item.connect('activate', self.__copy_activate_cb)
         self.menu.append(menu_item)
@@ -175,9 +175,9 @@ class LinkPalette(Palette):
             self._browser.grab_focus()
 
     def __copy_activate_cb(self, menu_item):
-        clipboard = gtk.Clipboard()
-        targets = gtk.target_list_add_uri_targets()
-        targets = gtk.target_list_add_text_targets(targets)
+        clipboard = Gtk.Clipboard()
+        targets = Gtk.target_list_add_uri_targets()
+        targets = Gtk.target_list_add_text_targets(targets)
         targets.append(('text/x-moz-url', 0, 0))
 
         clipboard.set_with_data(targets,
@@ -186,9 +186,9 @@ class LinkPalette(Palette):
 
     def __clipboard_get_func_cb(self, clipboard, selection_data, info, data):
         uri_targets = \
-            [target[0] for target in gtk.target_list_add_uri_targets()]
+            [target[0] for target in Gtk.target_list_add_uri_targets()]
         text_targets = \
-            [target[0] for target in gtk.target_list_add_text_targets()]
+            [target[0] for target in Gtk.target_list_add_text_targets()]
 
         if selection_data.target in uri_targets:
             selection_data.set_uris([self._url])
@@ -217,7 +217,7 @@ class ImagePalette(Palette):
 
         menu_item = MenuItem(_('Keep image'))
         icon = Icon(icon_name='document-save', xo_color=profile.get_color(),
-                    icon_size=gtk.ICON_SIZE_MENU)
+                    icon_size=Gtk.IconSize.MENU)
         menu_item.set_image(icon)
         menu_item.connect('activate', self.__download_activate_cb)
         self.menu.append(menu_item)
@@ -225,7 +225,7 @@ class ImagePalette(Palette):
 
         menu_item = MenuItem(_('Copy image'))
         icon = Icon(icon_name='edit-copy', xo_color=profile.get_color(),
-                    icon_size=gtk.ICON_SIZE_MENU)
+                    icon_size=Gtk.IconSize.MENU)
         menu_item.set_image(icon)
         menu_item.connect('activate', self.__copy_activate_cb)
         self.menu.append(menu_item)
@@ -289,7 +289,7 @@ class _ImageProgressListener(object):
     def onStateChange(self, webProgress, request, stateFlags, status):
         if (stateFlags & interfaces.nsIWebProgressListener.STATE_IS_REQUEST and
             stateFlags & interfaces.nsIWebProgressListener.STATE_STOP):
-            clipboard = gtk.Clipboard()
+            clipboard = Gtk.Clipboard()
             clipboard.set_with_data([('text/uri-list', 0, 0)],
                                     _clipboard_get_func_cb,
                                     _clipboard_clear_func_cb,
diff --git a/progresslistener.py b/progresslistener.py
index fb08b13..2a78c42 100644
--- a/progresslistener.py
+++ b/progresslistener.py
@@ -16,16 +16,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 gobject
+from gi.repository import GObject
 import xpcom
 from xpcom.components import interfaces
 
 
-class ProgressListener(gobject.GObject):
+class ProgressListener(GObject.GObject):
     _com_interfaces_ = interfaces.nsIWebProgressListener
 
     def __init__(self):
-        gobject.GObject.__init__(self)
+        GObject.GObject.__init__(self)
 
         self._location = None
         self._loading = False
@@ -90,14 +90,14 @@ class ProgressListener(gobject.GObject):
     def _get_location(self):
         return self._location
 
-    location = gobject.property(type=object, getter=_get_location)
+    location = GObject.property(type=object, getter=_get_location)
 
     def _get_loading(self):
         return self._loading
 
-    loading = gobject.property(type=bool, default=False, getter=_get_loading)
+    loading = GObject.property(type=bool, default=False, getter=_get_loading)
 
     def _get_progress(self):
         return self._progress
 
-    progress = gobject.property(type=float, getter=_get_progress)
+    progress = GObject.property(type=float, getter=_get_progress)
diff --git a/sessionhistory.py b/sessionhistory.py
index be4ab93..615a98d 100644
--- a/sessionhistory.py
+++ b/sessionhistory.py
@@ -16,24 +16,24 @@
 
 import logging
 
-import gobject
+from gi.repository import GObject
 import xpcom
 from xpcom.components import interfaces
 
 
-class HistoryListener(gobject.GObject):
+class HistoryListener(GObject.GObject):
     _com_interfaces_ = interfaces.nsISHistoryListener
 
     __gsignals__ = {
-        'session-history-changed': (gobject.SIGNAL_RUN_FIRST,
-                                    gobject.TYPE_NONE,
+        'session-history-changed': (GObject.SignalFlags.RUN_FIRST,
+                                    None,
                                     ([int])),
-        'session-link-changed': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+        'session-link-changed': (GObject.SignalFlags.RUN_FIRST, None,
                                  ([str])),
     }
 
     def __init__(self):
-        gobject.GObject.__init__(self)
+        GObject.GObject.__init__(self)
 
         self._wrapped_self = xpcom.server.WrapObject( \
                 self, interfaces.nsISHistoryListener)
diff --git a/viewtoolbar.py b/viewtoolbar.py
index 61f4943..7f74035 100644
--- a/viewtoolbar.py
+++ b/viewtoolbar.py
@@ -17,14 +17,14 @@
 
 from gettext import gettext as _
 
-import gtk
+from gi.repository import Gtk
 
 from sugar.graphics.toolbutton import ToolButton
 
 
-class ViewToolbar(gtk.Toolbar):
+class ViewToolbar(Gtk.Toolbar):
     def __init__(self, activity):
-        gtk.Toolbar.__init__(self)
+        GObject.GObject.__init__(self)
 
         self._activity = activity
         self._activity.tray.connect('unmap', self.__unmap_cb)
@@ -42,7 +42,7 @@ class ViewToolbar(gtk.Toolbar):
         self.insert(self.zoomin, -1)
         self.zoomin.show()
 
-        self.separator = gtk.SeparatorToolItem()
+        self.separator = Gtk.SeparatorToolItem()
         self.separator.set_draw(True)
         self.insert(self.separator, -1)
         self.separator.show()
diff --git a/webactivity.py b/webactivity.py
index 707b602..cb7b351 100644
--- a/webactivity.py
+++ b/webactivity.py
@@ -21,16 +21,16 @@ from gettext import gettext as _
 from gettext import ngettext
 import os
 
-import gobject
-gobject.threads_init()
+from gi.repository import GObject
+GObject.threads_init()
 
-import gtk
+from gi.repository import Gtk
 import base64
 import time
 import shutil
 import sqlite3
 import cjson
-import gconf
+from gi.repository import GConf
 import locale
 import cairo
 from hashlib import sha1
@@ -78,7 +78,7 @@ if _profile_version < PROFILE_VERSION:
 def _seed_xs_cookie():
     ''' Create a HTTP Cookie to authenticate with the Schoolserver
     '''
-    client = gconf.client_get_default()
+    client = GConf.Client.get_default()
     backup_url = client.get_string('/desktop/sugar/backup_url')
     if not backup_url:
         _logger.debug('seed_xs_cookie: Not registered with Schoolserver')
@@ -221,7 +221,7 @@ class WebActivity(activity.Activity):
                 ' to a bug in cairo/mozilla')
 
         self._tray = HTray()
-        self.set_tray(self._tray, gtk.POS_BOTTOM)
+        self.set_tray(self._tray, Gtk.PositionType.BOTTOM)
         self._tray.show()
 
         self._primary_toolbar = PrimaryToolbar(self._tabbed_view, self)
@@ -476,10 +476,10 @@ class WebActivity(activity.Activity):
         self._tabbed_view.load_homepage()
 
     def _key_press_cb(self, widget, event):
-        key_name = gtk.gdk.keyval_name(event.keyval)
+        key_name = Gdk.keyval_name(event.keyval)
         browser = self._tabbed_view.props.current_browser
 
-        if event.state & gtk.gdk.CONTROL_MASK:
+        if event.get_state() & Gdk.EventMask.CONTROL_MASK:
 
             if key_name == 'd':
                 self._add_link()
@@ -503,7 +503,7 @@ class WebActivity(activity.Activity):
             elif key_name == 'r':
                 flags = components.interfaces.nsIWebNavigation.LOAD_FLAGS_NONE
                 browser.web_navigation.reload(flags)
-            elif gtk.gdk.keyval_name(event.keyval) == "t":
+            elif Gdk.keyval_name(event.keyval) == "t":
                 if not self._disable_multiple_tabs:
                     self._tabbed_view.add_tab()
             else:
@@ -579,7 +579,7 @@ class WebActivity(activity.Activity):
         window = self._tabbed_view.props.current_browser.window
         width, height = window.get_size()
 
-        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(), 0, 0, 0, 0,
@@ -587,7 +587,7 @@ class WebActivity(activity.Activity):
 
         screenshot = screenshot.scale_simple(style.zoom(100),
                                                  style.zoom(80),
-                                                 gtk.gdk.INTERP_BILINEAR)
+                                                 GdkPixbuf.InterpType.BILINEAR)
 
         buf = self.get_buffer(screenshot)
         return buf
@@ -609,9 +609,9 @@ class WebActivity(activity.Activity):
             cancel_icon = Icon(icon_name='dialog-cancel')
             cancel_label = ngettext('Continue download', 'Continue downloads',
                                     downloadmanager.num_downloads())
-            alert.add_button(gtk.RESPONSE_CANCEL, cancel_label, cancel_icon)
+            alert.add_button(Gtk.ResponseType.CANCEL, cancel_label, cancel_icon)
             stop_icon = Icon(icon_name='dialog-ok')
-            alert.add_button(gtk.RESPONSE_OK, _('Stop'), stop_icon)
+            alert.add_button(Gtk.ResponseType.OK, _('Stop'), stop_icon)
             stop_icon.show()
             self.add_alert(alert)
             alert.connect('response', self.__inprogress_response_cb)
@@ -621,9 +621,9 @@ class WebActivity(activity.Activity):
 
     def __inprogress_response_cb(self, alert, response_id):
         self.remove_alert(alert)
-        if response_id is gtk.RESPONSE_CANCEL:
+        if response_id is Gtk.ResponseType.CANCEL:
             logging.debug('Keep on')
-        elif response_id == gtk.RESPONSE_OK:
+        elif response_id == Gtk.ResponseType.OK:
             logging.debug('Stop downloads and quit')
             self._force_close = True
             downloadmanager.remove_all_downloads()
diff --git a/webtoolbar.py b/webtoolbar.py
index 97bdcd6..7d5b284 100644
--- a/webtoolbar.py
+++ b/webtoolbar.py
@@ -18,9 +18,9 @@
 
 from gettext import gettext as _
 
-import gobject
-import gtk
-import pango
+from gi.repository import GObject
+from gi.repository import Gtk
+from gi.repository import Pango
 from xpcom.components import interfaces
 
 from sugar.graphics.toolbutton import ToolButton
@@ -42,13 +42,13 @@ class WebEntry(iconentry.IconEntry):
     _COL_TITLE = 1
 
     def __init__(self):
-        gobject.GObject.__init__(self)
+        GObject.GObject.__init__(self)
 
         self._address = None
         self._title = None
         self._search_view = self._search_create_view()
 
-        self._search_window = gtk.Window(gtk.WINDOW_POPUP)
+        self._search_window = Gtk.Window(Gtk.WindowType.POPUP)
         self._search_window.add(self._search_view)
         self._search_view.show()
 
@@ -78,44 +78,44 @@ class WebEntry(iconentry.IconEntry):
     def _set_address(self, address):
         self._address = address
 
-    address = gobject.property(type=str, setter=_set_address)
+    address = GObject.property(type=str, setter=_set_address)
 
     def _set_title(self, title):
         self._title = title
         if title is not None and not self.props.has_focus:
             self._set_text(title)
 
-    title = gobject.property(type=str, setter=_set_title)
+    title = GObject.property(type=str, setter=_set_title)
 
     def _search_create_view(self):
-        view = gtk.TreeView()
+        view = Gtk.TreeView()
         view.props.headers_visible = False
 
         view.connect('button-press-event', self.__view_button_press_event_cb)
 
-        column = gtk.TreeViewColumn()
+        column = Gtk.TreeViewColumn()
         view.append_column(column)
 
-        cell = gtk.CellRendererText()
-        cell.props.ellipsize = pango.ELLIPSIZE_END
+        cell = Gtk.CellRendererText()
+        cell.props.ellipsize = Pango.EllipsizeMode.END
         cell.props.ellipsize_set = True
         cell.props.font = 'Bold'
         column.pack_start(cell, True)
 
         column.set_attributes(cell, text=self._COL_TITLE)
 
-        cell = gtk.CellRendererText()
-        cell.props.ellipsize = pango.ELLIPSIZE_END
+        cell = Gtk.CellRendererText()
+        cell.props.ellipsize = Pango.EllipsizeMode.END
         cell.props.ellipsize_set = True
-        cell.props.alignment = pango.ALIGN_LEFT
-        column.pack_start(cell)
+        cell.props.alignment = Pango.Alignment.LEFT
+        column.pack_start(cell, True)
 
         column.set_attributes(cell, text=self._COL_ADDRESS)
 
         return view
 
     def _search_update(self):
-        list_store = gtk.ListStore(str, str)
+        list_store = Gtk.ListStore(str, str)
 
         for place in places.get_store().search(self.props.text):
             list_store.append([place.uri, place.title])
@@ -131,7 +131,7 @@ class WebEntry(iconentry.IconEntry):
         x = entry_x + entry_h / 2
         y = entry_y + entry_h
         width = self.allocation.width - entry_h
-        height = gtk.gdk.screen_height() / 3
+        height = Gdk.Screen.height() / 3
 
         self._search_window.move(x, y)
         self._search_window.resize(width, height)
@@ -165,7 +165,7 @@ class WebEntry(iconentry.IconEntry):
             self.activate(uri)
 
     def __key_press_event_cb(self, entry, event):
-        keyname = gtk.gdk.keyval_name(event.keyval)
+        keyname = Gdk.keyval_name(event.keyval)
 
         selection = self._search_view.get_selection()
         model, selected = selection.get_selected()
@@ -220,11 +220,11 @@ class PrimaryToolbar(ToolbarBase):
     __gtype_name__ = 'PrimaryToolbar'
 
     __gsignals__ = {
-        'add-link': (gobject.SIGNAL_RUN_FIRST,
-                     gobject.TYPE_NONE,
+        'add-link': (GObject.SignalFlags.RUN_FIRST,
+                     None,
                      ([])),
-        'go-home': (gobject.SIGNAL_RUN_FIRST,
-                     gobject.TYPE_NONE,
+        'go-home': (GObject.SignalFlags.RUN_FIRST,
+                     None,
                      ([])),
     }
 
@@ -253,7 +253,7 @@ class PrimaryToolbar(ToolbarBase):
         self.entry.connect('icon-press', self._stop_and_reload_cb)
         self.entry.connect('activate', self._entry_activate_cb)
 
-        entry_item = gtk.ToolItem()
+        entry_item = Gtk.ToolItem()
         entry_item.set_expand(True)
         entry_item.add(self.entry)
         self.entry.show()
@@ -294,7 +294,7 @@ class PrimaryToolbar(ToolbarBase):
         self._session_history_changed_hid = None
         self._title_changed_hid = None
 
-        gobject.idle_add(lambda:
+        GObject.idle_add(lambda:
                 self._connect_to_browser(tabbed_view.props.current_browser))
 
         tabbed_view.connect_after('switch-page', self.__switch_page_cb)
@@ -343,7 +343,7 @@ class PrimaryToolbar(ToolbarBase):
 
     def _session_history_changed_cb(self, session_history, current_page_index):
         # We have to wait until the history info is updated.
-        gobject.idle_add(self._reload_session_history, current_page_index)
+        GObject.idle_add(self._reload_session_history, current_page_index)
 
     def __location_changed_cb(self, progress_listener, pspec):
         self._set_address(progress_listener.location)
diff --git a/widgets.py b/widgets.py
index 1759e38..9fc0b9f 100644
--- a/widgets.py
+++ b/widgets.py
@@ -16,34 +16,34 @@
 # 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.icon import Icon
 
 
-class TabAdd(gtk.HBox):
+class TabAdd(Gtk.HBox):
     __gtype_name__ = 'TabAdd'
 
     __gsignals__ = {
-        'tab-added': (gobject.SIGNAL_RUN_FIRST,
-                      gobject.TYPE_NONE,
+        'tab-added': (GObject.SignalFlags.RUN_FIRST,
+                      None,
                       ([])),
     }
 
     def __init__(self):
-        gtk.HBox.__init__(self)
+        GObject.GObject.__init__(self)
 
         add_tab_icon = Icon(icon_name='add')
-        button = gtk.Button()
-        button.props.relief = gtk.RELIEF_NONE
+        button = Gtk.Button()
+        button.props.relief = Gtk.ReliefStyle.NONE
         button.props.focus_on_click = False
-        icon_box = gtk.HBox()
+        icon_box = Gtk.HBox()
         icon_box.pack_start(add_tab_icon, True, False, 0)
         button.add(icon_box)
         button.connect('clicked', self.__button_clicked_cb)
         button.set_name('browse-tab-add')
-        self.pack_start(button)
+        self.pack_start(button, True, True, 0)
         add_tab_icon.show()
         icon_box.show()
         button.show()
@@ -52,19 +52,19 @@ class TabAdd(gtk.HBox):
         self.emit('tab-added')
 
 
-class BrowserNotebook(gtk.Notebook):
+class BrowserNotebook(Gtk.Notebook):
     __gtype_name__ = 'BrowserNotebook'
 
     """Handle an extra tab at the end with an Add Tab button."""
 
     def __init__(self):
-        gtk.Notebook.__init__(self)
+        GObject.GObject.__init__(self)
         self._switch_handler = self.connect('switch-page',
                                             self.__on_switch_page)
 
         tab_add = TabAdd()
         tab_add.connect('tab-added', self.on_add_tab)
-        empty_page = gtk.HBox()
+        empty_page = Gtk.HBox()
         self.append_page(empty_page, tab_add)
         empty_page.show()
 
@@ -73,7 +73,7 @@ class BrowserNotebook(gtk.Notebook):
 
     def __on_switch_page(self, notebook, page, page_num):
         """Don't switch to the extra tab at the end."""
-        if page_num == gtk.Notebook.get_n_pages(self) - 1:
+        if page_num == Gtk.Notebook.get_n_pages(self) - 1:
             self.handler_block(self._switch_handler)
             self.set_current_page(-1)
             self.handler_unblock(self._switch_handler)
@@ -82,7 +82,7 @@ class BrowserNotebook(gtk.Notebook):
 
     def get_n_pages(self):
         """Skip the extra tab at the end on the pages count."""
-        return gtk.Notebook.get_n_pages(self) - 1
+        return Gtk.Notebook.get_n_pages(self) - 1
 
     def append_page(self, page, label):
         """Append keeping the extra tab at the end."""
@@ -92,4 +92,4 @@ class BrowserNotebook(gtk.Notebook):
         """If indexing from the end, skip the extra tab."""
         if number < 0:
             number = self.get_n_pages() - 1
-        gtk.Notebook.set_current_page(self, number)
+        Gtk.Notebook.set_current_page(self, number)
-- 
1.7.7.3



More information about the Sugar-devel mailing list