diff options
author | Simon Schampijer <simon@laptop.org> | 2012-09-03 08:17:48 (GMT) |
---|---|---|
committer | Simon Schampijer <simon@laptop.org> | 2012-09-07 09:14:24 (GMT) |
commit | 3007f43996b5ef9a9fb4ccf37906f17612438c68 (patch) | |
tree | c91708f35f18baef6ef60779165bb14a85f0c09e | |
parent | 98f5b640ad4c3f1d67622a031629af42f0b96997 (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>
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) |