Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWalter Bender <walter@walter-laptop.(none)>2010-02-06 23:07:33 (GMT)
committer Walter Bender <walter@walter-laptop.(none)>2010-02-06 23:07:33 (GMT)
commit1c72f127587c9b5a037a9f45e59ece4e04716fbb (patch)
tree984bce2e7fc37107eb0107e2e2c6d6cf5c4851f0
parent80ba73b4cdaac2997327904855b6302cdddff468 (diff)
cleaned up icon update code
-rw-r--r--tawindow.py78
1 files changed, 43 insertions, 35 deletions
diff --git a/tawindow.py b/tawindow.py
index ee167ce..bab8280 100644
--- a/tawindow.py
+++ b/tawindow.py
@@ -52,7 +52,8 @@ from tacanvas import TurtleGraphics
from tablock import Blocks, Block
from taturtle import Turtles, Turtle
from tautils import magnitude, get_load_name, get_save_name, data_from_file,\
- data_to_file, round_int, get_id, get_pixbuf_from_journal
+ data_to_file, round_int, get_id, get_pixbuf_from_journal,\
+ movie_media_type, audio_media_type, image_media_type
from sprite_factory import SVG, svg_str_to_pixbuf, svg_from_file
from sprites import Sprites, Sprite
@@ -1203,55 +1204,62 @@ class TurtleArtWindow():
result = chooser.run()
if result == gtk.RESPONSE_ACCEPT:
dsobject = chooser.get_selected_object()
- if blk.name == 'journal':
- self._load_image_thumb(dsobject, blk)
- elif blk.name == 'audio':
- blk.spr.set_image(self.media_shapes['audioon'],
- 1, MEDIA_X, MEDIA_Y)
- else:
- blk.spr.set_image(self.media_shapes['descriptionon'],
- 1, MEDIA_X, MEDIA_Y)
- if len(blk.values)>0:
- blk.values[0] = dsobject.object_id
- else:
- blk.values.append(dsobject.object_id)
+ self._update_media_icon(blk, dsobject, dsobject.object_id)
dsobject.destroy()
finally:
chooser.destroy()
del chooser
else:
- fname, self.load_save_folder = get_load_name('.*',
- self.load_save_folder)
+ fname, self.load_save_folder = \
+ get_load_name('.*', self.load_save_folder)
if fname is None:
return
- if movie_media_type(fname[-4:]):
+ self._update_media_icon(blk, fname)
+
+ """
+ Update the icon on a 'loaded' media block.
+ """
+ def _update_media_icon(self, blk, name, value=''):
+ if blk.name == 'journal':
+ self._load_image_thumb(name, blk)
+ elif blk.name == 'audio':
+ blk.spr.set_image(self.media_shapes['audioon'], 1, MEDIA_X, MEDIA_Y)
+ else:
+ blk.spr.set_image(self.media_shapes['descriptionon'], 1,
+ MEDIA_X, MEDIA_Y)
+ if value == '':
+ value = name
+ if len(blk.values)>0:
+ blk.values[0] = value
+ else:
+ blk.values.append(value)
+ blk.spr.set_label(' ')
+
+ """
+ Replace icon with a preview image.
+ """
+ def _load_image_thumb(self, picture, blk):
+ pixbuf = None
+ blk.spr.set_image(self.media_shapes['descriptionon'], 1, MEDIA_X,
+ MEDIA_Y)
+ if self.running_sugar:
+ pixbuf = get_pixbuf_from_journal(picture, THUMB_W, THUMB_H)
+ else:
+ print picture[-4:]
+ if movie_media_type(picture[-4:]):
blk.spr.set_image(self.media_shapes['journalon'], 1, MEDIA_X,
MEDIA_Y)
- elif blk.name == 'audio' or audio_media_type(fname[-4:]):
+ elif audio_media_type(picture[-4:]):
blk.spr.set_image(self.media_shapes['audioon'], 1, MEDIA_X,
MEDIA_Y)
blk.name = 'audio'
- elif blk.name == 'description':
- blk.spr.set_image(self.media_shapes['descriptionon'], 1,
- MEDIA_X, MEDIA_Y)
+ elif image_media_type(picture[-4:]):
+ pixbuf = gtk.gdk.pixbuf_new_from_file_at_size(picture, THUMB_W,
+ THUMB_H)
else:
- pixbuf = gtk.gdk.pixbuf_new_from_file_at_size(fname, THUMB_W,
- THUMB_H)
- if pixbuf is not None:
- blk.spr.set_image(pixbuf, 1, PIXBUF_X, PIXBUF_Y)
- blk.values[0] = fname
- blk.spr.set_label(' ')
-
- """
- Replace Journal block graphic with preview image
- """
- def _load_image_thumb(self, picture, blk):
- pixbuf = get_pixbuf_from_journal(picture, THUMB_W, THUMB_H)
+ blk.name = 'description'
if pixbuf is not None:
blk.spr.set_image(pixbuf, 1, PIXBUF_X, PIXBUF_Y)
- else:
- blk.spr.set_image(self.media_shapes['descriptionon'], 1, MEDIA_X,
- MEDIA_Y)
"""
Disconnect block from stack above it.