Compare commits

..

1 Commits

Author SHA1 Message Date
romjerome 1f614bd76f Add files via upload 2021-04-04 09:10:22 +02:00
62 changed files with 11765 additions and 9904 deletions
-76
View File
@@ -1,76 +0,0 @@
#
# Gramps - a GTK+/GNOME based genealogy program
#
# Copyright (C) 2022 Nick Hall
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
name: Gramps CI
on:
push:
branches: [ maintenance/gramps51 ]
pull_request:
branches: [ maintenance/gramps51 ]
jobs:
build:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- name: Install dependencies
run: |
sudo apt-get install gir1.2-pango-1.0
sudo apt-get install gir1.2-gtk-3.0
sudo apt-get install xdg-utils
sudo apt-get install librsvg2-common
sudo apt-get install libglib2.0-dev
sudo apt-get install intltool
sudo apt-get install python3-gi
sudo apt-get install python3-cairo
sudo apt-get install python3-gi-cairo
sudo apt-get install python3-bsddb3
sudo apt-get install python3-dev
sudo apt-get install python3-nose
sudo apt-get install python3-mock
sudo apt-get install python3-icu
sudo apt-get install python3-coverage
sudo apt-get install python3-jsonschema
sudo apt-get install libxml2-utils
sudo apt-get install python3-lxml
sudo apt-get install python-libxml2
sudo apt-get install zlib1g-dev
sudo apt-get install python3-setuptools
- name: Install addons
run: |
mkdir -p ~/.gramps/gramps51/plugins/
wget https://github.com/gramps-project/addons/raw/master/gramps51/download/CliMerge.addon.tgz
tar -C ~/.gramps/gramps51/plugins -xzf CliMerge.addon.tgz
wget https://github.com/gramps-project/addons/raw/master/gramps51/download/ExportRaw.addon.tgz
tar -C ~/.gramps/gramps51/plugins -xzf ExportRaw.addon.tgz
- name: Build
run: |
python3 setup.py build
- name: Run unit test suite
run: |
python3 setup.py test
- name: Trailing whitespace check
run: |
if git --no-pager grep --color -n --full-name '[ ]$' -- \*.py; then
echo "ERROR - Trailing whitespace found in source file(s)";
exit 1;
fi
+129
View File
@@ -0,0 +1,129 @@
#
# Gramps - a GTK+/GNOME based genealogy program
#
# Copyright (C) 2015-2015 Doug Blank
# Copyright (C) 2016 DaAwesomeP
# Copyright (C) 2016 QuLogic
# Copyright (C) 2016 Tim G L Lyons
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
# After changing this file, check it on:
# http://lint.travis-ci.org/
sudo: required
dist: trusty
language: python
python:
- 3.3 # This is irrelevant, because the virtualenv is not used at all
# FIXME: The minimum requirement for Gramps is Python 3.2, so a test environment
# for Python 3.2 should be added to this environment which is Python 3.3. It
# will not be possible to run coverage under Python 3.2, because coverage is
# Python 3.3 (or above) only.
addons:
apt:
packages:
- gir1.2-pango-1.0
- gir1.2-gtk-3.0
- xdg-utils
- librsvg2-common
- libglib2.0-dev
- intltool
# - python3-gobject Provided by python3-gi
- python3-gi
- python3-cairo
- python3-gi-cairo
- python3-bsddb3
- python3-dev
- python3-nose
- python3-mock
- python3-pyicu
- python3-coverage
- python3-jsonschema
# lxml dependencies. for merge_ref_test to work
# - libxml2-dev
# - libxslt1-dev
- libxml2-utils
- python3-lxml
- python-libxml2
# ubuntu 14.04 requires this in addition to libxml2-dev and
# libxslt1-dev for compiling lxml.
# https://github.com/deanmalmgren/textract/issues/19
- zlib1g-dev
before_install:
install:
# The working directory is set to /home/travis/build/gramps-project/gramps
# by the automatic git checkout.
# Download Sean Ross-Ross's Pure Python module containing a framework to
# manipulate and analyze python asts and bytecode. This is loaded to
# /home/travis/build/gramps-project/gramps/meta
# FIXME: This should be loaded from the release directory at
# https://pypi.python.org/pypi/meta
- git clone -b master https://github.com/srossross/meta
# Build Gramps package. This seems to copy everything to
# /home/travis/build/scripts-3.3
- python setup.py build
before_script:
# Create the Gramps database directory.
- mkdir -p ~/.gramps/grampsdb/
# set PYTHONPATH so the directly installed module (meta) is picked up from
# /home/travis/build/gramps-project/gramps/meta
- export PYTHONPATH=meta
# set module exclusions. --exclude=TestUser because of older version of mock
# without configure_mock
- export EXCLUDE="--exclude=TestcaseGenerator"
# --exclude=merge_ref_test"
# set GRAMPS_RESOURCES for locale, data,image and documentation
- export GRAMPS_RESOURCES=.
# Install addons
- mkdir -p ~/.gramps/gramps51/plugins/
- wget https://github.com/gramps-project/addons/raw/master/gramps51/download/CliMerge.addon.tgz
- tar -C ~/.gramps/gramps51/plugins -xzf CliMerge.addon.tgz
- wget https://github.com/gramps-project/addons/raw/master/gramps51/download/ExportRaw.addon.tgz
- tar -C ~/.gramps/gramps51/plugins -xzf ExportRaw.addon.tgz
script:
# Ignore the virtualenv entirely. Use nosetests3, python3 (3.4.0) and coverage
# from /usr/bin. Use libraries from /usr/lib/python3.4,
# /usr/local/lib/python3.4/dist-packages and /usr/lib/python3/dist-packages
- nosetests3 --nologcapture --with-coverage --cover-package=gramps $EXCLUDE
gramps
# FIXME: This should have run from the current directory, rather than from
# gramps, because there is some test code in that directory.
# give an error for any trailing whitespace
- if git --no-pager grep --color -n --full-name '[ ]$' -- \*.py; then
echo "ERROR - Trailing whitespace found in source file(s)";
exit 1;
fi
after_success:
# apt-get installs python3-coverage, but codecov only invokes coverage, so make
# a link
- sudo ln /usr/bin/python3-coverage /usr/bin/coverage
# We have to use the bash script because the apt-get coverage does not install
# codecov. If we used pip to install codecov, it would run inside the
# virtualenv, and that doesn't work. Change the path to ensure that codecov
# picks up coverage from /usr/bin, rather than from
# /home/travis/virtualenv/python3.3.6/bin/
- PATH=/usr/bin:$PATH bash <(curl -s https://codecov.io/bash)
+326 -116
View File
@@ -1,192 +1,402 @@
2022-02-05 Nick Hall <nick-h@gramps-project.org>
2020-08-11 prculley <paulr2787@gmail.com>
* .travis.yml: Remove Travis CI configuration
* po/ar.po, po/bg.po, po/br.po, po/ca.po, po/cs.po, po/da.po,
po/el.po, po/en_GB.po, po/eo.po, po/es.po, po/fi.po, po/fr.po,
po/ga.po, po/he.po, po/hr.po, po/hu.po, po/is.po, po/it.po,
po/ja.po, po/lt.po, po/mk.po, po/nb.po, po/nl.po, po/nn.po,
po/pl.po, po/pt_BR.po, po/pt_PT.po, po/ro.po, po/ru.po, po/sk.po,
po/sl.po, po/sq.po, po/sr.po, po/sr_Latn.po, po/sv.po, po/ta.po,
po/tr.po, po/uk.po, po/vi.po, po/zh_CN.po, po/zh_HK.po, po/zh_TW.po:
Remove duplicates in Translations
2022-02-05 Nick Hall <nick-h@gramps-project.org>
2020-08-10 prculley <paulr2787@gmail.com>
* README.md: Fix badges in README file
* po/ar.po, po/bg.po, po/br.po, po/ca.po, po/cs.po, po/da.po,
po/de.po, po/el.po, po/en_GB.po, po/eo.po, po/es.po, po/fi.po,
po/fr.po, po/ga.po, po/he.po, po/hr.po, po/hu.po, po/is.po,
po/it.po, po/ja.po, po/lt.po, po/mk.po, po/nb.po, po/nl.po,
po/nn.po, po/pl.po, po/pt_BR.po, po/pt_PT.po, po/ro.po, po/ru.po,
po/sk.po, po/sl.po, po/sq.po, po/sr.po, po/sr_Latn.po, po/sv.po,
po/ta.po, po/tr.po, po/uk.po, po/vi.po, po/zh_CN.po, po/zh_HK.po,
po/zh_TW.po: Clean up translations for Default/Home Person
2022-02-05 Nick Hall <nick-h@gramps-project.org>
2020-08-10 Leonhaeuser <mirko@leonhaeuser.de>
* gramps/gen/const.py: Update copyright date
* po/de.po: Update German translation
2021-09-18 SNoiraud <Serge.Noiraud@free.fr>
2020-08-10 Serge Noiraud <Serge.Noiraud@laposte.net>
* gramps/gui/views/pageview.py, gramps/gui/widgets/grampletbar.py:
Strange behavior for the scrollbar in the bottombar Fixes #012438
* gramps/gui/views/treemodels/eventmodel.py: Events View: "Main
Participants" column does not (#1075) show the full list of participants when expanded. Fixes #11805
2022-02-04 romjerome <romjerome@yahoo.fr>
2020-08-10 Paul Culley <paulr2787@gmail.com>
* data/grampsxml.dtd, data/grampsxml.rng: Fix place object element
order in DTD and RNG schemas Element placeobj content does not follow the DTD and RNG, expecting
(ptitle? , pname+) Fixes #12500
* po/pl.po: Fix Charts/Pedigreeview tooltip Polish translation
(#1092) Fixes #11852
2022-01-31 Krystian Safjan <ksafjan@gmail.com>
2020-08-10 Krystian Safjan <ksafjan@gmail.com>
* po/pl.po: Fixes suggested after review by @stojex
* po/gramps.pot, po/pl.po: Fix and add objects to Polish translation
of Gramps (#1088)
2022-01-07 Krystian Safjan <ksafjan@gmail.com>
2020-08-06 John Ralls <jralls@ceridwen.us>
* po/pl.po: Update Polish translation - Consistent usage of "Tag": was "Tag" or "Atrybut", note that "Attribute" (atrybut) is something different than tag - "Magazyn" (repository) renamed to "Repozytorium" - other fixes and addons
* mac/gramps.modules: Use current Gtk release instead of Gtk-3.14.
2021-09-04 SNoiraud <Serge.Noiraud@free.fr>
2020-08-06 John Ralls <jralls@ceridwen.us>
* gramps/gui/widgets/grampletpane.py: Solve InterpolationSyntaxError
if "%" in a string The grampletpane module save data in a config file for all the
gramplets added in the dashboard. The python configparser module
doesn't like if we have a "%" character in a string. Fixes #012423
* mac/gramps.modules: Upgrade pymodules for Python 3.8
compatibility.
2021-11-06 SNoiraud <Serge.Noiraud@free.fr>
2020-07-09 prculley <paulr2787@gmail.com>
* gramps/plugins/drawreport/calendarreport.py: '<' not supported
between 2 instances of IndexMark Fixes #012467
* gramps/plugins/export/exportxml.py: Fix XML export when 'Group-as"
name contains XML invalid chars Fixes #11834
2022-01-29 Nick Hall <nick-h@gramps-project.org>
2020-07-08 SNoiraud <serge.noiraud@laposte.net>
* gramps/gen/filters/rules/test/person_rules_test.py,
gramps/plugins/test/db_undo_and_signals_test.py: Remove debug
sattements in unit tests
* gramps/plugins/webreport/basepage.py: NarWeb: Province place-type
is not displayed
2022-01-29 Nick Hall <nick-h@gramps-project.org>
2020-07-07 prculley <paulr2787@gmail.com>
* gramps/gen/lib/date.py, gramps/gen/lib/test/date_test.py: Fix
negative Span when dates are not Gregorian Fixes #12525
* gramps/gui/managedwindow.py: Fix ManagedWindow so that new windows
don't appear offscreen when system 'screen' sizes change in part
time multi-monitor setups. Fixes #11831
2022-01-29 Mirko Leonhaeuser <mirko@leonhaeuser.de>
2020-07-03 prculley <paulr2787@gmail.com>
* po/de.po: get German translation with manual in sync (Display name
editor)
* gramps/gui/viewmanager.py: Fix menus when db fails to open due to
upgrade/downgrade etc. Fixes #11604
2021-08-11 SNoiraud <Serge.Noiraud@free.fr>
2020-07-03 prculley <paulr2787@gmail.com>
* gramps/gen/display/name.py: Incorrect grouping if no ma/patronymic
surname
* gramps/gui/plug/_windows.py: Fix issue with attach source tool,
results panel Fixes #11780
2021-08-07 SNoiraud <Serge.Noiraud@free.fr>
2020-07-03 prculley <paulr2787@gmail.com>
* gramps/gen/display/name.py: Group As override is ignored for
ma/patronymic surnames Fixes #12395 discourse:
* gramps/plugins/export/exportgedcom.py: Fix GEDCOM export; don't
include ADDR when address is missing Fixes #11825
https://gramps.discourse.group/t/patronymic-and-matronymic-name/1684/5
2021-07-29 SNoiraud <Serge.Noiraud@free.fr>
* gramps/gui/editors/editplace.py: Add comments for the lat-lon
field of editplace
2021-07-28 SNoiraud <Serge.Noiraud@free.fr>
2020-07-02 SNoiraud <serge.noiraud@laposte.net>
* gramps/gui/editors/editplace.py,
gramps/gui/editors/editplaceref.py: Place editor, lat and long text
are swapped Fixes #012374
gramps/gui/editors/editplaceref.py: Coordinates containing a comma
instead of a period Fixes #11823
2021-07-28 prculley <paulr2787@gmail.com>
2020-07-23 Leonhaeuser <mirko@leonhaeuser.de>
* gramps/gui/viewmanager.py: Fix Statusbar progress being shown
before use Fixes #12373
* po/de.po: German translation fixed typo
2021-07-26 prculley <paulr2787@gmail.com>
2020-07-17 niememat <niememat@gmail.com>
* gramps/plugins/db/dbapi/dbapi.py: Fix exception when removing a
group name in Sqlite db when group name is already missing. Fixes #12367
* po/fi.po: Update finnish translation
2021-07-26 prculley <paulr2787@gmail.com>
2020-06-07 Tian Shixiong <tiansworld@fedoraproject.org>
* gramps/gui/editors/editname.py: Fix error when trying to close
name editor during long name group mapping view rebuild. Fixes #12328
* po/zh_CN.po: Update Simplified Chinese translation for gramps51
branch
2021-07-19 SNoiraud <Serge.Noiraud@free.fr>
2020-07-08 Serge Noiraud <Serge.Noiraud@laposte.net>
* gramps/plugins/lib/maps/geography.py,
gramps/plugins/lib/maps/osmgps.py, gramps/plugins/view/geoclose.py,
gramps/plugins/view/geofamclose.py: OsmGpsMap-CRITICAL: Map source
setup called twice Fixes #012352
* gramps/plugins/webreport/basepage.py,
gramps/plugins/webreport/person.py,
gramps/plugins/webreport/surname.py: NarrativeWeb should show
patronymic in individuals (#1048) In the individuals and in surnames pages, we should show the
complete name like defined in the display tab from the narrative web
configuration. Fixes #04404
2021-08-15 Ross Gammon <rossgammon@debian.org>
2020-07-08 Serge Noiraud <Serge.Noiraud@laposte.net>
* gramps/gen/filters/rules/test/person_rules_test.py: Fix probably
alive test The probably alive funtion was fixed just prior to the Gramps 5.1.4
release. It appears the relevant unit test was not updated to match.
The relevant commit:
* gramps/plugins/webreport/person.py,
gramps/plugins/webreport/place.py: Narrated Website Google Maps
Output JS Warning (#1038) SensorNotRequired: The sensor parameter is no longer required for
the Maps JavaScript API. It won't prevent the Maps JavaScript API
from working correctly, but we recommend that you remove the sensor
parameter from the script element. Fixes #011654
https://github.com/gramps-project/gramps/commit/a685b96f700dcfc6b953413cb3adc8be61d87438
2020-01-11 giansalvo <pioggia3+github@gmail.com>
2022-01-28 Nick Hall <nick-h@gramps-project.org>
* gramps/gen/filters/rules/person/_isdefaultperson.py,
gramps/gen/filters/rules/person/_islessthannthgenerationancestorofd
efaultperson.py, gramps/gui/views/navigationview.py,
gramps/plugins/lib/libpersonview.py,
gramps/plugins/view/fanchartview.py,
gramps/plugins/view/geoclose.py,
gramps/plugins/view/geofamclose.py,
gramps/plugins/view/geomoves.py, gramps/plugins/view/geoperson.py,
gramps/plugins/view/pedigreeview.py,
gramps/plugins/view/relview.py, po/ar.po, po/bg.po, po/br.po,
po/ca.po, po/cs.po, po/da.po, po/de.po, po/el.po, po/en_GB.po,
po/eo.po, po/es.po, po/fi.po, po/fr.po, po/ga.po, po/gramps.pot,
po/he.po, po/hr.po, po/hu.po, po/is.po, po/it.po, po/ja.po,
po/lt.po, po/mk.po, po/nb.po, po/nl.po, po/nn.po, po/pl.po,
po/pt_BR.po, po/pt_PT.po, po/ro.po, po/ru.po, po/sk.po, po/sl.po,
po/sq.po, po/sr.po, po/sr_Latn.po, po/sv.po, po/ta.po, po/tr.po,
po/uk.po, po/vi.po, po/zh_CN.po, po/zh_HK.po, po/zh_TW.po: Fix bug
0011078: 'Default person' instead of 'Home person' - modified button hints - modified filter rules names and descriptions - modified .pot and .po files - substituted 'home person' with 'Home Person'
* .github/workflows/gramps-ci.yml, setup.py: Use GitHub Actions to
run continuous integration checks
2020-07-07 Leonhaeuser <mirko@leonhaeuser.de>
2022-01-27 John Ralls <jralls@ceridwen.us>
* po/de.po: Germen fixed translation error of Media:
* mac/gramps.modules: Update Exiv2, PYExiv2, and json-glib.
2020-07-04 Leonhaeuser <mirko@leonhaeuser.de>
2021-08-15 Ross Gammon <rossgammon@debian.org>
* po/de.po: Fix typo
* debian/changelog, debian/copyright,
debian/patches/fix-probably_alive_test.patch,
debian/patches/series, debian/watch: Update Debian folder for Gramps
5.1.4 release
2020-07-01 Leonhaeuser <mirko@leonhaeuser.de>
2022-01-25 pehlm <github1@m.pekholm.org>
* po/de.po: update German translation
* po/sv.po: Minor update of Swedish translation
2020-02-16 Nick Hall <nick-h@gramps-project.org>
2022-01-04 Tian Shixiong <tiansworld@fedoraproject.org>
* gramps/gui/editors/editeventref.py: Use event attribute types in
the event reference editor In the event reference editor, custom event attribute types should
be used rather than the default person attribute types. Fixes #11576.
* po/zh_CN.po: Minor update to zh_CN translation
2020-04-23 SNoiraud <serge.noiraud@laposte.net>
2021-11-03 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* gramps/gui/configure.py, po/ar.po, po/bg.po, po/br.po, po/ca.po,
po/cs.po, po/da.po, po/de.po, po/el.po, po/en_GB.po, po/eo.po,
po/es.po, po/fi.po, po/fr.po, po/ga.po, po/he.po, po/hr.po,
po/hu.po, po/is.po, po/it.po, po/ja.po, po/lt.po, po/mk.po,
po/nb.po, po/nl.po, po/nn.po, po/pl.po, po/pt_BR.po, po/pt_PT.po,
po/ro.po, po/ru.po, po/sk.po, po/sl.po, po/sq.po, po/sr.po,
po/sr_Latn.po, po/sv.po, po/ta.po, po/tr.po, po/uk.po, po/vi.po,
po/zh_CN.po, po/zh_HK.po, po/zh_TW.po: Fix typo in gui/configure.py
and translation files Fixes #11665
* po/de.po: small German translation fixes
2020-05-07 prculley <paulr2787@gmail.com>
2021-11-01 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* gramps/plugins/tool/verify.py: Fix Verify tool bug caused by bad
change in GObject introspection Fixes: #11708
* po/de.po: Fixed German translation error of "Character set
encoding"
2020-06-22 pehlm <par.ekholm@pekholm.org>
2021-10-25 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* po/sv.po: A little adjustment to Swedish translation
* po/de.po: Fixed German translation error of "Graph generations"
2020-06-21 pehlm <par.ekholm@pekholm.org>
2021-10-16 John Ralls <jralls@ceridwen.us>
* po/sv.po: Updates to Swedish translation
* mac/Info.plist: Repackage Gramps.app to work with macOS 12.
2020-06-20 Nick Hall <nick-h@gramps-project.org>
2021-10-16 John Ralls <jralls@ceridwen.us>
* gramps/gen/utils/grampslocale.py: Remove Japanese from the
incomplete translations Japanese now has a coverage of 83.2% which is above the 70%
threshold.
* mac/gramps.bundle: [macOS]Add entitlements path to bundle-file so
Gramps.app is signed with it.
2020-06-20 Megumi Sakata <megumi.sakata.k@gmail.com>
2021-09-19 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* po/ja.po: Update Japanese translation
* po/de.po: Fixed German translation error of "filter person"
2020-06-07 Serge Noiraud <Serge.Noiraud@laposte.net>
2021-08-30 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* gramps/plugins/webreport/person.py,
gramps/plugins/webreport/place.py: Navweb: incorrect link type for
osm css files (#1071) Fixes #011787
* po/de.po: fixed error in German translation found during manual
translation also fixed in master
2020-06-07 prculley <paulr2787@gmail.com>
2021-08-11 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* data/tests/imp_sample.gramps: Fix import test for change cause by
commit a2c66417 which was Fix GEDCOM import for bad source title
when sources precede references.
* po/de.po: fixed German translation of 'Descendant families of'
already done in trunk Weblate
2020-06-07 prculley <paulr2787@gmail.com>
2021-08-10 John Ralls <jralls@ceridwen.us>
* : commit e614a79cef213f57552ceb566eb2d294c9435231 Author: vantu5z
<vantu5z@mail.ru> Date: Tue Apr 28 15:23:25 2020 +0300
* mac/gramps.modules, mac/patches/pyfontconfig-curexc.patch: Add
python-fontconfig to the macOS build. Needed to enable using genealogical symbols.
2020-03-16 prculley <paulr2787@gmail.com>
2021-07-29 John Ralls <jralls@ceridwen.us>
* gramps/gen/plug/menu/_enumeratedlist.py: Fix some reports for CLI
where warning message about Value not found Fixes #11621
* mac/Info.plist, mac/gramps.bundle: Inlude fontconfig's etc/fonts
in macOS app bundle. Graphviz now uses fontconfig to find its fonts. Fixes #12370
2020-03-16 prculley <paulr2787@gmail.com>
2021-07-26 John Ralls <jralls@ceridwen.us>
* gramps/cli/plug/__init__.py: Fix Genealogy Tree reports for crash
in CLI Fixes #11621
* mac/Info.plist, mac/gramps.bundle, mac/gramps.modules,
mac/gramps_launcher.py: Bundle release of Gramps 5.1.4.
2020-04-10 prculley <paulr2787@gmail.com>
2021-07-26 Nick Hall <nick-h@gramps-project.org>
* gramps/gui/views/treemodels/treebasemodel.py: Add uistate to tree
views filter initialization Fixes #11657
* Bump to 5.1.5
2020-04-04 prculley <paulr2787@gmail.com>
* gramps/plugins/lib/libgedcom.py: Fix GEDCOM import for bad source
title when sources precede references. Fixes #11610
2020-03-31 prculley <paulr2787@gmail.com>
* gramps/plugins/tool/removeunused.py: Fix RemoveUnused tool for
crash caused by Gtk introspection bug Fixes #11634
2020-03-30 prculley <paulr2787@gmail.com>
* gramps/gen/plug/_manager.py, gramps/gen/plug/_pluginreg.py,
gramps/gui/pluginmanager.py,
gramps/plugins/lib/maps/messagelayer.py: Fix some Python syntax
errors that appear in v3.8.x Fixes #11641
2020-03-26 SNoiraud <serge.noiraud@laposte.net>
* gramps/gui/editors/displaytabs/eventrefmodel.py,
gramps/plugins/gramplet/events.py: Age: test if the death is the
same day as birth
2020-03-25 SNoiraud <serge.noiraud@laposte.net>
* gramps/gui/editors/displaytabs/eventrefmodel.py,
gramps/plugins/gramplet/events.py: Suppress age = 0 days in events
list If the reference event date is equal to the event date, don't show
the age except if the date is estimated, calculated, ... Fixes #0007745
2020-03-23 prculley <paulr2787@gmail.com>
* gramps/gui/viewmanager.py: Fix Dashboard Gramplets to update
during db close when not shown Fixes #11632
2020-03-14 prculley <paulr2787@gmail.com>
* gramps/grampsapp.py: Fix Windows GUI mode startup for crash with
some languages Fixes: #11612. #11490, #11518, #9179, #9201, #9266
2020-03-07 prculley <paulr2787@gmail.com>
* gramps/gen/db/generic.py, gramps/plugins/db/dbapi/dbapi.py: Fix
dbapi to support "Abandon Changes & Quit" feature Fixes #11599
2020-02-08 prculley <paulr2787@gmail.com>
* gramps/gen/lib/grampstype.py: Fix GrampsType for comparison bug
with empty string as one value Fixes #11563
2020-05-07 prculley <paulr2787@gmail.com>
* gramps/plugins/tool/verify.py: Fix Verify tool bug caused by bad
change in GObject introspection Fixes: #11708
2020-04-24 niememat <niememat@gmail.com>
* po/fi.po: Fix translation in Finnish
2020-04-18 Joan Creus <joan.creusandreu@gmail.com>
* po/ca.po: Updating Catalan translation
2020-04-18 Joan Creus <joan.creusandreu@gmail.com>
* po/ca.po: Updating Catalan translation
2020-01-20 prculley <paulr2787@gmail.com>
* gramps/gen/datehandler/__init__.py: Fix Date Display so that it
uses LC_TIME if defined Fixes #11230
2020-01-12 prculley <paulr2787@gmail.com>
* gramps/gen/lib/styledtext.py,
gramps/gen/lib/test/styledtext_test.py: Fix StyledText so serialize
will match for style list order changes Fixes #11529
2020-01-08 prculley <paulr2787@gmail.com>
* gramps/gui/managedwindow.py: Try to fix exceptions on
ManagedWindow close Issues #10252, #10642, #10821, #11163, #11440, #11476, #11482,
#11508
2020-04-08 John Ralls <jralls@ceridwen.us>
* : Merge John Ralls's 'bug11639' into maintenance/gramps51
2020-04-04 Serge Noiraud <Serge.Noiraud@laposte.net>
* gramps/plugins/tool/verify.py: Same date of birth and death gives
an error. (#1011) Fixes #011553
2020-04-04 Serge Noiraud <Serge.Noiraud@laposte.net>
* gramps/plugins/lib/maps/osmgps.py: Geography: add a popup for a
bad tiles path (#1025)
2020-04-04 Serge Noiraud <Serge.Noiraud@laposte.net>
* gramps/plugins/webreport/narrativeweb.py: Narweb: image size limit
doesn't match tooltip (#1004) Fixes #011536
2020-04-01 John Ralls <jralls@ceridwen.us>
* gramps/plugins/db/dbapi/sqlite.py: Protect SQLite3 locale from
old-style Unicode locale characters. PySQLite3 requires that collation names have only ascii
alphanumerics and _. ICU locales use old-style Unicode specifiers
and passing them to create_locale will raise an exception. Translate
those characters into underscores. Fixes #11639
2020-03-26 vantu5z <vantu5z@mail.ru>
* po/ru.po: update Russian translation
2020-03-25 Translator5 <Translator5@users.noreply.github.com>
* po/ru.po: [Language: Russian] Maintenance/gramps51 (#1027) * some Russian translations updates Новый перевод для неких случаев, но
улучшающие понимание и выглядит
более уместно. Также применены
русские переводы слов, которые
использовали до того англицизмы
2020-03-03 Joan Creus <joan.creusandreu@gmail.com>
* po/ca.po: Updating Catalan translation
2020-02-29 Joan Creus <joan.creusandreu@gmail.com>
* po/ca.po: Updating Catalan translation
2020-02-25 Bernard Banko <beernarrd@gmail.com>
* po/sl.po: V&O changed to PZV to avoid ampersand
2020-02-07 pehlm <par.ekholm@pekholm.org>
* po/sv.po: Minor update to Swedish translation
2020-01-07 prculley <paulr2787@gmail.com>
* data/tests/exp_sample_ged.ged,
gramps/plugins/export/exportgedcom.py: Fix GEDCOM export of
estimated/calculated dates with modifers Fixes #11513
2020-01-11 Ross Gammon <rossgammon@mail.dk>
* debian/changelog: New debian release - update changelog
2020-01-31 vantu5z <vantu5z@mail.ru>
* po/ru.po: update Russian translation
2020-01-26 Bernard Banko <beernarrd@gmail.com>
* po/sl.po: Slovenian translation update
2020-01-23 prculley <paulr2787@gmail.com>
* po/ru.po: Fix typo in Russian translation
2020-01-21 système <romjerome@users.noreply.github.com>
* po/fr.po: typos in french translation #11534 #10534
2020-01-21 Fedik <getthesite@gmail.com>
* po/uk.po: Ukrainian translation update
2020-01-11 John Ralls <jralls@ceridwen.us>
* mac/Info.plist, mac/gramps.modules: Mac release of 5.1.2.
2020-01-10 prculley <paulr2787@gmail.com>
* gramps/gen/const.py, gramps/gui/grampsgui.py, gramps/version.py:
Bump to v5.1.3
+1 -106
View File
@@ -1,108 +1,3 @@
2022-02-05
Version 5.1.5
* Update translations: de, pl, sv, zh_CN.
* Remove Travis CI configuration.
* Fix badges in README file.
* Update copyright date.
* Strange behavior for the scrollbar in the bottombar. Fixes #12438.
* Fix place object element order in DTD and RNG schemas. Element placeobj
content does not follow the DTD and RNG, expecting (ptitle? , pname+).
Fixes #12500.
* Solve InterpolationSyntaxError if "%" in a string. The grampletpane module
saves data in a config file for all the gramplets added in the dashboard. The
python configparser module doesn't like if we have a "%" character in a string.
Fixes #12423.
* '<' not supported between 2 instances of IndexMark. Fixes #12467.
* Remove debug statements in unit tests.
* Fix negative Span when dates are not Gregorian. Fixes #12525.
* Incorrect grouping if no ma/patronymic surname.
* Group As override is ignored for ma/patronymic surnames. Fixes #12395.
See: https://gramps.discourse.group/t/patronymic-and-matronymic-name/1684/5
* Add comments for the lat-lon field of editplace.
* Place editor, lat and long text are swapped. Fixes #12374.
* Fix Statusbar progress being shown before use. Fixes #12373.
* Fix exception when removing a group name in Sqlite db when group name is
already missing. Fixes #12367.
* Fix error when trying to close name editor during long name group mapping
view rebuild. Fixes #12328.
* OsmGpsMap-CRITICAL: Map source setup called twice Fixes #12352.
* Fix probably alive function unit test.
* Use GitHub Actions to run continuous integration checks.
* Mac:
* Update Exiv2, PYExiv2, and json-glib.
* Repackage Gramps.app to work with macOS 12.
* Add entitlements path to bundle-file so Gramps.app is signed with it.
* Add python-fontconfig to the macOS build. Needed to enable using
genealogical symbols.
* Inlude fontconfig's etc/fonts in macOS app bundle. Graphviz now uses
fontconfig to find its fonts. Fixes #12370.
2021-07-26
Version 5.1.4
* Update translations: cs, de, es, fi, fr, hu, nl, pt_BR, ru, sv, zh_CN.
* Update copyright date.
* Fix probably alive if death without date.
* Place editor, copy and paste of lat and long text no longer
auto-populating latitude and longitude fields.
* Fix for crash when changing views if part of toolbar is not shown because
of a small screen when changing views.
* Fix bottombar always showing after restart, even when not wanted.
* Always use filtered collation names. Store the Sqlite3 collations in the
__collations array to short-circuit re-creation.
* Fix issue with German relation calculator fixed issue when more than 24
generations between the two people.
* Add file logging for macOS. When Gramps is launched from macOS's
LaunchServices it doesn't have a sys.stderr attached so the default stream
logger goes to /dev/null. Use a FileHandler in tht case, writing the log
to $TMPDIR/gramps-pid.log. This will help particularly in analyzing
crashes where python shuts down as there's no crash report in that case.
* Fix libplaceview to avoid exception when mapservice is no longer present.
* Fix References Gramplet for inadequate updates when other objects change.
* Fix geofamily crash if a family has no father.
* Home Person setting does not convey in a merge.
* Fix CSV export of view to only put single CR character.
* Add Media filter rule 'HasMedia' to list of media rules for editor.
* Need to set locale.textdomain under linux. _build_popup_ui() ignores
translated strings without locale.textdomain set.
* Change category of 'MatchesEventFilter'.
* Fix issue where separator between top and bottom bar of View creeps up.
* Fix Locations Gramplet (Enclosed by) to properly display certain nested
places when the smallest place has undated enclosure and larger places are
dated.
* Fix Family Tree Manager drop error on Windows.
* Fix exportvcalendar error is "is not" with a literal (Python 3.8 issue)
* Handle not found when copying source from the citation tree.
* Fix call to 'file' function, which doesn't exist in Python3.
* Fix write_lock_file exception when USERNAME is missing.
* Fix EditPlace so Tab key doesn't get stuck on Private icon.
* Fix Tag report for places that have a hierarchy.
* Fix exception when cancelling out of a db upgrade in GUI.
* Icon file changes:
* Install 128x128 and 256x256 application icons.
* Install MIME type icons into the hicolor theme.
* Remove gnome-mime- prefix from icon filenames.
* Install application icons into correct directories.
* Fix error in Birthday and Anniversary report. Fixes an error triggered
when the first person_handle in the list has a death event, but no birth
event and does not have family relationships. These conditions lead to
the local variable short_name not being declared before it comes time to
process death events.
* Fix graphdoc to properly escape characters in ids for Graphviz.
* Replace inspect.stack() with inspect.currentframe().
Works around https://bugs.python.org/issue12920 which causes every
call to inspect.trace() to fail because __main__ is always the
starting point.
* Fix crash sorting on columns in Selectors with TreeModels.
* Fix progress bar freeze due to changes in Gtk.
* Fix svgdrawdoc for text containing XML invalid characters.
* Mac:
* Update PyICU to 2.7.2 in macOS build.
* Update dependencies. Includes moving berkeleydb and pybsddb over from
gtk-osx.
* Further changes for bundling with Python 3.8.
* Set __file__ if gramps_launcher.py is run as __main__.
* Add geocode-glib to build.
2020-08-11
Version 5.1.3
* Update ca, de, fi, fr, ja, pl, ru, sl, sv, uk, zh_CN translation
@@ -199,7 +94,7 @@ Version 5.1.2
* [Tree doc Tex] fix typo on custom size
* Fix duplicated "døde døde" Norwegion Translation for libnarrate
* Fix up Event Editors Place display for bidi text with Gramps ID
* Fix issues with RTL languages and LAT/LONG
* Fix issues with RTL languages and LAT/LONG
* Fix display of GPS coordinates in Places view for RTL languages
* Fix place editor lat/long entry for RTL languages
* Fix GEDCOM export to avoid translated GrampsType strings
+3 -6
View File
@@ -1,8 +1,5 @@
The Gramps Project ( https://gramps-project.org )
The Gramps Project ( https://gramps-project.org ) [![Build Status](https://travis-ci.org/gramps-project/gramps.svg?branch=master)](https://travis-ci.org/gramps-project/gramps)[![codecov.io](https://codecov.io/github/gramps-project/gramps/coverage.svg?branch=master)](https://codecov.io/github/gramps-project/gramps?branch=master)
===================
[![GitHub CI](https://github.com/gramps-project/gramps/actions/workflows/gramps-ci.yml/badge.svg?event=push&branch=maintenance/gramps51)](https://github.com/gramps-project/gramps/actions/workflows/gramps-ci.yml?query=branch%3Amaintenance%2Fgramps51)
[![codecov.io](https://codecov.io/github/gramps-project/gramps/coverage.svg?branch=maintenance/gramps51)](https://app.codecov.io/gh/gramps-project/gramps/branch/maintenance%2Fgramps51)
We strive to produce a genealogy program that is both intuitive for hobbyists and feature-complete for professional genealogists.
Please read the **COPYING** file first.
@@ -66,7 +63,7 @@ The following packages are **STRONGLY RECOMMENDED** to be installed:
sorting is done through built-in libraries. PyICU is
fairly widely available through the package managers of
distributions. See http://pyicu.osafoundation.org/
(These are Python bindings for the ICU package.
(These are Python bindings for the ICU package.
https://pypi.python.org/pypi/PyICU/)
* **Ghostscript**
@@ -75,7 +72,7 @@ The following packages are **STRONGLY RECOMMENDED** to be installed:
The following packages are optional:
------------------------------------
* **gtkspell**
* **gtkspell**
Enable spell checking in the notes. Gtkspell depends on
enchant. A version of gtkspell with gobject introspection
+1 -1
View File
@@ -251,7 +251,7 @@ PLACES
<!ELEMENT places (placeobj)*>
<!ELEMENT placeobj (ptitle?, code?, pname+, coord?, placeref*, location*,
<!ELEMENT placeobj (ptitle?, pname+, code?, coord?, placeref*, location*,
objref*, url*, noteref*, citationref*, tagref*)>
<!ATTLIST placeobj
id CDATA #IMPLIED
+1 -1
View File
@@ -453,10 +453,10 @@
<ref name="primary-object"/>
<attribute name="type"><text/></attribute>
<optional><element name="ptitle"><text/></element></optional>
<optional><element name="code"><text/></element></optional>
<oneOrMore><element name="pname">
<ref name="placename-content"/>
</element></oneOrMore>
<optional><element name="code"><text/></element></optional>
<optional><element name="coord">
<attribute name="long"><text/></attribute>
<attribute name="lat"><text/></attribute>
-9
View File
@@ -1,12 +1,3 @@
gramps (5.1.4-1) unstable; urgency=medium
* New release
* Add new copyrights
* Update watch file
* Patch probably alive test to fix FTBFS
-- Ross Gammon <rossgammon@debian.org> Sun, 15 Aug 2021 18:31:56 +0200
gramps (5.1.3-1) focal; urgency=medium
* New release
+1 -3
View File
@@ -3,7 +3,7 @@ Upstream-Name: Gramps
Source: https://gramps-project.org
Files: *
Copyright: 2000-2007, Alex Roitman
Copyright: 2000-2007, 2020 Alex Roitman
2000-2002, Bruce J. DeGrasse
2000-2008, Donald N. Allingham
2000-2007, Martin Hawlisch
@@ -92,8 +92,6 @@ Copyright: 2000-2007, Alex Roitman
2018, Robin van der Vliet
2018, Theo van Rijn
2019, Matthias Kemmer
2020, Jan Sparreboom
2021, Mirko Leonhaeuser
License: GPL-2+
Files: debian/*
-22
View File
@@ -1,22 +0,0 @@
Description: Fix probably alive test
The probably alive funtion was fixed just prior to the Gramps 5.1.4
release. It appears the relevant unit test was not updated to match.
The relevant commit:
https://github.com/gramps-project/gramps/commit/a685b96f700dcfc6b953413cb3adc8be61d87438
Author: Ross Gammon <rossgammon@debian.org>
Forwarded: no
Applied-Upstream: no
Last-Update: 2021-08-09
---
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
--- a/gramps/gen/filters/rules/test/person_rules_test.py
+++ b/gramps/gen/filters/rules/test/person_rules_test.py
@@ -347,7 +347,7 @@
"""
rule = ProbablyAlive(['1900'])
res = self.filter_with_rule(rule)
- self.assertEqual(len(res), 766)
+ self.assertEqual(len(res), 733)
def test_RegExpName(self):
"""
-1
View File
@@ -1 +0,0 @@
fix-probably_alive_test.patch
+5 -3
View File
@@ -1,6 +1,8 @@
version=4
version=3
opts=\
filenamemangle=s/.+\/v?(\d\S+)\.tar\.gz/gramps-project-$1\.tar\.gz/,\
dversionmangle=s/(\~|\+)(debian|dfsg|ds|deb)(\.\d+)?$//,\
filenamemangle=s/.+\/v?(\d\S*)\.tar\.gz/$1\.tar\.gz/,\
repacksuffix=~dfsg \
https://github.com/gramps-project/gramps/tags \
.*/v?(\d\S+)\.tar\.gz
.*/archive/v?([\d\.]+).tar.gz
+2 -2
View File
@@ -145,7 +145,7 @@ sys.path.insert(0, ROOT_DIR)
git_revision = get_git_revision(ROOT_DIR).replace('\n', '')
if sys.platform == 'win32' and git_revision == "":
git_revision = get_git_revision(os.path.split(ROOT_DIR)[1])
#VERSION += git_revision
VERSION += git_revision
#VERSION += "-1"
#
@@ -225,7 +225,7 @@ GTK_GETTEXT_DOMAIN = 'gtk30'
#
#-------------------------------------------------------------------------
COPYRIGHT_MSG = "© 2001-2006 Donald N. Allingham\n" \
"© 2007-2022 The Gramps Developers"
"© 2007-2020 The Gramps Developers"
COMMENTS = _("Gramps\n (Genealogical Research and Analysis "
"Management Programming System)\n"
"is a personal genealogy program.")
+25 -27
View File
@@ -83,37 +83,35 @@ class DateParserNL(DateParser):
month_to_int["xbris"] = 12
modifier_to_int = {
'voor' : Date.MOD_BEFORE,
'na' : Date.MOD_AFTER,
'ca.' : Date.MOD_ABOUT,
'circa' : Date.MOD_ABOUT,
'om' : Date.MOD_ABOUT,
'omstreeks' : Date.MOD_ABOUT,
'ongeveer' : Date.MOD_ABOUT,
'rond' : Date.MOD_ABOUT,
'tegen' : Date.MOD_ABOUT,
'voor' : Date.MOD_BEFORE,
'na' : Date.MOD_AFTER,
'tegen' : Date.MOD_ABOUT,
'om' : Date.MOD_ABOUT,
'rond' : Date.MOD_ABOUT,
'circa' : Date.MOD_ABOUT,
'ca.' : Date.MOD_ABOUT,
}
calendar_to_int = {
'gregoriaans' : Date.CAL_GREGORIAN,
'greg.' : Date.CAL_GREGORIAN,
'juliaans' : Date.CAL_JULIAN,
'jul.' : Date.CAL_JULIAN,
'hebreeuws' : Date.CAL_HEBREW,
'hebr.' : Date.CAL_HEBREW,
'islamitisch' : Date.CAL_ISLAMIC,
'isl.' : Date.CAL_ISLAMIC,
'frans republiekeins' : Date.CAL_FRENCH,
'fran.' : Date.CAL_FRENCH,
'persisch' : Date.CAL_PERSIAN,
'zweeds' : Date.CAL_SWEDISH,
'z' : Date.CAL_SWEDISH,
'gregoriaans' : Date.CAL_GREGORIAN,
'greg.' : Date.CAL_GREGORIAN,
'juliaans' : Date.CAL_JULIAN,
'jul.' : Date.CAL_JULIAN,
'hebreeuws' : Date.CAL_HEBREW,
'hebr.' : Date.CAL_HEBREW,
'islamitisch' : Date.CAL_ISLAMIC,
'isl.' : Date.CAL_ISLAMIC,
'franse republiek': Date.CAL_FRENCH,
'fran.' : Date.CAL_FRENCH,
'persisch' : Date.CAL_PERSIAN,
'zweeds' : Date.CAL_SWEDISH,
'z' : Date.CAL_SWEDISH,
}
quality_to_int = {
'geschat' : Date.QUAL_ESTIMATED,
'geschat' : Date.QUAL_ESTIMATED,
'gesch.' : Date.QUAL_ESTIMATED,
'berekend' : Date.QUAL_CALCULATED,
'berekend' : Date.QUAL_CALCULATED,
'ber.' : Date.QUAL_CALCULATED,
}
@@ -149,17 +147,17 @@ class DateDisplayNL(DateDisplay):
calendar = (
"", "juliaans", "hebreeuws",
"frans republikeins", "persisch", "islamitisch",
"franse republiek", "persisch", "islamitisch",
"zweeds" )
_mod_str = ("", "voor ", "na ", "omstreeks ", "", "", "")
_mod_str = ("", "voor ", "na ", "rond ", "", "", "")
_qual_str = ("", "geschat ", "berekend ")
_bce_str = "%s v. Chr."
formats = (
"JJJJ-MM-DD (ISO)", "Numeriek DD/MM/JJJJ", "Maand Dag, Jaar",
"JJJJ-MM-DD (ISO)", "Numerisch DD/MM/JJ", "Maand Dag, Jaar",
"Mnd. Dag Jaar", "Dag Maand Jaar", "Dag Mnd. Jaar"
)
# this definition must agree with its "_display_gregorian" method
+2 -21
View File
@@ -999,8 +999,6 @@ class NameDisplay:
1. if group name is defined, use that
2. if group name is defined for the primary surname, use that
3. use primary surname itself otherwise
4. if no primary surname, do we have a ma/patronymic surname ?
in this case, group name will be the ma/patronymic name.
:param pn: raw unserialized data of name
:type pn: tuple
@@ -1009,25 +1007,8 @@ class NameDisplay:
"""
if pn[_GROUP]:
return pn[_GROUP]
name = pn[_GROUP]
if not name:
# if we have no primary surname, perhaps we have a
# patronymic/matronynic name ?
srnme = pn[_ORIGINPATRO]
surname = []
for _surname in srnme:
if (_surname[_TYPE_IN_LIST][0] == _ORIGINPATRO
or _surname[_TYPE_IN_LIST][0] == _ORIGINMATRO):
# Yes, we have one.
surname = [_surname]
# name1 is the ma/patronymic name.
name1 = _raw_patro_surname_only(surname)
if name1 and len(srnme) == 1:
name = db.get_name_group_mapping(name1)
if not name:
name = db.get_name_group_mapping(_raw_primary_surname_only(
pn[_SURNAME_LIST]))
return name
return db.get_name_group_mapping(_raw_primary_surname_only(
pn[_SURNAME_LIST]))
def _make_fn(self, format_str, d, args):
"""
@@ -51,7 +51,6 @@ editor_rule_list = [
MediaPrivate,
MatchesFilter,
MatchesSourceConfidence,
HasMedia,
HasAttribute,
ChangedSince,
HasTag,
@@ -98,10 +98,10 @@ class BaseTest(unittest.TestCase):
filter_.set_invert(invert)
stime = perf_counter()
results = filter_.apply(self.db)
# if __debug__:
# frame = inspect.currentframe()
# rulename = frame.f_back.f_code.co_name
# print("%s: %.2f\n" % (rulename, perf_counter() - stime))
if __debug__:
frame = inspect.currentframe()
rulename = frame.f_back.f_code.co_name
print("%s: %.2f\n" % (rulename, perf_counter() - stime))
return set(results)
def test_Complex_1(self):
@@ -347,7 +347,7 @@ class BaseTest(unittest.TestCase):
"""
rule = ProbablyAlive(['1900'])
res = self.filter_with_rule(rule)
self.assertEqual(len(res), 733)
self.assertEqual(len(res), 766)
def test_RegExpName(self):
"""
+4 -4
View File
@@ -77,14 +77,14 @@ class Span:
self.precision = 2
self.negative = False
if self.valid:
if self.date1.sortval < self.date2.sortval:
self.date1 = date2
self.date2 = date1
self.negative = True
if self.date1.calendar != Date.CAL_GREGORIAN:
self.date1 = self.date1.to_calendar("gregorian")
if self.date2.calendar != Date.CAL_GREGORIAN:
self.date2 = self.date2.to_calendar("gregorian")
if self.date1.sortval < self.date2.sortval:
self.date1 = date2
self.date2 = date1
self.negative = True
if self.date1.get_modifier() == Date.MOD_NONE:
if self.date2.get_modifier() == Date.MOD_NONE:
val = self.date1.sortval - self.date2.sortval
+1 -31
View File
@@ -38,7 +38,7 @@ from ...datehandler import get_date_formats, set_format
from ...datehandler import parser as _dp
from ...datehandler import displayer as _dd
from ...datehandler._datedisplay import DateDisplayEn
from ...lib.date import Date, DateError, Today, calendar_has_fixed_newyear, Span
from ...lib.date import Date, DateError, Today, calendar_has_fixed_newyear
date_tests = {}
@@ -432,36 +432,6 @@ class ArithmeticDateTest(BaseDateTest):
self.assertEqual(val1, val2,
"'%s' should be '%s' but was '%s'" % (exp1, val2, val1))
#-------------------------------------------------------------------------
#
# SpanTest
#
#-------------------------------------------------------------------------
class SpanTest(BaseDateTest):
"""
Test spans.
"""
tests = [((2000, 1, 31), (2000, 1, 1), 30),
((1799, 11, 19), (8, 2, 18, Date.CAL_FRENCH), 10),
((8, 2, 18, Date.CAL_FRENCH), (1799, 11, 4), 5),
((8, 2, 18, Date.CAL_FRENCH), (3, 2, 9, Date.CAL_FRENCH), 1836)]
def test_evaluate(self):
for value1, value2, duration in self.tests:
date1 = self._get_date(value1)
date2 = self._get_date(value2)
span1 = Span(date1, date2)
self.assertEqual(int(span1), duration)
span2 = Span(date2, date1)
self.assertEqual(int(span2), -duration)
def _get_date(self, value):
date = Date()
if len(value) == 4:
date.set_calendar(value[3])
date.set_yr_mon_day(value[0], value[1], value[2])
return date
#-------------------------------------------------------------------------
#
# SwedishDateTest
+9 -14
View File
@@ -31,8 +31,8 @@ Provide merge capabilities for persons.
#-------------------------------------------------------------------------
from ..db import DbTxn
from ..const import GRAMPS_LOCALE as glocale
from ..errors import MergeError
_ = glocale.translation.sgettext
from ..errors import MergeError
#-------------------------------------------------------------------------
#
@@ -49,12 +49,11 @@ class MergePersonQuery:
self.titanic = titanic
if self.check_for_spouse(self.phoenix, self.titanic):
raise MergeError(_("Spouses cannot be merged. To merge these "
"people, you must first break the relationship"
" between them."))
"people, you must first break the relationship between them."))
if self.check_for_child(self.phoenix, self.titanic):
raise MergeError(_("A parent and child cannot be merged. To merge "
"these people, you must first break the relatio"
"nship between them."))
"these people, you must first break the relationship between "
"them."))
def check_for_spouse(self, person1, person2):
"""Return if person1 and person2 are spouses of eachother."""
@@ -81,12 +80,12 @@ class MergePersonQuery:
main_family.merge(family)
for childref in family.get_child_ref_list():
child = self.database.get_person_from_handle(
childref.get_reference_handle())
childref.get_reference_handle())
if main_family_handle in child.parent_family_list:
child.remove_handle_references('Family', [family_handle])
else:
child.replace_handle_reference('Family', family_handle,
main_family_handle)
main_family_handle)
self.database.commit_person(child, trans)
if self.phoenix:
self.phoenix.remove_family_handle(family_handle)
@@ -144,8 +143,7 @@ class MergePersonQuery:
for family_handle in self.phoenix.get_parent_family_handle_list():
family = self.database.get_family_from_handle(family_handle)
if family.has_handle_reference('Person', old_handle):
family.replace_handle_reference('Person', old_handle,
new_handle)
family.replace_handle_reference('Person', old_handle,new_handle)
self.database.commit_family(family, trans)
family_merge_guard = False
@@ -184,10 +182,7 @@ class MergePersonQuery:
self.database.commit_family(family, trans)
parent_list.append(parents)
hp_hdl = self.database.get_default_handle()
if (hp_hdl in (self.phoenix.get_handle(), self.titanic.get_handle())
and hp_hdl != self.phoenix.get_handle()):
self.database.set_default_person_handle(self.phoenix.get_handle())
if self.database.get_default_handle() == old_handle:
self.database.set_default_person_handle(None)
self.database.remove_person(old_handle, trans)
return family_merge_ok
-2
View File
@@ -142,8 +142,6 @@ class ProbablyAlive:
# person died more than MAX after current year
if death_date.is_valid():
birth_date = death_date.copy_offset_ymd(year=-self.MAX_AGE_PROB_ALIVE)
else:
birth_date = death_date
explain = _("death date")
if not death_date and birth_date:
+1 -1
View File
@@ -49,7 +49,7 @@ class CSVTab(TabbedDoc):
else:
self.filename = filename
self.f = open(self.filename, "w", newline='',
self.f = open(self.filename, "w",
encoding='utf_8_sig' if win() else 'utf_8')
self.writer = csv.writer(self.f)
-2
View File
@@ -525,8 +525,6 @@ class GrampsLocale:
# with locale instead of gettext. Win32 doesn't support bindtextdomain.
if self.localedir:
if not sys.platform == 'win32':
# bug12278, _build_popup_ui() under linux and macOS
locale.textdomain(self.localedomain)
locale.bindtextdomain(self.localedomain, self.localedir)
else:
self._win_bindtextdomain(self.localedomain.encode('utf-8'),
+8 -25
View File
@@ -127,32 +127,15 @@ if win():
elif not os.path.isdir(HOME_DIR):
os.makedirs(HOME_DIR)
sys.stdout = sys.stderr = open(logfile, "w", encoding='utf-8')
# macOS sets stderr to /dev/null when running without a terminal,
# e.g. if Gramps.app is lauched by double-clicking on it in
# finder. Write to a file instead.
if mac() and not sys.stdin.isatty():
from tempfile import gettempdir
stderrh = logging.StreamHandler(sys.stderr)
stderrh.setFormatter(form)
stderrh.setLevel(logging.DEBUG)
log_file_name = 'gramps-' + str(os.getpid()) + '.log'
log_file_path = os.path.join(gettempdir(), log_file_name)
log_file_handler = logging.FileHandler(log_file_path, mode='a',
encoding='utf-8')
log_file_handler.setFormatter(form)
log_file_handler.setLevel(logging.DEBUG)
logger = logging.getLogger()
logger.setLevel(logging.WARNING)
logger.addHandler(log_file_handler)
else:
stderrh = logging.StreamHandler(sys.stderr)
stderrh.setFormatter(form)
stderrh.setLevel(logging.DEBUG)
# Setup the base level logger, this one gets
# everything.
l = logging.getLogger()
l.setLevel(logging.WARNING)
l.addHandler(stderrh)
# Setup the base level logger, this one gets
# everything.
l = logging.getLogger()
l.setLevel(logging.WARNING)
l.addHandler(stderrh)
def exc_hook(err_type, value, t_b):
+9
View File
@@ -39,6 +39,9 @@ from ..glade import Glade
from gramps.gen.simple import SimpleAccess
from gramps.gen.const import URL_MANUAL_SECT2
import logging
_LOG = logging.getLogger("editlink")
#-------------------------------------------------------------------------
#
# Constants
@@ -154,6 +157,12 @@ class EditLink(ManagedWindow):
def _on_new_callback(self, obj):
object_class = obj.__class__.__name__
# workaround for bug12260
try:
test = obj.handle
except AttributeError:
_LOG.warn(str(object_class))
return
self.selected.set_text(self.display_link(
object_class, "handle", obj.handle))
self.url_link.set_text("gramps://%s/%s/%s" %
+3 -9
View File
@@ -366,7 +366,6 @@ class EditName(EditSecondary):
5/ local set, not global set --> set (change local)
6/ local set, global set --> set (set to global if possible)
"""
ngm = False # name group mapping setting
closeit = True
surname = self.obj.get_primary_surname().get_surname()
group_as= self.obj.get_group_as()
@@ -389,7 +388,7 @@ class EditName(EditSecondary):
val = q.run()
if val:
#delete the grouping link on database
ngm = None # delay setting until dialog closes
self.db.set_name_group_mapping(surname, None)
self.obj.set_group_as("")
else :
closeit = False
@@ -422,9 +421,9 @@ class EditName(EditSecondary):
val = q.run()
if val:
if group_as == surname :
ngm = None # delay setting until dialog closes
self.db.set_name_group_mapping(surname, None)
else:
ngm = group_as # delay setting until dialog closes
self.db.set_name_group_mapping(surname, group_as)
self.obj.set_group_as("")
else:
if self.global_group_set :
@@ -456,15 +455,10 @@ class EditName(EditSecondary):
pass
if closeit:
db = self.db # close cleanup loses self.db, so save for later
if self.callback:
self.callback(self.obj)
self.callback = None
self.close()
# bug 12328 to avoid gui interaction during view rebuild, delay
# the rebuild until closeing this dialog
if ngm is not False:
db.set_name_group_mapping(surname, ngm)
def _cleanup_on_exit(self):
"""
+3 -34
View File
@@ -186,41 +186,10 @@ class EditPlace(EditPrimary):
self.db.readonly)
def set_latlongitude(self, value):
"""
This method is useful for directly copying the coordinates
of openstreetmap, googlemaps, and perhaps other if they
provide coordinates like it is define in conv_lat_lon
(see gramps/gen/utils/place.py)
To copy the coordinates:
- openstreetmap:
1 - choose the place where you want to save the coordinates.
2 - right click on this place
3 - select "show address"
4 - On the left side of the map, copy the coordinates of
"Result from internal"
5 - In the latlon field of the edit place window of gramps,
type <CTRL> V
- googlemap:
1 - choose the place where you want to save the coordinates.
2 - right click on this place
3 - select the coordinates at the top of the popup window.
They are automaticaly copied.
4 - In the latlon field of the edit place window of gramps,
type <CTRL> V
"""
try:
# Bug 12349, 12374
parts = value.split(', ')
if len(parts) == 2:
latitude = parts[0].strip().replace(',', '.')
longitude = parts[1].strip().replace(',', '.')
else:
latitude, longitude = value.split(',')
coma = value.index(', ')
longitude = value[coma+2:].strip().replace(',','.')
latitude = value[:coma].strip().replace(',','.')
self.longitude.set_text(longitude)
self.latitude.set_text(latitude)
self.top.get_object("lat_entry").validate(force=True)
+3 -8
View File
@@ -180,14 +180,9 @@ class EditPlaceRef(EditReference):
def set_latlongitude(self, value):
try:
# Bug 12349, 12374
parts = value.split(', ')
if len(parts) == 2:
latitude = parts[0].strip().replace(',', '.')
longitude = parts[1].strip().replace(',', '.')
else:
latitude, longitude = value.split(',')
coma = value.index(', ')
longitude = value[coma+2:].strip().replace(',','.')
latitude = value[:coma].strip().replace(',','.')
self.longitude.set_text(longitude)
self.latitude.set_text(latitude)
self.top.get_object("lat_entry").validate(force=True)
+6 -13
View File
@@ -56,7 +56,6 @@ LOG = logging.getLogger(".")
#-------------------------------------------------------------------------
from gi.repository import Gtk
from gi.repository import Gdk
from gi.repository import GLib
#-------------------------------------------------------------------------
#
@@ -291,13 +290,12 @@ class ViewManager(CLIManager):
self.hpane.add2(self.notebook)
toolbar = self.uimanager.get_widget('ToolBar')
toolbar.show_all()
self.statusbar = Statusbar()
self.statusbar.show()
vbox.pack_end(self.statusbar, False, True, 0)
vbox.pack_start(toolbar, False, True, 0)
vbox.pack_end(self.hpane, True, True, 0)
vbox.show()
vbox.show_all()
self.uistate = DisplayState(self.window, self.statusbar,
self.uimanager, self)
@@ -886,17 +884,12 @@ class ViewManager(CLIManager):
while Gtk.events_pending():
Gtk.main_iteration()
# bug 12048 this avoids crash if part of toolbar in view is not shown
# because of a small screen when changing views. Part of the Gtk code
# was deleting a toolbar object too soon; and another part of Gtk still
# had a reference.
def page_changer(self):
self.uimanager.update_menu()
self.active_page.change_page()
return False
self.uimanager.update_menu()
GLib.idle_add(page_changer, self,
priority=GLib.PRIORITY_DEFAULT_IDLE - 10)
while Gtk.events_pending():
Gtk.main_iteration()
self.active_page.change_page()
def __delete_pages(self):
"""
+2 -2
View File
@@ -165,8 +165,8 @@ class PageView(DbGUIElement, metaclass=ABCMeta):
self.widget.show_all()
self.widget.set_name('view')
self.vpane.pack1(self.widget, resize=True, shrink=False)
self.vpane.pack2(self.bottombar, resize=False, shrink=False)
self.vpane.show()
self.vpane.pack2(self.bottombar, resize=False, shrink=True)
self.vpane.show_all()
self._config.register('vpane.slider-position', -1)
self.vpane.set_position(self._config.get('vpane.slider-position'))
+4
View File
@@ -371,6 +371,10 @@ class GrampletBar(Gtk.Notebook):
"""
Add a tab to the notebook for the given gramplet.
"""
width = -1 # Allow tab width to adjust (smaller) to sidebar
height = min(int(self.uistate.screen_height() * 0.20), 400)
gramplet.set_size_request(width, height)
label = self.__create_tab_label(gramplet)
page_num = self.append_page(gramplet, label)
return page_num
-6
View File
@@ -1239,12 +1239,6 @@ class GrampletPane(Gtk.ScrolledWindow):
else:
cnt = 0
for item in base_opts["data"]:
# If we have a "%" in a string,
# escape it by writing "%%"
# to avoid InterpolationSyntaxError
# in python configparser module.
if isinstance(item, str):
item = item.replace("%", "%%")
fp.write("data[%d]=%s\n" % (cnt, item))
cnt += 1
else:
+29 -19
View File
@@ -224,16 +224,6 @@ class DBAPI(DbGeneric):
if self.transaction == None:
self.dbapi.rollback()
def _collation(self, locale):
"""
Get the adjusted collation if there is one, falling back on
the locale.collation.
"""
collation = self.dbapi.check_collation(locale)
if collation == None:
return locale.get_collation()
return collation
def transaction_begin(self, transaction):
"""
Transactions are handled automatically by the db layer.
@@ -374,9 +364,12 @@ class DBAPI(DbGeneric):
:type locale: A GrampsLocale object.
"""
if sort_handles:
if locale != glocale:
self.dbapi.check_collation(locale)
self.dbapi.execute('SELECT handle FROM person '
'ORDER BY surname '
'COLLATE "%s"' % self._collation(locale))
'COLLATE "%s"' % locale.get_collation())
else:
self.dbapi.execute("SELECT handle FROM person")
rows = self.dbapi.fetchall()
@@ -393,6 +386,9 @@ class DBAPI(DbGeneric):
:type locale: A GrampsLocale object.
"""
if sort_handles:
if locale != glocale:
self.dbapi.check_collation(locale)
sql = ('SELECT family.handle ' +
'FROM family ' +
'LEFT JOIN person AS father ' +
@@ -407,7 +403,7 @@ class DBAPI(DbGeneric):
'THEN mother.given_name ' +
'ELSE father.given_name ' +
'END) ' +
'COLLATE "%s"' % self._collation(locale))
'COLLATE "%s"' % locale.get_collation())
self.dbapi.execute(sql)
else:
self.dbapi.execute("SELECT handle FROM family")
@@ -434,9 +430,12 @@ class DBAPI(DbGeneric):
:type locale: A GrampsLocale object.
"""
if sort_handles:
if locale != glocale:
self.dbapi.check_collation(locale)
self.dbapi.execute('SELECT handle FROM citation '
'ORDER BY page '
'COLLATE "%s"' % self._collation(locale))
'COLLATE "%s"' % locale.get_collation())
else:
self.dbapi.execute("SELECT handle FROM citation")
rows = self.dbapi.fetchall()
@@ -453,9 +452,12 @@ class DBAPI(DbGeneric):
:type locale: A GrampsLocale object.
"""
if sort_handles:
if locale != glocale:
self.dbapi.check_collation(locale)
self.dbapi.execute('SELECT handle FROM source '
'ORDER BY title '
'COLLATE "%s"' % self._collation(locale))
'COLLATE "%s"' % locale.get_collation())
else:
self.dbapi.execute("SELECT handle from source")
rows = self.dbapi.fetchall()
@@ -472,9 +474,12 @@ class DBAPI(DbGeneric):
:type locale: A GrampsLocale object.
"""
if sort_handles:
if locale != glocale:
self.dbapi.check_collation(locale)
self.dbapi.execute('SELECT handle FROM place '
'ORDER BY title '
'COLLATE "%s"' % self._collation(locale))
'COLLATE "%s"' % locale.get_collation())
else:
self.dbapi.execute("SELECT handle FROM place")
rows = self.dbapi.fetchall()
@@ -500,9 +505,12 @@ class DBAPI(DbGeneric):
:type locale: A GrampsLocale object.
"""
if sort_handles:
if locale != glocale:
self.dbapi.check_collation(locale)
self.dbapi.execute('SELECT handle FROM media '
'ORDER BY desc '
'COLLATE "%s"' % self._collation(locale))
'COLLATE "%s"' % locale.get_collation())
else:
self.dbapi.execute("SELECT handle FROM media")
rows = self.dbapi.fetchall()
@@ -528,9 +536,12 @@ class DBAPI(DbGeneric):
:type locale: A GrampsLocale object.
"""
if sort_handles:
if locale != glocale:
self.dbapi.check_collation(locale)
self.dbapi.execute('SELECT handle FROM tag '
'ORDER BY name '
'COLLATE "%s"' % self._collation(locale))
'COLLATE "%s"' % locale.get_collation())
else:
self.dbapi.execute("SELECT handle FROM tag")
rows = self.dbapi.fetchall()
@@ -577,13 +588,12 @@ class DBAPI(DbGeneric):
"WHERE name = ?", [grouping, name])
elif row and grouping is None:
self.dbapi.execute("DELETE FROM name_group WHERE name = ?", [name])
grouping = ''
else:
self.dbapi.execute(
"INSERT INTO name_group (name, grouping) VALUES (?, ?)",
[name, grouping])
self._txn_commit()
if grouping is None:
grouping = ''
self.emit('person-groupname-rebuild', (name, grouping))
def _commit_base(self, obj, obj_key, trans, change_time):
-2
View File
@@ -117,8 +117,6 @@ class Connection:
collation = locale.get_collation().translate(self.__tmap)
if collation not in self.__collations:
self.__connection.create_collation(collation, locale.strcoll)
self.__collations.append(collation)
return collation
def execute(self, *args, **kwargs):
"""
+1 -2
View File
@@ -267,8 +267,7 @@ class Calendar(Report):
day_col * cell_width + cell_width/2,
header + week_row * cell_height)
list_ = self.calendar.get(month, {}).get(thisday.day, [])
# sort the list to get CAL-Holiday on bottom
list_.sort(key=lambda x: (x[0], x[1]))
list_.sort() # to get CAL-Holiday on bottom
position = spacing
for (format, p, m_list) in list_:
for line in reversed(p.split("\n")):
+11 -15
View File
@@ -92,17 +92,13 @@ class Backlinks(Gramplet):
edit_object(self.dbstate, self.uistate, objclass, handle)
def db_changed(self):
for item in ['person', 'family', 'source', 'citation', 'event',
'media', 'place', 'repository', 'note']:
self.connect(self.dbstate.db, '%s-delete' % item, self.update)
self.connect(self.dbstate.db, '%s-add' % item, self.update)
self.connect(self.dbstate.db, '%s-update' % item, self.update)
class PersonBacklinks(Backlinks):
"""
Displays the back references for a person.
"""
def db_changed(self):
self.connect(self.dbstate.db, 'person-update', self.update)
def active_changed(self, handle):
self.update()
@@ -123,7 +119,7 @@ class EventBacklinks(Backlinks):
Displays the back references for an event.
"""
def db_changed(self):
super().db_changed()
self.connect(self.dbstate.db, 'event-update', self.update)
self.connect_signal('Event', self.update)
def update_has_data(self):
@@ -143,7 +139,7 @@ class FamilyBacklinks(Backlinks):
Displays the back references for a family.
"""
def db_changed(self):
super().db_changed()
self.connect(self.dbstate.db, 'family-update', self.update)
self.connect_signal('Family', self.update)
def update_has_data(self):
@@ -163,7 +159,7 @@ class PlaceBacklinks(Backlinks):
Displays the back references for a place.
"""
def db_changed(self):
super().db_changed()
self.connect(self.dbstate.db, 'place-update', self.update)
self.connect_signal('Place', self.update)
def update_has_data(self):
@@ -183,7 +179,7 @@ class SourceBacklinks(Backlinks):
Displays the back references for a source,.
"""
def db_changed(self):
super().db_changed()
self.connect(self.dbstate.db, 'source-update', self.update)
self.connect_signal('Source', self.update)
def update_has_data(self):
@@ -203,7 +199,7 @@ class CitationBacklinks(Backlinks):
Displays the back references for a Citation,.
"""
def db_changed(self):
super().db_changed()
self.connect(self.dbstate.db, 'citation-update', self.update)
self.connect_signal('Citation', self.update)
def update_has_data(self):
@@ -223,7 +219,7 @@ class RepositoryBacklinks(Backlinks):
Displays the back references for a repository.
"""
def db_changed(self):
super().db_changed()
self.connect(self.dbstate.db, 'repository-update', self.update)
self.connect_signal('Repository', self.update)
def update_has_data(self):
@@ -243,7 +239,7 @@ class MediaBacklinks(Backlinks):
Displays the back references for a media object.
"""
def db_changed(self):
super().db_changed()
self.connect(self.dbstate.db, 'media-update', self.update)
self.connect_signal('Media', self.update)
def update_has_data(self):
@@ -263,7 +259,7 @@ class NoteBacklinks(Backlinks):
Displays the back references for a note.
"""
def db_changed(self):
super().db_changed()
self.connect(self.dbstate.db, 'note-update', self.update)
self.connect_signal('Note', self.update)
def update_has_data(self):
+2 -4
View File
@@ -206,10 +206,8 @@ class PlaceBaseView(ListView):
"""
if action:
action.set_state(value)
self.mapservice = value.get_string()
else:
self.mapservice = value
config.set('interface.mapservice', self.mapservice)
self.mapservice = mapkey = value.get_string()
config.set('interface.mapservice', mapkey)
config.save()
_ui = self.__create_maps_menu_actions()
self.uimanager.add_ui_from_string(_ui)
+3
View File
@@ -289,6 +289,9 @@ class GeoGraphyView(OsmGps, NavigationView):
if self.active:
self.bookmarks.redraw()
self.build_tree()
if self.osm:
self.osm.grab_focus()
self.set_crosshair(config.get("geography.show_cross"))
def can_configure(self):
"""
+7 -4
View File
@@ -182,11 +182,14 @@ class OsmGps:
self.osm = DummyMapNoGpsPoint()
else:
if http_proxy:
self.osm = osmgpsmap.Map(proxy_uri=http_proxy)
self.osm = osmgpsmap.Map(tile_cache=tiles_path,
proxy_uri=http_proxy,
map_source=constants.MAP_TYPE[
map_type])
else:
self.osm = osmgpsmap.Map()
self.osm.set_property("tile_cache", tiles_path)
self.osm.set_property("map_source", constants.MAP_TYPE[map_type])
self.osm = osmgpsmap.Map(tile_cache=tiles_path,
map_source=constants.MAP_TYPE[
map_type])
self.osm.props.tile_cache = osmgpsmap.MAP_CACHE_AUTO
current_map = osmgpsmap.MapOsd(show_dpad=False, show_zoom=True)
self.end_selection = None
+1 -2
View File
@@ -5,7 +5,6 @@
# Copyright (C) 2003-2005 Donald N. Allingham
# Copyright (C) 2008 Stefan Siegel
# Copyright (C) 2008 Brian G. Matherly
# Copyright (C) 2021 Mirko Leonhaeuser
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -157,7 +156,7 @@ class RelationshipCalculator(gramps.gen.relationship.RelationshipCalculator):
if removed < len(_removed):
return _removed[removed]
else:
return '(%s) Urgroß' % self._make_roman(removed-1)
return '(%s)' % self._make_roman(removed-2)
def _degree_text(self, degree, removed):
if removed == 0:
+2 -302
View File
@@ -5,7 +5,6 @@
# Copyright (C) 2003-2005 Donald N. Allingham
# Copyright (C) 2008 Brian G. Matherly
# Copyright (C) 2018 Robin van der Vliet
# Copyright (C) 2020 Jan Sparreboom
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -36,7 +35,7 @@ import gramps.gen.relationship
#-------------------------------------------------------------------------
#
# Levels
#
#
#-------------------------------------------------------------------------
@@ -70,207 +69,9 @@ _child_level = [ "", "",
_nibling_level = [ "", "",
"achter", "achterachter", "achterachterachter" ]
_parents_level = ["",
"ouders",
"grootouders",
"overgrootouders",
"betovergrootouders",
"overgrootouders 5e graad",
"overgrootouders 6e graad",
"overgrootouders 7e graad",
"overgrootouders 8e graad",
"overgrootouders 9e graad",
"overgrootouders 10e graad",
"overgrootouders 11e graad",
"overgrootouders 12e graad",
"overgrootouders 13e graad",
"overgrootouders 14e graad",
"overgrootouders 15e graad",
"overgrootouders 16e graad",
"overgrootouders 17e graad",
"overgrootouders 18e graad",
"overgrootouders 19e graad",
"overgrootouders 20e graad",
"overgrootouders 21e graad",
"overgrootouders 22e graad",
"overgrootouders 23e graad",
"overgrootouders 24e graad",
"overgrootouders 25e graad",
"overgrootouders 26e graad",
"overgrootouders 27e graad",
"overgrootouders 28e graad",
"overgrootouders 29e graad",
"overgrootouders 30e graad",
"overgrootouders 31e graad",
"overgrootouders 32e graad",
"overgrootouders 33e graad",
"overgrootouders 34e graad",
"overgrootouders 35e graad",
"overgrootouders 36e graad",
"overgrootouders 37e graad",
"overgrootouders 38e graad",
"overgrootouders 39e graad",
"overgrootouders 40e graad",
"overgrootouders 41e graad",
"overgrootouders 42e graad",
"overgrootouders 43e graad",
"overgrootouders 44e graad",
"overgrootouders 45e graad",
"overgrootouders 46e graad",
"overgrootouders 47e graad",
"overgrootouders 48e graad",
"overgrootouders 49e graad",
"overgrootouders 50e graad", ]
_siblings_level = ["",
"broers en zussen",
"ooms en tantes",
"oudooms en -tantes",
"overoudooms en -tantes",
"overoudooms en -tantes 5e graad",
"overoudooms en -tantes 6e graad",
"overoudooms en -tantes 7e graad",
"overoudooms en -tantes 8e graad",
"overoudooms en -tantes 9e graad",
"overoudooms en -tantes 10e graad",
"overoudooms en -tantes 11e graad",
"overoudooms en -tantes 12e graad",
"overoudooms en -tantes 13e graad",
"overoudooms en -tantes 14e graad",
"overoudooms en -tantes 15e graad",
"overoudooms en -tantes 16e graad",
"overoudooms en -tantes 17e graad",
"overoudooms en -tantes 18e graad",
"overoudooms en -tantes 19e graad",
"overoudooms en -tantes 20e graad",
"overoudooms en -tantes 21e graad",
"overoudooms en -tantes 22e graad",
"overoudooms en -tantes 23e graad",
"overoudooms en -tantes 24e graad",
"overoudooms en -tantes 25e graad",
"overoudooms en -tantes 26e graad",
"overoudooms en -tantes 27e graad",
"overoudooms en -tantes 28e graad",
"overoudooms en -tantes 29e graad",
"overoudooms en -tantes 30e graad",
"overoudooms en -tantes 41e graad",
"overoudooms en -tantes 42e graad",
"overoudooms en -tantes 43e graad",
"overoudooms en -tantes 44e graad",
"overoudooms en -tantes 45e graad",
"overoudooms en -tantes 46e graad",
"overoudooms en -tantes 47e graad",
"overoudooms en -tantes 48e graad",
"overoudooms en -tantes 49e graad",
"overoudooms en -tantes 50e graad", ]
_children_level = ["",
"kinderen",
"kleinkinderen",
"achterkleinkinderen",
"betachterkleinkinderen",
"kleinkinderen 5e graad",
"kleinkinderen 6e graad",
"kleinkinderen 7e graad",
"kleinkinderen 8e graad",
"kleinkinderen 9e graad",
"kleinkinderen 10e graad",
"kleinkinderen 11e graad",
"kleinkinderen 12e graad",
"kleinkinderen 13e graad",
"kleinkinderen 14e graad",
"kleinkinderen 15e graad",
"kleinkinderen 16e graad",
"kleinkinderen 17e graad",
"kleinkinderen 18e graad",
"kleinkinderen 19e graad",
"kleinkinderen 20e graad",
"kleinkinderen 21e graad",
"kleinkinderen 22e graad",
"kleinkinderen 23e graad",
"kleinkinderen 24e graad",
"kleinkinderen 25e graad",
"kleinkinderen 26e graad",
"kleinkinderen 27e graad",
"kleinkinderen 28e graad",
"kleinkinderen 29e graad",
"kleinkinderen 30e graad",
"kleinkinderen 31e graad",
"kleinkinderen 32e graad",
"kleinkinderen 33e graad",
"kleinkinderen 34e graad",
"kleinkinderen 35e graad",
"kleinkinderen 36e graad",
"kleinkinderen 37e graad",
"kleinkinderen 38e graad",
"kleinkinderen 39e graad",
"kleinkinderen 40e graad",
"kleinkinderen 41e graad",
"kleinkinderen 42e graad",
"kleinkinderen 43e graad",
"kleinkinderen 44e graad",
"kleinkinderen 45e graad",
"kleinkinderen 46e graad",
"kleinkinderen 47e graad",
"kleinkinderen 48e graad",
"kleinkinderen 49e graad",
"kleinkinderen 50e graad", ]
_nephews_nieces_level = ["",
"broers en zussen",
"neven en nichten",
"achterneven en -nichten",
"achterneven en -nichten 4e graad",
"achterneven en -nichten 5e graad",
"achterneven en -nichten 6e graad",
"achterneven en -nichten 7e graad",
"achterneven en -nichten 8e graad",
"achterneven en -nichten 9e graad",
"achterneven en -nichten 10e graad",
"achterneven en -nichten 11e graad",
"achterneven en -nichten 12e graad",
"achterneven en -nichten 13e graad",
"achterneven en -nichten 14e graad",
"achterneven en -nichten 15e graad",
"achterneven en -nichten 16e graad",
"achterneven en -nichten 17e graad",
"achterneven en -nichten 18e graad",
"achterneven en -nichten 19e graad",
"achterneven en -nichten 20e graad",
"achterneven en -nichten 21e graad",
"achterneven en -nichten 22e graad",
"achterneven en -nichten 23e graad",
"achterneven en -nichten 24e graad",
"achterneven en -nichten 25e graad",
"achterneven en -nichten 26e graad",
"achterneven en -nichten 27e graad",
"achterneven en -nichten 28e graad",
"achterneven en -nichten 29e graad",
"achterneven en -nichten 30e graad",
"achterneven en -nichten 31e graad",
"achterneven en -nichten 32e graad",
"achterneven en -nichten 33e graad",
"achterneven en -nichten 34e graad",
"achterneven en -nichten 35e graad",
"achterneven en -nichten 36e graad",
"achterneven en -nichten 37e graad",
"achterneven en -nichten 38e graad",
"achterneven en -nichten 39e graad",
"achterneven en -nichten 40e graad",
"achterneven en -nichten 41e graad",
"achterneven en -nichten 42e graad",
"achterneven en -nichten 43e graad",
"achterneven en -nichten 44e graad",
"achterneven en -nichten 45e graad",
"achterneven en -nichten 46e graad",
"achterneven en -nichten 47e graad",
"achterneven en -nichten 48e graad",
"achterneven en -nichten 49e graad",
"achterneven en -nichten 50e graad", ]
#-------------------------------------------------------------------------
#
# Relationship calculator Dutch version
#
#
#-------------------------------------------------------------------------
@@ -472,104 +273,6 @@ class RelationshipCalculator(gramps.gen.relationship.RelationshipCalculator):
else:
return "%s%snicht (kozijn)" % (inlaw, step) \
+ " " + _ordinal_level[removed] + " graad"
# NIEUW
def get_plural_relationship_string(self, Ga, Gb,
reltocommon_a='', reltocommon_b='',
only_birth=True,
in_law_a=False, in_law_b=False):
"""
Provide a string that describes the relationsip between a person, and
a group of people with the same relationship. E.g. "grandparents" or
"children".
Ga and Gb can be used to mathematically calculate the relationship.
.. seealso::
http://en.wikipedia.org/wiki/Cousin#Mathematical_definitions
:param Ga: The number of generations between the main person and the
common ancestor.
:type Ga: int
:param Gb: The number of generations between the group of people and the
common ancestor
:type Gb: int
:param reltocommon_a: relation path to common ancestor or common
Family for person a.
Note that length = Ga
:type reltocommon_a: str
:param reltocommon_b: relation path to common ancestor or common
Family for person b.
Note that length = Gb
:type reltocommon_b: str
:param only_birth: True if relation between a and b is by birth only
False otherwise
:type only_birth: bool
:param in_law_a: True if path to common ancestors is via the partner
of person a
:type in_law_a: bool
:param in_law_b: True if path to common ancestors is via the partner
of person b
:type in_law_b: bool
:returns: A string describing the relationship between the person and
the group.
:rtype: str
"""
rel_str = "verre familie"
if Ga == 0:
# These are descendants
if Gb < len(_children_level):
rel_str = _children_level[Gb]
else:
rel_str = "verre afstammelingen"
elif Gb == 0:
# These are parents/grand parents
if Ga < len(_parents_level):
rel_str = _parents_level[Ga]
else:
rel_str = "verre voorouders"
elif Gb == 1:
# These are siblings/aunts/uncles
if Ga < len(_siblings_level):
rel_str = _siblings_level[Ga]
else:
rel_str = "verre ooms/tantes"
elif Ga == 1:
# These are nieces/nephews
if Gb < len(_nephews_nieces_level):
rel_str = _nephews_nieces_level[Gb]
else:
rel_str = "verre neven/nichten"
elif Ga > 1 and Ga == Gb:
# These are cousins in the same generation
if Ga <= len(_ordinal_level):
rel_str = "%s neven" % _ordinal_level[Ga-1]
else:
rel_str = "verre neven"
elif Ga > 1 and Ga > Gb:
# These are cousins in different generations with the second person
# being in a higher generation from the common ancestor than the
# first person.
if Gb <= len(_LEVEL_NAME) and (Ga-Gb) < len(_removed_level):
rel_str = "%s neven%s (omhoog)" % (_ordinal_level[Gb-1],
_removed_level[Ga-Gb])
else:
rel_str = "verre neven"
elif Gb > 1 and Gb > Ga:
# These are cousins in different generations with the second person
# being in a lower generation from the common ancestor than the
# first person.
if Ga <= len(_LEVEL_NAME) and (Gb-Ga) < len(_removed_level):
rel_str = "%s neven%s (omlaag)" % (_ordinal_level[Ga-1],
_removed_level[Gb-Ga])
else:
rel_str = "verre neven"
if in_law_b is True:
rel_str = "echtgenoten van %s" % rel_str
return rel_str
def get_single_relationship_string(self, Ga, Gb, gender_a, gender_b,
reltocommon_a, reltocommon_b,
@@ -721,6 +424,3 @@ if __name__ == "__main__":
from gramps.gen.relationship import test
RC = RelationshipCalculator()
test(RC, True)
@@ -132,7 +132,7 @@ class DbTestClassBase(object):
self._log_sig("note-delete", args)
def _log_sig(self, sig, args):
# print("('%s', %s)," % (sig, args))
print("('%s', %s)," % (sig, args))
self.sigs.append((sig, args[0]))
def _cm_pers_add(self, *args):
-8
View File
@@ -246,14 +246,6 @@ class GeoClose(GeoGraphyView):
self.add_item = None
self.newmenu = None
self.config_meeting_slider = None
self.dbstate.connect('database-changed', self.reset_change_db)
def reset_change_db(self, dummy_dbase):
"""
Used to reset the family reference
"""
self.refperson = None
def get_title(self):
"""
-7
View File
@@ -243,13 +243,6 @@ class GeoFamClose(GeoGraphyView):
self.cal = config.get('preferences.calendar-format-report')
self.no_show_places_in_status_bar = False
self.config_meeting_slider = None
self.dbstate.connect('database-changed', self.reset_change_db)
def reset_change_db(self, dummy_dbase):
"""
Used to reset the family reference
"""
self.reffamily = None
def get_title(self):
"""
+2 -3
View File
@@ -370,9 +370,8 @@ class GeoFamily(GeoGraphyView):
_("Family places for %s") % self.family_label(family))
person = None
if family:
handle = family.get_father_handle()
if handle:
person = dbstate.db.get_person_from_handle(handle)
person = dbstate.db.get_person_from_handle(
family.get_father_handle())
else:
return
family_id = family.gramps_id
+1 -1
View File
@@ -18,7 +18,7 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
VERSION_TUPLE = (5, 1, 5)
VERSION_TUPLE = (5, 1, 4)
VERSION_QUALIFIER = ""
VERSION = '.'.join(map(str,VERSION_TUPLE)) + VERSION_QUALIFIER
major_version = "%s.%s" % (VERSION_TUPLE[0], VERSION_TUPLE[1])
+5 -5
View File
@@ -7,7 +7,7 @@
<key>CFBundleExecutable</key>
<string>Gramps</string>
<key>CFBundleGetInfoString</key>
<string>Gramps-5.1.4-5, (C) 1997-2021 The Gramps Team http://www.gramps-project.org</string>
<string>Gramps-5.1.3-1, (C) 1997-2020 The Gramps Team http://www.gramps-project.org</string>
<key>CFBundleIconFile</key>
<string>gramps.icns</string>
<key>CFBundleIdentifier</key>
@@ -17,15 +17,15 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>Gramps-5.1.4-5</string>
<string>Gramps-5.1.3-1</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>Gramps-5.1.4-5</string>
<string>Gramps-5.1.3-1</string>
<key>NSHumanReadableCopyright</key>
<string>Copyright 1997 - 2021 The Gramps Team, GNU General Public License.</string>
<string>Copyright 1997 - 2020 The Gramps Team, GNU General Public License.</string>
<key>LSMinimumSystemVersion</key>
<string>10.12</string>
<string>10.9</string>
<key>GtkOSXLaunchScriptFile</key>
<string>gramps_launcher.py</string>
<key>NSHighResolutionCapable</key>
+14 -20
View File
@@ -12,9 +12,8 @@
</meta>
<plist>${project}/Info.plist</plist>
<entitlements>${project}/release.entitlements.plist</entitlements>
<!-- Build gramps-launcher with:
gcc -L$PREFIX/lib `python-config -\-cflags -\-ldflags -\-embed` \
gcc -L$PREFIX/lib `python-config -\-cflags -\-ldflags` \
-o $PREFIX/bin/gramps-launcher \
path/to/gtk-mac-bundler/examples/python-launcher.c
with the obvious substitution.
@@ -42,15 +41,19 @@
</binary>
<binary recurse="True">
${prefix}/lib/python3.9/*.so
${prefix}/lib/python3.8/*.so
</binary>
<binary>
${prefix}/lib/librsvg-2.2.dylib
</binary>
<!--binary>
${prefix}/lib/libwebkit-1.0.2.dylib
</binary-->
<binary>
${prefix}/lib/libgtkmacintegration-gtk3.4.dylib
${prefix}/lib/libgtkmacintegration-gtk3.2.dylib
</binary>
<binary>
@@ -62,7 +65,7 @@
</binary>
<binary>
${prefix}/lib/enchant-2
${prefix}/lib/enchant
</binary>
<binary>
@@ -74,7 +77,7 @@
</binary>
<binary>
${prefix}/lib/libhunspell-1.7.0.dylib
${prefix}/lib/libhunspell-1.6.0.dylib
</binary>
<binary>
@@ -97,10 +100,6 @@
${prefix}/lib/libgeocode-glib.dylib
</binary>
<binary>
${prefix}/lib/gio/modules/libgiognutls.so
</binary>
<gir>
${prefix}/share/gir-1.0/*.gir
</gir>
@@ -142,10 +141,6 @@
${project}/gramps_launcher.py
</data>
<data>
${prefix}/etc/fonts
</data>
<data>
${prefix}/share/glib-2.0/schemas
</data>
@@ -153,19 +148,19 @@
<!-- We have to pull in the python modules, which are mixed python
and loadable modules. -->
<data recurse="True">
${prefix}/lib/python3.9/*.py
${prefix}/lib/python3.8/*.py
</data>
<data>
${prefix}/lib/python3.9/config-3.9-darwin/
${prefix}/lib/python3.8/config-3.8-darwin/
</data>
<data>
${prefix}/lib/python3.9/site-packages/gramps/gen/utils/resource-path
${prefix}/lib/python3.8/site-packages/gramps/gen/utils/resource-path
</data>
<data>
${prefix}/include/python3.9/pyconfig.h
${prefix}/include/python3.8/pyconfig.h
</data>
@@ -182,7 +177,7 @@
</data>
<data recurse="True">
${prefix}/lib/python3.9/site-packages/gramps/*.glade
${prefix}/lib/python3.8/site-packages/gramps/*.glade
</data>
<data>
@@ -214,7 +209,6 @@
<data>
${prefix}/share/icons
</data>
<!-- Copy icons. Note that the .icns file is an Apple format which
contains up to 4 sizes of icon. You can use
/Developer/Applications/Utilities/Icon Composer.app to import
+73 -82
View File
@@ -9,12 +9,22 @@
href="http://pywebkitgtk.googlecode.com/files/"/>
<repository type="tarball" name="ftp.gnome.org"
href="http://ftp.gnome.org/pub/GNOME/sources/"/>
<repository type="tarball" name="pyxdg"
href="http://www.gnome.org/~fpeters/pyxdg/"/>
<repository type="tarball" name="xdg-utils"
href="http://portland.freedesktop.org/download/"/>
<repository type="svn" name="gramps-addons"
href="https://svn.code.sf.net/p/gramps-addons/code/"/>
<repository type="tarball" name="oracle"
href="http://download.oracle.com/"/>
<repository type="tarball" name="pymodules"
href="https://pypi.python.org/packages/"/>
<repository type="tarball" name="stowers"
href="http://www.johnstowers.co.nz/files/"/>
<repository type="git" name="github" href="git://github.com/"/>
<repository type="tarball" name="github-tarball" href="https://github.com/"/>
<repository type="tarball" name="graphviz"
href="https://graphviz.gitlab.io/pub/graphviz/stable/SOURCES/"/>
<repository type="tarball" name="exiv2.org"
href="http://www.exiv2.org/releases/"/>
<repository type="tarball" name="pythonware"
@@ -42,8 +52,8 @@ gtk-mac-bundler gtk-osx-build/projects/gramps/gramps.bundle
-->
<!--include href="https://gitlab.gnome.org/GNOME/gtk-osx/raw/master/modulesets-stable/gtk-osx.modules"/-->
<include href="/Users/john/Development/GTK-OSX/gtk-osx-build/modulesets-stable/gtk-osx.modules"/>
<include href="https://gitlab.gnome.org/GNOME/gtk-osx/raw/master/modulesets-stable/gtk-osx.modules"/>
<!--include href="/Users/john/Development/GTK-OSX/gtk-osx-build/modulesets-stable/gtk-osx.modules"/-->
<distutils id="gramps-git" supports-non-srcdir-builds="no">
<branch module="gramps-project/gramps.git" repo="github"
@@ -55,9 +65,9 @@ gtk-mac-bundler gtk-osx-build/projects/gramps/gramps.bundle
</distutils>
<distutils id="gramps" supports-non-srcdir-builds="no">
<branch module="gramps-project/gramps/archive/v5.1.4.tar.gz"
repo="github-tarball" version="5.1.4"
checkoutdir="gramps-gramps-5.1.4"/>
<branch module="gramps-project/gramps/archive/v5.1.3.tar.gz"
repo="github-tarball" version="5.1.3"
checkoutdir="gramps-gramps-5.1.3"/>
<dependencies>
<dep package="meta-gramps-modules"/>
</dependencies>
@@ -71,10 +81,35 @@ gtk-mac-bundler gtk-osx-build/projects/gramps/gramps.bundle
</dependencies>
</distutils>
<meson id="json-glib" mesonargs="-Dgtk_doc=disabled -Dman=false -Dtests=false">
<branch module="json-glib/1.6/json-glib-1.6.6.tar.xz"
version="1.6.6" repo="ftp.gnome.org"
hash="sha256:96ec98be7a91f6dde33636720e3da2ff6ecbb90e76ccaa49497f31a6855a490e"/>
<autotools id="pyWebKitGtk" >
<branch module="pywebkitgtk-1.1.7.tar.bz2" version="1.1.7"
repo="pywebkitgtk"/>
<dependencies>
<dep package="WebKit"/>
<dep package="sqlite"/>
</dependencies>
</autotools>
<distutils id="pyenchant">
<branch repo="pymodules" module="73/73/49f95fe636ab3deed0ef1e3b9087902413bcdf74ec00298c3059e660cfbb/pyenchant-1.6.8.tar.gz"
version="1.6.1"/>
</distutils>
<distutils id="pyxdg">
<branch repo="pyxdg" module="pyxdg-0.17.tar.gz" version="0.17"
hash="sha256:fbc87711922b2dd6ceb23ee041f1f96da9b7dbb6971df03a3081b439def069ce"
md5sum="a086de99cc536095684d87f15594e4db" size="37372"/>
</distutils>
<autotools id="xdg-utils">
<branch module="xdg-utils-1.0.2.tgz" version="1.0.2" repo="xdg-utils"/>
</autotools>
<meson id="json-glib">
<branch module="json-glib/1.4/json-glib-1.4.4.tar.xz"
version="1.4.4" repo="ftp.gnome.org"
hash="sha256:720c5f4379513dc11fd97dc75336eb0c0d3338c53128044d9fabec4374f4bc47"/>
<dependencies>
<dep package="gobject-introspection"/>
</dependencies>
@@ -93,34 +128,46 @@ gtk-mac-bundler gtk-osx-build/projects/gramps/gramps.bundle
<autotools id="osmgpsmap" skip-autogen="never"
autogenargs="--disable-gtk-doc-html"
supports-non-srcdir-builds="no">
<branch module="nzjrs/osm-gps-map" revision="1.2.0" repo="github"/>
<branch module="nzjrs/osm-gps-map" revision="1.1.0" repo="github"/>
<dependencies>
<dep package="libsoup"/>
<dep package="gtk+-3.0"/>
</dependencies>
<after>
<dep package="meta-gtk-osx-gtk3"/>
<dep package="meta-gtk-osx-gtk3.14"/>
</after>
</autotools>
<autotools id="graphviz" autogen-sh="configure"
autogenargs="--disable-sharp --disable-guile --disable-java --disable-lua --disable-ocaml --disable-perl --disable-php --disable-r --disable-ruby --disable-tcl --with-pangocairo">
<branch module="graphviz.tar.gz" version="2.40.1"
repo="graphviz" checkoutdir="graphviz-2.40.1"/>
<dependencies>
<dep package="pango"/>
<dep package="meta-gtk-osx-freetype"/>
<dep package="librsvg"/>
</dependencies>
</autotools>
<cmake id="exiv2" cmakeargs="-DEXIV2_ENABLE_PNG=ON">
<branch module="exiv2-0.27.4-Source.tar.gz" repo="exiv2.org"
checkoutdir="exiv2-0.27.4-Source" version="0.27.4"
hash="sha256:84366dba7c162af9a7603bcd6c16f40fe0e9af294ba2fd2f66ffffb9fbec904e"/>
<branch module="exiv2-0.27.0a-Source.tar.gz" repo="exiv2.org"
checkoutdir="exiv2-0.27.0-Source" version="0.27.0"/>
</cmake>
<meson id="gexiv2" mesonargs="-Dvapi=false">
<branch module="gexiv2/0.14/gexiv2-0.14.0.tar.xz"
repo="ftp.gnome.org" version="0.14.0"
hash="sha256:e58279a6ff20b6f64fa499615da5e9b57cf65ba7850b72fafdf17221a9d6d69e">
<branch module="gexiv2/0.12/gexiv2-0.12.0.tar.xz"
repo="ftp.gnome.org" version="0.12.0"
hash="sha256:58f539b0386f36300b76f3afea3a508de4914b27e78f58ee4d142486a42f926a">
</branch>
<dependencies>
<dep package="exiv2"/>
<dep package="pygobject3"/>
</dependencies>
</meson>
https://files.pythonhosted.org/packages/
<distutils id="pillow">
<branch module="21/23/af6bac2a601be6670064a817273d4190b79df6f74d8012926a39bc7aa77f/Pillow-8.2.0.tar.gz" version="8.2.0"
<distutils id="pil">
<branch module="93/73/66854f63b1941aad9af18a1de59f9cf95ad1a87c801540222e332f6688d7/Pillow-4.1.1.tar.gz" version="4.1.1"
repo="pymodules"
hash="sha256:a787ab10d7bb5494e5f76536ac460741788f1fbce851068d73a87ca7c35fc3e1">
hash="md5:f2565954955c8d10f3b4f1f72f852bf7">
</branch>
<dependencies>
<!--dep package="setuptools"/-->
@@ -128,74 +175,18 @@ https://files.pythonhosted.org/packages/
</distutils>
<distutils id='pyicu'>
<branch version='2.7.2' repo='pymodules'
module='17/0f/9d6b7eb01650960239a5d4dc21cd6e7a96921807c043d287bae4b2f440e1/PyICU-2.7.2.tar.gz'
hash="sha256:1382869b22d91cc99274f9b525fa7d9199b44d9007ff0036a09747839a01e9dc"/>
<branch version='2.5' repo='pymodules'
module='5a/99/c48c816095208bf3f4936ff67e571621fbddef461303a35a076f234e31f6/PyICU-2.5.tar.gz'/>
<dependencies>
<dep package='icu'/>
</dependencies>
</distutils>
<!--Note the leading ; in autogen-template. It's there on purpose in case the user has set nice_build so that the nice prepended to the command doesn't eat the cd. -->
<autotools id="berkeleydb" autogen-sh="configure"
supports-non-srcdir-builds="no" makeargs="-C build_unix"
autogen-template="cd .;cd build_unix; ../dist/%(autogen-sh)s --prefix %(prefix)s %(autogenargs)s"
makeinstallargs="-C build_unix install">
<branch module="berkeley-db/db-4.8.30.NC.tar.gz" version="4.8.30"
repo="oracle"
hash="sha256:12edc0df75bf9abd7f82f821795bcee50f42cb2e5f76a6a281b85732798364ef" >
<patch file="berkeleydb-4.8-atomic.patch" strip='1'/>
</branch>
</autotools>
<!-- For out-of-source-tree builds (i.e., builddir is defined either
in .jhbuildrc-custom or passed as an option on the
command-line, the normal berkeleydb module will build in its
srcdir/build_unix directory. If you want to build it in the
build directory with most of the other modules, use this module
instead. -->
<autotools id="berkeleydb-nonsrctree" autogen-sh="configure"
autogen-template="%(srcdir)s/dist/%(autogen-sh)s --prefix %(prefix)s %(autogenargs)s" >
<branch module="berkeley-db/db-4.8.30.NC.tar.gz" version="4.8.30"
repo="oracle"
hash="sha256:12edc0df75bf9abd7f82f821795bcee50f42cb2e5f76a6a281b85732798364ef">
<patch file="berkeleydb-4.8-atomic.patch" strip='1'/>
</branch>
</autotools>
<distutils id="pybsddb">
<branch repo="pymodules" version="6.2.9"
module="f0/24/92034482656945fc6ceb10551222b43a0ff8d0c87e15839120487820067e/bsddb3-6.2.9.tar.gz"
hash="sha256:70d05ec8dc568f42e70fc919a442e0daadc2a905a1cfb7ca77f549d49d6e7801" />
<dependencies>
<dep package="python3"/>
</dependencies>
<after>
<dep package="berkeleydb"/>
<dep package="berkeleydb-nonsrctree"/>
</after>
</distutils>
<distutils id='pyfontconfig'>
<branch repo='pymodules' version="0.5.1"
module="e6/01/a28b0160f82ca5e946e315251c797f07c74e5c5a53f2a9e706eebc680191/Python-fontconfig-0.5.1.tar.gz"
hash="sha256:b7cfe366242f83b8cd7175b7d4dd95d19f42d619c58a51914f72b1e741739994">
<patch file="pyfontconfig-curexc.patch" strip="1"/>
</branch>
<dependencies>
<dep package="python3"/>
<dep package="fontconfig"/>
</dependencies>
</distutils>
<metamodule id="meta-gramps-modules">
<dependencies>
<dep package="python3"/>
<dep package="meta-gtk-osx-gtk3"/>
<dep package="meta-gtk-osx-gtk3-core-themes"/>
<dep package="goocanvas2"/>
<dep package="librsvg"/>
<dep package="shared-mime-info"/>
@@ -211,7 +202,7 @@ https://files.pythonhosted.org/packages/
<dep package="pygobject3"/>
<dep package='pyicu'/>
<dep package='pybsddb'/>
<dep package="pillow"/>
<dep package="pil"/>
</dependencies>
</metamodule>
-1
View File
@@ -24,7 +24,6 @@ environ['GTK_PATH'] = bundle_res
environ['PANGO_RC_FILE'] = join(bundle_etc, 'pango', 'pangorc')
environ['PANGO_SYSCONFDIR'] = bundle_etc
environ['PANGO_LIBDIR'] = bundle_lib
environ['GIO_MODULE_DIR'] = join(bundle_lib, 'gio', 'modules')
environ['GDK_PIXBUF_MODULE_FILE'] = join(bundle_lib, 'gdk-pixbuf-2.0',
'2.10.0', 'loaders.cache')
environ['GI_TYPELIB_PATH'] = join(bundle_lib, 'girepository-1.0')
-40
View File
@@ -1,40 +0,0 @@
--- a/dist/configure 2010-04-12 13:25:23.000000000 -0700
+++ b/dist/configure 2021-04-11 11:27:32.000000000 -0700
@@ -19158,7 +19158,7 @@
# x86_64/gcc: FreeBSD, NetBSD, BSD/OS, Linux
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-
+#include <stdlib.h>
int
main ()
{
@@ -20197,7 +20197,7 @@
if test "$db_cv_atomic" = no; then
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-
+#include <stdlib.h>
int
main ()
{
--- a/dbinc/atomic.h 2013-03-12 14:07:22.000000000 -0400
+++ b/dbinc/atomic.h 2013-03-12 14:06:35.000000000 -0400
@@ -144,7 +144,7 @@
#define atomic_inc(env, p) __atomic_inc(p)
#define atomic_dec(env, p) __atomic_dec(p)
#define atomic_compare_exchange(env, p, o, n) \
- __atomic_compare_exchange((p), (o), (n))
+ __atomic_compare_exchange_db((p), (o), (n))
static inline int __atomic_inc(db_atomic_t *p)
{
int temp;
@@ -176,7 +176,7 @@
* http://gcc.gnu.org/onlinedocs/gcc-4.1.0/gcc/Atomic-Builtins.html
* which configure could be changed to use.
*/
-static inline int __atomic_compare_exchange(
+static inline int __atomic_compare_exchange_db(
db_atomic_t *p, atomic_value_t oldval, atomic_value_t newval)
{
atomic_value_t was;
-56
View File
@@ -1,56 +0,0 @@
--- a/fontconfig.c 2011-11-02 07:59:41.000000000 -0700
+++ b/fontconfig.c 2021-08-09 18:07:50.000000000 -0700
@@ -4525,12 +4525,12 @@
Py_INCREF(local_type);
Py_INCREF(local_value);
Py_INCREF(local_tb);
- tmp_type = tstate->exc_type;
- tmp_value = tstate->exc_value;
- tmp_tb = tstate->exc_traceback;
- tstate->exc_type = local_type;
- tstate->exc_value = local_value;
- tstate->exc_traceback = local_tb;
+ tmp_type = tstate->curexc_type;
+ tmp_value = tstate->curexc_value;
+ tmp_tb = tstate->curexc_traceback;
+ tstate->curexc_type = local_type;
+ tstate->curexc_value = local_value;
+ tstate->curexc_traceback = local_tb;
/* Make sure tstate is in a consistent state when we XDECREF
these objects (XDECREF may run arbitrary code). */
Py_XDECREF(tmp_type);
@@ -4735,9 +4735,9 @@
static CYTHON_INLINE void __Pyx_ExceptionSave(PyObject **type, PyObject **value, PyObject **tb) {
PyThreadState *tstate = PyThreadState_GET();
- *type = tstate->exc_type;
- *value = tstate->exc_value;
- *tb = tstate->exc_traceback;
+ *type = tstate->curexc_type;
+ *value = tstate->curexc_value;
+ *tb = tstate->curexc_traceback;
Py_XINCREF(*type);
Py_XINCREF(*value);
Py_XINCREF(*tb);
@@ -4746,12 +4746,12 @@
static void __Pyx_ExceptionReset(PyObject *type, PyObject *value, PyObject *tb) {
PyObject *tmp_type, *tmp_value, *tmp_tb;
PyThreadState *tstate = PyThreadState_GET();
- tmp_type = tstate->exc_type;
- tmp_value = tstate->exc_value;
- tmp_tb = tstate->exc_traceback;
- tstate->exc_type = type;
- tstate->exc_value = value;
- tstate->exc_traceback = tb;
+ tmp_type = tstate->curexc_type;
+ tmp_value = tstate->curexc_value;
+ tmp_tb = tstate->curexc_traceback;
+ tstate->curexc_type = type;
+ tstate->curexc_value = value;
+ tstate->curexc_traceback = tb;
Py_XDECREF(tmp_type);
Py_XDECREF(tmp_value);
Py_XDECREF(tmp_tb);
Diff finished. Mon Aug 9 18:09:16 2021
+138 -26
View File
@@ -1,48 +1,160 @@
2022-01-31 Krystian Safjan <ksafjan@gmail.com>
2020-08-11 prculley <paulr2787@gmail.com>
* po/pl.po: Fixes suggested after review by @stojex
* po/ar.po, po/bg.po, po/br.po, po/ca.po, po/cs.po, po/da.po,
po/el.po, po/en_GB.po, po/eo.po, po/es.po, po/fi.po, po/fr.po,
po/ga.po, po/he.po, po/hr.po, po/hu.po, po/is.po, po/it.po,
po/ja.po, po/lt.po, po/mk.po, po/nb.po, po/nl.po, po/nn.po,
po/pl.po, po/pt_BR.po, po/pt_PT.po, po/ro.po, po/ru.po, po/sk.po,
po/sl.po, po/sq.po, po/sr.po, po/sr_Latn.po, po/sv.po, po/ta.po,
po/tr.po, po/uk.po, po/vi.po, po/zh_CN.po, po/zh_HK.po, po/zh_TW.po:
Remove duplicates in Translations
2022-01-07 Krystian Safjan <ksafjan@gmail.com>
2020-08-10 prculley <paulr2787@gmail.com>
* po/pl.po: Update Polish translation - Consistent usage of "Tag": was "Tag" or "Atrybut", note that "Attribute" (atrybut) is something different than tag - "Magazyn" (repository) renamed to "Repozytorium" - other fixes and addons
* po/ar.po, po/bg.po, po/br.po, po/ca.po, po/cs.po, po/da.po,
po/de.po, po/el.po, po/en_GB.po, po/eo.po, po/es.po, po/fi.po,
po/fr.po, po/ga.po, po/he.po, po/hr.po, po/hu.po, po/is.po,
po/it.po, po/ja.po, po/lt.po, po/mk.po, po/nb.po, po/nl.po,
po/nn.po, po/pl.po, po/pt_BR.po, po/pt_PT.po, po/ro.po, po/ru.po,
po/sk.po, po/sl.po, po/sq.po, po/sr.po, po/sr_Latn.po, po/sv.po,
po/ta.po, po/tr.po, po/uk.po, po/vi.po, po/zh_CN.po, po/zh_HK.po,
po/zh_TW.po: Clean up translations for Default/Home Person
2022-01-29 Mirko Leonhaeuser <mirko@leonhaeuser.de>
2020-08-10 Leonhaeuser <mirko@leonhaeuser.de>
* po/de.po: get German translation with manual in sync (Display name
editor)
* po/de.po: Update German translation
2022-01-25 pehlm <github1@m.pekholm.org>
2020-08-10 Paul Culley <paulr2787@gmail.com>
* po/sv.po: Minor update of Swedish translation
* po/pl.po: Fix Charts/Pedigreeview tooltip Polish translation
(#1092) Fixes #11852
2022-01-04 Tian Shixiong <tiansworld@fedoraproject.org>
2020-08-10 Krystian Safjan <ksafjan@gmail.com>
* po/zh_CN.po: Minor update to zh_CN translation
* po/pl.po: Fix and add objects to Polish translation of Gramps
(#1088)
2021-11-03 Mirko Leonhaeuser <mirko@leonhaeuser.de>
2020-07-23 Leonhaeuser <mirko@leonhaeuser.de>
* po/de.po: small German translation fixes
* po/de.po: German translation fixed typo
2021-11-01 Mirko Leonhaeuser <mirko@leonhaeuser.de>
2020-07-17 niememat <niememat@gmail.com>
* po/de.po: Fixed German translation error of "Character set
encoding"
* po/fi.po: Update finnish translation
2021-10-25 Mirko Leonhaeuser <mirko@leonhaeuser.de>
2020-06-07 Tian Shixiong <tiansworld@fedoraproject.org>
* po/de.po: Fixed German translation error of "Graph generations"
* po/zh_CN.po: Update Simplified Chinese translation for gramps51
branch
2021-09-19 Mirko Leonhaeuser <mirko@leonhaeuser.de>
2020-01-11 giansalvo <pioggia3+github@gmail.com>
* po/de.po: Fixed German translation error of "filter person"
* po/ar.po, po/bg.po, po/br.po, po/ca.po, po/cs.po, po/da.po,
po/de.po, po/el.po, po/en_GB.po, po/eo.po, po/es.po, po/fi.po,
po/fr.po, po/ga.po, po/he.po, po/hr.po, po/hu.po, po/is.po,
po/it.po, po/ja.po, po/lt.po, po/mk.po, po/nb.po, po/nl.po,
po/nn.po, po/pl.po, po/pt_BR.po, po/pt_PT.po, po/ro.po, po/ru.po,
po/sk.po, po/sl.po, po/sq.po, po/sr.po, po/sr_Latn.po, po/sv.po,
po/ta.po, po/tr.po, po/uk.po, po/vi.po, po/zh_CN.po, po/zh_HK.po,
po/zh_TW.po: Fix bug 0011078: 'Default person' instead of 'Home
person' - modified button hints - modified filter rules names and descriptions - modified .pot and .po files - substituted 'home person' with 'Home Person'
2021-08-30 Mirko Leonhaeuser <mirko@leonhaeuser.de>
2020-07-07 Leonhaeuser <mirko@leonhaeuser.de>
* po/de.po: fixed error in German translation found during manual
translation also fixed in master
* po/de.po: Germen fixed translation error of Media:
2021-08-11 Mirko Leonhaeuser <mirko@leonhaeuser.de>
2020-07-04 Leonhaeuser <mirko@leonhaeuser.de>
* fixed German translation of 'Descendant families of' already done in
trunk Weblate
* po/de.po: Fix typo
2020-07-01 Leonhaeuser <mirko@leonhaeuser.de>
* po/de.po: update German translation
2020-04-23 SNoiraud <serge.noiraud@laposte.net>
* po/ar.po, po/bg.po, po/br.po, po/ca.po, po/cs.po, po/da.po,
po/de.po, po/el.po, po/en_GB.po, po/eo.po, po/es.po, po/fi.po,
po/fr.po, po/ga.po, po/he.po, po/hr.po, po/hu.po, po/is.po,
po/it.po, po/ja.po, po/lt.po, po/mk.po, po/nb.po, po/nl.po,
po/nn.po, po/pl.po, po/pt_BR.po, po/pt_PT.po, po/ro.po, po/ru.po,
po/sk.po, po/sl.po, po/sq.po, po/sr.po, po/sr_Latn.po, po/sv.po,
po/ta.po, po/tr.po, po/uk.po, po/vi.po, po/zh_CN.po, po/zh_HK.po,
po/zh_TW.po: Fix typo in gui/configure.py and translation files Fixes #11665
2020-06-22 pehlm <par.ekholm@pekholm.org>
* po/sv.po: A little adjustment to Swedish translation
2020-06-21 pehlm <par.ekholm@pekholm.org>
* po/sv.po: Updates to Swedish translation
2020-06-20 Megumi Sakata <megumi.sakata.k@gmail.com>
* po/ja.po: Update Japanese translation
2020-04-28 vantu5z <vantu5z@mail.ru>
* po/ru.po: update Russian translation
2020-04-24 niememat <niememat@gmail.com>
* po/fi.po: Fix translation in Finnish
2020-04-18 Joan Creus <joan.creusandreu@gmail.com>
* po/ca.po: Updating Catalan translation
2020-04-18 Joan Creus <joan.creusandreu@gmail.com>
* po/ca.po: Updating Catalan translation
2020-04-08 Leonhaeuser <mirko@leonhaeuser.de>
* po/de.po: update Germn translation
2020-03-26 vantu5z <vantu5z@mail.ru>
* po/ru.po: update Russian translation
2020-03-25 Translator5 <Translator5@users.noreply.github.com>
* po/ru.po: [Language: Russian] Maintenance/gramps51 (#1027) * some Russian translations updates
2020-03-03 Joan Creus <joan.creusandreu@gmail.com>
* po/ca.po: Updating Catalan translation
2020-02-29 Joan Creus <joan.creusandreu@gmail.com>
* po/ca.po: Updating Catalan translation
2020-02-25 Bernard Banko <beernarrd@gmail.com>
* po/sl.po: V&O changed to PZV to avoid ampersand
2020-02-07 pehlm <par.ekholm@pekholm.org>
* po/sv.po: Minor update to Swedish translation
2020-01-31 vantu5z <vantu5z@mail.ru>
* po/ru.po: update Russian translation
2020-01-26 Bernard Banko <beernarrd@gmail.com>
* po/sl.po: Slovenian translation update
2020-01-23 prculley <paulr2787@gmail.com>
* po/ru.po: Fix typo in Russian translation
2020-01-21 système <romjerome@users.noreply.github.com>
* po/fr.po: typos in french translation #11534 #10534
2020-01-21 Fedik <getthesite@gmail.com>
* Ukrainian translation update
+231 -232
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -7166,7 +7166,7 @@ msgstr "tuntematon"
#: ../gramps/gen/lib/date.py:281
#, python-format
msgid "greater than %s years"
msgstr "enintään %s vuotta"
msgstr "korkeitaan %s vuotta"
#: ../gramps/gen/lib/date.py:286 ../gramps/gen/lib/date.py:314
#: ../gramps/gen/lib/date.py:316 ../gramps/gen/lib/date.py:322
+1 -1
View File
@@ -20871,7 +20871,7 @@ msgid ""
"Changes cannot be completely abandoned because the number of changes made in "
"the session exceeded the limit."
msgstr ""
"Les changements ne peuvent être complètement abandonnés car le nombre de "
"Les changements ne peuvent être complètement abandonner car le nombre de "
"modifications effectuées pendant la session excèdent la limite."
#: ../gramps/gui/viewmanager.py:802
+4860 -3803
View File
File diff suppressed because it is too large Load Diff
+989 -838
View File
File diff suppressed because it is too large Load Diff
+1383 -1178
View File
File diff suppressed because it is too large Load Diff
+10 -10
View File
@@ -21,14 +21,14 @@
# Jens Arvidsson <jya@sverige.nu>, 2002-2005.
# Stefan Björk <betula@users.sourceforge.net>, 2005-2006.
# Peter Landgren <peter.talken@telia.com>, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017.
# Pär Ekholm <pehlm@pekholm.org>, 2018, 2019, 2020, 2021, 2022.
# Pär Ekholm <pehlm@pekholm.org>, 2018, 2019, 2020.
msgid ""
msgstr ""
"Project-Id-Version: sv\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-07-15 22:20+0200\n"
"PO-Revision-Date: 2022-01-25 17:50+0100\n"
"Last-Translator: Pär Ekholm <pehlm@pekholm.org>\n"
"PO-Revision-Date: 2020-08-12 20:03+0200\n"
"Last-Translator: Pär Ekholm <pehlm@pekholm.se>\n"
"Language-Team: \n"
"Language: sv\n"
"MIME-Version: 1.0\n"
@@ -7501,7 +7501,7 @@ msgstr "Vald"
#: ../gramps/gen/lib/eventtype.py:181
msgid "Emigration"
msgstr "Utvandring"
msgstr "Utflyttning"
#: ../gramps/gen/lib/eventtype.py:182
msgid "First Communion"
@@ -7509,7 +7509,7 @@ msgstr "Första nattvarden"
#: ../gramps/gen/lib/eventtype.py:183
msgid "Immigration"
msgstr "Invandring"
msgstr "Inflyttning"
#: ../gramps/gen/lib/eventtype.py:184
msgid "Graduation"
@@ -7704,7 +7704,7 @@ msgstr "vald"
#: ../gramps/gen/lib/eventtype.py:231
msgid "Emigration abbreviation|em."
msgstr "utv."
msgstr "utfl."
#: ../gramps/gen/lib/eventtype.py:232
msgid "First Communion abbreviation|f.comm."
@@ -7712,7 +7712,7 @@ msgstr "1.nattv."
#: ../gramps/gen/lib/eventtype.py:233
msgid "Immigration abbreviation|im."
msgstr "inv."
msgstr "infl."
#: ../gramps/gen/lib/eventtype.py:234
msgid "Graduation abbreviation|grad."
@@ -11225,7 +11225,7 @@ msgstr "OS: %s"
#: ../gramps/gui/clipboard.py:70
msgid "manual|Using_the_Clipboard"
msgstr "Använda urklipp"
msgstr "Hur använda urklipp"
#: ../gramps/gui/clipboard.py:401
#: ../gramps/gui/filters/sidebar/_familysidebarfilter.py:126
@@ -12258,7 +12258,7 @@ msgstr ""
#: ../gramps/gui/configure.py:1980
msgid "Try to find"
msgstr "Försöka hitta"
msgstr "Försök hitta"
#: ../gramps/gui/configure.py:1991 ../gramps/gui/configure.py:2092
msgid "Choose font"
@@ -33921,7 +33921,7 @@ msgstr ""
"\n"
"Ett mediaobjekt är en samling information om ett mediaobjekts datafil: namn, "
"sökväg, beskrivning, ID, notiser, källreferenser etc. Dessa data "
"%(bold_start)sinnehåller inte själva datafilen%(bold_end)s.\n"
"%(bold_start)sinnehåller inte datafilen självf%(bold_end)s.\n"
"\n"
"De datafiler som innehåller bilder, ljud, video etc, lagras separat på "
"hårddisken. Dessa filer ligger utanför Gramps kontroll och tas inte med i "
+3445 -2687
View File
File diff suppressed because it is too large Load Diff
+1 -3
View File
@@ -306,9 +306,7 @@ class test(Command):
raise RuntimeError("No build directory. Run `python setup.py build` before trying to run tests.")
os.environ['GRAMPS_RESOURCES'] = '.'
all_tests = unittest.TestLoader().discover('.', pattern='*_test.py')
result = unittest.TextTestRunner(verbosity=self.verbose).run(all_tests)
if not result.wasSuccessful():
raise SystemExit('ERROR: Unit test failure.')
unittest.TextTestRunner(verbosity=self.verbose).run(all_tests)
#-------------------------------------------------------------------------
#