diff options
Diffstat (limited to 'mmm_modules/image_category.py')
-rwxr-xr-x | mmm_modules/image_category.py | 59 |
1 files changed, 28 insertions, 31 deletions
diff --git a/mmm_modules/image_category.py b/mmm_modules/image_category.py index 4ea4782..92af2ee 100755 --- a/mmm_modules/image_category.py +++ b/mmm_modules/image_category.py @@ -17,18 +17,15 @@ # If you find this activity useful or end up using parts of it in one of your # own creations we would love to hear from you at info@WorldWideWorkshop.org ! # - -import pygtk -pygtk.require('2.0') -import gtk, gobject +from gi.repository import Gtk, GObject import os from glob import glob import logging import md5 -from sugar import mime -from sugar.graphics.objectchooser import ObjectChooser +from sugar3 import mime +from sugar3.graphics.objectchooser import ObjectChooser from borderframe import BorderFrame from utils import load_image, resize_image, RESIZE_CUT @@ -156,7 +153,7 @@ class CategoryDirectory (object): return load_image(thumbs[0], self.twidth, self.theight) -class ImageSelectorWidget (gtk.Table): +class ImageSelectorWidget (Gtk.Table): __gsignals__ = {'category_press' : (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, ()), 'image_press' : (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, ()),} @@ -167,12 +164,12 @@ class ImageSelectorWidget (gtk.Table): prepare_btn_cb=prepare_btn, method=RESIZE_CUT, image_dir=None): - gtk.Table.__init__(self, 2,5,False) + Gtk.Table.__init__(self, 2,5,False) self._signals = [] self.parentp = parentp self.width = width self.height = height - self.image = gtk.Image() + self.image = Gtk.Image() self.method = method #self.set_myownpath(MYOWNPIC_FOLDER) img_box = BorderFrame(border_color=frame_color) @@ -180,30 +177,30 @@ class ImageSelectorWidget (gtk.Table): img_box.set_border_width(5) self._signals.append((img_box, img_box.connect('button_press_event', self.emit_image_pressed))) self.attach(img_box, 0,5,0,1,0,0) - self.attach(gtk.Label(), 0,1,1,2) - self.bl = gtk.Button() + self.attach(Gtk.Label(), 0,1,1,2) + self.bl = Gtk.Button() - il = gtk.Image() + il = Gtk.Image() il.set_from_pixbuf(load_image(os.path.join(iconpath, 'arrow_left.png'))) self.bl.set_image(il) self.bl.connect('clicked', self.previous) self.attach(prepare_btn_cb(self.bl), 1,2,1,2,0,0) - cteb = gtk.EventBox() - self.cat_thumb = gtk.Image() + cteb = Gtk.EventBox() + self.cat_thumb = Gtk.Image() self.cat_thumb.set_size_request(THUMB_SIZE, THUMB_SIZE) cteb.add(self.cat_thumb) self._signals.append((cteb, cteb.connect('button_press_event', self.emit_cat_pressed))) self.attach(cteb, 2,3,1,2,0,0,xpadding=10) - self.br = gtk.Button() - ir = gtk.Image() + self.br = Gtk.Button() + ir = Gtk.Image() ir.set_from_pixbuf(load_image(os.path.join(iconpath,'arrow_right.png'))) self.br.set_image(ir) self.br.connect('clicked', self.next) self.attach(prepare_btn_cb(self.br), 3,4,1,2,0,0) - self.attach(gtk.Label(),4,5,1,2) + self.attach(Gtk.Label(),4,5,1,2) self.filename = None self.show_all() self.image.set_size_request(width, height) @@ -220,17 +217,17 @@ class ImageSelectorWidget (gtk.Table): filter = { } chooser = ObjectChooser(_('Choose image'), self.parentp, #self._parent, - gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, + Gtk.DialogFlags.MODAL | Gtk.DialogFlags.DESTROY_WITH_PARENT, **filter) try: result = chooser.run() - if result == gtk.RESPONSE_ACCEPT: + if result == Gtk.ResponseType.ACCEPT: jobject = chooser.get_selected_object() if jobject and jobject.file_path: if self.load_image(str(jobject.file_path), True): pass else: - err = gtk.MessageDialog(self._parent, gtk.DIALOG_MODAL, gtk.MESSAGE_ERROR, gtk.BUTTONS_OK, + err = Gtk.MessageDialog(self._parent, Gtk.DialogFlags.MODAL, Gtk.MESSAGE_ERROR, Gtk.BUTTONS_OK, _("Not a valid image file")) err.run() err.destroy() @@ -395,12 +392,12 @@ class ImageSelectorWidget (gtk.Table): self.set_image_dir(obj.get('image_dir', None)) self.image.set_from_pixbuf(self.category.get_image(obj.get('filename', None))) -class CategorySelector (gtk.ScrolledWindow): +class CategorySelector (Gtk.ScrolledWindow): __gsignals__ = {'selected' : (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (str,))} def __init__ (self, title=None, selected_category_path=None, path=None, extra=()): - gtk.ScrolledWindow.__init__ (self) - self.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) + Gtk.ScrolledWindow.__init__ (self) + self.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC) if path is None: path = os.path.join(mmmpath, 'mmm_images') self.path = path @@ -408,12 +405,12 @@ class CategorySelector (gtk.ScrolledWindow): model, selected = self.get_model(path, selected_category_path, extra) self.ignore_first = selected is not None - self.treeview = gtk.TreeView() - col = gtk.TreeViewColumn(title) - r1 = gtk.CellRendererPixbuf() - r2 = gtk.CellRendererText() - col.pack_start(r1, False) - col.pack_start(r2, True) + self.treeview = Gtk.TreeView() + col = Gtk.TreeViewColumn(title) + r1 = Gtk.CellRendererPixbuf() + r2 = Gtk.CellRendererText() + col.pack_start(r1, False, True, 0) + col.pack_start(r2, True, True, 0) col.set_cell_data_func(r1, self.cell_pb) col.set_attributes(r2, text=1) self.treeview.append_column(col) @@ -442,8 +439,8 @@ class CategorySelector (gtk.ScrolledWindow): def get_model (self, path, selected_path, extra): # Each row is (path/dirname, pretty name, 0 based index) selected = None - store = gtk.ListStore(str, str, int) - store.set_sort_column_id(1, gtk.SORT_ASCENDING) + store = Gtk.ListStore(str, str, int) + store.set_sort_column_id(1, Gtk.SortType.ASCENDING) files = [os.path.join(path, x) for x in os.listdir(path) if not x.startswith('.')] files.extend(extra) for fullpath, prettyname in [(x, _(os.path.basename(x))) for x in files if os.path.isdir(x)]: |