* src/AddMedia.py: Remove unneeded update argument.
* src/ArgHandler.py (auto_save_load): Mysterious workaround :-). * src/EditPlace.py (display_references): Drop media objects; (DeletePlaceQuery.query_response): use proper handle removal. * src/GrampsBSDDB.py (remove_object): emit media signal. * src/GrampsDbBase.py (GrampsDbBase): Add media-related signals; (commit_media_object,transaction_commit,undo): emit media signals. * src/ImageSelect.py (GlobalMediaProperties,DeleteMediaQuery): Remove unneeded update argument. * src/MediaView.py (media_add,media_update,media_delete): Add callbacks; (change_db): connect callbacks to signals; (popup_change_description): Call property editor without callback param; (on_add_clicked): Call AddMedia without callback param; (add_object,update_display,add_to_display): Remove unneeded methods; (on_edit_clicked): call property editor without callback param; (on_delete_clicked): call deleter without callback param; (on_drag_data_received): Call property editor without callback param. * src/PlaceView.py (new_place_after_edit): Remove unneeded method; (delete_place): Remove unneeded tree update; (is_used) Add method; (on_delete_clicked): Use new detection method. svn: r4287
This commit is contained in:
parent
bfc4b88cda
commit
9c3bf10613
22
ChangeLog
22
ChangeLog
@ -1,3 +1,25 @@
|
|||||||
|
2005-04-03 Alex Roitman <shura@gramps-project.org>
|
||||||
|
* src/AddMedia.py: Remove unneeded update argument.
|
||||||
|
* src/ArgHandler.py (auto_save_load): Mysterious workaround :-).
|
||||||
|
* src/EditPlace.py (display_references): Drop media objects;
|
||||||
|
(DeletePlaceQuery.query_response): use proper handle removal.
|
||||||
|
* src/GrampsBSDDB.py (remove_object): emit media signal.
|
||||||
|
* src/GrampsDbBase.py (GrampsDbBase): Add media-related signals;
|
||||||
|
(commit_media_object,transaction_commit,undo): emit media signals.
|
||||||
|
* src/ImageSelect.py (GlobalMediaProperties,DeleteMediaQuery):
|
||||||
|
Remove unneeded update argument.
|
||||||
|
* src/MediaView.py (media_add,media_update,media_delete): Add
|
||||||
|
callbacks; (change_db): connect callbacks to signals;
|
||||||
|
(popup_change_description): Call property editor without callback param;
|
||||||
|
(on_add_clicked): Call AddMedia without callback param;
|
||||||
|
(add_object,update_display,add_to_display): Remove unneeded methods;
|
||||||
|
(on_edit_clicked): call property editor without callback param;
|
||||||
|
(on_delete_clicked): call deleter without callback param;
|
||||||
|
(on_drag_data_received): Call property editor without callback param.
|
||||||
|
* src/PlaceView.py (new_place_after_edit): Remove unneeded method;
|
||||||
|
(delete_place): Remove unneeded tree update; (is_used) Add method;
|
||||||
|
(on_delete_clicked): Use new detection method.
|
||||||
|
|
||||||
2005-04-02 Don Allingham <don@gramps-project.org>
|
2005-04-02 Don Allingham <don@gramps-project.org>
|
||||||
* src/ReadGedcom.py: emit proper signals to notify of a database
|
* src/ReadGedcom.py: emit proper signals to notify of a database
|
||||||
rebuild, handle parent/child relationships better - eliminate
|
rebuild, handle parent/child relationships better - eliminate
|
||||||
|
@ -70,12 +70,11 @@ class AddMediaObject:
|
|||||||
a media object from the file system, while providing a description.
|
a media object from the file system, while providing a description.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self,db,update=None):
|
def __init__(self,db):
|
||||||
"""
|
"""
|
||||||
Creates and displays the dialog box
|
Creates and displays the dialog box
|
||||||
|
|
||||||
db - the database in which the new object is to be stored
|
db - the database in which the new object is to be stored
|
||||||
update - a function to call to update the display
|
|
||||||
"""
|
"""
|
||||||
self.db = db
|
self.db = db
|
||||||
self.glade = gtk.glade.XML(const.imageselFile,"imageSelect","gramps")
|
self.glade = gtk.glade.XML(const.imageselFile,"imageSelect","gramps")
|
||||||
@ -85,7 +84,6 @@ class AddMediaObject:
|
|||||||
self.file_text = self.glade.get_widget("fname")
|
self.file_text = self.glade.get_widget("fname")
|
||||||
self.internal = self.glade.get_widget('internal')
|
self.internal = self.glade.get_widget('internal')
|
||||||
self.internal.connect('toggled',self.internal_toggled)
|
self.internal.connect('toggled',self.internal_toggled)
|
||||||
self.update = update
|
|
||||||
self.temp_name = ""
|
self.temp_name = ""
|
||||||
self.object = None
|
self.object = None
|
||||||
|
|
||||||
@ -145,8 +143,6 @@ class AddMediaObject:
|
|||||||
self.object = mobj
|
self.object = mobj
|
||||||
self.db.commit_media_object(mobj,trans)
|
self.db.commit_media_object(mobj,trans)
|
||||||
self.db.transaction_commit(trans,_("Add Media Object"))
|
self.db.transaction_commit(trans,_("Add Media Object"))
|
||||||
if self.update:
|
|
||||||
self.update(mobj.get_handle())
|
|
||||||
|
|
||||||
def on_name_changed(self,*obj):
|
def on_name_changed(self,*obj):
|
||||||
"""
|
"""
|
||||||
|
@ -225,6 +225,12 @@ class ArgHandler:
|
|||||||
filename = os.path.normpath(os.path.abspath(filename))
|
filename = os.path.normpath(os.path.abspath(filename))
|
||||||
filetype = GrampsMime.get_type(filename)
|
filetype = GrampsMime.get_type(filename)
|
||||||
if filetype == const.app_gramps:
|
if filetype == const.app_gramps:
|
||||||
|
# FIXME: For some reason the following two lines are needed
|
||||||
|
# to prevent source view from getting out of sync. Makes no
|
||||||
|
# sense to me right now, but it seems to fix a problem and
|
||||||
|
# make no harm otherwise. Should remove when understood.
|
||||||
|
import GrampsBSDDB
|
||||||
|
self.parent.db = GrampsBSDDB.GrampsBSDDB()
|
||||||
self.parent.read_file(filename)
|
self.parent.read_file(filename)
|
||||||
return 1
|
return 1
|
||||||
elif filetype == const.app_gramps_xml:
|
elif filetype == const.app_gramps_xml:
|
||||||
|
@ -497,7 +497,6 @@ class EditPlace:
|
|||||||
def display_references(self):
|
def display_references(self):
|
||||||
pevent = []
|
pevent = []
|
||||||
fevent = []
|
fevent = []
|
||||||
mlist = []
|
|
||||||
msg = ""
|
msg = ""
|
||||||
for key in self.db.get_person_handles(sort_handles=False):
|
for key in self.db.get_person_handles(sort_handles=False):
|
||||||
p = self.db.get_person_from_handle(key)
|
p = self.db.get_person_from_handle(key)
|
||||||
@ -511,10 +510,6 @@ class EditPlace:
|
|||||||
event = self.db.get_event_from_handle(event_handle)
|
event = self.db.get_event_from_handle(event_handle)
|
||||||
if event and event.get_place_handle() == self.place.get_handle():
|
if event and event.get_place_handle() == self.place.get_handle():
|
||||||
fevent.append((f,event))
|
fevent.append((f,event))
|
||||||
for media_handle in self.db.get_media_object_handles():
|
|
||||||
obj = self.db.get_object_from_handle(media_handle)
|
|
||||||
if obj and obj.get_place_handle() == self.place.get_handle():
|
|
||||||
mlist.append(object)
|
|
||||||
|
|
||||||
any = 0
|
any = 0
|
||||||
if len(pevent) > 0:
|
if len(pevent) > 0:
|
||||||
@ -546,15 +541,6 @@ class EditPlace:
|
|||||||
|
|
||||||
msg = msg + ( t % (fname,e[0].get_gramps_id(),_(e[1].get_name())))
|
msg = msg + ( t % (fname,e[0].get_gramps_id(),_(e[1].get_name())))
|
||||||
|
|
||||||
if len(mlist) > 0:
|
|
||||||
any = 1
|
|
||||||
msg = msg + "\n%s\n" % _("Media Objects")
|
|
||||||
msg = msg + "_________________________\n\n"
|
|
||||||
t = _("%s [%s]\n")
|
|
||||||
|
|
||||||
for o in mlist:
|
|
||||||
msg = msg + ( t % (o.get_description(),o.get_gramps_id()))
|
|
||||||
|
|
||||||
self.refinfo.get_buffer().set_text(msg)
|
self.refinfo.get_buffer().set_text(msg)
|
||||||
if any:
|
if any:
|
||||||
Utils.bold_label(self.refs_label)
|
Utils.bold_label(self.refs_label)
|
||||||
@ -591,23 +577,26 @@ class DeletePlaceQuery:
|
|||||||
def query_response(self):
|
def query_response(self):
|
||||||
trans = self.db.transaction_begin()
|
trans = self.db.transaction_begin()
|
||||||
|
|
||||||
self.db.remove_place(self.place.get_handle(),trans)
|
place_handle = self.place.get_handle()
|
||||||
|
self.db.remove_place(place_handle,trans)
|
||||||
|
|
||||||
for key in self.db.get_person_handles(sort_handles=False):
|
for handle in self.db.get_person_handles(sort_handles=False):
|
||||||
p = self.db.get_person_from_handle(key)
|
person = self.db.get_person_from_handle(handle)
|
||||||
for event_handle in [p.get_birth_handle(), p.get_death_handle()] + p.get_event_list():
|
if person.has_handle_reference('Place',place_handle):
|
||||||
event = self.db.get_event_from_handle(event_handle)
|
person.remove_handle_references('Place',place_handle)
|
||||||
if event and event.get_place_handle() == self.place.get_handle():
|
self.db.commit_person(person,trans)
|
||||||
event.set_place_handle(None)
|
|
||||||
self.db.commit_event(event,trans)
|
|
||||||
|
|
||||||
for fid in self.db.get_family_handles():
|
for handle in self.db.get_family_handles():
|
||||||
f = self.db.get_family_from_handle(fid)
|
family = self.db.get_family_from_handle(handle)
|
||||||
for event_handle in f.get_event_list():
|
if family.has_handle_reference('Place',place_handle):
|
||||||
event = self.db.get_event_from_handle(event_handle)
|
family.remove_handle_references('Place',place_handle)
|
||||||
if event and event.get_place_handle() == self.place.get_handle():
|
self.db.commit_family(family,trans)
|
||||||
event.set_place_handle(None)
|
|
||||||
self.db.commit_event(event,trans)
|
for handle in self.db.get_event_handles():
|
||||||
|
event = self.db.get_event_from_handle(handle)
|
||||||
|
if event.has_handle_reference('Place',place_handle):
|
||||||
|
event.remove_handle_references('Place',place_handle)
|
||||||
|
self.db.commit_event(event,trans)
|
||||||
|
|
||||||
self.db.transaction_commit(trans,
|
self.db.transaction_commit(trans,
|
||||||
_("Delete Place (%s)") % self.place.get_title())
|
_("Delete Place (%s)") % self.place.get_title())
|
||||||
|
@ -277,8 +277,8 @@ class GrampsBSDDB(GrampsDbBase):
|
|||||||
self.genderStats.uncount_person (person)
|
self.genderStats.uncount_person (person)
|
||||||
if transaction != None:
|
if transaction != None:
|
||||||
transaction.add(PERSON_KEY,handle,person.serialize())
|
transaction.add(PERSON_KEY,handle,person.serialize())
|
||||||
if transaction and not transaction.batch:
|
if not transaction.batch:
|
||||||
self.emit('person-delete',([str(handle)],))
|
self.emit('person-delete',([str(handle)],))
|
||||||
self.person_map.delete(str(handle))
|
self.person_map.delete(str(handle))
|
||||||
|
|
||||||
def remove_source(self,handle,transaction):
|
def remove_source(self,handle,transaction):
|
||||||
@ -286,8 +286,8 @@ class GrampsBSDDB(GrampsDbBase):
|
|||||||
if transaction != None:
|
if transaction != None:
|
||||||
old_data = self.source_map.get(str(handle))
|
old_data = self.source_map.get(str(handle))
|
||||||
transaction.add(SOURCE_KEY,handle,old_data)
|
transaction.add(SOURCE_KEY,handle,old_data)
|
||||||
if transaction and not transaction.batch:
|
if not transaction.batch:
|
||||||
self.emit('source-delete',([handle],))
|
self.emit('source-delete',([handle],))
|
||||||
self.source_map.delete(str(handle))
|
self.source_map.delete(str(handle))
|
||||||
|
|
||||||
def remove_family(self,handle,transaction):
|
def remove_family(self,handle,transaction):
|
||||||
@ -295,8 +295,8 @@ class GrampsBSDDB(GrampsDbBase):
|
|||||||
if transaction != None:
|
if transaction != None:
|
||||||
old_data = self.family_map.get(str(handle))
|
old_data = self.family_map.get(str(handle))
|
||||||
transaction.add(FAMILY_KEY,handle,old_data)
|
transaction.add(FAMILY_KEY,handle,old_data)
|
||||||
if transaction and not transaction.batch:
|
if not transaction.batch:
|
||||||
self.emit('family-delete',([str(handle)],))
|
self.emit('family-delete',([str(handle)],))
|
||||||
self.family_map.delete(str(handle))
|
self.family_map.delete(str(handle))
|
||||||
|
|
||||||
def remove_event(self,handle,transaction):
|
def remove_event(self,handle,transaction):
|
||||||
@ -311,8 +311,8 @@ class GrampsBSDDB(GrampsDbBase):
|
|||||||
if transaction != None:
|
if transaction != None:
|
||||||
old_data = self.place_map.get(handle)
|
old_data = self.place_map.get(handle)
|
||||||
transaction.add(PLACE_KEY,handle,old_data)
|
transaction.add(PLACE_KEY,handle,old_data)
|
||||||
if transaction and not transaction.batch:
|
if not transaction.batch:
|
||||||
self.emit('place-delete',([handle],))
|
self.emit('place-delete',([handle],))
|
||||||
self.place_map.delete(str(handle))
|
self.place_map.delete(str(handle))
|
||||||
|
|
||||||
def remove_object(self,handle,transaction):
|
def remove_object(self,handle,transaction):
|
||||||
@ -320,6 +320,8 @@ class GrampsBSDDB(GrampsDbBase):
|
|||||||
if transaction != None:
|
if transaction != None:
|
||||||
old_data = self.media_map.get(handle)
|
old_data = self.media_map.get(handle)
|
||||||
transaction.add(PLACE_KEY,handle,old_data)
|
transaction.add(PLACE_KEY,handle,old_data)
|
||||||
|
if not transaction.batch:
|
||||||
|
self.emit('media-delete',([handle],))
|
||||||
self.media_map.delete(str(handle))
|
self.media_map.delete(str(handle))
|
||||||
|
|
||||||
def get_person_from_gramps_id(self,val):
|
def get_person_from_gramps_id(self,val):
|
||||||
|
@ -127,7 +127,11 @@ class GrampsDbBase(GrampsDBCallback.GrampsDBCallback):
|
|||||||
'place-add' : (list,),
|
'place-add' : (list,),
|
||||||
'place-update' : (list,),
|
'place-update' : (list,),
|
||||||
'place-delete' : (list,),
|
'place-delete' : (list,),
|
||||||
'place-rebuild' : None
|
'place-rebuild' : None,
|
||||||
|
'media-add' : (list,),
|
||||||
|
'media-update' : (list,),
|
||||||
|
'media-delete' : (list,),
|
||||||
|
'media-rebuild' : None,
|
||||||
}
|
}
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
@ -285,6 +289,11 @@ class GrampsDbBase(GrampsDBCallback.GrampsDBCallback):
|
|||||||
old_data = self.media_map.get(handle)
|
old_data = self.media_map.get(handle)
|
||||||
transaction.add(MEDIA_KEY,handle,old_data)
|
transaction.add(MEDIA_KEY,handle,old_data)
|
||||||
self.media_map[handle] = obj.serialize()
|
self.media_map[handle] = obj.serialize()
|
||||||
|
if transaction and not transaction.batch:
|
||||||
|
if old_data:
|
||||||
|
self.emit('media-update',([handle],))
|
||||||
|
else:
|
||||||
|
self.emit('media-add',([handle],))
|
||||||
|
|
||||||
def commit_source(self,source,transaction,change_time=None):
|
def commit_source(self,source,transaction,change_time=None):
|
||||||
"""
|
"""
|
||||||
@ -690,8 +699,6 @@ class GrampsDbBase(GrampsDBCallback.GrampsDBCallback):
|
|||||||
if place.get_gramps_id() == None:
|
if place.get_gramps_id() == None:
|
||||||
place.set_gramps_id(self.find_next_place_gramps_id())
|
place.set_gramps_id(self.find_next_place_gramps_id())
|
||||||
self.commit_place(place,transaction)
|
self.commit_place(place,transaction)
|
||||||
if transaction and not transaction.batch:
|
|
||||||
self.emit('place-add',([place.handle],))
|
|
||||||
return place.get_handle()
|
return place.get_handle()
|
||||||
|
|
||||||
def add_object(self,obj,transaction):
|
def add_object(self,obj,transaction):
|
||||||
@ -955,6 +962,7 @@ class GrampsDbBase(GrampsDBCallback.GrampsDBCallback):
|
|||||||
self.emit('family-rebuild')
|
self.emit('family-rebuild')
|
||||||
self.emit('place-rebuild')
|
self.emit('place-rebuild')
|
||||||
self.emit('source-rebuild')
|
self.emit('source-rebuild')
|
||||||
|
self.emit('media-rebuild')
|
||||||
|
|
||||||
def undo(self):
|
def undo(self):
|
||||||
"""
|
"""
|
||||||
@ -1005,8 +1013,10 @@ class GrampsDbBase(GrampsDBCallback.GrampsDBCallback):
|
|||||||
self.emit('place-update',([str(handle),]))
|
self.emit('place-update',([str(handle),]))
|
||||||
elif key == MEDIA_KEY:
|
elif key == MEDIA_KEY:
|
||||||
if data == None:
|
if data == None:
|
||||||
|
self.emit('media-delete',([str(handle),]))
|
||||||
del self.media_map[str(handle)]
|
del self.media_map[str(handle)]
|
||||||
else:
|
else:
|
||||||
|
self.emit('media-update',([str(handle),]))
|
||||||
self.media_map[str(handle)] = data
|
self.media_map[str(handle)] = data
|
||||||
|
|
||||||
if self.undo_callback:
|
if self.undo_callback:
|
||||||
|
@ -484,7 +484,7 @@ class Gallery(ImageSelect):
|
|||||||
photo.set_path(name)
|
photo.set_path(name)
|
||||||
self.parent.lists_changed = 1
|
self.parent.lists_changed = 1
|
||||||
if GrampsKeys.get_media_global():
|
if GrampsKeys.get_media_global():
|
||||||
GlobalMediaProperties(self.db,photo,None,
|
GlobalMediaProperties(self.db,photo,
|
||||||
self,self.parent_window)
|
self,self.parent_window)
|
||||||
elif protocol != "":
|
elif protocol != "":
|
||||||
import urllib
|
import urllib
|
||||||
@ -512,7 +512,7 @@ class Gallery(ImageSelect):
|
|||||||
self.add_thumbnail(oref)
|
self.add_thumbnail(oref)
|
||||||
self.parent.lists_changed = 1
|
self.parent.lists_changed = 1
|
||||||
if GrampsKeys.get_media_global():
|
if GrampsKeys.get_media_global():
|
||||||
GlobalMediaProperties(self.db,photo,None,
|
GlobalMediaProperties(self.db,photo,
|
||||||
self,self.parent_window)
|
self,self.parent_window)
|
||||||
else:
|
else:
|
||||||
if self.db.has_object_handle(data.data):
|
if self.db.has_object_handle(data.data):
|
||||||
@ -873,7 +873,7 @@ class LocalMediaProperties:
|
|||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
class GlobalMediaProperties:
|
class GlobalMediaProperties:
|
||||||
|
|
||||||
def __init__(self,db,obj,update,parent,parent_window=None):
|
def __init__(self,db,obj,parent,parent_window=None):
|
||||||
self.parent = parent
|
self.parent = parent
|
||||||
self.dp = DateHandler.parser
|
self.dp = DateHandler.parser
|
||||||
self.dd = DateHandler.displayer
|
self.dd = DateHandler.displayer
|
||||||
@ -890,7 +890,6 @@ class GlobalMediaProperties:
|
|||||||
self.alist = self.obj.get_attribute_list()[:]
|
self.alist = self.obj.get_attribute_list()[:]
|
||||||
self.lists_changed = 0
|
self.lists_changed = 0
|
||||||
self.db = db
|
self.db = db
|
||||||
self.update = update
|
|
||||||
self.refs = 0
|
self.refs = 0
|
||||||
if obj:
|
if obj:
|
||||||
self.date_object = Date.Date(self.obj.get_date_object())
|
self.date_object = Date.Date(self.obj.get_date_object())
|
||||||
@ -923,11 +922,6 @@ class GlobalMediaProperties:
|
|||||||
build_dropdown(self.place,self.place_list)
|
build_dropdown(self.place,self.place_list)
|
||||||
|
|
||||||
if self.obj:
|
if self.obj:
|
||||||
handle = self.obj.get_place_handle()
|
|
||||||
pobj = self.db.get_place_from_handle(handle)
|
|
||||||
if pobj:
|
|
||||||
self.place.set_text(pobj.get_title())
|
|
||||||
|
|
||||||
self.date_entry.set_text(self.dd.display(self.date_object))
|
self.date_entry.set_text(self.dd.display(self.date_object))
|
||||||
|
|
||||||
Utils.set_titles(self.window,
|
Utils.set_titles(self.window,
|
||||||
@ -1207,8 +1201,6 @@ class GlobalMediaProperties:
|
|||||||
trans = self.db.transaction_begin()
|
trans = self.db.transaction_begin()
|
||||||
self.db.commit_media_object(self.obj,trans)
|
self.db.commit_media_object(self.obj,trans)
|
||||||
self.db.transaction_commit(trans,_("Edit Media Object"))
|
self.db.transaction_commit(trans,_("Edit Media Object"))
|
||||||
if self.update != None:
|
|
||||||
self.update(self.obj)
|
|
||||||
|
|
||||||
def on_help_clicked(self, obj):
|
def on_help_clicked(self, obj):
|
||||||
"""Display the relevant portion of GRAMPS manual"""
|
"""Display the relevant portion of GRAMPS manual"""
|
||||||
@ -1256,11 +1248,10 @@ class GlobalMediaProperties:
|
|||||||
|
|
||||||
class DeleteMediaQuery:
|
class DeleteMediaQuery:
|
||||||
|
|
||||||
def __init__(self,media_handle,db,the_lists,update):
|
def __init__(self,media_handle,db,the_lists):
|
||||||
self.db = db
|
self.db = db
|
||||||
self.media_handle = media_handle
|
self.media_handle = media_handle
|
||||||
self.the_lists = the_lists
|
self.the_lists = the_lists
|
||||||
self.update = update
|
|
||||||
|
|
||||||
def query_response(self):
|
def query_response(self):
|
||||||
trans = self.db.transaction_begin()
|
trans = self.db.transaction_begin()
|
||||||
@ -1305,8 +1296,6 @@ class DeleteMediaQuery:
|
|||||||
|
|
||||||
self.db.remove_object(self.media_handle,trans)
|
self.db.remove_object(self.media_handle,trans)
|
||||||
self.db.transaction_commit(trans,_("Remove Media Object"))
|
self.db.transaction_commit(trans,_("Remove Media Object"))
|
||||||
if self.update:
|
|
||||||
self.update(self.media_handle)
|
|
||||||
|
|
||||||
def build_dropdown(entry,strings):
|
def build_dropdown(entry,strings):
|
||||||
store = gtk.ListStore(str)
|
store = gtk.ListStore(str)
|
||||||
|
@ -25,9 +25,9 @@
|
|||||||
# standard python modules
|
# standard python modules
|
||||||
#
|
#
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
import string
|
|
||||||
import os
|
import os
|
||||||
import gc
|
import gc
|
||||||
|
from gettext import gettext as _
|
||||||
|
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
@ -51,16 +51,8 @@ import ImgManip
|
|||||||
import RelImage
|
import RelImage
|
||||||
import DisplayModels
|
import DisplayModels
|
||||||
import GrampsMime
|
import GrampsMime
|
||||||
|
|
||||||
from QuestionDialog import QuestionDialog, ErrorDialog, WarningDialog
|
from QuestionDialog import QuestionDialog, ErrorDialog, WarningDialog
|
||||||
|
|
||||||
#-------------------------------------------------------------------------
|
|
||||||
#
|
|
||||||
# internationalization
|
|
||||||
#
|
|
||||||
#-------------------------------------------------------------------------
|
|
||||||
from gettext import gettext as _
|
|
||||||
|
|
||||||
column_names = [
|
column_names = [
|
||||||
_('Title'),
|
_('Title'),
|
||||||
_('ID'),
|
_('ID'),
|
||||||
@ -160,7 +152,24 @@ class MediaView:
|
|||||||
self.list.append_column(column)
|
self.list.append_column(column)
|
||||||
index += 1
|
index += 1
|
||||||
|
|
||||||
|
def media_add(self,handle_list):
|
||||||
|
for handle in handle_list:
|
||||||
|
self.model.add_row_by_handle(handle)
|
||||||
|
|
||||||
|
def media_update(self,handle_list):
|
||||||
|
for handle in handle_list:
|
||||||
|
self.model.update_row_by_handle(handle)
|
||||||
|
|
||||||
|
def media_delete(self,handle_list):
|
||||||
|
for handle in handle_list:
|
||||||
|
self.model.delete_row_by_handle(handle)
|
||||||
|
|
||||||
def change_db(self,db):
|
def change_db(self,db):
|
||||||
|
db.connect('media-add', self.media_add)
|
||||||
|
db.connect('media-update', self.media_update)
|
||||||
|
db.connect('media-delete', self.media_delete)
|
||||||
|
db.connect('media-rebuild',self.build_tree)
|
||||||
|
|
||||||
self.db = db
|
self.db = db
|
||||||
self.build_columns()
|
self.build_columns()
|
||||||
self.build_tree()
|
self.build_tree()
|
||||||
@ -192,7 +201,7 @@ class MediaView:
|
|||||||
image = Utils.find_mime_type_pixbuf('text/plain')
|
image = Utils.find_mime_type_pixbuf('text/plain')
|
||||||
type_name = _('Note')
|
type_name = _('Note')
|
||||||
self.preview.set_from_pixbuf(image)
|
self.preview.set_from_pixbuf(image)
|
||||||
del image
|
del image
|
||||||
gc.collect()
|
gc.collect()
|
||||||
|
|
||||||
self.mid.set_text(mobj.get_gramps_id())
|
self.mid.set_text(mobj.get_gramps_id())
|
||||||
@ -267,24 +276,14 @@ class MediaView:
|
|||||||
os.execvp(const.editor,[const.editor, self.obj.get_path()])
|
os.execvp(const.editor,[const.editor, self.obj.get_path()])
|
||||||
|
|
||||||
def popup_change_description(self, obj):
|
def popup_change_description(self, obj):
|
||||||
ImageSelect.GlobalMediaProperties(
|
ImageSelect.GlobalMediaProperties(self.db,self.obj,self,self.topWindow)
|
||||||
self.db, self.obj, self.update_display, self,self.topWindow)
|
|
||||||
|
|
||||||
def on_add_clicked(self,obj):
|
def on_add_clicked(self,obj):
|
||||||
"""Add a new media object to the media list"""
|
"""Add a new media object to the media list"""
|
||||||
import AddMedia
|
import AddMedia
|
||||||
am = AddMedia.AddMediaObject(self.db,self.add_object)
|
am = AddMedia.AddMediaObject(self.db)
|
||||||
am.run()
|
am.run()
|
||||||
|
|
||||||
def add_object(self,mobj_handle):
|
|
||||||
self.model.add_row_by_handle(mobj_handle)
|
|
||||||
|
|
||||||
def update_display(self,mobj):
|
|
||||||
self.model.update_row_by_handle(mobj.get_handle())
|
|
||||||
|
|
||||||
def add_to_display(self,mobj):
|
|
||||||
self.model.add_row_by_handle(mobj.get_handle())
|
|
||||||
|
|
||||||
def on_edit_clicked(self,obj):
|
def on_edit_clicked(self,obj):
|
||||||
"""Edit the properties of an existing media object in the media list"""
|
"""Edit the properties of an existing media object in the media list"""
|
||||||
|
|
||||||
@ -293,9 +292,7 @@ class MediaView:
|
|||||||
handle = list_store.get_value(node,_HANDLE_COL)
|
handle = list_store.get_value(node,_HANDLE_COL)
|
||||||
obj = self.db.get_object_from_handle(handle)
|
obj = self.db.get_object_from_handle(handle)
|
||||||
if obj.get_mime_type():
|
if obj.get_mime_type():
|
||||||
ImageSelect.GlobalMediaProperties(
|
ImageSelect.GlobalMediaProperties(self.db,obj,self,self.topWindow)
|
||||||
self.db,obj, self.update_display,
|
|
||||||
self,self.topWindow)
|
|
||||||
else:
|
else:
|
||||||
import NoteEdit
|
import NoteEdit
|
||||||
NoteEdit.NoteEditor(obj,self.parent,self.topWindow,
|
NoteEdit.NoteEditor(obj,self.parent,self.topWindow,
|
||||||
@ -314,8 +311,7 @@ class MediaView:
|
|||||||
handle = store.get_value(node,_HANDLE_COL)
|
handle = store.get_value(node,_HANDLE_COL)
|
||||||
the_lists = Utils.get_media_referents(handle,self.db)
|
the_lists = Utils.get_media_referents(handle,self.db)
|
||||||
|
|
||||||
ans = ImageSelect.DeleteMediaQuery(handle,self.db,the_lists,
|
ans = ImageSelect.DeleteMediaQuery(handle,self.db,the_lists)
|
||||||
self.model.delete_row_by_handle)
|
|
||||||
if filter(None,the_lists): # quick test for non-emptiness
|
if filter(None,the_lists): # quick test for non-emptiness
|
||||||
msg = _('This media object is currently being used. '
|
msg = _('This media object is currently being used. '
|
||||||
'If you delete this object, it will be removed from '
|
'If you delete this object, it will be removed from '
|
||||||
@ -358,7 +354,7 @@ class MediaView:
|
|||||||
|
|
||||||
self.list.emit_stop_by_name('drag-data-received')
|
self.list.emit_stop_by_name('drag-data-received')
|
||||||
if data and data.format == 8:
|
if data and data.format == 8:
|
||||||
d = string.strip(string.replace(data.data,'\0',' '))
|
d = data.data.replace('\0',' ').strip()
|
||||||
protocol,site,name, j,k,l = urlparse.urlparse(d)
|
protocol,site,name, j,k,l = urlparse.urlparse(d)
|
||||||
if protocol == "file":
|
if protocol == "file":
|
||||||
mime = GrampsMime.get_type(name)
|
mime = GrampsMime.get_type(name)
|
||||||
@ -375,7 +371,6 @@ class MediaView:
|
|||||||
self.build_tree()
|
self.build_tree()
|
||||||
if GrampsKeys.get_media_global():
|
if GrampsKeys.get_media_global():
|
||||||
ImageSelect.GlobalMediaProperties(self.db,photo,
|
ImageSelect.GlobalMediaProperties(self.db,photo,
|
||||||
self.update_display,
|
|
||||||
self,self.topWindow)
|
self,self.topWindow)
|
||||||
elif protocol != "":
|
elif protocol != "":
|
||||||
import urllib
|
import urllib
|
||||||
@ -399,5 +394,5 @@ class MediaView:
|
|||||||
self.db.transaction_commit(trans,_("Add Media Object"))
|
self.db.transaction_commit(trans,_("Add Media Object"))
|
||||||
|
|
||||||
if GrampsKeys.get_media_global():
|
if GrampsKeys.get_media_global():
|
||||||
ImageSelect.GlobalMediaProperties(self.db,photo,None,
|
ImageSelect.GlobalMediaProperties(self.db,photo,
|
||||||
self,self.topWindow)
|
self,self.topWindow)
|
||||||
|
@ -183,56 +183,38 @@ class PlaceView:
|
|||||||
def on_add_place_clicked(self,obj):
|
def on_add_place_clicked(self,obj):
|
||||||
EditPlace.EditPlace(self.parent,RelLib.Place())
|
EditPlace.EditPlace(self.parent,RelLib.Place())
|
||||||
|
|
||||||
def new_place_after_edit(self,place):
|
|
||||||
self.model.add_row_by_handle(place.get_handle())
|
|
||||||
|
|
||||||
def delete_place(self,place):
|
def delete_place(self,place):
|
||||||
trans = self.parent.db.transaction_begin()
|
trans = self.parent.db.transaction_begin()
|
||||||
place_handle = place.get_handle()
|
place_handle = place.get_handle()
|
||||||
self.parent.db.remove_place(place_handle,trans)
|
self.parent.db.remove_place(place_handle,trans)
|
||||||
title_msg = _("Delete Place (%s)") % place.get_title()
|
title_msg = _("Delete Place (%s)") % place.get_title()
|
||||||
self.parent.db.transaction_commit(trans,title_msg)
|
self.parent.db.transaction_commit(trans,title_msg)
|
||||||
self.model.delete_row_by_handle(place_handle)
|
|
||||||
|
def is_used(self,place_handle):
|
||||||
|
for handle in self.parent.db.get_person_handles(sort_handles=False):
|
||||||
|
person = self.parent.db.get_person_from_handle(handle)
|
||||||
|
if person.has_handle_reference('Place',place_handle):
|
||||||
|
return True
|
||||||
|
|
||||||
|
for handle in self.parent.db.get_family_handles():
|
||||||
|
family = self.parent.db.get_family_from_handle(handle)
|
||||||
|
if family.has_handle_reference('Place',place_handle):
|
||||||
|
return True
|
||||||
|
|
||||||
|
for handle in self.parent.db.get_event_handles():
|
||||||
|
event = self.parent.db.get_event_from_handle(handle)
|
||||||
|
if event.has_handle_reference('Place',place_handle):
|
||||||
|
return True
|
||||||
|
|
||||||
|
return False
|
||||||
|
|
||||||
def on_delete_clicked(self,obj):
|
def on_delete_clicked(self,obj):
|
||||||
mlist = []
|
mlist = []
|
||||||
self.selection.selected_foreach(self.blist,mlist)
|
self.selection.selected_foreach(self.blist,mlist)
|
||||||
|
|
||||||
for place_handle in mlist:
|
for place_handle in mlist:
|
||||||
used = 0
|
|
||||||
for key in self.parent.db.get_person_handles(sort_handles=False):
|
|
||||||
p = self.parent.db.get_person_from_handle(key)
|
|
||||||
event_list = []
|
|
||||||
for e in [p.get_birth_handle(),p.get_death_handle()] + p.get_event_list():
|
|
||||||
event = self.parent.db.get_event_from_handle(e)
|
|
||||||
if event:
|
|
||||||
event_list.append(event)
|
|
||||||
if p.get_lds_baptism():
|
|
||||||
event_list.append(p.get_lds_baptism())
|
|
||||||
if p.get_lds_endowment():
|
|
||||||
event_list.append(p.get_lds_endowment())
|
|
||||||
if p.get_lds_sealing():
|
|
||||||
event_list.append(p.get_lds_sealing())
|
|
||||||
for event in event_list:
|
|
||||||
if event:
|
|
||||||
if event.get_place_handle() == place_handle:
|
|
||||||
used = 1
|
|
||||||
|
|
||||||
for fid in self.parent.db.get_family_handles():
|
|
||||||
f = self.parent.db.get_family_from_handle(fid)
|
|
||||||
event_list = []
|
|
||||||
for event_id in f.get_event_list():
|
|
||||||
event = self.parent.db.get_event_from_handle(event_id)
|
|
||||||
if event:
|
|
||||||
event_list.append(event)
|
|
||||||
if f.get_lds_sealing():
|
|
||||||
event_list.append(f.get_lds_sealing())
|
|
||||||
for event in event_list:
|
|
||||||
if event.get_place_handle() == place_handle:
|
|
||||||
used = 1
|
|
||||||
|
|
||||||
place = self.parent.db.get_place_from_handle(place_handle)
|
place = self.parent.db.get_place_from_handle(place_handle)
|
||||||
if used == 1:
|
if self.is_used(place_handle):
|
||||||
ans = EditPlace.DeletePlaceQuery(place,self.parent.db)
|
ans = EditPlace.DeletePlaceQuery(place,self.parent.db)
|
||||||
QuestionDialog(
|
QuestionDialog(
|
||||||
_('Delete %s?') % place.get_title(),
|
_('Delete %s?') % place.get_title(),
|
||||||
|
Loading…
Reference in New Issue
Block a user