UTF-8 support for translations, clean up gettext, improved gallery handling

svn: r1204
This commit is contained in:
Don Allingham
2002-11-25 04:30:36 +00:00
parent 4b4c7f8f8a
commit dbe98f4068
79 changed files with 2579 additions and 2750 deletions

View File

@ -81,7 +81,6 @@ class ImageSelect:
self.parent = parent
self.canvas_list = {}
self.item_map = {}
self.item_map = {}
self.p_map = {}
def add_thumbnail(self, photo):
@ -241,14 +240,17 @@ class Gallery(ImageSelect):
def item_event(self, widget, event=None):
if self.button and event.type == gtk.gdk.MOTION_NOTIFY :
if widget.drag_check_threshold(self.remember_x,self.remember_y,event.x,event.y):
self.drag_item = widget.get_item_at(self.remember_x,self.remember_y)
if widget.drag_check_threshold(self.remember_x,self.remember_y,
event.x,event.y):
self.drag_item = widget.get_item_at(self.remember_x,
self.remember_y)
if self.drag_item:
context = widget.drag_begin(_drag_targets,
gtk.gdk.ACTION_COPY|gtk.gdk.ACTION_MOVE,
self.button, event)
return gtk.TRUE
photo = widget.get_data('obj')
style = self.iconlist.get_style()
if event.type == gtk.gdk.BUTTON_PRESS:
if event.button == 1:
@ -257,7 +259,6 @@ class Gallery(ImageSelect):
item = widget.get_item_at(event.x,event.y)
if item:
(i,t,b,self.photo) = self.p_map[item]
style = self.iconlist.get_style()
t.set(fill_color_gdk=style.fg[gtk.STATE_SELECTED])
b.set(fill_color_gdk=style.bg[gtk.STATE_SELECTED])
if self.sel:
@ -281,7 +282,10 @@ class Gallery(ImageSelect):
elif event.type == gtk.gdk.BUTTON_RELEASE:
self.button = 0
elif event.type == gtk.gdk._2BUTTON_PRESS and event.button == 1:
LocalMediaProperties(photo,self.path,self)
item = widget.get_item_at(event.x,event.y)
if item:
(i,t,b,self.photo) = self.p_map[item]
LocalMediaProperties(self.photo,self.path,self)
return gtk.TRUE
elif event.type == gtk.gdk.MOTION_NOTIFY:
if event.state & gtk.gdk.BUTTON1_MASK:
@ -313,7 +317,7 @@ class Gallery(ImageSelect):
oid = object.getId()
if self.canvas_list.has_key(oid):
(grp,item,text,bg,x,y) = self.canvas_list[oid]
(grp,item,text,x,y) = self.canvas_list[oid]
if x != self.cx or y != self.cy:
grp.move(self.cx-x,self.cy-y)
else:
@ -331,39 +335,28 @@ class Gallery(ImageSelect):
xloc = (_IMAGEX-x)/2
yloc = (_IMAGEY-y)/2
bg = grp.add(gnome.canvas.CanvasRect,
x1=0,
x2=_IMAGEX,
y2=_IMAGEY,
y1=_IMAGEY-20)
style = self.iconlist.get_style()
box = grp.add(gnome.canvas.CanvasRect,x1=0,x2=_IMAGEX,y1=_IMAGEY-20,
y2=_IMAGEY, fill_color_gdk=style.bg[gtk.STATE_NORMAL])
item = grp.add(gnome.canvas.CanvasPixbuf,
pixbuf=image,
x=xloc,
y=yloc)
text = grp.add(gnome.canvas.CanvasText,
x=_IMAGEX/2,
y=_IMAGEX,
pixbuf=image,x=xloc, y=yloc)
text = grp.add(gnome.canvas.CanvasText, x=_IMAGEX/2,
anchor=gtk.ANCHOR_CENTER,
text=description)
justification=gtk.JUSTIFY_CENTER,
y=_IMAGEY-10, text=description)
self.item_map[item] = oid
self.item_map[box] = oid
self.item_map[text] = oid
self.item_map[grp] = oid
self.item_map[bg] = oid
self.item_map[item] = oid
for i in [ item, text, box, grp ] :
self.item_map[i] = oid
self.p_map[i] = (item,text,box,photo)
i.show()
self.p_map[item] = (item,text,bg,photo)
self.p_map[text] = (item,text,bg,photo)
self.p_map[grp] = (item,text,bg,photo)
self.p_map[bg] = (item,text,bg,photo)
item.show()
text.show()
bg.show()
self.canvas_list[oid] = (grp,item,text,bg,self.cx,self.cy)
self.canvas_list[oid] = (grp,item,text,self.cx,self.cy)
if self.cx + _PAD + _IMAGEX > self.x:
self.cx = _PAD
@ -511,7 +504,6 @@ class Gallery(ImageSelect):
val[0].hide()
val[1].hide()
val[2].hide()
val[3].hide()
l = self.dataobj.getPhotoList()
l.remove(photo)
@ -584,29 +576,31 @@ class LocalMediaProperties:
self.alist = photo.getAttributeList()[:]
self.lists_changed = 0
self.parent = parent
self.db = parent.db
fname = self.object.getPath()
self.change_dialog = gtk.glade.XML(const.imageselFile,
"change_description")
descr_window = self.change_dialog.get_widget("description")
pixmap = self.change_dialog.get_widget("pixmap")
self.pixmap = self.change_dialog.get_widget("pixmap")
self.attr_type = self.change_dialog.get_widget("attr_type")
self.attr_value = self.change_dialog.get_widget("attr_value")
self.attr_details = self.change_dialog.get_widget("attr_details")
self.attr_list = self.change_dialog.get_widget("attr_list")
self.attr_model = gtk.ListStore(gobject.TYPE_STRING,gobject.TYPE_STRING)
Utils.build_columns(self.attr_list, [(_('Attribute'),150,-1),
(_('Value'),100,-1)])
self.attr_list.set_model(self.attr_model)
self.attr_list.get_selection().connect('changed',self.on_attr_list_select_row)
titles = [(_('Attribute'),-1,150),(_('Value'),-1,100)]
self.atree = ListModel.ListModel(self.attr_list,titles,
self.on_attr_list_select_row,
self.on_update_attr_clicked)
descr_window.set_text(self.object.getDescription())
mtype = self.object.getMimeType()
if os.path.isfile(path):
self.pix = gtk.gdk.pixbuf_new_from_file(path)
pixmap.set_from_pixbuf(self.pix)
thumb = Utils.thumb_path(path,self.object)
if os.path.isfile(thumb):
self.pix = gtk.gdk.pixbuf_new_from_file(thumb)
self.pixmap.set_from_pixbuf(self.pix)
self.change_dialog.get_widget("private").set_active(photo.getPrivacy())
self.change_dialog.get_widget("gid").set_text(self.object.getId())
@ -627,24 +621,28 @@ class LocalMediaProperties:
"on_apply_clicked" : self.on_apply_clicked,
"on_add_attr_clicked": self.on_add_attr_clicked,
"on_delete_attr_clicked" : self.on_delete_attr_clicked,
"on_update_attr_clicked" : self.on_update_attr_clicked,
})
self.redraw_attr_list()
def on_up_clicked(self,obj):
store,iter = obj.get_selected()
store,iter = self.atree.get_selected()
if iter:
row = store.get_path(iter)
# select row
row = self.atree.get_row(iter)
if row != 0:
self.atree.select_row(row-1)
def on_down_clicked(self,obj):
store,iter = obj.get_selected()
if iter:
row = store.get_path(iter)
# select row
model,iter = self.atree.get_selected()
if not iter:
return
row = self.atree.get_row(iter)
self.atree.select_row(row+1)
def redraw_attr_list(self):
Utils.redraw_list(self.alist,self.attr_model,disp_attr)
self.atree.clear()
for attr in self.alist:
d = [attr.getType(),attr.getValue()]
self.atree.add(d,attr)
def on_apply_clicked(self, obj):
priv = self.change_dialog.get_widget("private").get_active()
@ -666,11 +664,10 @@ class LocalMediaProperties:
self.on_apply_clicked(obj)
Utils.destroy_passed_object(obj)
def on_attr_list_select_row(self,obj,row,b,c):
store,iter = obj.get_selected()
def on_attr_list_select_row(self,obj):
store,iter = self.atree.get_selected()
if iter:
row = store.get_path(iter)
attr = self.alist[row[0]]
attr = self.atree.get_object(iter)
self.attr_type.set_label(attr.getType())
self.attr_value.set_text(attr.getValue())
@ -681,10 +678,9 @@ class LocalMediaProperties:
def on_update_attr_clicked(self,obj):
import AttrEdit
store,iter = obj.get_selected()
store,iter = self.atree.get_selected()
if iter:
row = store.get_path(iter)
attr = self.alist[row[0]]
attr = self.atree.get_object(iter)
AttrEdit.AttributeEditor(self,attr,"Media Object",
Plugins.get_image_attributes())
@ -717,21 +713,23 @@ class GlobalMediaProperties:
self.change_dialog = gtk.glade.XML(const.imageselFile,"change_global")
self.descr_window = self.change_dialog.get_widget("description")
self.notes = self.change_dialog.get_widget("notes")
pixmap = self.change_dialog.get_widget("pixmap")
self.pixmap = self.change_dialog.get_widget("pixmap")
self.attr_type = self.change_dialog.get_widget("attr_type")
self.attr_value = self.change_dialog.get_widget("attr_value")
self.attr_details = self.change_dialog.get_widget("attr_details")
self.attr_list = self.change_dialog.get_widget("attr_list")
self.attr_model = gtk.ListStore(gobject.TYPE_STRING,gobject.TYPE_STRING)
Utils.build_columns(self.attr_list, [(_('Attribute'),150,-1), (_('Value'),100,-1)])
self.attr_list.set_model(self.attr_model)
self.attr_list.get_selection().connect('changed',self.on_attr_list_select_row)
titles = [(_('Attribute'),-1,150),(_('Value'),-1,100)]
self.atree = ListModel.ListModel(self.attr_list,titles,
self.on_attr_list_select_row,
self.on_update_attr_clicked)
self.descr_window.set_text(self.object.getDescription())
mtype = self.object.getMimeType()
pb = gtk.gdk.pixbuf_new_from_file(Utils.thumb_path(self.path,self.object))
pixmap.set_from_pixbuf(pb)
self.pixmap.set_from_pixbuf(pb)
self.change_dialog.get_widget("gid").set_text(self.object.getId())
self.makelocal = self.change_dialog.get_widget("makelocal")
@ -755,16 +753,18 @@ class GlobalMediaProperties:
self.redraw_attr_list()
def on_up_clicked(self,obj):
store,iter = obj.get_selected()
store,iter = self.atree.get_selected()
if iter:
row = store.get_path(iter)
# select row
row = self.atree.get_row(iter)
if row != 0:
self.atree.select_row(row-1)
def on_down_clicked(self,obj):
store,iter = obj.get_selected()
if iter:
row = store.get_path(iter)
# select row
model,iter = self.atree.get_selected()
if not iter:
return
row = self.atree.get_row(iter)
self.atree.select_row(row+1)
def update_info(self):
fname = self.object.getPath()
@ -786,7 +786,10 @@ class GlobalMediaProperties:
self.update()
def redraw_attr_list(self):
Utils.redraw_list(self.alist,self.attr_model,disp_attr)
self.atree.clear()
for attr in self.alist:
d = [attr.getType(),attr.getValue()]
self.atree.add(d,attr)
def button_press(self,obj,event):
store,iter = self.refmodel.selection.get_selected()
@ -800,11 +803,9 @@ class GlobalMediaProperties:
return
self.refs = 1
titles = [(_('Type'),0,150),(_('ID'),1,75),(_('Value'),2,100)]
self.refmodel = ListModel.ListModel(self.change_dialog.get_widget("refinfo"),
[(_('Type'),150),(_('ID'),75),(_('Value'),100)])
ref = self.refmodel.tree
ref.connect('button-press-event',self.button_press)
titles,event_func=self.button_press)
for key in self.db.getPersonKeys():
p = self.db.getPerson(key)
for o in p.getPhotoList():
@ -849,10 +850,9 @@ class GlobalMediaProperties:
Utils.destroy_passed_object(obj)
def on_attr_list_select_row(self,obj,row,b,c):
store,iter = obj.get_selected()
store,iter = self.atree.get_selected()
if iter:
row = store.get_path(iter)
attr = self.alist[row[0]]
attr = self.atree.get_object(iter)
self.attr_type.set_label(attr.getType())
self.attr_value.set_text(attr.getValue())
@ -863,10 +863,9 @@ class GlobalMediaProperties:
def on_update_attr_clicked(self,obj):
import AttrEdit
store,iter = obj.get_selected()
store,iter = self.atree.get_selected()
if iter:
row = store.get_path(iter)
attr = self.alist[row[0]]
attr = self.atree.get_object(iter)
AttrEdit.AttributeEditor(self,attr,"Media Object",
Plugins.get_image_attributes())
@ -880,15 +879,6 @@ class GlobalMediaProperties:
AttrEdit.AttributeEditor(self,None,"Media Object",
Plugins.get_image_attributes())
#-------------------------------------------------------------------------
#
#
#
#-------------------------------------------------------------------------
def disp_attr(attr):
return [const.display_pattr(attr.getType()),attr.getValue(),'']
class DeleteMediaQuery:
def __init__(self,media,db,update):