Compare commits

..

482 Commits

Author SHA1 Message Date
romjerome
96e715df2b fix trailing whitespace
https://github.com/gramps-project/gramps/pull/966#issuecomment-569182132
thanks!
2019-12-29 14:59:57 +01:00
romjerome
0120572a7a Wrong continued indentation 2019-12-14 18:48:56 +01:00
romjerome
ea58544530 Trailing whitespace 2019-12-14 18:47:46 +01:00
romjerome
c36b6c20c1 options for including occupation data 2019-12-10 16:18:01 +01:00
Paulo Henrique Moraes
fc9e5c2a4a Updated translation. () 2019-11-27 11:51:50 -06:00
prculley
e3eedb2219 Merge branch 'gramps51' 2019-11-08 11:46:40 -06: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
Nick Hall
f5861169fe Merge pull request from SNoiraud:FR11336
New narrative web and web calendar features:

* Allow urls in the user's css files
* Allow alternate stylesheets in pages for narrative web and webcal
* Webcal: incorrect results when divorce event.
* Some pylint improvements

Resolves .
2019-10-05 18:10:45 +01:00
SNoiraud
4e2f98da02 Better score for pylint 2019-10-05 18:05:21 +01:00
SNoiraud
95a0216287 Duplicate marriage 2019-10-05 18:05:21 +01:00
SNoiraud
03fb2ff1c2 Incorrect results when divorce event 2019-10-05 18:05:15 +01:00
SNoiraud
17141a0536 Add alternate stylesheets 2019-10-05 18:03:03 +01:00
SNoiraud
528852b9b3 Allow alternate stylesheets in pages
Useful when you create a site web, you don't need to create a new
web when you are testing the stylesheets. The final user can change
the stylesheet for the current page.

i.e. on Firefox: View -> Page style -> The stylesheet
2019-10-05 18:02:51 +01:00
SNoiraud
0de286e7a8 Allow urls for images in user css files 2019-10-05 17:59:17 +01:00
SNoiraud
7979bf79fd Better code quality for within area rule 2019-10-05 17:28:21 +01:00
Nick Hall
7100c51a31 Merge pull request from prculley:deprecations 2019-10-05 17:22:19 +01:00
prculley
57f7502105 Fix deprecation of Gtk positional arguments 2019-10-05 17:17:54 +01:00
prculley
0f925a86f5 Fix Gtk deprecation Menu.set_title 2019-10-05 17:17:54 +01:00
prculley
17f4d93363 Fix Gtk deprecatioon ScrolledWindow.add_with_viewport 2019-10-05 17:17:54 +01:00
prculley
cea48b618f Fix GObject.PARAM_READWRITE deprecation 2019-10-05 17:17:54 +01:00
prculley
290d6f7287 Fix deprecation GObject.GError -> GLib.GError 2019-10-05 17:17:54 +01:00
prculley
4d0e86a2e8 Fix Gtk deprecation Widget.reparent 2019-10-05 17:17:54 +01:00
prculley
831c7f9c66 Fix Gtk deprecation Widget.set_padding 2019-10-05 17:17:54 +01:00
prculley
702e51dd47 Fix deprecation on Gtk.Widget.override_font and modify_font 2019-10-05 17:17:54 +01:00
Jonas Hahnfeld
f3555d0168 Add new graph output format to the tree document generator
The "graph" is the data part for genealogytree without the boilerplate
code around it that makes up a full LaTeX file. This format is useful
for people who have their own (more sophisticated) LaTeX file with
custom styles and so on.
The implementation is pretty straight-forward: Just don't output the
LaTeX code.
2019-10-05 17:05:38 +01:00
niememat
ecd6da40dd Fix translation in Finnish 2019-10-05 12:30:46 +03:00
Matthias Kemmer
bedc4b8e74 Add a new person filter rule 'HasAddressText' 2019-10-04 21:07:52 +01:00
Matthias Kemmer
8a8a21f85d Add date format option for 'numeric date with leading zeros' 2019-10-04 19:59:54 +01:00
Nick Hall
c7350c53e2 Remove irrelevant comment 2019-10-04 19:54:00 +01:00
Fredrik Lindseth
52e76b506a Add descriptions to decendant tree report styles 2019-10-04 19:18:16 +01:00
Matthias Kemmer
ab52d0988e Remove tag from selected rows 2019-10-03 21:28:33 +01:00
Matthias Kemmer
5935a315b2 Add 'HasAttribute' filter rule to repositories, sources and citations
Fixes 
2019-10-03 21:05:14 +01: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
prculley
1eaa609058 Get BetaWarning correct for master 2019-09-16 11:13:08 -05:00
prculley
5f0c2c1c54 Set Beta warning to True 2019-09-16 11:02:03 -05:00
prculley
6d39920e6f Merge branch 'gramps51' 2019-09-16 10:54:55 -05: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
prculley
4859c14aaa Fix typo in merge 2019-08-12 16:58:55 -05: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
f4a8f21032 Merge from gramps51 2019-08-09 09:06:42 -05:00
prculley
e894c4478f Some pylint cleanups 2019-08-09 08:55:05 -05: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
romjerome
56afb5bca9 Add missing 'get_number_of_citations' method ()
* Add missing 'get_number_of_citations' method

* update db test for bsddb

* fix trailing whitespace

* typo
2019-08-07 13:47:09 -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
SNoiraud
9da8f705f6 Narrative web: Add popup to manage markers
If you click on a marker in the family map page, you get a popup.
In this popup associated with a place, if you have several events,
for each event you see the person and the event type.
If you click on the person, you go to the related page for this person.
If you click on the event type, you go to the related page for this event.

Fixes 
2019-07-07 19:25:42 +02:00
SNoiraud
ce4cd33139 Narrative web: Add Stamen map
Fixes 
2019-07-07 19:24:44 +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
691 changed files with 335139 additions and 245860 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
__init__.py_changedsince.py_deeprelationshippathbetween.py_disconnected.py_everyone.py_familywithincompleteevent.py_hasaddress.py_hasaddresstext.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.py
logger
makefilter.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

933
ChangeLog

@@ -1,746 +1,277 @@
2018-12-20 Paul Culley <paulr2787@gmail.com>
2019-09-14 SNoiraud <Serge.Noiraud@free.fr>
* gramps/gui/configure.py, gramps/gui/display.py,
gramps/gui/glade/book.glade, gramps/gui/glade/styleeditor.glade,
gramps/gui/plug/report/_bookdialog.py,
gramps/gui/plug/report/_styleeditor.py,
gramps/gui/selectors/selectperson.py,
gramps/gui/selectors/selectrepository.py,
gramps/gui/widgets/grampletpane.py,
gramps/gui/widgets/reorderfam.py,
gramps/plugins/tool/mediamanager.py,
gramps/plugins/tool/relcalc.glade, gramps/plugins/tool/relcalc.py,
po/ar.po, po/bg.po, po/br.po, po/ca.po, po/cs.po, po/da.po,
po/de.po, po/el.po, po/en_GB.po, po/eo.po, po/es.po, po/fi.po,
po/fr.po, po/ga.po, po/gramps.pot, po/he.po, po/hr.po, po/hu.po,
po/is.po, po/it.po, po/ja.po, po/lt.po, po/mk.po, po/nb.po,
po/nl.po, po/nn.po, po/pl.po, po/pt_BR.po, po/pt_PT.po, po/ro.po,
po/ru.po, po/sk.po, po/sl.po, po/sq.po, po/sr.po, po/sr_Latn.po,
po/sv.po, po/ta.po, po/tr.po, po/uk.po, po/vi.po, po/zh_CN.po,
po/zh_HK.po, po/zh_TW.po: Help issues for bug 9042 (#738) * Media Manager: add help button and remove '...' Issue #9042 * Edit/Preferences: add Help button Issue #9042 * Style Editor, Document Styles dialog: add help buttons Issue #9042 * Fix Select Person dialog Help button URL Issue #9042 * Fix Select Repository dialog Help button URL Issue #9042 * Relationship Calculator: Add help button Issue #9042 * Reorder Relationships dialog; add Help button Issue #9042 * Generate Book Dialog; Fix Help URL Issue #9042 * Manage Book dialog; add help button Issue #9042 * Fix Detached Gramplets Help button URL when 'help_url' not in .gpr Issue #9042 * Fix help URLs when they contain illegal characters and to match
wiki section targetID algorithm Issue #9042
* gramps/gen/filters/rules/place/_withinarea.py: Fix deprecation
warning in withinarea rule
2018-12-20 prculley <paulr2787@gmail.com>
2019-09-14 Nick Hall <nick-h@gramps-project.org>
* po/hu.po: Updated Hungarian translation
* gramps/gui/grampsgui.py: Disable development warning message
2018-12-20 milotype <43657314+milotype@users.noreply.github.com>
2019-09-13 Jonas Hahnfeld <hahnjo@hahnjo.de>
* gramps/gen/datehandler/_date_hr.py, po/hr.po: Croatian
localisation updates (#741) * Update/Completion Croatian translation This is a big update. The croatian translation is now 100% complete.
Translated all missing strings, made lots of corrections, improved
consistency in the wording, tested thoroughly. Also, it will work
with the updated datehandler file "_date_hr.py", which i'll be
updating simultaneously. * Croatian Datehandler update Made changes to fit croatian specific date handling. Also because
i've updated the hr.po file. I've tested it with the present
"_datedisplay.py" of the maintainance/gramps50 branch. Basically it would be great, if next to the obligatory "display_iso"
format, only two more formats would show up in the croatian
drop-down menus: "dd_dformat01" (numerical) and "dd_dformat04".
Other formats are unneeded. 9. 5. 2018. => ordinal numbers, all separated by spaces 9. svibnja 2018. => ordinal numbers and genitiv month's form, all
separated by spaces
* gramps/gen/plug/docgen/treedoc.py: Add options to sandclock in
tree document generator This works and is actually needed to style the root node.
2018-12-20 Nick Hall <nick-h@gramps-project.org>
2019-09-11 SNoiraud <Serge.Noiraud@free.fr>
* gramps/gen/db/generic.py: Fix contents of enclosed_by secondary
dbapi column (#742) The enclosed_by column should contain the first value in the list
instead of the last. Resolves #10907.
* gramps/gui/filters/sidebar/_personsidebarfilter.py: Using regex in
the sidebar gives different result from previous gramps release. Fixes #11321
2018-12-18 Leonhaeuser <mirko@leonhaeuser.de>
2019-09-12 J<EFBFBD>r<EFBFBD>me Rapinat <romjerome@yahoo.fr>
* po/de.po: update German translation
* po/fr.po: Add missing French translation strings
2018-12-15 SNoiraud <serge.noiraud@laposte.net>
2019-09-10 Gil da Costa <gdacosta@sommier-colas.fr>
* gramps/plugins/mapservices/googlemap.py: Google maps URL problem Fixes #10772
* po/fr.po: Update French translation
2018-12-09 prculley <paulr2787@gmail.com>
2019-09-09 prculley <paulr2787@gmail.com>
* gramps/gen/plug/docbackend/docbackend.py: Fix ODT reports with
links when run in non-English languages Fixes #10911
* gramps/plugins/docgen/odfdoc.py: Fix odt output when db owner has
XML unfriendly chars ('&') Fixes #11327
2018-12-06 prculley <paulr2787@gmail.com>
2019-09-11 John Bickmore <johnbickmore@users.noreply.github.com>
* gramps/gui/plug/report/_reportdialog.py: Allow addon Reports to
specify a help button URL for options dialog Fixes #10910
* README.md: Bump required Python version to 3.3 on Readme As mentioned on the release announcement
2018-12-01 Nick Hall <nick-h@gramps-project.org>
https://gramps-project.org/introduction-WP/2019/08/gramps-5-1-0-released/
* gramps/plugins/db/dbapi/dbapi.py, gramps/plugins/tool/rebuild.py:
Fix Rebuild Secondary Indexes tool for dbapi backends For dbapi backends, this tool will update the secondary columns that
are used for indexing. Resolves #10757.
2019-09-08 SNoiraud <Serge.Noiraud@free.fr>
2018-11-15 prculley <paulr2787@gmail.com>
* gramps/plugins/webreport/narrativeweb.py: Remove
reload_custom_filters to conform to PR894
* gramps/plugins/db/dbapi/dbapi.py: Fix dbapi set_name_group_mapping
to properly close transaction Fixes #10730
2019-09-07 prculley <paulr2787@gmail.com>
2018-10-24 prculley <paulr2787@gmail.com>
* gramps/cli/grampscli.py: Fix CLI crash when generating reports Fixes #11318, #11213
* gramps/gen/datehandler/_date_ru.py: Fix Russian date handler crash
when Russian .po isn't present Fixes #10855
2019-09-06 prculley <paulr2787@gmail.com>
2018-12-04 Leonhaeuser <mirko@leonhaeuser.de>
* gramps/gui/views/listview.py: Fix Statusbar HandleError on merge
families Fixes #11320, #11294, #11279
* po/de.po: update German translation
2019-09-12 Avi Markovitz <avi.markovitz@gmail.com>
2018-12-04 vantu5z <vantu5z@mail.ru>
* po/he.po: Update Hebrew translation
* po/ru.po: update Russian translation
2019-09-12 Matti Niemel<65> <matti.u.niemela@gmail.com>
2018-11-29 niememat <niememat@gmail.com>
* po/fi.po: Fix translation in Finnish
2019-09-12 Matti Niemel<65> <matti.u.niemela@gmail.com>
* po/fi.po: Update finnish translation
2018-11-28 Paul Culley <paulr2787@gmail.com>
2019-09-11 vantu5z <vantu5z@mail.ru>
* gramps/gui/plug/quick/_quicktable.py: Fix Quickview for missing
table data on some Gtk Versions (#593) Issue #10448 Issue #7867
* po/ru.po: update Russian translation
2018-11-28 Paul Culley <paulr2787@gmail.com>
* gramps/cli/arghandler.py, gramps/gui/grampsgui.py: Fix startup
messages with bad filename (#720) Fixes #10885
2018-11-28 Paul Culley <paulr2787@gmail.com>
* gramps/gui/selectors/selectplace.py,
gramps/gui/views/treemodels/placemodel.py,
gramps/plugins/lib/libplaceview.py: Restrict Place view Name col to
the primary name (#673) while allowing searchbar to find alt and primary names related to Issue #9276 while allowing searchbar to find alt and primary names. Currently, the Place View and Place Selector name column shows a
comma separated list of the primary and alt names for a place. With
the advent of GeoNames and Gov data, the alt names lists are getting
populated with (sometimes long) lists of (sometimes duplicated)
names. This doesn't look very good in the view. I've gotten a couple
of email complaints about this. The Name column was originally extended (for Gramps50) to include
alt names to allow the use of the top search bar (enabled when
sidebar is turned off via 'View/Sidebar'), to perform a search
through all the alt names as well as primary name.
https://gramps-project.org/bugs/view.php?id=9276 This PR creates a new (hidden) column in the place model containing
the full name list, and reverts the 'Name' column to the primary
name. It also modifies the PlaceSelector and PlaceView classes to
cause the search bar to use the new (hidden) column.
2018-11-28 Paul Culley <paulr2787@gmail.com>
* gramps/gui/filters/sidebar/_personsidebarfilter.py: Fix Person
Sidebarfilter when using 'Event' and Reg expressions (#729) Fixes #10659
2018-11-28 Paul Culley <paulr2787@gmail.com>
* gramps/plugins/tool/finddupes.py: Fix Find Duplicate People;
exception when deleting someone shown (#728) outside of the tool Fixes #10875
2018-11-28 Paul Culley <paulr2787@gmail.com>
* data/tests/exp_sample_ged.ged,
gramps/plugins/export/exportgedcom.py,
gramps/plugins/test/exports_test.py: Gedcom export, upgrade OBJE
handling to Gedcom 5.5.1 style (#702) Fixes #10797
2018-11-28 Paul Culley <paulr2787@gmail.com>
* data/tests/imp_sample_csv.gramps,
gramps/plugins/importer/importcsv.py: Fix CSV import to set marriage
event role to family (#725) Fixes #9952
2018-11-28 Paul Culley <paulr2787@gmail.com>
* data/tips.xml.in, po/ar.po, po/bg.po, po/br.po, po/ca.po,
po/cs.po, po/da.po, po/de.po, po/el.po, po/en_GB.po, po/eo.po,
po/es.po, po/fi.po, po/fr.po, po/ga.po, po/gramps.pot, po/he.po,
po/hr.po, po/hu.po, po/is.po, po/it.po, po/ja.po, po/lt.po,
po/mk.po, po/nb.po, po/nl.po, po/nn.po, po/pl.po, po/pt_BR.po,
po/pt_PT.po, po/ro.po, po/ru.po, po/sk.po, po/sl.po, po/sq.po,
po/sr.po, po/sr_Latn.po, po/sv.po, po/ta.po, po/tr.po, po/uk.po,
po/vi.po, po/zh_CN.po, po/zh_HK.po, po/zh_TW.po: Update gramps
bugtracker URL in all po files (#710) Fixes #10543
2018-11-28 Serge Noiraud <Serge.Noiraud@laposte.net>
* data/css/Web_Basic-Ash.css, data/css/Web_Basic-Blue.css,
data/css/Web_Basic-Cypress.css, data/css/Web_Basic-Lilac.css,
data/css/Web_Basic-Peach.css, data/css/Web_Basic-Spruce.css,
data/css/Web_Mainz.css, data/css/Web_Nebraska.css: Narrative Web :
thumbnails bad alignment. (#691) * Narrative Web : thumbnails bad alignment. Fixes #10854 also solves the following problems in the Nebraska style sheet : 1 - float parameter has no value "center" 2 - "[" instead of ";" at end of line 1100 * overlapping with long titles
2018-11-28 Paul Culley <paulr2787@gmail.com>
* gramps/gui/views/treemodels/citationlistmodel.py: Fix typo in
CitationListModel for sort change (#730)
2018-11-28 Serge Noiraud <Serge.Noiraud@laposte.net>
* gramps/plugins/gramplet/todo.py: Fix Adding "ToDo" note crash when
no active object (#685) * Fix Adding "ToDo" note crash when no active object Fixes #10795 * Better message when no active object. * resolve conflict: Fixes #10795
2018-11-28 Paul Culley <paulr2787@gmail.com>
* gramps/gui/views/treemodels/citationbasemodel.py,
gramps/gui/views/treemodels/citationlistmodel.py: Fix Citation List
view Source Last Changed Column to sort properly (#723) Fixes #10893
2018-11-28 pmraps <43935667+pmraps@users.noreply.github.com>
* po/pt_PT.po: some pt_PT.po translation changes (#703) * some header changes * more changes
2018-11-28 Paul Culley <paulr2787@gmail.com>
* gramps/gui/viewmanager.py: Fix for re-entrant main window close
when user hits 'x' again (#724) Fixes #10897
2018-11-28 Paul Culley <paulr2787@gmail.com>
* gramps/gui/managedwindow.py: Fix exception when closing early
editor in tree of editors (#706) Fixes #10876
2018-11-28 Serge Noiraud <Serge.Noiraud@laposte.net>
* gramps/plugins/webreport/basepage.py: Narrative Web: thumbnails
problems in some cases. (#722) Fixes #10890
2018-11-27 Paul Culley <paulr2787@gmail.com>
* gramps/gui/plug/report/_bookdialog.py: Fix 'Generate Book' dialog
for crash on 'x' close (#726) Fixes #10901
2018-11-27 Paul Culley <paulr2787@gmail.com>
* gramps/plugins/gramplet/todo.py: Fix ToDo Gramplet for multiple
attempts to edit a note (#719) Fixes #10645
2018-11-27 Paul Culley <paulr2787@gmail.com>
* gramps/gui/widgets/grampletpane.py: Fix Dashboard for multiple
copies of a Gramplet (#718) * Fix Dashboard for multiple copies of a Gramplet Fixes #10650 * Fix Dashboard to recall minimized or undocked Gramplets
2018-11-27 Paul Culley <paulr2787@gmail.com>
* gramps/gui/displaystate.py: Fix Statusbar update to avoid
intermittent exception on closed db (#716) Fixes #10882
2018-11-27 Paul Culley <paulr2787@gmail.com>
* gramps/gen/filters/_filterparser.py: Fix FilterParser for much
older 3.x custom_filters.xml files (#715) Fixes #8075 Fixes #10669 Fixes #10516
2018-11-27 Paul Culley <paulr2787@gmail.com>
* gramps/gen/filters/rules/person/_isduplicatedancestorof.py: Fix
IsDuplicatedAncestorOf filter rule to avoid crash on tree loop
(#714) Fixes #10685
2018-11-28 Serge Noiraud <Serge.Noiraud@laposte.net>
* gramps/plugins/webreport/person.py,
gramps/plugins/webreport/place.py: Narrative web : use latest
version from openlayers. (#713) Fixes #10884
2018-11-27 Paul Culley <paulr2787@gmail.com>
* gramps/gui/editors/editlink.py: Fix StyledTextEditor EditLink for
root text changed to zero length (#709) in the background Fixes #9750
2018-11-27 Paul Culley <paulr2787@gmail.com>
* gramps/gen/simple/_simpleaccess.py: Fix AgeOnDate and some reports
using SimpleAccess for missing surname (#708) Fixes #9958 Fixes #9800
2018-11-27 Paul Culley <paulr2787@gmail.com>
* gramps/gen/filters/rules/_rule.py: Fix crash when a filter with
loop in definition is defined (#707) Fixes #10621
2018-11-27 Paul Culley <paulr2787@gmail.com>
* gramps/gen/proxy/referencedbyselection.py,
gramps/plugins/gramplet/citations.py: Fix HandleErrors related to
LDS (#697) * Fix ReferencedBySelection proxy for 'None' LDS Parents Fixes #10865 * Fix HandleError in Citations Gramplet for lds place missing
2018-11-27 Paul Culley <paulr2787@gmail.com>
* gramps/plugins/lib/libplaceview.py: Change PlaceView drag from
whole row to just icon during drag (#695) Fixes #10863
2018-11-27 Paul Culley <paulr2787@gmail.com>
* gramps/gui/editors/displaytabs/embeddedlist.py: Add drag Icon to
drags from DisplayTabs Gramplet lists (#694) Fixes #10859
2018-11-27 Paul Culley <paulr2787@gmail.com>
* gramps/gui/glade/baseselector.glade,
gramps/gui/glade/dbman.glade,
gramps/gui/plug/report/_bookdialog.py,
gramps/gui/selectors/baseselector.py,
gramps/gui/selectors/selectcitation.py,
gramps/gui/selectors/selectevent.py,
gramps/gui/selectors/selectfamily.py,
gramps/gui/selectors/selectnote.py,
gramps/gui/selectors/selectobject.py,
gramps/gui/selectors/selectperson.py,
gramps/gui/selectors/selectplace.py,
gramps/gui/selectors/selectrepository.py,
gramps/gui/selectors/selectsource.py,
gramps/plugins/tool/testcasegenerator.py: Fix dialogs for 'Help'
button closes the dialog, and non-functional 'Help' (#727) * Fix Family Tree manager for 'Help' button closes dialog Fixes #10589 * Fix selectors for 'Help' button closes dialog Fixes #10589 * Fix 'Generate Book' dialog for 'Help' button closes dialog Fixes #10589 * Fix TestcaseGenerator for 'Help' button closes dialog Fixes #10589 * Fix Selectors to enable the 'Help' buttons to actually work Fixes #10589
2018-10-26 prculley <paulr2787@gmail.com>
* gramps/gui/editors/editfamily.py: Avoid HandleError when dragging
an Added Family from EditFamily Fixes #10858
2018-10-26 prculley <paulr2787@gmail.com>
* gramps/gui/editors/editperson.py: Avoid HandleError when dragging
an Added Person from EditPerson Fixes #10857
2018-10-20 prculley <paulr2787@gmail.com>
* gramps/gui/clipboard.py: Fix Clipboard rows cannot be sorted via
drag/drop Fixes #10849
2018-10-19 prculley <paulr2787@gmail.com>
* gramps/gen/config.py, gramps/gui/dbloader.py,
gramps/gui/plug/export/_exportassistant.py,
gramps/gui/views/listview.py: Better default directory choices for
import/export Use recent-export-dir as default for Export View instead of the
console default directory, which can be where program resides (on
Windows), or other inappropriate place. Use USER_HOME for default directory on 'Export' (recent-export-dir)
if first run (default settings) rather than default directory, which
can be where program resides (on Windows), or other inappropriate
place. Use USER_HOME for default directory on 'Import' (recent-import-dir)
if first run (default settings) rather than recent file which is
generally set to the grampsdb path. Fixes #10802
2018-10-16 SNoiraud <serge.noiraud@laposte.net>
* gramps/plugins/docgen/htmldoc.py: Records Report: call name not
underlined in HTML Fixes #10816
2018-11-20 Christophe <khrys63@gmail.com>
* po/fr.po: Fix French translation
2018-10-14 prculley <paulr2787@gmail.com>
* gramps/gui/widgets/interactivesearchbox.py: Fix InteractiveSearch
for find before model is populated Fixes #10844
2018-10-07 prculley <paulr2787@gmail.com>
* gramps/plugins/export/exportgedcom.py: Fix Gedcom export for
incorrect escaping with @#DFRENCH R@ Fixes #10833
2018-10-06 prculley <paulr2787@gmail.com>
* gramps/plugins/textreport/detancestralreport.py,
gramps/plugins/textreport/detdescendantreport.py,
gramps/plugins/textreport/indivcomplete.py,
gramps/plugins/webreport/basepage.py: Fix reports for shared event
attribute and note errors Fixes #10720
2018-10-02 prculley <paulr2787@gmail.com>
* gramps/gui/widgets/fanchart.py,
gramps/gui/widgets/fanchartdesc.py: Fix Fan and Descendant Fan
charts in Quadrant and Half Circle modes The Descendant Fan chart
had several bugs: 1) a bug that affected the centering of the chart for these modes 2) the chart was drawn in the wrong quadrant 3) the centering of the chart for printing was incorrect (the legend was off the page some of the time). 4) the sizing of the chart for printing was incorrect (for very small charts of one generation, the legend would overwrite the chart). The Fan Chart for the quadrant view: 1) the centering of the chart for printing was incorrect (the legend was off the page some of the time). Fixes #10817
2018-09-30 Robin van der Vliet <info@robinvandervliet.com>
* gramps/plugins/rel/rel_nl.py: Fixed issues in the Dutch
relationship calculator Fixed some issues in the Dutch relationship calculator and also
extended the ordinal and removed lists till 50, just like the
English lists. * Replaced huge lists by reusable lists. * Fixed bug in which uncles/aunts, nephews/nieces (niblings), siblings and cousins with an unknown gender show up as female. * Fixed some misspellings: drieëntwingste > drieëntwinTIgste vierentwingste > vierentwinTIgste edelovergrootOUD > edelovergroot edeloudvergroot > edeloudOvergroot
2018-11-15 P<>r Ekholm <pelle.ekh@koping.net>
2019-09-10 pehlm <par.ekholm@pekholm.org>
* po/sv.po: Update Swedish translation
2018-11-18 niememat <niememat@gmail.com>
2019-09-10 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* po/fi.po: Fix translation in Finnish
* po/de.po: Update German translation
2018-11-10 niememat <niememat@gmail.com>
2019-09-10 Nick Hall <nick-h@gramps-project.org>
* po/fi.po: Update finnish translation
* po/ar.po, po/bg.po, po/br.po, po/ca.po, po/cs.po, po/da.po,
po/de.po, po/el.po, po/en_GB.po, po/eo.po, po/es.po, po/fi.po,
po/fr.po, po/ga.po, po/he.po, po/hr.po, po/hu.po, po/is.po,
po/it.po, po/ja.po, po/lt.po, po/mk.po, po/nb.po, po/nl.po,
po/nn.po, po/pl.po, po/pt_BR.po, po/pt_PT.po, po/ro.po, po/ru.po,
po/sk.po, po/sl.po, po/sq.po, po/sr.po, po/sr_Latn.po, po/sv.po,
po/ta.po, po/tr.po, po/uk.po, po/vi.po, po/zh_CN.po, po/zh_HK.po,
po/zh_TW.po: Merge po files and new template
2018-11-09 vantu5z <vantu5z@mail.ru>
2019-09-10 Nick Hall <nick-h@gramps-project.org>
* po/gramps.pot: Update translation template for new release
2019-08-27 Avi Markovitz <avi.markovitz@gmail.com>
* po/he.po: Update Hebrew translation
2019-07-11 Pedro Albuquerque <palbuquerque73@gmail.com>
* po/pt_PT.po: Update Portuguese (Europe) translation
2019-06-24 Milo Ivir <mail@milotype.de>
* po/hr.po: Update croatian translation - update with newest/current .pot file - translation is complete - corrections in wording and some missing accelerators
2019-09-02 prculley <paulr2787@gmail.com>
* gramps/gui/widgets/styledtexteditor.py: Fix missing tooltip
translations in the Note editor toolbar Fixes #11289
2019-09-01 SNoiraud <Serge.Noiraud@free.fr>
* gramps/gen/filters/rules/place/_withinarea.py: Avoid bad
coordinates in the ref place
2019-08-28 SNoiraud <Serge.Noiraud@free.fr>
* gramps/gen/filters/rules/place/_withinarea.py: Avoid alphabetic
characters in filter rules
2019-08-23 SNoiraud <Serge.Noiraud@free.fr>
* gramps/gen/filters/rules/place/_withinarea.py: Could not convert
string to float by using withinarea filter rule + difference between sidebar filter
and filter rule + some pylint improvements
2019-08-31 prculley <paulr2787@gmail.com>
* gramps/gen/plug/docgen/graphdoc.py: Fix Graph outputs for multiple
page PDF Postscript Fixes #11305
2019-08-31 prculley <paulr2787@gmail.com>
* gramps/gen/plug/_pluginreg.py, gramps/gui/managedwindow.py,
gramps/gui/plug/quick/_quickreports.py, gramps/gui/uimanager.py,
gramps/gui/viewmanager.py, gramps/gui/views/tags.py,
gramps/gui/widgets/grampletpane.py: Fix to make Gtk 'action names'
always valid Fixes #11291
2019-08-31 prculley <paulr2787@gmail.com>
* gramps/gui/uimanager.py, gramps/gui/views/tags.py: Fix missing
menus/buttons when operating in non-English languages Fixes #11292
2019-08-31 SNoiraud <Serge.Noiraud@free.fr>
* gramps/gui/widgets/validatedmaskedentry.py: Cursor position error
in lat and long fields Fixes #11310
2019-08-30 SNoiraud <Serge.Noiraud@free.fr>
* gramps/plugins/tool/removespaces.py: Avoid all characters looking
like a dash hyphen non breaking hyphen figure dash em dash horizontal bar Fixes #11308
2019-08-30 SNoiraud <Serge.Noiraud@free.fr>
* data/css/Web_Mainz.css: Narrative web: Mainz Style sheet weird
looking Fixes #11282
2019-09-02 SNoiraud <Serge.Noiraud@free.fr>
* gramps/plugins/view/relview.py: Set symbols for the active person
2019-08-28 SNoiraud <Serge.Noiraud@free.fr>
* gramps/plugins/view/relview.py: Set good symbols for marriage,
baptism, cremation and burial
2019-08-28 SNoiraud <Serge.Noiraud@free.fr>
* gramps/plugins/view/relview.py: Reduce the size of the sexuality
symbol in relview Fixes #11295
2019-08-28 prculley <paulr2787@gmail.com>
* gramps/gui/widgets/styledtexteditor.py: Fix exception when editing
Note with italics/bold etc. in non English Fixes #11284
2019-08-27 Nick Hall <nick-h@gramps-project.org>
* gramps/gui/views/pageview.py: Restore keybindings for gramplet
bars Resolves #11297.
2019-08-27 Nick Hall <nick-h@gramps-project.org>
* gramps/gui/plug/quick/_quickreports.py: Fix bug in web connection
menu launching incorrect web site Resolves #11280.
2019-08-26 SNoiraud <Serge.Noiraud@free.fr>
* gramps/gui/autocomp.py: 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 #11293
2019-08-26 SNoiraud <Serge.Noiraud@free.fr>
* gramps/gui/configure.py, gramps/gui/widgets/grampletbar.py: Error
when checking option to add Quit to Taskbar Fixes #11290
2019-08-25 SNoiraud <Serge.Noiraud@free.fr>
* gramps/plugins/webreport/narrativeweb.py,
gramps/plugins/webreport/person.py: 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 #6772. Some
people want to have this placement an option to have the same
functionality as before Fixes #11283
2019-08-24 Ross Gammon <rossgammon@mail.dk>
* debian/changelog: Finalise Debian changelog for 5.1.0 release
2019-08-24 Ross Gammon <rossgammon@mail.dk>
* debian/control: Bump gtk+ version to 3.12 & add
gir1.2-geocodeglib-1.0 dependency
2019-08-24 Ross Gammon <rossgammon@mail.dk>
* debian/copyright: Update copyrights
2019-08-24 Ross Gammon <rossgammon@mail.dk>
* debian/changelog, debian/control: Merge last 5.0.2 debian release
information into 51 maintenance branch
2019-08-23 Sebastian Schubert <schubert.seb@gmail.com>
* README.md: Add optional fontconfig package to README.md
2019-08-23 Sebastian Schubert <schubert.seb@gmail.com>
* NEWS: Fix typo in NEWS
2019-08-30 Zdeněk Hataš <zdenek.hatas@gmail.com>
* po/cs.po: Update Czech translation
2019-08-29 Zdeněk Hataš <zdenek.hatas@gmail.com>
* po/cs.po: Update Czech translation
2019-08-25 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* po/de.po: German translation updated
2019-08-24 John Ralls <jralls@ceridwen.us>
* mac/Info.plist, mac/gramps.modules: Release Gramps-5.1.0 on Mac.
2019-08-16 John Ralls <jralls@ceridwen.us>
* mac/release.entitlements.plist: 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-06-11 John Ralls <jralls@ceridwen.us>
* mac/gramps.modules: Fix graphviz and exiv2 download URLs.
2019-06-11 John Ralls <jralls@ceridwen.us>
* mac/gramps.modules: Update dependency versions and download paths.
2019-08-22 vantu5z <vantu5z@mail.ru>
* po/ru.po: update Russian translation
2018-09-28 SNoiraud <serge.noiraud@laposte.net>
2019-08-22 pehlm <par.ekholm@pekholm.org>
* data/css/Web_Basic-Ash.css, data/css/Web_Basic-Blue.css,
data/css/Web_Basic-Cypress.css, data/css/Web_Basic-Lilac.css,
data/css/Web_Basic-Peach.css, data/css/Web_Basic-Spruce.css,
data/css/Web_Horizontal-Menus.css, data/css/Web_Mainz.css,
data/css/Web_Nebraska.css, gramps/plugins/webreport/basepage.py:
NarrativeWeb fixes Space between place, description and the event note when there are
many sources. Change the css order between print and screen. The
chosen theme can erase prior values. Add a width for the source
column in all themes. Fixes #10810
2018-10-17 niememat <niememat@gmail.com>
* po/fi.po: Fix translation in Finnish
2018-10-07 Paul Franklin <pf.98052@gmail.com>
* gramps/plugins/drawreport/statisticschart.py,
gramps/plugins/graph/gvfamilylines.py,
gramps/plugins/graph/gvrelgraph.py,
gramps/plugins/webreport/webcal.py: Setting the year as an ordinal
number in Croatian With this commit, two more reports now show a year as an ordinal
number in Croatian, and a year I missed before in webcal.py is now
fixed. This commit also reverts the Croatian ordinal year fix in the
gramps50 statisticschart.py since upon reflection I feel it would be
better done in master, since then our translators will have until
5.1.0 is released to do the two new strings the fix requires. Issue #10822
2018-10-07 Paul Franklin <pf.98052@gmail.com>
* gramps/plugins/textreport/indivcomplete.py: name-note is not being
cleared in Complete Individual report I ran gramps with a fresh copy of the example.gramps tree, then ran
the Complete Individual report. The options which matter are
"Entire Database" and "Include Notes" but I also included the
gramps-ID since that speeds up my work. Then I noticed that hundreds of names at the end of the output file
all had the same note (N0001), whose text said it referred to a
specific person. So I looked higher and the note inclusion started with I0044, the
default person. It was real for him but not for the next person
after him, or all the people after her. I introduced the problem when I fixed 10033, in d6a97cf90e. Note that this bug is independent of the CIR fix in p.r. 676 and
still happens even after that pull request is applied.
2018-10-04 prculley <paulr2787@gmail.com>
* gramps/gui/columnorder.py, gramps/gui/views/listview.py: Fix View
Column sizing so last column size setting is maintained Fixes #10800
2018-08-06 prculley <paulr2787@gmail.com>
* gramps/gui/views/listview.py: Fix view so column widths are
preserved when using filters Fixes #10725
2018-08-29 vantu5z <vantu5z@mail.ru>
* po/ru.po: update Russian translation
2018-10-04 Paul Franklin <pf.98052@gmail.com>
* gramps/gen/display/place.py: fix typo in cbac98894bfa7e1969625efceccc19c4d5374a7e
2018-10-04 Paul Franklin <pf.98052@gmail.com>
* gramps/plugins/lib/libnarrate.py,
gramps/plugins/textreport/detancestralreport.py,
gramps/plugins/textreport/detdescendantreport.py: fix the
place-format option in DDR and DAR The place-format option was added to the Detailed Descendant and
Detailed Ancestor text reports in
cbac98894bfa7e1969625efceccc19c4d5374a7e But those two reports use the Narrator class to show many of their
places (and dates), and that class was not modified to use the
user's custom place format. So if a user had created a custom place format and ran either of
those two reports, their places would be shown inconsistently. This
commit fixes that. (The non-detailed ancestor text report also uses Narrator to show
its places but that report has not had the place-format option added
to it, so this commit doesn't touch it.)
2018-10-04 Paul Franklin <pf.98052@gmail.com>
* gramps/plugins/drawreport/fanchart.py,
gramps/plugins/drawreport/statisticschart.py,
gramps/plugins/drawreport/timeline.py, po/hr.po: Setting the year as
an ordinal number in Croatian With this commit, three more reports now show a year as an ordinal
number in Croatian. Issue #10822
2018-05-09 prculley <paulr2787@gmail.com>
* gramps/plugins/db/bsddb/read.py: Fix bsddb for person sort with
empty Surname list Fixes #10078, #10577
2018-10-01 Paul Franklin <pf.98052@gmail.com>
* gramps/plugins/drawreport/calendarreport.py,
gramps/plugins/textreport/birthdayreport.py,
gramps/plugins/webreport/webcal.py, po/hr.po: Setting the year as an
ordinal number in Croatian When I started investigating 10822, I saw some Croatian dates didn't
seem to be working in 5.0.0, to my surprise. I believe I fixed that
in the previous commit. With this commit, the three reports now show a year as an ordinal
number in Croatian, so I consider 10822 fixed. If there are any additional problems displaying Croatian, please
file additional bug reports ("one bug, one report"). Fixes #10822
2018-10-01 Paul Franklin <pf.98052@gmail.com>
* gramps/gen/datehandler/_date_hr.py,
gramps/gen/datehandler/_datedisplay.py, po/hr.po: Setting the year
as an ordinal number in Croatian When I started investigating 10822 I saw some Croatian dates didn't
seem to be working in 5.0.0, to my surprise. There seems to have
been some kind of regression from 4.2.8. But the Croatian translation for gramps hasn't been updated in about
three years -- except by non-Croatians. So I don't know why some
"translated" strings which control how dates are displayed were
disabled (marked as "fuzzy") in this:
6c67053e1fa22405bde0fae38e81de7ace222d41 Also, I saw some code in the 4.2.8 Croatian date handler which was
not in the 5.0.0 Croatian date handler -- somehow. So I believe this commit fixes the Croatian date handler. Issue #10822
2018-09-30 Serge Noiraud <Serge.Noiraud@laposte.net>
* gramps/plugins/webreport/webcal.py: Webcal: link problems in some
cases (#661) * Webcal: link problems in some cases Year 2016 is highlighted by default instead of current year. Fixes #10801 * Webcal: Missing links when muliyear unselected
2018-09-29 Serge Noiraud <Serge.Noiraud@laposte.net>
* gramps/plugins/view/geoclose.py: Geoclose: exception when a family
has no father (#662)
2018-09-26 Paul Franklin <pf.98052@gmail.com>
* gramps/plugins/drawreport/descendtree.py: Report plugin krasch Load data.gramps, start with the default person (I0037, Edwin
Michael Smith), run Family Descendant Tree, choose "Start with the
parent(s) of the selected first", hit OK: .../descendtree.py", line 881, in start family2 = self.database.get_family_from_handle(family2_h) ... Or start with I0057 (Anna Louise Smith), run Family Descendant Tree,
choose "Start with the parent(s) ...", hit OK: .../descendtree.py", line 773, in start family2 = self.database.get_family_from_handle(family2_h) ... Fixes #10811
2018-09-26 Paul Franklin <pf.98052@gmail.com>
* gramps/gen/datehandler/_date_is.py,
gramps/gen/datehandler/_datedisplay.py: [unhandled exception parsing
"future dates" in some locales] There is already a check in the MonitoredDate class for years which
are more than one year in the future, so such a date is already
going to be shown in red. But some locales use the "datetime" library to parse typed-in dates
and that has a maximum year of datetime.MAXYEAR, 9999 currently, so
dates greater than that produce a ValueError. Besides adding checks for that, I have also made it so that locales
which don't need that library don't use it. Fixes #10815
2018-09-24 Paul Franklin <pf.98052@gmail.com>
* gramps/gen/datehandler/_date_nb.py: Julian/Gregorian calendar
issue when entering only year as date when running gramps in Norwegian Fixes #10687
2018-09-23 Serge Noiraud <Serge.Noiraud@laposte.net>
* gramps/plugins/webreport/basepage.py: Events difficult to read
(screen and mobile) (#658)
2018-09-17 Paul Franklin <pf.98052@gmail.com>
* gramps/gen/plug/report/stdoptions.py,
gramps/plugins/textreport/placereport.py: fix typo in cf42e5a4b847e6881f180cd1b776fb02234768be and
cbac98894bfa7e1969625efceccc19c4d5374a7e Fixes #10782
2018-09-08 Leonhaeuser <mirko@leonhaeuser.de>
* po/de.po: update German translation
2018-09-06 niememat <niememat@gmail.com>
* po/fi.po: New update for Finnish translation
2018-09-06 niememat <niememat@gmail.com>
* po/fi.po: Update finnish translation
2018-09-05 Paul Culley <paulr2787@gmail.com>
* gramps/plugins/gramplet/statsgramplet.py: Fix and restore
Statistics Gramplet to 4.2.x status (#653) Fixes #10754 A bit of history. bug 2060 was filed a long time ago (2008), and a
patch was added to close it in 2016. I believe that the bug had
already been patched by then, although I cannot be sure. The patch
caused the Gramplet to update anytime the active-changed signal
occurred on a person view. I suspect that this caused a fair amount
of overhead on very large dbs as the entire person list was
rescanned. In any event, Doug Blank recently removed the original scan code, as
well as some useful functionality. And left behind a bug where a
value was always zero. The users email list had some complaints
about the lost functionality, and I also saw some recent complaints
that the gender statistics were incorrect. Turns out that the db's
genderstats data was incorrect, probably due to crashes after db
updates. The Genderstats don't get saved until db closes normally.
In addition, running the Genderstats rebuild tool, did not
immediately appear to correct the situation, Gramps had to be
restarted to show the updated results. I added the original statistics code back into the Gramplet,
suitably updated for 5.0.x. So the Gramplet no longer depends on dbs
genderstats, it scans for it now on its own. I removed the update on active-changed function, so overhead is only
present on actual db updates (which have their own signals). I
tested that the add, edit, and delete person changes do properly
cause the statistics to update now. So the active-changed signal is
not necessary.
2018-09-04 Paul Culley <paulr2787@gmail.com>
* gramps/plugins/test/tools_test.py, gramps/plugins/tool/check.py:
Fix Check and Repair to deal with bad references empty handle string
(#657) Fixes #10783 Check and Repair tool doesn't fix bad references when the reference
handle is an empty string. Found when rewriting the backlinks scan
on same tool. I assumed that the prior checks had already corrected
any bad forward references, and did not put in a test for them in my
new code. The Travis test failed and when I debugged, I found that
the tool had an exception on a handle that consisted of an empty
string. Its interesting to note that when I changed the code, a lot more
citation and source references were fixed in the test.
2018-09-04 Paul Culley <paulr2787@gmail.com>
* gramps/plugins/tool/check.py: Speed up Check and Repair, backlinks
check stage. (#656) Fixes #10618 * Speed up Check and Repair, backlinks check stage. * Fix Check and repair; backlinks scan to deal with bad references
which should have been fixed in earlier checks!
2018-09-03 Paul Culley <paulr2787@gmail.com>
* gramps/gen/config.py, gramps/gen/datehandler/_date_ar.py,
gramps/gen/datehandler/_date_bg.py,
gramps/gen/datehandler/_date_ca.py,
gramps/gen/datehandler/_date_da.py,
gramps/gen/datehandler/_date_de.py,
gramps/gen/datehandler/_date_el.py,
gramps/gen/datehandler/_date_es.py,
gramps/gen/datehandler/_date_fi.py,
gramps/gen/datehandler/_date_hr.py,
gramps/gen/datehandler/_date_hu.py,
gramps/gen/datehandler/_date_is.py,
gramps/gen/datehandler/_date_it.py,
gramps/gen/datehandler/_date_ja.py,
gramps/gen/datehandler/_date_lt.py,
gramps/gen/datehandler/_date_nb.py,
gramps/gen/datehandler/_date_nl.py,
gramps/gen/datehandler/_date_pl.py,
gramps/gen/datehandler/_date_pt.py,
gramps/gen/datehandler/_date_ru.py,
gramps/gen/datehandler/_date_sk.py,
gramps/gen/datehandler/_date_sl.py,
gramps/gen/datehandler/_date_sr.py,
gramps/gen/datehandler/_date_sv.py,
gramps/gen/datehandler/_date_uk.py,
gramps/gen/datehandler/_date_zh_CN.py,
gramps/gen/datehandler/_date_zh_TW.py,
gramps/gen/datehandler/_dateparser.py, gramps/gen/display/name.py,
gramps/gen/filters/rules/_changedsincebase.py,
gramps/gen/lib/place.py, gramps/gen/mime/_winmime.py,
gramps/gen/soundex.py, gramps/gen/utils/db.py, gramps/gui/dbman.py,
gramps/gui/editors/editlink.py, gramps/plugins/docgen/latexdoc.py,
gramps/plugins/docgen/rtfdoc.py,
gramps/plugins/export/test/exportvcard_test.py,
gramps/plugins/importer/importgeneweb.py,
gramps/plugins/importer/importxml.py,
gramps/plugins/importer/test/importvcard_test.py,
gramps/plugins/tool/reorderids.py, setup.py,
windows/nonAIO/builder/build_GrampsWin32.py,
windows/nonAIO/builder/check_gtk_install.py,
windows/nonAIO/builder/make_launcher.py,
windows/nonAIO/check_gtk_install.py: Fix strings containing
deprecated illegal escape sequences (#648) Python 3.6 and above has deprecated illegal string escape sequences.
Escape sequences are preceded by a '\' and valid ones are "\n\t\r"
etc. Illegal ones are not in the list
https://docs.python.org/3/reference/lexical_analysis.html#string-and-bytes-literals.Previous to Python 3.6 these illegal sequences were ignored and the
'\' was left in place. Pylint has been noting these for a while now. This PR corrects these sequences in Gramps. I used find . -name "*.py" | xargs -t -n 1 python3 -Wd -m py_compile 2>&1 |
grep Depre to locate the failing strings.
2018-09-04 Ivan <vantu5z@mail.ru>
* gramps/plugins/gramplet/whatsnext.py: [Whatsnext] check if db is
open (#651) Fixes #10732
2018-09-03 Paul Culley <paulr2787@gmail.com>
* gramps/gui/viewmanager.py,
gramps/plugins/gramplet/statsgramplet.py,
gramps/plugins/quickview/filterbyname.py,
gramps/plugins/textreport/summary.py,
gramps/plugins/webreport/statistics.py: Fix usage of posixpath;
should be os.path for os independence (#650) Fixes #10740
2018-09-03 Paul Culley <paulr2787@gmail.com>
* gramps/gen/utils/file.py: Fix generate_checksum routine to avoid
MemoryError crash (#649) with very large files and 32-bit OS Issue #10690
2018-09-03 Paul Culley <paulr2787@gmail.com>
* gramps/gui/views/bookmarks.py: Fix corrupted Bookmarks that can
happen after Gramps crash (#655) Fixes #10759
2018-09-03 Paul Culley <paulr2787@gmail.com>
* gramps/gen/merge/mergefamilyquery.py: Fix Merge Family when same
parent is missing from both families (#654) Fixes #10760
2018-09-03 Paul Culley <paulr2787@gmail.com>
* gramps/gui/views/pageview.py: Fix <ctrl>c in view to get selected
item to clipboard (#652) Fixes #10682
2018-09-03 Paul Culley <paulr2787@gmail.com>
* gramps/plugins/gramplet/quickviewgramplet.py: Fix Quickview
Gramplet so updates work when changing active (#642) Fixes #10713
2018-09-03 Paul Culley <paulr2787@gmail.com>
* gramps/gui/editors/editplaceref.py: Fix place reference editor for
bad cut/paste on set_latlongitude (#644) Fixes #10719
2018-09-03 Paul Culley <paulr2787@gmail.com>
* gramps/plugins/tool/findloop.py: Fix Find Database Loop Tool (bad
import of _collections) (#643) Fixes #10722
2018-09-03 niememat <niememat@gmail.com>
* po/fi.po: Fix translation in Finnish
2018-08-25 Bernard Banko <beernarrd@gmail.com>
* po/sl.po: Slovenian translation fixed to allow building mo
2018-08-25 Bernard Banko <beernarrd@gmail.com>
* po/sl.po: Slovenian translation updated
2018-08-18 niememat <niememat@gmail.com>
* po/fi.po: Fix translation in Finnish
2018-08-11 niememat <niememat@gmail.com>
* po/fi.po: Fix translation in Finnish
2018-08-09 John Ralls <jralls@ceridwen.us>
* mac/gramps.modules: Switch included moduleset to gitlab.gnome.org. Fixes bug #10733.
2018-08-08 Leonhaeuser <mirko@leonhaeuser.de>
* po/de.po: Reviewed German translation Thanks to bmendl
2018-08-08 niememat <niememat@gmail.com>
* po/fi.po: Fix translation in Finnish
2018-08-05 John Ralls <jralls@ceridwen.us>
* mac/gramps.bundle: File copy doesn't work if the glob can match
directories.
2018-08-04 John Ralls <jralls@ceridwen.us>
* mac/gramps.bundle: Install the docs/gramps directory in the
bundle. Fixes bug #10705.
2018-08-05 niememat <niememat@gmail.com>
* po/fi.po: Fix and updated translation in Finnish
2018-07-25 Ross Gammon <rossgammon@mail.dk>
* debian/changelog: Update the Debian changelog after the 5.0.0
release
2018-07-25 John Ralls <jralls@ceridwen.us>
* mac/Info.plist, mac/gramps.modules: Release Gramps-5.0.0 on Mac.
2018-07-24 Nick Hall <nick-h@gramps-project.org>
* gramps/gen/const.py, gramps/version.py: Bump to 5.0.1
* po/sv.po: Update Swedish translation with the new gramps.pot
2019-08-21 prculley <paulr2787@gmail.com>
* Bump to 5.1.1

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 *

1816
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;
}

@@ -66,3 +66,48 @@ div#FamilyMapDetail div#references table.infolist {
div#FamilyMapDetail div#references table.infolist tbody tr td.ColumnPlace {
width: 40%;
}
/* Subsection: popup
------------------------------------------------------ */
.ol-popup {
position: absolute;
background-color: white;
-webkit-filter: drop-shadow(0 1px 4px rgba(0,0,0,0.2));
filter: drop-shadow(0 1px 4px rgba(0,0,0,0.2));
padding: 15px;
border-radius: 10px;
border: 2px solid #111111;
bottom: 12px;
left: -50px;
min-width: 450px;
}
.ol-popup:after, .ol-popup:before {
top: 100%;
border: solid transparent;
height: 0;
width: 0;
position: absolute;
pointer-events: none;
}
.ol-popup:after {
border-top-color: white;
border-width: 10px;
left: 48px;
margin-left: -10px;
}
.ol-popup:before {
border-top-color: #cccccc;
border-width: 11px;
left: 48px;
margin-left: -11px;
}
.ol-popup-closer {
text-decoration: none;
position: absolute;
top: 2px;
right: 8px;
}
.ol-popup-closer:after {
content: "✖";
}

@@ -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>

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(
@@ -138,7 +145,8 @@ sys.path.insert(0, ROOT_DIR)
git_revision = get_git_revision(ROOT_DIR).replace('\n', '')
if sys.platform == 'win32' and git_revision == "":
git_revision = get_git_revision(os.path.split(ROOT_DIR)[1])
#VERSION += git_revision
VERSION += git_revision
#VERSION += "-1"
#
# Glade files
@@ -217,7 +225,7 @@ GTK_GETTEXT_DOMAIN = 'gtk30'
#
#-------------------------------------------------------------------------
COPYRIGHT_MSG = "© 2001-2006 Donald N. Allingham\n" \
"© 2007-2018 The Gramps Developers"
"© 2007-2019 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')

@@ -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
@@ -290,7 +290,8 @@ class DateDisplayDE(DateDisplay):
formats = (
"JJJJ-MM-DD (ISO)", "Numerisch", "Monat Tag Jahr",
"MONAT Tag Jahr", "Tag. Monat Jahr", "Tag. MONAT Jahr"
"MONAT Tag Jahr", "Tag. Monat Jahr", "Tag. MONAT Jahr",
"Numerisch mit führenden Nullen"
)
# this definition must agree with its "_display_gregorian" method
@@ -343,6 +344,18 @@ class DateDisplayDE(DateDisplay):
else:
value = "%d. %s %s" % (date_val[0],
self.long_months[date_val[1]], year)
elif self.format == 6:
# day.month_number.year with leading zeros
if date_val[3]:
return self.display_iso(date_val)
else:
if date_val[0] == date_val[1] == 0:
value = str(date_val[2])
else:
value = self.dhformat.replace('%m', str(date_val[1])
.zfill(2))
value = value.replace('%d', str(date_val[0]).zfill(2))
value = value.replace('%Y', str(date_val[2]))
else:
# day. month_abbreviation year
if date_val[0] == 0:

@@ -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

@@ -32,7 +32,7 @@ database to fetch data from). Thus, dbstate.db cannot be left as 'None' because
None has no 'is_open' attribute. Therefore this database class is provided so
that it can be instantiated for dbstate.db.
FIXME: Ideally, only is_open() needs to be implemented here, bacause that is the
FIXME: Ideally, only is_open() needs to be implemented here, because that is the
only method that should really be called, but the Gramps code is not perfect,
and many other methods are called. Calls of other methods could be considered
bugs, so when these are fixed, this class could be reduced.
@@ -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 = []
@@ -756,6 +757,14 @@ class DummyDb(M_A_M_B("NewBaseClass", (DbReadBase, Callback, object,), {})):
LOG.warning("database is closed")
return 0
def get_number_of_citations(self):
"""
Return the number of citations currently in the database.
"""
if not self.db_is_open:
LOG.warning("database is closed")
return 0
def get_number_of_tags(self):
"""
Return the number of tags currently in the database.

@@ -757,7 +757,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)

@@ -28,6 +28,7 @@ from ._hascitation import HasCitation
from ._allcitations import AllCitations
from ._changedsince import ChangedSince
from ._citationprivate import CitationPrivate
from ._hasattribute import HasAttribute
from ._hasgallery import HasGallery
from ._hasidof import HasIdOf
from ._hasnote import HasNote
@@ -50,6 +51,7 @@ editor_rule_list = [
AllCitations,
ChangedSince,
CitationPrivate,
HasAttribute,
HasGallery,
HasIdOf,
HasNote,

@@ -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")

@@ -0,0 +1,49 @@
#
# Gramps - a GTK+/GNOME based genealogy program
#
# Copyright (C) 2008 Gary Burton
# 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
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# -------------------------------------------------------------------------
#
# Standard Python modules
#
# -------------------------------------------------------------------------
from ....const import GRAMPS_LOCALE as glocale
_ = glocale.translation.gettext
# -------------------------------------------------------------------------
#
# Gramps modules
#
# -------------------------------------------------------------------------
from .._hasattributebase import HasAttributeBase
# -------------------------------------------------------------------------
#
# HasAttribute
#
# -------------------------------------------------------------------------
class HasAttribute(HasAttributeBase):
"""Rule that checks for a citation with a particular attribute"""
labels = [_('Citation attribute:'), _('Value:')]
name = _('Citations with the attribute <attribute>')
description = _("Matches citations with the attribute "
"of a particular value")

@@ -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())

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