* src/AddMedia.py: relative path support
* src/AddrEdit.py: add DisplayTab support * src/DdTargets.py: repository references support * src/DisplayTabs.py: repository reference support * src/EditMedia.py: save support * src/EditSource.py: save support * src/ImageSelect.py: remove unused stuff * src/Sources.py: use object instead of gobject.TYPE_PYOBJECT * src/Utils.py: relative path calculator * src/ViewManager.py: change cwd to directory of the file so that relative paths work * src/edit_person.glade: fix size * src/gramps.glade: add relative path indicator * src/GrampsDb/_ReadGedcom.py: remove useless compare svn: r5883
This commit is contained in:
@@ -1118,6 +1118,23 @@ def get_type_converter_by_name(val_str):
|
||||
return unicode
|
||||
return unicode
|
||||
|
||||
def relative_path(original, base):
|
||||
if not os.path.exists(original) or not os.path.isdir(base):
|
||||
return original
|
||||
|
||||
base_list = (os.path.abspath(base)).split(os.sep)
|
||||
target_list = (os.path.abspath(original)).split(os.sep)
|
||||
|
||||
# Starting from the filepath root, work out how much of the filepath is
|
||||
# shared by base and target.
|
||||
|
||||
for i in range(min(len(base_list), len(target_list))):
|
||||
if base_list[i] <> target_list[i]: break
|
||||
else:
|
||||
i+=1
|
||||
rel_list = [os.pardir] * (len(base_list)-i) + target_list[i:]
|
||||
return os.path.join(*rel_list)
|
||||
|
||||
class ProgressMeter:
|
||||
"""
|
||||
Progress meter class for GRAMPS.
|
||||
|
||||
Reference in New Issue
Block a user