Compare commits

..

466 Commits

Author SHA1 Message Date
prculley
32c700c6bf Release Gramps 5.1.2 2020-01-10 11:29:07 -06:00
prculley
130740553d Update Changelog and NEWS files 2020-01-10 11:20:09 -06:00
Serge Noiraud
675dfdbc70 Narrated Web: bad event links on media pages ()
* Navweb: Don't use media regions in some case:

- If we don't show families
- If we don't show events

Fixes 

* Navweb: side effect between event and media pages

When a media is processed in the media display section for an event
page, it's remove from the media_list, so when we try to create the
media regions in the media page, the media list is empty and we
can't display the regions.

* Narweb: Don't show the regions for a thumbnail
2020-01-10 17:38:41 +01:00
Nick Hall
34beeaad70 Revert pull request
This reverts commit 801be84465.
2020-01-09 19:35:47 +00:00
Serge Noiraud
06cb9d7ea6 Narweb: Private notes for home, intro and contact ()
If the notes are private, we can't use them in these pages.
2020-01-09 12:09:25 -06:00
Paul Culley
d693881b98 Update LDS Temple list () 2020-01-09 12:04:15 -06:00
Paul Culley
801be84465 Fix Lat/Long translated NSEW display and entry in rtl language;Store Lat/Long in place objects with NSEW always in English ()
* Fix Lat/Long translated NSEW display and entry in rtl language

* Store Lat/Long in place objects with NSEW always in English

Issue 
2020-01-09 12:03:20 -06:00
Paul Culley
7807ff8a6d Make GuiDestinationOption Folder Icon start in users directory ()
Fixes 
2020-01-09 12:00:29 -06:00
Paul Culley
672603c8ae Fix import file chooser filter to accept upper case extensions ()
* Fix import file chooser filter to accept upper case extensions

Fixes 

* Allow import file filter to accept case insensitive extensions

Co-authored-by: Nick Hall <nick-h@gramps-project.org>
2020-01-09 11:56:07 -06:00
Paul Culley
c30dfc6343 Fix db to warn/prevent opening newer schema versions () 2020-01-09 11:38:16 -06:00
Paul Culley
e6ed0612e3 Fix Progen import to correctly handle AKA surnames ()
* Fix Progen import dialog and progress meter for correct parent window

* Fix Progen import to correctly handle AKA surnames

Fixes 
2020-01-09 11:37:31 -06:00
Paul Culley
9b0cf1b976 Fix ExportPkg so errors are not lost, and has progress bar for media ()
* Fix Export Assistant so error messages get correct parent window

* Fix ExportPkg so errors are not lost, and has progress bar for media

Fixes 
2020-01-09 11:36:38 -06:00
Paul Culley
ddb29b1628 Fix GEDCOM import when family is missing; import created a missing note ()
Fixes 
2020-01-09 11:35:28 -06:00
Paul Culley
1a8406e2e4 Fix Dashboard for adding Gramplet crash in Slovenian ()
Fixes 
2020-01-09 11:34:15 -06:00
Zdeněk Hataš
09e89549de Update Czech translation 2020-01-07 16:40:08 +01:00
Joan Creus
afaeb7c995 Updating Catalan translation 2019-12-30 17:49:56 +01:00
Joan Creus
6fa30b889d Updating Catalan translation 2019-12-21 18:21:41 +01:00
Jiří Vejda
1916383a28 Update date parsing for czech locale ()
* Fixes bug ID 0011470: some date variants in CS language are not consider valid
2019-12-15 13:03:30 +01:00
romjerome
379c96ee6a update french translation () 2019-12-15 12:59:51 +01:00
romjerome
7b45bbf72e fix tagref support ()
Add missing code for event, repository, source, citation and place
2019-12-13 10:59:42 +01:00
romjerome
aea9ef3645 [Tree doc Tex] fix "-" char on place name ()
* fix "-" char on place name

"-" can lead to confusion, 
generating text out of the box
with PDF file format
2019-12-13 10:55:15 +01:00
romjerome
05f7744cba typo on custom size () 2019-12-09 20:25:07 +01:00
Paul Culley
bfc76a08d4 Fix duplicated "døde døde" Norwegion Translation for libnarrate ()
Fixes 
2019-11-11 15:47:11 +11:00
Paul Culley
b7487330a7 Fix up Event Editors Place display for bidi text with Gramps ID ()
Fixes 

Fix up Event Editors Place display for bidi text with Gramps ID (PR 924)

Some versions of Gtk/Pango have trouble with text containing both LTR and RTL characters. The bug notes this shows up in our Event Editor on the 'Place" field, where we have the place displayer title and the Gramps ID concatenated into the same string.

In older versions of Gtk (3.18.9 tested) the bracket around the Gramps ID would get mangled to the beginning of the string:
<images>

In newer versions of Gtk (3.24.3 tested) it was better to start with:
<images>

The older version of Gtk/Pango doesn't seem to properly interpret all of the potential Unicode bidi control characters, so the fix shown is the best I can do. The fixed version of the newer Gtk version is what is desired.

I note that the Place displayer should be fixed up to use more appropriate separators than just commas for RTL text, but that is another issue.
2019-11-05 13:00:48 +11:00
Paul Culley
1025a38caa Fix issues with RTL languages and LAT/LONG ()
* Fix display of GPS coordinates in Places view for RTL languages

Issue 

* Fix place editor lat/long entry for RTL languages

Fixes 
2019-11-05 12:42:09 +11:00
Paul Culley
2054c467db Fix GEDCOM export to avoid translated GrampsType strings ()
Fixes 

The bug submitter noticed that the GEDCOM export contained translated strings in the MEDI lines of his export. GEDCOM should contain English values for most such cases where 'types' are exported.

I scanned the export code for other potential cases, and found:

* Certain unexpected event types on individuals (Marriage)
* Certain unexpected event types on families (Immigration, Residence, etc.)
* Pedigree types that were not standardized on PEDI,_FREL,_MREL (Sponsored, Unknown)
* Family Attributes other than Number if children (Caste, Description, National etc.)
* Personal Attributes other than Caste, Description, ID, National, number of children, SSN (Occupation etc.)
* The MEDI types of this bug report...
2019-11-05 12:22:26 +11:00
Serge Noiraud
789b72289c Narrativeweb: Referenced regions problems ()
When image width > 800, the referenced regions are incorrectly placed

Fixes 
2019-11-05 12:06:06 +11:00
Paul Culley
2e1132bec0 Allow Tools with Notbook tabs to expand to fill the window ()
Fixes 

User "petpil" (Gramps Bugtracker) noted that the Calculate Estimated Dates addon would not expand the size of its window content when the window was stretched. That addon used the ToolManagedWindowBatch which uses a Gtk Notebook to support several tabs. He also submitted a patch which fixes the problem.

The Gtk.Container.add method originally used apparently did not have expand/fill settings to allow the expansion. The Gtk.Box.pack_start used instead does.

I tested this with all the users of ToolManagedWindowBatch and ToolManagedWindow which inherit from ToolManagedWindowBase, and did not see any bad/unexpected side effects. The Calculate Estimated Dates addon was the only one that really could use this, as it was the only one which I spotted using a potentially large widget in the notebook tab.
2019-11-05 11:44:23 +11:00
Fedik
8ccfa43e56 Ukrainian translation update 2019-11-02 16:51:02 +02:00
Fedik
40140859af Ukrainian translation update 2019-11-02 16:05:15 +02:00
Nick Hall
e69e6ca338 Limit Age Stats gramplet settings to appropriate values ()
* Max ages should be divisible by 5 to avoid out of range
  errors.
* The chart width should be greater than 45 to look right and
  avoid division by zero errors.
2019-10-30 09:35:32 +11:00
Paul Culley
fb29a77f83 Fix the Preferences 'Age display precision' value getting lost ()
Fixes 

It turns out the changes was actually changing the wrong config setting...

I had to look this one up. Using a lambda like this is called a 'closure' by some; what is happening is that the value 'constant' is being evaluated at the time the lambda is called, not when it is assigned. So in this particular bit of code the preference setting was actually changing 'preferences.family-relation-type' (the value of the variable 'constant' set a bit after the lambda definition.

I reverted this particular bit of code, as I think this kind of Python knowledge is pretty obscure (I could have just used a different unique name for the 'constant' variable).
2019-10-30 09:17:06 +11:00
Paul Culley
06cca96ad0 Fix Spanish translation for dates ()
Fixes 
2019-10-26 10:14:15 +11:00
avma
2c49461529 Hebrew translation-current version 5.12 ()
...I've completed all strings (using the recent .POT)...
2019-10-24 10:41:40 +11:00
Paul Culley
73d19851ef Fix Window family tree title for non-ASCII chars on Windows ()
Fixes 

As it says, if Family Tree name contained non-ASCII characters, the titlebar on Windows would display it wrong. Turned out to be reading of a utf8 file without the 'encoding' set. On Windows this results in using the default encoding which is one of the code pages, NOT utf8.
2019-10-24 10:24:04 +11:00
Paul Culley
16c8e61944 Fix Preferences/Genealogical Symbols when only one font is present ()
that passes

If user has only a single font available that passes check for the Genealogical Symbols being all present, the original code crashed. Apparently never tested...  

Fixes 
2019-10-24 10:07:52 +11:00
niememat
2fbf945309 Fix translation in Finnish 2019-10-21 18:13:08 +03:00
Milo Ivir
cf184e72e8 Update Croatian translation 2019-10-20 16:13:08 +01:00
Leonhaeuser
1c27b785f4 update German translation 2019-10-19 16:52:40 +02:00
Zdeněk Hataš
da7e4cc763 Update Czech translation 2019-10-18 09:49:43 +02:00
niememat
5d2fd8cbda Fix translation in Finnish 2019-10-18 05:49:49 +03:00
pehlm
005beac33f Update Swedish translation 2019-10-17 12:10:17 +02:00
niememat
ae53b401ce Update finnish translation 2019-10-17 13:00:21 +03:00
Paul Culley
79c54aaedc Fix various Entry fields so Undo/Redo works ()
Fixes , 

In prior versions of Gramps you could use the undo/redo keys to edit items in the text entries. This no longer works.

This is related to the changes to suppress odd characters and leading/trailing spaces. The Gtk.Entry.set_text() call is effectively clearing the undo/redo list at every keystroke or when you leave the field.

In this PR I move the odd characters cleanup into UndoableEntry.do_insert_text instead of MonitoredEntry.

I scanned the users of MonitoredEntry and they all appeared to use Glade files, I scanned the glade files for anyone using just plain Entry (none found), they all appeared to use UndoableEntry or ValidatableMaskedEntry, so this should cover everyone.
2019-10-17 13:15:39 +11:00
Sam Manzi
4360976d73 Update translation template due to pr () 2019-10-17 12:06:38 +11:00
romjerome
5e9d79ac6f Update POTFILES.in/skip for missing translations ()
* Update POTFILES.in

* Update POTFILES.skip

* Update POTFILES.in

add missing 'removespaces.glade' reference
2019-10-17 11:42:22 +11:00
Serge Noiraud
ee1d9be898 Narrative web: Ancestor's tree Fix display looks weird ()
* Narrative web: Ancestor's tree display looks weird

Solves the following:
- Person boxes overlap
- Some person boxes partially visible or hidden

Fixes 

* Narrative web: some cleanup in ancestortree.css

* Narrative web : ancestor tree and long names.

* Adapt ancestor tree css file for all themes
2019-10-17 11:17:31 +11:00
romjerome
75b0b66269 Fix tag colors on PedigreeView ()
Fixes 

* Handle long and short hex format black color

* Fix hex_to_rgb_float utility function
2019-10-17 10:57:36 +11:00
Paul Culley
c54f381737 Fix Gramps -v error when Gtk is not present ()
Via email a user noted a bug when "Gramps -v" was used with Gtk not installed (and gi was).
When the "gi.require_version('Gtk', '3.0')" was added during Gramps 5.0.0 timeframe, a corresponding exception was not.
2019-10-17 10:23:21 +11:00
Serge Noiraud
2aa6b54de4 NarrativeWeb: dates not localised in place pages ()
* NarrativeWeb: dates not localised in place pages

Fixes 

* WEBCAL: home link translated to lowercase

Fixes 
2019-10-17 10:07:59 +11:00
Baizley
49bad564ae Patch for PedigreeView not reflecting changes to birthday or death ()
Fixes 

* Make PedigreeView listen on event update signals.

The PedigreeView was not listening for updates on events, so changes to a birthday or death would not be reflected in the view.

* Remove comment about signal side-effects.
2019-10-17 09:23:02 +11:00
Paul Culley
03ab64c4d5 Fix improper escaping in odt output for TOC/Bookmark etc. ()
Fixes 

For the index, toc, bookmark etc. normal XML escape is correct, the original code also added sub-tags for line break and tab which was NOT correct.
2019-10-17 09:03:29 +11:00
Paul Culley
f7bd062bdb Fix CLI parser to accept negative integers as valid ()
Fixes 
2019-10-17 08:47:55 +11:00
Paul Culley
c312c96987 Fix Descendant Tree report for HandleError when no parents on family ()
Fixes 
2019-10-17 08:33:39 +11:00
niememat
6b2066c797 Fix translation in Finnish 2019-10-10 07:26:04 +03:00
Nick Hall
5d15ccb2a2 Merge pull request from prculley:reorder 2019-10-08 18:44:43 +01:00
prculley
0095a07f12 Fix Reorder ID tool to avoid scrambling the order IDs are assigned
Fixes 
2019-10-08 18:43:42 +01:00
prculley
bb5b03dd78 Fix Reorder ID tool so subsequent db additions used next possible ID
Fixes 
2019-10-08 18:43:42 +01:00
niememat
26351c18c9 Fix translation in Finnish 2019-10-08 12:43:03 +03:00
niememat
ecd6da40dd Fix translation in Finnish 2019-10-05 12:30:46 +03:00
SNoiraud
793b13be67 Narrativeweb: Mainz problem with short text in one note
Issue occurs on the homepage and introduction page.

Fixes 
2019-10-03 20:33:17 +01:00
Nick Hall
48dfca57e2 Merge pull request from prculley:bug11316 2019-10-03 19:58:49 +01:00
prculley
a07aae2e30 Fix export tests to actually test most files, and run for both dbs 2019-10-03 19:56:27 +01:00
prculley
8f5daac4a7 Fix exports to have consistent results 2019-10-03 19:56:27 +01:00
prculley
0cd6394b72 Upgrade export VCalendar to v2.0, so can export utf8
Fixes 
2019-10-03 19:56:27 +01:00
SNoiraud
57d8dcd574 WEBCAL: Wrong web calendar title on home page
Fixes 

This PR solves the possibility to have ">", "<" in the title
2019-10-03 19:50:04 +01:00
prculley
d5bb4da5a1 Fix Preferences so <ctrl>PageUp/PageDn doesn't stick on Dates tab
Fixes 
2019-10-03 19:41:05 +01:00
ailintom
5c44d925e1 Escape for name, dates and places in graph reports
Currently dates and places contain XML special characters (example: birth date
= "1867 <?>"), the item is rendered incorrectly in the report, when images are
included. Escaping special characters with html.escape solves the problem.

Also fixes the & sign in the name, which earlier caused the report to fail.
2019-10-03 19:08:57 +01:00
Paul Culley
c7e2e09b42 Fix 'Go' menu direct object selection, goes to wrong place ()
Fixes 

Fixes up the scrambled 'Go' menu, got messed up in the UIManager upgrade.
2019-09-25 11:39:58 +10:00
Zdeněk Hataš
669e4af0b7 Update Czech translation 2019-09-20 13:17:28 +02:00
pehlm
88f7a701a3 Swedish translation, some changes 2019-09-18 12:37:07 +02:00
RossGammon
52c087154f [Debian ( .deb file)]Release511 updates ()
* Add python3-fontconfig to recommends

* Finalise Debian changelog for 5.1.1-1 release
2019-09-18 11:41:30 +10:00
John Ralls
2b62729f52 Release Gramps 5.1.1 on MacOS. 2019-09-14 16:58:34 -07:00
John Ralls
1c856bb93b Assorted fixes for building Gramps 5.0. 2019-09-14 16:56:23 -07:00
Nick Hall
710e40425f Bump to 5.1.2 2019-09-14 23:40:42 +01:00
Nick Hall
bb3eecb365 Release Gramps 5.1.1 2019-09-14 23:32:29 +01:00
Nick Hall
8de8c69686 Update Changelog and NEWS files 2019-09-14 23:28:27 +01:00
SNoiraud
4379a09fd3 Fix deprecation warning in withinarea rule 2019-09-14 22:36:06 +01:00
Nick Hall
0dc2be6dd5 Disable development warning message 2019-09-14 19:25:22 +01:00
Jonas Hahnfeld
daa845492d Add options to sandclock in tree document generator
This works and is actually needed to style the root node.
2019-09-14 19:03:18 +01:00
SNoiraud
cc28935b15 Using regex in the sidebar gives different result
from previous gramps release.

Fixes 
2019-09-14 18:45:09 +01:00
Nick Hall
3d1ef5e595 Merge pull request from Nick-Hall:fr 2019-09-14 18:42:14 +01:00
Jérôme Rapinat
44bdd14609 Add missing French translation strings 2019-09-14 18:41:04 +01:00
Gil da Costa
bec5a41829 Update French translation 2019-09-14 18:41:04 +01:00
prculley
c3206121df Fix odt output when db owner has XML unfriendly chars ('&')
Fixes 
2019-09-14 18:37:30 +01:00
John Bickmore
1e52204d94 Bump required Python version to 3.3 on Readme
As mentioned on the release announcement
https://gramps-project.org/introduction-WP/2019/08/gramps-5-1-0-released/
2019-09-13 15:55:09 +01:00
SNoiraud
82cd211d29 Remove reload_custom_filters to conform to PR894 2019-09-13 15:48:50 +01:00
prculley
4244d70312 Fix CLI crash when generating reports
Fixes , 
2019-09-13 15:45:12 +01:00
prculley
98cc9b3740 Fix Statusbar HandleError on merge families
Fixes , , 
2019-09-13 15:43:26 +01:00
Avi Markovitz
efcf0d1b83 Update Hebrew translation 2019-09-12 19:41:11 +01:00
niememat
c1024aa61d Fix translation in Finnish 2019-09-12 21:21:53 +03:00
niememat
fe3efc57ab Update finnish translation 2019-09-12 08:00:20 +03:00
vantu5z
52f2d7b4ba update Russian translation 2019-09-11 08:22:05 +03:00
pehlm
9e0e256fd2 Update Swedish translation 2019-09-10 20:16:12 +02:00
Leonhaeuser
50625c654b Update German translation 2019-09-10 19:51:34 +02:00
Nick Hall
1e10eabb15 Merge po files and new template 2019-09-10 18:21:52 +01:00
Nick Hall
a7b934003b Update translation template for new release 2019-09-10 17:23:29 +01:00
Avi Markovitz
1b2e91d365 Update Hebrew translation 2019-09-09 21:09:46 +01:00
Pedro Albuquerque
ff17f57ba3 Update Portuguese (Europe) translation 2019-09-09 20:54:23 +01:00
Milo Ivir
a206503a9b Update croatian translation
- update with newest/current .pot file
- translation is complete
- corrections in wording and some missing accelerators
2019-09-09 19:45:52 +01:00
prculley
846a4d1a32 Fix missing tooltip translations in the Note editor toolbar
Fixes 
2019-09-09 19:23:07 +01:00
Nick Hall
d75d9797c0 Merge pull request from SNoiraud:B11269 2019-09-09 19:15:34 +01:00
SNoiraud
5767b9c3c8 Avoid bad coordinates in the ref place 2019-09-09 19:12:35 +01:00
SNoiraud
d397b83dc8 Avoid alphabetic characters in filter rules 2019-09-09 19:12:23 +01:00
SNoiraud
7617891faf Could not convert string to float
by using withinarea filter rule
+ difference between sidebar filter and filter rule
+ some pylint improvements
2019-09-09 19:11:59 +01:00
prculley
d096d269c7 Fix Graph outputs for multiple page PDF Postscript
Fixes 
2019-09-07 19:49:57 +01:00
prculley
e983578fff Fix to make Gtk 'action names' always valid
Fixes 
2019-09-07 19:40:45 +01:00
prculley
e10df9eb6d Fix missing menus/buttons when operating in non-English languages
Fixes 
2019-09-07 19:33:01 +01:00
SNoiraud
14acaca0b5 Cursor position error in lat and long fields
Fixes 
2019-09-07 19:16:00 +01:00
SNoiraud
6ba958cc41 Avoid all characters looking like a dash
hyphen
  non breaking hyphen
  figure dash
  em dash
  horizontal bar

Fixes 
2019-09-07 18:55:36 +01:00
SNoiraud
efbec440fd Narrative web: Mainz Style sheet weird looking
Fixes 
2019-09-06 17:32:41 +01:00
Nick Hall
578daa825d Merge pull request from SNoiraud:B11295 2019-09-06 17:27:59 +01:00
SNoiraud
29994242c7 Set symbols for the active person 2019-09-06 17:23:11 +01:00
SNoiraud
69261509ee Set good symbols for marriage, baptism, cremation and burial 2019-09-06 17:22:59 +01:00
SNoiraud
d3d51677f9 Reduce the size of the sexuality symbol in relview
Fixes 
2019-09-06 17:20:21 +01:00
prculley
6602843f5a Fix exception when editing Note with italics/bold etc. in non English
Fixes 
2019-09-05 14:26:31 +01:00
Nick Hall
7ec4a429a4 Restore keybindings for gramplet bars
Resolves .
2019-09-04 22:18:12 +01:00
Nick Hall
16d40189c6 Fix bug in web connection menu launching incorrect web site
Resolves .
2019-09-04 22:15:10 +01:00
SNoiraud
4b9dba0c53 Translation problem when creating event filter
If you create a filter with the rule name:
    "Events with a particular type"
or
    "Events with <data>"
The menu "Travel", "Academic"... are not translated

Fixes 
2019-09-04 22:05:57 +01:00
SNoiraud
dd80e4b80e Error when checking option to add Quit to Taskbar
Fixes 
2019-09-04 22:03:09 +01:00
SNoiraud
e39e59c795 Make the narratives notes placement an option
From 5.1 the narrative notes are placed just after the name, gender and
age at death. This follow the feature request .
Some people want to have this placement an option to have the same
functionality as before

Fixes 
2019-09-04 22:00:04 +01:00
Nick Hall
590a5cf59a Merge pull request from RossGammon:release-510 2019-09-04 21:45:34 +01:00
Ross Gammon
f5b6389042 Finalise Debian changelog for 5.1.0 release 2019-09-04 21:44:31 +01:00
Ross Gammon
a06478f8ed Bump gtk+ version to 3.12 & add gir1.2-geocodeglib-1.0 dependency 2019-09-04 21:44:31 +01:00
Ross Gammon
a88ae843e3 Update copyrights 2019-09-04 21:44:31 +01:00
Ross Gammon
71931e2e2e Merge last 5.0.2 debian release information into 51 maintenance branch 2019-09-04 21:44:31 +01:00
Nick Hall
e817b3cc4e Merge pull request from sebschub:maintenance/gramps51 2019-09-04 21:35:03 +01:00
Sebastian Schubert
7519561027 Add optional fontconfig package to README.md 2019-09-04 21:31:55 +01:00
Sebastian Schubert
54944968cc Fix typo in NEWS 2019-09-04 21:31:55 +01:00
Zdeněk Hataš
6689ebd133 Update Czech translation 2019-08-30 12:52:25 +02:00
Zdeněk Hataš
e92a89e90f Update Czech translation 2019-08-29 12:23:16 +02:00
Leonhaeuser
9d167aa0e4 German translation updated 2019-08-25 11:47:42 +02:00
John Ralls
3e54390047 Release Gramps-5.1.0 on Mac. 2019-08-24 16:20:14 -07:00
John Ralls
40a81ae8eb An entitlements plist for codesigning Gramps.
Python is an interpreter and therefore needs to create executable
memory. Since it doesn't know how to sign that memory it requires
the allow-unsigned-executable-memory entitlement to run in a hardened
runtime. One must apply this entitlement to both Gramps.app and
Gramps.app/Contents/MacOS/dot when codesigning them.
2019-08-24 16:20:14 -07:00
John Ralls
ff6d9a0936 Fix graphviz and exiv2 download URLs. 2019-08-24 16:20:14 -07:00
John Ralls
6d4e4bd12d Update dependency versions and download paths. 2019-08-24 16:20:14 -07:00
vantu5z
77d533f930 update Russian translation 2019-08-22 14:06:13 +03:00
pehlm
90dcc9b9ea Update Swedish translation with the new gramps.pot 2019-08-22 12:20:56 +02:00
prculley
f823e4f126 Bump to 5.1.1 2019-08-21 13:55:22 -05:00
prculley
a833dfb3ac Prepare for 5.1.0 release 2019-08-21 13:46:45 -05:00
prculley
f6a5c9166e Update translation template for new release 2019-08-21 12:07:16 -05:00
Paul Culley
ee5f2fa600 Fix CSV import for multiple place enclosed by on multiple imports ()
Fixes 
2019-08-21 12:06:44 -05:00
Paul Culley
ba6254ca3f Fix exception when merging with active sidebar filter ()
Fixes 
2019-08-21 12:05:59 -05:00
Paul Culley
7258bd9fd6 Fix GEDCOM importer for SOUR/REFN combinations ()
Fixes 
2019-08-21 12:03:56 -05:00
Paul Culley
49632d8789 Add support for GEDCOM import _FREL/_MREL tags in INDI/FAMC ()
Improve support for GEDCOM export of _FREL/_MREL in INDI/FAMC

Fixes 
2019-08-18 10:09:29 -05:00
niememat
5f101300af Fix translation in Finnish 2019-08-13 20:23:37 +03:00
Serge Noiraud
d89557acf4 Narrative web: some strings not translated ()
* Narrative web: some strings not translated

The confidence and the date are not translated in the family map page.
The date doesn't use the specified date format.

Fixes 

* Narrative web: another string to translate
2019-08-11 22:05:18 +02:00
Serge Noiraud
cdd3177b19 Narrative web: markers incorrectly placed. ()
* Narrative web: markers incorrectly placed.

In the map pages, the markers are not placed where it should be.
reproducible when zoom in/zoom out.

Fixes 

* Narrative web: background not correctly set.

If you use the Web_Basic-Cypress.css, the foreground and background
use the same color, so you see nothing.
you must hover the fields to see the text
2019-08-11 21:57:01 +02:00
Serge Noiraud
bb8ce0cce6 Narrative web: Sort problem with places. ()
* Narrative web: Sort problem with places.

Fixes .

Places list is not sorted depending on the selected language.

If you start gramps in english or another language then try to generated
a narrative web report in another language, the navigation alphabet is
incorrect. This is true for the place list and the person list.
The problem was related to pyICU.

* Narrative web: some pylint improvement.
2019-08-11 21:50:50 +02:00
prculley
bb255c8529 Merge with Gramps50 2019-08-09 08:53:17 -05:00
prculley
fe87150c14 Bump to v5.0.3 2019-08-08 12:09:55 -05:00
prculley
f6b81c9da8 Prepare for Release 5.0.2 2019-08-08 12:01:46 -05:00
Paul Culley
e59aa58c63 Fix some Gramplets not updating during tree changes after db change. ()
Fixes 
2019-08-08 11:50:47 -05:00
Paul Culley
3e2e8a837f Fix Events Grampslet for bad sort order on dates/ages ()
Fixes 
2019-08-08 11:49:55 -05:00
Paul Culley
c0ff650748 Fix References Tab to update on Deletes of items when editor is open ()
Fixes 
2019-08-08 10:00:14 -05:00
Paul Culley
44104671b9 Fix GEDCOM import for better support of TMG ()
Fixes 
2019-08-08 09:59:14 -05:00
Paul Culley
afa8e73486 Fix Edit Link 'New' button to work ()
Fixes 
2019-08-07 13:49:31 -05:00
Paul Culley
27c38018fa Fix GEDCOM importer to properly handle multiple surnames per 5.5.1 ()
Fixes 
2019-08-07 13:48:49 -05:00
Serge Noiraud
96fcef2a84 Narrative web: Sort problem with places. ()
* Narrative web: Sort problem with places.

Fixes .

Places list is not sorted depending on the selected language.

If you start gramps in english or another language then try to generated
a narrative web report in another language, the navigation alphabet is
incorrect. This is true for the place list and the person list.
The problem was related to pyICU.

* Narrative web: some pylint improvement.
2019-08-01 08:31:39 -05:00
Paul Culley
7e7dd68b58 Fix Navigator sidebar so can change view type with proper resize ()
Fixes , 
2019-08-01 08:27:38 -05:00
Paul Culley
ab5a810990 fix crash when using sidebar filter and merging in another view ()
Fixes , , 
2019-07-31 16:50:22 -05:00
Paul Culley
f7d58f4c28 Fix AncestorTree so add siblings to center person works ()
Fixes 
2019-07-31 16:48:55 -05:00
Paul Culley
17dc7f7d23 Fix Preferences dialog so General tab appears first, not Symbols ()
Fixes 
2019-07-31 16:47:18 -05:00
Paul Culley
5c6a0ebff3 Fix graphs on Windows for font selection not working ()
Fixes 
2019-07-31 16:46:09 -05:00
Paul Culley
949296a801 Fix graphs on Windows for font selection not working ()
Fixes 
2019-07-31 16:45:15 -05:00
Paul Culley
15e033c02c Fix dbapi reindex_reference_maps tool to properly close transaction ()
Fixes 
2019-07-31 16:35:05 -05:00
niememat
ede3707b51 Update finnish translation 2019-07-20 22:01:22 +03:00
vantu5z
0b6911f0da update Russian translation 2019-07-18 08:40:50 +03:00
Paul Culley
3fccf5a9cb Fix crash when addon/plugin contains an id with space ()
The updated uimanager and managedwindow uses the plugin id to create actions for plugins that make a window to support the menus. If the plugin id contains a space, Gramps crashes.

Fixes 
2019-07-11 11:01:47 +10:00
Paul Culley
80749afd09 Fix zoom via mouse wheel in media event editor selectionwidget ()
also fixes zooming with scroll bars always present

Fixes 
2019-07-11 10:52:36 +10:00
Lajos Nemeséri
cce5a26a9b Update Hungarian (hu) translation () 2019-07-11 10:42:04 +10:00
Leonhaeuser
83957ecdf0 update German translation 2019-07-09 20:20:37 +02:00
Serge Noiraud
804c03b286 Geography: pins very big when related to 2 places ()
Fixes 
2019-07-05 13:13:24 +10:00
Serge Noiraud
bb3a1d3609 OSM forward all http resquest to https. ()
After asking the OSM support, I was told OSM forward all http request to
https when we use .org url.
So it should work in all cases.

This has an energy cost, so it would be good for the planet to change
http to https.
2019-07-05 12:55:18 +10:00
Paul Culley
a9b4e22fb0 Fix duplicated accelerators ()
Fixes 
2019-07-05 12:11:30 +10:00
vantu5z
72d8d2d3cf update Russian translation 2019-06-21 11:09:19 +03:00
vantu5z
b039a199d7 update Russian translation 2019-06-21 10:53:46 +03:00
Leonhaeuser
dda257bcd6 Update German translation 2019-06-20 22:09:15 +02:00
prculley
ce30c874d1 Merge with Gramps50 2019-06-16 13:35:35 -05:00
pehlm
2f97ec7acd Update Swedish translation with the new gramps.pot 2019-06-16 19:44:00 +02:00
prculley
d2bad63603 Fix typo in 'Fix some XML fragments to aboid double translations' commit 2019-06-16 09:14:42 -05:00
niememat
9a699aef81 Fix translation in Finnish 2019-06-16 11:44:04 +03:00
Nick Hall
3a505745f3 Change default database backend to SQLite 2019-06-15 17:59:43 +01:00
Nick Hall
2da2166004 Merge pull request from prculley:bug11151 2019-06-15 17:36:26 +01:00
prculley
6d67dff94c Fix some XML fragments to aboid double translations 2019-06-15 17:32:40 +01:00
prculley
1f778e8ce1 Fix Language updoate_po.py to scan for XML fragments in Python files
Fixes 
2019-06-15 17:32:29 +01:00
prculley
81a1b675af Fix CLI import so that different db types can be used
Fixes 
2019-06-15 17:21:34 +01:00
Mattkmmr
1b7b20756f Fix metadataviewer.py ()
Fix so that metadata is actually detected and displayed (signal was not getting detected).
2019-06-14 10:57:15 +10:00
Mattkmmr
f24e29998d Fix metadataviewer.py ()
Fix so that metadata is actually detected and displayed (signal was not getting detected).
2019-06-14 10:55:13 +10:00
niememat
eff15c1ce3 Update finnish translation 2019-06-12 11:55:03 +03:00
SNoiraud
2c15e382bd Problem during merge: One line disappeared. 2019-06-12 10:11:40 +02:00
John Ralls
b3715efea9 Fix graphviz and exiv2 download URLs. 2019-06-11 14:59:54 -07:00
John Ralls
cfe8c42d28 Update dependency versions and download paths. 2019-06-11 12:08:32 -07:00
SNoiraud
1ef467c9e3 Solves several problems following merge of PRs 2019-06-11 14:29:32 +02:00
prculley
7b3c86a4f5 Fix _Manage Family Trees... string to add ... back in 2019-06-10 14:02:49 -05:00
Serge Noiraud
7dc532c743 Avoid comma in a lat/lon entry field. ()
* Avoid comma in a lat/lon entry field.

* Be more precise on the tooltip text.

* conv_lat_lon should not accept comma in lat/lon

* Tests failed with comma in lat/lon

* geoplaces fails to center if bad lat/lon
2019-06-10 17:27:03 +10:00
Serge Noiraud
2951a0acf0 Avoid invalid characters in the entry field ()
In this patch:
 1 - If you copy/paste strings from another application,
     you can add CR, LF, TAB and other special characters. I remove them.
 2 - suppress all leading and trailing spaces for these entry field.
2019-06-10 17:12:48 +10:00
milotype
6d53c3a91c Update Croatian translation () 2019-06-10 11:57:46 +10:00
Mattkmmr
73705b08cd Fix '_hasattributebase.py' ()
Check all values of an attribute type and not only the first one.

Check all values of an attribute type. If a person has several attributes with the same type/key the current behaviour is that only the first value is checked.

Example Person X Atrributes:

    (Key=occupation: Value=farmer)
    (Key=occupation: Value=soldier)
    (Key=occupation: Value=smith)

=> Currently: Filter 'persons with attribut' (Key=occupation, Value=farmer) returns Person X, but no return of Perrson X for (Key=occupation, Value=soldier) or (Key=occupation: Value=smith).

=> After fix: Person X is returned for all three filter searches.
2019-06-10 11:47:37 +10:00
Paul Culley
7ca19214d6 Fix crash for multiple deletes in one transaction ()
Fixes 
2019-06-10 11:39:54 +10:00
Paul Culley
f123cac308 Fix uimanager, menu translations ()
Fixes 
2019-06-10 11:25:34 +10:00
Ed Bennett
87955ed2e9 Adjust translation strings for unmarried partners to give correct text in English ()
Fixes 
2019-06-10 11:07:22 +10:00
Mattkmmr
c61e79be76 Fix '_havechildren.py' person filter ()
* Fix '_havechildren.py' person filter

Check all families of a person for children and not only the first family

* Update 'person_rule_test.py' and '_havechildren.py'

Correct number for persons who have children is 905
2019-06-10 10:43:26 +10:00
niememat
135acff4e8 Update finnish translation 2019-06-04 11:33:13 +03:00
Leonhaeuser
0910bebe56 update German translation 2019-05-26 21:19:52 +02:00
Ed Bennett
805e07d09a Allow an option to not use hexagons for those of unknown gender
Fixes 
2019-05-20 10:23:33 +01:00
SNoiraud
e6324fe3d8 Add a mailto choice to Internet Address
Fixes 
2019-05-20 10:17:30 +01:00
Serge Noiraud
75d2f3dd00 Add option to show the Gramps ID in parenthesis in the fan chart
Add option to show gramps id.
Improve pylint score for the modified files.

Fixes 
2019-05-20 10:16:10 +01:00
John Ralls
9d3f17e377 Disable vala for gexiv2, it breaks introspection. 2019-05-19 21:01:55 -07:00
Leonhaeuser
aefa262cd1 update German translation 2019-05-19 21:24:23 +02:00
niememat
a6ef08d4d3 Update finnish translation 2019-05-18 11:17:18 +03:00
vantu5z
9eb04593f5 update Russian translation 2019-05-16 16:22:53 +03:00
pehlm
45c06cac54 Update Swedish translation 2019-05-15 14:39:07 +02:00
SNoiraud
77124496e8 New tool to suppress leading and trailing spaces.
This tool is looking for place names with leading or/and trailing spaces.
It also looks for in the first name and surname.

For each entry which contains leading or trailing spaces,
a row is added in a treeview.
You can see where the spaces are for each row as the name is underlined.

If you double click on the row, you can edit the Place or the Person.

Fixes 
2019-05-14 19:06:19 +01:00
matt
6bca4083cb Add occupation and residence events and attributes in the import
User can now add the following columns in the csv import file for a person:
- Occupation description
- Occupation date
- Occupation place
- Occupation source
- Residence date
- Residence place
- Residence source
- Attribute type
- Attribute value
- Attribute source
the corresponding events will be added to the person.
The user can put several lines for the same person if two occupations are known, one event per line will be created.
2019-05-14 10:38:11 +01:00
prculley
3ba2253ac0 New feature to allow added rules to define their own GUI elements 2019-05-13 19:30:03 +01:00
prculley
eb36980715 New feature to allow new rules in their own catagory in addons 2019-05-13 19:30:03 +01:00
prculley
8366ceb896 Allow filters/rules via plugin without fail on restart 2019-05-13 19:30:03 +01:00
prculley
5311cc7744 Fix Python time.clock deprecation 2019-05-13 18:47:13 +01:00
prculley
0213e65ff0 Fix PythonDeprecationWarning for collections.abc 2019-05-13 18:46:39 +01:00
prculley
c82ec4c65b Bump required Python version to 3.3 2019-05-13 18:45:38 +01:00
Keepun
63cd18ebfb Relationship Graph: Father and Mother are connected by an invisible line. 2019-05-13 12:37:27 +01:00
SNoiraud
52b9fe8276 Have a better narrative web site
10341:
When we are on a mobile phone or a small device, we suppress the navigation tab.
In place, we have a new icon on the upper left which is used to show the dropdown menu.
Thanks to Theo van Rijn for showing me the way to do that.

10962:
For Home, Introduction and Contact, If we have an image and this image contains regions,
show the regions. We can go directly to the person page associated to this region.
If we click on the image, we go directly to the associated media page. This will be true only if we selected "include images and media objects" and "create and only use thumbnail" is unselected

11018:
The first line identifying a family will be more legible.
The link is not useful in the parents and pedigree section for the current person.
Adapt some css files.

11029:
sort the place references either by date or by name.

Resolves , , , 
2019-05-13 11:44:12 +01:00
SNoiraud
cd092897bc GEPS 039: Genealogical symbols in gramps
Gramps should be able to use genealogy symbols everywhere.

Several kinds of use for the genealogical symbols :

    The graphical interface (GUI, editors, graphical views, ...)
    The Web reports (webcal, narrativeweb, ...)
    The Text reports (odf, rtf, pdf, ...)
    The graphical reports (odf, rtf, svg, ...)

Resolves 
2019-05-13 11:17:12 +01:00
vantu5z
735e17a8cb Enhance layout of the preferences dialog 2019-05-12 19:31:13 +01:00
khrys63
08a4aeff7b Add Ahnentafel option on hourglass 2019-05-12 18:23:37 +01:00
Nick Hall
0fb1742362 Merge pull request from SNoiraud:webcal 2019-05-12 16:13:15 +01:00
SNoiraud
e4564ec86e Webcal: better help msg for the after year option. 2019-05-12 16:09:36 +01:00
SNoiraud
76961fd675 Webcal: Include only events after year 2019-05-12 16:09:36 +01:00
SNoiraud
2f9704c680 Better quality code for codacy and pylint 2019-05-12 16:09:36 +01:00
SNoiraud
98a38cde57 Webcal: add death event
Fixes 

add some cleanup
use html_escape instead of _escape
2019-05-12 16:09:36 +01:00
jose1711
b5e9795ccf Fix typo in Slovak translation 2019-05-12 15:22:43 +01:00
prculley
4f14cbc12c Add buttons for arrangement of GalleryTab media order 2019-05-12 15:15:38 +01:00
prculley
b765d7eae0 On restart after crash, offer to run Check & Repair 2019-05-12 15:14:58 +01:00
Sam Manzi
3f28b5fcb5 Add tooltip for Gramplet Bar
To improve discoverability of the Gramplet Bar Menu (Currently a nameless down arrow at end of each Gramplet bar title tab) add a tooltip.

Issue 
2019-05-12 13:44:13 +01:00
caigner
903069fd34 changed 'Edit ->Set Home Person' to 'Edit -> Set Home Person' 2019-05-12 13:38:03 +01:00
SNoiraud
03d0baa2bf extrapage can now point to joomla, drupal, ... 2019-05-12 13:29:03 +01:00
Nick Hall
3096c2b09a Remove extraneous whitespace after assignment 2019-05-12 11:41:11 +01:00
Nick Hall
976edfbf1d Remove extraneous whitespace before assignment 2019-05-12 10:21:16 +01:00
Nick Hall
2a5fee85c5 Use theme settings for the error state of entry widgets
Use the current Gtk theme settings for the appearance of the
ValidatableMaskedEntry widget in its error state.  This avoids
problems with dark themes.

Fixes .
2019-05-12 07:22:24 +01:00
Nick Hall
1b1452c7b7 Remove extraneous whitespace before colon 2019-05-12 07:00:44 +01:00
Nick Hall
021ea6baab Allow _T_ as a valid function name
This is used for deferred translations.
2019-05-12 06:59:48 +01:00
Nick Hall
50ed9268f9 Replace _2BUTTON_PRESS by DOUBLE_BUTTON_PRESS 2019-05-12 06:59:10 +01:00
Piotr Kasprzyk
f4832dd785 Adjust - Polish translation 2019-05-12 06:58:30 +01:00
Balló György
a94fc04890 Fix AppStream metadata validation 2019-05-12 06:51:44 +01:00
Keepun
488eaced8c vCalendar: Convenient display on mobile devices. 2019-05-12 06:50:16 +01:00
Jonas Hahnfeld
9442c1ef7e Add first class support for Occupation attribute
This was already used in PersonDetails and (incorrectly) in TreeDoc.
Add it to the list in AttributeType, provide translations and fix
usage in TreeDoc in case the user is not running with English translation.
2019-05-12 06:48:56 +01:00
prculley
67c8fd18cb Merge with Gramps50 branch 2019-04-23 11:01:07 -05:00
système
1a0390f623 typo on french translation 2019-04-14 19:30:04 +02:00
Paul Culley
e9412a2479 Fix failure after Gedcom import if missing objects were found ()
Fixes 
2019-04-14 10:42:05 +10:00
John Ralls
c615b4dc32 [maclocale] Fix none type has no len().
Fixes 
2019-03-26 08:52:29 -07:00
Paul Culley
450217a636 Fix Gedcom import so it doesn't create completely empty Birth events ()
Fixes 

Note: a completely empty birth event is removed by Check and Repair; this is wrong in that sometimes we know a person is born, but not date/place. In Gedcom this is indicated by "1 BIRT Y" lines.

So this PR adds a description to the birth event. This is not an issue for other event types, the C&R tool sees the non-default type and leaves it alone, but birth is the default type.
2019-03-17 16:51:15 +11:00
milotype
9a398cbcfd Update Croatian translation ()
update with current maint50 pot file
2019-03-17 16:10:15 +11:00
Paul Culley
aff888a0b5 Fix Relationship view so ages are according to Preferences ()
Fixes 
2019-03-17 15:18:00 +11:00
Paul Culley
71ad5ffb04 Fix Person Editor Events to properly update during external changes ()
like Event delete or update.

Fixes 

Looks like someone simply forgot to register the handles with the callman...

I checked other similar cases and did not see any other issues.
2019-03-17 15:02:29 +11:00
Paul Culley
100d6d0672 Gedcom fixes for mime and finding media ()
* Fix Gedcom import/export for more comprehensive mime types

Fixes 

* Fix Gedcom import to better find media files

Issue 

* Fix Gedcom test files for media mime and error location message
2019-03-17 14:44:42 +11:00
Serge Noiraud
d96b6d19b8 Unhandled exception in Geography editor ()
Fixes 

better pylint score
remove unused code
2019-03-17 14:26:11 +11:00
Paul Culley
bf4b3962bc Fix relationshippathbetween filter rule when parent is missing ()
Fixes 

Another HandleError issue, this one hidden by the raw except. Filter rule just did not work if a family in the path had a missing parent.
2019-03-17 14:12:11 +11:00
Paul Culley
51f44c2fd7 Fix Graphs that use graphdoc pdf via Ghostscript with multi-page ()
for poor font rendering of some characters (thanks to Ken Sharp)

Fixes 
2019-03-17 13:55:54 +11:00
Paul Culley
00c74d139a Fix example gramps files so media is found ()
Fixes 

On Windows the location of the example files is "c:\program files\grampsaio64-5.0.1\share\doc\gramps\example\gramps".

On my Ubuntu install from the .deb file these files are in "/usr/share/doc/gramps/example/gramps"

Since the default GRAMPS_RESOURCES value for each system is the 'share', to find the media files we need to append "/doc/gramps/example/gramps" to have the example files work properly.
2019-03-17 13:41:35 +11:00
Paul Culley
54c3b29793 fix finddupes tool when run from Match Threshold screen again ()
after merge.  Avoids HandleError because potentials dict is not
cleared.

Fixes 
2019-03-17 13:26:06 +11:00
vantu5z
d1ee70a0d2 update Russian translation 2019-03-12 14:38:06 -03:00
Bernard Banko
c4f89c4034 Slovenian translation correction 2019-02-27 19:00:02 +01:00
système
8615021d37 update french translation 2019-02-16 09:54:45 +01:00
système
c3c006c465 update (partial) french translation 2019-02-14 12:21:22 +01:00
système
b389842af1 merge with last template 2019-02-14 11:43:03 +01:00
système
aba0303260 bug 10841: Typos in the French translation 2019-02-14 11:06:16 +01:00
système
3bba6f57e4 fix a typo 2019-02-14 10:42:29 +01:00
Paul Culley
f84c2ecf11 Fix Gedcom import for multiple notes on OBJE (MULTIMEDIA_LINK) ()
Fixes 
2019-02-14 15:32:16 +11:00
Paul Culley
7a82b78ff9 Deal with SQLite db corrupted by None name mapping ()
Fixes 
2019-02-14 15:05:01 +11:00
Paul Culley
39a0d8c648 Fix XML import to add tags to Events, Sources, Places, Repos, Cits ()
Fixes 
2019-02-14 14:45:28 +11:00
Paul Culley
62f8049d6a Fix for delete of a ref'd primary obj while editing an added obj. ()
Also fixed to update the ref'd obj on changes from outside the
editor.

Fixes , , , 
2019-02-14 14:31:21 +11:00
Paul Culley
d65ad470d6 Fix Place Tree view when using enclosed by sidebar filter ()
the filter was incorrectly using a standard place cursor instead of
the tree cursor.

Fixes 
2019-02-14 14:08:53 +11:00
Bernard Banko
be98b673df Slovenian language update 2019-02-10 18:26:31 +01:00
Luigi Toscano
f088d940a6 Italian translation updates
- restore few strings from the welcome Gramplet that got lost
  after the split of a messages in smaller messages;
- fix few errors.
2019-02-10 16:09:33 +01:00
Luigi Toscano
92328d4332 Refresh the Italian po file 2019-02-10 16:01:18 +01:00
Paul Culley
b4e4dbbcf2 Fix EditFamily for adding a child to single parent family with ()
Surname guessing set to combination.

Fixes 
2019-02-03 09:30:45 +11:00
Paul Culley
4c6c052729 Fix Descendent Tree report for crash when person has multiple ()
families and one of them doesn't have a spouse.

Fixes , , 
2019-01-23 08:44:40 +11:00
Leonhaeuser
257b091cac Update German translation 2019-01-22 18:39:12 +01:00
Paul Culley
abcf304ea7 Fix Name editor crash after clearing a group_as name on dbapi dbs ()
Fixes 
2019-01-22 14:19:25 +11:00
Serge Noiraud
dba752c328 We should stay on the selected item in list views: ()
Fixes 

When we try to merge two objects, we should stay on the selected row
in list views.
This problem occurs for persons, families, events, places, sources,
citations, repositories, media and notes.

Another problem:
In case we select the first family and select the gramps_id of the
second family, the new gramps_id is ignored: problem in MergeFamilyQuery
2019-01-22 13:45:04 +11:00
Paul Culley
0dd2b9d0fd Fix Relationship Graph; extra people when using filters & subgraphs ()
subgraph option wasn't checking parents against filtered results

Fixes 
2019-01-22 13:31:22 +11:00
Christian Aigner
520c81a355 [German] Change Text on Settings -> Colour ()
* Unified the labels.
     The overall appearance looks now a bit cleaner.

   * Fixed a grammatical bug (das -> dass)
2019-01-22 13:16:40 +11:00
Paul Culley
807eab7cd9 fix Place Format Editor file save/load for difficult names ()
Fixes 
2019-01-22 13:00:16 +11:00
Serge Noiraud
2bc5f63406 Not all place types appears on family lines Graph () 2019-01-22 12:45:54 +11:00
Christian Aigner
344dd69a9d Corrections in 'Tip of Day'; changed 'Schlussnotizen' to 'Quellennachweis' () 2019-01-22 12:03:45 +11:00
Richard Clay
29b0e824a2 Some pylint improvements 2019-01-14 19:57:36 +00:00
Richard Clay
fb886c5954 Add option to hide empty information on statistics chart 2019-01-14 19:55:12 +00:00
Nick Hall
06aa83e263 Merge pull request from prculley/safe 2019-01-14 19:39:25 +00:00
prculley
051311bbbd New CLI commands; 'safe' mode and 'default' 2019-01-14 19:38:43 +00:00
prculley
f4c94c48b4 Fix config file load for bad/old style Python syntax 2019-01-14 19:38:43 +00:00
prculley
c04b6f6fdf Filter Rule editor, save pane position 2019-01-14 19:29:25 +00:00
Nick Hall
455cd151b7 Merge pull request from prculley/dnd2 2019-01-14 19:23:11 +00:00
prculley
4dd6abfe85 Remove old Gtk drag/drop bug fix, no longer needed 2019-01-14 19:20:37 +00:00
prculley
73402dfb05 Drag/drop only one type of source 2019-01-14 19:20:36 +00:00
prculley
a1c02bda9b Filters optimization; Use cache proxy with filters in views 2019-01-14 19:10:21 +00:00
prculley
67cf51bbf3 Filter fixes to prevent MatchesFilter types from running multiple times 2019-01-14 19:07:00 +00:00
Nick Hall
77cc12a42e Replace eval with getattr when loading plugin classes 2019-01-12 19:10:40 +00:00
SNoiraud
290815cba8 Geography places: add color for custom places name
Fixes 
2019-01-12 19:07:42 +00:00
SNoiraud
979a477773 NarrativeWeb: add enclosed by and encloses (place)
Fixes 

includes the problem with private places (see PR 679)
2019-01-12 19:04:28 +00:00
prculley
2e17c65a2c Fix Delete dialogs to all canceling multiple deletes more easily
Fixes 
2019-01-12 18:58:34 +00:00
vantu5z
757854e566 update Russian translation 2019-01-12 19:58:46 +03:00
Alois Poettker
a592f7b2fd Show death/burial information only if person is proabably dead 2019-01-12 16:17:59 +00:00
Paul D.Smith
03a89c73e3 Add compact Ancestry trees using Buchheim/Walker algorithm
This enhancement adds a new 'compact' field to the Narrated
Web Report. A compact tree is one that is not a simple binary
layout but uses the algorithm of Buchheim/Walker to create a
layout that is sensible but also compact.

Creating a compact layout is slower than a simple binary
tree but the results are significantly improved and do not leave
large areas of whitespace where there are no nodes to be shown.
2019-01-12 14:39:56 +00:00
Sam Manzi
45d3c43680 Remember location of Sort Events Tool ()
Issue 
2019-01-12 14:04:30 +11:00
Zdeněk Hataš
732f9fae16 Update Czech translation 2019-01-11 18:01:58 +01:00
Paul Culley
c7f2b19784 Fix Media editor when using double click the preview of added media ()
Fixes 
2019-01-06 12:11:12 +11:00
Leonhaeuser
30628cf6c7 update German translation 2019-01-05 11:26:38 +01:00
niememat
36e43562e7 Fix and updated translation in Finnish 2019-01-05 07:39:31 +02:00
P Ekholm
80b99925bd Update Swedish translation 2019-01-04 17:08:55 +01:00
prculley
d78aa8cd8d Update gramps.pot 2019-01-02 12:13:11 -06:00
prculley
4087ae800c Revert "update gramps.pot", the update_po.py doesn't work with glade files
on Windows

This reverts commit fcfecef459.
2019-01-01 15:58:05 -06:00
prculley
fcfecef459 update gramps.pot 2019-01-01 11:35:47 -06:00
prculley
7131eec356 Fix update_po.py to run on Windows 2019-01-01 11:33:52 -06:00
caigner
3ada5081b5 German translation corrections 2018-12-31 18:38:40 +00:00
Leonhaeuser
e4450cb34b update German translation 2018-12-30 12:44:00 +01:00
Serge Noiraud
97aedaae99 Avoid leading and trailing spaces when copy/paste ()
coordinates from a map provider.

Fixes 
2018-12-29 16:41:24 +11:00
John Ralls
285fbf2c97 Set correct font resolution for Mac when drawing text directly to cairo. ()
Fixes 
2018-12-29 16:01:14 +11:00
Pär Ekholm
6e7e233155 Add some untranslated strings in po/sv.po 2018-12-28 21:47:44 +01:00
Pär Ekholm
436ca0df98 Merge remote-tracking branch 'upstream/maintenance/gramps50' into maintenance/gramps50 2018-12-28 21:42:55 +01:00
vantu5z
b17c230f56 update Russian translation 2018-12-28 05:37:19 +03:00
prculley
3cb57426b1 remove crlf line endings on da.po 2018-12-26 09:44:03 -06:00
prculley
acfbb0a763 fixup some merge issues in po files 2018-12-26 09:41:03 -06:00
John Ralls
255caf1ab7 Remove extraneous setting of GTK_IM_MODULE_FILE.
Fixes 
2018-12-24 10:15:11 -08:00
prculley
1b824c410b Merge with gramps50 2018-12-23 09:57:37 -06:00
Zdeněk Hataš
7b8666e454 Update Czech translation 2018-12-22 16:24:28 +01:00
RossGammon
9e9d4e6369 Update debian files after 5.0.1 release () 2018-12-21 10:09:29 +11:00
prculley
508df3048d Bump to 5.0.2 2018-12-20 11:20:59 -06:00
Pär Ekholm
f921bba612 Merge remote-tracking branch 'upstream/maintenance/gramps50' into maintenance/gramps50 2018-11-29 10:25:48 +01:00
Paul Culley
6cdc88e6f8 Fix Person Sidebarfilter when using 'Event' and Reg expressions ()
Fixes 
2018-11-28 15:10:30 +11:00
Paul Culley
a9748571f3 Fix Find Duplicate People; exception when deleting someone shown ()
outside of the tool
Fixes 
2018-11-28 12:07:23 +11:00
Pär Ekholm
c7d552c238 Merge branch 'maintenance/gramps50' of https://github.com/gramps-project/gramps into maintenance/gramps50 2018-11-24 18:20:06 +01:00
Pär Ekholm
63610d0651 Merge remote-tracking branch 'upstream/maintenance/gramps50' into maintenance/gramps50 2018-11-20 10:16:19 +01:00
Pär Ekholm
b43b0fa77f Update po/sv.po - all strings complete 2018-11-15 18:14:50 +01:00
Pär Ekholm
f20dce51e8 Update po/sv.po 2018-11-14 20:14:59 +01:00
Pär Ekholm
254e196b2b Update po/sv.po 2018-11-14 19:41:46 +01:00
Pär Ekholm
edc214221e Update po/sv.po 2018-11-13 18:37:02 +01:00
Pär Ekholm
adfc1b8aee Update po/sv.po 2018-11-12 17:49:09 +01:00
Pär Ekholm
49f56bcc46 Update po/sv.po 2018-11-11 17:15:45 +01:00
Pär Ekholm
01efa725ce Update po/sv.po 2018-11-10 17:51:55 +01:00
Pär Ekholm
22b7f28edc Merge remote-tracking branch 'upstream/maintenance/gramps50' into maintenance/gramps50 2018-11-10 10:41:51 +01:00
Pär Ekholm
7247073a03 Merge remote-tracking branch 'upstream/maintenance/gramps50' into maintenance/gramps50 2018-11-09 19:42:17 +01:00
Pär Ekholm
e5fedef66a Update po/sv.po 2018-11-09 19:28:52 +01:00
Pär Ekholm
c167cfa921 Update po/sv.po 2018-11-08 19:22:33 +01:00
Pär Ekholm
9eec554d4a Update po/sv.po 2018-11-08 18:30:57 +01:00
Pär Ekholm
c81b3596ec Update po/sv.po 2018-11-08 14:31:35 +01:00
Pär Ekholm
6c2179dc2e Update po/sv.po 2018-11-08 12:25:02 +01:00
Pär Ekholm
de1a4fec22 Update po/sv.po 2018-11-07 19:08:51 +01:00
Pär Ekholm
f0ebaa3bc1 Update po/sv.po 2018-11-07 16:17:55 +01:00
prculley
263a082afe Merge in changes from Gramps50 2018-10-29 09:32:35 -05:00
Richard Clay
dd9ddab849 In personsidebarfilter, search on each part of name
Instead of requiring that the entire search string matches a single one of the Person's names, the function will require that each word in the search string matches any of the Person's name fields.

Fixes 
2018-10-20 21:30:20 +01:00
Malte Renken
cfa278886b RelGraphReport: Add an option to omit "irrelevant" family nodes 2018-10-12 20:58:04 +01:00
MJBMZ
1c430a6b91 Replace rounded corners checkbox by dropdown
It now allows rounded corners to be set more explicitly for
different genders (None/Male/Female/Both).
2018-10-12 20:25:51 +01:00
jose1711
b0eb712933 Do not use hyphen for living persons in hourglass graph 2018-10-12 19:36:42 +01:00
Jgon6
51a7ad9483 Include death anniversaries as an option in the birthdays report
Added the optional ability to list the anniversry of peoples deaths in
the birthday and anniversary report

Resolves 
2018-10-12 19:19:59 +01:00
Jgon6
d6e9d62fad Add an option to show years in the birthday report
Added an option to the birthday report that allows for the year of birth
(or in the case of a wedding it's year) to be printed in the report.

Resolves 
2018-10-12 19:19:59 +01:00
Jgon6
3bac4a1036 Added symbols to the birthdays report showing the type of event
Issue 
2018-10-12 19:19:59 +01:00
Jgon6
1995a7068c Birthday report dead indicator now user defineable
Fixed the birthday report so the dead icon is able to be set within the
options window
2018-10-12 19:19:59 +01:00
Jgon6
5dc06d023d Indicate if a person is dead in the birthdays report
Added a text option to have a string that will show after a persons name
in the birthday and anniversary report. This works for both birthdays
and anniversaries.

Issue 
2018-10-12 19:19:43 +01:00
SNoiraud
d98a1857dc Make relationships optional in narrative web
Fixes 
2018-10-12 18:46:39 +01:00
Paul Franklin
7da8811327 Setting the year as an ordinal number in Croatian
With this commit, the "master" version of the Statistics Chart
report will show a year as an ordinal number in Croatian.

So our translators will have until 5.1.0 is released to translate
the two new strings, in all the supported gramps languages.

Issue 
2018-10-07 23:45:40 -07:00
prculley
15db2dd603 Disable OSX specific menu items, added in 'Gramps' menu 2018-10-07 16:49:12 +01:00
prculley
97b15322d4 Add config option to use Toolbar Text 2018-10-07 16:49:12 +01:00
prculley
824bf7e40f Geps044 - Replace deprecated Gtk.UIManager, Gtk.Actions etc. 2018-10-07 16:49:12 +01:00
milotype
56fa261ef2 Better typography in graph reports
Replace hyphen with en-dash.
2018-10-07 16:16:19 +01:00
Robin van der Vliet
1efab19f1e Esperanto Translation Update eo.po ()
Made a lot of corrections and other stylistic improvements to the Esperanto file.
2018-09-27 11:21:15 +10:00
prculley
51e294f748 Fix up bad translation files after merge 2018-08-09 10:54:12 -05:00
Leonhaeuser
cb65fd93ca Reviewed German translation Thanks to bmendl 2018-08-09 10:35:49 -05:00
niememat
5b9600d835 Fix translation in Finnish 2018-08-09 10:35:15 -05:00
John Ralls
cf80d17040 File copy doesn't work if the glob can match directories. 2018-08-09 10:35:14 -05:00
John Ralls
d4f906f22d Install the docs/gramps directory in the bundle.
Fixes bug .
2018-08-09 10:35:14 -05:00
niememat
d189e334d8 Fix and updated translation in Finnish 2018-08-09 10:35:14 -05:00
Ross Gammon
a48a94d872 Update the Debian changelog after the 5.0.0 release 2018-08-09 10:35:13 -05:00
John Ralls
8e5dc220dc Release Gramps-5.0.0 on Mac. 2018-08-09 10:35:13 -05:00
Nick Hall
dca2f610dc Bump to 5.0.1 2018-08-09 10:34:31 -05:00
Nick Hall
3d1833e307 Release Gramps 5.0.0 2018-08-09 10:33:57 -05:00
Nick Hall
aa221cc3c7 Update Changelog and NEWS files 2018-08-09 10:33:19 -05:00
Nick Hall
51b7d1c420 Update translation template for new release 2018-08-09 10:30:58 -05:00
niememat
674d286f87 Fix translation in Finnish 2018-08-09 10:30:58 -05:00
John Ralls
0161c4b917 Correct binary test logic for primary mask.
state & get_primary_mask(another) tested (state & (primary | other)),
which will be true if state matches *either* primary *or* other, but
what is wanted in a not-negated test is state matching all bits of
(primary | other). match_primary_mask does that.

On the other hand there are also cases of "not state & (primary | other)".
no_match_primary_mask handles that, returning true if state matches none
 of the bits in (primary | other).

Fixes .
2018-08-09 10:30:57 -05:00
prculley
de31a42fc8 Fix BaseSelector to avoid long delay before display on large trees
Fixes 
2018-08-09 10:30:57 -05:00
SNoiraud
9c508de5fd Export options > Gui alignment issue
Fixes 
2018-08-09 10:30:57 -05:00
niememat
1b00d95ce4 New fix translation in Finnish 2018-08-09 10:30:57 -05:00
Espen Berg
78870decb8 Revised Norwegian bokmål 2018-08-09 10:30:56 -05:00
Espen Berg
1a5696eb2c Revised Norwegian bokmål 2018-08-09 10:30:24 -05:00
niememat
269d38da2c Fix translation in Finnish 2018-08-09 10:27:26 -05:00
Nick Hall
99f77b0a88 Fix dialog button order on non-Mac systems
Resolves .
2018-08-09 10:27:25 -05:00
De Tran
264fdda4d0 Fix and update Vietnamese translation
Resolves .
2018-08-09 10:27:24 -05:00
Sveinn í Felli
8092b88ad4 Update Icelandic translation 2018-08-09 10:12:17 -05:00
jose1711
3251e2ae88 Fix and update Slovak translation 2018-08-09 10:09:53 -05:00
jose1711
f718c5f8b4 Fix typo in translation 2018-08-09 10:09:53 -05:00
niememat
a96a446b47 Fix translation in Finnish 2018-08-09 10:09:53 -05:00
niememat
5658411acf Fix translation in Finnish 2018-08-09 10:09:53 -05:00
niememat
a4403d719e Fix translation in Finnish 2018-08-09 10:09:52 -05:00
Luigi Toscano
8597a10c40 Update Italian translation 2018-08-09 10:09:52 -05:00
Nick Hall
d0c0045dc1 Update English (British) translation 2018-08-09 10:09:52 -05:00
De Tran
868abdc0d9 Update Vietnamese translation 2018-08-09 10:08:37 -05:00
Kaj Mikkelsen
ebf88bf5c5 Update Danish translation 2018-08-09 10:08:35 -05:00
Lajos Nemeséri
c3814a4e42 Update Hungarian translation 2018-08-09 10:07:53 -05:00
John Ralls
52fe365919 Switch included moduleset to gitlab.gnome.org.
Fixes bug .
2018-08-09 07:21:18 -07:00
prculley
bc39dda9e7 Use msgcat merged po files instead of git merge versions 2018-07-13 07:35:36 -05:00
prculley
257275f169 Merge from gramps50 2018-07-12 11:10:22 -05:00
Espen Berg
9e61809b17 Received revised Norsk Nynorsk from Sigmund Lorentsen 2018-05-01 2018-05-17 21:30:15 +02:00
Espen Berg
9e2b935db1 revised Norwegian bokmål 2018-05-17 21:28:34 +02:00
Nick Hall
9a386574d8 Revert "Clone event w/o references (2nd pass, part B)"
This reverts commit 208feceb03.

Changes requested in the PR not made.  Such a change requires
discussion on the list first.
2018-05-12 23:09:27 +01:00
Nick Hall
90bdb0a840 Revert "Embedded Clone Event w. references (2nd pass, part A)"
This reverts commit ae322dbdc8.

Changes requested in the PR not made.  Such a change requires
discussion on the list first.
2018-05-12 22:59:52 +01:00
Alois Poettker
ae322dbdc8 Embedded Clone Event w. references (2nd pass, part A) 2018-04-23 11:00:26 +02:00
Alois Poettker
208feceb03 Clone event w/o references (2nd pass, part B)
Feature request 

This functionality in the Event list doubles an event with all the tags, citations, media, attributes and notes, but without the references. Its like an event addition, but with default values.
2018-04-23 11:00:26 +02:00
Paulo Henrique Moraes
32dd3a2e14 [pt_BR]Translation updates and corrections ()
- Portuguese (Brazil)
2018-03-15 11:26:59 +11:00
Jgon6
0ae51c9522 Changed behavior of "Look up with Map Services"
Removed the section that looked up by city, and country from the Map
Services lookup for Google and Open Street Map.

Resolves 
2018-03-03 17:35:51 +00:00
Nick Hall
59bd9f040d Merge branch 'gramps50' 2018-03-03 17:29:32 +00:00
Paulo Henrique Moraes
df00dd1f32 Brazilian portuguese update 2018-02-23 14:58:38 -03:00
niememat
ca49b56774 Update finnish translation 2018-02-20 18:22:28 +02:00
Nick Hall
19f8c3561c Merge branch 'gramps50' 2018-02-09 00:13:43 +00:00
Serge Noiraud
79ff9bc216 Geocoding: associate a lat/lon to a place name ()
* Geocoding: associate a lat/lon to a place name

Fixes 

* Some cleanup

* update README.md

* Remove url from message dialog
2018-01-18 09:11:51 +01:00
prculley
b54672d28d Leak (Uncollected Objects); allow user to cancel long screen update 2018-01-08 19:22:27 +00:00
mb06cs
6b42d71158 endoflinereport.py: sort generation during output 2018-01-06 13:32:43 +01:00
Paweł Tomkiel
ac593d814d fixing polish places translations 2018-01-04 23:07:42 +00:00
Nick Hall
617e2212c8 new gramps.pot translation template 2018-01-04 22:59:31 +00:00
Nick Hall
ad15ef7961 Merge branch 'gramps50' 2018-01-03 21:32:14 +00:00
niememat
406faa5603 Update finnish translation 2017-11-25 10:44:45 +02:00
Serge Noiraud
4e0d562208 Various Feature Requests in Narrative Web ()
Issue 
2017-11-23 09:40:52 +01:00
Serge Noiraud
43ef686622 Narrative Web Feature requests : ()
Sort "Surname" web page by given name and birth date.
Surname list doesn't use default name format

Fixes , 
2017-11-23 09:39:12 +01:00
Serge Noiraud
d59fe6b2af Display Lat/Lon optionally on places list page ()
Fixes 
2017-11-23 09:37:47 +01:00
Serge Noiraud
d677a1a785 Add extra page to narrativeweb. ()
Fixes 
2017-11-23 09:36:13 +01:00
Leonhaeuser
be776d6a31 updated German date handler: added some missing Latin month names and some old German month names 2017-10-05 21:34:23 +02:00
Nick Hall
1482fedb9c Merge branch 'gramps50' 2017-09-23 17:08:52 +01:00
Sam Manzi
00f8df60ce Revert "Tidy up mocking code ()[First commit]"
This reverts commit 8ebb4d35fa.
2017-09-23 07:50:48 +10:00
Jonathan Biegert
f31caf1ea4 enable Graphviz node port selection, optionable (p.r. 456)
This enables the headport and tailport attributes for all edges in
the Graphviz file. The default (off) value makes the arrows between
persons and/or family nodes attach their ends to the respective node
at any position. When this option is selected, the position facing
the node on the other side of the arrow is always chosen.
2017-09-17 17:20:23 -07:00
Nick Hall
8ebb4d35fa Tidy up mocking code ()[First commit] 2017-09-17 11:03:39 +10:00
Serge Noiraud
c5f2717623 Gramps 'Views' are not named in the window header ()
Resolves 
2017-09-12 10:05:46 +10:00
Serge Noiraud
e5d5cfbd3a Allow Home person to be set in Relationship and Pedigree view ()
Resolves 
2017-09-01 10:41:24 +10:00
Sebastian Schubert
bd5f6e4711 example.gramps: add some non-primary participants to events
The following additional participants were added:
Death of Garner, Anderson:
* Page, Elizabeth (Witness)
* Farmer, Miranda Keziah (Witness)
* Page, David (Informant)

Birth of Thornton, James Arthur:
* Jankowski, Margaret Jane "Maggie" (Witness)
* Garner, Raymond E. (Informant)

Marriage of Garner, Lewis Anderson and Martel, Luella Jacques:
* Garner, Robert W. (Witness)
* Martel, Henry (Witness)
* Page, Robert (Clergy)
* Blanco, L. J. (Clergy)
2017-08-08 12:41:54 +01:00
Leonhaeuser
e15deff4ed synced with gramps 50 2017-08-03 20:46:41 +02:00
romjerome
9d906c29a2 update french translation 2017-08-01 12:20:05 +02:00
romjerome
6577d43e4e merge forward (working release steps on gramps42) 2017-08-01 12:03:46 +02:00
Alois Poettker
1a065485e3 Extend Pro-Gen importer II
Adapted to Pro-Gen test fix, expanded functionality and fixed
minor bugs.
2017-07-27 19:05:52 +01:00
schoonc
009783a59a Add pycharm dir to .gitignore 2017-07-27 18:23:55 +01:00
Nick Hall
1b4f70c808 Fix permissions on leak gramplet 2017-07-27 18:18:53 +01:00
niememat
dd4a727521 Update finnish translation 2017-07-27 09:48:08 +03:00
Paul Culley
ebb7111f25 An improved Leak (Uncollected Objects) Gramplet ()
* Improved leak detector (debugging tool)

* Fix DummyDb so it garbage collector can reclaim it after close

* Fix leak gramplet so pop-ups use correct transient parent
2017-07-27 12:15:38 +10:00
Nick Hall
86fd14613e Merge branch 'gramps50' 2017-07-25 21:45:37 +01:00
Alois Poettker
5276461239 Tidy up code 2017-07-18 18:25:29 +01:00
Alois Poettker
40f47bc22d Delete multiple events 2017-07-18 18:20:55 +01:00
Nick Hall
8150403ccb Revert "Simplify import plugin unit tests"
This works with python 3.6 but not with 3.4.

This reverts commit b43d94ab16.
2017-07-18 16:57:55 +01:00
Nick Hall
b43d94ab16 Simplify import plugin unit tests 2017-07-18 16:15:01 +01:00
Nick Hall
849290a3b7 Fix Pro-Gen unit test 2017-07-18 00:06:30 +01:00
Leonhaeuser
0b617e9fd6 update German translation
Fix 
2017-07-15 00:23:00 +02:00
Lajos Nemeséri
6eb435142e Update Hungarian translation 2017-07-08 13:34:34 +02:00
Alois Poettker
e14ea777d5 Extend Pro-Gen importer functionality 2017-07-02 23:16:10 +01:00
Paul Franklin
46d73a16a0 add verify.py rules: match same birth or death date as marriage date
Issue 
2017-07-02 13:37:17 -07:00
Fedik
4d2b918d39 Update Ukrainian translation 2017-07-02 17:23:56 +03:00
romjerome
4acfdcce52 update french translation 2017-06-30 09:20:12 +02:00
arnaullv
f3b3eec211 Updated catalan translation to latest template 2017-06-26 22:06:29 +01:00
niememat
a840566e02 Update fix finnish translation 2017-06-24 19:33:00 +03:00
Nick Hall
f6a2199f68 Merge branch 'gramps50' 2017-06-22 17:47:33 +01:00
Nick Hall
dfc9dde32d Merge branch 'gramps50' 2017-06-15 16:44:15 +01:00
Zdeněk Hataš
50f93f54ec czech translation update 2017-06-05 11:49:50 +02:00
Nick Hall
9cb1d96725 Merge branch 'gramps50' 2017-06-03 22:20:03 +01:00
Nick Hall
40013dccc3 Merge branch 'gramps50' 2017-06-02 23:53:56 +01:00
Serge Noiraud
24af1b8420 8200: Person Relatives Tab should use the type from the relationship ()
* 8200: Person Relatives Tab should use the type from the relationship

* 8200: Flag variables as there are now two variables.
2017-06-02 20:07:31 +02:00
Serge Noiraud
213d656df4 10049: tabs reorganization in narrative web. () 2017-06-02 13:20:21 +02:00
Nick Hall
c09b4e96d2 Remove trailing whitespace 2017-05-23 19:52:19 +01:00
Nick Hall
a80875e00c Update Travis for gramps51 2017-05-23 19:51:24 +01:00
Nick Hall
bbdedb5097 Update a few missed version numbers 2017-05-23 19:49:23 +01:00
Nick Hall
dd0671b111 Bump all version numbers to 5.1 2017-05-23 18:30:29 +01:00
672 changed files with 337779 additions and 249238 deletions
.gitignore.pylintrc.travis.ymlAUTHORSChangeLogFAQMANIFEST.inNEWSREADME.md
data
debian
docs
example/gramps
gramps
cli
gen
config.pyconst.py
datehandler
db
display
filters
__init__.py_filterlist.py_genericfilter.py
rules
_changedsincebase.py_everything.py_hasattributebase.py_hascitationbase.py_haseventbase.py_hasgallerybase.py_hasgrampsid.py_hasldsbase.py_hasnotebase.py_hasnoteregexbase.py_hasnotesubstrbase.py_hasreferencecountbase.py_hassourcebase.py_hassourcecountbase.py_hassourceofbase.py_hastagbase.py_hastextmatchingsubstringof.py_isprivate.py_ispublic.py_matcheseventfilterbase.py_matchesfilterbase.py_matchessourceconfidencebase.py_matchessourcefilterbase.py_regexpidbase.py_rule.py
citation
event
family
media
note
person
_changedsince.py_deeprelationshippathbetween.py_disconnected.py_everyone.py_familywithincompleteevent.py_hasaddress.py_hasalternatename.py_hasassociation.py_hasattribute.py_hasbirth.py_hascitation.py_hascommonancestorwith.py_hascommonancestorwithfiltermatch.py_hasdeath.py_hasevent.py_hasfamilyattribute.py_hasfamilyevent.py_hasgallery.py_hasidof.py_haslds.py_hasnameof.py_hasnameorigintype.py_hasnametype.py_hasnickname.py_hasnote.py_hasnotematchingsubstringof.py_hasnoteregexp.py_hasrelationship.py_hassoundexname.py_hassourcecount.py_hassourceof.py_hastag.py_hastextmatchingsubstringof.py_hasunknowngender.py_havealtfamilies.py_havechildren.py_incompletenames.py_isancestorof.py_isancestoroffiltermatch.py_isbookmarked.py_ischildoffiltermatch.py_isdefaultperson.py_isdescendantfamilyof.py_isdescendantfamilyoffiltermatch.py_isdescendantof.py_isdescendantoffiltermatch.py_isduplicatedancestorof.py_isfemale.py_islessthannthgenerationancestorof.py_islessthannthgenerationancestorofbookmarked.py_islessthannthgenerationancestorofdefaultperson.py_islessthannthgenerationdescendantof.py_ismale.py_ismorethannthgenerationancestorof.py_ismorethannthgenerationdescendantof.py_isparentoffiltermatch.py_isrelatedwith.py_issiblingoffiltermatch.py_isspouseoffiltermatch.py_iswitness.py_matcheseventfilter.py_matchesfilter.py_matchessourceconfidence.py_matchidof.py_missingparent.py_multiplemarriages.py_nevermarried.py_nobirthdate.py_nodeathdate.py_peopleprivate.py_peoplepublic.py_personwithincompleteevent.py_probablyalive.py_regexpidof.py_regexpname.py_relationshippathbetween.py_relationshippathbetweenbookmarks.py_searchname.py
place
repository
source
test
lib
merge
plug
proxy
relationship.pyupdatecallback.py
utils
grampsapp.py
gui
actiongroup.pyautocomp.pyclipboard.pycolumnorder.pyconfigure.pydbloader.pydbman.pyddtargets.pydialog.pydisplaystate.py
editors
filters
glade
grampsgui.pylistmodel.pymakefilter.pymanagedwindow.py
merge
navigator.py
plug
selectors
uimanager.pyundohistory.pyutils.pyviewmanager.py
views
widgets
plugins
db
docgen
drawreport
export
gramplet
graph
importer
lib
mapservices
quickview
rel
sidebar
test
textreport
tool
view
webreport
webstuff
test
version.py
mac
po
test/AncestorTree

3
.gitignore vendored

@@ -23,5 +23,8 @@ test/data
Thumbs.db
ehthumbs.db
# IDE
.idea/
# Glade temp files
*~

@@ -126,10 +126,10 @@ class-attribute-rgx=([A-Za-z_][A-Za-z0-9_]{2,30}|(__.*__))$
class-attribute-name-hint=([A-Za-z_][A-Za-z0-9_]{2,30}|(__.*__))$
# Regular expression matching correct function names
function-rgx=[a-z_][a-z0-9_]{2,30}$
function-rgx=(([a-z_][a-z0-9_]{2,30})|(_T_))$
# Naming hint for function names
function-name-hint=[a-z_][a-z0-9_]{2,30}$
function-name-hint=(([a-z_][a-z0-9_]{2,30})|(_T_))$
# Regular expression matching correct inline iteration names
inlinevar-rgx=[A-Za-z_][A-Za-z0-9_]*$

@@ -72,7 +72,7 @@ install:
# by the automatic git checkout.
# Download Sean Ross-Ross's Pure Python module containing a framework to
# manipulate and analyze python ast<73>s and bytecode. This is loaded to
# manipulate and analyze python ast<73>s 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
@@ -95,11 +95,11 @@ before_script:
# set GRAMPS_RESOURCES for locale, data,image and documentation
- export GRAMPS_RESOURCES=.
# Install addons
- mkdir -p ~/.gramps/gramps50/plugins/
- wget https://github.com/gramps-project/addons/raw/master/gramps50/download/CliMerge.addon.tgz
- tar -C ~/.gramps/gramps50/plugins -xzf CliMerge.addon.tgz
- wget https://github.com/gramps-project/addons/raw/master/gramps50/download/ExportRaw.addon.tgz
- tar -C ~/.gramps/gramps50/plugins -xzf ExportRaw.addon.tgz
- 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

@@ -64,6 +64,8 @@ Martin Hawlisch martin.hawlisch@gmx.de
Nick Hall nick__hall@hotmail.com
Paul Culley paulr2787@gmail.com
Peter Landgren peter.talken@telia.com
Raphael Ackermann raphael.ackermann@gmail.com

944
ChangeLog

File diff suppressed because it is too large Load Diff

8
FAQ

@@ -133,7 +133,7 @@ Gramps is a [http://en.wikipedia.org/wiki/Gtk GTK] application. Gramps needs to
The Linux Genealogy CD can function as a live CD that you boot directly from. You can then run Linux and Gramps off the CD, even if your computer is entirely Windows.
An experimental Windows installer is available, however we do not have the manpower to offer support for Windows. A windows mailing list is available however and we do do our best to solve windows related problems.
An Windows installer is available for 32 and 64 bit versions of windows from Windows versions 7 through 10. As with all other support, we do do our best to solve windows related problems.
8. Does it work with the Mac?
@@ -145,7 +145,7 @@ This present version of Gramps (2.2.x) does not appear to have been ported by th
9. What are the Minimum Specs to run Gramps?
We would recommend at least an 800x600 video display. For Gramps 2.0, the memory requirements have been reduced, and Gramps can run quite efficiently on a 256MB system, holding considerably more people. A system with 512MB should be able to hold around 200,000 people. Disk space requirements for databases are however considerably larger, with a typical database being several megabytes in size. For 120.000 people you must consider already 530Mb for the database. Pictures are stored on disk separately, so a large harddisk is necessary.
We would recommend at least an 800x600 video display. For Gramps 5.x, Gramps can run quite efficiently on a 3GB memory system. A system with that much RAM should be able to hold more than 200,000 people. Disk space requirements for databases are however considerably larger, with a typical database being several megabytes in size. For 120.000 people you must consider already 530Mb for the database. Pictures are stored on disk separately, so a large harddisk is necessary.
==Preferences==
@@ -181,7 +181,7 @@ The nice thing about standards is that there never is a shortage of them. Gramps
15. How do I import data from another genealogy program into Gramps?
The best way is to create a new gramps database file (.grdb), and select the import option in the file menu. Here you select the GEDCOM you generated with the other program, and import it.
The best way is to create a new gramps database file, and select the import option in the file menu. Here you select the GEDCOM you generated with the other program, and import it.
16. Can I install Gramps on a Linux Web Server and use it via a web browser? This would enable my relations worldwide to access and update it.
@@ -315,7 +315,7 @@ gramps-devel@lists.sf.net :-)
The next best thing would be to submit a good bug report. This can be done in
one of the two ways: (1) send your report to gramps-bugs@lists.sf.net
or (2) file your report with the bug tracker system at
http://bugs.gramps-project.org (this function is also
https://gramps-project.org/bugs/ (this function is also
available by selecting "Help->Report a bug" from gramps main menu).
A good bug report would include:

@@ -1,5 +1,5 @@
include ChangeLog
include AUTHORS
include ChangeLog
include COPYING
include FAQ
include Gramps.py
@@ -10,11 +10,9 @@ include RELEASE_NOTES
include TODO
include CONTRIBUTING
include TestPlan.txt
recursive-include bash *
recursive-include data *
recursive-include debian *
recursive-include docs *
recursive-include example *
recursive-include gramps *
recursive-include help *
recursive-include images *

1885
NEWS

File diff suppressed because it is too large Load Diff

@@ -10,8 +10,8 @@ Requirements
============
The following packages **MUST** be installed in order for Gramps to work:
* **Python** 3.2 or greater - The programming language used by Gramps. https://www.python.org/
* **GTK** 3.10 or greater - A cross-platform widget toolkit for creating graphical user interfaces. http://www.gtk.org/
* **Python** 3.3 or greater - The programming language used by Gramps. https://www.python.org/
* **GTK** 3.12 or greater - A cross-platform widget toolkit for creating graphical user interfaces. http://www.gtk.org/
* **pygobject** 3.12 or greater - Python Bindings for GLib/GObject/GIO/GTK+ https://wiki.gnome.org/Projects/PyGObject
The following three packages with GObject Introspection bindings (the gi packages)
@@ -103,6 +103,23 @@ The following packages are optional:
More font support in the reports
* **geocodeglib**
A library use to associate a geographical position (latitude, longitude)
to a place name. This is used if you already have osmgpsmap installed.
If installed, when you add or link a place from the map, you have a red line
at the end of the table for selection.
Debian, Ubuntu, ... : gir1.2-geocodeglib-1.0
Fedora, Redhat, ... : geocode-glib
openSUSE : geocode-glib
ArchLinux : geocode-glib
...
* **fontconfig**
Python bindings of fontconfig are required for displaying
genealogical symbols
Optional packages required by Third-party Addons
------------------------------------------------

@@ -21,6 +21,8 @@ Copyright 2008 Jason M. Simanek
Copyright 2009 Stephane Charette
Copyright (C) 2008-2011 Rob G. Healey <robhealey1@gmail.com>
Copyright 2011 Michiel D. Nauta
Copyright 2018 Theo van Rijn
Copyright (C) 2019 Serge Noiraud
This file is part of the GRAMPS program.
@@ -59,7 +61,7 @@ the page.
body {
font-family: sans-serif;
font-size: 90%;
font-size: 100%;
color: black;
margin: 0px;
background-color: #EEE;
@@ -67,6 +69,13 @@ body {
body > div {
clear: both;
}
#outerwrapper {
margin: 5px auto;
width: 98%;
}
#outerwrapper > div {
clear: both;
}
.content {
background-color: white;
border-top: solid 1px #999;
@@ -75,9 +84,19 @@ body > div {
float: right;
margin: 2em;
}
#ThumbnailPreview div.snapshot {
float: right;
margin: 0;
}
.fullclear {
clear: both;
}
/* Less whitespace on smaller real estate. */
@media only screen and (max-width: 1080px) {
.content {
padding: 0em 0.5em;
}
}
/* General Text
----------------------------------------------------- */
@@ -205,6 +224,93 @@ div#alphanav ul li a:hover {
color: white;
}
/* Responsive navigation */
a.navIcon {
display: none;
}
div#header::after {
content: "";
clear: both;
display: table;
}
div#nav::after {
content: "";
clear: both;
display: table;
}
@media only screen and (max-width: 1080px) {
/* Use less & all realestate on mobiles. */
div#outerwrapper {
margin: 5px auto;
width: 100%;
}
.nav {
background: none; /* Works in IE too. */
/*
width: 200px;
position: absolute;
z-index: 10;
*/
}
/* Undo some of the #nav styles - to enable the class .nav */
.nav ul, #subnavigation ul {
list-style: none;
min-width: unset;
width: 200px;
height: 32px;
margin: 0;
padding: 0;
}
.nav ul li, #subnavigation ul li {
float: unset;
display: unset
}
/* Start with hidden menu options */
/* .nav li:not(:first-child) {display: none;} */
.nav li {display: none;}
.nav ul {display: none;}
a.navIcon {
font-size:1.3em;
display: block;
margin: 0.1em 0.4em 0.4em 0.4em;
float: left;
}
.nav.responsive {position: absolute; display: block; z-index: 100;}
.nav.responsive a.icon {
position: absolute;
right: 0;
top: 0;
margin-right: 10px;
}
.nav.responsive li {
/* float: left; */
display: block;
text-align: left;
background-color: #EEE;
/* required by IE */
float: left;
clear: both;
width: 200px;
}
div#nav ul, #subnavigation ul {
padding-left: 0px;
}
.content {
padding: 0em 0.5em;
}
}
/* Main Table
----------------------------------------------------- */
table {
@@ -367,7 +473,15 @@ table.eventlist tbody tr td.ColumnSources {
margin: 0px auto;
display: block;
border: solid 1px #999;
height: auto;
}
@media only screen and (max-width: 1600px) {
#GalleryDisplay img {
max-width: 100%;
}
}
#GalleryDetail h3 {
text-align: center;
}
@@ -384,13 +498,10 @@ div#SourceDetail {
overflow: hidden;
}
#Contact #summaryarea {
width: 50em;
margin: 2em auto;
padding: 3em;
background-color: #EEE;
border: solid 1px #999;
}
#Contact img {
#Contact #GalleryDisplay img {
float: right;
border: solid 1px #999;
}
@@ -404,6 +515,12 @@ div#SourceDetail {
#Contact #city:after {
content: ",";
}
@media only screen and (max-width: 1080px) {
#Contact,
#Contact #GalleryDisplay img {
max-width: 100%;
}
}
/* Download
----------------------------------------------------- */
@@ -413,20 +530,29 @@ div#SourceDetail {
/* Subsection
----------------------------------------------------- */
#Home, #Introduction {
overflow: hidden;
}
#Home img, #Introduction img {
#Home #GalleryDisplay, #Introduction #GalleryDisplay {
float: right;
margin: 1em;
}
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img {
display: block;
max-width: 950px;
height: auto;
float: right;
}
@media only screen and (max-width: 1080px) {
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
#Contact #GalleryDisplay img {
margin: 0 auto;
max-width: 100%;
}
}
#Home p, #Introduction p {
padding-left: 15px;
}
.subsection {
clear: both;
overflow: visible;
overflow: hidden;
}
.subsection p {
margin: 0px;
@@ -449,12 +575,33 @@ div#families table.attrlist td.ColumnType {
/* Subsection : Gallery
----------------------------------------------------- */
#gallery {
background-color: green;
}
#indivgallery {
background-color: white;
}
#gallery .gallerycell {
float: left;
width: 130px;
height: 150px;
text-align: center;
margin: 0;
background-color: white;
border-top: solid 1px #999;
border-right: solid 1px #999;
}
#gallery .thumbnail {
font-size: smaller;
margin: 3em auto;
}
#indivgallery .thumbnail {
float: left;
width: 130px;
font-size: smaller;
text-align: center;
margin: 0.8em 0.5em;
background-color: white;
}
#indivgallery h4 + .thumbnail {
margin-left: 15px;
@@ -462,6 +609,40 @@ div#families table.attrlist td.ColumnType {
* first thumnail on each next row should also have a margin-left
* of 15 px. */
}
#gallery div.indexno {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
color: #555;
margin: 0;
}
#indivgallery div.date {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
color: #555;
}
#indivgallery .thumbnail ul {
font-size: smaller;
list-style: none;
padding: 0px;
}
#indivgallery .thumbnail ul li:first-child {
border-style: none;
}
#indivgallery .thumbnail ul li {
border-top: dashed 1px #CCC;
border-top-style: dashed;
padding-top: 0.5em;
padding-bottom: 0.5em;
}
#gallery img {
border: solid 1px #999;
}
#indivgallery img {
border: solid 1px #999;
}
@@ -469,6 +650,9 @@ div#families table.attrlist td.ColumnType {
/* ## remove this line and the comment markers from the line below to hide description in Indivifual Gallery
display: none; */
}
div.snapshot div.thumbnail {
text-align: center;
}
/* Subsection : Narrative
----------------------------------------------------- */
@@ -532,6 +716,7 @@ a.familymap {
}
#footer > * {
background-color: #EEE;
font-size: 80%;
}
#footer p#createdate {
float: left;

@@ -3,6 +3,8 @@
# Gramps - a GTK+/GNOME based genealogy program
#
# Copyright (C) 2008-2011 Rob G. Healey <robhealey1@gmail.com>
# Copyright (C) 2018 Theo van Rijn
# Copyright (C) 2019 Serge Noiraud
#
# 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
@@ -72,6 +74,13 @@ img {
.thumbnail a:hover {
background: none;
}
#outerwrapper {
margin: 5px auto;
width: 98%;
}
#outerwrapper > div {
clear: both;
}
.content {
background-color: #FFF;
color: #000;
@@ -94,6 +103,10 @@ img {
width: 96px;
margin: 0 auto;
}
#ThumbnailPreview div.snapshot {
float: right;
margin: 0;
}
.fullclear {
width: 100%;
height: 1px;
@@ -101,6 +114,12 @@ img {
padding: 0;
clear: both;
}
/* Less whitespace on smaller real estate. */
@media only screen and (max-width: 1080px) {
.content {
padding: 0em 0.5em;
}
}
/* General Text
----------------------------------------------------- */
@@ -221,6 +240,55 @@ p#user_header {
margin-right: 10px;
}
/* Navigation
----------------------------------------------------- */
div#nav, #subnavigation {
border: solid 1px #EEE; /* needed by IE7 */
background-color: #13A926;
}
#subnavigation ul {
overflow: hidden;
}
div#nav ul, #subnavigation ul {
list-style: none;
margin: 0px;
padding-left: 15px;
}
#subnavigation ul {
border-bottom: solid 1px #999;
}
div#nav ul li, #subnavigation ul li {
float: left;
}
div#nav ul li a, #subnavigation ul li a {
display: block;
font-size: smaller;
font-weight: bold;
padding: 5px;
border-bottom: solid 1px #EEE;
}
div#nav ul li a:hover, #subnavigation ul li a:hover {
text-decoration: none;
background-color: #CCC;
border-bottom: solid 1px black;
}
div#nav ul li.CurrentSection a {
position: relative;
top: 1px;
border: solid 1px #999;
border-bottom-style: none;
background-color: white;
}
#nav ul li.CurrentSection a:hover {
background-color: #903;
}
/* Webcal
----------------------------------------------------- */
#subnavigation ul li.CurrentSection a {
background-color: white;
}
/* Footer
----------------------------------------------------- */
div#footer {
@@ -270,6 +338,129 @@ div#footer p#copyright img {
padding: 0;
}
/* Responsive navigation */
a.navIcon {
display: none;
}
div#header::after {
content: "";
clear: both;
display: table;
}
/* Alphabet Navigation
----------------------------------------------------- */
div#alphanav {
background-color: #EEE;
}
div#alphanav ul {
list-style: none;
border-width: 2px 0px 4px 0px;
border-style: solid;
border-color: black;
margin: 0px;
padding-left: 15px;
/* float container stretch, see www.quirksmode.org/css/clearing.html */
overflow: hidden;
}
div#alphanav ul li {
float: left;
font-size: larger;
font-weight: bold;
}
div#alphanav ul li:after {
content: " |";
}
div#alphanav ul li a {
display: block;
padding: 4px 8px;
line-height: 100%;
float: left;
}
div#alphanav ul li a:hover {
text-decoration: none;
background-color: black;
color: white;
}
div#nav::after {
content: "";
clear: both;
display: table;
}
@media only screen and (max-width: 1080px) {
/* Use less & all realestate on mobiles. */
div#outerwrapper {
margin: 5px auto;
width: 100%;
}
.nav {
background: none; /* Works in IE too. */
/*
width: 200px;
position: absolute;
z-index: 10;
*/
}
/* Undo some of the #nav styles - to enable the class .nav */
.nav ul, #subnavigation ul {
list-style: none;
min-width: unset;
width: 200px;
height: 32px;
margin: 0;
padding: 0;
}
.nav ul li, #subnavigation ul li {
float: unset;
display: unset
}
/* Start with hidden menu options */
/* .nav li:not(:first-child) {display: none;} */
.nav li {display: none;}
.nav ul {display: none;}
a.navIcon {
font-size:1.3em;
display: block;
margin: 0.1em 0.4em 0.4em 0.4em;
float: left;
}
.nav.responsive {position: absolute; display: block; z-index: 100;}
.nav.responsive a.icon {
/* position: absolute; */
right: 0;
top: 0;
margin-right: 10px;
}
.nav.responsive li {
/* float: left; */
display: block;
text-align: left;
background-color: #13A926;
/* required by IE */
float: left;
clear: both;
width: 200px;
}
div#nav ul, #subnavigation ul {
padding-left: 0px;
}
.content {
padding: 0em 0.5em;
}
}
/* Main Table
----------------------------------------------------- */
table.infolist {
@@ -578,6 +769,26 @@ div#EventDetail table.eventlist tbody tr td.ColumnDate {
margin: 0;
padding: 0;
}
#gallery {
background-color: green;
}
#indivgallery {
background-color: white;
}
#gallery .gallerycell {
float: left;
width: 130px;
height: 150px;
text-align: center;
margin: 0;
background-color: white;
border-top: solid 1px #999;
border-right: solid 1px #999;
}
#gallery .thumbnail {
font-size: smaller;
margin: 3em auto;
}
#Gallery table.infolist tbody tr td {
border-bottom: dashed 1px #000;
}
@@ -627,7 +838,15 @@ div#EventDetail table.eventlist tbody tr td.ColumnDate {
}
#GalleryDisplay img {
margin: 0 auto;
height: auto;
}
@media only screen and (max-width: 1600px) {
#GalleryDisplay img {
max-width: 100%;
}
}
#GalleryDetail div#summaryarea{
margin: 0;
padding: 2em 0 0 0;
@@ -679,48 +898,51 @@ body#ThumbnailPreview div#references table.infolist tbody tr td.ColumnName {
/* Contact
------------------------------------------------- */
#Contact #summaryarea {
width: 500px;
margin: 0 auto;
padding: 3em;
border: double 4px #000;
background-color: #BCEAF6;
}
#Contact #summaryarea img {
#Contact #summaryarea #GalleryDisplay img {
float: right;
margin: 0;
}
#researcher {
@media only screen and (max-width: 1080px) {
#Contact, #Contact #summaryarea #researcher,
#Contact #summaryarea #GalleryDisplay img {
max-width: 100%;
}
}
#Contact #summaryarea #researcher {
font: normal 1.5em/1.4em serif;
margin-top: .3em;
}
#researcher h3 {
#Contact #summaryarea #researcher h3 {
font: normal 1.2em/1.4em serif;
padding: 0;
text-align: left;
}
#researcher span {
float: left;
#Contact #summaryarea #researcher span {
display: block;
font: normal .9em/1.4em serif;
margin-right: .4em;
}
#streetaddress {
#Contact #summaryarea #streetaddress {
width: 100%;
}
#locality, .locality {
#Contact #summaryarea #locality, .locality {
display: block;
width: 100%;
}
#city:after {
#Contact #summaryarea #city:after {
content: ",";
}
#country {
#Contact #summaryarea #country {
clear: left;
}
#email {
#Contact #summaryarea #email {
clear: left;
}
#email a {
#Contact #summaryarea #email a {
text-decoration: none;
}
@@ -813,17 +1035,29 @@ div#AddressBookList table.addressbook tbody tr td.ColumnWebLinks {
/* Subsections
----------------------------------------------------- */
#Home, #Introduction, #Contact {
padding: 2em 0 3em 0;
#Home #GalleryDisplay, #Introduction #GalleryDisplay,
#Contact #GalleryDisplay {
float: right;
margin: 0;
border: 0px;
}
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
#Contact #GalleryDisplay img {
display: block;
max-width: 950px;
height: auto;
float: right;
}
@media only screen and (max-width: 1080px) {
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
#Contact #GalleryDisplay img {
margin: 0 auto;
max-width: 100%;
}
}
#Home p, #Introduction p {
margin: 0 20px 1em 20px;
}
#Home img, #Introduction img {
float: right;
margin: 0;
padding: 0 20px 3em 2em;
}
#Home a, #Introduction a, #Contact a {
color: #000;
text-decoration: none;
@@ -927,6 +1161,15 @@ div#families {
margin: 0;
padding: 0;
}
div#families .infolist h4 {
font: bold 1.2em sans-serif;
color: #FFF;
padding: 0px 0px 0px 20px;
border-width: 4px 0px 4px 0px;
border-style: solid;
border-color: #00029D;
background-color: #13A926;
}
div#families table.infolist tbody tr.BeginFamily {
border-top: solid 1px #000;
}
@@ -1094,6 +1337,7 @@ div.Residence table.infolist tr td {
float: left;
width: 130px;
text-align: center;
background-color: white;
}
#indivgallery div.thumbnail a {
display: block;
@@ -1117,6 +1361,43 @@ div.Residence table.infolist tr td {
margin: 0 auto;
padding: 0;
}
#gallery div.indexno {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
color: #555;
margin: 0;
}
#indivgallery div.date {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
color: #555;
}
#indivgallery .thumbnail ul {
font-size: smaller;
list-style: none;
padding: 0px;
}
#indivgallery .thumbnail ul li:first-child {
border-style: none;
}
#indivgallery .thumbnail ul li {
border-top: dashed 1px #CCC;
border-top-style: dashed;
padding-top: 0.5em;
padding-bottom: 0.5em;
}
#gallery img {
border: solid 1px #999;
}
div.snapshot div.thumbnail {
text-align: center;
}
/* Subsections : Narrative
----------------------------------------------------- */

@@ -21,6 +21,8 @@ Copyright 2008 Jason M. Simanek
Copyright 2009 Stephane Charette
Copyright (C) 2008-2011 Rob G. Healey <robhealey1@gmail.com>
Copyright 2011 Michiel D. Nauta
Copyright 2018 Theo van Rijn
Copyright (C) 2019 Serge Noiraud
This file is part of the GRAMPS program.
@@ -59,7 +61,7 @@ the page.
body {
font-family: sans-serif;
font-size: 90%;
font-size: 100%;
color: black;
margin: 0px;
background-color: #454;
@@ -67,6 +69,13 @@ body {
body > div {
clear: both;
}
#outerwrapper {
margin: 5px auto;
width: 98%;
}
#outerwrapper > div {
clear: both;
}
.content {
background-color: white;
border-top: solid 1px #7C8F7C;
@@ -75,9 +84,19 @@ body > div {
float: right;
margin: 2em;
}
#ThumbnailPreview div.snapshot {
float: right;
margin: 0;
}
.fullclear {
clear: both;
}
/* Less whitespace on smaller real estate. */
@media only screen and (max-width: 1080px) {
.content {
padding: 0em 0.5em;
}
}
/* General Text
----------------------------------------------------- */
@@ -209,6 +228,98 @@ div#alphanav ul li a:hover {
color: white;
}
/* Responsive navigation */
a.navIcon {
display: none;
}
div#header::after {
content: "";
clear: both;
display: table;
}
div#nav::after {
content: "";
clear: both;
display: table;
}
@media only screen and (max-width: 1080px) {
/* Use less & all realestate on mobiles. */
div#outerwrapper {
margin: 5px auto;
width: 100%;
}
.nav {
background: none; /* Works in IE too. */
/*
width: 200px;
position: absolute;
z-index: 10;
*/
}
/* Undo some of the #nav styles - to enable the class .nav */
.nav ul, #subnavigation ul {
list-style: none;
min-width: unset;
width: 200px;
height: 32px;
margin: 0;
padding: 0;
}
.nav ul li, #subnavigation ul li {
float: unset;
display: unset
}
/* Start with hidden menu options */
/* .nav li:not(:first-child) {display: none;} */
.nav li {display: none;}
.nav ul {display: none;}
a.navIcon {
font-size:1.3em;
display: block;
margin: 0.1em 0.4em 0.4em 0.4em;
float: left;
}
.nav.responsive {position: absolute; display: block; z-index: 100;}
.nav.responsive a.icon {
position: absolute;
right: 0;
top: 0;
margin-right: 10px;
}
.nav.responsive li {
/* float: left; */
display: block;
text-align: left;
color: #454;
background-color: #E0E6E0;
/* required by IE */
float: left;
clear: both;
width: 200px;
}
.nav.responsive li#CurrentSection a {
color: #454;
background-color: white;
}
div#nav ul, #subnavigation ul {
padding-left: 0px;
}
.content {
padding: 0em 0.5em;
}
}
/* Main Table
----------------------------------------------------- */
table {
@@ -413,7 +524,15 @@ table.eventlist tbody tr td.ColumnSources {
margin: 0px auto;
display: block;
border: solid 1px #7C8F7C;
height: auto;
}
@media only screen and (max-width: 1600px) {
#GalleryDisplay img {
max-width: 100%;
}
}
#GalleryDetail h3 {
text-align: center;
}
@@ -430,13 +549,10 @@ div#SourceDetail {
overflow: hidden;
}
#Contact #summaryarea {
width: 40em;
margin: 2em auto;
padding: 3em;
background-color: #E0E6E0;
border: solid 1px #7C8F7C;
}
#Contact img {
#Contact #summaryarea #GalleryDisplay img {
float: right;
border: solid 1px #7C8F7C;
}
@@ -463,20 +579,31 @@ div#SourceDetail {
/* Subsection
----------------------------------------------------- */
#Home, #Introduction {
overflow: hidden;
}
#Home img, #Introduction img {
#Home #GalleryDisplay, #Introduction #GalleryDisplay, #Contact #GalleryDisplay {
float: right;
margin: 1em;
margin: 0;
border: 0px;
}
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
#Contact #GalleryDisplay img {
display: block;
max-width: 950px;
height: auto;
float: right;
}
@media only screen and (max-width: 1080px) {
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
#Contact #GalleryDisplay img {
margin: 0 auto;
max-width: 100%;
}
}
#Home p, #Introduction p {
padding-left: 15px;
}
.subsection {
clear: both;
overflow: visible;
overflow: hidden;
}
.subsection p {
margin: 0px;
@@ -499,12 +626,33 @@ div#families table.attrlist td.ColumnType {
/* Subsection : Gallery
----------------------------------------------------- */
#gallery {
background-color: green;
}
#indivgallery {
background-color: white;
}
#gallery .gallerycell {
float: left;
width: 130px;
height: 150px;
text-align: center;
margin: 0;
background-color: white;
border-top: solid 1px #999;
border-right: solid 1px #999;
}
#gallery .thumbnail {
font-size: smaller;
margin: 3em auto;
}
#indivgallery .thumbnail {
float: left;
width: 130px;
font-size: smaller;
text-align: center;
margin: 0.8em 0.5em;
background-color: white;
}
#indivgallery h4 + .thumbnail {
margin-left: 15px;
@@ -512,6 +660,40 @@ div#families table.attrlist td.ColumnType {
* first thumnail on each next row should also have a margin-left
* of 15 px. */
}
#gallery div.indexno {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
color: #555;
margin: 0;
}
#indivgallery div.date {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
color: #555;
}
#indivgallery .thumbnail ul {
font-size: smaller;
list-style: none;
padding: 0px;
}
#indivgallery .thumbnail ul li:first-child {
border-style: none;
}
#indivgallery .thumbnail ul li {
border-top: dashed 1px #CCC;
border-top-style: dashed;
padding-top: 0.5em;
padding-bottom: 0.5em;
}
#gallery img {
border: solid 1px #999;
}
#indivgallery img {
border: solid 1px #7C8F7C;
}
@@ -519,6 +701,9 @@ div#families table.attrlist td.ColumnType {
/* ## remove this line and the comment markers from the line below to hide description in Indivifual Gallery
display: none; */
}
div.snapshot div.thumbnail {
text-align: center;
}
/* Subsection : Narrative
----------------------------------------------------- */
@@ -577,6 +762,7 @@ a.familymap {
#footer {
clear: both;
color: #E0E6E0;
font-size: 80%;
padding-top: 1em;
background-color: #9DBF9D;
border-top: solid 1px #454;
@@ -604,7 +790,7 @@ a.familymap {
/* Overwritten
----------------------------------------------------- */
body#FamilyMap {
background-color: #E0E6E0 ! important;
background-color: #454 ! important;
}
/* Calendar Styles

@@ -21,6 +21,8 @@ Copyright 2008 Jason M. Simanek
Copyright 2009 Stephane Charette
Copyright (C) 2008-2011 Rob G. Healey <robhealey1@gmail.com>
Copyright 2011 Michiel D. Nauta
Copyright 2018 Theo van Rijn
Copyright (C) 2019 Serge Noiraud
This file is part of the GRAMPS program.
@@ -67,6 +69,13 @@ body {
body > div {
clear: both;
}
#outerwrapper {
margin: 5px auto;
width: 98%;
}
#outerwrapper > div {
clear: both;
}
.content {
background-color: #FAFAFF;
border-top: solid 1px #669;
@@ -75,9 +84,19 @@ body > div {
float: right;
margin: 2em;
}
#ThumbnailPreview div.snapshot {
float: right;
margin: 0;
}
.fullclear {
clear: both;
}
/* Less whitespace on smaller real estate. */
@media only screen and (max-width: 1080px) {
.content {
padding: 0em 0.5em;
}
}
/* General Text
----------------------------------------------------- */
@@ -207,6 +226,93 @@ div#alphanav ul li a:hover {
color: #FAFAFF;
}
/* Responsive navigation */
a.navIcon {
display: none;
}
div#header::after {
content: "";
clear: both;
display: table;
}
div#nav::after {
content: "";
clear: both;
display: table;
}
@media only screen and (max-width: 1080px) {
/* Use less & all realestate on mobiles. */
div#outerwrapper {
margin: 5px auto;
width: 100%;
}
.nav {
background: none; /* Works in IE too. */
/*
width: 200px;
position: absolute;
z-index: 10;
*/
}
/* Undo some of the #nav styles - to enable the class .nav */
.nav ul, #subnavigation ul {
list-style: none;
min-width: unset;
width: 200px;
height: 32px;
margin: 0;
padding: 0;
}
.nav ul li, #subnavigation ul li {
float: unset;
display: unset
}
/* Start with hidden menu options */
/* .nav li:not(:first-child) {display: none;} */
.nav li {display: none;}
.nav ul {display: none;}
a.navIcon {
font-size:1.3em;
display: block;
margin: 0.1em 0.4em 0.4em 0.4em;
float: left;
}
.nav.responsive {position: absolute; display: block; z-index: 100;}
.nav.responsive a.icon {
position: absolute;
right: 0;
top: 0;
margin-right: 10px;
}
.nav.responsive li {
/* float: left; */
display: block;
text-align: left;
background-color: #669;
/* required by IE */
float: left;
clear: both;
width: 200px;
}
div#nav ul, #subnavigation ul {
padding-left: 0px;
}
.content {
padding: 0em 0.5em;
}
}
/* Main Table
----------------------------------------------------- */
table {
@@ -406,7 +512,15 @@ table.eventlist tbody tr td.ColumnSources {
margin: 0px auto;
display: block;
border: solid 1px #669;
height: auto;
}
@media only screen and (max-width: 1600px) {
#GalleryDisplay img {
max-width: 100%;
}
}
#GalleryDetail h3 {
text-align: center;
}
@@ -423,13 +537,10 @@ div#SourceDetail {
overflow: hidden;
}
#Contact #summaryarea {
width: 40em;
margin: 2em auto;
padding: 3em;
background-color: #E0E0E9;
border: solid 1px #669;
}
#Contact img {
#Contact #summaryarea #GalleryDisplay img {
float: right;
border: solid 1px #669;
}
@@ -456,20 +567,31 @@ div#SourceDetail {
/* Subsection
----------------------------------------------------- */
#Home, #Introduction {
overflow: hidden;
}
#Home img, #Introduction img {
#Home #GalleryDisplay, #Introduction #GalleryDisplay, #Contact #GalleryDisplay {
float: right;
margin: 1em;
margin: 0;
border: 0px;
}
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
#Contact #GalleryDisplay img {
display: block;
max-width: 950px;
height: auto;
float: right;
}
@media only screen and (max-width: 1080px) {
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
#Contact #GalleryDisplay img {
margin: 0 auto;
max-width: 100%;
}
}
#Home p, #Introduction p {
padding-left: 15px;
}
.subsection {
clear: both;
overflow: visible;
overflow: hidden;
}
.subsection p {
margin: 0px;
@@ -492,12 +614,33 @@ div#families table.attrlist td.ColumnType {
/* Subsection : Gallery
----------------------------------------------------- */
#gallery {
background-color: green;
}
#indivgallery {
background-color: white;
}
#gallery .gallerycell {
float: left;
width: 130px;
height: 150px;
text-align: center;
margin: 0;
background-color: white;
border-top: solid 1px #999;
border-right: solid 1px #999;
}
#gallery .thumbnail {
font-size: smaller;
margin: 3em auto;
}
#indivgallery .thumbnail {
float: left;
width: 130px;
font-size: smaller;
text-align: center;
margin: 0.8em 0.5em;
background-color: white;
}
#indivgallery h4 + .thumbnail {
margin-left: 15px;
@@ -505,6 +648,40 @@ div#families table.attrlist td.ColumnType {
* first thumnail on each next row should also have a margin-left
* of 15 px. */
}
#gallery div.indexno {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
color: #555;
margin: 0;
}
#indivgallery div.date {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
color: #555;
}
#indivgallery .thumbnail ul {
font-size: smaller;
list-style: none;
padding: 0px;
}
#indivgallery .thumbnail ul li:first-child {
border-style: none;
}
#indivgallery .thumbnail ul li {
border-top: dashed 1px #CCC;
border-top-style: dashed;
padding-top: 0.5em;
padding-bottom: 0.5em;
}
#gallery img {
border: solid 1px #999;
}
#indivgallery img {
border: solid 1px #669;
}
@@ -512,6 +689,9 @@ div#families table.attrlist td.ColumnType {
/* ## remove this line and the comment markers from the line below to hide description in Indivifual Gallery
display: none; */
}
div.snapshot div.thumbnail {
text-align: center;
}
/* Subsection : Narrative
----------------------------------------------------- */
@@ -575,6 +755,7 @@ a.familymap {
}
#footer > * {
background-color: #E0E0E9;
font-size: 80%;
}
#footer p#createdate {
float: left;

@@ -21,6 +21,8 @@ Copyright 2008 Jason M. Simanek
Copyright 2009 Stephane Charette
Copyright (C) 2008-2011 Rob G. Healey <robhealey1@gmail.com>
Copyright 2011 Michiel D. Nauta
Copyright 2018 Theo van Rijn
Copyright (C) 2019 Serge Noiraud
This file is part of the GRAMPS program.
@@ -59,7 +61,7 @@ the page.
body {
font-family: sans-serif;
font-size: 90%;
font-size: 100%;
color: #36220B;
margin: 0px;
background-color: #FFE09F;
@@ -67,6 +69,13 @@ body {
body > div {
clear: both;
}
#outerwrapper {
margin: 5px auto;
width: 98%;
}
#outerwrapper > div {
clear: both;
}
.content {
background-color: #FFFBE7;
border-top: solid 1px #8C581C;
@@ -75,9 +84,19 @@ body > div {
float: right;
margin: 2em;
}
#ThumbnailPreview div.snapshot {
float: right;
margin: 0;
}
.fullclear {
clear: both;
}
/* Less whitespace on smaller real estate. */
@media only screen and (max-width: 1080px) {
.content {
padding: 0em 0.5em;
}
}
/* General Text
----------------------------------------------------- */
@@ -207,6 +226,93 @@ div#alphanav ul li a:hover {
color: #FFFBE7;
}
/* Responsive navigation */
a.navIcon {
display: none;
}
div#header::after {
content: "";
clear: both;
display: table;
}
div#nav::after {
content: "";
clear: both;
display: table;
}
@media only screen and (max-width: 1080px) {
/* Use less & all realestate on mobiles. */
div#outerwrapper {
margin: 5px auto;
width: 100%;
}
.nav {
background: none; /* Works in IE too. */
/*
width: 200px;
position: absolute;
z-index: 10;
*/
}
/* Undo some of the #nav styles - to enable the class .nav */
.nav ul, #subnavigation ul {
list-style: none;
min-width: unset;
width: 200px;
height: 32px;
margin: 0;
padding: 0;
}
.nav ul li, #subnavigation ul li {
float: unset;
display: unset
}
/* Start with hidden menu options */
/* .nav li:not(:first-child) {display: none;} */
.nav li {display: none;}
.nav ul {display: none;}
a.navIcon {
font-size:1.3em;
display: block;
margin: 0.1em 0.4em 0.4em 0.4em;
float: left;
}
.nav.responsive {position: absolute; display: block; z-index: 100;}
.nav.responsive a.icon {
position: absolute;
right: 0;
top: 0;
margin-right: 10px;
}
.nav.responsive li {
/* float: left; */
display: block;
text-align: left;
background-color: #FFC35E;
/* required by IE */
float: left;
clear: both;
width: 200px;
}
div#nav ul, #subnavigation ul {
padding-left: 0px;
}
.content {
padding: 0em 0.5em;
}
}
/* Main Table
----------------------------------------------------- */
table {
@@ -406,6 +512,13 @@ table.eventlist tbody tr td.ColumnSources {
margin: 0px auto;
display: block;
border: solid 1px #EA8414;
height: auto;
}
@media only screen and (max-width: 1600px) {
#GalleryDisplay img {
max-width: 100%;
}
}
#GalleryDetail h3 {
text-align: center;
@@ -423,13 +536,10 @@ div#SourceDetail {
overflow: hidden;
}
#Contact #summaryarea {
width: 40em;
margin: 2em auto;
padding: 3em;
background-color: #FFE09F;
border: solid 1px #EA8414;
}
#Contact img {
#Contact #summaryarea #GalleryDisplay img {
float: right;
border: solid 1px #EA8414;
}
@@ -456,13 +566,24 @@ div#SourceDetail {
/* Subsection
----------------------------------------------------- */
#Home, #Introduction {
overflow: hidden;
}
#Home img, #Introduction img {
#Home #GalleryDisplay, #Introduction #GalleryDisplay, #Contact #GalleryDisplay {
float: right;
margin: 1em;
margin: 0;
border: 0px;
}
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
#Contact #GalleryDisplay img {
display: block;
max-width: 950px;
height: auto;
float: right;
}
@media only screen and (max-width: 1080px) {
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
#Contact #GalleryDisplay img {
margin: 0 auto;
max-width: 100%;
}
}
#Home p, #Introduction p {
padding-left: 15px;
@@ -492,12 +613,33 @@ div#families table.attrlist td.ColumnType {
/* Subsection : Gallery
----------------------------------------------------- */
#gallery {
background-color: green;
}
#indivgallery {
background-color: white;
}
#gallery .gallerycell {
float: left;
width: 130px;
height: 150px;
text-align: center;
margin: 0;
background-color: white;
border-top: solid 1px #999;
border-right: solid 1px #999;
}
#gallery .thumbnail {
font-size: smaller;
margin: 3em auto;
}
#indivgallery .thumbnail {
float: left;
width: 130px;
font-size: smaller;
text-align: center;
margin: 0.8em 0.5em;
background-color: white;
}
#indivgallery h4 + .thumbnail {
margin-left: 15px;
@@ -505,6 +647,40 @@ div#families table.attrlist td.ColumnType {
* first thumnail on each next row should also have a margin-left
* of 15 px. */
}
#gallery div.indexno {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
color: #555;
margin: 0;
}
#indivgallery div.date {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
color: #555;
}
#indivgallery .thumbnail ul {
font-size: smaller;
list-style: none;
padding: 0px;
}
#indivgallery .thumbnail ul li:first-child {
border-style: none;
}
#indivgallery .thumbnail ul li {
border-top: dashed 1px #CCC;
border-top-style: dashed;
padding-top: 0.5em;
padding-bottom: 0.5em;
}
#gallery img {
border: solid 1px #999;
}
#indivgallery img {
border: solid 1px #8C581C;
}
@@ -512,6 +688,9 @@ div#families table.attrlist td.ColumnType {
/* ## remove this line and the comment markers from the line below to hide description in Indivifual Gallery
display: none; */
}
div.snapshot div.thumbnail {
text-align: center;
}
/* Subsection : Narrative
----------------------------------------------------- */
@@ -575,6 +754,7 @@ a.familymap {
}
#footer > * {
background-color: #FFE09F;
font-size: 80%;
}
#footer p#createdate {
float: left;

@@ -21,6 +21,9 @@ Copyright 2008 Jason M. Simanek
Copyright 2009 Stephane Charette
Copyright (C) 2008-2011 Rob G. Healey <robhealey1@gmail.com>
Copyright 2011 Michiel D. Nauta
Copyright 2018 Theo van Rijn
Copyright (C) 2019 Serge Noiraud
This file is part of the GRAMPS program.
@@ -59,7 +62,7 @@ the page.
body {
font-family: sans-serif;
font-size: 90%;
font-size: 100%;
color: black;
margin: 0px;
background-color: #EAEEF4;
@@ -67,6 +70,13 @@ body {
body > div {
clear: both;
}
#outerwrapper {
margin: 5px auto;
width: 98%;
}
#outerwrapper > div {
clear: both;
}
.content {
background-color: #FFF;
border-top: solid 1px #7CA3DD;
@@ -75,9 +85,19 @@ body > div {
float: right;
margin: 2em;
}
#ThumbnailPreview div.snapshot {
float: right;
margin: 0;
}
.fullclear {
clear: both;
}
/* Less whitespace on smaller real estate. */
@media only screen and (max-width: 1080px) {
.content {
padding: 0em 0.5em;
}
}
/* General Text
----------------------------------------------------- */
@@ -207,6 +227,93 @@ div#alphanav ul li a:hover {
color: #FFF;
}
/* Responsive navigation */
a.navIcon {
display: none;
}
div#header::after {
content: "";
clear: both;
display: table;
}
div#nav::after {
content: "";
clear: both;
display: table;
}
@media only screen and (max-width: 1080px) {
/* Use less & all realestate on mobiles. */
div#outerwrapper {
margin: 5px auto;
width: 100%;
}
.nav {
background: none; /* Works in IE too. */
/*
width: 200px;
position: absolute;
z-index: 10;
*/
}
/* Undo some of the #nav styles - to enable the class .nav */
.nav ul, #subnavigation ul {
list-style: none;
min-width: unset;
width: 200px;
height: 32px;
margin: 0;
padding: 0;
}
.nav ul li, #subnavigation ul li {
float: unset;
display: unset
}
/* Start with hidden menu options */
/* .nav li:not(:first-child) {display: none;} */
.nav li {display: none;}
.nav ul {display: none;}
a.navIcon {
font-size:1.3em;
display: block;
margin: 0.1em 0.4em 0.4em 0.4em;
float: left;
}
.nav.responsive {position: absolute; display: block; z-index: 100;}
.nav.responsive a.icon {
position: absolute;
right: 0;
top: 0;
margin-right: 10px;
}
.nav.responsive li {
/* float: left; */
display: block;
text-align: left;
background-color: #EEE;
/* required by IE */
float: left;
clear: both;
width: 200px;
}
div#nav ul, #subnavigation ul {
padding-left: 0px;
}
.content {
padding: 0em 0.5em;
}
}
/* Main Table
----------------------------------------------------- */
table {
@@ -406,6 +513,13 @@ table.eventlist tbody tr td.ColumnSources {
margin: 0px auto;
display: block;
border: solid 1px #7CA3DD;
height: auto;
}
@media only screen and (max-width: 1600px) {
#GalleryDisplay img {
max-width: 100%;
}
}
#GalleryDetail h3 {
text-align: center;
@@ -423,13 +537,10 @@ div#SourceDetail {
overflow: hidden;
}
#Contact #summaryarea {
width: 40em;
margin: 2em auto;
padding: 3em;
background-color: #EAEEF4;
border: solid 1px #7CA3DD;
}
#Contact img {
#Contact #summaryarea #GalleryDisplay img {
float: right;
border: solid 1px #7CA3DD;
}
@@ -456,20 +567,31 @@ div#SourceDetail {
/* Subsection
----------------------------------------------------- */
#Home, #Introduction {
overflow: hidden;
}
#Home img, #Introduction img {
#Home #GalleryDisplay, #Introduction #GalleryDisplay, #Contact #GalleryDisplay {
float: right;
margin: 1em;
margin: 0;
border: 0px;
}
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
#Contact #GalleryDisplay img {
display: block;
max-width: 950px;
height: auto;
float: right;
}
@media only screen and (max-width: 1080px) {
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
#Contact #GalleryDisplay img {
margin: 0 auto;
max-width: 100%;
}
}
#Home p, #Introduction p {
padding-left: 15px;
}
.subsection {
clear: both;
overflow: visible;
overflow: hidden;
}
.subsection p {
margin: 0px;
@@ -492,12 +614,33 @@ div#families table.attrlist td.ColumnType {
/* Subsection : Gallery
----------------------------------------------------- */
#gallery {
background-color: green;
}
#indivgallery {
background-color: white;
}
#gallery .gallerycell {
float: left;
width: 130px;
height: 150px;
text-align: center;
margin: 0;
background-color: white;
border-top: solid 1px #999;
border-right: solid 1px #999;
}
#gallery .thumbnail {
font-size: smaller;
margin: 3em auto;
}
#indivgallery .thumbnail {
float: left;
width: 130px;
font-size: smaller;
text-align: center;
margin: 0.8em 0.5em;
background-color: white;
}
#indivgallery h4 + .thumbnail {
margin-left: 15px;
@@ -505,6 +648,40 @@ div#families table.attrlist td.ColumnType {
* first thumnail on each next row should also have a margin-left
* of 15 px. */
}
#gallery div.indexno {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
color: #555;
margin: 0;
}
#indivgallery div.date {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
color: #555;
}
#indivgallery .thumbnail ul {
font-size: smaller;
list-style: none;
padding: 0px;
}
#indivgallery .thumbnail ul li:first-child {
border-style: none;
}
#indivgallery .thumbnail ul li {
border-top: dashed 1px #CCC;
border-top-style: dashed;
padding-top: 0.5em;
padding-bottom: 0.5em;
}
#gallery img {
border: solid 1px #999;
}
#indivgallery img {
border: solid 1px #7CA3DD;
}
@@ -512,6 +689,9 @@ div#families table.attrlist td.ColumnType {
/* ## remove this line and the comment markers from the line below to hide description in Indivifual Gallery
display: none; */
}
div.snapshot div.thumbnail {
text-align: center;
}
/* Subsection : Narrative
----------------------------------------------------- */
@@ -575,6 +755,7 @@ a.familymap {
}
#footer > * {
background-color: #EAEEF4;
font-size: 80%;
}
#footer p#createdate {
float: left;

@@ -19,6 +19,8 @@ Copyright 2008 Jason M. Simanek
Copyright 2009 Stephane Charette
Copyright (C) 2008-2011 Rob G. Healey <robhealey1@gmail.com>
Copyright 2011 Michiel D. Nauta
Copyright 2018 Theo van Rijn
Copyright (C) 2019 Serge Noiraud
This file is part of the GRAMPS program.
@@ -62,19 +64,30 @@ General Elements
-----------------------------------------------------------------*/
body {
font-family: Georgia, serif;
font-size: 90%;
font-size: 100%;
color: #7D5925;
background: url(../images/Web_Mainz_Bkgd.png) black repeat;
}
body > div {
width: 85%;
margin: 0px auto;
background: url(../images/Web_Mainz_Mid.png) #FFF2C6 repeat;
overflow: hidden;
padding: 0px 1.5em;
}
#outerwrapper {
margin: 5px auto;
width: 98%;
}
#outerwrapper > div {
clear: both;
}
.content {
padding: 1.5em 1.5em;
overflow: auto;
background: url(../images/Web_Mainz_Mid.png) #FFF2C6 repeat;
}
#ThumbnailPreview div.snapshot {
float: right;
margin: 0;
}
div.snapshot div.thumbnail {
text-align: center;
@@ -82,6 +95,13 @@ div.snapshot div.thumbnail {
div.snapshot a {
display: inline;
}
/* Less whitespace on smaller real estate. */
@media only screen and (max-width: 1080px) {
.content {
padding: 0em 0.5em;
}
}
/* General Text
-----------------------------------------------------------------*/
@@ -204,6 +224,93 @@ div#alphanav ul li a:hover {
color: white;
}
/* Responsive navigation */
a.navIcon {
display: none;
}
div#header::after {
content: "";
clear: both;
display: table;
}
div#nav::after {
content: "";
clear: both;
display: table;
}
@media only screen and (max-width: 1080px) {
/* Use less & all realestate on mobiles. */
div#outerwrapper {
margin: 5px auto;
width: 100%;
}
.nav {
background: none; /* Works in IE too. */
/*
width: 200px;
position: absolute;
z-index: 10;
*/
}
/* Undo some of the #nav styles - to enable the class .nav */
.nav ul, #subnavigation ul {
list-style: none;
min-width: unset;
width: 200px;
height: 32px;
margin: 0;
padding: 0;
}
.nav ul li, #subnavigation ul li {
float: unset;
display: unset
}
/* Start with hidden menu options */
/* .nav li:not(:first-child) {display: none;} */
.nav li {display: none;}
.nav ul {display: none;}
a.navIcon {
font-size:1.3em;
display: block;
margin: 0.1em 0.4em 0.4em 0.4em;
float: left;
}
.nav.responsive {position: absolute; display: block; z-index: 100;}
.nav.responsive a.icon {
position: absolute;
right: 0;
top: 0;
margin-right: 10px;
}
.nav.responsive li {
/* float: left; */
display: block;
text-align: left;
background-color: #D8C19F;
/* required by IE */
float: left;
clear: both;
width: 200px;
}
div#nav ul, #subnavigation ul {
padding-left: 0px;
}
.content {
padding: 0em 0.5em;
}
}
/* Main Table
-----------------------------------------------------------------*/
table {
@@ -361,6 +468,13 @@ table.eventlist tbody tr td.ColumnSources {
margin: 0px auto;
display:block;
border: solid 1px #7D5925;
height: auto;
}
@media only screen and (max-width: 1600px) {
#GalleryDisplay img {
max-width: 100%;
}
}
/* Sources
@@ -376,7 +490,7 @@ div#SourceDetail {
padding-bottom: 0px;
margin: 0px;
}
#Contact img {
#Contact #summaryarea #GalleryDisplay img {
display: block;
margin: 0px auto 1em auto;
border: solid 1px #7D5925;
@@ -402,16 +516,31 @@ div#SourceDetail {
/* SubSection
-----------------------------------------------------------------*/
#Home img, #Introduction img {
#Home #GalleryDisplay, #Introduction #GalleryDisplay, #Contact #GalleryDisplay {
float: right;
margin-left: 10px;
margin-right: 10px;
}
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
#Contact #GalleryDisplay {
display: block;
margin: 1em auto;
max-width: 950px;
height: auto;
float: right;
}
@media only screen and (max-width: 1080px) {
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
#Contact #GalleryDisplay {
margin: 0 auto;
max-width: 100%;
}
}
#Home a, #Introduction a, #Contact a {
color: black;
}
.subsection {
clear: both;
overflow: hidden;
}
.subsection p {
margin: 0px;
@@ -428,9 +557,32 @@ div#families table.fixed_subtables table.eventlist th:first-child {
div#families table.fixed_subtables table.eventlist th:last-child {
width: 5em;
}
div#families .infolist h4 {
text-align: left;
}
/* SubSection : Gallery
-----------------------------------------------------------------*/
#gallery {
background-color: green;
}
#indivgallery {
background-color: white;
}
#gallery .gallerycell {
float: left;
width: 130px;
height: 150px;
text-align: center;
margin: 0;
background-color: white;
border-top: solid 1px #999;
border-right: solid 1px #999;
}
#gallery .thumbnail {
font-size: smaller;
margin: 3em auto;
}
#indivgallery {
/* float container stretch, see www.quirksmode.org/css/clearing.html */
overflow: hidden;
@@ -441,6 +593,7 @@ div#families table.fixed_subtables table.eventlist th:last-child {
font-size: smaller;
text-align: center;
margin: 0.5em;
background-color: white;
}
#indivgallery img {
border: solid 1px #7D5925;
@@ -449,6 +602,43 @@ div#families table.fixed_subtables table.eventlist th:last-child {
/* ## remove this line and the comment markers from the line below to hide the description in Individual Gallery
display: none; */
}
#gallery div.indexno {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
color: #555;
margin: 0;
}
#indivgallery div.date {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
color: #555;
}
#indivgallery .thumbnail ul {
font-size: smaller;
list-style: none;
padding: 0px;
}
#indivgallery .thumbnail ul li:first-child {
border-style: none;
}
#indivgallery .thumbnail ul li {
border-top: dashed 1px #CCC;
border-top-style: dashed;
padding-top: 0.5em;
padding-bottom: 0.5em;
}
#gallery img {
border: solid 1px #999;
}
div.snapshot div.thumbnail {
text-align: center;
}
/* SubSection : Narrative
-----------------------------------------------------------------*/
@@ -501,20 +691,32 @@ div.grampsstylednote p {
-----------------------------------------------------------------*/
#footer {
clear: both;
overflow: hidden;
width: 100%;
background: url(../images/Web_Mainz_MidLight.png) #FFF2C6;
border-top: dashed 1px #7D5925;
font-family: sans-serif;
}
#footer p#createdate {
float: left;
width: 50%;
text-align: left;
margin-left: 10px;
}
#footer p#copyright {
float: right;
width: 40%;
text-align: right;
}
#footer p#copyright img {
float: right;
margin-right: 10px;
margin-bottom: 10px;
vertical-align: middle;
}
#footer > * {
font-size: 80%;
background: url(../images/Web_Mainz_MidLight.png) #FFF2C6;
}
/* Overwritten
-----------------------------------------------------------------*/

@@ -19,6 +19,8 @@ Go to <http://gramps-project.org/> to learn more!
Copyright 2008 Jason M. Simanek
Copyright 2009 Stephane Charette
Copyright (C) 2008-2011 Rob G. Healey <robhealey1@gmail.com>
Copyright 2018 Theo van Rijn
Copyright (C) 2019 Serge Noiraud
This file is part of the GRAMPS program.
@@ -82,10 +84,21 @@ img {
.thumbnail a:hover {
background:none;
}
#outerwrapper {
margin: 5px auto;
width: 98%;
}
#outerwrapper > div {
clear: both;
}
.content {
padding-top: 1cm;
background-color:#FFF;
}
#ThumbnailPreview div.snapshot {
float: right;
margin: 0;
}
.content div.snapshot {
float:right;
margin:1.6em;
@@ -100,6 +113,12 @@ img {
.content div.snapshot div.thumbnail span {
display:none;
}
/* Less whitespace on smaller real estate. */
@media only screen and (max-width: 1080px) {
.content {
padding: 0em 0.5em;
}
}
.fullclear {
width:100%;
height:1px;
@@ -254,6 +273,100 @@ div#subnavigation ul li.CurrentSection a {
border-width: 0 0 1px 0;
}
/* Responsive navigation */
a.navIcon {
display: none;
color: #FFF;
}
div#header::after {
content: "";
clear: both;
display: table;
}
div#nav::after {
content: "";
clear: both;
display: table;
}
@media only screen and (max-width: 1080px) {
/* Use less & all realestate on mobiles. */
div#outerwrapper {
margin: 5px auto;
width: 100%;
}
.nav {
background: none; /* Works in IE too. */
/*
width: 200px;
position: absolute;
z-index: 10;
*/
}
/* Undo some of the #nav styles - to enable the class .nav */
.nav ul, #subnavigation ul {
list-style: none;
min-width: unset;
width: 200px;
height: 32px;
margin: 0;
padding: 0;
}
.nav ul li, #subnavigation ul li {
float: unset;
display: unset
}
/* Start with hidden menu options */
/* .nav li:not(:first-child) {display: none;} */
.nav li {display: none;}
.nav ul {display: none;}
a.navIcon {
font-size:1.3em;
display: block;
margin: 0.1em 0.4em 0.4em 0.4em;
float: left;
color: #FFF;
}
.nav.responsive {position: absolute; display: block; z-index: 100;}
.nav.responsive a.icon {
position: absolute;
right: 0;
top: 0;
margin-right: 10px;
}
.nav.responsive ::after {
/* need to remove the "|" when we are in the dropdown menu. */
color: #A97;
background-color: #A97;
}
.nav.responsive li {
/* float: left; */
display: block;
text-align: left;
background-color: #A97;
/* required by IE */
float: left;
clear: both;
width: 200px;
}
div#nav ul, #subnavigation ul {
padding-left: 0px;
}
.content {
padding: 0em 0.5em;
}
}
/* Main Table
----------------------------------------------------- */
table.infolist {
@@ -634,6 +747,13 @@ table.eventlist tbody tr td.ColumnSources {
}
#GalleryDisplay img {
margin:0 auto;
height: auto;
}
@media only screen and (max-width: 1600px) {
#GalleryDisplay img {
max-width: 100%;
}
}
#GalleryDetail div#summaryarea{
margin:0;
@@ -679,7 +799,6 @@ body#ThumbnailPreview div#references table.infolist tbody tr td.ColumnName {
/* Contact
----------------------------------------------------- */
#Contact #summaryarea {
width:500px;
margin:0 auto;
padding:3em;
background-color:#F1ECE2;
@@ -697,7 +816,6 @@ body#ThumbnailPreview div#references table.infolist tbody tr td.ColumnName {
padding:0;
}
#researcher span {
float:left;
display:block;
font:normal .9em/1.4em serif;
margin-right:.4em;
@@ -779,20 +897,32 @@ table.download td.Modified {
/* Subsections
----------------------------------------------------- */
#Home, #Introduction, #Contact {
padding:2em 0 3em 0;
#Home #GalleryDisplay, #Introduction #GalleryDisplay, #Contact #GalleryDisplay {
float: right;
margin-left: 10px;
margin-right: 10px;
}
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
#Contact #GalleryDisplay img {
display: block;
max-width: 950px;
height: auto;
float: right;
}
@media only screen and (max-width: 1080px) {
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
#Contact #GalleryDisplay img {
max-width: 100%;
}
}
#Home p, #Introduction p {
margin:0 20px 1em 20px;
}
#Home img, #Introduction img {
float:right;
margin:0;
padding:0 20px 3em 2em;
}
#Home a, #Introduction a, #Contact a {
color: #000;
text-decoration: none;
overflow: hidden;
}
div.subsection{
padding-bottom:.5em;
@@ -926,6 +1056,26 @@ div#Addresses table.infolist tr td a, div#Addresses table.infolist tr td p a {
/* Subsections : Gallery
----------------------------------------------------- */
#gallery {
background-color: green;
}
#indivgallery {
background-color: white;
}
#gallery .gallerycell {
float: left;
width: 130px;
height: 150px;
text-align: center;
margin: 0;
background-color: white;
border-top: solid 1px #999;
border-right: solid 1px #999;
}
#gallery .thumbnail {
font-size: smaller;
margin: 3em auto;
}
#indivgallery h4 {
margin-bottom:1em;
}
@@ -934,6 +1084,41 @@ div#Addresses table.infolist tr td a, div#Addresses table.infolist tr td p a {
float:left;
width:130px;
text-align:center;
background-color: white;
}
#gallery div.indexno {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
color: #555;
margin: 0;
}
#indivgallery div.date {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
color: #555;
}
#indivgallery .thumbnail ul {
font-size: smaller;
list-style: none;
padding: 0px;
}
#indivgallery .thumbnail ul li:first-child {
border-style: none;
}
#indivgallery .thumbnail ul li {
border-top: dashed 1px #CCC;
border-top-style: dashed;
padding-top: 0.5em;
padding-bottom: 0.5em;
}
#gallery img {
border: solid 1px #999;
}
#indivgallery .thumbnail a {
display:block;
@@ -957,6 +1142,9 @@ div#Addresses table.infolist tr td a, div#Addresses table.infolist tr td p a {
margin:0 auto;
padding:0;
}
div.snapshot div.thumbnail {
text-align: center;
}
/* Subsections : Narrative
----------------------------------------------------- */
@@ -1070,6 +1258,9 @@ div#pedigree {
background-color: #542;
border-top: solid 8px #A97;
}
#footer > * {
font-size: 80%;
}
#footer a, #footer a:visited {
text-decoration: none;
color: #C1B398;

@@ -9,7 +9,7 @@
# 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,
# 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.
@@ -20,10 +20,10 @@
#
# $Id: $
#
**************************************************************************************************
*******************************************************************************
GRAMPS Cascading Style Sheet
Style Name: Combined Ancestor Tree Style Sheet
***************************************************************************************************
*******************************************************************************
#
===== Ancestor Graph Color Scheme =====
Males #BCEAF6
@@ -33,10 +33,8 @@ Unknown #000
===== Web Graphics =====
Males Web_Gender_Male.png
Females Web_Gender_Female.png
# ------------------------------------------------------------------------------------------------- */
/* Subsections : Ancestors Tree
----------------------------------------------------- */
# -------------------------------------------------------------------------- #
/* Subsections : Ancestors Tree -------------------------------------------- */
#tree {
page-break-before:always;
margin:0;
@@ -52,8 +50,8 @@ Females Web_Gender_Female.png
}
#treeContainer div.boxbg {
position:absolute;
margin:0;
padding:0;
margin:0px;
padding:0px;
background:none;
}
#treeContainer div.boxbg a,
@@ -61,41 +59,43 @@ Females Web_Gender_Female.png
position:relative;
z-index:10;
display:block;
font:normal .7em/1.4em sans-serif;
font:normal 1.1em/1.4em sans-serif;
text-align:center;
word-break:break-word;
word-wrap:break-word;
text-decoration:none;
color: #00029D;
width:118px;
padding:5px 20px 7px 20px;
width:280px;
min-height: 70px;
margin-left:16px;
background-color: #FFF;
border: solid 1px #000;
border: solid 2px #000;
border-radius: 10px;
}
#treeContainer div.boxbg a.noThumb,
#treeContainer div.AncCol3 a,
#treeContainer div.AncCol4 a,
#treeContainer div.AncCol3 span.unlinked,
#treeContainer div.AncCol4 a,
#treeContainer div.AncCol4 span.unlinked {
margin-top:10px;
float: right;
}
#treeContainer div.boxbg a:hover {
position:relative;
z-index:999;
font-size:1em;
font-size:1.3em;
word-break:break-word;
word-wrap:break-word;
text-decoration:none;
color: #00029D;
width:190px;
width:400px;
margin-left:-20px;
padding:10px 25px 12px 25px;
border: solid 2px #000;
padding: 0px 0px 0px 40px;
}
#treeContainer div.boxbg a:hover,
#treeContainer div.AncCol3 a:hover,
#treeContainer div.boxbg a:hover,
#treeContainer div.AncCol4 a:hover {
margin-top:-44px;
}
#treeContainer div.boxbg a.noThumb:hover {
margin-top:0;
padding-left: 10px;
}
#treeContainer div.AncCol0 a:hover {
margin-left:12px;
@@ -105,48 +105,73 @@ Females Web_Gender_Female.png
}
#treeContainer div.boxbg span.thumbnail {
display:block;
max-width:80px;
max-height:65px;
margin:0 auto;
padding:4px 0;
position: absolute;
max-width:85px;
max-height:75px;
left: 3px;
top: 3px;
}
#treeContainer div.boxbg span.thumbnail img {
max-width:80px;
max-height:65px;
margin:0 auto;
#treeContainer div.boxbg a.thumbnail table td.img {
padding-right: 5px;
}
#treeContainer div.boxbg a:hover span.thumbnail, #treeContainer div.boxbg a:hover span.thumbnail img {
height:80px;
#treeContainer div.boxbg a.thumbnail:hover table td.img {
padding-right: 9px;
}
#treeContainer div.AncCol3 span.thumbnail, #treeContainer div.AncCol4 span.thumbnail {
#treeContainer div.boxbg a.thumbnail table td.name {
padding-top:3px;
padding-left: 2px;
padding-right: 23px;
width: 90%;
}
#treeContainer div.boxbg a.thumbnail img {
margin-left:0px;
padding-left: 0px;
border-radius: 5px;
}
#treeContainer div.boxbg a.thumbnail:hover img {
max-height:90%;
margin-left:5px;
position: absolute;
left: 0px;
top: 4px;
border-radius: 5px;
}
#treeContainer div.boxbg table td:first-child, table th:first-child {
padding-left: 5px;
padding-top: 5px;
}
#IndividualDetail div.subsection table tr td:first-child {
padding-left: 5px;
padding-top: 5px;
}
#treeContainer #treeContainer div.AncCol4 span.thumbnail {
display:none;
}
#treeContainer div.boxbg a:hover span.thumbnail {
display:block;
}
#treeContainer div.boxbg span.fullname {
display: none;
}
#treeContainer div.boxbg span.shortname {
display: inline;
}
#treeContainer div.boxbg a:hover span.fullname {
display: inline;
}
#treeContainer div.boxbg a:hover span.shortname {
display: none;
}
#treeContainer div.boxbg a:hover {
float: right;
margin-top: 10px;
border: solid 4px #000;
}
#treeContainer div.male a,
#treeContainer div.male span.unlinked {
background:url(../images/Web_Gender_Male.png) #BCEAF6 no-repeat top right;
}
#treeContainer div.female a,
#treeContainer div.female a,
#treeContainer div.female span.unlinked {
background:url(../images/Web_Gender_Female.png) #FFC0CB no-repeat top right;
}

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop">
<id>gramps.desktop</id>
<metadata_license>CC0</metadata_license>
<component type="desktop-application">
<id>org.gramps.gramps</id>
<metadata_license>CC0-1.0</metadata_license>
<name>Gramps</name>
<summary>Genealogical research program</summary>
@@ -11,6 +11,7 @@
<_p>All of your research is kept organized, searchable and as precise as you need it to be.</_p>
</description>
<launchable type="desktop-id">gramps.desktop</launchable>
<url type="homepage">https://gramps-project.org/</url>
<url type="bugtracker">https://gramps-project.org/bugs/</url>
<url type="help">https://gramps-project.org/wiki/index.php?title=Main_page</url>
@@ -18,11 +19,21 @@
<developer_name>Gramps Development Team</developer_name>
<screenshots>
<screenshot width="1226" height="740">http://www.gramps-project.org/wiki/images/5/5f/AppData1.png</screenshot>
<screenshot width="1226" height="740">http://www.gramps-project.org/wiki/images/6/68/AppData2.png</screenshot>
<screenshot type="default" width="1226" height="740">http://www.gramps-project.org/wiki/images/e/e9/AppData3.png</screenshot>
<screenshot width="1226" height="740">http://www.gramps-project.org/wiki/images/6/68/AppData4.png</screenshot>
<screenshot width="1226" height="740">http://www.gramps-project.org/wiki/images/5/50/AppData5.png</screenshot>
<screenshot>
<image width="1226" height="740">https://www.gramps-project.org/wiki/images/5/5f/AppData1.png</image>
</screenshot>
<screenshot>
<image width="1226" height="740">https://www.gramps-project.org/wiki/images/6/68/AppData2.png</image>
</screenshot>
<screenshot type="default">
<image width="1226" height="740">https://www.gramps-project.org/wiki/images/e/e9/AppData3.png</image>
</screenshot>
<screenshot>
<image width="1226" height="740">https://www.gramps-project.org/wiki/images/6/68/AppData4.png</image>
</screenshot>
<screenshot>
<image width="1226" height="740">https://www.gramps-project.org/wiki/images/5/50/AppData5.png</image>
</screenshot>
</screenshots>
<provides>

@@ -20,6 +20,9 @@
<code>SAMOA</code>
<code>AP</code>
</temple>
<temple name="Arequipa Peru Temple">
<code>AREQU</code>
</temple>
<temple name="Asuncion, Paraguay">
<code>ASUNC</code>
</temple>
@@ -27,6 +30,9 @@
<code>ATLAN</code>
<code>AT</code>
</temple>
<temple name="Barranquilla Colombia Temple">
<code>BARRA</code>
</temple>
<temple name="Baton Rouge, Louisiana">
<code>BROUG</code>
</temple>
@@ -57,6 +63,9 @@
<temple name="Bountiful, Utah">
<code>BOUNT</code>
</temple>
<temple name="Brigham City Utah Temple">
<code>BRIGH</code>
</temple>
<temple name="Brisbane, Australia">
<code>BRISB</code>
</temple>
@@ -79,8 +88,12 @@
<code>ALBR</code>
</temple>
<temple name="Cebu, Philippines">
<code>CEBUP</code>
<code>CEBU</code>
</temple>
<temple name="Cedar City Utah">
<code>CEDAR</code>
</temple>
<temple name="Chicago, Illinois">
<code>CHICA</code>
<code>CH</code>
@@ -94,15 +107,18 @@
<temple name="Colonia Juarez, Chihuahua, Mexico">
<code>COLJU</code>
</temple>
<temple name="Columbia, South Carolina">
<code>COLSC</code>
</temple>
<temple name="Columbia River, Washington">
<code>CRIVE</code>
</temple>
<temple name="Columbia, South Carolina">
<code>COLSC</code>
</temple>
<temple name="Columbus, Ohio">
<code>COLUM</code>
</temple>
<temple name="Concepción Chile">
<code>CONCE</code>
</temple>
<temple name="Copenhagen, Denmark">
<code>COPEN</code>
</temple>
@@ -129,6 +145,19 @@
<temple name="Edmonton, Alberta">
<code>EDMON</code>
</temple>
<temple name="Endowment House">
<code>EHOUS</code>
<code>EH</code>
</temple>
<temple name="Fort Collins Colorado">
<code>FORTC</code>
</temple>
<temple name="Fort Lauderdale Florida">
<code>FORTL</code>
</temple>
<temple name="Fortaleza Brazil">
<code>FORTA</code>
</temple>
<temple name="Frankfurt, Germany">
<code>FRANK</code>
<code>FR</code>
@@ -191,6 +220,9 @@
<code>IFALL</code>
<code>IF</code>
</temple>
<temple name="Indianapolis Indiana">
<code>INDIA</code>
</temple>
<temple name="Johannesburg, South Africa">
<code>JOHAN</code>
<code>JO</code>
@@ -202,10 +234,14 @@
<temple name="Kansas City, Missouri">
<code>KANSA</code>
</temple>
<temple name="Kinshasa Democratic Republic of the Congo">
<code>KINSH</code>
</temple>
<temple name="Kona, Hawaii">
<code>KONA</code>
</temple>
<temple name="Kiev, Ukraine">
<code>KYIV</code>
<code>KIEV</code>
</temple>
<temple name="Kirtland, Ohio">
@@ -223,6 +259,9 @@
<code>LIMA</code>
<code>LI</code>
</temple>
<temple name="Lisbon Portugal">
<code>LISBO</code>
</temple>
<temple name="Logan, Utah">
<code>LOGAN</code>
<code>LG</code>
@@ -270,6 +309,9 @@
<temple name="Merida, Mexico">
<code>MERID</code>
</temple>
<temple name="Meridian Idaho">
<code>MIDAH</code>
</temple>
<temple name="Mesa, Arizona">
<code>ARIZO</code>
<code>AZ</code>
@@ -325,6 +367,7 @@
<code>OKLAH</code>
</temple>
<temple name="Oquirrh Mountain, Utah">
<code>OQUIR</code>
<code>OMOUN</code>
</temple>
<temple name="Orlando, Florida">
@@ -340,6 +383,12 @@
<code>PAPEE</code>
<code>TA</code>
</temple>
<temple name="Paris France">
<code>PARIS</code>
</temple>
<temple name="Payson Utah">
<code>PAYSO</code>
</temple>
<temple name="Perth, Australia">
<code>PERTH</code>
</temple>
@@ -349,6 +398,9 @@
<temple name="Phoenix, Arizona">
<code>PHOEN</code>
</temple>
<temple name="Port-au-Prince Haiti">
<code>PORTA</code>
</temple>
<temple name="Portland, Oregon">
<code>PORTL</code>
<code>PT</code>
@@ -359,6 +411,9 @@
<temple name="Preston, England">
<code>PREST</code>
</temple>
<temple name="Provo City Center, Utah">
<code>PROCC</code>
</temple>
<temple name="Provo, Utah">
<code>PROVO</code>
<code>PV</code>
@@ -385,6 +440,7 @@
<code>REXBU</code>
</temple>
<temple name="Rome, Italy">
<code>ROMEI</code>
<code>ROME</code>
</temple>
<temple name="Sacramento, California">
@@ -394,12 +450,6 @@
<code>SGEOR</code>
<code>SG</code>
</temple>
<temple name="St. Louis, Missouri">
<code>SLOUI</code>
</temple>
<temple name="St. Paul, Minnesota">
<code>SPMIN</code>
</temple>
<temple name="Salt Lake City, Utah">
<code>SLAKE</code>
<code>SL</code>
@@ -415,6 +465,7 @@
<code>SJOSE</code>
</temple>
<temple name="San Salvador, El Salvador">
<code>SANSA</code>
<code>SSALV</code>
</temple>
<temple name="Santiago, Chile">
@@ -428,6 +479,9 @@
<code>SPAUL</code>
<code>SP</code>
</temple>
<temple name="Sapporo Japan">
<code>SAPPO</code>
</temple>
<temple name="Seattle, Washington">
<code>SEATT</code>
<code>SE</code>
@@ -442,6 +496,15 @@
<temple name="Spokane, Washington">
<code>SPOKA</code>
</temple>
<temple name="St. Louis, Missouri">
<code>SLOUI</code>
</temple>
<temple name="St. Paul, Minnesota">
<code>SPMIN</code>
</temple>
<temple name="Star Valley Wyoming">
<code>STARV</code>
</temple>
<temple name="Stockholm, Sweden">
<code>STOCK</code>
<code>ST</code>
@@ -463,9 +526,15 @@
<temple name="Tegucigalpa, Honduras">
<code>TEGUC</code>
</temple>
<temple name="The Gila Valley Arizona">
<code>GILAV</code>
</temple>
<temple name="The Hague, Netherlands">
<code>HAGUE</code>
</temple>
<temple name="Tijuana Mexico">
<code>TIJUA</code>
</temple>
<temple name="Tokyo, Japan">
<code>TOKYO</code>
<code>TK</code>
@@ -474,16 +543,19 @@
<code>TORON</code>
<code>TORNO</code>
<code>TR</code>
</temple>
<temple name="Trujillo, Peru">
<code>TRUJI</code>
</temple>
<temple name="Tucson Arizona">
<code>TUCSO</code>
</temple>
<temple name="Tuxtla Gutierrez, Mexico">
<code>TGUTI</code>
</temple>
<temple name="Twin Falls, Idaho">
<code>TFALL</code>
<code>TWINF</code>
<code>TFALL</code>
</temple>
<temple name="Vancouver, British Columbia">
<code>VANCO</code>
@@ -505,10 +577,6 @@
<code>WINTE</code>
<code>WQUAR</code>
</temple>
<temple name="Endowment House">
<code>EHOUS</code>
<code>EH</code>
</temple>
<temple name="President's Office">
<code>POFFI</code>
<code>PO</code>

File diff suppressed because it is too large Load Diff

@@ -1278,7 +1278,7 @@
<rel type="Unknown"/>
<father hlink="_0000000b0000000b"/>
<mother hlink="_0000002600000026"/>
<childref hlink="_0000006f0000006f"/>
<childref hlink="_0000006f0000006f" frel="Adopted" mrel="Foster"/>
</family>
<family handle="_0000001000000010" change="1198222526" id="F0014">
<rel type="Unknown"/>

@@ -9,6 +9,12 @@ beg
- h Hans_Peter.8 17/4/1904 #bp R<>nne,_Bornholm,_Denmark 29/1/1977 #dp San_Francisco,_San_Francisco_Co.,_CA
end
notes Hansdotter Anna.1
beg
******************************************************************890123456789
******************************************************************89 123456789
end notes
notes Smith Hjalmar.5
beg
BIOGRAPHY
@@ -61,7 +67,7 @@ Some Bold Unicode Characters: &#2294;&#508;&#1024;&#1580;&#12228;&#13405;&#15691
Some Italic Unicode Characters: &#2294;&#508;&#1024;&#1580;&#12228;&#13405;&#15691;&#22299;&#22665;&#24181;&#32863;&#32870;&#65865;&#128694;&#128712;
end notes
fam Smith Gus.6 +~1920 Michaels Evelyn.25 ~1897
fam Smith Gus.6 +~1920 Michaels Evelyn.25 ~1897 0
fam Smith Hjalmar.5 +31/10/1927 #mp Reno,_Washoe_Co.,_NV Ohman Marjorie.26 3/6/1903 #bp Denver,_Denver_Co.,_CO,_Denver_Co.,_Colorado,_USA 22/6/1980 #dp Reno,_Washoe_Co.,_NV
beg
@@ -98,13 +104,18 @@ beg
- h Martin.17 1794..1796 #bp Tommarp,_Kristianstad_L<5F>n,_Sweden #dp Sweden
end
fam Willard Edwin.42 ~1886 +~1910 Smith Kirsti_Marie.2
fam Willard Edwin.42 ~1886 0 +~1910 Smith Kirsti_Marie.2
fam Smith Magnes.38 +24/8/1884 #mp R<>nne,_Bornholm,_Denmark Streiffert Anna.43 23/9/1860 #bp Hoya/Jona/Hoia,_Sweden 2/2/1927 #dp R<>nne,_Bornholm,_Denmark
fam Tester The.14 + Tester Mrs.44 0
beg
- h Tom.45 0
- h Tom.45 Von_Tester_y_tested 0
- Fake.46 von_Person 1954 #bp Fremont,_Alameda_Co.,_CA
- f Mary.47 0
- f Martha.48 0
- h John.49 0
- h Mark.50 0
end
notes Tester Mrs.44

File diff suppressed because it is too large Load Diff

@@ -1,47 +1,52 @@
Anna Hansdotter;;;;;2/10/1864-29/9/1945
Keith Lloyd Smith;Lloyd Smith;Janis Green;;;11/8/1966
Hans Peter Smith;Gustaf Smith;Anna Hansdotter;;;17/4/1904-29/1/1977
Hanna Smith;Martin Smith0;Elna Jefferson;;;29/1/1821
Herman Julius Nielsen;;;;;31/8/1889-1945
Evelyn Michaels;;;;;1897
Marjorie Lee Smith;Hjalmar Smith0;Marjorie Ohman;;;4/11/1934
Gus Smith;Gustaf Smith;Anna Hansdotter;;;11/9/1897-21/10/1963
Jennifer Anderson;;;;;5/11/1907-29/5/1985
Lillie Harriet Jones;;;;;2/5/1910-26/6/1990
John Hjalmar Smith;Hjalmar Smith0;Marjorie Ohman;;;30/1/1932
Eric Lloyd Smith;Lloyd Smith;Janis Green;;;28/8/1963
Amber Marie Smith;Edwin Smith;Janice Adams;;;12/4/1998
Carl Emil Smith;Gustaf Smith;Anna Hansdotter;;;20/12/1899-28/1/1959
Hjalmar Smith;Gustaf Smith;Anna Hansdotter;;;31/1/1893-25/9/1894
Martin Smith;Martin Smith0;Elna Jefferson;;;19/11/1830-1899
Astrid Shermanna Augusta Smith;Gustaf Smith;Anna Hansdotter;;;31/1/1889-21/12/1963
Gustaf Smith, Sr.;Martin Smith;Kerstina Hansdotter;;;28/11/1862-23/7/1930
Marta Ericsdotter;;;;;1775
Kirsti Marie Smith;Gustaf Smith;Anna Hansdotter;;;15/12/1886-18/7/1966
Ingeman Smith;;;;;1770
Anna Streiffert;;;;;23/9/1860-2/2/1927
Craig Peter Smith;Lloyd Smith;Janis Green;;;1966
Magnes Smith;Martin Smith;Kerstina Hansdotter;;;6/10/1858-20/2/1910
Janice Ann Adams;;;;;26/8/1965
Marjorie Ohman;;;;;3/6/1903-22/6/1980
Darcy Horne;;;;;2/7/1966
Alice Paula Perkins;;;;;22/11/1933
Lars Peter Smith;Eric Smith;Darcy Horne;;;16/9/1991
Ingeman Smith0;Martin Smith0;Elna Jefferson;;;29/1/1826
Lloyd Smith;Hans Smith;Lillie Jones;;;13/3/1935
Elna Jefferson;;;;;14/9/1800-
Edwin Michael Smith;John Smith;Alice Perkins;;;24/5/1961
Kerstina Hansdotter;;;;;29/11/1832-1908
Martin Smith0;Ingeman Smith;Marta Ericsdotter;;;1794-
Marjorie Alice Smith0;John Smith;Alice Perkins;;;5/2/1960
Janis Elaine Green;;;;;2/12/1935
Mason Michael Smith;Edwin Smith;Janice Adams;;;26/6/1996
Edwin Willard;;;;;1886
Ingar Smith;Martin Smith0;Elna Jefferson;;;1823
Hjalmar Smith0;Gustaf Smith;Anna Hansdotter;;;7/4/1895-26/6/1975
Emil Smith;Martin Smith;Kerstina Hansdotter;;;27/9/1860
雪 Ke 柯;Herman Nielsen;Astrid Smith;;;
The Tester;Lloyd Smith;Janis Green;;;29/12/1954
Mrs Tester;;;;;
ピーター リチミシキスイミ;;;;;
Tom Tester;The Tester;Mrs Tester;;;
Anna Hansdotter;;;;;2/10/1864-29/9/1945
Keith Lloyd Smith;Lloyd Smith;Janis Green;;;11/8/1966
Hans Peter Smith;Gustaf Smith;Anna Hansdotter;;;17/4/1904-29/1/1977
Hanna Smith;Martin Smith0;Elna Jefferson;;;29/1/1821
Herman Julius Nielsen;;;;;31/8/1889-1945
Evelyn Michaels;;;;;1897
Marjorie Lee Smith;Hjalmar Smith0;Marjorie Ohman;;;4/11/1934
Gus Smith;Gustaf Smith;Anna Hansdotter;;;11/9/1897-21/10/1963
Jennifer Anderson;;;;;5/11/1907-29/5/1985
Lillie Harriet Jones;;;;;2/5/1910-26/6/1990
John Hjalmar Smith;Hjalmar Smith0;Marjorie Ohman;;;30/1/1932
Eric Lloyd Smith;Lloyd Smith;Janis Green;;;28/8/1963
Amber Marie Smith;Edwin Smith;Janice Adams;;;12/4/1998
Carl Emil Smith;Gustaf Smith;Anna Hansdotter;;;20/12/1899-28/1/1959
Hjalmar Smith;Gustaf Smith;Anna Hansdotter;;;31/1/1893-25/9/1894
Martin Smith;Martin Smith0;Elna Jefferson;;;19/11/1830-1899
Astrid Shermanna Augusta Smith;Gustaf Smith;Anna Hansdotter;;;31/1/1889-21/12/1963
Gustaf Smith, Sr.;Martin Smith;Kerstina Hansdotter;;;28/11/1862-23/7/1930
Marta Ericsdotter;;;;;1775
Kirsti Marie Smith;Gustaf Smith;Anna Hansdotter;;;15/12/1886-18/7/1966
Ingeman Smith;;;;;1770
Anna Streiffert;;;;;23/9/1860-2/2/1927
Craig Peter Smith;Lloyd Smith;Janis Green;;;1966
Magnes Smith;Martin Smith;Kerstina Hansdotter;;;6/10/1858-20/2/1910
Janice Ann Adams;;;;;26/8/1965
Marjorie Ohman;;;;;3/6/1903-22/6/1980
Darcy Horne;;;;;2/7/1966
Lloyd Smith;Hans Smith;Lillie Jones;;;13/3/1935
Alice Paula Perkins;;;;;22/11/1933
Lars Peter Smith;Eric Smith;Darcy Horne;;;16/9/1991
Elna Jefferson;;;;;14/9/1800-
Edwin Michael Smith;John Smith;Alice Perkins;;;24/5/1961
Kerstina Hansdotter;;;;;29/11/1832-1908
Martin Smith0;Ingeman Smith;Marta Ericsdotter;;;1794-
Ingeman Smith0;Martin Smith0;Elna Jefferson;;;29/1/1826
Marjorie Alice Smith0;John Smith;Alice Perkins;;;5/2/1960
Janis Elaine Green;;;;;2/12/1935
Mason Michael Smith;Edwin Smith;Janice Adams;;;26/6/1996
Edwin Willard;;;;;1886
Ingar Smith;Martin Smith0;Elna Jefferson;;;1823
Hjalmar Smith0;Gustaf Smith;Anna Hansdotter;;;7/4/1895-26/6/1975
Emil Smith;Martin Smith;Kerstina Hansdotter;;;27/9/1860
雪 Ke 柯;Herman Nielsen;Astrid Smith;;;
ピーター リチミシキスイミ;;;;;
The Tester;Lloyd Smith;Janis Green;;;29/12/1954
Mrs Tester;;;;;
Tom Von Tester y tested;The Tester;Mrs Tester;;;
Fake von Person, I;The Tester;Mrs Tester;;;1954-
Mary Tester;The Tester;Mrs Tester;;;
Martha Tester;The Tester;Mrs Tester;;;
John Tester;The Tester;Mrs Tester;;;
Mark Tester;The Tester;Mrs Tester;;;

@@ -30,66 +30,65 @@
[P0014],"Denver, Denver Co., CO","Denver, Denver Co., CO",City,39.7392,104.9903 W,,[P0024],
Person,Surname,Given,Call,Suffix,Prefix,Title,Gender,Birth date,Birth place,Birth source,Baptism date,Baptism place,Baptism source,Death date,Death place,Death source,Burial date,Burial place,Burial source,Note
[I0030],Adams,Janice Ann,,,,,female,26 Aug 1965,"Fremont, Alameda Co., CA",,,,,,,,,,,
[I0016],Anderson,Jennifer,,,,,female,5 Nov 1907,"Rønne, Bornholm, Denmark",,,,,29 May 1985,"San Francisco, San Francisco Co., CA",,,,,
[I0025],Ericsdotter,Marta,,,,,female,about 1775,Sweden,,,,,,,,,,,
[I0041],Green,Janis Elaine,,,,,female,2 Dec 1935,,,,,,,,,,,,
[I0000],Hansdotter,Anna,,,,,female,2 Oct 1864,"Löderup, Malmöhus Län, Sweden",,,,,29 Sep 1945,"Sparks, Washoe Co., NV",,,,,
[I0038],Hansdotter,Kerstina,,,,,female,29 Nov 1832,"Smestorp, Kristianstad Län, Sweden",,,,,before 1908,Sweden,,,,,
[I0032],Horne,Darcy,,,,,female,2 Jul 1966,"Sacramento, Sacramento Co., CA",,,,,,,,,,,
[I0036],Jefferson,Elna,,,,,female,14 Sep 1800,"Gladsax, Kristianstad Län, Sweden",,,,,,Sweden,,,,,
[I0017],Jones,Lillie Harriet,,,,,female,2 May 1910,"Rønne, Bornholm, Denmark",,,,,26 Jun 1990,,,,,,
[I0030],Adams,Janice Ann,,,,,female,1965-08-26,[P0013],,,,,,,,,,,
[I0016],Anderson,Jennifer,,,,,female,1907-11-05,[P0003],,,,,1985-05-29,[P0002],,,,,
[I0025],Ericsdotter,Marta,,,,,female,about 1775,[P0008],,,,,,,,,,,
[I0041],Green,Janis Elaine,,,,,female,1935-12-02,,,,,,,,,,,,
[I0000],Hansdotter,Anna,,,,,female,1864-10-02,[P0000],,,,,1945-09-29,[P0001],,,,,
[I0038],Hansdotter,Kerstina,,,,,female,1832-11-29,[P0019],,,,,before 1908,[P0008],,,,,
[I0032],Horne,Darcy,,,,,female,1966-07-02,[P0015],,,,,,,,,,,
[I0036],Jefferson,Elna,,,,,female,1800-09-14,[P0004],,,,,,[P0008],,,,,
[I0017],Jones,Lillie Harriet,,,,,female,1910-05-02,[P0003],,,,,1990-06-26,,,,,,
[I0042],Ke 柯,,,,,,male,,,,,,,,,,,,,
[I0013],Michaels,Evelyn,,,,,female,about 1897,,,,,,,,,,,,
[I0012],Nielsen,Herman Julius,,,,,male,31 Aug 1889,"Rønne, Bornholm, Denmark",,,,,1945,,,,,,
[I0031],Ohman,Marjorie,,,,,female,3 Jun 1903,"Denver, Denver Co., CO, Denver Co., Colorado, USA",,,,,22 Jun 1980,"Reno, Washoe Co., NV",,,,,
[I0034],Perkins,Alice Paula,,,,,female,22 Nov 1933,"Sparks, Washoe Co., NV",,,,,,,,,,,
[I0002],Smith,Amber Marie,,,,,female,12 Apr 1998,"Hayward, Alameda Co., CA",,,,,,,,,,,
[I0023],Smith,Astrid Shermanna Augusta,,,,,female,31 Jan 1889,"Rønne, Bornholm, Denmark",,,,,21 Dec 1963,"San Francisco, San Francisco Co., CA",,,,,
[I0020],Smith,Carl Emil,,,,,male,20 Dec 1899,"Rønne, Bornholm, Denmark",,,,,28 Jan 1959,"Reno, Washoe Co., NV",,,,,
[I0029],Smith,Craig Peter,,,,,male,after 1966,"San Francisco, San Francisco Co., CA",,,,,,,,,,,
[I0037],Smith,Edwin Michael,,,,,male,24 May 1961,"San Jose, Santa Clara Co., CA","Birth, Death and Marriage Records",,,,,,,,,,
[I0009],Smith,Emil,,,,,male,27 Sep 1860,"Simrishamn, Kristianstad Län, Sweden",,,,,,,,,,,
[I0019],Smith,Eric Lloyd,,,,Dr.,male,28 Aug 1963,"San Francisco, San Francisco Co., CA",,,,,,,,,,,
[I0015],Smith,Gus,,,,,male,11 Sep 1897,"Rønne, Bornholm, Denmark",,,,,21 Oct 1963,"San Francisco, San Francisco Co., CA",,,,,
[I0024],Smith,Gustaf,,Sr.,,,male,28 Nov 1862,"Grostorp, Kristianstad Län, Sweden",,,,,before 23 Jul 1930,"Sparks, Washoe Co., NV",,,,,
[I0011],Smith,Hanna,,,,,female,29 Jan 1821,"Gladsax, Kristianstad Län, Sweden",,,,,,,,,,,
[I0010],Smith,Hans Peter,,,,,male,17 Apr 1904,"Rønne, Bornholm, Denmark",Birth Records,,,,29 Jan 1977,"San Francisco, San Francisco Co., CA",,5 Feb 1977,"San Francisco, San Francisco Co., CA",findagrave.com,
[I0021],Smith,Hjalmar,,,,,male,31 Jan 1893,"Rønne, Bornholm, Denmark",,,,,25 Sep 1894,"Rønne, Bornholm, Denmark",,,,,
[I0008],Smith,Hjalmar,,,,,male,7 Apr 1895,"Rønne, Bornholm, Denmark",,3 Jun 1895,"Rønne Bornholm, Denmark",,26 Jun 1975,"Reno, Washoe Co., NV",,,,,
[I0007],Smith,Ingar,,,,,female,after 1823,"Gladsax, Kristianstad Län, Sweden",,,,,,,,,,,
[I0027],Smith,Ingeman,,,,,male,about 1770,Sweden,,,,,,,,,,,
[I0004],Smith,Ingeman,,,,,male,29 Jan 1826,"Gladsax, Kristianstad Län, Sweden",,,,,,,,,,,
[I0018],Smith,John Hjalmar,,,,,male,30 Jan 1932,"San Francisco, San Francisco Co., CA",,,,,,,,,,,
[I0001],Smith,Keith Lloyd,,,,,male,11 Aug 1966,"San Francisco, San Francisco Co., CA",,,,,,,,,,,
[I0026],Smith,Kirsti Marie,,,,,female,15 Dec 1886,"Rønne, Bornholm, Denmark",,,,,18 Jul 1966,"San Francisco, San Francisco Co., CA",,,,,
[I0035],Smith,Lars Peter,,,,,male,16 Sep 1991,"Santa Rosa, Sonoma Co., CA",,,,,,,,,,,
[I0033],Smith,Lloyd,,,,,male,13 Mar 1935,"San Francisco, San Francisco Co., CA",,,,,,,,,,,
[I0003],Smith,Magnes,,,,,male,6 Oct 1858,"Simrishamn, Kristianstad Län, Sweden",,,,,20 Feb 1910,"Rønne, Bornholm, Denmark",,,,,
[I0040],Smith,Marjorie Alice,,,,,female,5 Feb 1960,"San Jose, Santa Clara Co., CA",,,,,,,,,,,
[I0014],Smith,Marjorie Lee,,,,,female,4 Nov 1934,"Reno, Washoe Co., NV",,,,,,,,,,,
[I0022],Smith,Martin,,,,,male,19 Nov 1830,"Gladsax, Kristianstad Län, Sweden",,23 Nov 1830,"Gladsax, Kristianstad Län, Sweden",,between 1899 and 1905,Sweden,,,,,
[I0039],Smith,Martin,,,,,male,between 1794 and 1796,"Tommarp, Kristianstad Län, Sweden",,,,,,Sweden,,,,,
[I0005],Smith,Mason Michael,,,,,male,26 Jun 1996,"Hayward, Alameda Co., CA",,,,,,,,,,,
[I0028],Streiffert,Anna,,,,,female,23 Sep 1860,"Hoya/Jona/Hoia, Sweden",,,,,2 Feb 1927,"Rønne, Bornholm, Denmark",,,,,
[I0012],Nielsen,Herman Julius,,,,,male,1889-08-31,[P0003],,,,,1945,,,,,,
[I0031],Ohman,Marjorie,,,,,female,1903-06-03,[P0014],,,,,1980-06-22,[P0005],,,,,
[I0034],Perkins,Alice Paula,,,,,female,1933-11-22,[P0001],,,,,,,,,,,
[I0002],Smith,Amber Marie,,,,,female,1998-04-12,[P0006],,,,,,,,,,,
[I0023],Smith,Astrid Shermanna Augusta,,,,,female,1889-01-31,[P0003],,,,,1963-12-21,[P0002],,,,,
[I0020],Smith,Carl Emil,,,,,male,1899-12-20,[P0003],,,,,1959-01-28,[P0005],,,,,
[I0029],Smith,Craig Peter,,,,,male,after 1966,[P0002],,,,,,,,,,,
[I0037],Smith,Edwin Michael,,,,,male,1961-05-24,[P0017],"Birth, Death and Marriage Records",,,,,,,,,,
[I0009],Smith,Emil,,,,,male,1860-09-27,[P0012],,,,,,,,,,,
[I0019],Smith,Eric Lloyd,,,,Dr.,male,1963-08-28,[P0002],,,,,,,,,,,
[I0015],Smith,Gus,,,,,male,1897-09-11,[P0003],,,,,1963-10-21,[P0002],,,,,
[I0024],Smith,Gustaf,,Sr.,,,male,1862-11-28,[P0009],,,,,before 1930-07-23,[P0001],,,,,
[I0011],Smith,Hanna,,,,,female,1821-01-29,[P0004],,,,,,,,,,,
[I0010],Smith,Hans Peter,,,,,male,1904-04-17,[P0003],Birth Records,,,,1977-01-29,[P0002],,1977-02-05,[P0002],findagrave.com,
[I0021],Smith,Hjalmar,,,,,male,1893-01-31,[P0003],,,,,1894-09-25,[P0003],,,,,
[I0008],Smith,Hjalmar,,,,,male,1895-04-07,[P0003],,1895-06-03,[P0021],,1975-06-26,[P0005],,,,,
[I0007],Smith,Ingar,,,,,female,after 1823,[P0004],,,,,,,,,,,
[I0027],Smith,Ingeman,,,,,male,about 1770,[P0008],,,,,,,,,,,
[I0004],Smith,Ingeman,,,,,male,1826-01-29,[P0004],,,,,,,,,,,
[I0018],Smith,John Hjalmar,,,,,male,1932-01-30,[P0002],,,,,,,,,,,
[I0001],Smith,Keith Lloyd,,,,,male,1966-08-11,[P0002],,,,,,,,,,,
[I0026],Smith,Kirsti Marie,,,,,female,1886-12-15,[P0003],,,,,1966-07-18,[P0002],,,,,
[I0035],Smith,Lars Peter,,,,,male,1991-09-16,[P0016],,,,,,,,,,,
[I0033],Smith,Lloyd,,,,,male,1935-03-13,[P0002],,,,,,,,,,,
[I0003],Smith,Magnes,,,,,male,1858-10-06,[P0012],,,,,1910-02-20,[P0003],,,,,
[I0040],Smith,Marjorie Alice,,,,,female,1960-02-05,[P0017],,,,,,,,,,,
[I0014],Smith,Marjorie Lee,,,,,female,1934-11-04,[P0005],,,,,,,,,,,
[I0022],Smith,Martin,,,,,male,1830-11-19,[P0004],,1830-11-23,[P0004],,between 1899 and 1905,[P0008],,,,,
[I0039],Smith,Martin,,,,,male,between 1794 and 1796,[P0020],,,,,,[P0008],,,,,
[I0005],Smith,Mason Michael,,,,,male,1996-06-26,[P0006],,,,,,,,,,,
[I0028],Streiffert,Anna,,,,,female,1860-09-23,[P0011],,,,,1927-02-02,[P0003],,,,,
[I0006],Willard,Edwin,,,,,male,about 1886,,,,,,,,,,,,
[I0043],リチミシキスイミ,ピーター,,,,,male,,,,,,,,,,,,,
Marriage,Husband,Wife,Date,Place,Source,Note
[F0000],[I0039],[I0036],about 1816,"Gladsax, Kristianstad Län, Sweden",,
[F0001],[I0027],[I0025],about 1790,Sweden,,
[F0000],[I0039],[I0036],about 1816,[P0004],,
[F0001],[I0027],[I0025],about 1790,[P0008],,
[F0002],[I0022],[I0038],about 1856,,,
[F0003],[I0024],[I0000],27 Nov 1885,"Rønne, Bornholm, Denmark",,
[F0003],[I0024],[I0000],1885-11-27,[P0003],,
[F0004],[I0006],[I0026],about 1910,,,
[F0005],[I0012],[I0023],30 Nov 1912,"Rønne, Bornholm, Denmark",,
[F0006],[I0008],[I0031],31 Oct 1927,"Reno, Washoe Co., NV",,
[F0005],[I0012],[I0023],1912-11-30,[P0003],,
[F0006],[I0008],[I0031],1927-10-31,[P0005],,
[F0007],[I0015],[I0013],about 1920,,,
[F0008],[I0033],[I0041],10 Aug 1958,"San Francisco, San Francisco Co., CA",,
[F0008],[I0033],[I0041],1958-08-10,[P0002],,
[F0009],[I0010],[I0017],,,,
[F0010],[I0019],[I0032],12 Jul 1986,"Woodland, Yolo Co., CA",,
[F0011],[I0003],[I0028],24 Aug 1884,"Rønne, Bornholm, Denmark",,
[F0012],[I0018],[I0034],4 Jun 1954,"Sparks, Washoe Co., NV",Marriage Certificae,
[F0013],[I0037],[I0030],27 May 1995,"San Ramon, Conta Costa Co., CA",,
[F0010],[I0019],[I0032],1986-07-12,[P0022],,
[F0011],[I0003],[I0028],1884-08-24,[P0003],,
[F0012],[I0018],[I0034],1954-06-04,[P0001],Marriage Certificae,
[F0013],[I0037],[I0030],1995-05-27,[P0023],,
[F0014],[I0010],[I0016],,,,
Family,Child
Can't render this file because it has a wrong number of fields in line 32.

@@ -1,12 +1,12 @@
0 HEAD
1 SOUR Gramps
2 VERS 5.0.1
2 VERS 5.0.2
2 NAME Gramps
1 DATE 7 NOV 2018
2 TIME 16:03:33
1 DATE 4 AUG 2019
2 TIME 15:26:44
1 SUBM @SUBM@
1 FILE C:\Users\prc\AppData\Roaming\gramps\temp\exp_sample_ged.ged
1 COPR Copyright (c) 2018 Alex Roitman,,,.
1 COPR Copyright (c) 2019 Alex Roitman,,,.
1 GEDC
2 VERS 5.5.1
2 FORM LINEAGE-LINKED
@@ -629,8 +629,12 @@
2 TYPE Birth of Lloyd Smith
2 DATE 13 MAR 1935
2 PLAC San Francisco, San Francisco Co., CA
1 ADOP Y
2 FAMC @F0009@
3 ADOP HUSB
1 FAMC @F0009@
2 PEDI birth
2 _FREL Adopted
2 _MREL Foster
1 FAMS @F0008@
1 CHAN
2 DATE 4 SEP 2016
@@ -885,7 +889,7 @@
0 @I0046@ INDI
1 NAME Tom /Von Tester y tested/
2 GIVN Tom
2 SPFX Von,
2 SPFX Von
2 SURN Tester y, tested
2 NICK TesterNickname
1 SEX M
@@ -1040,7 +1044,7 @@
2 SURN Tester
1 SEX M
1 FAMC @F0016@
2 PEDI Unknown
2 PEDI Sponsored
1 CHAN
2 DATE 29 OCT 2016
3 TIME 16:27:59
@@ -1421,7 +1425,7 @@
0 @N0019@ NOTE A bad photo for sure
0 @O0000@ OBJE
1 FILE c:\users\prc\workspace\grampsm\main\data\tests\O0.jpg
2 FORM jpeg
2 FORM jpg
2 TITL Michael O'Toole 2015-11
1 NOTE @N0019@
1 CHAN

@@ -3,41 +3,41 @@
"http://gramps-project.org/xml/1.7.1/grampsxml.dtd">
<database xmlns="http://gramps-project.org/xml/1.7.1/">
<header>
<created date="2016-08-29" version="5.0.0-alpha1"/>
<created date="2019-03-13" version="5.0.2"/>
<researcher>
</researcher>
</header>
<events>
<event handle="_0000000500000005" change="1472500305" id="E0000">
<event handle="_0000000500000005" change="1" id="E0000">
<type>Birth</type>
<dateval val="1816"/>
<place hlink="_0000000700000007"/>
<citationref hlink="_0000000600000006"/>
</event>
<event handle="_0000000800000008" change="1472500305" id="E0001">
<event handle="_0000000800000008" change="1" id="E0001">
<type>Residence</type>
<dateval val="1850"/>
<place hlink="_0000000a0000000a"/>
<citationref hlink="_0000000900000009"/>
</event>
<event handle="_0000000b0000000b" change="1472500305" id="E0002">
<event handle="_0000000b0000000b" change="1" id="E0002">
<type>Death</type>
<datestr val="1850/1860"/>
<place hlink="_0000000c0000000c"/>
</event>
<event handle="_0000000f0000000f" change="1472500305" id="E0003">
<event handle="_0000000f0000000f" change="1" id="E0003">
<type>Marriage</type>
<dateval val="1841" type="about"/>
<place hlink="_0000001000000010"/>
</event>
<event handle="_0000001100000011" change="1472500305" id="E0004">
<event handle="_0000001100000011" change="1" id="E0004">
<type>Marriage</type>
<dateval val="1847-08"/>
<place hlink="_0000001200000012"/>
</event>
</events>
<people>
<person handle="_0000000100000001" change="1472500305" id="I0278">
<person handle="_0000000100000001" change="1" id="I0278">
<gender>M</gender>
<name type="Birth Name">
<first>Andrew</first>
@@ -54,13 +54,13 @@
</person>
</people>
<families>
<family handle="_0000000d0000000d" change="1472500305" id="F0073">
<family handle="_0000000d0000000d" change="1" id="F0073">
<rel type="Married"/>
<father hlink="_0000000100000001"/>
<eventref hlink="_0000000f0000000f" role="Family"/>
<childref hlink="_0000000100000001"/>
</family>
<family handle="_0000000e0000000e" change="1472500305" id="F0074">
<family handle="_0000000e0000000e" change="1" id="F0074">
<rel type="Married"/>
<father hlink="_0000000100000001"/>
<eventref hlink="_0000001100000011" role="Family"/>
@@ -68,19 +68,19 @@
</family>
</families>
<citations>
<citation handle="_0000000400000004" change="1472500305" id="C0000">
<citation handle="_0000000400000004" change="1" id="C0000">
<page>Year: 1850; Census Place: District 14, Cape Girardeau, Missouri; Roll: M432_394; Page: 435B; Image: 248</page>
<confidence>2</confidence>
<objref hlink="_0000000300000003"/>
<sourceref hlink="_0000000200000002"/>
</citation>
<citation handle="_0000000600000006" change="1472500305" id="C0001">
<citation handle="_0000000600000006" change="1" id="C0001">
<page>Year: 1850; Census Place: District 14, Cape Girardeau, Missouri; Roll: M432_394; Page: 435B; Image: 248</page>
<confidence>2</confidence>
<objref hlink="_0000000300000003"/>
<sourceref hlink="_0000000200000002"/>
</citation>
<citation handle="_0000000900000009" change="1472500305" id="C0002">
<citation handle="_0000000900000009" change="1" id="C0002">
<page>Year: 1850; Census Place: District 14, Cape Girardeau, Missouri; Roll: M432_394; Page: 435B; Image: 248</page>
<confidence>2</confidence>
<objref hlink="_0000000300000003"/>
@@ -88,7 +88,7 @@
</citation>
</citations>
<sources>
<source handle="_0000000200000002" change="1472500305" id="S0029">
<source handle="_0000000200000002" change="1" id="S0029">
<stitle>1850 United States Federal Census</stitle>
<sauthor>Ancestry.com</sauthor>
<spubinfo>Name: Ancestry.com Operations, Inc.; Location: Provo, UT, USA; Date: 2009;</spubinfo>
@@ -96,42 +96,43 @@
</source>
</sources>
<places>
<placeobj handle="_0000000700000007" change="1472500305" id="P0000" type="Unknown">
<placeobj handle="_0000000700000007" change="1" id="P0000" type="Unknown">
<ptitle>Tennessee, USA</ptitle>
<pname value="Tennessee, USA"/>
</placeobj>
<placeobj handle="_0000000a0000000a" change="1472500305" id="P0001" type="Unknown">
<placeobj handle="_0000000a0000000a" change="1" id="P0001" type="Unknown">
<ptitle>District 14, Cape Girardeau, Missouri, USA</ptitle>
<pname value="District 14, Cape Girardeau, Missouri, USA"/>
</placeobj>
<placeobj handle="_0000000c0000000c" change="1472500305" id="P0002" type="Unknown">
<placeobj handle="_0000000c0000000c" change="1" id="P0002" type="Unknown">
<ptitle>Bollinger Co. MO</ptitle>
<pname value="Bollinger Co. MO"/>
</placeobj>
<placeobj handle="_0000001000000010" change="1472500305" id="P0003" type="Unknown">
<placeobj handle="_0000001000000010" change="1" id="P0003" type="Unknown">
<ptitle>Union Co.?, IL</ptitle>
<pname value="Union Co.?, IL"/>
</placeobj>
<placeobj handle="_0000001200000012" change="1472500305" id="P0004" type="Unknown">
<placeobj handle="_0000001200000012" change="1" id="P0004" type="Unknown">
<ptitle>Wayne, Missouri, United States</ptitle>
<pname value="Wayne, Missouri, United States"/>
</placeobj>
</places>
<objects>
<object handle="_0000000300000003" change="1472500305" id="M159">
<object handle="_0000000300000003" change="1" id="M159">
<file src="1850 United States Federal Census(11)-1.jpg" mime="image/jpeg" description="1850 United States Federal Census"/>
<noteref hlink="_0000001400000014"/>
<noteref hlink="_0000001500000015"/>
</object>
<object handle="_0000001600000016" change="1472500305" id="M158">
<file src="D:/Users/PRC/Downloads/1850 United States Federal Census(11)-1.jpg" mime="image/jpeg" description="D:\Users\PRC\Downloads\1850 United States Federal Census(11)-1.jpg"/>
<object handle="_0000001600000016" change="1" id="M158">
<file src="/Users/PRC/Downloads/1850 United States Federal Census(11)-1.jpg" mime="image/jpeg" description="/Users/PRC/Downloads/1850 United States Federal Census(11)-1.jpg"/>
<noteref hlink="_0000001700000017"/>
</object>
<object handle="_0000001700000017" change="1472500305" id="M157">
<object handle="_0000001800000018" change="1" id="M157">
<file src="http://1.gravatar.com/avatar/77e02a3c8c665155ad1acaac8c2742e0?s=120&amp;d=mm&amp;r=pg" mime="unknown" description="http://1.gravatar.com/avatar/77e02a3c8c665155ad1acaac8c2742e0?s=120&amp;d=mm&amp;r=pg"/>
</object>
</objects>
<repositories>
<repository handle="_0000001300000013" change="1472500305" id="R0001">
<repository handle="_0000001300000013" change="1" id="R0001">
<rname>Ancestry.com</rname>
<type>Library</type>
<address>
@@ -140,16 +141,26 @@
</repository>
</repositories>
<notes>
<note handle="_0000001400000014" change="1472500305" id="N0000" type="Media Note">
<text>Year: 1850; Census Place: District 14, Cape Girardeau, Missouri; Roll: M432_394; Page: 435B; Image: 248</text>
<note handle="_0000001400000014" change="1" id="N0000" type="Media Note">
<text>Year: 1850; Census Place: District 14, Cape Girardeau, Missouri; Roll: M432_394; Page: 435B; Image: 248 </text>
</note>
<note handle="_0000001500000015" change="1472500305" id="N0001" type="GEDCOM import">
<note handle="_0000001500000015" change="1" id="N0001" type="GEDCOM import">
<text>Records not imported into OBJE (multi-media object) Gramps ID M159:
Could not import 1850 United States Federal Census(11)-1.jpg Line 70: 1 FILE 1850 United States Federal Census(11)-1.jpg</text>
Could not import 1850 United States Federal Census(11)-1.jpg Line 70: 1 FILE 1850 United States Federal Census(11)-1.jpg
</text>
<style name="fontface" value="Monospace">
<range start="0" end="200"/>
</style>
</note>
<note handle="_0000001700000017" change="1" id="N0002" type="GEDCOM import">
<text>Records not imported into OBJE (multi-media object) Gramps ID M158:
Could not import D:\Users\PRC\Downloads\1850 United States Federa Line 75: 1 FILE D:\Users\PRC\Downloads\1850 United States Federal Census(11)-1.jpg
</text>
<style name="fontface" value="Monospace">
<range start="0" end="223"/>
</style>
</note>
</notes>
</database>

@@ -3,7 +3,7 @@
"http://gramps-project.org/xml/1.7.1/grampsxml.dtd">
<database xmlns="http://gramps-project.org/xml/1.7.1/">
<header>
<created date="2017-05-30" version="5.0.0-alpha1"/>
<created date="2019-03-05" version="5.0.2"/>
<researcher>
</researcher>
</header>
@@ -66,9 +66,10 @@
<object handle="_0000000300000003" change="1" id="O0000">
<file src="test_emb_55.jpg" mime="image/jpeg" description="Multimedia link embedded form v5.5"/>
<noteref hlink="_0000000200000002"/>
<noteref hlink="_0000000b0000000b"/>
</object>
<object handle="_0000000400000004" change="548708291" id="M1">
<file src="" mime="" description="Multimedia link to linked form v5.5 blob"/>
<file src="" mime="image/jpeg" description="Multimedia link to linked form v5.5 blob"/>
<attribute type="REFN" value="Ref12345M1">
<noteref hlink="_0000001200000012"/>
</attribute>
@@ -117,7 +118,7 @@
<citationref hlink="_0000002700000027"/>
</object>
<object handle="_0000000c0000000c" change="1" id="O0002">
<file src="http://www.geni.com/photo/view?photo_id=6000000001341319061" mime="unknown" description="Multimedia link embedded form v5.5 URL"/>
<file src="http://www.geni.com/photo/view?photo_id=6000000001341319061" mime="text/html" description="Multimedia link embedded form v5.5 URL"/>
<noteref hlink="_0000000b0000000b"/>
</object>
<object handle="_0000000d0000000d" change="1" id="M7">
@@ -129,7 +130,7 @@
<noteref hlink="_0000002900000029"/>
</object>
<object handle="_0000001500000015" change="1" id="M2">
<file src="" mime="" description="2nd blob Multimedia link to linked form v5.5 blob"/>
<file src="" mime="image/jpeg" description="2nd blob Multimedia link to linked form v5.5 blob"/>
<noteref hlink="_0000001600000016"/>
</object>
</objects>

@@ -3,7 +3,7 @@
"http://gramps-project.org/xml/1.7.1/grampsxml.dtd">
<database xmlns="http://gramps-project.org/xml/1.7.1/">
<header>
<created date="2016-10-23" version="5.0.0-alpha1"/>
<created date="2019-07-30" version="5.0.2"/>
<researcher>
<resname>John A. Tester</resname>
</researcher>
@@ -26,27 +26,23 @@
<type>Death</type>
<noteref hlink="_0000001600000016"/>
</event>
<event handle="_0000001e0000001e" change="1" id="E0003">
<type>Who knows OBJE REFN TYPE</type>
<description>REFN</description>
</event>
<event handle="_0000002700000027" change="1" id="E0004">
<event handle="_0000002700000027" change="1" id="E0003">
<type>Birth</type>
<dateval val="1901-06-15"/>
</event>
<event handle="_0000002800000028" change="1" id="E0005">
<event handle="_0000002800000028" change="1" id="E0004">
<type>Death</type>
<dateval val="1975-07-05"/>
</event>
<event handle="_0000002e0000002e" change="1" id="E0006">
<event handle="_0000002e0000002e" change="1" id="E0005">
<type>Birth</type>
<dateval val="1922-06-15"/>
</event>
<event handle="_0000002f0000002f" change="1" id="E0007">
<event handle="_0000002f0000002f" change="1" id="E0006">
<type>Death</type>
<dateval val="1994-07-05"/>
</event>
<event handle="_0000003b0000003b" change="1" id="E0008">
<event handle="_0000003b0000003b" change="1" id="E0007">
<type>TEST</type>
<description>family</description>
</event>
@@ -61,10 +57,11 @@
<eventref hlink="_0000000f0000000f" role="Primary"/>
<eventref hlink="_0000001000000010" role="Primary"/>
<eventref hlink="_0000001500000015" role="Primary"/>
<eventref hlink="_0000001e0000001e" role="Primary"/>
<objref hlink="_0000001f0000001f"/>
<attribute type="RIN" value="123456 Person"/>
<attribute type="REFN" value="98765 for PERSON"/>
<attribute type="REFN" value="98765 for PERSON">
<noteref hlink="_0000001e0000001e"/>
</attribute>
<url href="http://homepages.rootsweb.com/~pmcbride/gedcom/55gctoc.htm" type="Web Home" description="GEDCOM 5.5 documentation web site"/>
<parentin hlink="_0000001700000017"/>
<noteref hlink="_0000001800000018"/>
@@ -270,7 +267,8 @@
Line ignored as not understood Line 18: 2 TEST Header Note
Empty note ignored Line 19: 1 NOTE
Skipped subordinate line Line 20: 2 TEST Empty Note</text>
Skipped subordinate line Line 20: 2 TEST Empty Note
</text>
<style name="fontface" value="Monospace">
<range start="0" end="327"/>
</style>
@@ -288,7 +286,8 @@ Skipped subordinate line Line 20:
Line ignored as not understood Line 26: 2 TEST Submission Note
Empty note ignored Line 27: 1 NOTE
Skipped subordinate line Line 28: 2 TEST Empty Note
Line ignored as not understood Line 29: 1 TEST submission</text>
Line ignored as not understood Line 29: 1 TEST submission
</text>
<style name="fontface" value="Monospace">
<range start="0" end="425"/>
</style>
@@ -300,7 +299,8 @@ Tag recognized but not supported Line 32:
Tag recognized but not supported Line 33: 1 REFN Submission Note REFN
Skipped subordinate line Line 34: 2 TYPE Submission Note REFN TYPE
Tag recognized but not supported Line 35: 1 SOUR Submission note source
Line ignored as not understood Line 39: 1 TEST on XREF Note</text>
Line ignored as not understood Line 39: 1 TEST on XREF Note
</text>
<style name="fontface" value="Monospace">
<range start="0" end="586"/>
</style>
@@ -318,7 +318,8 @@ Line ignored as not understood Line 39:
Line ignored as not understood Line 43: 2 TEST Submitter Note
Empty note ignored Line 44: 1 NOTE
Skipped subordinate line Line 45: 2 TEST Empty Note
Line ignored as not understood Line 46: 1 TEST Submitter</text>
Line ignored as not understood Line 46: 1 TEST Submitter
</text>
<style name="fontface" value="Monospace">
<range start="0" end="460"/>
</style>
@@ -360,7 +361,10 @@ Line ignored as not understood Line 46:
<note handle="_0000001d0000001d" change="979250406" id="N0018" type="Media Note">
<text>Media xref note</text>
</note>
<note handle="_0000002100000021" change="1" id="N0019" type="GEDCOM import">
<note handle="_0000001e0000001e" change="1" id="N0019" type="REFN-TYPE">
<text>Who knows OBJE REFN TYPE</text>
</note>
<note handle="_0000002100000021" change="1" id="N0020" type="GEDCOM import">
<text>Records not imported into INDI (individual) Gramps ID I0001:
Empty note ignored Line 54: 2 NOTE
@@ -382,12 +386,14 @@ Empty note ignored Line 85:
Skipped subordinate line Line 86: 3 TEST Empty Note
Line ignored as not understood Line 88: 3 TEST 123456 Note
Empty note ignored Line 90: 2 NOTE
Skipped subordinate line Line 91: 3 TEST Empty Note</text>
Skipped subordinate line Line 91: 3 TEST Empty Note
Line ignored as not understood Line 94: 2 TEST REFN
</text>
<style name="fontface" value="Monospace">
<range start="0" end="2009"/>
<range start="0" end="2101"/>
</style>
</note>
<note handle="_0000002200000022" change="1" id="N0020" type="GEDCOM import">
<note handle="_0000002200000022" change="1" id="N0021" type="GEDCOM import">
<text>Records not imported into NOTE Gramps ID N0018:
Tag recognized but not supported Line 103: 1 RIN 123456
@@ -396,85 +402,89 @@ Skipped subordinate line Line 105:
Tag recognized but not supported Line 109: 2 NOTE Note on a change on a note!!!
Skipped subordinate line Line 110: 3 CHAN
Skipped subordinate line Line 111: 4 DATE 2001-01-11
Skipped subordinate line Line 112: 5 TIME 16:00:06</text>
Skipped subordinate line Line 112: 5 TIME 16:00:06
</text>
<style name="fontface" value="Monospace">
<range start="0" end="741"/>
</style>
</note>
<note handle="_0000002300000023" change="1" id="N0021" type="REFN-TYPE">
<note handle="_0000002300000023" change="1" id="N0022" type="REFN-TYPE">
<text>Who knows REFN TYPE</text>
</note>
<note handle="_0000002500000025" change="1" id="N0022" type="GEDCOM import">
<note handle="_0000002500000025" change="1" id="N0023" type="GEDCOM import">
<text>Records not imported into OBJE (multi-media object) Gramps ID M1:
Could not import photo.jpg Line 114: 1 FILE photo.jpg</text>
Could not import photo.jpg Line 114: 1 FILE photo.jpg
</text>
<style name="fontface" value="Monospace">
<range start="0" end="164"/>
</style>
</note>
<note handle="_0000002900000029" change="979250406" id="N0023" type="Person Note">
<note handle="_0000002900000029" change="979250406" id="N0024" type="Person Note">
<text>Family Spouse reference Note</text>
<tagref hlink="_0000000500000005"/>
</note>
<note handle="_0000002b0000002b" change="1" id="N0024" type="GEDCOM import">
<note handle="_0000002b0000002b" change="1" id="N0025" type="GEDCOM import">
<text>Records not imported into INDI (individual) Gramps ID I0002:
Empty note ignored Line 132: 2 NOTE
Skipped subordinate line Line 133: 3 TEST Empty Note</text>
Skipped subordinate line Line 133: 3 TEST Empty Note
</text>
<style name="fontface" value="Monospace">
<range start="0" end="248"/>
</style>
</note>
<note handle="_0000002d0000002d" change="979250406" id="N0025" type="General">
<note handle="_0000002d0000002d" change="979250406" id="N0026" type="General">
<text>Name note</text>
<tagref hlink="_0000000500000005"/>
</note>
<note handle="_0000003100000031" change="1" id="N0026" type="LDS Note">
<note handle="_0000003100000031" change="1" id="N0027" type="LDS Note">
<text>Place note</text>
<tagref hlink="_0000000500000005"/>
</note>
<note handle="_0000003400000034" change="1" id="N0027" type="LDS Note">
<note handle="_0000003400000034" change="1" id="N0028" type="LDS Note">
<text>LDS xref note</text>
</note>
<note handle="_0000003600000036" change="979250406" id="N0028" type="Association Note">
<note handle="_0000003600000036" change="979250406" id="N0029" type="Association Note">
<text>Association link note</text>
<tagref hlink="_0000000500000005"/>
</note>
<note handle="_0000003800000038" change="1" id="N0029" type="GEDCOM import">
<note handle="_0000003800000038" change="1" id="N0030" type="GEDCOM import">
<text>Records not imported into INDI (individual) Gramps ID I0003:
Empty note ignored Line 141: 2 NOTE
Skipped subordinate line Line 142: 3 TEST Empty Note
Line ignored as not understood Line 163: 3 TEST Accociation note
Empty note ignored Line 167: 2 NOTE
Skipped subordinate line Line 168: 3 TEST Empty Note</text>
Skipped subordinate line Line 168: 3 TEST Empty Note
</text>
<style name="fontface" value="Monospace">
<range start="0" end="538"/>
</style>
</note>
<note handle="_0000003900000039" change="979250406" id="N0030" type="General">
<note handle="_0000003900000039" change="979250406" id="N0031" type="General">
<text>Just for association</text>
<tagref hlink="_0000000500000005"/>
</note>
<note handle="_0000003e0000003e" change="1" id="N0031" type="Family Note">
<note handle="_0000003e0000003e" change="1" id="N0032" type="Family Note">
<text>Family xref note</text>
</note>
<note handle="_0000003f0000003f" change="979250406" id="N0032" type="Family Note">
<note handle="_0000003f0000003f" change="979250406" id="N0033" type="Family Note">
<text>Family note</text>
<tagref hlink="_0000000500000005"/>
</note>
<note handle="_0000004000000040" change="1" id="N0033" type="Citation">
<note handle="_0000004000000040" change="1" id="N0034" type="Citation">
<text>Citation Data Note</text>
<tagref hlink="_0000000500000005"/>
</note>
<note handle="_0000004100000041" change="1" id="N0034" type="Source text">
<note handle="_0000004100000041" change="1" id="N0035" type="Source text">
<text>A sample text from a source of this family</text>
</note>
<note handle="_0000004200000042" change="979250406" id="N0035" type="Citation">
<note handle="_0000004200000042" change="979250406" id="N0036" type="Citation">
<text>A note this citation is on the FAMILY record.</text>
<tagref hlink="_0000000500000005"/>
</note>
<note handle="_0000004400000044" change="1" id="N0036" type="GEDCOM import">
<note handle="_0000004400000044" change="1" id="N0037" type="GEDCOM import">
<text>Records not imported into FAM (family) Gramps ID F0001:
Line ignored as not understood Line 183: 2 TEST Family Note
@@ -482,41 +492,44 @@ Empty note ignored Line 187:
Skipped subordinate line Line 188: 2 TEST Empty Note
Line ignored as not understood Line 190: 2 TEST citation
Line ignored as not understood Line 194: 3 TEST Citation Data
Line ignored as not understood Line 196: 4 TEST Citation Data Note</text>
Line ignored as not understood Line 196: 4 TEST Citation Data Note
</text>
<style name="fontface" value="Monospace">
<range start="0" end="645"/>
</style>
</note>
<note handle="_0000004600000046" change="979250406" id="N0037" type="Repository Reference Note">
<note handle="_0000004600000046" change="979250406" id="N0038" type="Repository Reference Note">
<text>A short note about the repository link.</text>
<tagref hlink="_0000000500000005"/>
</note>
<note handle="_0000004700000047" change="979250406" id="N0038" type="Source Note">
<note handle="_0000004700000047" change="979250406" id="N0039" type="Source Note">
<text>note embedded in the SOURCE Record</text>
<tagref hlink="_0000000500000005"/>
</note>
<note handle="_0000004800000048" change="1" id="N0039" type="GEDCOM import">
<note handle="_0000004800000048" change="1" id="N0040" type="GEDCOM import">
<text>Records not imported into SOUR (source) Gramps ID S0001:
Line ignored as not understood Line 206: 1 TEST source
Empty note ignored Line 208: 2 NOTE
Skipped subordinate line Line 209: 3 TEST Empty Note
Empty note ignored Line 214: 1 NOTE
Skipped subordinate line Line 215: 2 TEST Empty Note</text>
Skipped subordinate line Line 215: 2 TEST Empty Note
</text>
<style name="fontface" value="Monospace">
<range start="0" end="524"/>
</style>
</note>
<note handle="_0000004900000049" change="1" id="N0040" type="Repository Note">
<note handle="_0000004900000049" change="1" id="N0041" type="Repository Note">
<text>Repository Note</text>
<tagref hlink="_0000000500000005"/>
</note>
<note handle="_0000004a0000004a" change="1" id="N0041" type="GEDCOM import">
<note handle="_0000004a0000004a" change="1" id="N0042" type="GEDCOM import">
<text>Records not imported into REPO (repository) Gramps ID R0002:
Line ignored as not understood Line 223: 1 TEST Repo
Empty note ignored Line 224: 1 NOTE
Skipped subordinate line Line 225: 2 TEST Empty Note</text>
Skipped subordinate line Line 225: 2 TEST Empty Note
</text>
<style name="fontface" value="Monospace">
<range start="0" end="340"/>
</style>

@@ -50,9 +50,9 @@
0 @I0@ INDI
1 NAME Anna /Hansdotter/
2 GIVN Anna
2 SURN Hansdotter, Smith
2 SPFX Vrow, huh
2 SURN Hansdotter
2 SPFX Vrow
2 SURN Smith
2 _AKA Anna Smith
2 _AKA Hanna
2 NOTE Hans daughter? N0000
@@ -83,6 +83,8 @@
2 DATE 11 AUG 1966
2 PLAC San Francisco, San Francisco Co., CA
1 FAMC @F8@
2 _FREL Adopted
2 _MREL Foster
1 CHAN
2 DATE 21 DEC 2007
3 TIME 01:35:26

@@ -3,7 +3,7 @@
"http://gramps-project.org/xml/1.7.1/grampsxml.dtd">
<database xmlns="http://gramps-project.org/xml/1.7.1/">
<header>
<created date="2016-10-24" version="5.0.0-alpha1"/>
<created date="2019-08-04" version="5.0.2"/>
<researcher>
<resname>Alex Roitman,,,</resname>
<resaddr>Not Provided</resaddr>
@@ -163,6 +163,7 @@
</event>
<event handle="_0000005500000055" change="1" id="E0026">
<type>Birth</type>
<description>No Date Information</description>
</event>
<event handle="_0000005600000056" change="1" id="E0027">
<type>Death</type>
@@ -616,7 +617,8 @@
<gender>F</gender>
<name type="Birth Name">
<first>Anna</first>
<surname prefix="Vrow">Smith</surname>
<surname prefix="Vrow">Hansdotter</surname>
<surname prim="0">Smith</surname>
<noteref hlink="_0000001100000011"/>
</name>
<name alt="1" type="Also Known As">
@@ -1132,7 +1134,7 @@
<mother hlink="_000000b6000000b6"/>
<eventref hlink="_000000e3000000e3" role="Family"/>
<childref hlink="_0000004800000048" mrel="Adopted" frel="Adopted"/>
<childref hlink="_0000001900000019"/>
<childref hlink="_0000001900000019" mrel="Foster" frel="Adopted"/>
<childref hlink="_0000007b0000007b" mrel="Adopted" frel="Adopted"/>
<noteref hlink="_000000e4000000e4"/>
</family>
@@ -1456,13 +1458,13 @@
<noteref hlink="_000000f9000000f9"/>
</object>
<object handle="_000000d1000000d1" change="1" id="O0001">
<file src="Magnes&amp;Anna_smiths_marr_cert.jpg" mime="unknown" description="Magnes&amp;Anna_smiths_marr_cert.jpg"/>
<file src="Magnes&amp;Anna_smiths_marr_cert.jpg" mime="image/jpeg" description="Magnes&amp;Anna_smiths_marr_cert.jpg"/>
</object>
<object handle="_000000d8000000d8" change="1" id="O0002">
<file src="John&amp;Alice_smiths_marr_cert.jpg" mime="unknown" description="John&amp;Alice_smiths_marr_cert.jpg"/>
<file src="John&amp;Alice_smiths_marr_cert.jpg" mime="image/jpeg" description="John&amp;Alice_smiths_marr_cert.jpg"/>
</object>
<object handle="_000000f1000000f1" change="1" id="O0003">
<file src="Attic_photo.jpg" mime="unknown" description="Attic_photo.jpg"/>
<file src="Attic_photo.jpg" mime="image/jpeg" description="Attic_photo.jpg"/>
</object>
</objects>
<repositories>
@@ -1506,7 +1508,8 @@
<note handle="_0000000100000001" change="1" id="N0000" type="GEDCOM import">
<text>Records not imported into HEAD (header):
GEDCOM FORM not supported Line 14: 2 FORM NOT LINEAGE-LINKED</text>
GEDCOM FORM not supported Line 14: 2 FORM NOT LINEAGE-LINKED
</text>
<style name="fontface" value="Monospace">
<range start="0" end="148"/>
</style>
@@ -1514,7 +1517,8 @@ GEDCOM FORM not supported Line 14:
<note handle="_0000000200000002" change="1" id="N0001" type="GEDCOM import">
<text>Records not imported into SUBM (Submitter): (@SUBM@) Alex Roitman,,,:
Line ignored as not understood Line 23: 2 NOTE No address provided (note not supported)</text>
Line ignored as not understood Line 23: 2 NOTE No address provided (note not supported)
</text>
<style name="fontface" value="Monospace">
<range start="0" end="199"/>
</style>
@@ -1523,7 +1527,8 @@ Line ignored as not understood Line 23:
<text>Records not imported into FAM (family) Gramps ID F0003:
Line ignored as not understood Line 46: 2 SOUR Not really allowed here
Filename omitted Line 48: 1 OBJE</text>
Filename omitted Line 48: 1 OBJE
</text>
<style name="fontface" value="Monospace">
<range start="0" end="256"/>
</style>
@@ -1561,8 +1566,9 @@ Filename omitted Line 48:
<note handle="_0000003d0000003d" change="1" id="N0012" type="GEDCOM import">
<text>Records not imported into INDI (individual) Gramps ID I0016:
Warn: ADDR overwritten Line 204: 3 ADR1 456 Main St again
ADDR element ignored '459 Main St.' Line 202: 2 ADDR 459 Main St., The Village, San Francisco, CA, USA</text>
Warn: ADDR overwritten Line 206: 3 ADR1 456 Main St again
ADDR element ignored '459 Main St.' Line 204: 2 ADDR 459 Main St., The Village, San Francisco, CA, USA
</text>
<style name="fontface" value="Monospace">
<range start="0" end="304"/>
</style>
@@ -1573,7 +1579,8 @@ ADDR element ignored '459 Main St.' Line 202:
<note handle="_0000004700000047" change="1" id="N0014" type="GEDCOM import">
<text>Records not imported into INDI (individual) Gramps ID I0018:
Tag recognized but not supported Line 245: 2 TYPE first generaton</text>
Tag recognized but not supported Line 247: 2 TYPE first generaton
</text>
<style name="fontface" value="Monospace">
<range start="0" end="165"/>
</style>
@@ -1604,7 +1611,8 @@ Company. He enlisted in the army at Sparks 7 December 1917 and served as a Corpo
<note handle="_000000cf000000cf" change="1" id="N0021" type="GEDCOM import">
<text>Records not imported into FAM (family) Gramps ID F0010:
Tag recognized but not supported Line 863: 2 _STAT</text>
Tag recognized but not supported Line 865: 2 _STAT
</text>
<style name="fontface" value="Monospace">
<range start="0" end="146"/>
</style>
@@ -1612,8 +1620,9 @@ Tag recognized but not supported Line 863:
<note handle="_000000d4000000d4" change="1" id="N0022" type="GEDCOM import">
<text>Records not imported into FAM (family) Gramps ID F0011:
Could not import Magnes&amp;Anna_smiths_marr_cert.jpg Line 878: 3 OBJE
Could not import Magnes&amp;Anna_smiths_marr_cert.jpg Line 881: 2 OBJE</text>
Could not import Magnes&amp;Anna_smiths_marr_cert.jpg Line 880: 3 OBJE
Could not import Magnes&amp;Anna_smiths_marr_cert.jpg Line 883: 2 OBJE
</text>
<style name="fontface" value="Monospace">
<range start="0" end="233"/>
</style>
@@ -1621,7 +1630,8 @@ Could not import Magnes&amp;Anna_smiths_marr_cert.jpg Line 8
<note handle="_000000d9000000d9" change="1" id="N0023" type="GEDCOM import">
<text>Records not imported into FAM (family) Gramps ID F0012:
Could not import John&amp;Alice_smiths_marr_cert.jpg Line 905: 1 OBJE</text>
Could not import John&amp;Alice_smiths_marr_cert.jpg Line 907: 1 OBJE
</text>
<style name="fontface" value="Monospace">
<range start="0" end="145"/>
</style>
@@ -1629,7 +1639,8 @@ Could not import John&amp;Alice_smiths_marr_cert.jpg Line 9
<note handle="_000000e4000000e4" change="1" id="N0024" type="GEDCOM import">
<text>Records not imported into FAM (family) Gramps ID F0008:
Tag recognized but not supported Line 1005: 1 ADDR 123 Main st, Grantville, Virginia, USA</text>
Tag recognized but not supported Line 1007: 1 ADDR 123 Main st, Grantville, Virginia, USA
</text>
<style name="fontface" value="Monospace">
<range start="0" end="183"/>
</style>
@@ -1652,8 +1663,9 @@ Tag recognized but not supported Line 1005:
<note handle="_000000ee000000ee" change="1" id="N0030" type="GEDCOM import">
<text>Records not imported into SOUR (source) Gramps ID S0003:
Tag recognized but not supported Line 1045: 1 DATA
Skipped subordinate line Line 1046: 2 AGNC NYC Public Library</text>
Tag recognized but not supported Line 1047: 1 DATA
Skipped subordinate line Line 1048: 2 AGNC NYC Public Library
</text>
<style name="fontface" value="Monospace">
<range start="0" end="252"/>
</style>
@@ -1667,9 +1679,10 @@ Skipped subordinate line Line 1046:
<note handle="_000000f5000000f5" change="1" id="N0033" type="GEDCOM import">
<text>Records not imported into REPO (repository) Gramps ID R0003:
REFN ignored Line 1075: 3 REFN blah blah
Skipped subordinate line Line 1076: 4 TYPE who knows
Could not import Attic_photo.jpg Line 1079: 3 OBJE</text>
REFN ignored Line 1077: 3 REFN blah blah
Skipped subordinate line Line 1078: 4 TYPE who knows
Could not import Attic_photo.jpg Line 1081: 3 OBJE
</text>
<style name="fontface" value="Monospace">
<range start="0" end="344"/>
</style>
@@ -1677,7 +1690,8 @@ Could not import Attic_photo.jpg Line 1079:
<note handle="_000000f6000000f6" change="1" id="N0034" type="GEDCOM import">
<text>Records not imported into Top Level:
Unknown tag Line 1106: 0 XXX an unknown token at level 0</text>
Unknown tag Line 1108: 0 XXX an unknown token at level 0
</text>
<style name="fontface" value="Monospace">
<range start="0" end="152"/>
</style>
@@ -1685,12 +1699,13 @@ Unknown tag Line 1106:
<note handle="_000000f8000000f8" change="1" id="N0035" type="GEDCOM import">
<text>Records not imported into Top Level:
Unknown tag Line 1109: 1 @X1@ XXX and unknown token xref definition</text>
Unknown tag Line 1111: 1 @X1@ XXX and unknown token xref definition
</text>
<style name="fontface" value="Monospace">
<range start="0" end="163"/>
</style>
</note>
<note handle="_000000f9000000f9" change="1477325896" id="N0036" type="General">
<note handle="_000000f9000000f9" change="1564950708" id="N0036" type="General">
<text>Objects referenced by this note were missing in a file imported on 12/25/1999 12:00:00 AM.</text>
</note>
</notes>

31
debian/changelog vendored

@@ -1,3 +1,34 @@
gramps (5.1.1-1) unstable; urgency=medium
* New release
* Add python3-fontconfig to recommends
-- Ross Gammon <rossgammon@debian.org> Tue, 17 Sep 2019 15:21:43 +0200
gramps (5.1.0-1) unstable; urgency=medium
* New release
* Update copyrights
* Bump gtk+ version to 3.12
* Add new geocode-glib dependency
-- Ross Gammon <rossgammon@debian.org> Sat, 24 Aug 2019 19:49:27 +0200
gramps (5.0.2-1) unstable; urgency=medium
* New release
* Remove ancient python version field from debian/control
* Bump standards version, no changes required
-- Ross Gammon <rossgammon@debian.org> Sun, 11 Aug 2019 14:11:35 +0200
gramps (5.0.1-1) unstable; urgency=medium
* New release
* Update copyright file
-- Ross Gammon <rossgammon@debian.org> Thu, 20 Dec 2018 20:41:23 +0100
gramps (5.0.0-1) unstable; urgency=medium
* New Gramps release

9
debian/control vendored

@@ -10,7 +10,7 @@ Build-Depends-Indep:
python3-all,
python3-setuptools,
python3-nose,
gir1.2-gtk-3.0 (>= 3.10.0),
gir1.2-gtk-3.0 (>= 3.12.0),
python3-gi (>= 3.12.0),
python3-gi-cairo,
python3-bsddb3,
@@ -21,11 +21,10 @@ Build-Depends-Indep:
python3-nose-exclude
Build-Depends:
debhelper (>= 11)
Standards-Version: 4.1.3
Standards-Version: 4.4.0
Vcs-Git: https://github.com/gramps-project/gramps.git
Vcs-browser: https://github.com/gramps-project/gramps/tree/maintenance/gramps50
Homepage: https://www.gramps-project.org/
X-Python3-Version: >= 3.2
Package: gramps
Architecture: all
@@ -42,7 +41,9 @@ Recommends:
graphviz,
gir1.2-gexiv2-0.10,
gir1.2-osmgpsmap-1.0,
python3-icu
python3-icu,
gir1.2-geocodeglib-1.0,
python3-fontconfig
Suggests:
fonts-freefont-ttf,
gir1.2-goocanvas-2.0,

14
debian/copyright vendored

@@ -12,12 +12,12 @@ Copyright: 2000-2007, Alex Roitman
2001-2017, Free Software Foundation, Inc.
2001, Graham J. Williams
2001, Jesper Zedlitz
2001-2018, The Gramps Project
2001-2019, The Gramps Project
2002, Gary Shao
2003-2006, Josiah Carlson
2004-2006, Eero Tamminen
2004-2013, Julio Sánchez
2005-2017, Serge Noiraud
2005-2019, Serge Noiraud
2006-2012, Brian G. Matherly
2006, 2008-2011, Kees Bakker
2006-2008, Steve Hall
@@ -64,7 +64,7 @@ Copyright: 2000-2007, Alex Roitman
2011, Helge Herz
2011, 2013 John Ralls
2011, 2016 Matt Keenan
2011-2017, Paul Franklin
2011-2018, Paul Franklin
2012, lcc
2012, 2014, Mathieu MD
2012, Nicolas Adenis-Lamarre
@@ -81,11 +81,17 @@ Copyright: 2000-2007, Alex Roitman
2015, Detlef Wolz
2016, Allen Crider
2016, DaAwesomeP
2016-2017, Paul Culley
2016-2018, Paul Culley
2016, QuLogic
2016, Tom Samstag
2017, Jonathan Biegert
2017, Mindaugas Baranauskas
2017, Robert Carnell
2018, Christophe aka khrys63
2018, Paul D.Smith
2018, Robin van der Vliet
2018, Theo van Rijn
2019, Matthias Kemmer
License: GPL-2+
Files: debian/*

@@ -57,7 +57,7 @@ master_doc = 'index'
# General information about the project.
project = 'Gramps'
copyright = '2001-2018, The Gramps Project'
copyright = '2001-2019, The Gramps Project'
author = 'Donald N. Allingham'
# The version info for the project you're documenting, acts as replacement for
@@ -65,9 +65,9 @@ author = 'Donald N. Allingham'
# built documents.
#
# The short X.Y version.
version = '5.0.0'
version = '5.1.0'
# The full version, including alpha/beta/rc tags.
release = '5.0.0-master'
release = '5.1.0'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.

@@ -15,7 +15,7 @@
<resphone>(555)123-4567</resphone>
<resemail>anyone@someplace.com</resemail>
</researcher>
<mediapath>{GRAMPS_RESOURCES}/example/gramps</mediapath>
<mediapath>{GRAMPS_RESOURCES}/doc/gramps/example/gramps</mediapath>
</header>
<tags>
<tag handle="_c7642d9389b54417e8b" change="1370206720" name="tag1" color="#000000000000" priority="0"/>

@@ -3,11 +3,11 @@
"http://gramps-project.org/xml/1.7.1/grampsxml.dtd">
<database xmlns="http://gramps-project.org/xml/1.7.1/">
<header>
<created date="2018-03-08" version="5.0.0"/>
<created date="2017-08-08" version="5.1.0"/>
<researcher>
<resname>Alex Roitman,,,</resname>
</researcher>
<mediapath>{GRAMPS_RESOURCES}/example/gramps</mediapath>
<mediapath>{GRAMPS_RESOURCES}/doc/gramps/example/gramps</mediapath>
</header>
<name-formats>
<format number="-1" name="SURNAME, Given (Common)" fmt_str="SURNAME, given (common)" active="1"/>
@@ -951,7 +951,7 @@
<place hlink="_L3WJQCD3US67V2CNZT"/>
<description>Birth of Garner, Anderson</description>
</event>
<event handle="_a5af0eb7dfb557da07e" change="1284030599" id="E0179">
<event handle="_a5af0eb7dfb557da07e" change="1502187535" id="E0179">
<type>Death</type>
<dateval val="1887-04-07"/>
<place hlink="_AKFKQC2N4SM243HCTN"/>
@@ -6262,7 +6262,7 @@
<dateval val="1842-06-28"/>
<description>Death of Moreno, Joseph McDowell</description>
</event>
<event handle="_a5af0ec45b25c630e03" change="1284030608" id="E1179">
<event handle="_a5af0ec45b25c630e03" change="1502187451" id="E1179">
<type>Birth</type>
<dateval val="1911-07-12"/>
<description>Birth of Thornton, James Arthur</description>
@@ -15003,7 +15003,7 @@
<type>Marriage</type>
<description>Marriage of Johnson, Henry and Sparks, Catherine</description>
</event>
<event handle="_a5af0ed5df832ee65c1" change="1328026859" id="E2815">
<event handle="_a5af0ed5df832ee65c1" change="1502187371" id="E2815">
<type>Marriage</type>
<dateval val="1875-04-01"/>
<place hlink="_RF5KQCNJRQY8OGTX2H"/>
@@ -18649,7 +18649,7 @@
<parentin hlink="_F4CKQCJZ24JRE9Z889"/>
<citationref hlink="_c140d2472c91aad494f"/>
</person>
<person handle="_14LKQCYZJEAXTS3XX" change="1185438865" id="I1376">
<person handle="_14LKQCYZJEAXTS3XX" change="1502187492" id="I1376">
<gender>F</gender>
<name type="Birth Name">
<first>Elizabeth</first>
@@ -18657,6 +18657,7 @@
</name>
<eventref hlink="_a5af0ebb003796f79a0" role="Primary"/>
<eventref hlink="_a5af0ebb0143dab99ff" role="Primary"/>
<eventref hlink="_a5af0eb7dfb557da07e" role="Witness"/>
<childof hlink="_5IUJQCRJY47YQ8PU7N"/>
<parentin hlink="_I4LKQCOAGPFH4R90A7"/>
<citationref hlink="_c140d24731407d57b3c"/>
@@ -19904,7 +19905,7 @@
<childof hlink="_IO5KQC6H0Q6Y517LR9"/>
<citationref hlink="_c140d24a1fd2319b703"/>
</person>
<person handle="_35WJQC1B7T7NPV8OLV" change="1284030051" id="I0106">
<person handle="_35WJQC1B7T7NPV8OLV" change="1502187260" id="I0106">
<gender>M</gender>
<name type="Birth Name">
<first>Robert W.</first>
@@ -19913,6 +19914,11 @@
<eventref hlink="_a5af0eb74ac73f86aa7" role="Primary"/>
<eventref hlink="_a5af0eb74ba358391ae" role="Primary"/>
<eventref hlink="_a5af0eb74c852f7c633" role="Primary"/>
<eventref hlink="_a5af0ed5df832ee65c1" role="Witness">
<attribute type="Age" value="23">
<citationref hlink="_c140dafeb317af2fd79"/>
</attribute>
</eventref>
<childof hlink="_X3WJQCSF48F6809142"/>
<parentin hlink="_8OUJQCUVZ0XML7BQLF"/>
<citationref hlink="_c140d24a27e19bb381a"/>
@@ -21991,13 +21997,14 @@
<childof hlink="_GCDKQCHI74ZPMI5GDJ"/>
<citationref hlink="_c140d24f3f8704aa41b"/>
</person>
<person handle="_6G0KQC2UXYC66XDDC2" change="1185438865" id="I0363">
<person handle="_6G0KQC2UXYC66XDDC2" change="1502187537" id="I0363">
<gender>F</gender>
<name type="Birth Name">
<first>Miranda Keziah</first>
<surname>Farmer</surname>
</name>
<eventref hlink="_a5af0ec7a76244d962d" role="Primary"/>
<eventref hlink="_a5af0eb7dfb557da07e" role="Witness"/>
<childof hlink="_8NVJQCGMJTCL7E6ZDV"/>
<citationref hlink="_c140d24f439709d3118"/>
</person>
@@ -22989,7 +22996,7 @@
<parentin hlink="_FBVJQCFBI50TW78O49"/>
<citationref hlink="_c140d2522702664ec52"/>
</person>
<person handle="_8CLKQCT97PJOGREJ7W" change="1185438865" id="I1387">
<person handle="_8CLKQCT97PJOGREJ7W" change="1502187387" id="I1387">
<gender>M</gender>
<name type="Birth Name">
<first>Robert</first>
@@ -22997,6 +23004,11 @@
</name>
<eventref hlink="_a5af0ebb3737a6ad088" role="Primary"/>
<eventref hlink="_a5af0ebb39b441e9607" role="Primary"/>
<eventref hlink="_a5af0ed5df832ee65c1" role="Clergy">
<attribute type="Age" value="23">
<citationref hlink="_c140dafeb317af2fd79"/>
</attribute>
</eventref>
<childof hlink="_5IUJQCRJY47YQ8PU7N"/>
<parentin hlink="_H6LKQCWVIFNRNGHFVH"/>
<citationref hlink="_c140d2522d804491375"/>
@@ -23803,7 +23815,7 @@
<childof hlink="_5DBKQCVAB0XMBEW8R9"/>
<citationref hlink="_c140d25425874b0b827"/>
</person>
<person handle="_9HUJQC6ONNW8SMSKGQ" change="1185438865" id="I0038">
<person handle="_9HUJQC6ONNW8SMSKGQ" change="1502187526" id="I0038">
<gender>M</gender>
<name type="Birth Name">
<first>David</first>
@@ -23812,6 +23824,7 @@
<eventref hlink="_a5af0ec7eb514c52fbf" role="Primary"/>
<eventref hlink="_a5af0ec7ec844213b55" role="Primary"/>
<eventref hlink="_a5af0ec7ed61c743fc8" role="Primary"/>
<eventref hlink="_a5af0eb7dfb557da07e" role="Informant"/>
<childof hlink="_5IUJQCRJY47YQ8PU7N"/>
<parentin hlink="_3HUJQCK4DH582YUTZG"/>
<citationref hlink="_c140d2542c764516f13"/>
@@ -24506,7 +24519,7 @@
<parentin hlink="_8NVJQCGMJTCL7E6ZDV"/>
<citationref hlink="_c140d2560004fad8df6"/>
</person>
<person handle="_ANLKQCQSQNE5LDZMRC" change="1185438865" id="I1402">
<person handle="_ANLKQCQSQNE5LDZMRC" change="1502187434" id="I1402">
<gender>F</gender>
<name type="Birth Name">
<first>Margaret Jane &quot;Maggie&quot;</first>
@@ -24514,6 +24527,7 @@
</name>
<eventref hlink="_a5af0ebb7d47a006ee2" role="Primary"/>
<eventref hlink="_a5af0ebb7e54e14970f" role="Primary"/>
<eventref hlink="_a5af0ec45b25c630e03" role="Witness"/>
<childof hlink="_VDLKQCQQ1ADTJG1D1F"/>
<parentin hlink="_SNLKQCD0VNJ627062Y"/>
<citationref hlink="_c140d25607213be35da"/>
@@ -24882,13 +24896,18 @@
<parentin hlink="_JFYJQCG2KLRQN835JD"/>
<citationref hlink="_c140d256e3403ba129d"/>
</person>
<person handle="_B3BKQCSV0G3NKSKWDX" change="1185438865" id="I0880">
<person handle="_B3BKQCSV0G3NKSKWDX" change="1502187344" id="I0880">
<gender>F</gender>
<name type="Birth Name">
<first>L. J.</first>
<surname>Blanco</surname>
</name>
<eventref hlink="_a5af0ed2cf617169903" role="Primary"/>
<eventref hlink="_a5af0ed5df832ee65c1" role="Clergy">
<attribute type="Age" value="23">
<citationref hlink="_c140dafeb317af2fd79"/>
</attribute>
</eventref>
<childof hlink="_1BVJQCNTFAGS8273LJ"/>
<citationref hlink="_c140d256ec4306a51ca"/>
</person>
@@ -31930,7 +31949,7 @@
<childof hlink="_UDMKQC5D3A2PXPUGNC"/>
<citationref hlink="_c140d266ec93334f40f"/>
</person>
<person handle="_MG5KQC6ZKSVO4A63G2" change="1328026883" id="I0624">
<person handle="_MG5KQC6ZKSVO4A63G2" change="1502187451" id="I0624">
<gender>M</gender>
<name type="Birth Name">
<first>Raymond E.</first>
@@ -31938,6 +31957,7 @@
</name>
<eventref hlink="_a5af0ece8bd1125a1a9" role="Primary"/>
<eventref hlink="_a5af0ece8d15511ddf9" role="Primary"/>
<eventref hlink="_a5af0ec45b25c630e03" role="Informant"/>
<childof hlink="_9OUJQCBOHW9UEK9CNV"/>
<citationref hlink="_c140d266f0d5d178784"/>
</person>
@@ -32336,7 +32356,7 @@
<parentin hlink="_F4CKQCJZ24JRE9Z889"/>
<citationref hlink="_c140d267ccb7aef0cd0"/>
</person>
<person handle="_N4DKQCPEMZ7OO62O7J" change="1185438865" id="I0975">
<person handle="_N4DKQCPEMZ7OO62O7J" change="1502187308" id="I0975">
<gender>M</gender>
<name type="Birth Name">
<first>Henry</first>
@@ -32345,6 +32365,11 @@
<eventref hlink="_a5af0ed483738d4ed1e" role="Primary"/>
<eventref hlink="_a5af0ed484a144d229b" role="Primary"/>
<eventref hlink="_a5af0ed48605fb6b9eb" role="Primary"/>
<eventref hlink="_a5af0ed5df832ee65c1" role="Witness">
<attribute type="Age" value="23">
<citationref hlink="_c140dafeb317af2fd79"/>
</attribute>
</eventref>
<parentin hlink="_7PUJQC4PPS4EDIVMYE"/>
<citationref hlink="_c140d267d2128356d8e"/>
</person>

@@ -47,6 +47,7 @@ from gramps.gen.recentfiles import recent_files
from gramps.gen.utils.file import rm_tempdir, get_empty_tempdir
from .clidbman import CLIDbManager, NAME_FILE, find_locker_name
from gramps.gen.db.utils import make_database
from gramps.gen.db.dbconst import DBBACKEND
from gramps.gen.plug import BasePluginManager
from gramps.gen.plug.report import CATEGORY_BOOK, CATEGORY_CODE, BookList
from .plug import cl_report, cl_book
@@ -504,6 +505,9 @@ class ArgHandler:
self.imp_db_path = get_empty_tempdir("import_dbdir")
dbid = config.get('database.backend')
newdb = make_database(dbid)
versionpath = os.path.join(self.imp_db_path, str(DBBACKEND))
with open(versionpath, "w") as version_file:
version_file.write(dbid)
try:
self.smgr.open_activate(self.imp_db_path, self.username, self.password)
@@ -619,8 +623,8 @@ class ArgHandler:
#import of plugin failed
return
category = pdata.category
report_class = eval('mod.' + pdata.reportclass)
options_class = eval('mod.' + pdata.optionclass)
report_class = getattr(mod, pdata.reportclass)
options_class = getattr(mod, pdata.optionclass)
if category in (CATEGORY_BOOK, CATEGORY_CODE):
options_class(self.dbstate.db, name, category,
options_str_dict)
@@ -668,8 +672,8 @@ class ArgHandler:
#import of plugin failed
return
category = pdata.category
tool_class = eval('mod.' + pdata.toolclass)
options_class = eval('mod.' + pdata.optionclass)
tool_class = getattr(mod, pdata.toolclass)
options_class = getattr(mod, pdata.optionclass)
tool.cli_tool(dbstate=self.dbstate,
name=name,
category=category,

@@ -39,15 +39,16 @@ import sys
import os
import getopt
import logging
import shutil
from glob import glob
#-------------------------------------------------------------------------
#
# gramps modules
#
#-------------------------------------------------------------------------
from gramps.gen.const import LONGOPTS, SHORTOPTS, PLUGINS_DIR, USER_PLUGINS
from gramps.gen.plug import BasePluginManager
from gramps.gen.config import config
from gramps.gen.const import (LONGOPTS, SHORTOPTS, USER_PLUGINS, VERSION_DIR,
HOME_DIR, TEMP_DIR, THUMB_DIR, ENV_DIR, USER_CSS)
from gramps.gen.utils.cast import get_type_converter
from gramps.gen.const import GRAMPS_LOCALE as glocale
_ = glocale.translation.gettext
@@ -81,6 +82,14 @@ Application options
-y, --yes Don't ask to confirm dangerous actions (non-GUI mode only)
-q, --quiet Suppress progress indication output (non-GUI mode only)
-v, --version Show versions
-S, --safe Start Gramps in 'Safe mode'
(temporarily use default settings)
-D, --default=[APXFE] Reset settings to default;
A - addons are cleared
P - Preferences to default
X - Books are cleared, reports and tool settings to default
F - filters are cleared
E - Everything is set to default or cleared
""")
_USAGE = _("""
@@ -342,6 +351,7 @@ class ArgParser:
elif option in ['-t']:
self.list_table = True
elif option in ['-s', '--show']:
from gramps.gen.config import config
print(_("Gramps config settings from %s:"
) % config.filename)
for sect in config.data:
@@ -351,6 +361,7 @@ class ArgParser:
print()
sys.exit(0)
elif option in ['-c', '--config']:
from gramps.gen.config import config
cfg_name = value
set_value = False
if cfg_name:
@@ -396,6 +407,44 @@ class ArgParser:
self.auto_accept = True
elif option in ['-q', '--quiet']:
self.quiet = True
elif option in ['-S', '--safe']:
cleandbg += [opt_ix]
elif option in ['-D', '--default']:
def rmtree(path):
if os.path.isdir(path):
shutil.rmtree(path, ignore_errors=True)
if 'E' in value or 'A' in value: # clear addons
rmtree(USER_PLUGINS)
if 'E' in value or 'P' in value: # clear ini preferences
for fil in glob(os.path.join(VERSION_DIR, "*.*")):
if "custom_filters.xml" in fil:
continue
os.remove(fil)
# create gramps.ini so config won't load the one from an
# older version of Gramps.
with open(os.path.join(VERSION_DIR, 'gramps.ini'), 'w'):
pass
if 'E' in value or 'F' in value: # clear filters
fil = os.path.join(VERSION_DIR, "custom_filters.xml")
if os.path.isfile(fil):
os.remove(fil)
if 'E' in value or 'X' in value: # clear xml reports/tools
for fil in glob(os.path.join(HOME_DIR, "*.xml")):
os.remove(fil)
if 'E' in value or 'Z' in value: # clear upgrade zips
for fil in glob(os.path.join(HOME_DIR, "*.zip")):
os.remove(fil)
if 'E' in value: # Everything else
rmtree(TEMP_DIR)
rmtree(THUMB_DIR)
rmtree(USER_CSS)
rmtree(ENV_DIR)
rmtree(os.path.join(HOME_DIR, "maps"))
for fil in glob(os.path.join(HOME_DIR, "*")):
if os.path.isfile(fil):
os.remove(fil)
sys.exit(0) # Done with Default
#clean options list
cleandbg.reverse()

@@ -64,6 +64,7 @@ from gramps.gen.db.exceptions import (DbUpgradeRequiredError,
from gramps.gen.plug import BasePluginManager
from gramps.gen.utils.config import get_researcher
from gramps.gen.recentfiles import recent_files
from gramps.gen.filters import reload_custom_filters
#-------------------------------------------------------------------------
#
@@ -279,7 +280,7 @@ class CLIManager:
# Attempt to figure out the database title
path = os.path.join(filename, "name.txt")
try:
with open(path) as ifile:
with open(path, encoding='utf8') as ifile:
title = ifile.readline().strip()
except:
title = filename
@@ -373,6 +374,7 @@ def startcli(errors, argparser):
#load the plugins
climanager.do_reg_plugins(dbstate, uistate=None)
reload_custom_filters()
# handle the arguments
from .arghandler import ArgHandler
handler = ArgHandler(dbstate, argparser, climanager)

@@ -88,9 +88,9 @@ def _convert_str_to_match_type(str_val, type_val):
return str(str_val)
elif ret_type == int:
if str_val.isdigit():
try:
return int(str_val)
else:
except ValueError:
print("'%s' is not an integer number" % str_val)
return 0

@@ -6,6 +6,7 @@
# Copyright (C) 2008-2009 Gary Burton
# Copyright (C) 2009-2012 Doug Blank <doug.blank@gmail.com>
# Copyright (C) 2011 Tim G L Lyons
# Copyright (C) 2015- Serge Noiraud
#
# 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
@@ -148,6 +149,7 @@ register('behavior.min-generation-years', 13)
register('behavior.owner-warn', False)
register('behavior.pop-plugin-status', False)
register('behavior.recent-export-type', 3)
register('behavior.runcheck', False)
register('behavior.spellcheck', False)
register('behavior.startup', 0)
register('behavior.surname-guessing', 0)
@@ -155,9 +157,9 @@ register('behavior.translator-needed', True)
register('behavior.use-tips', False)
register('behavior.welcome', 100)
register('behavior.web-search-url', 'http://google.com/#&q=%(text)s')
register('behavior.addons-url', "https://raw.githubusercontent.com/gramps-project/addons/master/gramps50")
register('behavior.addons-url', "https://raw.githubusercontent.com/gramps-project/addons/master/gramps51")
register('database.backend', 'bsddb')
register('database.backend', 'sqlite')
register('database.compress-backup', True)
register('database.backup-path', USER_HOME)
register('database.backup-on-exit', True)
@@ -217,6 +219,7 @@ register('interface.sidebar-text', True)
register('interface.size-checked', False)
register('interface.statusbar', 1)
register('interface.toolbar-on', True)
register('interface.toolbar-text', False)
register('interface.view', True)
register('interface.surname-box-height', 150)
register('interface.treemodel-cache-size', 1000)
@@ -228,6 +231,8 @@ register('paths.report-directory', USER_HOME)
register('paths.website-directory', USER_HOME)
register('paths.website-cms-uri', '')
register('paths.website-cal-uri', '')
register('paths.website-extra-page-uri', '')
register('paths.website-extra-page-name', '')
register('paths.quick-backup-directory', USER_HOME)
register('paths.quick-backup-filename',
"%(filename)s_%(year)d-%(month)02d-%(day)02d.%(extension)s")
@@ -236,7 +241,6 @@ register('preferences.quick-backup-include-mode', False)
register('preferences.date-format', 0)
register('preferences.calendar-format-report', 0)
register('preferences.cprefix', 'C%04d')
register('preferences.alternate-fonthandler', False)
register('preferences.default-source', False)
register('preferences.tag-on-import', False)
register('preferences.tag-on-import-format', _("Imported %Y/%m/%d %H:%M:%S"))
@@ -278,6 +282,10 @@ register('colors.female-dead', ['#feccf0', '#3a292b'])
register('colors.unknown-alive', ['#f3dbb6', '#75507B'])
register('colors.unknown-dead', ['#f3dbb6', '#35103b'])
register('colors.family', ['#eeeeee', '#454545'])
register('colors.family-married', ['#eeeeee', '#454545'])
register('colors.family-unmarried', ['#eeeeee', '#454545'])
register('colors.family-civil-union', ['#eeeeee', '#454545'])
register('colors.family-unknown', ['#eeeeee', '#454545'])
register('colors.family-divorced', ['#ffdede', '#5c3636'])
register('colors.home-person', ['#bbe68a', '#304918'])
register('colors.border-male-alive', ['#1f4986', '#171d26'])
@@ -302,6 +310,11 @@ register('researcher.researcher-state', '')
register('plugin.hiddenplugins', [])
register('plugin.addonplugins', [])
register('utf8.in-use', False)
register('utf8.available-fonts', [])
register('utf8.selected-font', "")
register('utf8.death-symbol', 13)
if __debug__: # enable a simple CLI test to see if the datestrings exist
register('test.january', _("localized lexeme inflections||January"))

@@ -104,6 +104,13 @@ elif 'USERPROFILE' in os.environ:
else:
USER_HOME = get_env_var('HOME')
HOME_DIR = os.path.join(USER_HOME, '.gramps')
ORIG_HOME_DIR = HOME_DIR
if 'SAFEMODE' in os.environ:
if 'USERPROFILE' in os.environ:
USER_HOME = get_env_var('USERPROFILE')
else:
USER_HOME = get_env_var('HOME')
HOME_DIR = get_env_var('SAFEMODE')
VERSION_DIR = os.path.join(
@@ -139,6 +146,7 @@ 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 += "-1"
#
# Glade files
@@ -217,7 +225,7 @@ GTK_GETTEXT_DOMAIN = 'gtk30'
#
#-------------------------------------------------------------------------
COPYRIGHT_MSG = "© 2001-2006 Donald N. Allingham\n" \
"© 2007-2018 The Gramps Developers"
"© 2007-2020 The Gramps Developers"
COMMENTS = _("Gramps\n (Genealogical Research and Analysis "
"Management Programming System)\n"
"is a personal genealogy program.")
@@ -266,6 +274,7 @@ LONGOPTS = [
"class=",
"config=",
"debug=",
"default=",
"display=",
"disable-sound",
"disable-crash-dialog",
@@ -293,6 +302,7 @@ LONGOPTS = [
"password=",
"create=",
"options=",
"safe",
"screen=",
"show",
"sm-client-id=",
@@ -306,7 +316,7 @@ LONGOPTS = [
"quiet",
]
SHORTOPTS = "O:U:P:C:i:e:f:a:p:d:c:r:lLthuv?syq"
SHORTOPTS = "O:U:P:C:i:e:f:a:p:d:c:r:lLthuv?syqSD:"
GRAMPS_UUID = uuid.UUID('516cd010-5a41-470f-99f8-eb22f1098ad6')

@@ -50,6 +50,15 @@ class DateParserCZ(DateParser):
Converts a text string into a Date object
"""
quality_to_int = {
'přibližně' : Date.QUAL_ESTIMATED,
'odhadem' : Date.QUAL_ESTIMATED,
'odh.' : Date.QUAL_ESTIMATED,
'vypočteno' : Date.QUAL_CALCULATED,
'vypočtené' : Date.QUAL_CALCULATED,
'vyp.' : Date.QUAL_CALCULATED,
}
bce = ["před naším letopočtem", "před Kristem",
"př. n. l.", "př. Kr."] + DateParser.bce
@@ -58,6 +67,17 @@ class DateParserCZ(DateParser):
# bug 9739 grampslocale.py gets '%-d.%-m.%Y' -- makes it be '%/d.%/m.%Y'
self.dhformat = self.dhformat.replace('/', '') # so counteract that
def init_strings(self):
DateParser.init_strings(self)
self._text2 = re.compile(r'(\d+)?\.?\s+?%s\.?\s*((\d+)(/\d+)?)?\s*$'
% self._mon_str, re.IGNORECASE)
self._span = re.compile(
r"(od)\s+(?P<start>.+)\s+(do)\s+(?P<stop>.+)",
re.IGNORECASE)
self._range = re.compile(
r"(mezi)\s+(?P<start>.+)\s+(a)\s+(?P<stop>.+)",
re.IGNORECASE)
#-------------------------------------------------------------------------
#
# Czech display

@@ -51,9 +51,9 @@ class DateParserDE(DateParser):
# Always add german and austrian name variants no matter what the current
# locale is
month_to_int["januar"] = 1
month_to_int["jan"] = 1
month_to_int["jan"] = 1
month_to_int["jänner"] = 1
month_to_int["jän"] = 1
month_to_int["jän"] = 1
# Add other common latin,
@@ -121,14 +121,14 @@ class DateParserDE(DateParser):
# local and historical variants
month_to_int["jenner"] = 1
month_to_int["feber"] = 2
month_to_int["merz"] = 3
month_to_int["augst"] = 8
month_to_int["7ber"] = 9
month_to_int["8ber"] = 10
month_to_int["9ber"] = 11
month_to_int["10ber"] = 12
month_to_int["xber"] = 12
month_to_int["feber"] = 2
month_to_int["merz"] = 3
month_to_int["augst"] = 8
month_to_int["7ber"] = 9
month_to_int["8ber"] = 10
month_to_int["9ber"] = 11
month_to_int["10ber"] = 12
month_to_int["xber"] = 12
# old german names

@@ -55,7 +55,7 @@ class DateParserHU(DateParser):
month_to_int["-"]=0 #to make the Zero month to work
month_to_int["január"] = 1
month_to_int["jan"] = 1
month_to_int["jan"] = 1
month_to_int["jan."] = 1
month_to_int["I"] = 1
# month_to_int["i"] = 1
@@ -64,67 +64,67 @@ class DateParserHU(DateParser):
month_to_int["feb"] = 2
month_to_int["feb."] = 2
month_to_int["II"] = 2
# month_to_int["ii"] = 2
# month_to_int["ii"] = 2
month_to_int["március"] = 3
month_to_int["márc"] = 3
month_to_int["márc."] = 3
month_to_int["III"] = 3
# month_to_int["iii"] = 3
# month_to_int["iii"] = 3
month_to_int["április"] = 4
month_to_int["ápr"] = 4
month_to_int["ápr."] = 4
month_to_int["IV"] = 4
# month_to_int["iv"] = 4
month_to_int["IV"] = 4
# month_to_int["iv"] = 4
month_to_int["május"] = 5
month_to_int["máj"] = 5
month_to_int["máj."] = 5
month_to_int["V"] = 5
# month_to_int["v"] = 5
month_to_int["V"] = 5
# month_to_int["v"] = 5
month_to_int["június"] = 6
month_to_int["jún"] = 6
month_to_int["jún."] = 6
month_to_int["VI"] = 6
# month_to_int["vi"] = 6
month_to_int["VI"] = 6
# month_to_int["vi"] = 6
month_to_int["július"] = 7
month_to_int["júl"] = 7
month_to_int["júl."] = 7
month_to_int["VII"] = 7
# month_to_int["vii"] = 7
month_to_int["július"] = 7
month_to_int["júl"] = 7
month_to_int["júl."] = 7
month_to_int["VII"] = 7
# month_to_int["vii"] = 7
month_to_int["augusztus"] = 8
month_to_int["aug"] = 8
month_to_int["aug."] = 8
month_to_int["VIII"] = 8
# month_to_int["viii"] = 8
month_to_int["augusztus"] = 8
month_to_int["aug"] = 8
month_to_int["aug."] = 8
month_to_int["VIII"] = 8
# month_to_int["viii"] = 8
month_to_int["szeptember"] = 9
month_to_int["szept"] = 9
month_to_int["szeptember"] = 9
month_to_int["szept"] = 9
month_to_int["szept."] = 9
month_to_int["IX"] = 9
# month_to_int["ix"] = 9
month_to_int["IX"] = 9
# month_to_int["ix"] = 9
month_to_int["október"] = 10
month_to_int["okt"] = 10
month_to_int["okt."] = 10
month_to_int["X"] = 10
# month_to_int["x"] = 10
month_to_int["október"] = 10
month_to_int["okt"] = 10
month_to_int["okt."] = 10
month_to_int["X"] = 10
# month_to_int["x"] = 10
month_to_int["november"] = 11
month_to_int["nov"] = 11
month_to_int["november"] = 11
month_to_int["nov"] = 11
month_to_int["nov."] = 11
month_to_int["XI"] = 11
# month_to_int["xi"] = 11
month_to_int["XI"] = 11
# month_to_int["xi"] = 11
month_to_int["december"] = 12
month_to_int["dec"] = 12
month_to_int["dec."] = 12
month_to_int["XII"] = 12
# month_to_int["xii"] = 12
month_to_int["december"] = 12
month_to_int["dec"] = 12
month_to_int["dec."] = 12
month_to_int["XII"] = 12
# month_to_int["xii"] = 12
#-----------------------------------------------------------------------

@@ -57,30 +57,30 @@ class DateParserNL(DateParser):
# Always add dutch and flemish name variants
# no matter what the current locale is
month_to_int["januari"] = 1
month_to_int["jan"] = 1
month_to_int["jan"] = 1
# Add other common latin, local and historical variants
month_to_int["januaris"] = 1
month_to_int["feber"] = 2
month_to_int["februaris"] = 2
month_to_int["merz"] = 3
month_to_int["feber"] = 2
month_to_int["februaris"] = 2
month_to_int["merz"] = 3
#make sure on all distro mrt and maa are accepted
month_to_int["maa"] = 3
month_to_int["mrt"] = 3
month_to_int["aprilis"] = 4
month_to_int["maius"] = 5
month_to_int["junius"] = 6
month_to_int["julius"] = 7
month_to_int["augst"] = 8
month_to_int["7ber"] = 9
month_to_int["7bris"] = 9
month_to_int["8ber"] = 10
month_to_int["8bris"] = 10
month_to_int["9ber"] = 11
month_to_int["9bris"] = 11
month_to_int["10ber"] = 12
month_to_int["10bris"] = 12
month_to_int["xber"] = 12
month_to_int["xbris"] = 12
month_to_int["maa"] = 3
month_to_int["mrt"] = 3
month_to_int["aprilis"] = 4
month_to_int["maius"] = 5
month_to_int["junius"] = 6
month_to_int["julius"] = 7
month_to_int["augst"] = 8
month_to_int["7ber"] = 9
month_to_int["7bris"] = 9
month_to_int["8ber"] = 10
month_to_int["8bris"] = 10
month_to_int["9ber"] = 11
month_to_int["9bris"] = 11
month_to_int["10ber"] = 12
month_to_int["10bris"] = 12
month_to_int["xber"] = 12
month_to_int["xbris"] = 12
modifier_to_int = {
'voor' : Date.MOD_BEFORE,

@@ -54,38 +54,38 @@ class DateParserPL(DateParser):
month_to_int["styczeń"] = 1
month_to_int["sty"] = 1
month_to_int["I"] = 1
month_to_int["luty"] = 2
month_to_int["lut"] = 2
month_to_int["II"] = 2
month_to_int["marzec"] = 3
month_to_int["mar"] = 3
month_to_int["III"] = 3
month_to_int["kwiecień"] = 4
month_to_int["kwi"] = 4
month_to_int["IV"] = 4
month_to_int["maj"] = 5
month_to_int["V"] = 5
month_to_int["czerwiec"] = 6
month_to_int["cze"] = 6
month_to_int["VI"] = 6
month_to_int["lipiec"] = 7
month_to_int["lip"] = 7
month_to_int["VII"] = 7
month_to_int["sierpień"] = 8
month_to_int["sie"] = 8
month_to_int["VIII"] = 8
month_to_int["wrzesień"] = 9
month_to_int["wrz"] = 9
month_to_int["IX"] = 9
month_to_int["październik"] = 10
month_to_int["paź"] = 10
month_to_int["X"] = 10
month_to_int["listopad"] = 11
month_to_int["lis"] = 11
month_to_int["XI"] = 11
month_to_int["grudzień"] = 12
month_to_int["gru"] = 12
month_to_int["XII"] = 12
month_to_int["luty"] = 2
month_to_int["lut"] = 2
month_to_int["II"] = 2
month_to_int["marzec"] = 3
month_to_int["mar"] = 3
month_to_int["III"] = 3
month_to_int["kwiecień"] = 4
month_to_int["kwi"] = 4
month_to_int["IV"] = 4
month_to_int["maj"] = 5
month_to_int["V"] = 5
month_to_int["czerwiec"] = 6
month_to_int["cze"] = 6
month_to_int["VI"] = 6
month_to_int["lipiec"] = 7
month_to_int["lip"] = 7
month_to_int["VII"] = 7
month_to_int["sierpień"] = 8
month_to_int["sie"] = 8
month_to_int["VIII"] = 8
month_to_int["wrzesień"] = 9
month_to_int["wrz"] = 9
month_to_int["IX"] = 9
month_to_int["październik"] = 10
month_to_int["paź"] = 10
month_to_int["X"] = 10
month_to_int["listopad"] = 11
month_to_int["lis"] = 11
month_to_int["XI"] = 11
month_to_int["grudzień"] = 12
month_to_int["gru"] = 12
month_to_int["XII"] = 12
# Alternative forms: declined nouns
month_to_int["stycznia"] = 1
month_to_int["lutego"] = 2

@@ -54,95 +54,95 @@ class DateParserSR(DateParser):
"""
month_to_int = DateParser.month_to_int
month_to_int["januar"] = 1
month_to_int["januar"] = 1
month_to_int["januara"] = 1
month_to_int["jan"] = 1
month_to_int["јан"] = 1
month_to_int["jan"] = 1
month_to_int["јан"] = 1
month_to_int["јануара"] = 1
month_to_int["јануар"] = 1
month_to_int["i"] = 1
month_to_int["јануар"] = 1
month_to_int["i"] = 1
month_to_int["februar"] = 2
month_to_int["februar"] = 2
month_to_int["februara"] = 2
month_to_int["feb"] = 2
month_to_int["феб"] = 2
month_to_int["фебруар"] = 2
month_to_int["feb"] = 2
month_to_int["феб"] = 2
month_to_int["фебруар"] = 2
month_to_int["фебруара"] = 2
month_to_int["ii"] = 2
month_to_int["ii"] = 2
month_to_int["mart"] = 3
month_to_int["mart"] = 3
month_to_int["marta"] = 3
month_to_int["mar"] = 3
month_to_int["мар"] = 3
month_to_int["март"] = 3
month_to_int["mar"] = 3
month_to_int["мар"] = 3
month_to_int["март"] = 3
month_to_int["марта"] = 3
month_to_int["iii"] = 3
month_to_int["iii"] = 3
month_to_int["april"] = 4
month_to_int["april"] = 4
month_to_int["aprila"] = 4
month_to_int["apr"] = 4
month_to_int["апр"] = 4
month_to_int["април"] = 4
month_to_int["apr"] = 4
month_to_int["апр"] = 4
month_to_int["април"] = 4
month_to_int["априла"] = 4
month_to_int["iv"] = 4
month_to_int["iv"] = 4
month_to_int["maj"] = 5
month_to_int["maj"] = 5
month_to_int["maja"] = 5
month_to_int["мај"] = 5
month_to_int["мај"] = 5
month_to_int["маја"] = 5
month_to_int["v"] = 5
month_to_int["v"] = 5
month_to_int["jun"] = 6
month_to_int["jun"] = 6
month_to_int["juna"] = 6
month_to_int["јун"] = 6
month_to_int["јун"] = 6
month_to_int["јуна"] = 6
month_to_int["vi"] = 6
month_to_int["vi"] = 6
month_to_int["jul"] = 7
month_to_int["jul"] = 7
month_to_int["jula"] = 7
month_to_int["јул"] = 7
month_to_int["јул"] = 7
month_to_int["јула"] = 7
month_to_int["vii"] = 7
month_to_int["vii"] = 7
month_to_int["avgust"] = 8
month_to_int["avgust"] = 8
month_to_int["avgusta"] = 8
month_to_int["avg"] = 8
month_to_int["авг"] = 8
month_to_int["август"] = 8
month_to_int["avg"] = 8
month_to_int["авг"] = 8
month_to_int["август"] = 8
month_to_int["августа"] = 8
month_to_int["viii"] = 8
month_to_int["viii"] = 8
month_to_int["septembar"] = 9
month_to_int["septembra"] = 9
month_to_int["sep"] = 9
month_to_int["сеп"] = 9
month_to_int["sep"] = 9
month_to_int["сеп"] = 9
month_to_int["септембар"] = 9
month_to_int["септембра"] = 9
month_to_int["ix"] = 9
month_to_int["ix"] = 9
month_to_int["oktobar"] = 10
month_to_int["oktobra"] = 10
month_to_int["okt"] = 10
month_to_int["окт"] = 10
month_to_int["октобар"] = 10
month_to_int["октобра"] = 10
month_to_int["x"] = 10
month_to_int["oktobar"] = 10
month_to_int["oktobra"] = 10
month_to_int["okt"] = 10
month_to_int["окт"] = 10
month_to_int["октобар"] = 10
month_to_int["октобра"] = 10
month_to_int["x"] = 10
month_to_int["novembar"] = 11
month_to_int["novembra"] = 11
month_to_int["nov"] = 11
month_to_int["нов"] = 11
month_to_int["новембар"] = 11
month_to_int["новембра"] = 11
month_to_int["xi"] = 11
month_to_int["novembar"] = 11
month_to_int["novembra"] = 11
month_to_int["nov"] = 11
month_to_int["нов"] = 11
month_to_int["новембар"] = 11
month_to_int["новембра"] = 11
month_to_int["xi"] = 11
month_to_int["decembar"] = 12
month_to_int["decembra"] = 12
month_to_int["dec"] = 12
month_to_int["дец"] = 12
month_to_int["децембар"] = 12
month_to_int["децембра"] = 12
month_to_int["xii"] = 12
month_to_int["decembar"] = 12
month_to_int["decembra"] = 12
month_to_int["dec"] = 12
month_to_int["дец"] = 12
month_to_int["децембар"] = 12
month_to_int["децембра"] = 12
month_to_int["xii"] = 12
modifier_to_int = {
'pre' : Date.MOD_BEFORE,

@@ -56,7 +56,7 @@ from ._datestrings import DateStrings
# Top-level module functions
#
#-------------------------------------------------------------------------
_max_days = [ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ]
_max_days = [ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ]
_leap_days = [ 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ]
def gregorian_valid(date_tuple):
@@ -400,8 +400,8 @@ class DateParser:
_ = self._locale.translation.gettext
self.__init_prefix_tables()
self._rfc_mon_str = '(' + '|'.join(list(self._rfc_mons_to_int.keys())) + ')'
self._rfc_day_str = '(' + '|'.join(self._rfc_days) + ')'
self._rfc_mon_str = '(' + '|'.join(list(self._rfc_mons_to_int.keys())) + ')'
self._rfc_day_str = '(' + '|'.join(self._rfc_days) + ')'
self._bce_str = self.re_longest_first(self.bce)
self._qual_str = self.re_longest_first(list(self.quality_to_int.keys()))
@@ -409,14 +409,14 @@ class DateParser:
self._mod_after_str = self.re_longest_first(
list(self.modifier_after_to_int.keys()))
self._mon_str = self.re_longest_first(list(self.month_to_int.keys()))
self._mon_str = self.re_longest_first(list(self.month_to_int.keys()))
self._jmon_str = self.re_longest_first(list(self.hebrew_to_int.keys()))
self._fmon_str = self.re_longest_first(list(self.french_to_int.keys()))
self._pmon_str = self.re_longest_first(list(self.persian_to_int.keys()))
self._imon_str = self.re_longest_first(list(self.islamic_to_int.keys()))
self._smon_str = self.re_longest_first(list(self.swedish_to_int.keys()))
self._cal_str = self.re_longest_first(list(self.calendar_to_int.keys()))
self._ny_str = self.re_longest_first(list(self.newyear_to_int.keys()))
self._cal_str = self.re_longest_first(list(self.calendar_to_int.keys()))
self._ny_str = self.re_longest_first(list(self.newyear_to_int.keys()))
self._today_str = self.re_longest_first(self.today + [_("today"),])
@@ -911,7 +911,7 @@ class DateParser:
text = text.strip() # otherwise spaces can make it a bad date
date.set_text_value(text)
qual = Date.QUAL_NONE
cal = Date.CAL_GREGORIAN
cal = Date.CAL_GREGORIAN
newyear = Date.NEWYEAR_JAN1
(text, cal, newyear) = self.match_calendar_newyear(text, cal, newyear)

@@ -66,7 +66,7 @@ def set_format(value):
except:
pass
def set_date(date_base, text) :
def set_date(date_base, text):
"""
Set the date of the :class:`.DateBase` instance.
@@ -79,7 +79,7 @@ def set_date(date_base, text) :
"""
parser.set_date(date_base.get_date_object(), text)
def get_date(date_base) :
def get_date(date_base):
"""
Return a string representation of the date of the :class:`.DateBase`
instance.

@@ -39,36 +39,36 @@ __all__ = ( 'DBPAGE', 'DBMODE', 'DBCACHE', 'DBLOCKS', 'DBOBJECTS', 'DBUNDO',
"CLASS_TO_KEY_MAP", "KEY_TO_CLASS_MAP", "KEY_TO_NAME_MAP"
)
DBEXT = ".db" # File extension to be used for database files
DBUNDOFN = "undo.db" # File name of 'undo' database
DBLOCKFN = "lock" # File name of lock file
DBEXT = ".db" # File extension to be used for database files
DBUNDOFN = "undo.db" # File name of 'undo' database
DBLOCKFN = "lock" # File name of lock file
DBRECOVFN = "need_recover" # File name of recovery file
BDBVERSFN = "bdbversion.txt"# File name of Berkeley DB version file
DBBACKEND = "database.txt" # File name of Database backend file
SCHVERSFN = "schemaversion.txt"# File name of schema version file
PCKVERSFN = "pickleupgrade.txt" # Indicator that pickle has been upgrade t Python3
DBLOGNAME = ".Db" # Name of logger
DBMODE_R = "r" # Read-only access
DBMODE_W = "w" # Full Read/Write access
DBPAGE = 16384 # Size of the pages used to hold items in the database
DBMODE = 0o666 # Unix mode for database creation
DBCACHE = 0x4000000 # Size of the shared memory buffer pool
DBLOCKS = 100000 # Maximum number of locks supported
DBMODE_R = "r" # Read-only access
DBMODE_W = "w" # Full Read/Write access
DBPAGE = 16384 # Size of the pages used to hold items in the database
DBMODE = 0o666 # Unix mode for database creation
DBCACHE = 0x4000000 # Size of the shared memory buffer pool
DBLOCKS = 100000 # Maximum number of locks supported
DBOBJECTS = 100000 # Maximum number of simultaneously locked objects
DBUNDO = 1000 # Maximum size of undo buffer
DBUNDO = 1000 # Maximum size of undo buffer
ARRAYSIZE = 1000 # The arraysize for a SQL cursor
PERSON_KEY = 0
FAMILY_KEY = 1
SOURCE_KEY = 2
EVENT_KEY = 3
MEDIA_KEY = 4
PLACE_KEY = 5
PERSON_KEY = 0
FAMILY_KEY = 1
SOURCE_KEY = 2
EVENT_KEY = 3
MEDIA_KEY = 4
PLACE_KEY = 5
REPOSITORY_KEY = 6
REFERENCE_KEY = 7
NOTE_KEY = 8
TAG_KEY = 9
CITATION_KEY = 10
REFERENCE_KEY = 7
NOTE_KEY = 8
TAG_KEY = 9
CITATION_KEY = 10
TXNADD, TXNUPD, TXNDEL = 0, 1, 2

@@ -216,8 +216,9 @@ class DummyDb(M_A_M_B("NewBaseClass", (DbReadBase, Callback, object,), {})):
"""
Create a new DummyDb instance.
"""
DbReadBase.__init__(self)
Callback.__init__(self)
self.basedb = None
self.__feature = {} # {"feature": VALUE, ...}
self.db_is_open = False
self.readonly = True
self.name_formats = []

@@ -47,6 +47,7 @@ from . import (DbReadBase, DbWriteBase, DbUndo, DBLOGNAME, DBUNDOFN,
REPOSITORY_KEY, NOTE_KEY, TAG_KEY, TXNADD, TXNUPD, TXNDEL,
KEY_TO_NAME_MAP, DBMODE_R, DBMODE_W)
from .utils import write_lock_file, clear_lock_file
from .exceptions import DbVersionError
from ..errors import HandleError
from ..utils.callback import Callback
from ..updatecallback import UpdateCallback
@@ -659,6 +660,12 @@ class DbGeneric(DbWriteBase, DbReadBase, UpdateCallback, Callback):
self.db_is_open = True
# Check on db version to see if too new
dbversion = int(self._get_metadata('version', default='0'))
if dbversion > self.VERSION[0]:
self.close()
raise DbVersionError(dbversion, 18, self.VERSION[0])
def _close(self):
"""
Close database backend.
@@ -757,7 +764,7 @@ class DbGeneric(DbWriteBase, DbReadBase, UpdateCallback, Callback):
if self._directory:
filepath = os.path.join(self._directory, "name.txt")
try:
with open(filepath, "r") as name_file:
with open(filepath, "r", encoding='utf8') as name_file:
name = name_file.readline().strip()
except (OSError, IOError) as msg:
LOG.error(str(msg))

@@ -120,7 +120,7 @@ class DbTxn(defaultdict):
data = Python list where:
list element = (handle, data) where:
handle = handle (database key) of the object in the transaction
data = pickled representation of the object
data = pickled representation of the object
"""
# Conditional on __debug__ because all that frame stuff may be slow

@@ -83,21 +83,21 @@ except ImportError:
# Constants
#
#-------------------------------------------------------------------------
_FIRSTNAME = 4
_FIRSTNAME = 4
_SURNAME_LIST = 5
_SUFFIX = 6
_TITLE = 7
_TYPE = 8
_GROUP = 9
_SORT = 10
_DISPLAY = 11
_CALL = 12
_NICK = 13
_FAMNICK = 14
_SURNAME_IN_LIST = 0
_PREFIX_IN_LIST = 1
_PRIMARY_IN_LIST = 2
_TYPE_IN_LIST = 3
_SUFFIX = 6
_TITLE = 7
_TYPE = 8
_GROUP = 9
_SORT = 10
_DISPLAY = 11
_CALL = 12
_NICK = 13
_FAMNICK = 14
_SURNAME_IN_LIST = 0
_PREFIX_IN_LIST = 1
_PRIMARY_IN_LIST = 2
_TYPE_IN_LIST = 3
_CONNECTOR_IN_LIST = 4
_ORIGINPATRO = NameOriginType.PATRONYMIC
_ORIGINMATRO = NameOriginType.MATRONYMIC
@@ -570,13 +570,13 @@ class NameDisplay:
raw_data[_SUFFIX])
Specific symbols for parts of a name are defined (keywords given):
't' : title = title
'f' : given = given (first names)
'l' : surname = full surname (lastname)
'c' : call = callname
'x' : common = nick name, call, otherwise first first name (common name)
'i' : initials = initials of the first names
'm' : primary = primary surname (main)
't' : title = title
'f' : given = given (first names)
'l' : surname = full surname (lastname)
'c' : call = callname
'x' : common = nick name, call, otherwise first first name (common name)
'i' : initials = initials of the first names
'm' : primary = primary surname (main)
'0m': primary[pre]= prefix primary surname (main)
'1m': primary[sur]= surname primary surname (main)
'2m': primary[con]= connector primary surname (main)
@@ -585,11 +585,11 @@ class NameDisplay:
'1y': patronymic[sur] = surname "
'2y': patronymic[con] = connector "
'o' : notpatronymic = surnames without pa/matronymic and primary
'r' : rest = non primary surnames
'p' : prefix = list of all prefixes
'r' : rest = non primary surnames
'p' : prefix = list of all prefixes
'q' : rawsurnames = surnames without prefixes and connectors
's' : suffix = suffix
'n' : nickname = nick name
's' : suffix = suffix
'n' : nickname = nick name
'g' : familynick = family nick name
@@ -671,13 +671,13 @@ class NameDisplay:
return "%s %s" % (first,suffix)
Specific symbols for parts of a name are defined (keywords given):
't' : title = title
'f' : given = given (first names)
'l' : surname = full surname (lastname)
'c' : call = callname
'x' : common = nick name, call, or otherwise first first name (common name)
'i' : initials = initials of the first names
'm' : primary = primary surname (main)
't' : title = title
'f' : given = given (first names)
'l' : surname = full surname (lastname)
'c' : call = callname
'x' : common = nick name, call, or otherwise first first name (common name)
'i' : initials = initials of the first names
'm' : primary = primary surname (main)
'0m': primary[pre]= prefix primary surname (main)
'1m': primary[sur]= surname primary surname (main)
'2m': primary[con]= connector primary surname (main)
@@ -686,11 +686,11 @@ class NameDisplay:
'1y': patronymic[sur] = surname "
'2y': patronymic[con] = connector "
'o' : notpatronymic = surnames without pa/matronymic and primary
'r' : rest = non primary surnames
'p' : prefix = list of all prefixes
'r' : rest = non primary surnames
'p' : prefix = list of all prefixes
'q' : rawsurnames = surnames without prefixes and connectors
's' : suffix = suffix
'n' : nickname = nick name
's' : suffix = suffix
'n' : nickname = nick name
'g' : familynick = family nick name
"""

@@ -54,11 +54,6 @@ class PlaceFormat:
self.street = street
self.reverse = reverse
def to_xml(self):
return (' <format name="%s" levels="%s" language="%s" '
'street="%s" reverse="%s"/>\n' %
(self.name, self.levels, self.language,
self.street, self.reverse))
#-------------------------------------------------------------------------
#
@@ -71,10 +66,13 @@ class PlaceDisplay:
self.place_formats = []
self.default_format = config.get('preferences.place-format')
if os.path.exists(PLACE_FORMATS):
self.load_formats()
else:
pf = PlaceFormat(_('Full'), ':', '', 0, False)
self.place_formats.append(pf)
try:
self.load_formats()
return
except BaseException:
print(_("Error in '%s' file: cannot load.") % PLACE_FORMATS)
pf = PlaceFormat(_('Full'), ':', '', 0, False)
self.place_formats.append(pf)
def display_event(self, db, event, fmt=-1):
if not event:
@@ -164,12 +162,20 @@ class PlaceDisplay:
dom.unlink()
def save_formats(self):
with open(PLACE_FORMATS, 'w') as fd:
fd.write('<?xml version="1.0" encoding="utf-8"?>\n')
fd.write('<place_formats>\n')
for fmt in self.place_formats:
fd.write(fmt.to_xml())
fd.write('</place_formats>\n')
doc = xml.dom.minidom.Document()
place_formats = doc.createElement('place_formats')
doc.appendChild(place_formats)
for fmt in self.place_formats:
node = doc.createElement('format')
place_formats.appendChild(node)
node.setAttribute('name', fmt.name)
node.setAttribute('levels', fmt.levels)
node.setAttribute('language', fmt.language)
node.setAttribute('street', str(fmt.street))
node.setAttribute('reverse', str(fmt.reverse))
with open(PLACE_FORMATS, 'w', encoding='utf-8') as f_d:
doc.writexml(f_d, addindent=' ', newl='\n', encoding='utf-8')
def _get_offset(value, index):
if index is not None and value.startswith('p'):

@@ -22,7 +22,6 @@
Package providing filtering framework for Gramps.
"""
#SystemFilters = None
CustomFilters = None
from ..const import CUSTOM_FILTERS
@@ -32,18 +31,10 @@ from ._genericfilter import (GenericFilter, GenericFilterFactory,
from ._paramfilter import ParamFilter
from ._searchfilter import SearchFilter, ExactSearchFilter
#def reload_system_filters():
#global SystemFilters
#SystemFilters = FilterList(SYSTEM_FILTERS)
#SystemFilters.load()
def reload_custom_filters():
global CustomFilters
CustomFilters = FilterList(CUSTOM_FILTERS)
CustomFilters.load()
#if not SystemFilters:
#reload_system_filters()
if not CustomFilters:
reload_custom_filters()
# if not CustomFilters: # moved to viewmanager
# reload_custom_filters()

@@ -27,7 +27,7 @@
#-------------------------------------------------------------------------
from xml.sax import make_parser, SAXParseException
import os
import collections
from collections import abc
#-------------------------------------------------------------------------
#
@@ -78,7 +78,7 @@ class FilterList:
plugin_filters = []
try:
for plug in plugins:
if isinstance(plug, collections.Callable):
if isinstance(plug, abc.Callable):
plug = plug(namespace)
if plug:
if isinstance(plug, (list, tuple)):

@@ -124,6 +124,9 @@ class GenericFilter:
def get_cursor(self, db):
return db.get_person_cursor()
def get_tree_cursor(self, db):
return db.get_person_cursor()
def make_obj(self):
return Person()
@@ -133,13 +136,15 @@ class GenericFilter:
def get_number(self, db):
return db.get_number_of_people()
def check_func(self, db, id_list, task, user=None, tupleind=None):
def check_func(self, db, id_list, task, user=None, tupleind=None,
tree=False):
final_list = []
if user:
user.begin_progress(_('Filter'), _('Applying ...'),
self.get_number(db))
if id_list is None:
with self.get_cursor(db) as cursor:
with (self.get_tree_cursor(db) if tree else
self.get_cursor(db)) as cursor:
for handle, data in cursor:
person = self.make_obj()
person.unserialize(data)
@@ -162,14 +167,15 @@ class GenericFilter:
user.end_progress()
return final_list
def check_and(self, db, id_list, user=None, tupleind=None):
def check_and(self, db, id_list, user=None, tupleind=None, tree=False):
final_list = []
flist = self.flist
if user:
user.begin_progress(_('Filter'), _('Applying ...'),
self.get_number(db))
if id_list is None:
with self.get_cursor(db) as cursor:
with (self.get_tree_cursor(db) if tree else
self.get_cursor(db)) as cursor:
for handle, data in cursor:
person = self.make_obj()
person.unserialize(data)
@@ -194,14 +200,17 @@ class GenericFilter:
user.end_progress()
return final_list
def check_or(self, db, id_list, user=None, tupleind=None):
return self.check_func(db, id_list, self.or_test, user, tupleind)
def check_or(self, db, id_list, user=None, tupleind=None, tree=False):
return self.check_func(db, id_list, self.or_test, user, tupleind,
tree=False)
def check_one(self, db, id_list, user=None, tupleind=None):
return self.check_func(db, id_list, self.one_test, user, tupleind)
def check_one(self, db, id_list, user=None, tupleind=None, tree=False):
return self.check_func(db, id_list, self.one_test, user, tupleind,
tree=False)
def check_xor(self, db, id_list, user=None, tupleind=None):
return self.check_func(db, id_list, self.xor_test, user, tupleind)
def check_xor(self, db, id_list, user=None, tupleind=None, tree=False):
return self.check_func(db, id_list, self.xor_test, user, tupleind,
tree=False)
def xor_test(self, db, person):
test = False
@@ -231,7 +240,7 @@ class GenericFilter:
def check(self, db, handle):
return self.get_check_func()(db, [handle])
def apply(self, db, id_list=None, tupleind=None, user=None):
def apply(self, db, id_list=None, tupleind=None, user=None, tree=False):
"""
Apply the filter using db.
If id_list given, the handles in id_list are used. If not given
@@ -251,7 +260,7 @@ class GenericFilter:
m = self.get_check_func()
for rule in self.flist:
rule.requestprepare(db, user)
res = m(db, id_list, user, tupleind)
res = m(db, id_list, user, tupleind, tree)
for rule in self.flist:
rule.requestreset()
return res
@@ -315,6 +324,9 @@ class GenericCitationFilter(GenericFilter):
def get_cursor(self, db):
return db.get_citation_cursor()
def get_tree_cursor(self, db):
return db.get_citation_cursor()
def make_obj(self):
return Citation()
@@ -332,6 +344,9 @@ class GenericPlaceFilter(GenericFilter):
def get_cursor(self, db):
return db.get_place_cursor()
def get_tree_cursor(self, db):
return db.get_place_tree_cursor()
def make_obj(self):
return Place()

@@ -48,12 +48,12 @@ class ChangedSinceBase(Rule):
Rule that checks for primary objects changed since a specific time.
"""
labels = [ 'Changed after:', 'but before:' ]
name = 'Objects changed after <date time>'
labels = [ 'Changed after:', 'but before:' ]
name = 'Objects changed after <date time>'
description = "Matches object records changed after a specified " \
"date/time (yyyy-mm-dd hh:mm:ss) or in range, if a second " \
"date/time is given."
category = _('General filters')
category = _('General filters')
def add_time(self, date):
if re.search(r"\d.*\s+\d{1,2}:\d{2}:\d{2}", date):

@@ -41,8 +41,8 @@ from . import Rule
class Everything(Rule):
"""Match Everyone."""
name = 'Every object'
category = _('General filters')
name = 'Every object'
category = _('General filters')
description = 'Matches every object in the database'
def is_empty(self):

@@ -2,6 +2,7 @@
# Gramps - a GTK+/GNOME based genealogy program
#
# Copyright (C) 2002-2006 Donald N. Allingham
# Copyright (C) 2019 Matthias Kemmer
#
# 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
@@ -34,6 +35,7 @@ _ = glocale.translation.gettext
from ...lib.attrtype import AttributeType
from . import Rule
#-------------------------------------------------------------------------
#
# HasAttribute
@@ -44,11 +46,11 @@ class HasAttributeBase(Rule):
Rule that checks for an object with a particular attribute.
"""
labels = [ 'Attribute:', 'Value:' ]
name = 'Objects with the <attribute>'
labels = ['Attribute:', 'Value:']
name = 'Objects with the <attribute>'
description = "Matches objects with the given attribute " \
"of a particular value"
category = _('General filters')
"of a particular value"
category = _('General filters')
allow_regex = True
def apply(self, db, obj):
@@ -60,5 +62,6 @@ class HasAttributeBase(Rule):
name_match = attr.get_type() == specified_type
if name_match:
return self.match_substring(1, attr.get_value())
if self.match_substring(1, attr.get_value()):
return True
return False

@@ -46,12 +46,12 @@ class HasCitationBase(Rule):
First parameter is [Volume/page, Date, Confidence]
"""
labels = [ _('Volume/Page:'),
labels = [ _('Volume/Page:'),
_('Date:'),
_('Confidence:') ]
name = _('Citations matching parameters')
name = _('Citations matching parameters')
description = _("Matches citations with particular parameters")
category = _('Citation/source filters')
category = _('Citation/source filters')
allow_regex = True
def prepare(self, db, user):

@@ -46,14 +46,14 @@ class HasEventBase(Rule):
"""Rule that checks for an event with a particular value."""
labels = [ 'Event type:',
labels = [ 'Event type:',
'Date:',
'Place:',
'Description:',
'Main Participants:' ]
name = 'Events matching parameters'
description = "Matches events with particular parameters"
category = _('Event filters')
name = 'Events matching parameters'
description = "Matches events with particular parameters"
category = _('Event filters')
allow_regex = True
def prepare(self, db, user):

@@ -42,10 +42,10 @@ from . import Rule
class HasGalleryBase(Rule):
"""Objects who have Media Object"""
labels = [ _('Number of instances:'), _('Number must be:')]
name = 'Object with <count> Media references'
labels = [ _('Number of instances:'), _('Number must be:')]
name = 'Object with <count> Media references'
description = "Matches objects with certain number of items in the gallery"
category = _('General filters')
category = _('General filters')
def prepare(self, db, user):
# things we want to do just once, not for every handle

@@ -42,10 +42,10 @@ from . import Rule
class HasGrampsId(Rule):
"""Rule that checks for an object with a specific Gramps ID."""
labels = [ _('ID:') ]
name = 'Object with <Id>'
labels = [ _('ID:') ]
name = 'Object with <Id>'
description = "Matches objects with a specified Gramps ID"
category = _('General filters')
category = _('General filters')
def apply(self, db, obj):
"""

@@ -45,10 +45,10 @@ from . import Rule
class HasLDSBase(Rule):
"""Rule that checks for object with a LDS event"""
labels = [ _('Number of instances:'), _('Number must be:')]
name = 'Objects with LDS events'
labels = [ _('Number of instances:'), _('Number must be:')]
name = 'Objects with LDS events'
description = "Matches objects with LDS events"
category = _('General filters')
category = _('General filters')
def prepare(self, db, user):
# things we want to do just once, not for every handle

@@ -43,10 +43,10 @@ from . import Rule
class HasNoteBase(Rule):
"""Objects having notes"""
labels = [ _('Number of instances:'), _('Number must be:')]
name = 'Object with notes'
labels = [ _('Number of instances:'), _('Number must be:')]
name = 'Object with notes'
description = "Matches objects that have a certain number of notes"
category = _('General filters')
category = _('General filters')
def __init__(self, arg, use_regex=False):
# Upgrade from pre 3.1 HasNote filter, use defaults that correspond

@@ -40,11 +40,11 @@ from . import Rule
class HasNoteRegexBase(Rule):
"""Objects having notes containing <text>."""
labels = [ _('Text:')]
name = 'Objects having notes containing <text>'
labels = [ _('Text:')]
name = 'Objects having notes containing <text>'
description = ("Matches objects whose notes contain a substring "
"or match a regular expression")
category = _('General filters')
category = _('General filters')
allow_regex = True
def apply(self, db, person):

@@ -39,11 +39,11 @@ from . import Rule
class HasNoteSubstrBase(Rule):
"""People having notes containing <substring>."""
labels = [ _('Substring:')]
name = 'Objects having notes containing <substring>'
labels = [ _('Substring:')]
name = 'Objects having notes containing <substring>'
description = "Matches objects whose notes contain text matching a " \
"substring"
category = _('General filters')
category = _('General filters')
def apply(self, db, person):
notelist = person.get_note_list()

@@ -39,10 +39,10 @@ from . import Rule
class HasReferenceCountBase(Rule):
"""Objects with a reference count of <count>."""
labels = [ _('Reference count must be:'), _('Reference count:')]
name = 'Objects with a reference count of <count>'
labels = [ _('Reference count must be:'), _('Reference count:')]
name = 'Objects with a reference count of <count>'
description = "Matches objects with a certain reference count"
category = _('General filters')
category = _('General filters')
def prepare(self, db, user):

@@ -43,13 +43,13 @@ class HasSourceBase(Rule):
"""Rule that checks for a source with a particular value"""
labels = [ 'Title:',
labels = [ 'Title:',
'Author:',
'Abbreviation:',
'Publication:' ]
name = 'Sources matching parameters'
name = 'Sources matching parameters'
description = "Matches sources with particular parameters"
category = _('Citation/source filters')
category = _('Citation/source filters')
allow_regex = True
def apply(self,db,source):

@@ -42,11 +42,11 @@ from . import Rule
class HasSourceCountBase(Rule):
"""Objects having sources"""
labels = [ _('Number of instances:'), _('Number must be:')]
name = 'Objects with <count> sources'
labels = [ _('Number of instances:'), _('Number must be:')]
name = 'Objects with <count> sources'
description = "Matches objects that have a certain number of sources " \
"connected to it (actually citations are counted)"
category = _('Citation/source filters')
category = _('Citation/source filters')
def prepare(self, db, user):
# things we want to do just once, not for every handle

@@ -42,9 +42,9 @@ from . import Rule
class HasSourceOfBase(Rule):
"""Rule that checks for objects that have a particular source."""
labels = [ _('Source ID:') ]
name = 'Object with the <source>'
category = _('Citation/source filters')
labels = [ _('Source ID:') ]
name = 'Object with the <source>'
category = _('Citation/source filters')
description = 'Matches objects who have a particular source'
def prepare(self, db, user):

@@ -46,10 +46,10 @@ class HasTagBase(Rule):
Rule that checks for an object with a particular tag.
"""
labels = [ 'Tag:' ]
name = 'Objects with the <tag>'
labels = [ 'Tag:' ]
name = 'Objects with the <tag>'
description = "Matches objects with the given tag"
category = _('General filters')
category = _('General filters')
def prepare(self, db, user):
"""

@@ -39,13 +39,13 @@ from . import Rule
class HasTextMatchingSubstringOf(Rule):
"""Rule that checks for string matches in any textual information."""
labels = [ 'Substring:',
labels = [ 'Substring:',
'Case sensitive:',
'Regular-Expression matching:']
name = 'Objects with records containing <substring>'
name = 'Objects with records containing <substring>'
description = "Matches objects whose records contain text " \
"matching a substring"
category = _('General filters')
category = _('General filters')
# FIXME: This needs to be written for an arbitrary object
# if possible

@@ -37,9 +37,9 @@ from . import Rule
class IsPrivate(Rule):
"""Objects marked private."""
name = 'Objects marked private'
name = 'Objects marked private'
description = "Matches objects that are indicated as private"
category = _('General filters')
category = _('General filters')
def apply(self, db, obj):
return obj.get_privacy()

@@ -34,9 +34,9 @@ _ = glocale.translation.gettext
class IsPublic(Rule):
"""Objects not marked private."""
name = 'Objects not marked private'
name = 'Objects not marked private'
description = "Matches objects that are not indicated as private"
category = _('General filters')
category = _('General filters')
def apply(self, db, obj):
return not obj.get_privacy()

@@ -47,14 +47,14 @@ class MatchesEventFilterBase(MatchesFilterBase):
"""
labels = ['Event filter name:']
name = 'Objects with events matching the <event filter>'
labels = ['Event filter name:']
name = 'Objects with events matching the <event filter>'
description = "Matches objects who have events that match a certain" \
" event filter"
category = _('General filters')
category = _('General filters')
# we want to have this filter show event filters
namespace = 'Event'
namespace = 'Event'
def prepare(self, db, user):
MatchesFilterBase.prepare(self, db, user)

@@ -51,10 +51,10 @@ class MatchesFilterBase(Rule):
Subclasses need to define the namespace class attribute.
"""
labels = [_('Filter name:')]
name = 'Objects matching the <filter>'
labels = [_('Filter name:')]
name = 'Objects matching the <filter>'
description = "Matches objects matched by the specified filter name"
category = _('General filters')
category = _('General filters')
def prepare(self, db, user):
if gramps.gen.filters.CustomFilters:

@@ -44,10 +44,10 @@ from . import Rule
class MatchesSourceConfidenceBase(Rule):
"""Objects with a specific confidence level on 'direct' Source references"""
labels = ['Confidence level:']
name = 'Object with at least one direct source >= <confidence level>'
labels = ['Confidence level:']
name = 'Object with at least one direct source >= <confidence level>'
description = "Matches objects with at least one direct source with confidence level(s)"
category = _('Citation/source filters')
category = _('Citation/source filters')
def apply(self, db, obj):
required_conf = int(self.list[0])

@@ -44,14 +44,14 @@ class MatchesSourceFilterBase(MatchesFilterBase):
Rule that checks against another filter.
"""
labels = [_('Source filter name:')]
name = 'Objects with source matching the <source filter>'
labels = [_('Source filter name:')]
name = 'Objects with source matching the <source filter>'
description = "Matches objects with sources that match the " \
"specified source filter name"
category = _('Citation/source filters')
category = _('Citation/source filters')
# we want to have this filter show source filters
namespace = 'Source'
namespace = 'Source'
def prepare(self, db, user):
MatchesFilterBase.prepare(self, db, user)

@@ -45,11 +45,11 @@ class RegExpIdBase(Rule):
regular expression.
"""
labels = [ _('Text:') ]
name = 'Objects with <Id>'
labels = [ _('Text:') ]
name = 'Objects with <Id>'
description = "Matches objects whose Gramps ID contains a substring " \
"or matches a regular expression"
category = _('General filters')
category = _('General filters')
allow_regex = True
def apply(self, db, obj):

@@ -50,9 +50,9 @@ LOG = logging.getLogger(".")
class Rule:
"""Base rule class."""
labels = []
name = ''
category = _('Miscellaneous filters')
labels = []
name = ''
category = _('Miscellaneous filters')
description = _('No description')
allow_regex = False
@@ -141,8 +141,10 @@ class Rule:
def display_values(self):
"""Return the labels and values of this rule."""
l_v = ( '%s="%s"' % (_(self.labels[ix]), self.list[ix])
for ix in range(len(self.list)) if self.list[ix] )
l_v = ('%s="%s"' % (_(self.labels[ix][0] if
isinstance(self.labels[ix], tuple) else
self.labels[ix]), self.list[ix])
for ix in range(len(self.list)) if self.list[ix])
return ';'.join(l_v)

@@ -42,5 +42,5 @@ from .._everything import Everything
class AllCitations(Everything):
"""Matches every citation"""
name = _('Every citation')
name = _('Every citation')
description = _('Matches every citation in the database')

@@ -42,8 +42,8 @@ from .._changedsincebase import ChangedSinceBase
class ChangedSince(ChangedSinceBase):
"""Rule that checks for citations changed since a specific time."""
labels = [ _('Changed after:'), _('but before:') ]
name = _('Citations changed after <date time>')
labels = [ _('Changed after:'), _('but before:') ]
name = _('Citations changed after <date time>')
description = _("Matches citation records changed after a specified "
"date-time (yyyy-mm-dd hh:mm:ss) or in the range, if a second "
"date-time is given.")

@@ -40,5 +40,5 @@ from .._isprivate import IsPrivate
class CitationPrivate(IsPrivate):
"""Citation marked private"""
name = _('Citations marked private')
name = _('Citations marked private')
description = _("Matches citations that are indicated as private")

@@ -45,11 +45,11 @@ from ....datehandler import parser
class HasCitation(Rule):
"""Rule that checks for a citations with a particular value"""
labels = [ _('Volume/Page:'),
labels = [ _('Volume/Page:'),
_('Date:'),
_('Confidence level:')]
name = _('Citations matching parameters')
category = _('General filters')
name = _('Citations matching parameters')
category = _('General filters')
description = _("Matches citations with particular parameters")
allow_regex = True

@@ -42,5 +42,5 @@ from .._hasgallerybase import HasGalleryBase
class HasGallery(HasGalleryBase):
"""Rule that checks for citation who has media object reference"""
name = _('Citations with <count> media')
name = _('Citations with <count> media')
description = _("Matches citations with a certain number of items in the gallery")

@@ -42,5 +42,5 @@ from .. import HasGrampsId
class HasIdOf(HasGrampsId):
"""Rule that checks for a citation with a specific Gramps ID"""
name = _('Citation with <Id>')
name = _('Citation with <Id>')
description = _("Matches a citation with a specified Gramps ID")

@@ -43,5 +43,5 @@ from .._hasnotebase import HasNoteBase
class HasNote(HasNoteBase):
"""Citations having notes"""
name = _('Citations having <count> notes')
name = _('Citations having <count> notes')
description = _("Matches citations having a certain number of notes")

@@ -40,7 +40,7 @@ from .._hasnotesubstrbase import HasNoteSubstrBase
class HasNoteMatchingSubstringOf(HasNoteSubstrBase):
"""Citations having notes containing <substring>"""
name = _('Citations having notes containing <substring>')
name = _('Citations having notes containing <substring>')
description = _("Matches citations whose notes contain text "
"matching a substring")

@@ -39,6 +39,6 @@ from .._hasnoteregexbase import HasNoteRegexBase
#-------------------------------------------------------------------------
class HasNoteRegexp(HasNoteRegexBase):
name = _('Citations having notes containing <text>')
name = _('Citations having notes containing <text>')
description = _("Matches citations whose notes contain text "
"matching a regular expression")

@@ -40,6 +40,6 @@ from .._hasreferencecountbase import HasReferenceCountBase
class HasReferenceCountOf(HasReferenceCountBase):
"""Citation objects with a reference count of <count>"""
name = _('Citations with a reference count of <count>')
name = _('Citations with a reference count of <count>')
description = _("Matches citations with a certain reference count")

@@ -45,14 +45,14 @@ from .._hassourcebase import HasSourceBase
class HasSource(HasSourceBase):
"""Rule that checks for an citation with a particular value"""
labels = [ _('Title:'),
labels = [ _('Title:'),
_('Author:'),
_('Abbreviation:'),
_('Publication:') ]
name = _('Sources matching parameters')
name = _('Sources matching parameters')
description = _("Matches citations with a source of a particular "
"value")
category = _('Source filters')
category = _('Source filters')
def apply(self, dbase, citation):
source = dbase.get_source_from_handle(

@@ -43,10 +43,10 @@ class HasSourceIdOf(HasGrampsId):
"""Rule that checks for a citation with a source which has a specific
Gramps ID"""
name = _('Citation with Source <Id>')
name = _('Citation with Source <Id>')
description = _("Matches a citation with a source with a specified Gramps "
"ID")
category = _('Source filters')
category = _('Source filters')
def apply(self, dbase, citation):
source = dbase.get_source_from_handle(

@@ -49,10 +49,10 @@ class HasSourceNoteRegexp(HasNoteRegexBase):
substring or matches a regular expression.
"""
name = _('Citations having source notes containing <text>')
name = _('Citations having source notes containing <text>')
description = _("Matches citations whose source notes contain a substring "
"or match a regular expression")
category = _('Source filters')
category = _('Source filters')
def apply(self, db, citation):
source = db.get_source_from_handle(citation.get_reference_handle())

@@ -45,6 +45,6 @@ class HasTag(HasTagBase):
"""
Rule that checks for a citation with a particular tag.
"""
labels = [ _('Tag:') ]
name = _('Citations with the <tag>')
labels = [ _('Tag:') ]
name = _('Citations with the <tag>')
description = _("Matches citations with the particular tag")

Some files were not shown because too many files have changed in this diff Show More