Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames Simmons <nicestep@gmail.com>2013-02-25 00:31:27 (GMT)
committer James Simmons <nicestep@gmail.com>2013-02-25 00:31:27 (GMT)
commit9a6078361b0dc4fb45e12c4ed3410920b08750be (patch)
treec1417f95624315558de85845b2fdd122e14dd6a3
parentc128f925b8f66817d9fa5f4227a1dc90c9a72e18 (diff)
deleted: MANIFEST
deleted: NEWS modified: activity/activity.info modified: mybutton.py modified: readsidebar.py modified: readtoolbar.py modified: setup.py modified: viewslides.py modified: xopower.py Upgrade to use GTK3.
-rw-r--r--MANIFEST228
-rw-r--r--NEWS2
-rw-r--r--activity/activity.info7
-rw-r--r--mybutton.py16
-rw-r--r--readsidebar.py22
-rw-r--r--readtoolbar.py56
-rwxr-xr-xsetup.py2
-rw-r--r--viewslides.py462
-rw-r--r--xopower.py4
9 files changed, 245 insertions, 554 deletions
diff --git a/MANIFEST b/MANIFEST
deleted file mode 100644
index e9c7653..0000000
--- a/MANIFEST
+++ /dev/null
@@ -1,228 +0,0 @@
-viewslides.py
-readtoolbar.py
-readsidebar.py
-xopower.py
-ViewSlides.jpg
-setup.py
-NEWS
-activity/activity.info
-activity/ViewSlides.svg
-locale/es/activity.linfo
-locale/pt/activity.linfo
-locale/fr/activity.linfo
-locale/de/activity.linfo
-locale/pt_BR/activity.linfo
-locale/mk/activity.linfo
-locale/ar/activity.linfo
-locale/el/activity.linfo
-po/ar.po
-po/fr.po
-po/el.po
-po/pt_BR.po
-po/mk.po
-po/es.po
-po/pt.po
-po/de.po
-po/ne.po
-po/sq.po
-po/tzo.po
-po/kos.po
-po/POTFILES.in
-po/ViewSlides.pot
-locale/es/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/pt_BR/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/pt/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/el/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/de/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/ar/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/fr/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/mk/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/ps/activity.linfo
-locale/ps/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/is/activity.linfo
-locale/is/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/ig/activity.linfo
-locale/ig/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/ro/activity.linfo
-locale/ro/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/ja/activity.linfo
-locale/ja/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/pl/activity.linfo
-locale/pl/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/ha/activity.linfo
-locale/ha/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/vi/activity.linfo
-locale/vi/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/yo/activity.linfo
-locale/yo/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/it/activity.linfo
-locale/it/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/fa/activity.linfo
-locale/fa/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/ru/activity.linfo
-locale/ru/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/nl/activity.linfo
-locale/nl/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/th/activity.linfo
-locale/th/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/nb/activity.linfo
-locale/nb/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/wa/activity.linfo
-locale/wa/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/fa_AF/activity.linfo
-locale/fa_AF/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/sv/activity.linfo
-locale/sv/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/tpi/activity.linfo
-locale/tpi/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/mvo/activity.linfo
-locale/mvo/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/mn/activity.linfo
-locale/mn/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/pap/activity.linfo
-locale/pap/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/sd/activity.linfo
-locale/sd/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/ta/activity.linfo
-locale/ta/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/ca/activity.linfo
-locale/ca/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/km/activity.linfo
-locale/km/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/sk/activity.linfo
-locale/sk/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/zh_CN/activity.linfo
-locale/zh_CN/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/ff/activity.linfo
-locale/ff/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/ay/activity.linfo
-locale/ay/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/bn_IN/activity.linfo
-locale/bn_IN/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/mr/activity.linfo
-locale/mr/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/sl/activity.linfo
-locale/sl/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/ht/activity.linfo
-locale/ht/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/af/activity.linfo
-locale/af/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/si/activity.linfo
-locale/si/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/zh_TW/activity.linfo
-locale/zh_TW/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/pis/activity.linfo
-locale/pis/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/tr/activity.linfo
-locale/tr/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/qu/activity.linfo
-locale/qu/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/mg/activity.linfo
-locale/mg/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/en/activity.linfo
-locale/en/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/ms/activity.linfo
-locale/ms/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/bi/activity.linfo
-locale/bi/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/pa/activity.linfo
-locale/pa/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/ur/activity.linfo
-locale/ur/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/na/activity.linfo
-locale/na/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/bg/activity.linfo
-locale/bg/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/dz/activity.linfo
-locale/dz/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/sw/activity.linfo
-locale/sw/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/bn/activity.linfo
-locale/bn/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/ko/activity.linfo
-locale/ko/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/gu/activity.linfo
-locale/gu/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/rw/activity.linfo
-locale/rw/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/hu/activity.linfo
-locale/hu/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/ml/activity.linfo
-locale/ml/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/am/activity.linfo
-locale/am/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/ug/activity.linfo
-locale/ug/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/cs/activity.linfo
-locale/cs/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/cpp/activity.linfo
-locale/cpp/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/hi/activity.linfo
-locale/hi/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/te/activity.linfo
-locale/te/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-locale/he/activity.linfo
-locale/he/LC_MESSAGES/org.laptop.ViewSlidesActivity.mo
-po/te.po
-po/mg.po
-po/ig.po
-po/ml.po
-po/tr.po
-po/fa.po
-po/yo.po
-po/na.po
-po/sl.po
-po/am.po
-po/bg.po
-po/ug.po
-po/cpp.po
-po/af.po
-po/sw.po
-po/it.po
-po/nb.po
-po/mr.po
-po/is.po
-po/ro.po
-po/sv.po
-po/tpi.po
-po/ko.po
-po/pl.po
-po/ay.po
-po/cs.po
-po/pis.po
-po/nl.po
-po/pa.po
-po/ff.po
-po/bi.po
-po/qu.po
-po/vi.po
-po/sk.po
-po/mn.po
-po/zh_TW.po
-po/ur.po
-po/mvo.po
-po/si.po
-po/he.po
-po/pap.po
-po/wa.po
-po/ht.po
-po/hu.po
-po/rw.po
-po/ta.po
-po/zh_CN.po
-po/ru.po
-po/bn.po
-po/bn_IN.po
-po/ja.po
-po/ps.po
-po/sd.po
-po/km.po
-po/ca.po
-po/ms.po
-po/dz.po
-po/en.po
-po/ha.po
-po/hi.po
-po/fa_AF.po
-po/th.po
-po/gu.po
diff --git a/NEWS b/NEWS
deleted file mode 100644
index b1545ff..0000000
--- a/NEWS
+++ /dev/null
@@ -1,2 +0,0 @@
-Initial creation of View Slides Activity 02-21-08
-
diff --git a/activity/activity.info b/activity/activity.info
index 88eb3bd..abd40a1 100644
--- a/activity/activity.info
+++ b/activity/activity.info
@@ -1,9 +1,10 @@
[Activity]
name = View Slides
-service_name = org.laptop.ViewSlidesActivity
+bundle_id = org.laptop.ViewSlidesActivity
exec = sugar-activity viewslides.ViewSlidesActivity
-activity_version = 11
+activity_version = 14
icon = ViewSlides
show_launcher = yes
-mime_types = application/zip
+mime_types = application/zip;application/x-cbz
license = GPLv2+
+summary = Read and annotate comic book .cbz files and other collections of image files stored in Zip archives.
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..cd4b9c3 100644
--- a/readsidebar.py
+++ b/readsidebar.py
@@ -19,24 +19,24 @@
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')
+_logger = logging.getLogger('viewslides-activity')
-class Sidebar(gtk.EventBox):
+class Sidebar(Gtk.EventBox):
def __init__(self):
- gtk.EventBox.__init__(self)
- self.set_size_request(20, -1)
+ Gtk.EventBox.__init__(self)
# 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.StateFlags.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 +46,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 db06e0f..0313970 100644
--- a/readtoolbar.py
+++ b/readtoolbar.py
@@ -19,20 +19,19 @@ import logging
from gettext import gettext as _
import re
-import pango
-import gobject
-import gtk
+from gi.repository import Gtk
+from gi.repository import GObject
-from sugar.graphics.toolbutton import ToolButton
-from sugar.graphics.menuitem import MenuItem
-from sugar.graphics.toggletoolbutton import ToggleToolButton
-from sugar.activity import activity
+from sugar3.graphics.toolbutton import ToolButton
+from sugar3.graphics.menuitem import MenuItem
+from sugar3.graphics.toggletoolbutton import ToggleToolButton
+from sugar3.activity import activity
-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'))
self.back.props.sensitive = False
@@ -65,9 +64,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',
@@ -83,14 +82,10 @@ class ReadToolbar(gtk.Toolbar):
self.insert(num_page_item, -1)
num_page_item.show()
- total_page_item = gtk.ToolItem()
+ 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)
+ self._total_page_label = Gtk.Label()
+ self._total_page_label.set_markup("<span foreground='#FFF' size='14000'></span>")
self._total_page_label.set_text(' / 0')
total_page_item.add(self._total_page_label)
@@ -99,11 +94,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',
@@ -180,20 +175,15 @@ class ReadToolbar(gtk.Toolbar):
def update_bookmark_button(self, state):
self.setToggleButtonState(self.bookmarker, state, self.bookmarker_handler_id)
-class ViewToolbar(gtk.Toolbar):
- __gtype_name__ = 'ViewToolbar'
-
+class ViewToolbar(Gtk.Toolbar):
__gsignals__ = {
- '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)
@@ -208,7 +198,7 @@ class ViewToolbar(gtk.Toolbar):
self._zoom_in.props.sensitive = True
self._zoom_in.show()
- spacer = gtk.SeparatorToolItem()
+ spacer = Gtk.SeparatorToolItem()
spacer.props.draw = False
self.insert(spacer, -1)
spacer.show()
@@ -243,11 +233,11 @@ class ViewToolbar(gtk.Toolbar):
def _fullscreen_cb(self, button):
self.emit('go-fullscreen')
-class SlidesToolbar(gtk.Toolbar):
+class SlidesToolbar(Gtk.Toolbar):
__gtype_name__ = 'SlidesToolbar'
def __init__(self):
- gtk.Toolbar.__init__(self)
+ Gtk.Toolbar.__init__(self)
self._show_image_tables = ToolButton('insert-image')
self._show_image_tables.set_tooltip(_('Show Image Table'))
self._show_image_tables.connect('clicked', self._show_image_tables_cb)
@@ -268,7 +258,7 @@ class SlidesToolbar(gtk.Toolbar):
self._hide_image_tables.props.sensitive = False
self._hide_image_tables.show()
- spacer = gtk.SeparatorToolItem()
+ spacer = Gtk.SeparatorToolItem()
spacer.props.draw = False
self.insert(spacer, -1)
spacer.show()
diff --git a/setup.py b/setup.py
index fae74b8..9af7975 100755
--- a/setup.py
+++ b/setup.py
@@ -16,7 +16,7 @@
# 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/viewslides.py b/viewslides.py
index d82bd6a..eddf606 100644
--- a/viewslides.py
+++ b/viewslides.py
@@ -1,6 +1,4 @@
-#! /usr/bin/env python
-
-# Copyright (C) 2008, 2009 James D. Simmons
+# Copyright (C) 2008, 2013 James D. Simmons
#
# 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
@@ -20,34 +18,29 @@ import logging
import time
import zipfile
from zipfile import BadZipfile
-import gtk
-import pygame, pygame.display
+from gi.repository import Gtk
+from gi.repository import GdkPixbuf
+from gi.repository import Gdk
+import pygame
import re
-import pango
-from sugar.activity import activity
-from sugar import network
-from sugar.datastore import datastore
-from sugar import profile
-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, SlidesToolbar
- 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, SlidesToolbar
+from sugar3.activity import activity
+from sugar3 import network
+from sugar3.datastore import datastore
+from sugar3 import profile
+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, SlidesToolbar
+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 dbus
-import gobject
+from gi.repository import GObject
import telepathy
import cPickle as pickle
from decimal import *
@@ -186,9 +179,15 @@ class ReadURLDownloader(network.GlibURLDownloader):
return None
-READ_STREAM_SERVICE = 'read-activity-http'
+READ_STREAM_SERVICE = 'viewslides-activity-http'
class ViewSlidesActivity(activity.Activity):
+ __gsignals__ = {
+ 'go-fullscreen': (GObject.SIGNAL_RUN_FIRST,
+ GObject.TYPE_NONE,
+ ([]))
+ }
+
def __init__(self, handle):
"The entry point to the Activity"
activity.Activity.__init__(self, handle)
@@ -196,88 +195,81 @@ class ViewSlidesActivity(activity.Activity):
self._fileserver = None
self._object_id = handle.object_id
self.zoom_image_to_fit = True
+ self.total_pages = 0
- self.connect("expose_event", self.area_expose_cb)
+ self.connect("draw", self.area_expose_cb)
self.connect("delete_event", self.delete_cb)
-
- 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.image = gtk.Image()
- self.eventbox = gtk.EventBox()
+ self.object_id = handle.object_id
+ self.create_new_toolbar()
+ self.scrolled = Gtk.ScrolledWindow()
+ self.scrolled.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC)
+ self.image = Gtk.Image()
+ self.eventbox = Gtk.EventBox()
self.eventbox.add(self.image)
self.image.show()
self.eventbox.show()
self.scrolled.add_with_viewport(self.eventbox)
- self.eventbox.set_events(gtk.gdk.KEY_PRESS_MASK | gtk.gdk.BUTTON_PRESS_MASK)
- self.eventbox.set_flags(gtk.CAN_FOCUS)
+ self.eventbox.set_events(Gdk.EventMask.KEY_PRESS_MASK | Gdk.EventMask.BUTTON_PRESS_MASK)
self.eventbox.connect("key_press_event", self.keypress_cb)
self.eventbox.connect("button_press_event", self.buttonpress_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)
self.annotation_textview.show()
self.sidebar = Sidebar()
self.sidebar.show()
- self.ls_left = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING)
- tv_left = gtk.TreeView(self.ls_left)
+ self.ls_left = self.ls_left = Gtk.ListStore(GObject.TYPE_STRING, GObject.TYPE_STRING)
+ tv_left = Gtk.TreeView(self.ls_left)
tv_left.set_rules_hint(True)
tv_left.set_search_column(COLUMN_IMAGE)
selection_left = tv_left.get_selection()
- selection_left.set_mode(gtk.SELECTION_SINGLE)
+ selection_left.set_mode(Gtk.SelectionMode.SINGLE)
selection_left.connect("changed", self.selection_left_cb)
- renderer = gtk.CellRendererText()
- col_left = gtk.TreeViewColumn(_('Slideshow Image'), renderer, text=COLUMN_IMAGE)
+ renderer = Gtk.CellRendererText()
+ col_left = Gtk.TreeViewColumn(_('Slideshow Image'), renderer, text=COLUMN_IMAGE)
col_left.set_sort_column_id(COLUMN_IMAGE)
renderer.set_property('editable', True)
renderer.connect('edited', self.col_left_edited_cb, self.ls_left)
tv_left.append_column(col_left)
- self.list_scroller_left = gtk.ScrolledWindow(hadjustment=None, vadjustment=None)
- self.list_scroller_left.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
+ self.list_scroller_left = Gtk.ScrolledWindow()
+ self.list_scroller_left.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC)
self.list_scroller_left.add(tv_left)
- self.ls_right = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_PYOBJECT)
- tv_right = gtk.TreeView(self.ls_right)
+ self.ls_right = Gtk.ListStore(GObject.TYPE_STRING, GObject.TYPE_PYOBJECT)
+ tv_right = Gtk.TreeView(self.ls_right)
tv_right.set_rules_hint(True)
tv_right.set_search_column(COLUMN_IMAGE)
selection_right = tv_right.get_selection()
- selection_right.set_mode(gtk.SELECTION_SINGLE)
+ selection_right.set_mode(Gtk.SelectionMode.SINGLE)
selection_right.connect("changed", self.selection_right_cb)
- renderer = gtk.CellRendererText()
- self.col_right = gtk.TreeViewColumn(_('Available Images'), renderer, text=COLUMN_IMAGE)
+ renderer = Gtk.CellRendererText()
+ self.col_right = Gtk.TreeViewColumn(_('Available Images'), renderer, text=COLUMN_IMAGE)
self.col_right.set_sort_column_id(COLUMN_IMAGE)
tv_right.append_column(self.col_right)
- self.list_scroller_right = gtk.ScrolledWindow(hadjustment=None, vadjustment=None)
- self.list_scroller_right.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
+ self.list_scroller_right = Gtk.ScrolledWindow(hadjustment=None, vadjustment=None)
+ self.list_scroller_right.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC)
self.list_scroller_right.add(tv_right)
- self.hpane = gtk.HPaned()
+ self.hpane = Gtk.HPaned()
self.hpane.add1(self.list_scroller_left)
self.hpane.add2(self.list_scroller_right)
-
- 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.hpane)
+ vbox.pack_start(self.scrolled, True, True, 0)
+ vbox.pack_end(self.hpane, True, True, 0)
vbox.pack_end(self.annotation_textview, False, False, 10)
- 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()
@@ -300,10 +292,6 @@ class ViewSlidesActivity(activity.Activity):
self.temp_filename = ''
self.saved_screen_width = 0
self.eventbox.grab_focus()
-
- pixmap = gtk.gdk.Pixmap(None, 1, 1, 1)
- color = gtk.gdk.Color()
- self.hidden_cursor = gtk.gdk.Cursor(pixmap, pixmap, color, color, 0, 0)
self.cursor_visible = True
self.pickle_file_temp = os.path.join(self.get_activity_root(), 'instance', 'pkl%i' % time.time())
@@ -333,7 +321,7 @@ class ViewSlidesActivity(activity.Activity):
self.selected_title = None
self.selection_left = None
- 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
@@ -346,38 +334,9 @@ class ViewSlidesActivity(activity.Activity):
if handle.object_id == None:
self.tempfile = os.path.join(self.get_activity_root(), 'instance',
'tmp%i' % time.time())
- self.toolbox.set_current_toolbar(_TOOLBAR_SLIDES)
+
self.show_image_tables(True)
- 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.read_toolbar = ReadToolbar()
- toolbox.add_toolbar(_('Read'), self.read_toolbar)
- self.read_toolbar.show()
- self.read_toolbar.set_activity(self)
-
- self.view_toolbar = ViewToolbar()
- toolbox.add_toolbar(_('View'), self.view_toolbar)
- self.view_toolbar.set_activity(self)
- self.view_toolbar.connect('go-fullscreen',
- self.__view_toolbar_go_fullscreen_cb)
- self.view_toolbar.show()
-
- self._slides_toolbar = SlidesToolbar()
- toolbox.add_toolbar(_('Slides'), self._slides_toolbar)
- self._slides_toolbar.set_activity(self)
- self._slides_toolbar.show()
-
- self.set_toolbox(toolbox)
- toolbox.show()
-
- # start on the read toolbar
- self.toolbox.set_current_toolbar(_TOOLBAR_READ)
-
def create_new_toolbar(self):
toolbar_box = ToolbarBox()
@@ -392,30 +351,22 @@ class ViewSlidesActivity(activity.Activity):
toolbar_box.toolbar.insert(slides_toolbar_button, -1)
slides_toolbar_button.show()
- self.view_toolbar = ViewToolbar()
- self.view_toolbar.connect('go-fullscreen', \
+ self.connect('go-fullscreen', \
self.__view_toolbar_go_fullscreen_cb)
- self.view_toolbar.set_activity(self)
- self.view_toolbar.show()
- view_toolbar_button = ToolbarButton(
- page=self.view_toolbar,
- icon_name='toolbar-view')
- toolbar_box.toolbar.insert(view_toolbar_button, -1)
- view_toolbar_button.show()
self.back = ToolButton('go-previous')
self.back.set_tooltip(_('Back'))
self.back.props.sensitive = False
palette = self.back.get_palette()
- self.prev_page = MenuItem(text_label= _("Previous page"))
- palette.menu.append(self.prev_page)
- self.prev_page.show_all()
- self.prev_bookmark = MenuItem(text_label= _("Previous bookmark"))
- palette.menu.append(self.prev_bookmark)
- self.prev_bookmark.show_all()
+ self.menu_prev_page = MenuItem(text_label= _("Previous page"))
+ palette.menu.append(self.menu_prev_page)
+ self.menu_prev_page.show_all()
+ self.menu_prev_bookmark = MenuItem(text_label= _("Previous bookmark"))
+ palette.menu.append(self.menu_prev_bookmark)
+ self.menu_prev_bookmark.show_all()
self.back.connect('clicked', self.go_back_cb)
- self.prev_page.connect('activate', self.go_back_cb)
- self.prev_bookmark.connect('activate', self.prev_bookmark_activate_cb)
+ self.menu_prev_page.connect('activate', self.go_back_cb)
+ self.menu_prev_bookmark.connect('activate', self.prev_bookmark_activate_cb)
toolbar_box.toolbar.insert(self.back, -1)
self.back.show()
@@ -423,20 +374,20 @@ class ViewSlidesActivity(activity.Activity):
self.forward.set_tooltip(_('Forward'))
self.forward.props.sensitive = False
palette = self.forward.get_palette()
- self.next_page = MenuItem(text_label= _("Next page"))
- palette.menu.append(self.next_page)
- self.next_page.show_all()
- self.next_bookmark = MenuItem(text_label= _("Next bookmark"))
- palette.menu.append(self.next_bookmark)
- self.next_bookmark.show_all()
+ self.menu_next_page = MenuItem(text_label= _("Next page"))
+ palette.menu.append(self.menu_next_page)
+ self.menu_next_page.show_all()
+ self.menu_next_bookmark = MenuItem(text_label= _("Next bookmark"))
+ palette.menu.append(self.menu_next_bookmark)
+ self.menu_next_bookmark.show_all()
self.forward.connect('clicked', self.go_forward_cb)
- self.next_page.connect('activate', self.go_forward_cb)
- self.next_bookmark.connect('activate', self.next_bookmark_activate_cb)
+ self.menu_next_page.connect('activate', self.go_forward_cb)
+ self.menu_next_bookmark.connect('activate', self.next_bookmark_activate_cb)
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',
@@ -449,26 +400,21 @@ class ViewSlidesActivity(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='#FFF' size='14000'></span>")
self.total_page_label.set_text(' / 0')
total_page_item.add(self.total_page_label)
self.total_page_label.show()
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',
@@ -479,16 +425,31 @@ class ViewSlidesActivity(activity.Activity):
toolbar_box.toolbar.insert(bookmarkitem, -1)
bookmarkitem.show_all()
- underline_item = gtk.ToolItem()
- self.underline = ToggleToolButton('format-text-underline')
- self.underline.set_tooltip(_('Underline'))
- self.underline.props.sensitive = False
- self.underline_id = self.underline.connect('clicked', self.underline_cb)
- underline_item.add(self.underline)
- toolbar_box.toolbar.insert(underline_item, -1)
- underline_item.show_all()
-
- separator = gtk.SeparatorToolItem()
+ spacer2 = Gtk.SeparatorToolItem()
+ toolbar_box.toolbar.insert(spacer2, -1)
+ spacer2.show()
+
+ self._zoom_out = ToolButton('zoom-out')
+ self._zoom_out.set_tooltip(_('Zoom out'))
+ self._zoom_out.connect('clicked', self._zoom_out_cb)
+ toolbar_box.toolbar.insert(self._zoom_out, -1)
+ self._zoom_out.props.sensitive = False
+ self._zoom_out.show()
+
+ self._zoom_in = ToolButton('zoom-in')
+ self._zoom_in.set_tooltip(_('Zoom in'))
+ self._zoom_in.connect('clicked', self._zoom_in_cb)
+ toolbar_box.toolbar.insert(self._zoom_in, -1)
+ self._zoom_in.props.sensitive = True
+ self._zoom_in.show()
+
+ self._fullscreen = ToolButton('view-fullscreen')
+ self._fullscreen.set_tooltip(_('Fullscreen'))
+ self._fullscreen.connect('clicked', self._fullscreen_cb)
+ toolbar_box.toolbar.insert(self._fullscreen, -1)
+ self._fullscreen.show()
+
+ separator = Gtk.SeparatorToolItem()
separator.props.draw = False
separator.set_expand(True)
toolbar_box.toolbar.insert(separator, -1)
@@ -501,6 +462,30 @@ class ViewSlidesActivity(activity.Activity):
self.set_toolbar_box(toolbar_box)
toolbar_box.show()
+ if self.object_id is None:
+ # Not joining, not resuming
+ slides_toolbar_button.set_expanded(True)
+
+ def _zoom_in_cb(self, button):
+ self._zoom_in.props.sensitive = False
+ self._zoom_out.props.sensitive = True
+ self.zoom_to_width()
+
+ def _zoom_out_cb(self, button):
+ self._zoom_in.props.sensitive = True
+ self._zoom_out.props.sensitive = False
+ self.zoom_to_fit()
+
+ def enable_zoom_in(self):
+ self._zoom_in.props.sensitive = True
+ self._zoom_out.props.sensitive = False
+
+ def enable_zoom_out(self):
+ self._zoom_in.props.sensitive = False
+ self._zoom_out.props.sensitive = True
+
+ def _fullscreen_cb(self, button):
+ self.emit('go-fullscreen')
def __new_num_page_entry_insert_text_cb(self, entry, text, length, position):
if not re.match('[0-9]', text):
@@ -519,20 +504,19 @@ class ViewSlidesActivity(activity.Activity):
elif page < 0:
page = 0
- self.current_page = page
self.set_current_page(page)
self.show_page(page)
entry.props.text = str(page + 1)
self.update_nav_buttons()
def go_back_cb(self, button):
- self.page_previous()
+ self.previous_page()
def go_forward_cb(self, button):
- self.page_next()
+ self.next_page()
def update_nav_buttons(self):
- current_page = self.current_page
+ current_page = self.page
self.back.props.sensitive = current_page > 0
self.forward.props.sensitive = \
current_page < self.total_pages - 1
@@ -553,23 +537,17 @@ class ViewSlidesActivity(activity.Activity):
def bookmarker_clicked_cb(self, button):
self.bookmarker_clicked(button)
- def underline_cb(self, button):
- self.underline_clicked(button)
-
def setToggleButtonState(self,button,b,id):
button.handler_block(id)
button.set_active(b)
button.handler_unblock(id)
- def update_underline_button(self, state):
- self.setToggleButtonState(self.underline, state, self.underline_id)
-
def update_bookmark_button(self, state):
self.setToggleButtonState(self.bookmarker, state, self.bookmarker_handler_id)
def load_journal_table(self):
- ds_objects, num_objects = datastore.find({'mime_type':['image/jpeg', 'image/gif', \
- 'image/tiff', 'image/png']})
+ ds_objects, num_objects = datastore.find({'mime_type':['image/jpeg', 'image/gif',
+ 'image/tiff', 'image/png']}, properties=['uid', 'title', 'mime_type'])
self.ls_right.clear()
for i in xrange (0, num_objects, 1):
iter = self.ls_right.append()
@@ -590,21 +568,18 @@ class ViewSlidesActivity(activity.Activity):
self.ls_right.set(iter, COLUMN_PATH, jobject_wrapper)
valid_endings = ('.jpg', '.jpeg', '.JPEG', '.JPG', '.gif', '.GIF', '.tiff', '.TIFF', '.png', '.PNG')
- ds_mounts = datastore.mounts()
- if len(ds_mounts) == 1 and ds_mounts[0]['id'] == 1:
- # datastore.mounts() is stubbed out, we're running .84 or better
- for dirname, dirnames, filenames in os.walk('/media'):
- if '.olpc.store' in dirnames:
- dirnames.remove('.olpc.store') # don't visit .olpc.store directories
- for filename in filenames:
- if filename.endswith(valid_endings):
- iter = self.ls_right.append()
- jobject_wrapper = JobjectWrapper()
- jobject_wrapper.set_file_path(os.path.join(dirname, filename))
- self.ls_right.set(iter, COLUMN_IMAGE, filename)
- self.ls_right.set(iter, COLUMN_PATH, jobject_wrapper)
-
- self.ls_right.set_sort_column_id(COLUMN_IMAGE, gtk.SORT_ASCENDING)
+ for dirname, dirnames, filenames in os.walk('/media'):
+ if '.olpc.store' in dirnames:
+ dirnames.remove('.olpc.store') # don't visit .olpc.store directories
+ for filename in filenames:
+ if filename.endswith(valid_endings):
+ iter = self.ls_right.append()
+ jobject_wrapper = JobjectWrapper()
+ jobject_wrapper.set_file_path(os.path.join(dirname, filename))
+ self.ls_right.set(iter, COLUMN_IMAGE, filename)
+ self.ls_right.set(iter, COLUMN_PATH, jobject_wrapper)
+
+ self.ls_right.set_sort_column_id(COLUMN_IMAGE, Gtk.SortType.ASCENDING)
def col_left_edited_cb(self, cell, path, new_text, user_data):
liststore = user_data
@@ -623,21 +598,12 @@ class ViewSlidesActivity(activity.Activity):
self._slides_toolbar._hide_image_tables.props.sensitive = True
self._slides_toolbar._reload_journal_table.props.sensitive = True
self._slides_toolbar._show_image_tables.props.sensitive = False
- if _NEW_TOOLBAR_SUPPORT:
- pass
- else:
- self.read_toolbar.props.sensitive = False
- self.view_toolbar.props.sensitive = False
+
self.show_image("ViewSlides.jpg")
else:
self.hpane.hide()
self.annotation_textview.show()
self.sidebar.show()
- if _NEW_TOOLBAR_SUPPORT:
- pass
- else:
- self.read_toolbar.props.sensitive =True
- self.view_toolbar.props.sensitive = True
self.rewrite_zip()
self.set_current_page(0)
self._load_document(self.tempfile)
@@ -809,7 +775,7 @@ class ViewSlidesActivity(activity.Activity):
"Respond when the user presses Escape or 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 == 'Page_Up':
self.previous_page()
return True
@@ -828,14 +794,6 @@ class ViewSlidesActivity(activity.Activity):
if keyname == 'KP_Left':
self.scroll_up()
return True
- if keyname == 'KP_Home':
- if self.cursor_visible:
- self.window.set_cursor(self.hidden_cursor)
- self.cursor_visible = False
- else:
- self.window.set_cursor(None)
- self.cursor_visible = True
- return True
if keyname == 'plus':
self.view_toolbar.enable_zoom_out()
self.zoom_to_width()
@@ -858,20 +816,14 @@ class ViewSlidesActivity(activity.Activity):
bookmark = self.annotations.is_bookmarked(page)
if bookmark == True:
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 prev_bookmark(self):
textbuffer = self.annotation_textview.get_buffer()
- if self.annotations.add_note(self.page, textbuffer.get_text(textbuffer.get_start_iter(), textbuffer.get_end_iter())):
+ if self.annotations.add_note(self.page, textbuffer.get_text(textbuffer.get_start_iter(), textbuffer.get_end_iter(), include_hidden_chars=True)):
self.annotations_dirty = True
bookmarks = self.annotations.get_bookmarks()
count = len(bookmarks) - 1
@@ -879,24 +831,18 @@ class ViewSlidesActivity(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):
textbuffer = self.annotation_textview.get_buffer()
- if self.annotations.add_note(self.page, textbuffer.get_text(textbuffer.get_start_iter(), textbuffer.get_end_iter())):
+ if self.annotations.add_note(self.page, textbuffer.get_text(textbuffer.get_start_iter(), textbuffer.get_end_iter(), include_hidden_chars=True)):
self.annotations_dirty = True
bookmarks = self.annotations.get_bookmarks()
count = 0
@@ -904,46 +850,40 @@ class ViewSlidesActivity(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 scroll_down(self):
v_adjustment = self.scrolled.get_vadjustment()
- if v_adjustment.value == v_adjustment.upper - v_adjustment.page_size:
+ if v_adjustment.value == v_adjustment.get_upper() - v_adjustment.get_page_size():
self.next_page()
return
- if v_adjustment.value < v_adjustment.upper - v_adjustment.page_size:
+ if v_adjustment.value < v_adjustment.get_upper() - v_adjustment.get_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
+ 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.value = new_value
def scroll_up(self):
v_adjustment = self.scrolled.get_vadjustment()
- if v_adjustment.value == v_adjustment.lower:
+ if v_adjustment.value == v_adjustment.get_lower():
self.previous_page()
return
- if v_adjustment.value > v_adjustment.lower:
+ if v_adjustment.value > v_adjustment.get_lower():
new_value = v_adjustment.value - v_adjustment.step_increment
- if new_value < v_adjustment.lower:
- new_value = v_adjustment.lower
+ if new_value < v_adjustment.get_lower():
+ new_value = v_adjustment.get_lower()
v_adjustment.value = new_value
def previous_page(self):
textbuffer = self.annotation_textview.get_buffer()
- if self.annotations.add_note(self.page, textbuffer.get_text(textbuffer.get_start_iter(), textbuffer.get_end_iter())):
+ if self.annotations.add_note(self.page, textbuffer.get_text(textbuffer.get_start_iter(), textbuffer.get_end_iter(), include_hidden_chars=True)):
self.annotations_dirty = True
page = self.page
page=page-1
@@ -954,24 +894,23 @@ class ViewSlidesActivity(activity.Activity):
os.remove(fname)
self.show_bookmark_state(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(page)
- else:
- self.read_toolbar.set_current_page(page)
+ v_adjustment.value = v_adjustment.get_upper() - v_adjustment.get_page_size()
+ self.set_current_page(page)
self.page = page
annotation_textbuffer = self.annotation_textview.get_buffer()
annotation_textbuffer.set_text(self.annotations.get_note(page))
def set_current_page(self, page):
self.page = page
+ self.update_nav_buttons()
def next_page(self):
textbuffer = self.annotation_textview.get_buffer()
- if self.annotations.add_note(self.page, textbuffer.get_text(textbuffer.get_start_iter(), textbuffer.get_end_iter())):
+ if self.annotations.add_note(self.page, textbuffer.get_text(textbuffer.get_start_iter(), textbuffer.get_end_iter(), include_hidden_chars=False)):
self.annotations_dirty = True
page = self.page
page = page + 1
+ print "\n\n\n", page, "\n\n\n"
if page >= len(self.image_files): page=len(self.image_files) - 1
if self.save_extracted_file(self.zf, self.image_files[page]) == True:
fname = os.path.join(self.get_activity_root(), 'instance', self.make_new_filename(self.image_files[page]))
@@ -979,18 +918,15 @@ class ViewSlidesActivity(activity.Activity):
os.remove(fname)
self.show_bookmark_state(page)
v_adjustment = self.scrolled.get_vadjustment()
- v_adjustment.value = v_adjustment.lower
- if _NEW_TOOLBAR_SUPPORT:
- self.set_current_page(page)
- else:
- self.read_toolbar.set_current_page(page)
+ v_adjustment.value = v_adjustment.get_lower()
+ self.set_current_page(page)
self.page = page
annotation_textbuffer = self.annotation_textview.get_buffer()
annotation_textbuffer.set_text(self.annotations.get_note(page))
def area_expose_cb(self, area, event):
- screen_width = gtk.gdk.screen_width()
- screen_height = gtk.gdk.screen_height()
+ screen_width = Gdk.Screen.width()
+ screen_height = Gdk.Screen.height()
if self.saved_screen_width != screen_width and self.saved_screen_width != 0:
self.show_page(self.page)
self.saved_screen_width = screen_width
@@ -1007,10 +943,12 @@ class ViewSlidesActivity(activity.Activity):
def show_image(self, filename):
"display a resized image in a full screen window"
- TOOLBOX_HEIGHT = 40
+ TOOLBOX_HEIGHT = 60
+ BORDER_WIDTH = 30
# get the size of the fullscreen display
- screen_width = gtk.gdk.screen_width()
- screen_height = gtk.gdk.screen_height()
+ screen_width = Gdk.Screen.width()
+ screen_width = screen_width - BORDER_WIDTH
+ screen_height = Gdk.Screen.height()
screen_height = screen_height - TOOLBOX_HEIGHT
# get the size of the image.
im = pygame.image.load(filename)
@@ -1054,8 +992,8 @@ class ViewSlidesActivity(activity.Activity):
new_height /= new_width
new_width = screen_width
- pixbuf = gtk.gdk.pixbuf_new_from_file(filename)
- scaled_buf = pixbuf.scale_simple(new_width, new_height, gtk.gdk.INTERP_BILINEAR)
+ pixbuf = GdkPixbuf.Pixbuf.new_from_file(filename)
+ scaled_buf = pixbuf.scale_simple(new_width, new_height, GdkPixbuf.InterpType.BILINEAR)
self.image.set_from_pixbuf(scaled_buf)
self.image.show()
@@ -1065,7 +1003,6 @@ class ViewSlidesActivity(activity.Activity):
filebytes = zipfile.read(filename)
except BadZipfile, err:
print 'Error opening the zip file: %s' % (err)
- # self._alert('Error', 'Error opening the zip file')
return False
except KeyError, err:
self._alert('Key Error', 'Zipfile key not found: ' + str(filename))
@@ -1162,12 +1099,8 @@ class ViewSlidesActivity(activity.Activity):
self.extract_pickle_file()
self.annotations.restore()
self.show_page(self.page)
- if _NEW_TOOLBAR_SUPPORT:
- self.set_total_pages(len(self.image_files))
- self.set_current_page(self.page)
- else:
- self.read_toolbar.set_total_pages(len(self.image_files))
- self.read_toolbar.set_current_page(self.page)
+ self.set_total_pages(len(self.image_files))
+ self.set_current_page(self.page)
if self.is_received_document == True:
self.metadata['title'] = self.annotations.get_title()
self.metadata['title_set_by_user'] = '1'
@@ -1192,10 +1125,11 @@ class ViewSlidesActivity(activity.Activity):
self.save_page_number()
self.metadata['activity'] = self.get_bundle_id()
+ self.metadata['mime_type'] = 'application/x-cbz'
if self._close_requested:
textbuffer = self.annotation_textview.get_buffer()
- if self.annotations.add_note(self.page, textbuffer.get_text(textbuffer.get_start_iter(), textbuffer.get_end_iter())):
+ if self.annotations.add_note(self.page, textbuffer.get_text(textbuffer.get_start_iter(), textbuffer.get_end_iter(), include_hidden_chars=True)):
self.annotations_dirty = True
title = self.metadata.get('title', '')
self.annotations.set_title(str(title))
@@ -1252,10 +1186,10 @@ class ViewSlidesActivity(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()
@@ -1265,7 +1199,7 @@ class ViewSlidesActivity(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
@@ -1318,7 +1252,7 @@ class ViewSlidesActivity(activity.Activity):
# Avoid trying to download the document multiple times at once
self._want_document = False
self.progressbar.show()
- 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):
@@ -1327,7 +1261,7 @@ class ViewSlidesActivity(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."""
@@ -1368,7 +1302,7 @@ class ViewSlidesActivity(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/xopower.py b/xopower.py
index a191015..d56b6bc 100644
--- a/xopower.py
+++ b/xopower.py
@@ -1,5 +1,3 @@
-#! /usr/bin/env python
-
# Copyright (C) 2009 James D. Simmons
#
# This program is free software; you can redistribute it and/or modify
@@ -25,7 +23,7 @@ _HARDWARE_MANAGER_INTERFACE = 'org.laptop.HardwareManager'
_HARDWARE_MANAGER_SERVICE = 'org.laptop.HardwareManager'
_HARDWARE_MANAGER_OBJECT_PATH = '/org/laptop/HardwareManager'
-_logger = logging.getLogger('read-etexts-activity')
+_logger = logging.getLogger('viewslides-activity')
# start with sleep off
sleep_inhibit = True