From 5ebb52e58b0ead1b85b8c05d3c42ca4a6d2ba7f9 Mon Sep 17 00:00:00 2001 From: flavio Date: Thu, 27 Sep 2012 00:50:49 +0000 Subject: Starting Port to GTK3 and Fixing errors. --- diff --git a/activity/activity.info b/activity/activity.info index 09a1c9d..5f96730 100644 --- a/activity/activity.info +++ b/activity/activity.info @@ -4,6 +4,6 @@ bundle_id = org.laptop.ImageThumbnail icon = imageviewer exec = sugar-activity imagethumbnail.ImageThumbnail show_launcher = yes -activity_version = 7 +activity_version = 8 mime_types = image/bmp;image/gif;image/jpeg;image/png;image/tiff license = GPLv2+ diff --git a/imagethumbnail.py b/imagethumbnail.py index 6f5746b..bdeffa8 100755..100644 --- a/imagethumbnail.py +++ b/imagethumbnail.py @@ -20,21 +20,29 @@ import os import sys -import gtk import logging -import pango import zipfile import time import traceback -import gobject from subprocess import Popen, PIPE -from glib import GError +import gi +from gi.repository import Gtk +from gi.repository import Gdk +from gi.repository import GObject +from gi.repository import Pango +from gi.repository import GdkPixbuf -from sugar import mime -from sugar.activity import activity -from sugar.datastore import datastore -from sugar.graphics import style +#from glib import GError + +from sugar3 import mime +from sugar3.activity import activity +from sugar3.datastore import datastore +from sugar3.graphics import style +from sugar3.graphics.toolbarbox import ToolbarBox +from sugar3.activity.widgets import ActivityButton +from sugar3.activity.widgets import TitleEntry +from sugar3.activity.widgets import StopButton from gettext import gettext as _ @@ -60,16 +68,17 @@ class ImageThumbnail(activity.Activity): self.selected_journal_entry = None self.selected_path = None - self.canvas = gtk.Notebook() + self.canvas = Gtk.Notebook() self.canvas.props.show_border = True self.canvas.props.show_tabs = True self.canvas.show() self.last_col=0 cols=3 - ds_mounts = datastore.mounts() + # FIXME: module object has no attribute mounts + #ds_mounts = datastore.mounts() #check if externmal media used in journal - if len(ds_mounts)==1 and ds_mounts[0]['id']==1:cols=4 + #if len(ds_mounts)==1 and ds_mounts[0]['id']==1:cols=4 self.ls_journal=[] self.tv_journal=[] @@ -86,42 +95,44 @@ class ImageThumbnail(activity.Activity): for col in range(cols): - self.ls_journal.append( gtk.ListStore(gobject.TYPE_STRING, - gobject.TYPE_UINT64, - gobject.TYPE_STRING, - gobject.TYPE_PYOBJECT)) + self.ls_journal.append( Gtk.ListStore(GObject.TYPE_STRING, + GObject.TYPE_UINT64, + GObject.TYPE_STRING, + GObject.TYPE_PYOBJECT)) - self.tv_journal.append( gtk.TreeView(self.ls_journal[col])) + self.tv_journal.append( Gtk.TreeView(self.ls_journal[col])) self.tv_journal[col].set_rules_hint(True) self.tv_journal[col].set_search_column(COLUMN_TITLE) - renderer = gtk.CellRendererText() - renderer.set_property('wrap-mode', gtk.WRAP_WORD) + renderer = Gtk.CellRendererText() + renderer.set_property('wrap-mode', Gtk.WrapMode.WORD) renderer.set_property('wrap-width', 500) renderer.set_property('width', 500) - self.col_journal.append(gtk.TreeViewColumn(_('Title'), renderer, - text=COLUMN_TITLE)) + self.col_journal.append(Gtk.TreeViewColumn(_('Title'), + renderer, text = COLUMN_TITLE)) self.col_journal[col].set_sort_column_id(COLUMN_MTIME) self.tv_journal[col].append_column(self.col_journal[col]) - label_attributes = pango.AttrList() - label_attributes.insert(pango.AttrSize(14000, 0, -1)) - label_attributes.insert(pango.AttrForeground(65535, 65535, 65535, 0, -1)) + # FIXME: have to change everything about pango + # label_attributes = Pango.AttrList() + # label_attributes.insert(Pango.AttrSize(14000, 0, -1)) + # label_attributes.insert(Pango.AttrForeground(65535, 65535, 65535, 0, -1)) if col==0: - self.tab_label.append(gtk.Label(_("Journal"))) + self.tab_label.append(Gtk.Label(_("Journal"))) elif col==1: - self.tab_label.append(gtk.Label(_("Files"))) + self.tab_label.append(Gtk.Label(_("Files"))) elif (cols==4 and col==2): - self.tab_label.append(gtk.Label(_("External"))) + self.tab_label.append(Gtk.Label(_("External"))) else: - self.tab_label.append(gtk.Label(_("Read Only"))) - - self.tab_label[col].set_attributes(label_attributes) + self.tab_label.append(Gtk.Label(_("Read Only"))) + + # FIXME: have to change everything about pango + #self.tab_label[col].set_attributes(label_attributes) #self.tab_label[col].show() #self.tv_journal[col].show() if col==0:self.load_journal_table(col) @@ -131,9 +142,9 @@ class ImageThumbnail(activity.Activity): if num==0: #dummy elements for no external files - self.column_table.append( gtk.Table(1,1, homogeneous=False)) - self.scroll.append(gtk.ScrolledWindow(hadjustment=None, vadjustment=None)) - self.vbox.append(gtk.VBox(homogeneous=True, spacing=5)) + self.column_table.append( Gtk.Table(1,1, homogeneous=False)) + self.scroll.append(Gtk.ScrolledWindow(hadjustment=None, vadjustment=None)) + self.vbox.append(Gtk.VBox(homogeneous=True, spacing=5)) self.canvas.append_page(self.vbox[col],self.tab_label[col]) self.tab_label[col].hide() self.vbox[col].hide() @@ -143,9 +154,9 @@ class ImageThumbnail(activity.Activity): self.tab_label[col].show() self.tv_journal[col].show() - self.column_table.append( gtk.Table(rows=num, columns=3, homogeneous=False)) - self.scroll.append(gtk.ScrolledWindow( hadjustment=None, vadjustment=None)) - self.scroll[col].set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) + self.column_table.append( Gtk.Table(rows=num, columns=3, homogeneous=False)) + self.scroll.append(Gtk.ScrolledWindow( hadjustment=None, vadjustment=None)) + self.scroll[col].set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC) iter = self.ls_journal[col].get_iter_first() n=0 @@ -158,33 +169,44 @@ class ImageThumbnail(activity.Activity): i=n-(3*int(n/3)) j=2*int(n/3) - image_table = gtk.Table(rows=2, columns=2, homogeneous=False) + image_table = Gtk.Table(rows=2, columns=2, homogeneous=False) - self.image[col].append( gtk.Image()) - image_table.attach(self.image[col][n], 0, 2, 0, 1, xoptions=gtk.FILL|gtk.SHRINK, - yoptions=gtk.FILL|gtk.SHRINK, xpadding=5, ypadding=5) - self.btn_show[col].append(gtk.Button(_("Show File"))) + self.image[col].append( Gtk.Image()) + image_table.attach(self.image[col][n], 0, 2, 0, 1, + xoptions = Gtk.AttachOptions.FILL | Gtk.AttachOptions.SHRINK, + yoptions = Gtk.AttachOptions.FILL | Gtk.AttachOptions.SHRINK, + xpadding=5, ypadding=5) + + self.btn_show[col].append(Gtk.Button(_("Show File"))) self.btn_show[col][n].connect('button_press_event', self.show_button_press_event_cb, col,n) - image_table.attach(self.btn_show[col][n], 0,1, 1, 2, xoptions=gtk.SHRINK, - yoptions=gtk.SHRINK, xpadding=5, ypadding=5) + + image_table.attach(self.btn_show[col][n], 0, 1, 1, 2, + xoptions = Gtk.AttachOptions.SHRINK, + yoptions = Gtk.AttachOptions.SHRINK, + xpadding = 5, ypadding = 5) self.btn_show[col][n].show() if colmax_file: break f.close() - - self.ls_journal[col].set_sort_column_id(COLUMN_MTIME, gtk.SORT_DESCENDING) + # FIXME: object has no attribute SORT_DESCENDING + #self.ls_journal[col].set_sort_column_id(COLUMN_MTIME, Gtk.SORT_DESCENDING) def load_files(self,dir,col): @@ -524,12 +587,14 @@ class ImageThumbnail(activity.Activity): jobject_wrapper.set_timestamp(mtime) jobject_wrapper.set_description(file_name) self.ls_journal[col].set(iter, COLUMN_TITLE, filename) - self.ls_journal[col].set(iter, COLUMN_MTIME,mtime) + self.ls_journal[col].set(iter, COLUMN_MTIME, str(mtime)) self.ls_journal[col].set(iter, COLUMN_JOBJECT, jobject_wrapper) except IOError: print 'No mimetype for : %s' % (file_name) def load_journal_table(self,col): - + pass + # FIXME: module object has no attribute mounts + ''' ds_mounts = datastore.mounts() mountpoint_id = None @@ -569,7 +634,7 @@ class ImageThumbnail(activity.Activity): self.ls_journal[col].set(iter, COLUMN_JOBJECT, jobject_wrapper) size = self.get_size(ds_objects[i]) / 1024 - self.ls_journal[col].set_sort_column_id(COLUMN_MTIME, gtk.SORT_DESCENDING) + self.ls_journal[col].set_sort_column_id(COLUMN_MTIME, Gtk.SORT_DESCENDING)''' def get_size(self, jobject): """Return the file size for a Journal object.""" @@ -588,14 +653,14 @@ class ImageThumbnail(activity.Activity): try: if filename==None:return if col==-1: - scaled_buf = gtk.gdk.pixbuf_new_from_file_at_size(filename, style.zoom(930), style.zoom(700)) + scaled_buf = GdkPixbuf.Pixbuf.new_from_file_at_size(filename, style.zoom(930), style.zoom(700)) return scaled_buf else: - scaled_buf = gtk.gdk.pixbuf_new_from_file_at_size(filename, style.zoom(320), style.zoom(240)) + scaled_buf = GdkPixbuf.Pixbuf.new_from_file_at_size(filename, style.zoom(320), style.zoom(240)) self.image[col][id].set_from_pixbuf(scaled_buf) self.image[col][id].show() except IOError: print 'Failed to open image %s' % (filename) - except GError: print 'Failed zoom image %s' % (filename) + #except GError: print 'Failed zoom image %s' % (filename) class JobjectWrapper(): @@ -698,4 +763,4 @@ class JobjectWrapper(): return self.__jobject.object_id else: return self.__object_id - + \ No newline at end of file diff --git a/setup.py b/setup.py index d3ab3a3..2f2c143 100755..100644 --- a/setup.py +++ b/setup.py @@ -16,6 +16,6 @@ # 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() -- cgit v0.9.1