diff --git a/gramps/src/AddMedia.py b/gramps/src/AddMedia.py index fe493aa5f..ab5ccfb68 100644 --- a/gramps/src/AddMedia.py +++ b/gramps/src/AddMedia.py @@ -95,6 +95,8 @@ class AddMediaObject: if external.get_active() == 0: path = self.db.getSavePath() name = RelImage.import_media_object(filename,path,mobj.getId()) + else: + name = filename mobj.setPath(name) utils.modified() diff --git a/gramps/src/ImageSelect.py b/gramps/src/ImageSelect.py index 4ecb235f2..4157dbf76 100644 --- a/gramps/src/ImageSelect.py +++ b/gramps/src/ImageSelect.py @@ -511,14 +511,14 @@ class LocalMediaProperties: class GlobalMediaProperties: - def __init__(self,db,object): + def __init__(self,db,object,update): self.object = object self.alist = self.object.getAttributeList()[:] self.lists_changed = 0 self.db = db + self.update = update - path = self.db.getSavePath() - fname = self.object.getPath() + self.path = self.db.getSavePath() self.change_dialog = libglade.GladeXML(const.imageselFile,"change_global") window = self.change_dialog.get_widget("change_global") descr_window = self.change_dialog.get_widget("description") @@ -530,28 +530,46 @@ class GlobalMediaProperties: descr_window.set_text(self.object.getDescription()) mtype = self.object.getMimeType() - pixmap.load_file(utils.thumb_path(path,self.object)) + pixmap.load_file(utils.thumb_path(self.path,self.object)) self.change_dialog.get_widget("gid").set_text(self.object.getId()) + self.makelocal = self.change_dialog.get_widget("makelocal") - if self.object.getLocal(): - self.change_dialog.get_widget("path").set_text("") - else: - self.change_dialog.get_widget("path").set_text(fname) + self.update_info() + self.change_dialog.get_widget("type").set_text(utils.get_mime_description(mtype)) self.change_dialog.get_widget("notes").insert_defaults(object.getNote()) self.change_dialog.signal_autoconnect({ - "on_cancel_clicked" : utils.destroy_passed_object, - "on_ok_clicked" : self.on_ok_clicked, - "on_apply_clicked" : self.on_apply_clicked, - "on_attr_list_select_row" : self.on_attr_list_select_row, - "on_add_attr_clicked": self.on_add_attr_clicked, + "on_cancel_clicked" : utils.destroy_passed_object, + "on_ok_clicked" : self.on_ok_clicked, + "on_apply_clicked" : self.on_apply_clicked, + "on_attr_list_select_row": self.on_attr_list_select_row, + "on_add_attr_clicked" : self.on_add_attr_clicked, "on_notebook_switch_page": self.on_notebook_switch_page, + "on_make_local_clicked" : self.on_make_local_clicked, "on_delete_attr_clicked" : self.on_delete_attr_clicked, "on_update_attr_clicked" : self.on_update_attr_clicked, }) self.redraw_attr_list() + def update_info(self): + fname = self.object.getPath() + if self.object.getLocal(): + self.change_dialog.get_widget("path").set_text("") + self.makelocal.set_sensitive(0) + else: + self.change_dialog.get_widget("path").set_text(fname) + self.makelocal.set_sensitive(1) + + def on_make_local_clicked(self, obj): + name = RelImage.import_media_object(self.object.getPath(), + self.path, + self.object.getId()) + self.object.setPath(name) + self.object.setLocal(1) + self.update_info() + self.update() + def redraw_attr_list(self): utils.redraw_list(self.alist,self.attr_list,disp_attr) diff --git a/gramps/src/MergeData.py b/gramps/src/MergeData.py index 542e7bf1e..06fb6a35d 100644 --- a/gramps/src/MergeData.py +++ b/gramps/src/MergeData.py @@ -807,7 +807,9 @@ class MergePlaces: self.top.show() def on_merge_places_clicked(self,obj): - if self.glade.get_widget("title2").get_active(): + t2active = self.glade.get_widget("title2").get_active() + + if t2active: self.p1.set_title(self.p2.get_title()) elif self.glade.get_widget("title3").get_active(): self.p1.set_title(self.t3.get_text()) @@ -827,9 +829,20 @@ class MergePlaces: self.p1.setNote(note) elif self.p1.getNote() != note: self.p1.setNote("%s\n\n%s" % (self.p1.getNote(),note)) - for l in [self.p2.get_main_location()] + self.p2.get_alternate_locations(): - if not l.is_empty(): - self.p1.add_alternate_locations(l) + + if t2active: + list = [self.p1.get_main_location()] + self.p1.get_alternate_locations() + self.p1.set_main_location(self.p2.get_main_location()) + for l in list: + if not l.is_empty(): + self.p1.add_alternate_locations(l) + else: + list = [self.p2.get_main_location()] + self.p2.get_alternate_locations() + for l in list: + if not l.is_empty(): + self.p1.add_alternate_locations(l) + + for p in self.db.getPersonMap().values(): for event in [p.getBirth(), p.getDeath()] + p.getEventList(): if event.getPlace() == self.p2: diff --git a/gramps/src/gramps_main.py b/gramps/src/gramps_main.py index 5e337042f..c121df165 100755 --- a/gramps/src/gramps_main.py +++ b/gramps/src/gramps_main.py @@ -2129,7 +2129,7 @@ def on_edit_media_clicked(obj): if len(media_list.selection) <= 0: return object = media_list.get_row_data(media_list.selection[0]) - ImageSelect.GlobalMediaProperties(database,object) + ImageSelect.GlobalMediaProperties(database,object,load_media) def on_delete_media_clicked(obj): if len(media_list.selection) <= 0: diff --git a/gramps/src/imagesel.glade b/gramps/src/imagesel.glade index 3aa6de41a..984cd7c09 100644 --- a/gramps/src/imagesel.glade +++ b/gramps/src/imagesel.glade @@ -1676,7 +1676,7 @@ 0 0 - True + False True @@ -1736,7 +1736,7 @@ False 0 - 0 + 5 False False @@ -1760,7 +1760,7 @@ GtkButton - button92 + makelocal True clicked