Compare commits
13 Commits
v2.2.10
...
maintenanc
Author | SHA1 | Date | |
---|---|---|---|
|
ba7fae7062 | ||
|
ab1e0183f7 | ||
|
663b2aead9 | ||
|
677af32e5e | ||
|
967a48abdc | ||
|
d547e773b4 | ||
|
10ae727aa1 | ||
|
65dcc697ac | ||
|
098be7de14 | ||
|
020fdef1ce | ||
|
d4c3d51d2a | ||
|
e5a4f0c906 | ||
|
d72778f1ea |
35
ChangeLog
35
ChangeLog
@@ -1,3 +1,36 @@
|
||||
2008-02-27 Benny Malengier <benny.malengier@gramps-project.org>
|
||||
* src/GrampsDb/_ReadXML.py: don't create empty objects in bookmarks
|
||||
* src/Bookmarks.py: don't store duplicates, backport
|
||||
|
||||
2008-02-02 Raphael Ackermann <raphael.ackermann@gmail.com>
|
||||
* src/GrampsDb/_WriteGedcom.py
|
||||
* src/plugins/WriteGeneWeb.py
|
||||
0001414: "Living" is not translated in GEDCOM export file
|
||||
|
||||
2008-01-23 Brian Matherly <brian@gramps-project.org>
|
||||
Benny Malengier <benny.malengier@gramps-project.org>: backport trunk
|
||||
* src/ReportBase/_StyleComboBox.py:
|
||||
* src/ReportBase/_StyleEditor.py:
|
||||
Modify the style editor to properly handle unicode style names.
|
||||
|
||||
2008-01-22 Benny Malengier <benny.malengier@gramps-project.org>
|
||||
* src/Editors/_EditPerson.py: callback for gallerytab no longer needed
|
||||
|
||||
2008-01-21 Benny Malengier <benny.malengier@gramps-project.org>
|
||||
* src/plugins/Check.py: bug (buglist) wrong method call
|
||||
|
||||
2008-01-21 Benny Malengier <benny.malengier@gramps-project.org>
|
||||
* src/docgen/SvgDrawDoc.py: backport patch so that text in svgbox shows
|
||||
|
||||
2008-01-18 Jim Sack <jgsack@san.rr.com>
|
||||
* src/GrampsDb/_WriteGedcom.py : #1621 use os.path.samefile in write_photo
|
||||
|
||||
2008-01-17 Benny Malengier <benny.malengier@gramps-project.org>
|
||||
* src/DataViews/_RelationView.py: isue #1605, not twice in same family
|
||||
|
||||
2008-01-13 Stéphane Charette <stephanecharette@gmail.com>
|
||||
* configure.in: released 2.2.10; update version number to 2.2.11
|
||||
|
||||
2008-01-06 Stéphane Charette <stephanecharette@gmail.com>
|
||||
* NEWS: release candidate for version 2.2.10 "Lemon Curry?"
|
||||
|
||||
@@ -6,7 +39,7 @@
|
||||
include sources (when available) for media objects
|
||||
|
||||
2008-01-04 Jerome Rapinat <romjerome@yahoo.fr>
|
||||
* src/DateHandler/_Date_fr.py : typo
|
||||
* src/DateHandler/_Date_fr.py : typo
|
||||
|
||||
2008-01-03 Benny Malengier <benny.malengier@gramps-project.org>
|
||||
* data/gramps.desktop.in: list more mime types, item 851
|
||||
|
@@ -4,16 +4,16 @@ dnl Process this file with autoconf to produce a configure script.
|
||||
dnl May need to run automake && aclocal first
|
||||
|
||||
AC_PREREQ(2.57)
|
||||
AC_INIT(gramps, 2.2.10, [gramps-bugs@lists.sourceforge.net])
|
||||
AC_INIT(gramps, 2.2.11, [gramps-bugs@lists.sourceforge.net])
|
||||
AC_CONFIG_SRCDIR(configure.in)
|
||||
AM_INIT_AUTOMAKE(1.6.3)
|
||||
|
||||
AC_CONFIG_MACRO_DIR([m4])
|
||||
GNOME_DOC_INIT
|
||||
|
||||
dnl RELEASE=0.SVN$(svnversion -n .)
|
||||
RELEASE=0.SVN$(svnversion -n .)
|
||||
dnl RELEASE=0rc1
|
||||
RELEASE=1
|
||||
dnl RELEASE=1
|
||||
|
||||
VERSIONSTRING=$VERSION
|
||||
if test x"$RELEASE" != "x"
|
||||
|
@@ -104,6 +104,7 @@ class Bookmarks :
|
||||
if self.active != DISABLED:
|
||||
self.uistate.uimanager.remove_ui(self.active)
|
||||
self.uistate.uimanager.remove_action_group(self.action_group)
|
||||
self.action_group = gtk.ActionGroup('Bookmarks')
|
||||
self.active = DISABLED
|
||||
|
||||
def redraw_and_report_change(self):
|
||||
|
@@ -1080,7 +1080,8 @@ class RelationshipView(PageView.PersonNavView):
|
||||
|
||||
phandle = self.dbstate.get_active_person().handle
|
||||
person = self.dbstate.db.get_person_from_handle(phandle)
|
||||
skip = set(person.get_family_handle_list())
|
||||
skip = set(person.get_family_handle_list() +
|
||||
person.get_parent_family_handle_list())
|
||||
|
||||
dialog = SelectFamily(self.dbstate, self.uistate, skip=skip)
|
||||
family = dialog.run()
|
||||
|
@@ -401,7 +401,6 @@ class EditPerson(EditPrimary):
|
||||
the updating image on the main form which has just been modified.
|
||||
"""
|
||||
self.load_photo(obj.get_path())
|
||||
self.gallery_tab.edit_callback(ref, obj)
|
||||
|
||||
def _image_button_press(self, obj, event):
|
||||
"""
|
||||
|
@@ -337,7 +337,8 @@ class GrampsBSDDB(GrampsDbBase,UpdateCallback):
|
||||
# These env settings are only needed for Txn environment
|
||||
self.env.set_lk_max_locks(25000)
|
||||
self.env.set_lk_max_objects(25000)
|
||||
self.env.set_flags(db.DB_LOG_AUTOREMOVE,1) # clean up unused logs
|
||||
|
||||
self.set_auto_remove()
|
||||
|
||||
# The DB_PRIVATE flag must go if we ever move to multi-user setup
|
||||
env_flags = db.DB_CREATE|db.DB_PRIVATE|\
|
||||
@@ -1386,7 +1387,8 @@ class GrampsBSDDB(GrampsDbBase,UpdateCallback):
|
||||
if transaction.batch:
|
||||
if self.UseTXN:
|
||||
self.env.txn_checkpoint()
|
||||
self.env.set_flags(db.DB_TXN_NOSYNC,1) # async txn
|
||||
if db.version() < (4, 7):
|
||||
self.env.set_flags(db.DB_TXN_NOSYNC, 1) # async txn
|
||||
|
||||
if self.secondary_connected and not transaction.no_magic:
|
||||
# Disconnect unneeded secondary indices
|
||||
@@ -1426,7 +1428,8 @@ class GrampsBSDDB(GrampsDbBase,UpdateCallback):
|
||||
if transaction.batch:
|
||||
if self.UseTXN:
|
||||
self.env.txn_checkpoint()
|
||||
self.env.set_flags(db.DB_TXN_NOSYNC,0) # sync txn
|
||||
if db.version() < (4, 7):
|
||||
self.env.set_flags(db.DB_TXN_NOSYNC, 0) # sync txn
|
||||
|
||||
if not transaction.no_magic:
|
||||
# create new secondary indices to replace the ones removed
|
||||
@@ -1498,6 +1501,31 @@ class GrampsBSDDB(GrampsDbBase,UpdateCallback):
|
||||
db_map.put(handle,data,txn=self.txn)
|
||||
self.emit(signal,([handle],))
|
||||
|
||||
def set_auto_remove(self):
|
||||
"""
|
||||
BSDDB change log settings using new method with renamed attributes
|
||||
"""
|
||||
if db.version() < (4, 7):
|
||||
# by the book: old method with old attribute
|
||||
self.env.set_flags(db.DB_LOG_AUTOREMOVE, 1)
|
||||
else: # look at python pybsddb interface, should also be 4.7+
|
||||
# TODO test with new version of pybsddb
|
||||
try:
|
||||
# try numeric compare, just first 2 digits
|
||||
# this won't work with something like "4.10a", but
|
||||
# hopefully they won't do that
|
||||
old_version = map(int, db.__version__.split(".",2)[:2]) < (4, 7)
|
||||
except:
|
||||
# fallback, weak string compare
|
||||
old_version = db.__version__ < "4.7"
|
||||
if old_version:
|
||||
# undocumented: old method with new attribute
|
||||
self.env.set_flags(db.DB_LOG_AUTO_REMOVE, 1)
|
||||
else:
|
||||
# by the book: new method with new attribute
|
||||
self.env.log_set_config(db.DB_LOG_AUTO_REMOVE, 1)
|
||||
|
||||
|
||||
def gramps_upgrade(self,callback=None):
|
||||
UpdateCallback.__init__(self,callback)
|
||||
|
||||
|
@@ -27,11 +27,14 @@
|
||||
#-------------------------------------------------------------------------
|
||||
import os
|
||||
import sys
|
||||
import sets
|
||||
import shutil
|
||||
from xml.parsers.expat import ExpatError, ParserCreate
|
||||
from gettext import gettext as _
|
||||
import re
|
||||
try:
|
||||
set()
|
||||
except NameError:
|
||||
from sets import Set as set
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
#
|
||||
@@ -276,7 +279,7 @@ class GrampsParser(UpdateCallback):
|
||||
self.childref_map = {}
|
||||
self.change = change
|
||||
self.dp = DateHandler.parser
|
||||
self.place_names = sets.Set()
|
||||
self.place_names = set()
|
||||
cursor = database.get_place_cursor()
|
||||
data = cursor.next()
|
||||
while data:
|
||||
@@ -860,31 +863,31 @@ class GrampsParser(UpdateCallback):
|
||||
# Make sure those are filtered out.
|
||||
# Bookmarks are at end, so all handle must exist before we do bookmrks
|
||||
if target == 'person':
|
||||
if (self.db.find_person_from_handle(handle,self.trans) is not None
|
||||
if (self.db.get_person_from_handle(handle) is not None
|
||||
and handle not in self.db.bookmarks.get() ):
|
||||
self.db.bookmarks.append(handle)
|
||||
elif target == 'family':
|
||||
if (self.db.find_family_from_handle(handle,self.trans) is not None
|
||||
if (self.db.get_family_from_handle(handle) is not None
|
||||
and handle not in self.db.family_bookmarks.get() ):
|
||||
self.db.family_bookmarks.append(handle)
|
||||
elif target == 'event':
|
||||
if (self.db.find_event_from_handle(handle,self.trans) is not None
|
||||
if (self.db.get_event_from_handle(handle) is not None
|
||||
and handle not in self.db.event_bookmarks.get() ):
|
||||
self.db.event_bookmarks.append(handle)
|
||||
elif target == 'source':
|
||||
if (self.db.find_source_from_handle(handle,self.trans) is not None
|
||||
if (self.db.get_source_from_handle(handle) is not None
|
||||
and handle not in self.db.source_bookmarks.get() ):
|
||||
self.db.source_bookmarks.append(handle)
|
||||
elif target == 'place':
|
||||
if (self.db.find_place_from_handle(handle,self.trans) is not None
|
||||
if (self.db.get_place_from_handle(handle) is not None
|
||||
and handle not in self.db.place_bookmarks.get() ):
|
||||
self.db.place_bookmarks.append(handle)
|
||||
elif target == 'media':
|
||||
if (self.db.find_object_from_handle(handle,self.trans) is not None
|
||||
if (self.db.get_object_from_handle(handle) is not None
|
||||
and handle not in self.db.media_bookmarks.get() ):
|
||||
self.db.media_bookmarks.append(handle)
|
||||
elif target == 'repository':
|
||||
if (self.db.find_repository_from_handle(handle,self.trans)
|
||||
if (self.db.get_repository_from_handle(handle)
|
||||
is not None and handle not in self.db.repo_bookmarks.get()):
|
||||
self.db.repo_bookmarks.append(handle)
|
||||
|
||||
|
@@ -883,7 +883,7 @@ class GedcomWriter(UpdateCallback):
|
||||
nickname = ""
|
||||
if restricted and self.living:
|
||||
primaryname = RelLib.Name (primaryname)
|
||||
primaryname.set_first_name ("Living")
|
||||
primaryname.set_first_name (_("Living"))
|
||||
#nickname = ""
|
||||
else:
|
||||
primaryname = person.get_primary_name ()
|
||||
@@ -1449,7 +1449,7 @@ class GedcomWriter(UpdateCallback):
|
||||
return
|
||||
basename = os.path.basename(path)
|
||||
dest = os.path.join (imgdir, basename)
|
||||
if dest != path:
|
||||
if not os.path.samefile(dest,path):
|
||||
try:
|
||||
shutil.copyfile(path, dest)
|
||||
shutil.copystat(path, dest)
|
||||
|
@@ -83,7 +83,7 @@ class StyleComboBox(gtk.ComboBox):
|
||||
active = self.get_active()
|
||||
if active < 0:
|
||||
return None
|
||||
key = self.store[active][0]
|
||||
key = unicode(self.store[active][0])
|
||||
if key == _('default'):
|
||||
key = "default"
|
||||
return (key,self.style_map[key])
|
||||
|
@@ -149,7 +149,7 @@ class StyleListDisplay:
|
||||
if not node:
|
||||
return
|
||||
|
||||
name = self.list.model.get_value(node,0)
|
||||
name = unicode(self.list.model.get_value(node,0))
|
||||
style = self.sheetlist.get_style_sheet(name)
|
||||
StyleEditor(name,style,self)
|
||||
|
||||
@@ -158,7 +158,7 @@ class StyleListDisplay:
|
||||
store,node = self.list.selection.get_selected()
|
||||
if not node:
|
||||
return
|
||||
name = self.list.model.get_value(node,0)
|
||||
name = unicode(self.list.model.get_value(node,0))
|
||||
self.sheetlist.delete_style_sheet(name)
|
||||
self.redraw()
|
||||
|
||||
|
@@ -222,7 +222,7 @@ class SvgDrawDoc(BaseDoc.BaseDoc):
|
||||
else:
|
||||
self.t.write(' font-family:serif;')
|
||||
self.t.write('">')
|
||||
self.f.write(lines[i])
|
||||
self.t.write(lines[i])
|
||||
self.t.write('</text>\n')
|
||||
|
||||
def draw_text(self,style,text,x,y):
|
||||
|
@@ -970,7 +970,7 @@ class CheckIntegrity:
|
||||
item[1] not in known_handles ]
|
||||
if bad_handles:
|
||||
obj.remove_source_references(bad_handles)
|
||||
self.db.commit_object(obj,self.trans)
|
||||
self.db.commit_media_object(obj,self.trans)
|
||||
new_bad_handles = [handle for handle in bad_handles if handle
|
||||
not in self.invalid_source_references]
|
||||
self.invalid_source_references += new_bad_handles
|
||||
|
@@ -456,7 +456,7 @@ class GeneWebWriter:
|
||||
|
||||
def get_ref_name(self,person):
|
||||
surname = self.rem_spaces( person.get_primary_name().get_surname())
|
||||
firstname = "Living"
|
||||
firstname = _("Living")
|
||||
if not (Utils.probably_alive(person,self.db) and self.restrict and self.living):
|
||||
firstname = self.rem_spaces( person.get_primary_name().get_first_name())
|
||||
if not self.person_ids.has_key(person.get_handle()):
|
||||
@@ -466,7 +466,7 @@ class GeneWebWriter:
|
||||
|
||||
def get_child_ref_name(self,person,father_lastname):
|
||||
surname = self.rem_spaces( person.get_primary_name().get_surname())
|
||||
firstname = "Living"
|
||||
firstname = _("Living")
|
||||
if not (Utils.probably_alive(person,self.db) and self.restrict and self.living):
|
||||
firstname = self.rem_spaces( person.get_primary_name().get_first_name())
|
||||
if not self.person_ids.has_key(person.get_handle()):
|
||||
|
Reference in New Issue
Block a user