Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAneesh Dogra <lionaneesh@gmail.com>2012-12-19 05:23:55 (GMT)
committer Aneesh Dogra <lionaneesh@gmail.com>2012-12-19 05:23:55 (GMT)
commitfd972f1ca3da5e0f5b418709f2b88e9ae422fc9f (patch)
treeb6f4e8faaa1ad91cb667292b37bf919526f58019
parentb5df71258096804fcb08ba2dc855b6815103587b (diff)
Gtk3 port.
-rw-r--r--ReadEtextsActivity.py359
-rw-r--r--mybutton.py16
-rw-r--r--readsidebar.py19
-rw-r--r--readtoolbar.py118
-rwxr-xr-xsetup.py26
-rw-r--r--speech_dispatcher.py10
-rw-r--r--xopower.py6
7 files changed, 215 insertions, 339 deletions
diff --git a/ReadEtextsActivity.py b/ReadEtextsActivity.py
index 5bedc26..433a9a8 100644
--- a/ReadEtextsActivity.py
+++ b/ReadEtextsActivity.py
@@ -20,35 +20,27 @@ import re
import logging
import time
import zipfile
-import pygtk
-pygtk.require('2.0')
-import gtk
-from sugar.graphics import style
-from sugar import profile
-from sugar.activity import activity
-from sugar import network
-from sugar.datastore import datastore
-from sugar.graphics.alert import NotifyAlert
-
-_NEW_TOOLBAR_SUPPORT = True
-try:
- from sugar.graphics.toolbarbox import ToolbarBox
- from sugar.graphics.toolbarbox import ToolbarButton
- from sugar.activity.widgets import StopButton
- from readtoolbar import ViewToolbar, EditToolbar, BooksToolbar, SpeechToolbar
- from sugar.graphics.toolbutton import ToolButton
- from sugar.graphics.menuitem import MenuItem
- from sugar.graphics.toggletoolbutton import ToggleToolButton
- from mybutton import MyActivityToolbarButton
-except:
- _NEW_TOOLBAR_SUPPORT = False
- from readtoolbar import ReadToolbar, ViewToolbar, EditToolbar, BooksToolbar, SpeechToolbar
-
+from gi.repository import Gtk
+from gi.repository import Gdk
+from sugar3.graphics import style
+from sugar3 import profile
+from sugar3.activity import activity
+from sugar3 import network
+from sugar3.datastore import datastore
+from sugar3.graphics.alert import NotifyAlert
+from sugar3.graphics.toolbarbox import ToolbarBox
+from sugar3.graphics.toolbarbox import ToolbarButton
+from sugar3.activity.widgets import StopButton
+from readtoolbar import ViewToolbar, EditToolbar, BooksToolbar, SpeechToolbar
+from sugar3.graphics.toolbutton import ToolButton
+from sugar3.graphics.menuitem import MenuItem
+from sugar3.graphics.toggletoolbutton import ToggleToolButton
+from mybutton import MyActivityToolbarButton
from readsidebar import Sidebar
from gettext import gettext as _
-import pango
+from gi.repository import Pango
import dbus
-import gobject
+from gi.repository import GObject
import telepathy
import cPickle as pickle
@@ -187,7 +179,7 @@ READ_STREAM_SERVICE = 'read-activity-http'
class ReadEtextsActivity(activity.Activity):
def __init__(self, handle):
"The entry point to the Activity"
- gtk.gdk.threads_init()
+ Gdk.threads_init()
self.current_word = 0
self.word_tuples = []
@@ -198,38 +190,33 @@ class ReadEtextsActivity(activity.Activity):
self.object_id = handle.object_id
self.extra_journal_entry = None
- if _NEW_TOOLBAR_SUPPORT:
- self.create_new_toolbar()
- else:
- self.create_old_toolbar()
-
- self.scrolled = gtk.ScrolledWindow()
- self.scrolled.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
- self.scrolled.props.shadow_type = gtk.SHADOW_NONE
+ self.create_new_toolbar()
+ self.scrolled = Gtk.ScrolledWindow()
+ self.scrolled.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC)
- self.textview = gtk.TextView()
+ self.textview = Gtk.TextView()
self.textview.set_editable(False)
self.textview.set_cursor_visible(False)
self.textview.set_left_margin(50)
self.textview.set_right_margin(50)
- self.textview.set_wrap_mode(gtk.WRAP_WORD)
+ self.textview.set_wrap_mode(Gtk.WrapMode.WORD)
self.textview.connect("key_press_event", self.keypress_cb)
- self.annotation_textview = gtk.TextView()
+ self.annotation_textview = Gtk.TextView()
self.annotation_textview.set_left_margin(50)
self.annotation_textview.set_right_margin(50)
- self.annotation_textview.set_wrap_mode(gtk.WRAP_WORD)
+ self.annotation_textview.set_wrap_mode(Gtk.WrapMode.WORD)
if os.path.exists(os.path.join(self.get_activity_root(), 'instance', 'fontsize.txt')):
f = open(os.path.join(self.get_activity_root(), 'instance', 'fontsize.txt'), 'r')
line = f.readline()
fontsize = int(line.strip())
- self.font_desc = pango.FontDescription("monospace %d" % style.zoom(fontsize))
- # self.font_desc = pango.FontDescription("sans %d" % style.zoom(fontsize))
+ self.font_desc = Pango.FontDescription("monospace %d" % style.zoom(fontsize))
+ # self.font_desc = Pango.FontDescription("sans %d" % style.zoom(fontsize))
f.close()
else:
print 'no font size found'
- self.font_desc = pango.FontDescription("monospace %d" % style.zoom(10))
+ self.font_desc = Pango.FontDescription("monospace %d" % style.zoom(10))
buffer = self.textview.get_buffer()
self.markset_id = buffer.connect("mark-set", self.mark_set_cb)
self.textview.modify_font(self.font_desc)
@@ -238,39 +225,38 @@ class ReadEtextsActivity(activity.Activity):
self.textview.show()
self.scrolled.show()
v_adjustment = self.scrolled.get_vadjustment()
- self.clipboard = gtk.Clipboard(display=gtk.gdk.display_get_default(), selection="CLIPBOARD")
+ self.clipboard = Gtk.Clipboard()
self.page = 0
self.textview.grab_focus()
- self.ls = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING)
- tv = gtk.TreeView(self.ls)
+ self.ls = Gtk.ListStore(GObject.TYPE_STRING, GObject.TYPE_STRING, GObject.TYPE_STRING)
+ tv = Gtk.TreeView(self.ls)
tv.set_rules_hint(True)
tv.set_search_column(COLUMN_TITLE)
selection = tv.get_selection()
- selection.set_mode(gtk.SELECTION_SINGLE)
+ selection.set_mode(Gtk.SelectionMode.SINGLE)
selection.connect("changed", self.selection_cb)
- renderer = gtk.CellRendererText()
- col = gtk.TreeViewColumn('Title', renderer, text=COLUMN_TITLE)
+ renderer = Gtk.CellRendererText()
+ col = Gtk.TreeViewColumn('Title', renderer, text=COLUMN_TITLE)
col.set_sort_column_id(COLUMN_TITLE)
tv.append_column(col)
- renderer = gtk.CellRendererText()
- col = gtk.TreeViewColumn('Author', renderer, text=COLUMN_AUTHOR)
+ renderer = Gtk.CellRendererText()
+ col = Gtk.TreeViewColumn('Author', renderer, text=COLUMN_AUTHOR)
col.set_sort_column_id(COLUMN_AUTHOR)
tv.append_column(col)
- self.list_scroller = gtk.ScrolledWindow(hadjustment=None, vadjustment=None)
- self.list_scroller.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
+ self.list_scroller = Gtk.ScrolledWindow(hadjustment=None, vadjustment=None)
+ self.list_scroller.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
self.list_scroller.add(tv)
- self.progressbar = gtk.ProgressBar()
- self.progressbar.set_orientation(gtk.PROGRESS_LEFT_TO_RIGHT)
+ self.progressbar = Gtk.ProgressBar()
self.progressbar.set_fraction(0.0)
- vbox = gtk.VBox()
+ vbox = Gtk.VBox()
vbox.pack_start(self.progressbar, False, False, 10)
- vbox.pack_start(self.scrolled)
- vbox.pack_end(self.list_scroller)
+ vbox.pack_start(self.scrolled, True, True, 0)
+ vbox.pack_end(self.list_scroller, True, True, 0)
vbox.pack_end(self.annotation_textview, False, False, 10)
tv.show()
vbox.show()
@@ -280,17 +266,17 @@ class ReadEtextsActivity(activity.Activity):
self.sidebar = Sidebar()
self.sidebar.show()
- sidebar_hbox = gtk.HBox()
- sidebar_hbox.pack_start(self.sidebar, expand=False, fill=False)
- sidebar_hbox.pack_start(vbox, expand=True, fill=True)
+ sidebar_hbox = Gtk.HBox()
+ sidebar_hbox.pack_start(self.sidebar, False, False, 0)
+ sidebar_hbox.pack_start(vbox, True, True, 0)
self.set_canvas(sidebar_hbox)
sidebar_hbox.show()
textbuffer = self.textview.get_buffer()
self.tag = textbuffer.create_tag()
- self.tag.set_property('weight', pango.WEIGHT_BOLD)
+ self.tag.set_property('weight', Pango.Weight.BOLD)
self.normal_tag = textbuffer.create_tag()
- self.normal_tag.set_property('weight', pango.WEIGHT_NORMAL)
+ self.normal_tag.set_property('weight', Pango.Weight.NORMAL)
self.underline_tag = textbuffer.create_tag()
self.underline_tag.set_property('underline', 'single')
@@ -321,7 +307,7 @@ class ReadEtextsActivity(activity.Activity):
self.is_received_document = False
- if self._shared_activity and handle.object_id == None:
+ if self.shared_activity and handle.object_id == None:
# We're joining, and we don't already have the document.
if self.get_shared():
# Already joined for some reason, just get the document
@@ -347,56 +333,6 @@ class ReadEtextsActivity(activity.Activity):
speech.highlight_cb = self.highlight_next_word
speech.reset_cb = self.reset_play_button
-
- def create_old_toolbar(self):
- toolbox = activity.ActivityToolbox(self)
- activity_toolbar = toolbox.get_activity_toolbar()
- activity_toolbar.remove(activity_toolbar.keep)
- activity_toolbar.keep = None
- self.set_toolbox(toolbox)
-
- self.edit_toolbar = EditToolbar()
- self.edit_toolbar.undo.props.visible = False
- self.edit_toolbar.redo.props.visible = False
- self.edit_toolbar.separator.props.visible = False
- self.edit_toolbar.copy.set_sensitive(False)
- self.edit_toolbar.copy.connect('clicked', self.edit_toolbar_copy_cb)
- self.edit_toolbar.paste.props.visible = False
- toolbox.add_toolbar(_('Edit'), self.edit_toolbar)
- self.edit_toolbar.set_activity(self)
- self.edit_toolbar.show()
-
- self.read_toolbar = ReadToolbar()
- toolbox.add_toolbar(_('Read'), self.read_toolbar)
- self.read_toolbar.set_activity(self)
- self.read_toolbar.show()
-
- if not self._shared_activity and self.object_id is None:
- self.books_toolbar = BooksToolbar()
- toolbox.add_toolbar(_('Books'), self.books_toolbar)
- self.books_toolbar.set_activity(self)
- self.books_toolbar.show()
-
- self.view_toolbar = ViewToolbar()
- toolbox.add_toolbar(_('View'), self.view_toolbar)
- self.view_toolbar.connect('go-fullscreen',
- self.view_toolbar_go_fullscreen_cb)
- self.view_toolbar.set_activity(self)
- self.view_toolbar.show()
-
- if speech.supported:
- self.speech_toolbar = SpeechToolbar()
- toolbox.add_toolbar(_('Speech'), self.speech_toolbar)
- self.speech_toolbar.set_activity(self)
- self.speech_toolbar.show()
-
- toolbox.show()
- # start on the read toolbar
- if self.object_id is None:
- # Not joining, not resuming
- self.toolbox.set_current_toolbar(TOOLBAR_BOOKS)
- else:
- self.toolbox.set_current_toolbar(TOOLBAR_READ)
def create_new_toolbar(self):
toolbar_box = ToolbarBox()
@@ -421,7 +357,7 @@ class ReadEtextsActivity(activity.Activity):
toolbar_box.toolbar.insert(edit_toolbar_button, -1)
edit_toolbar_button.show()
- if not self._shared_activity and self.object_id is None:
+ if not self.shared_activity and self.object_id is None:
self.books_toolbar = BooksToolbar()
self.books_toolbar.set_activity(self)
self.books_toolbar.show()
@@ -480,8 +416,8 @@ class ReadEtextsActivity(activity.Activity):
toolbar_box.toolbar.insert(self.forward, -1)
self.forward.show()
- num_page_item = gtk.ToolItem()
- self.num_page_entry = gtk.Entry()
+ num_page_item = Gtk.ToolItem()
+ self.num_page_entry = Gtk.Entry()
self.num_page_entry.set_text('0')
self.num_page_entry.set_alignment(1)
self.num_page_entry.connect('insert-text',
@@ -494,14 +430,9 @@ class ReadEtextsActivity(activity.Activity):
toolbar_box.toolbar.insert(num_page_item, -1)
num_page_item.show()
- total_page_item = gtk.ToolItem()
- self.total_page_label = gtk.Label()
-
- label_attributes = pango.AttrList()
- label_attributes.insert(pango.AttrSize(14000, 0, -1))
- label_attributes.insert(pango.AttrForeground(65535, 65535,
- 65535, 0, -1))
- self.total_page_label.set_attributes(label_attributes)
+ total_page_item = Gtk.ToolItem()
+ self.total_page_label = Gtk.Label()
+ self.total_page_label.set_markup("<span foreground='black' size='14000'>")
self.total_page_label.set_text(' / 0')
total_page_item.add(self.total_page_label)
@@ -509,11 +440,11 @@ class ReadEtextsActivity(activity.Activity):
toolbar_box.toolbar.insert(total_page_item, -1)
total_page_item.show()
- spacer = gtk.SeparatorToolItem()
+ spacer = Gtk.SeparatorToolItem()
toolbar_box.toolbar.insert(spacer, -1)
spacer.show()
- bookmarkitem = gtk.ToolItem()
+ bookmarkitem = Gtk.ToolItem()
self.bookmarker = ToggleToolButton('emblem-favorite')
self.bookmarker.set_tooltip(_('Toggle Bookmark'))
self.bookmarker_handler_id = self.bookmarker.connect('clicked',
@@ -524,7 +455,7 @@ class ReadEtextsActivity(activity.Activity):
toolbar_box.toolbar.insert(bookmarkitem, -1)
bookmarkitem.show_all()
- underline_item = gtk.ToolItem()
+ underline_item = Gtk.ToolItem()
self.underline = ToggleToolButton('format-text-underline')
self.underline.set_tooltip(_('Underline'))
self.underline.props.sensitive = False
@@ -533,7 +464,7 @@ class ReadEtextsActivity(activity.Activity):
toolbar_box.toolbar.insert(underline_item, -1)
underline_item.show_all()
- separator = gtk.SeparatorToolItem()
+ separator = Gtk.SeparatorToolItem()
separator.props.draw = False
separator.set_expand(True)
toolbar_box.toolbar.insert(separator, -1)
@@ -639,19 +570,16 @@ class ReadEtextsActivity(activity.Activity):
textbuffer.apply_tag(self.normal_tag, bounds[0], iterStart)
textbuffer.apply_tag(self.tag, iterStart, iterEnd)
v_adjustment = self.scrolled.get_vadjustment()
- max = v_adjustment.upper - v_adjustment.page_size
+ max = v_adjustment.get_upper() - v_adjustment.get_page_size()
max = max * word_count
max = max / len(self.word_tuples)
- v_adjustment.value = max
+ v_adjustment.set_value(max)
self.current_word = word_count
return True
def mark_set_cb(self, textbuffer, iter, textmark):
- if _NEW_TOOLBAR_SUPPORT:
- self.update_underline_button(False)
- else:
- self.read_toolbar.update_underline_button(False)
-
+ self.update_underline_button(False)
+
if textbuffer.get_has_selection():
begin, end = textbuffer.get_selection_bounds()
underline_tuple = [begin.get_offset(), end.get_offset()]
@@ -660,10 +588,7 @@ class ReadEtextsActivity(activity.Activity):
while count < len(tuples_list) :
compare_tuple = tuples_list[count]
if underline_tuple[0] >= compare_tuple[0] and underline_tuple[1] <= compare_tuple[1]:
- if _NEW_TOOLBAR_SUPPORT:
- self.update_underline_button(True)
- else:
- self.read_toolbar.update_underline_button(True)
+ self.update_underline_button(True)
textbuffer.handler_block(self.markset_id)
iterStart = textbuffer.get_iter_at_offset(compare_tuple[0])
iterEnd = textbuffer.get_iter_at_offset(compare_tuple[1])
@@ -673,16 +598,11 @@ class ReadEtextsActivity(activity.Activity):
count = count + 1
self.edit_toolbar.copy.set_sensitive(True)
- if _NEW_TOOLBAR_SUPPORT:
- self.underline.props.sensitive = True
- else:
- self.read_toolbar.underline.props.sensitive = True
+ self.underline.props.sensitive = True
+
else:
self.edit_toolbar.copy.set_sensitive(False)
- if _NEW_TOOLBAR_SUPPORT:
- self.underline.props.sensitive = False
- else:
- self.read_toolbar.underline.props.sensitive = False
+ self.underline.props.sensitive = False
def edit_toolbar_copy_cb(self, button):
textbuffer = self.textview.get_buffer()
@@ -694,7 +614,7 @@ class ReadEtextsActivity(activity.Activity):
self.fullscreen()
def hide_table_keypress_cb(self, widget, event):
- keyname = gtk.gdk.keyval_name(event.keyval)
+ keyname = Gdk.keyval_name(event.keyval)
if keyname == 'Escape':
self.list_scroller.hide()
return True
@@ -704,7 +624,7 @@ class ReadEtextsActivity(activity.Activity):
"Respond when the user presses one of the arrow keys"
if xopower.service_activated:
xopower.reset_sleep_timer()
- keyname = gtk.gdk.keyval_name(event.keyval)
+ keyname = Gdk.keyval_name(event.keyval)
if keyname == 'KP_End' and speech.supported:
play = self.speech_toolbar.play_btn
play.set_active(int(not play.get_active()))
@@ -752,17 +672,10 @@ class ReadEtextsActivity(activity.Activity):
bookmark = self.annotations.is_bookmarked(self.page)
if bookmark:
self.sidebar.show_bookmark_icon(True)
- if _NEW_TOOLBAR_SUPPORT:
- self.update_bookmark_button(True)
- else:
- self.read_toolbar.update_bookmark_button(True)
+ self.update_bookmark_button(True)
else:
self.sidebar.show_bookmark_icon(False)
- if _NEW_TOOLBAR_SUPPORT:
- self.update_bookmark_button(False)
- else:
- self.read_toolbar.update_bookmark_button(False)
-
+ self.update_bookmark_button(False)
def underline_clicked(self, button):
tuples_list = self.annotations.get_highlights(self.page)
buffer = self.textview.get_buffer()
@@ -811,21 +724,14 @@ class ReadEtextsActivity(activity.Activity):
if bookmarks[count] < self.page:
self.page = bookmarks[count]
self.show_page(self.page)
- if _NEW_TOOLBAR_SUPPORT:
- self.set_current_page(self.page)
- else:
- self.read_toolbar.set_current_page(self.page)
+ self.set_current_page(self.page)
return
count = count - 1
# if we're before the first bookmark wrap to the last.
if len(bookmarks) > 0:
self.page = bookmarks[len(bookmarks) - 1]
self.show_page(self.page)
- if _NEW_TOOLBAR_SUPPORT:
- self.set_current_page(self.page)
- else:
- self.read_toolbar.set_current_page(self.page)
-
+ self.set_current_page(self.page)
def next_bookmark(self):
bookmarks = self.annotations.get_bookmarks()
count = 0
@@ -833,20 +739,14 @@ class ReadEtextsActivity(activity.Activity):
if bookmarks[count] > self.page:
self.page = bookmarks[count]
self.show_page(self.page)
- if _NEW_TOOLBAR_SUPPORT:
- self.set_current_page(self.page)
- else:
- self.read_toolbar.set_current_page(self.page)
+ self.set_current_page(self.page)
return
count = count + 1
# if we're after the last bookmark wrap to the first.
if len(bookmarks) > 0:
self.page = bookmarks[0]
self.show_page(self.page)
- if _NEW_TOOLBAR_SUPPORT:
- self.set_current_page(self.page)
- else:
- self.read_toolbar.set_current_page(self.page)
+ self.set_current_page(self.page)
def page_next(self):
textbuffer = self.annotation_textview.get_buffer()
@@ -855,11 +755,8 @@ class ReadEtextsActivity(activity.Activity):
if self.page >= len(self.page_index): self.page=len(self.page_index) - 1
self.show_page(self.page)
v_adjustment = self.scrolled.get_vadjustment()
- v_adjustment.value = v_adjustment.lower
- if _NEW_TOOLBAR_SUPPORT:
- self.set_current_page(self.page)
- else:
- self.read_toolbar.set_current_page(self.page)
+ v_adjustment.set_value(v_adjustment.get_lower())
+ self.set_current_page(self.page)
def page_previous(self):
textbuffer = self.annotation_textview.get_buffer()
@@ -868,11 +765,9 @@ class ReadEtextsActivity(activity.Activity):
if self.page < 0: self.page=0
self.show_page(self.page)
v_adjustment = self.scrolled.get_vadjustment()
- v_adjustment.value = v_adjustment.upper - v_adjustment.page_size
- if _NEW_TOOLBAR_SUPPORT:
- self.set_current_page(self.page)
- else:
- self.read_toolbar.set_current_page(self.page)
+ v_adjustment.set_value(v_adjustment.get_upper() - \
+ v_adjustment.get_page_size())
+ self.set_current_page(self.page)
def font_decrease(self):
font_size = self.font_desc.get_size() / 1024
@@ -902,32 +797,29 @@ class ReadEtextsActivity(activity.Activity):
def scroll_down(self):
v_adjustment = self.scrolled.get_vadjustment()
- if v_adjustment.value == v_adjustment.upper - v_adjustment.page_size:
+ if v_adjustment.get_value() == v_adjustment.get_upper() - v_adjustment.get_page_size():
self.page_next()
return
- if v_adjustment.value < v_adjustment.upper - v_adjustment.page_size:
- new_value = v_adjustment.value + v_adjustment.step_increment
- if new_value > v_adjustment.upper - v_adjustment.page_size:
- new_value = v_adjustment.upper - v_adjustment.page_size
- v_adjustment.value = new_value
+ if v_adjustment.get_value() < v_adjustment.get_upper() - v_adjustment.get_page_size():
+ new_value = v_adjustment.get_value() + v_adjustment.step_increment
+ if new_value > v_adjustment.get_upper() - v_adjustment.get_page_size():
+ new_value = v_adjustment.get_upper() - v_adjustment.get_page_size()
+ v_adjustment.set_value(new_value)
def scroll_up(self):
v_adjustment = self.scrolled.get_vadjustment()
- if v_adjustment.value == v_adjustment.lower:
+ if v_adjustment.get_value() == v_adjustment.get_lower():
self.page_previous()
return
- if v_adjustment.value > v_adjustment.lower:
- new_value = v_adjustment.value - v_adjustment.step_increment
- if new_value < v_adjustment.lower:
- new_value = v_adjustment.lower
- v_adjustment.value = new_value
+ if v_adjustment.get_value() > v_adjustment.get_lower():
+ new_value = v_adjustment.get_value() - v_adjustment.step_increment
+ if new_value < v_adjustment.get_lower():
+ new_value = v_adjustment.get_lower()
+ v_adjustment.set_value(new_value)
def set_current_page(self, page):
self.current_page = page
- if _NEW_TOOLBAR_SUPPORT:
- self.update_nav_buttons()
- else:
- self.read_toolbar.update_nav_buttons()
+ self.update_nav_buttons()
self.page = page
def show_page(self, page_number):
@@ -1143,12 +1035,8 @@ class ReadEtextsActivity(activity.Activity):
self.get_saved_page_number()
self.show_page(self.page)
- if _NEW_TOOLBAR_SUPPORT:
- self.set_total_pages(pagecount + 1)
- self.set_current_page(self.page)
- else:
- self.read_toolbar.set_total_pages(pagecount + 1)
- self.read_toolbar.set_current_page(self.page)
+ self.set_total_pages(pagecount + 1)
+ self.set_current_page(self.page)
self.edit_toolbar.enable_search(True)
if filename.endswith(".zip"):
os.remove(current_file_name)
@@ -1252,7 +1140,7 @@ class ReadEtextsActivity(activity.Activity):
self.list_scroller_visible = False
self.book_selected = False
self.ls.clear()
- search_tuple = search_text.lower().split()
+ search_tuple = search_text.get_lower()().split()
if len(search_tuple) == 0:
self.alert(_('Error'), _('You must enter at least one search word.'))
self.books_toolbar.search_entry.grab_focus()
@@ -1262,7 +1150,7 @@ class ReadEtextsActivity(activity.Activity):
line = unicode(f.readline(), "iso-8859-1")
if not line:
break
- line_lower = line.lower()
+ line_lower = line.get_lower()()
i = 0
words_found = 0
while i < len(search_tuple):
@@ -1284,13 +1172,13 @@ class ReadEtextsActivity(activity.Activity):
self.books_toolbar.enable_button(False)
self.list_scroller.props.sensitive = False
if self.selected_path.startswith('PGA'):
- gobject.idle_add(self.download_book, self.selected_path.replace('PGA', 'http://gutenberg.net.au'), \
+ GObject.idle_add(self.download_book, self.selected_path.replace('PGA', 'http://gutenberg.net.au'), \
self.get_book_result_cb)
elif self.selected_path.startswith('/etext'):
- gobject.idle_add(self.download_book, "http://www.gutenberg.org/dirs" + self.selected_path + "108.zip", \
+ GObject.idle_add(self.download_book, "http://www.gutenberg.org/dirs" + self.selected_path + "108.zip", \
self.get_old_book_result_cb)
else:
- gobject.idle_add(self.download_book, "http://www.gutenberg.org/dirs" + self.selected_path + "-8.zip", \
+ GObject.idle_add(self.download_book, "http://www.gutenberg.org/dirs" + self.selected_path + "-8.zip", \
self.get_iso_book_result_cb)
def download_book(self, url, result_cb):
@@ -1340,10 +1228,10 @@ class ReadEtextsActivity(activity.Activity):
bytes_downloaded)
total = self.download_content_length
self.set_downloaded_bytes(bytes_downloaded, total)
- gtk.gdk.threads_enter()
- while gtk.events_pending():
- gtk.main_iteration()
- gtk.gdk.threads_leave()
+ Gdk.threads_enter()
+ while Gtk.events_pending():
+ Gtk.main_iteration()
+ Gdk.threads_leave()
def set_downloaded_bytes(self, bytes, total):
fraction = float(bytes) / float(total)
@@ -1397,10 +1285,7 @@ class ReadEtextsActivity(activity.Activity):
self.current_found_item = 0
current_found_tuple = self.found_records[self.current_found_item]
self.page = current_found_tuple[0]
- if _NEW_TOOLBAR_SUPPORT:
- self.set_current_page(self.page)
- else:
- self.read_toolbar.set_current_page(self.page)
+ self.set_current_page(self.page)
self.show_found_page(current_found_tuple)
def find_next(self):
@@ -1409,10 +1294,7 @@ class ReadEtextsActivity(activity.Activity):
self.current_found_item = len(self.found_records) - 1
current_found_tuple = self.found_records[self.current_found_item]
self.page = current_found_tuple[0]
- if _NEW_TOOLBAR_SUPPORT:
- self.set_current_page(self.page)
- else:
- self.read_toolbar.set_current_page(self.page)
+ self.set_current_page(self.page)
self.show_found_page(current_found_tuple)
def can_find_previous(self):
@@ -1439,7 +1321,7 @@ class ReadEtextsActivity(activity.Activity):
break
line_increment = (len(line) / 80) + 1
linecount = linecount + line_increment
- positions = self.allindices(line.lower(), search_text.lower())
+ positions = self.allindices(line.get_lower()(), search_text.get_lower()())
for position in positions:
found_pos = charcount + position + 3
found_tuple = (pagecount, found_pos, len(search_text) + found_pos)
@@ -1453,10 +1335,7 @@ class ReadEtextsActivity(activity.Activity):
if self.current_found_item == 0:
current_found_tuple = self.found_records[self.current_found_item]
self.page = current_found_tuple[0]
- if _NEW_TOOLBAR_SUPPORT:
- self.set_current_page(self.page)
- else:
- self.read_toolbar.set_current_page(self.page)
+ self.set_current_page(self.page)
self.show_found_page(current_found_tuple)
def allindices(self, line, search, listindex=None, offset=0):
@@ -1507,10 +1386,10 @@ class ReadEtextsActivity(activity.Activity):
bytes_downloaded, tube_id)
total = self.download_content_length
self.set_downloaded_bytes(bytes_downloaded, total)
- gtk.gdk.threads_enter()
- while gtk.events_pending():
- gtk.main_iteration()
- gtk.gdk.threads_leave()
+ Gdk.threads_enter()
+ while Gtk.events_pending():
+ Gtk.main_iteration()
+ Gdk.threads_leave()
def download_error_cb(self, getter, err, tube_id):
self.progressbar.hide()
@@ -1520,12 +1399,12 @@ class ReadEtextsActivity(activity.Activity):
self.want_document = True
self.download_content_length = 0
self.download_content_type = None
- gobject.idle_add(self.get_document)
+ GObject.idle_add(self.get_document)
def download_document(self, tube_id, path):
# FIXME: should ideally have the CM listen on a Unix socket
# instead of IPv4 (might be more compatible with Rainbow)
- chan = self._shared_activity.telepathy_tubes_chan
+ chan = self.shared_activity.telepathy_tubes_chan
iface = chan[telepathy.CHANNEL_TYPE_TUBES]
addr = iface.AcceptStreamTube(tube_id,
telepathy.SOCKET_ADDRESS_TYPE_IPV4,
@@ -1573,7 +1452,7 @@ class ReadEtextsActivity(activity.Activity):
# Avoid trying to download the document multiple times at once
self.want_document = False
- gobject.idle_add(self.download_document, tube_id, path)
+ GObject.idle_add(self.download_document, tube_id, path)
return False
def joined_cb(self, also_self):
@@ -1582,7 +1461,7 @@ class ReadEtextsActivity(activity.Activity):
Get the shared document from another participant.
"""
self.watch_for_tubes()
- gobject.idle_add(self.get_document)
+ GObject.idle_add(self.get_document)
def share_document(self):
"""Share the document."""
@@ -1594,7 +1473,7 @@ class ReadEtextsActivity(activity.Activity):
self.tempfile)
# Make a tube for it
- chan = self._shared_activity.telepathy_tubes_chan
+ chan = self.shared_activity.telepathy_tubes_chan
iface = chan[telepathy.CHANNEL_TYPE_TUBES]
self.fileserver_tube_id = iface.OfferStreamTube(READ_STREAM_SERVICE,
{},
@@ -1604,7 +1483,7 @@ class ReadEtextsActivity(activity.Activity):
def watch_for_tubes(self):
"""Watch for new tubes."""
- tubes_chan = self._shared_activity.telepathy_tubes_chan
+ tubes_chan = self.shared_activity.telepathy_tubes_chan
tubes_chan[telepathy.CHANNEL_TYPE_TUBES].connect_to_signal('NewTube',
self.new_tube_cb)
@@ -1623,7 +1502,7 @@ class ReadEtextsActivity(activity.Activity):
self.unused_download_tubes.add(tube_id)
# if no download is in progress, let's fetch the document
if self.want_document:
- gobject.idle_add(self.get_document)
+ GObject.idle_add(self.get_document)
def list_tubes_reply_cb(self, tubes):
"""Callback when new tubes are available."""
diff --git a/mybutton.py b/mybutton.py
index 38a7acb..38743ef 100644
--- a/mybutton.py
+++ b/mybutton.py
@@ -16,14 +16,14 @@
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 US
-import gtk
+from gi.repository import Gtk
import gconf
-from sugar.graphics.toolbarbox import ToolbarButton
-from sugar.activity.widgets import ActivityToolbar
-from sugar.graphics.xocolor import XoColor
-from sugar.graphics.icon import Icon
-from sugar.bundle.activitybundle import ActivityBundle
+from sugar3.graphics.toolbarbox import ToolbarButton
+from sugar3.activity.widgets import ActivityToolbar
+from sugar3.graphics.xocolor import XoColor
+from sugar3.graphics.icon import Icon
+from sugar3.bundle.activitybundle import ActivityBundle
def _create_activity_icon(metadata):
if metadata.get('icon-color', ''):
@@ -32,7 +32,7 @@ def _create_activity_icon(metadata):
client = gconf.client_get_default()
color = XoColor(client.get_string('/desktop/sugar/user/color'))
- from sugar.activity.activity import get_bundle_path
+ from sugar3.activity.activity import get_bundle_path
bundle = ActivityBundle(get_bundle_path())
icon = Icon(file=bundle.get_icon(), xo_color=color)
@@ -42,8 +42,6 @@ class MyActivityToolbarButton(ToolbarButton):
def __init__(self, activity, **kwargs):
toolbar = ActivityToolbar(activity, orientation_left=True)
- toolbar.stop.hide()
- toolbar.keep.hide()
ToolbarButton.__init__(self, page=toolbar, **kwargs)
diff --git a/readsidebar.py b/readsidebar.py
index f178e92..fa9471b 100644
--- a/readsidebar.py
+++ b/readsidebar.py
@@ -19,24 +19,25 @@
import logging
import time
-import gtk
+from gi.repository import Gtk
+from gi.repository import Gdk
-from sugar.graphics.icon import Icon
+from sugar3.graphics.icon import Icon
from gettext import gettext as _
_logger = logging.getLogger('read-activity')
-class Sidebar(gtk.EventBox):
+class Sidebar(Gtk.EventBox):
def __init__(self):
- gtk.EventBox.__init__(self)
+ Gtk.EventBox.__init__(self)
self.set_size_request(20, -1)
# Take care of the background first
- white = gtk.gdk.color_parse("white")
- self.modify_bg(gtk.STATE_NORMAL, white)
+ white = Gdk.color_parse("white")
+ self.modify_bg(Gtk.StateType.NORMAL, white)
- self.box = gtk.VButtonBox()
- self.box.set_layout(gtk.BUTTONBOX_CENTER)
+ self.box = Gtk.VButtonBox()
+ self.box.set_layout(Gtk.ButtonBoxStyle.CENTER)
self.add(self.box)
self.box.show()
@@ -46,7 +47,7 @@ class Sidebar(gtk.EventBox):
pixel_size = 18)
tooltip_text = _('Bookmark')
self.bookmark_icon.set_tooltip_text(tooltip_text)
- self.box.pack_start(self.bookmark_icon ,expand=False,fill=False)
+ self.box.pack_start(self.bookmark_icon, False, False, 0)
def show_bookmark_icon(self, state):
if state:
diff --git a/readtoolbar.py b/readtoolbar.py
index 020011f..3132b3f 100644
--- a/readtoolbar.py
+++ b/readtoolbar.py
@@ -20,24 +20,26 @@ import logging
from gettext import gettext as _
import re
-import pango
-import gobject
-import gtk
-
-from sugar.graphics.toolbutton import ToolButton
-from sugar.graphics.menuitem import MenuItem
-from sugar.graphics.toolcombobox import ToolComboBox
-from sugar.graphics.combobox import ComboBox
-from sugar.activity import activity
-from sugar.graphics.toggletoolbutton import ToggleToolButton
+from gi.repository import Pango
+from gi.repository import GObject
+from gi.repository import Gtk
+from gi.repository import Gdk
+
+from sugar3.graphics.toolbutton import ToolButton
+from sugar3.graphics.menuitem import MenuItem
+from sugar3.graphics.toolcombobox import ToolComboBox
+from sugar3.graphics.combobox import ComboBox
+from sugar3.activity import activity
+from sugar3.activity import widgets
+from sugar3.graphics.toggletoolbutton import ToggleToolButton
import speech
-class ReadToolbar(gtk.Toolbar):
+class ReadToolbar(Gtk.Toolbar):
__gtype_name__ = 'ReadToolbar'
def __init__(self):
- gtk.Toolbar.__init__(self)
+ Gtk.Toolbar.__init__(self)
self.back = ToolButton('go-previous')
self.back.set_tooltip(_('Back'))
@@ -71,9 +73,9 @@ class ReadToolbar(gtk.Toolbar):
self.insert(self.forward, -1)
self.forward.show()
- num_page_item = gtk.ToolItem()
+ num_page_item = Gtk.ToolItem()
- self.num_page_entry = gtk.Entry()
+ self.num_page_entry = Gtk.Entry()
self.num_page_entry.set_text('0')
self.num_page_entry.set_alignment(1)
self.num_page_entry.connect('insert-text',
@@ -89,14 +91,10 @@ class ReadToolbar(gtk.Toolbar):
self.insert(num_page_item, -1)
num_page_item.show()
- total_page_item = gtk.ToolItem()
-
- self.total_page_label = gtk.Label()
+ total_page_item = Gtk.ToolItem()
- label_attributes = pango.AttrList()
- label_attributes.insert(pango.AttrSize(14000, 0, -1))
- label_attributes.insert(pango.AttrForeground(65535, 65535, 65535, 0, -1))
- self.total_page_label.set_attributes(label_attributes)
+ self.total_page_label = Gtk.Label()
+ self.total_page_label.set_markup("<span size='14000' foreground='black'>")
self.total_page_label.set_text(' / 0')
total_page_item.add(self.total_page_label)
@@ -105,11 +103,11 @@ class ReadToolbar(gtk.Toolbar):
self.insert(total_page_item, -1)
total_page_item.show()
- spacer = gtk.SeparatorToolItem()
+ spacer = Gtk.SeparatorToolItem()
self.insert(spacer, -1)
spacer.show()
- bookmarkitem = gtk.ToolItem()
+ bookmarkitem = Gtk.ToolItem()
self.bookmarker = ToggleToolButton('emblem-favorite')
self.bookmarker.set_tooltip(_('Toggle Bookmark'))
self.bookmarker_handler_id = self.bookmarker.connect('clicked',
@@ -120,7 +118,7 @@ class ReadToolbar(gtk.Toolbar):
self.insert(bookmarkitem, -1)
bookmarkitem.show_all()
- underline_item = gtk.ToolItem()
+ underline_item = Gtk.ToolItem()
self.underline = ToggleToolButton('format-text-underline')
self.underline.set_tooltip(_('Underline'))
self.underline.props.sensitive = False
@@ -201,20 +199,20 @@ class ReadToolbar(gtk.Toolbar):
def update_bookmark_button(self, state):
self.setToggleButtonState(self.bookmarker, state, self.bookmarker_handler_id)
-class ViewToolbar(gtk.Toolbar):
+class ViewToolbar(Gtk.Toolbar):
__gtype_name__ = 'ViewToolbar'
__gsignals__ = {
- 'needs-update-size': (gobject.SIGNAL_RUN_FIRST,
- gobject.TYPE_NONE,
+ 'needs-update-size': (GObject.SIGNAL_RUN_FIRST,
+ GObject.TYPE_NONE,
([])),
- 'go-fullscreen': (gobject.SIGNAL_RUN_FIRST,
- gobject.TYPE_NONE,
+ 'go-fullscreen': (GObject.SIGNAL_RUN_FIRST,
+ GObject.TYPE_NONE,
([]))
}
def __init__(self):
- gtk.Toolbar.__init__(self)
+ Gtk.Toolbar.__init__(self)
self.zoom_out = ToolButton('zoom-out')
self.zoom_out.set_tooltip(_('Zoom out'))
self.zoom_out.connect('clicked', self.zoom_out_cb)
@@ -227,7 +225,7 @@ class ViewToolbar(gtk.Toolbar):
self.insert(self.zoom_in, -1)
self.zoom_in.show()
- spacer = gtk.SeparatorToolItem()
+ spacer = Gtk.SeparatorToolItem()
spacer.props.draw = False
self.insert(spacer, -1)
spacer.show()
@@ -250,23 +248,23 @@ class ViewToolbar(gtk.Toolbar):
def fullscreen_cb(self, button):
self.emit('go-fullscreen')
-class EditToolbar(activity.EditToolbar):
+class EditToolbar(widgets.EditToolbar):
__gtype_name__ = 'EditToolbar'
def __init__(self):
- activity.EditToolbar.__init__(self)
- separator = gtk.SeparatorToolItem()
+ widgets.EditToolbar.__init__(self)
+ separator = Gtk.SeparatorToolItem()
separator.set_draw(False)
separator.set_expand(True)
self.insert(separator, -1)
separator.show()
- search_item = gtk.ToolItem()
+ search_item = Gtk.ToolItem()
- self.search_entry = gtk.Entry()
+ self.search_entry = Gtk.Entry()
self.search_entry.connect('activate', self.search_entry_activate_cb)
- width = int(gtk.gdk.screen_width() / 3)
+ width = int(Gdk.Screen.width() / 3)
self.search_entry.set_size_request(width, -1)
self.search_entry.props.sensitive = False
@@ -315,18 +313,18 @@ class EditToolbar(activity.EditToolbar):
self.prev.props.sensitive = self.activity.can_find_previous()
self.next.props.sensitive = self.activity.can_find_next()
-class BooksToolbar(gtk.Toolbar):
+class BooksToolbar(Gtk.Toolbar):
__gtype_name__ = 'BooksToolbar'
def __init__(self):
- gtk.Toolbar.__init__(self)
- book_search_item = gtk.ToolItem()
+ Gtk.Toolbar.__init__(self)
+ book_search_item = Gtk.ToolItem()
- self.search_entry = gtk.Entry()
+ self.search_entry = Gtk.Entry()
self.search_entry.connect('activate', self.search_entry_activate_cb)
self.search_entry.connect("key_press_event", self.keypress_cb)
- width = int(gtk.gdk.screen_width() / 2)
+ width = int(Gdk.Screen.width() / 2)
self.search_entry.set_size_request(width, -1)
book_search_item.add(self.search_entry)
@@ -368,16 +366,16 @@ class BooksToolbar(gtk.Toolbar):
self.hide_results.props.sensitive = False
def keypress_cb(self, widget, event):
- keyname = gtk.gdk.keyval_name(event.keyval)
+ keyname = Gdk.keyval_name(event.keyval)
if keyname == 'Escape':
self.activity.list_scroller.hide()
self.hide_results.props.sensitive = False
return True
-class SpeechToolbar(gtk.Toolbar):
+class SpeechToolbar(Gtk.Toolbar):
def __init__(self):
- gtk.Toolbar.__init__(self)
- voicebar = gtk.Toolbar()
+ Gtk.Toolbar.__init__(self)
+ voicebar = Gtk.Toolbar()
self.activity = None
self.sorted_voices = [i for i in speech.voices()]
self.sorted_voices.sort(self.compare_voices)
@@ -388,16 +386,16 @@ class SpeechToolbar(gtk.Toolbar):
default = default + 1
# Play button Image
- play_img = gtk.Image()
+ play_img = Gtk.Image()
play_img.show()
play_img.set_from_icon_name('media-playback-start',
- gtk.ICON_SIZE_LARGE_TOOLBAR)
+ Gtk.IconSize.LARGE_TOOLBAR)
# Pause button Image
- pause_img = gtk.Image()
+ pause_img = Gtk.Image()
pause_img.show()
pause_img.set_from_icon_name('media-playback-pause',
- gtk.ICON_SIZE_LARGE_TOOLBAR)
+ Gtk.IconSize.LARGE_TOOLBAR)
# Play button
self.play_btn = ToggleToolButton('media-playback-start')
@@ -415,23 +413,23 @@ class SpeechToolbar(gtk.Toolbar):
self.insert(combotool, -1)
combotool.show()
- self.pitchadj = gtk.Adjustment(0, -100, 100, 1, 10, 0)
- pitchbar = gtk.HScale(self.pitchadj)
+ self.pitchadj = Gtk.Adjustment(0, -100, 100, 1, 10, 0)
+ pitchbar = Gtk.HScale()
pitchbar.set_draw_value(False)
- pitchbar.set_update_policy(gtk.UPDATE_DISCONTINUOUS)
+ # pitchbar.set_update_policy(Gtk.UpdatePolicy.ALWAYS)
pitchbar.set_size_request(150,15)
- pitchtool = gtk.ToolItem()
+ pitchtool = Gtk.ToolItem()
pitchtool.add(pitchbar)
pitchtool.show()
self.insert(pitchtool, -1)
pitchbar.show()
- self.rateadj = gtk.Adjustment(0, -100, 100, 1, 10, 0)
- ratebar = gtk.HScale(self.rateadj)
+ self.rateadj = Gtk.Adjustment(0, -100, 100, 1, 10, 0)
+ ratebar = Gtk.HScale()
ratebar.set_draw_value(False)
- ratebar.set_update_policy(gtk.UPDATE_DISCONTINUOUS)
+ #ratebar.set_update_policy(Gtk.UpdatePolicy.ALWAYS)
ratebar.set_size_request(150,15)
- ratetool = gtk.ToolItem()
+ ratetool = Gtk.ToolItem()
ratetool.add(ratebar)
ratetool.show()
self.insert(ratetool, -1)
@@ -440,9 +438,9 @@ class SpeechToolbar(gtk.Toolbar):
def compare_voices(self, a, b):
if a[0].lower() == b[0].lower():
return 0
- if a[0] .lower()< b[0].lower():
+ if a[0].lower() < b[0].lower():
return -1
- if a[0] .lower()> b[0].lower():
+ if a[0].lower() > b[0].lower():
return 1
def voice_changed_cb(self, combo):
diff --git a/setup.py b/setup.py
index d3ab3a3..c60f4d0 100755
--- a/setup.py
+++ b/setup.py
@@ -1,21 +1,21 @@
#!/usr/bin/env python
-# Copyright (C) 2006, Red Hat, Inc.
+# Copyright (C) 2006, Red Hat, Inc.
#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-from sugar.activity import bundlebuilder
+from sugar3.activity import bundlebuilder
bundlebuilder.start()
diff --git a/speech_dispatcher.py b/speech_dispatcher.py
index d2a5d69..6d841e3 100644
--- a/speech_dispatcher.py
+++ b/speech_dispatcher.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 Gdk
import time
import threading
import speechd
@@ -96,12 +96,12 @@ class EspeakThread(threading.Thread):
if type == speechd.CallbackType.INDEX_MARK:
mark = kargs['index_mark']
word_count = int(mark)
- gtk.gdk.threads_enter()
+ Gdk.threads_enter()
speech.highlight_cb(word_count)
- gtk.gdk.threads_leave()
+ Gdk.threads_leave()
elif type == speechd.CallbackType.END:
- gtk.gdk.threads_enter()
+ Gdk.threads_enter()
speech.reset_cb()
- gtk.gdk.threads_leave()
+ Gdk.threads_leave()
global done
done = True
diff --git a/xopower.py b/xopower.py
index b24f8b0..eec6779 100644
--- a/xopower.py
+++ b/xopower.py
@@ -19,7 +19,7 @@
import os
import logging
import dbus
-import gobject
+from gi.repository import GObject
_HARDWARE_MANAGER_INTERFACE = 'org.laptop.HardwareManager'
_HARDWARE_MANAGER_SERVICE = 'org.laptop.HardwareManager'
@@ -64,8 +64,8 @@ def turn_off_sleep_timer():
def reset_sleep_timer():
global _idle_timer
if _idle_timer > 0:
- gobject.source_remove(_idle_timer)
- _idle_timer = gobject.timeout_add(5000, _suspend)
+ GObject.source_remove(_idle_timer)
+ _idle_timer = GObject.timeout_add(5000, _suspend)
def suspend():
# If the machine has been idle for 5 seconds, suspend