Compare commits

...

278 Commits

Author SHA1 Message Date
Sam Manzi 04d61dbc07 Correct wording to reflect requirements.
Based on comment from 
https://gramps.discourse.group/t/part-of-readme-md-is-confusing-on-github/751
2020-09-22 14:45:38 +10:00
Nick Hall cc7ca7ff99 Support msgctxt in po files instead of a vertical bar in the msgid
For developers, an extra optional context parameter has been
added to the gettext functions. For example, _('point size|pt')
should now be written as _('pt', 'point size').

For translators this would appear in the message catalog as:

msgctxt "point size"
msgid "pt"
msgstr "pt"

Implements #3416.
2020-09-21 22:03:43 +01:00
Nick Hall 01403a0d03 Remove version qualifier 2020-09-16 22:50:58 +01:00
Nick Hall b95b4258ef Another PyPI test release 2020-09-16 21:37:57 +01:00
Nick Hall 7994d01320 Change deploy script to fail on error 2020-09-16 21:33:39 +01:00
Nick Hall 67e2620e7a Change Travis CI to use python 3.5 2020-09-16 21:32:20 +01:00
Nick Hall f15263e754 Create a development release for PyPI testing 2020-09-16 18:54:35 +01:00
Nick Hall 8408cea4b5 Move beta warning into the status bar 2020-09-16 17:45:30 +01:00
Nick Hall fd380e345c Install application icons into correct directories 2020-09-15 19:06:26 +01:00
Nick Hall ffa97fcad2 Merge pull request #1114 from DavidMStraub:pip 2020-09-15 18:52:42 +01:00
David Straub dafedbebd5 Add PyPI auto-deploy to Travis CI 2020-09-15 18:38:13 +01:00
David Straub 71d95faeea Use setup from setuptools to allow creation of python wheels
Add extras_require
2020-09-15 18:37:11 +01:00
Nick Hall 33e3f4eb64 Update Travis CI to use gramps52 addons 2020-09-15 17:20:06 +01:00
Nick Hall bb1c784d04 Bump all version numbers to 5.2 2020-09-15 16:59:43 +01:00
Paul Culley 9938c71a1c Fix EditEventRef, EditPlaceRef, EditMediaRef, EditRepoRef for improperly (#1112)
saving objects in their object lists.

Fixes #11917, #11933
2020-09-14 11:12:12 -05:00
Paul Culley bd6e7c1007 Check & Repair: search and fix bad "links" in StyledTextTags (#1093)
Issue #11855
2020-09-14 11:11:14 -05:00
Nick Hall 60f1866292 Replace intltool with gettext tools
The build now requires gettext v0.19.7 or above.

Removed obsolete files:
  * gramps.applications
  * gramps.keys
  * gramps.mime

Created ITS rules for holidays.xml and tips.xml files.

Included ITS files for shared-mime-info from a gettext v0.20.2
installation.
2020-09-02 21:22:04 +01:00
Nick Hall 3ca82e2ebc Remove the resource-path file
Attempt to derive the resource path from the package path assuming that
one of the three main installation schemes has been used.

The package path will be one of the following:

  <prefix>/lib/pythonX.Y/site-packages
  <prefix>\Lib\site-packages

  <home>/lib/python

  <userbase>/lib/pythonX.Y/site-packages
  <userbase>\PythonXY\site-packages

  Where <prefix>, <home> and <userbase> are the resource paths used in the
  Prefix, Home and User installation schemes.

The use of the command line option "--install-data" in the setup script
is no longer supported.

This change is intended to allow a Gramps core package to be created
as a wheel and installed via pip.
2020-09-02 21:07:22 +01:00
niememat 8ffb544b2c Update finnish translation 2020-08-30 20:33:38 +03:00
prculley e3b6076eef Merge branch 'gramps51' 2020-08-23 09:38:15 -05:00
Nick Hall 9ea958661b Fix python3-icu in Travis CI build 2020-08-22 20:49:01 +01:00
Nick Hall d30376ca20 Change Travis CI python version to 3.4 2020-08-22 20:38:58 +01:00
Nick Hall 80b3572e30 Update Travis CI build configuration
Change distro from trusty to xenial.
Add missing os key.
Remove deprecated sudo key.
2020-08-22 20:28:26 +01:00
Paul Culley 8000eaca2f Add tooltips to sidebar filter 'Find' and 'Reset' buttons. (#1091)
Issue #11783
2020-08-21 09:50:15 -05:00
Paul Culley 8654c50594 Bug10853m (#1096)
* autobackup; add delay after wake from sleep/hibernate to allow time
for system to settle.

Fixes #10953

* Autobackup only if new commits since last autobackup in session
2020-08-21 09:46:18 -05:00
Alan Crosswell 261a3d8965 Fix GEDCOM import/export DATE/TIME creep by UTC offset. (#1089) 2020-08-21 09:38:06 -05:00
Zdeněk Hataš 4147bc728a Update Czech translation 2020-08-21 11:02:14 +02:00
John Ralls 3a9a7053ec Bundle release of Gramps 5.1.3. 2020-08-20 14:41:57 -07:00
John Ralls b96fd8a274 Add geocode-glib to build. 2020-08-20 14:14:53 -07:00
pehlm 26cf0601d8 Update Swedish translation 2020-08-12 20:32:03 +02:00
prculley c59278ef20 Bump to 5.1.4 2020-08-12 12:05:25 -05:00
prculley 767557be61 Release Gramps 5.1.3 2020-08-12 11:28:29 -05:00
prculley 495d4e58ae Remove duplicates in Translations 2020-08-11 09:24:38 -05:00
prculley fd90a80cf8 Clean up translations for Default/Home Person 2020-08-10 17:16:12 -05:00
Leonhaeuser f6c0103f32 Update German translation 2020-08-10 22:48:17 +02:00
Serge Noiraud 04c1dc8503 Events View: "Main Participants" column does not (#1075)
show the full list of participants when expanded.

Fixes #11805
2020-08-10 15:08:51 -05:00
Paul Culley 8172e1017e Fix Charts/Pedigreeview tooltip Polish translation (#1092)
Fixes #11852
2020-08-10 12:01:49 -05:00
Krystian Safjan ea30c3599b Fix and add objects to Polish translation of Gramps (#1088) 2020-08-10 12:00:54 -05:00
John Ralls 5f3ca40633 Use current Gtk release instead of Gtk-3.14. 2020-08-06 10:57:49 -07:00
John Ralls 9c64dafaea Upgrade pymodules for Python 3.8 compatibility. 2020-08-06 10:57:49 -07:00
prculley 13d83919b9 Fix XML export when 'Group-as" name contains XML invalid chars
Fixes #11834
2020-07-25 10:15:39 -05:00
SNoiraud 62d5a136a4 NarWeb: Province place-type is not displayed 2020-07-25 10:15:07 -05:00
prculley b57061d7c9 Fix ManagedWindow so that new windows don't appear offscreen
when system 'screen' sizes change in part time multi-monitor setups.

Fixes #11831
2020-07-25 10:13:57 -05:00
prculley f7be7ab63f Fix menus when db fails to open due to upgrade/downgrade etc.
Fixes #11604
2020-07-25 10:10:56 -05:00
prculley 97923e7530 Fix issue with attach source tool, results panel
Fixes #11780
2020-07-25 10:09:52 -05:00
prculley 75aabf570d Fix GEDCOM export; don't include ADDR when address is missing
Fixes #11825
2020-07-25 10:08:58 -05:00
SNoiraud 41f1e91600 Coordinates containing a comma instead of a period
Fixes #11823
2020-07-25 10:08:22 -05:00
Leonhaeuser 981c0dfc5c German translation fixed typo 2020-07-23 20:28:59 +02:00
niememat d558a9a004 Update finnish translation 2020-07-17 00:41:16 +03:00
Stanislav Bolshakov 95776f8e84 AgeOnDate: fix position ob input field and button
On small screen (as notebook) input field and button are placed on screen's
bottom. After this fix this control have top position.
2020-07-09 10:26:10 -05:00
Stanislav Bolshakov 1d55d70914 Localization: fix ru.po
1. Small fix translate,
2. Change "Notpatronymic">"Девичья",
3. Add translate.
2020-07-09 10:26:09 -05:00
Stanislav Bolshakov 39cb8bd64a Holidays.xml.in: add holiday, sorting and localization
1. Add 1 holiday to Russian calendar,
2. Sorting alphabetically localization strings in all .po and .pot files,
3. Add "Russia" country to all .po and .pot files,
4. Translate "Russia" in some language.
2020-07-09 10:25:14 -05:00
Stanislav Bolshakov 17a136d2d8 Fix: fix 2 comments (only) 2020-07-09 10:24:56 -05:00
Stanislav Bolshakov d55775edd7 Pluginmanager: fix Pytho3 syntaksis
1. Run
python3 -m unittest discover -p 'date*test.py'
from
https://gramps-project.org/wiki/index.php/Date_Handler#Calendars
2. See errors,
3. Fix this errors.
2020-07-09 10:24:54 -05:00
Stanislav Bolshakov 97a88be39f Add missing file
After run
python3 setup.py build
I receive this error:

"package init file 'gramps/plugins/db/bsddb/__init__.py' not found (or not a
regular file)"

I copy file .../gramps/plugins/db/dbapi/__init__.py in /bsddb/.
Error not displayed.
2020-07-09 10:24:53 -05:00
Stanislav Bolshakov 8a1ef27871 RU.po: small fix
Small fix for tree open/import dialogs.
2020-07-09 10:24:51 -05:00
Stanislav Bolshakov d780647e8d INSTALL: add instruction for dependences + upper case for Ubuntu
1. Install GRAMPS in fresh Linux can be hard for new users. For easy way I add
instruction for install all dependencies in Ubuntu-based distro,
2. Ubuntu - always Ubuntu (first letter in upper case):
https://ubuntu.com/about
2020-07-09 10:24:48 -05:00
Stanislav Bolshakov 8684c66b2d Holidays.xml: sorting country + add Russia
1. Sorting countries alphabetically,
2. Add Russian holidays.
2020-07-09 10:24:47 -05:00
Stanislav Bolshakov 216bcd2a10 Fix images: 22x22 to 24x24
Real picture's size from images/hicolor/24x24/actions

old size: 22x22 72dpi or 90dpi
now: 24x24 72dpi.
2020-07-09 10:24:46 -05:00
Stanislav Bolshakov 715b93d109 NarrativeWeb: fix letters in comment
1. Insert missing letters in comments.
2. Termns to upper case (gregorian, javascript).
2020-07-09 10:24:44 -05:00
Stanislav Bolshakov 272f2feafa Fix comment: "translaed" to "translated"
My first commit: fix missing letter "t" in comment.
2020-07-09 10:24:41 -05:00
Tian Shixiong 914bd6c0d3 Update Simplified Chinese translation for gramps51 branch 2020-07-09 09:42:35 -05:00
CWSchulze 319a36b2b8 replace obsolete file() -> open() 2020-07-09 09:17:10 -05:00
Bruno Cornec a265f1fd38 Remove non-existent old attribute personal for an event 2020-07-09 08:56:07 -05:00
Sven Wehner 3f217aeed1 EditLink: When changing the link type choose the active object as default. 2020-07-09 08:55:00 -05:00
Sven Wehner 6f18918b9c EditLink: When creating a link, prefer linking persons over places, events, ..., and images. 2020-07-09 08:55:00 -05:00
arnaullv 9f97c34a90 Updated Catalan translation
Updated Catalan translation to latest gramps.po template on master branch
2020-07-09 08:50:33 -05:00
Serge Noiraud e8eb5bf0a1 NarrativeWeb should show patronymic in individuals (#1048)
In the individuals and in surnames pages, we should show the complete name
like defined in the display tab from the narrative web configuration.

Fixes #04404
2020-07-08 16:07:37 -05:00
Serge Noiraud b523530fb0 Narrated Website Google Maps Output JS Warning (#1038)
SensorNotRequired:
The sensor parameter is no longer required for the Maps JavaScript API.
It won't prevent the Maps JavaScript API from working correctly, but we
recommend that you remove the sensor parameter from the script element.

Fixes #011654
2020-07-08 16:00:15 -05:00
pmraps e66aa0d501 pt_PT Translations updated (#1029)
* po/pt_PT.po

Complete revision

* gramps/plugins/rel/rel_pt.py

Corrected a few relationships

* --all

pt Translations Update

* --all

pt Translations Update
2020-07-08 15:55:15 -05:00
giansalvo 0d698c13cc Fix bug 0011078: 'Default person' instead of 'Home person'
- modified button hints
- modified filter rules names and descriptions
- modified .pot and .po files
- substituted 'home person' with 'Home Person'
2020-07-07 15:40:47 -05:00
Leonhaeuser 4232032ce3 Germen fixed translation error of Media: 2020-07-07 00:05:35 +02:00
Leonhaeuser 8f4b51c837 Fix typo 2020-07-04 21:22:12 +02:00
Leonhaeuser f2caecd621 update German translation 2020-07-01 20:02:15 +02:00
Nick Hall c26d6902d1 Use event attribute types in the event reference editor
In the event reference editor, custom event attribute types
should be used rather than the default person attribute types.

Fixes #11576.
2020-06-30 15:55:11 -05:00
SNoiraud b00b1f37f1 Fix typo in gui/configure.py and translation files
Fixes #11665
2020-06-30 15:48:26 -05:00
prculley 9230de61be Fix Verify tool bug caused by bad change in GObject introspection
Fixes: #11708
2020-06-30 15:27:19 -05:00
pehlm 9906f1e4ab A little adjustment to Swedish translation 2020-06-22 22:28:51 +02:00
pehlm a68c0f7aa7 Updates to Swedish translation 2020-06-21 10:22:55 +02:00
Nick Hall 513b27531d Remove Japanese from the incomplete translations
Japanese now has a coverage of 83.2% which is above the 70%
threshold.
2020-06-20 18:27:12 +01:00
Megumi Sakata b8f007c4dd Update Japanese translation 2020-06-20 18:02:57 +01:00
Serge Noiraud e375df1e2a Navweb: incorrect link type for osm css files (#1071)
Fixes #011787
2020-06-07 20:10:01 +02:00
prculley df81a10fe8 Fix import test for change cause by commit a2c66417 which was
Fix GEDCOM import for bad source title when sources precede references.
2020-06-07 10:44:10 -05:00
prculley fa53805534 Merge branch 'maintenance/gramps51' of https://github.com/gramps-project/gramps into maintenance/gramps51 2020-06-07 09:59:37 -05:00
Tian Shixiong 9aa8b26425 Correct and update Simplified Chinese Translation 2020-06-05 10:33:31 -05:00
vantu5z e614a79cef update Russian translation 2020-06-03 10:23:56 +03:00
prculley 343633a189 Fix some reports for CLI where warning message about Value not found
Fixes #11621
2020-05-15 15:03:15 -05:00
prculley eb14abbf3e Fix Genealogy Tree reports for crash in CLI
Fixes #11621
2020-05-15 15:03:15 -05:00
prculley 47a83a82d7 Allow filter rules to access Family filters 2020-05-15 15:01:38 -05:00
prculley 5154d0c016 Add uistate to tree views filter initialization
Fixes #11657
2020-05-15 15:00:05 -05:00
prculley a2c6641774 Fix GEDCOM import for bad source title when sources precede references.
Fixes #11610
2020-05-15 14:59:13 -05:00
prculley 924d82a7c4 Fix RemoveUnused tool for crash caused by Gtk introspection bug
Fixes #11634
2020-05-15 14:58:20 -05:00
prculley f1f8847a86 Fix some Python syntax errors that appear in v3.8.x
Fixes #11641
2020-05-15 14:56:59 -05:00
SNoiraud 748fbd0949 Age: test if the death is the same day as birth 2020-05-15 14:55:15 -05:00
SNoiraud e2e659dc94 Suppress age = 0 days in events list
If the reference event date is equal to the event date, don't show the age
except if the date is estimated, calculated, ...

Fixes #0007745
2020-05-15 14:55:15 -05:00
prculley 6cbc2b896d Fix Dashboard Gramplets to update during db close when not shown
Fixes #11632
2020-05-15 14:53:43 -05:00
prculley d210275a4e Fix Windows GUI mode startup for crash with some languages
Fixes: #11612. #11490, #11518, #9179, #9201, #9266
2020-05-15 14:50:54 -05:00
prculley 0a3a65ffb0 Fix dbapi to support "Abandon Changes & Quit" feature
Fixes #11599
2020-05-15 14:49:55 -05:00
prculley e34b98033e Fix GrampsType for comparison bug with empty string as one value
Fixes #11563
2020-05-15 14:47:06 -05:00
romjerome e361c6dd49 Fix PR#1046 and consistency with gtk domain 2020-05-08 15:34:49 +02:00
prculley 96de0ceb4e Fix Verify tool bug caused by bad change in GObject introspection
Fixes: #11708
2020-05-07 09:39:09 -05:00
Serge Noiraud 6d3505af62 Narweb: incorrect place index if alternate names (#1037)
* Narweb: incorrect place index if alternate names

The places page index doesn't show the alternate names used.

In the narrative web, the first phase is to select all places.
For each object, if we have a place, we memorize that depending on date.
When we create the place pages, we start from these information in the place
table. At this moment, we have no date.
So the sort by primary names gives an incorrect index list and the alternate
place names are missing.

Fixes #11645

* some cleanup
2020-05-05 23:27:11 +02:00
Serge Noiraud 0f88753a72 Narweb: Description message is not translatable (#1036) 2020-05-05 23:22:22 +02:00
romjerome 2b2624fd7a typo and trailing space 2020-05-05 16:49:49 +02:00
romjerome 26debf0a82 fix and merge french translation
fix typos, update file references
2020-05-05 16:32:30 +02:00
romjerome 5024e1fc09 update file references for the template generation
$ intltool-update -m
2020-05-01 17:47:37 +02:00
romjerome 95f4fd2e5a Fix typos
rules around ellipsis, space and comma
2020-04-30 20:31:23 +02:00
romjerome 440832d0f5 review french translation (#1046)
Contributions by Patrick, Jean-Marc, Patrice and others
2020-04-30 16:38:11 +02:00
niememat 58335cfee2 Fix translation in Finnish 2020-04-24 15:35:00 +03:00
Joan Creus 2ce48d3793 Updating Catalan translation 2020-04-18 13:06:40 +02:00
Joan Creus f91063884e Updating Catalan translation 2020-04-18 12:57:30 +02:00
prculley a21cb546f7 Speed up Event displaytab and gramplet 2020-04-15 10:37:52 -05:00
Steve Youngs 490fb1ea3b Use the callback parameter passed to EditEvent.__init__ by passing it to EditPrimary.__init__.
This ensures self.callback is initialised as the calling code expects
2020-04-15 10:35:31 -05:00
Steve Youngs a5b5910f7f For all types of EditPrimary window, consistently call self._do_close() before self.callback(), during save()
EditFamily, EditPerson, EditPlace, EditRepository and EditSource already call self._do_close() before self.callback().
2020-04-15 10:34:23 -05:00
Steve Youngs 2a17f8d99f EditRepository now stores the callback passed to __init__ and calls it during save().
This is for consistency with other types of EditPrimary.
2020-04-15 10:34:23 -05:00
Timo 349edca738 Use shorter name to reduce line length. 2020-04-13 12:04:51 -05:00
Timo 32230d673e Add option that allows to use the name of the individual as title. 2020-04-13 12:04:51 -05:00
prculley 67b83794ef Speed up Event, Media, and Repo reference editors 2020-04-13 12:01:34 -05:00
prculley 7d6113cf38 Speed up Place Reference Editor and Listview for enclose place
Fixes #11531
2020-04-13 12:01:34 -05:00
Mattkmmr cc7c0a3f13 Update tag.py
- translation for menu strings added
- escape illegal characters in tag_name
2020-04-13 11:55:01 -05:00
prculley dd63d479cd Faster Multiple Event delete 2020-04-13 11:53:16 -05:00
prculley 31bf3edf17 Faster Multiple Person Delete 2020-04-13 11:53:16 -05:00
prculley 1ce63261c3 Fix StatusBar for potential HandleError 2020-04-13 11:53:16 -05:00
prculley 06732b1b5d Fix Date Display so that it uses LC_TIME if defined
Fixes #11230
2020-04-13 11:51:23 -05:00
prculley 26b78c17af Fix StyledText so serialize will match for style list order changes
Fixes #11529
2020-04-13 11:45:15 -05:00
prculley d83fff3b62 Try to fix exceptions on ManagedWindow close
Issues #10252, #10642, #10821, #11163, #11440, #11476, #11482, #11508
2020-04-13 11:36:24 -05:00
John Ralls 823bcaac0d Merge John Ralls's 'bug11639' into maintenance/gramps51 2020-04-08 13:09:17 -07:00
Leonhaeuser b9c324ef37 update Germn translation 2020-04-08 19:17:13 +02:00
Serge Noiraud 3601877a63 Narweb: possibility to have more than 2 downloads (#1024)
* Narweb: possibility to have more than 2 downloads

By default, I set this to 3 downloads.
If you want to have more than 3 downloads, you have only the variable
self.__max_download to change in the narrativeweb.py.

* better pylint score.
* Narweb: add md5 checksum for each file
* Display a message if the file doesn't exist

Fixes #11626
2020-04-05 10:18:39 +02:00
Serge Noiraud 2ce32d8c6b Narweb: Add family map to family pages (#1021)
* Narweb: Add family map to family pages
* Narweb: adapt css files to have a better look.

Fixes #011614
2020-04-05 10:17:42 +02:00
Serge Noiraud 23d2c8e694 Same date of birth and death gives an error. (#1011)
Fixes #011553
2020-04-04 09:52:50 +02:00
Serge Noiraud 28dc2e5158 Geography: add a popup for a bad tiles path (#1025) 2020-04-04 09:49:41 +02:00
Serge Noiraud 2baa6f5e40 Narweb: image size limit doesn't match tooltip (#1004)
Fixes #011536
2020-04-04 09:45:54 +02:00
John Ralls eb1b4c1eb5 Protect SQLite3 locale from old-style Unicode locale characters.
PySQLite3 requires that collation names have only ascii alphanumerics
and _. ICU locales use old-style Unicode specifiers and passing them to
create_locale will raise an exception. Translate those characters into
underscores.

Fixes #11639
2020-04-01 09:01:37 -07:00
vantu5z 51f2052cfe update Russian translation 2020-03-26 16:47:52 +03:00
Translator5 ccf6d59b17 [Language: Russian] Maintenance/gramps51 (#1027)
* some Russian translations updates

Новый перевод для неких случаев, но улучшающие понимание и выглядит более уместно. Также применены русские переводы слов, которые использовали до того англицизмы
2020-03-25 15:24:06 +03:00
Joan Creus 74d72f4dd0 Updating Catalan translation 2020-03-03 00:00:28 +01:00
Kaj Mikkelsen ce6f435cd4 Danish translation updated 2020-03-02 13:17:36 +01:00
Kaj Mikkelsen 5578a987bc Merge branch 'master' of github.com:gramps-project/gramps
Danish translation submited in da.po
2020-03-02 13:13:30 +01:00
Kaj Mikkelsen 7c09b05b82 Danish translation updated 2020-03-02 13:11:47 +01:00
Joan Creus 9ce92f41e3 Updating Catalan translation 2020-02-29 18:00:08 +01:00
Bernard Banko 77cdbb11b5 V&O changed to PZV to avoid ampersand 2020-02-25 23:44:55 +01:00
prculley 690e8b308e Smoother progress for Rebuid reference maps/secondary indices 2020-02-18 16:06:13 -06:00
prculley aeed7edd46 Prevent bsddb from being selected/used 2020-02-18 16:06:13 -06:00
prculley ae66ada99c Stop using bsddb in tests 2020-02-18 16:06:13 -06:00
prculley b52c118673 Deprecate BSDDB, but allow to be loaded with convert to sqlite 2020-02-18 16:06:13 -06:00
pehlm 72277db766 Minor update to Swedish translation 2020-02-07 18:30:09 +01:00
prculley 7ae77abead Fix GEDCOM export of estimated/calculated dates with modifers
Fixes #11513
2020-02-04 15:57:40 +00:00
Ross Gammon 04b1463746 New debian release - update changelog 2020-02-04 15:49:02 +00:00
vantu5z 1eeae2edf8 update Russian translation 2020-01-31 14:06:03 +03:00
Bernard Banko 740adc7070 Slovenian translation update 2020-01-26 21:45:38 +01:00
prculley a2dbdbb61a Fix typo in Russian translation 2020-01-23 09:33:24 -06:00
système 8d5b0c83ce typos in french translation #11534 #10534 2020-01-21 20:27:05 +01:00
Fedik 01afe251fb Ukrainian translation update 2020-01-21 18:20:30 +02:00
Oleh Astappiev 1fc212192e Update ukrainian translation (#992) 2020-01-20 09:56:54 +02:00
Serge Noiraud 763f2738dd NAVWEB and WEBCAL: some minor corrections (#980)
* NAVWEB: set unused media to False by default

Fixes #11496

* Navweb: Center correctly the map in the web page

* Webcal: Dropmenu doesn't work if only one year.

* Navweb: Add notes to updates and delete empty rows

* Navweb: some code cleanup.

* Navweb: remove unused variable

* Narweb: references enhancement on place pages.

* Navweb: convert the years in gregorian cal.

* Narweb: remove unused argument

* Narweb: really solves the pyICU problem

* WEBCAL: missing death symbol
2020-01-17 11:46:40 +01:00
John Ralls 152ed0b6bc Mac release of 5.1.2. 2020-01-11 13:14:41 -08:00
prculley 5624fb1490 Bump to v5.1.3 2020-01-10 11:43:58 -06:00
prculley 32c700c6bf Release Gramps 5.1.2 2020-01-10 11:29:07 -06:00
prculley 130740553d Update Changelog and NEWS files 2020-01-10 11:20:09 -06:00
Serge Noiraud a2ae7b93fc Geography: Add custom tiles provider (#976)
* Geography: Add custom tiles provider

Fixes #11416

* Geography: some cleanup
2020-01-10 17:40:33 +01:00
Serge Noiraud 675dfdbc70 Narrated Web: bad event links on media pages (#983)
* Navweb: Don't use media regions in some case:

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

Fixes #011500

* Navweb: side effect between event and media pages

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

* Narweb: Don't show the regions for a thumbnail
2020-01-10 17:38:41 +01:00
Serge Noiraud 8184f1b603 Narweb: enclosed places not correctly sorted. (#977)
* Narweb: enclosed places nor correctly sorted.

Fixes #11487

* Narweb: some cleanup
2020-01-10 17:32:58 +01:00
Nick Hall 34beeaad70 Revert pull request #965
This reverts commit 801be84465.
2020-01-09 19:35:47 +00:00
Sam Manzi 50d8b110ae Add context menu entries for Gramplet Bar (#937)
Link to help for Gramplets and the Gramplet Bar Menu

Issue #10919
2020-01-09 12:16:14 -06:00
Sam Manzi 539a443639 Pedigree View - Add Help context menu (#938)
* Add [About Pedigree View]

Fixes #10919
2020-01-09 12:15:10 -06:00
Serge Noiraud 06cb9d7ea6 Narweb: Private notes for home, intro and contact (#953)
If the notes are private, we can't use them in these pages.
2020-01-09 12:09:25 -06:00
Moorob 0264dbbe43 Update _pythonmime.py (#972)
When editing a Media image, Unknown is displayed if the image is a Tiff or Png.  This changes this to display TIFF image or PNG image instead.  Just a cosmetic change.
2020-01-09 12:06:49 -06:00
Paul Culley d693881b98 Update LDS Temple list (#984) 2020-01-09 12:04:15 -06:00
Paul Culley 801be84465 Fix Lat/Long translated NSEW display and entry in rtl language;Store Lat/Long in place objects with NSEW always in English (#965)
* Fix Lat/Long translated NSEW display and entry in rtl language

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

Issue #11335
2020-01-09 12:03:20 -06:00
Paul Culley f46e5479a7 Improve CSV import to allow places that are not in enclosed order (#942)
* Improve CSV import to allow places that are not in enclosed order

Fixes #11407

* Add LOG.debug report of new places to CSV import
2020-01-09 12:01:56 -06:00
Paul Culley 7807ff8a6d Make GuiDestinationOption Folder Icon start in users directory (#979)
Fixes #10917
2020-01-09 12:00:29 -06:00
Paul Culley 672603c8ae Fix import file chooser filter to accept upper case extensions (#962)
* Fix import file chooser filter to accept upper case extensions

Fixes #11463

* Allow import file filter to accept case insensitive extensions

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

* Fix Progen import to correctly handle AKA surnames

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

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

Fixes #11457
2020-01-09 11:36:38 -06:00
Paul Culley ddb29b1628 Fix GEDCOM import when family is missing; import created a missing note (#971)
Fixes #11472
2020-01-09 11:35:28 -06:00
Paul Culley 1a8406e2e4 Fix Dashboard for adding Gramplet crash in Slovenian (#978)
Fixes #11491
2020-01-09 11:34:15 -06:00
Zdeněk Hataš 09e89549de Update Czech translation 2020-01-07 16:40:08 +01:00
Joan Creus afaeb7c995 Updating Catalan translation 2019-12-30 17:49:56 +01:00
Joan Creus 6fa30b889d Updating Catalan translation 2019-12-21 18:21:41 +01:00
Jiří Vejda 1916383a28 Update date parsing for czech locale (#968)
* Fixes bug ID 0011470: some date variants in CS language are not consider valid
2019-12-15 13:03:30 +01:00
romjerome 379c96ee6a update french translation (#969) 2019-12-15 12:59:51 +01:00
Serge Noiraud 3938fac0d4 Narrative web: New features (#842)
* Narrative: Don't use event links if no event pages

+ some pylint changes

* map popup links must be visible for all stylesheet

* Narrative web: add scrollbar in popup content

* Narweb: Some improvement in popup

* Narweb: remove unused variable.
2019-12-15 09:59:58 +01:00
Serge Noiraud ac37f11b87 Add tooltips for places in clean input data tool (#905)
* Add tooltips for places in clean input data

* Better pylint score for clean input data
2019-12-14 13:40:49 +01:00
Serge Noiraud fd072528d2 Narrative web: Some improvements (#931)
* Narrative web: Some improvements

- Event type, Date and place in bold
- Family events shifted one column on the left
- ancestortree css file before narrative-screen to allow modification
- Adaptation for all themes

Fixes #11393

* Narrative web: forgot a comma during last merge

* Allow scrolling if the ancestor tree is too large

* Translation of alternate stylesheets name

* Crash when using the family map

* Translate only the css title, not the file name

* Some minor corrections to css files

* Narrative web: open layers optimizations

* Narrative web: open layers and link in popup

* Narrative web: some events missing in popup

* Narrative web: Reference date column too large.

Allow the place title to use the maximum of width

* NarrativeWeb: shift children from one column

- adapt the css files to the new table
- some inconsistencies between the source and the css

* Make the drop down menu button size usable

* NarrativeWeb: Incorrect rendering when use of

alternate place name

* NarWeb: removing the unused image heigth option

* Click on image link gives a not found URL.

If the image used in home, introduction or contact page
is not already associated by a filtered object, we have a 404 error

* NarWeb: Index images and thumbnails pages optional

* Narweb: Improper Notes subtitle in web pages

* Narweb: List index truncated after 999

* Narweb: NarrativeWeb usage enhancements

* Narweb: avoid duplicate files in archive.

* Narweb: Add an optional news and updates page:

When you have a big database and you make intensive updates, it's
useful to have a list of the last modified objects.
you can select the period to show and how many records to see per object type.

* Narweb: forgot to add the module updates.py

* Narweb: some minor changes (pylint, img index bug)

* Popups don't work with the last openlayers version

It only needs to move the scripts at the end of the html body.
Use addEventListener instead of onload in the html body statement.

* Narweb: some popup problems

* Narweb: better score for pylint
2019-12-14 11:55:16 +01:00
romjerome 7b45bbf72e fix tagref support (#956)
Add missing code for event, repository, source, citation and place
2019-12-13 10:59:42 +01:00
romjerome aea9ef3645 [Tree doc Tex] fix "-" char on place name (#961)
* fix "-" char on place name

"-" can lead to confusion, 
generating text out of the box
with PDF file format
2019-12-13 10:55:15 +01:00
Serge Noiraud 5157700da3 WEBCAL: Trying to have a better web calendar (#917)
* WEBCAL: Have config files for multiple databases.

* WEBCAL: best management for the narrative web link

* WEBCAL: use arrows, compress monthname and arrows

adapt the css files accordingly

* WEBCAL: use arrows in one day within a year

compress monthname and arrows
adapt the css files accordingly

* WEBCAL: index go now to the current month.

before this patch, the default month for the year calendar
was the month found at the web calendar generation.
Now, even if you create this report 8 months ago, the current
index will point to the current month.

* WEBCAL: trailing space.

* WEBCAL: year glance + some pylint improvements

* WEBCAL: incorrect width size with Mainz css.

* WEBCAL: problem with Visually css file

* WEBCAL: The table cell is highlighted when hover.

* WEBCAL: better pylint score.

* WEBCAL: Better rendering for full yer at a glance

* WEBCAL: better rendering on small devices

* WEBCAL: better quality code
2019-12-12 18:10:25 +01:00
romjerome 05f7744cba typo on custom size (#963) 2019-12-09 20:25:07 +01:00
Paulo Henrique Moraes fc9e5c2a4a Updated translation. (#952) 2019-11-27 11:51:50 -06:00
Paul Culley bfc76a08d4 Fix duplicated "døde døde" Norwegion Translation for libnarrate (#950)
Fixes #11429
2019-11-11 15:47:11 +11: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 (#924)
Fixes #10124

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 (#922)
* Fix display of GPS coordinates in Places view for RTL languages

Issue #11335

* Fix place editor lat/long entry for RTL languages

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

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 (#946)
When image width > 800, the referenced regions are incorrectly placed

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

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 (#936)
* 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 (#940)
Fixes #11384

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 (#943)
Fixes #10836
2019-10-26 10:14:15 +11:00
avma 2c49461529 Hebrew translation-current version 5.12 (#939)
...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 (#932)
Fixes #11390

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 (#930)
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... #598 

Fixes #11395
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 (#920)
Fixes #11380, #11339

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 #918 (#933) 2019-10-17 12:06:38 +11:00
romjerome 5e9d79ac6f Update POTFILES.in/skip for missing translations (#918)
* 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 (#929)
* Narrative web: Ancestor's tree display looks weird

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

Fixes #11382

* 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 (#915)
Fixes #11363

* 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 (#923)
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 (#916)
* NarrativeWeb: dates not localised in place pages

Fixes #11357

* WEBCAL: home link translated to lowercase

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

* 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. (#928)
Fixes #11378

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 (#927)
Fixes #11381
2019-10-17 08:47:55 +11:00
Paul Culley c312c96987 Fix Descendant Tree report for HandleError when no parents on family (#925)
Fixes #11365
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 #910 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 #10641
2019-10-08 18:43:42 +01:00
prculley bb5b03dd78 Fix Reorder ID tool so subsequent db additions used next possible ID
Fixes #11346
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 #908 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 #11336.
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 #903 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 #9845
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 #11349
2019-10-03 20:33:17 +01:00
Nick Hall 48dfca57e2 Merge pull request #913 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 #11316
2019-10-03 19:56:27 +01:00
SNoiraud 57d8dcd574 WEBCAL: Wrong web calendar title on home page
Fixes #11354

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 #11351
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 (#907)
Fixes #11341

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 (#909)
* 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
prculley 4859c14aaa Fix typo in merge 2019-08-12 16:58:55 -05: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
romjerome 56afb5bca9 Add missing 'get_number_of_citations' method (#859)
* Add missing 'get_number_of_citations' method

* update db test for bsddb

* fix trailing whitespace

* typo
2019-08-07 13:47:09 -05: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 #11150
2019-07-07 19:25:42 +02:00
SNoiraud ce4cd33139 Narrative web: Add Stamen map
Fixes #05984
2019-07-07 19:24:44 +02:00
466 changed files with 93248 additions and 97924 deletions
-3
View File
@@ -7,9 +7,6 @@ build/
dist/
# Gramps
data/tips.xml
data/holidays.xml
po/.intltool-merge-cache
docs/_build/
# Editing
+31 -14
View File
@@ -23,16 +23,11 @@
# After changing this file, check it on:
# http://lint.travis-ci.org/
sudo: required
dist: trusty
os: linux
dist: xenial
language: python
python:
- 3.3 # This is irrelevant, because the virtualenv is not used at all
# FIXME: The minimum requirement for Gramps is Python 3.2, so a test environment
# for Python 3.2 should be added to this environment which is Python 3.3. It
# will not be possible to run coverage under Python 3.2, because coverage is
# Python 3.3 (or above) only.
- 3.5
addons:
apt:
@@ -51,7 +46,7 @@ addons:
- python3-dev
- python3-nose
- python3-mock
- python3-pyicu
- python3-icu
- python3-coverage
- python3-jsonschema
# lxml dependencies. for merge_ref_test to work
@@ -95,11 +90,11 @@ before_script:
# set GRAMPS_RESOURCES for locale, data,image and documentation
- export GRAMPS_RESOURCES=.
# Install addons
- mkdir -p ~/.gramps/gramps51/plugins/
- wget https://github.com/gramps-project/addons/raw/master/gramps51/download/CliMerge.addon.tgz
- tar -C ~/.gramps/gramps51/plugins -xzf CliMerge.addon.tgz
- wget https://github.com/gramps-project/addons/raw/master/gramps51/download/ExportRaw.addon.tgz
- tar -C ~/.gramps/gramps51/plugins -xzf ExportRaw.addon.tgz
- mkdir -p ~/.gramps/gramps52/plugins/
- wget https://github.com/gramps-project/addons/raw/master/gramps52/download/CliMerge.addon.tgz
- tar -C ~/.gramps/gramps52/plugins -xzf CliMerge.addon.tgz
- wget https://github.com/gramps-project/addons/raw/master/gramps52/download/ExportRaw.addon.tgz
- tar -C ~/.gramps/gramps52/plugins -xzf ExportRaw.addon.tgz
script:
# Ignore the virtualenv entirely. Use nosetests3, python3 (3.4.0) and coverage
@@ -127,3 +122,25 @@ after_success:
# picks up coverage from /usr/bin, rather than from
# /home/travis/virtualenv/python3.3.6/bin/
- PATH=/usr/bin:$PATH bash <(curl -s https://codecov.io/bash)
stages:
- test
# Only execute deployment stage on tagged commits, and from our repository
# (e.g. not PRs).
- name: deploy
if: tag IS PRESENT AND repo = gramps-project/gramps
env:
global:
- TWINE_USERNAME=__token__
jobs:
include:
# Deploy source distribution
- stage: deploy
name: Deploy source distribution and wheel
install: skip
script:
- python3 setup.py sdist bdist_wheel
- python3 -m pip install twine
- python3 -m twine upload --repository testpypi --skip-existing dist/*
+312 -187
View File
@@ -1,80 +1,15 @@
2019-09-14 SNoiraud <Serge.Noiraud@free.fr>
2020-08-11 prculley <paulr2787@gmail.com>
* gramps/gen/filters/rules/place/_withinarea.py: Fix deprecation
warning in withinarea rule
* po/ar.po, po/bg.po, po/br.po, po/ca.po, po/cs.po, po/da.po,
po/el.po, po/en_GB.po, po/eo.po, po/es.po, po/fi.po, po/fr.po,
po/ga.po, po/he.po, po/hr.po, po/hu.po, po/is.po, po/it.po,
po/ja.po, po/lt.po, po/mk.po, po/nb.po, po/nl.po, po/nn.po,
po/pl.po, po/pt_BR.po, po/pt_PT.po, po/ro.po, po/ru.po, po/sk.po,
po/sl.po, po/sq.po, po/sr.po, po/sr_Latn.po, po/sv.po, po/ta.po,
po/tr.po, po/uk.po, po/vi.po, po/zh_CN.po, po/zh_HK.po, po/zh_TW.po:
Remove duplicates in Translations
2019-09-14 Nick Hall <nick-h@gramps-project.org>
* gramps/gui/grampsgui.py: Disable development warning message
2019-09-13 Jonas Hahnfeld <hahnjo@hahnjo.de>
* 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.
2019-09-11 SNoiraud <Serge.Noiraud@free.fr>
* gramps/gui/filters/sidebar/_personsidebarfilter.py: Using regex in
the sidebar gives different result from previous gramps release. Fixes #11321
2019-09-12 Jérôme Rapinat <romjerome@yahoo.fr>
* po/fr.po: Add missing French translation strings
2019-09-10 Gil da Costa <gdacosta@sommier-colas.fr>
* po/fr.po: Update French translation
2019-09-09 prculley <paulr2787@gmail.com>
* gramps/plugins/docgen/odfdoc.py: Fix odt output when db owner has
XML unfriendly chars ('&') Fixes #11327
2019-09-11 John Bickmore <johnbickmore@users.noreply.github.com>
* README.md: 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-08 SNoiraud <Serge.Noiraud@free.fr>
* gramps/plugins/webreport/narrativeweb.py: Remove
reload_custom_filters to conform to PR894
2019-09-07 prculley <paulr2787@gmail.com>
* gramps/cli/grampscli.py: Fix CLI crash when generating reports Fixes #11318, #11213
2019-09-06 prculley <paulr2787@gmail.com>
* gramps/gui/views/listview.py: Fix Statusbar HandleError on merge
families Fixes #11320, #11294, #11279
2019-09-12 Avi Markovitz <avi.markovitz@gmail.com>
* po/he.po: Update Hebrew translation
2019-09-12 Matti Niemelä <matti.u.niemela@gmail.com>
* po/fi.po: Fix translation in Finnish
2019-09-12 Matti Niemelä <matti.u.niemela@gmail.com>
* po/fi.po: Update finnish translation
2019-09-11 vantu5z <vantu5z@mail.ru>
* po/ru.po: update Russian translation
2019-09-10 pehlm <par.ekholm@pekholm.org>
* po/sv.po: Update Swedish translation
2019-09-10 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* po/de.po: Update German translation
2019-09-10 Nick Hall <nick-h@gramps-project.org>
2020-08-10 prculley <paulr2787@gmail.com>
* 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,
@@ -83,195 +18,385 @@
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
po/zh_TW.po: Clean up translations for Default/Home Person
2019-09-10 Nick Hall <nick-h@gramps-project.org>
2020-08-10 Leonhaeuser <mirko@leonhaeuser.de>
* po/gramps.pot: Update translation template for new release
* po/de.po: Update German translation
2019-08-27 Avi Markovitz <avi.markovitz@gmail.com>
2020-08-10 Serge Noiraud <Serge.Noiraud@laposte.net>
* po/he.po: Update Hebrew translation
* gramps/gui/views/treemodels/eventmodel.py: Events View: "Main
Participants" column does not (#1075) show the full list of participants when expanded. Fixes #11805
2019-07-11 Pedro Albuquerque <palbuquerque73@gmail.com>
2020-08-10 Paul Culley <paulr2787@gmail.com>
* po/pt_PT.po: Update Portuguese (Europe) translation
* po/pl.po: Fix Charts/Pedigreeview tooltip Polish translation
(#1092) Fixes #11852
2019-06-24 Milo Ivir <mail@milotype.de>
2020-08-10 Krystian Safjan <ksafjan@gmail.com>
* po/hr.po: Update croatian translation - update with newest/current .pot file - translation is complete - corrections in wording and some missing accelerators
* po/gramps.pot, po/pl.po: Fix and add objects to Polish translation
of Gramps (#1088)
2019-09-02 prculley <paulr2787@gmail.com>
2020-08-06 John Ralls <jralls@ceridwen.us>
* gramps/gui/widgets/styledtexteditor.py: Fix missing tooltip
translations in the Note editor toolbar Fixes #11289
* mac/gramps.modules: Use current Gtk release instead of Gtk-3.14.
2019-09-01 SNoiraud <Serge.Noiraud@free.fr>
2020-08-06 John Ralls <jralls@ceridwen.us>
* gramps/gen/filters/rules/place/_withinarea.py: Avoid bad
coordinates in the ref place
* mac/gramps.modules: Upgrade pymodules for Python 3.8
compatibility.
2019-08-28 SNoiraud <Serge.Noiraud@free.fr>
2020-07-09 prculley <paulr2787@gmail.com>
* gramps/gen/filters/rules/place/_withinarea.py: Avoid alphabetic
characters in filter rules
* gramps/plugins/export/exportxml.py: Fix XML export when 'Group-as"
name contains XML invalid chars Fixes #11834
2019-08-23 SNoiraud <Serge.Noiraud@free.fr>
2020-07-08 SNoiraud <serge.noiraud@laposte.net>
* 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
* gramps/plugins/webreport/basepage.py: NarWeb: Province place-type
is not displayed
2019-08-31 prculley <paulr2787@gmail.com>
2020-07-07 prculley <paulr2787@gmail.com>
* gramps/gen/plug/docgen/graphdoc.py: Fix Graph outputs for multiple
page PDF Postscript Fixes #11305
* gramps/gui/managedwindow.py: Fix ManagedWindow so that new windows
don't appear offscreen when system 'screen' sizes change in part
time multi-monitor setups. Fixes #11831
2019-08-31 prculley <paulr2787@gmail.com>
2020-07-03 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
* gramps/gui/viewmanager.py: Fix menus when db fails to open due to
upgrade/downgrade etc. Fixes #11604
2019-08-31 prculley <paulr2787@gmail.com>
2020-07-03 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
* gramps/gui/plug/_windows.py: Fix issue with attach source tool,
results panel Fixes #11780
2019-08-31 SNoiraud <Serge.Noiraud@free.fr>
2020-07-03 prculley <paulr2787@gmail.com>
* gramps/gui/widgets/validatedmaskedentry.py: Cursor position error
in lat and long fields Fixes #11310
* gramps/plugins/export/exportgedcom.py: Fix GEDCOM export; don't
include ADDR when address is missing Fixes #11825
2019-08-30 SNoiraud <Serge.Noiraud@free.fr>
2020-07-02 SNoiraud <serge.noiraud@laposte.net>
* gramps/plugins/tool/removespaces.py: Avoid all characters looking
like a dash hyphen non breaking hyphen figure dash em dash horizontal bar Fixes #11308
* gramps/gui/editors/editplace.py,
gramps/gui/editors/editplaceref.py: Coordinates containing a comma
instead of a period Fixes #11823
2019-08-30 SNoiraud <Serge.Noiraud@free.fr>
2020-07-23 Leonhaeuser <mirko@leonhaeuser.de>
* data/css/Web_Mainz.css: Narrative web: Mainz Style sheet weird
looking Fixes #11282
* po/de.po: German translation fixed typo
2019-09-02 SNoiraud <Serge.Noiraud@free.fr>
2020-07-17 niememat <niememat@gmail.com>
* gramps/plugins/view/relview.py: Set symbols for the active person
* po/fi.po: Update finnish translation
2019-08-28 SNoiraud <Serge.Noiraud@free.fr>
2020-06-07 Tian Shixiong <tiansworld@fedoraproject.org>
* gramps/plugins/view/relview.py: Set good symbols for marriage,
baptism, cremation and burial
* po/zh_CN.po: Update Simplified Chinese translation for gramps51
branch
2019-08-28 SNoiraud <Serge.Noiraud@free.fr>
2020-07-08 Serge Noiraud <Serge.Noiraud@laposte.net>
* gramps/plugins/view/relview.py: Reduce the size of the sexuality
symbol in relview Fixes #11295
* gramps/plugins/webreport/basepage.py,
gramps/plugins/webreport/person.py,
gramps/plugins/webreport/surname.py: NarrativeWeb should show
patronymic in individuals (#1048) In the individuals and in surnames pages, we should show the
complete name like defined in the display tab from the narrative web
configuration. Fixes #04404
2019-08-28 prculley <paulr2787@gmail.com>
2020-07-08 Serge Noiraud <Serge.Noiraud@laposte.net>
* gramps/gui/widgets/styledtexteditor.py: Fix exception when editing
Note with italics/bold etc. in non English Fixes #11284
* gramps/plugins/webreport/person.py,
gramps/plugins/webreport/place.py: Narrated Website Google Maps
Output JS Warning (#1038) SensorNotRequired: The sensor parameter is no longer required for
the Maps JavaScript API. It won't prevent the Maps JavaScript API
from working correctly, but we recommend that you remove the sensor
parameter from the script element. Fixes #011654
2019-08-27 Nick Hall <nick-h@gramps-project.org>
2020-01-11 giansalvo <pioggia3+github@gmail.com>
* gramps/gui/views/pageview.py: Restore keybindings for gramplet
bars Resolves #11297.
* gramps/gen/filters/rules/person/_isdefaultperson.py,
gramps/gen/filters/rules/person/_islessthannthgenerationancestorofd
efaultperson.py, gramps/gui/views/navigationview.py,
gramps/plugins/lib/libpersonview.py,
gramps/plugins/view/fanchartview.py,
gramps/plugins/view/geoclose.py,
gramps/plugins/view/geofamclose.py,
gramps/plugins/view/geomoves.py, gramps/plugins/view/geoperson.py,
gramps/plugins/view/pedigreeview.py,
gramps/plugins/view/relview.py, po/ar.po, po/bg.po, po/br.po,
po/ca.po, po/cs.po, po/da.po, po/de.po, po/el.po, po/en_GB.po,
po/eo.po, po/es.po, po/fi.po, po/fr.po, po/ga.po, po/gramps.pot,
po/he.po, po/hr.po, po/hu.po, po/is.po, po/it.po, po/ja.po,
po/lt.po, po/mk.po, po/nb.po, po/nl.po, po/nn.po, po/pl.po,
po/pt_BR.po, po/pt_PT.po, po/ro.po, po/ru.po, po/sk.po, po/sl.po,
po/sq.po, po/sr.po, po/sr_Latn.po, po/sv.po, po/ta.po, po/tr.po,
po/uk.po, po/vi.po, po/zh_CN.po, po/zh_HK.po, po/zh_TW.po: Fix bug
0011078: 'Default person' instead of 'Home person' - modified button hints - modified filter rules names and descriptions - modified .pot and .po files - substituted 'home person' with 'Home Person'
2019-08-27 Nick Hall <nick-h@gramps-project.org>
2020-07-07 Leonhaeuser <mirko@leonhaeuser.de>
* gramps/gui/plug/quick/_quickreports.py: Fix bug in web connection
menu launching incorrect web site Resolves #11280.
* po/de.po: Germen fixed translation error of Media:
2019-08-26 SNoiraud <Serge.Noiraud@free.fr>
2020-07-04 Leonhaeuser <mirko@leonhaeuser.de>
* 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
* po/de.po: Fix typo
2019-08-26 SNoiraud <Serge.Noiraud@free.fr>
2020-07-01 Leonhaeuser <mirko@leonhaeuser.de>
* gramps/gui/configure.py, gramps/gui/widgets/grampletbar.py: Error
when checking option to add Quit to Taskbar Fixes #11290
* po/de.po: update German translation
2019-08-25 SNoiraud <Serge.Noiraud@free.fr>
2020-02-16 Nick Hall <nick-h@gramps-project.org>
* 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
* gramps/gui/editors/editeventref.py: Use event attribute types in
the event reference editor In the event reference editor, custom event attribute types should
be used rather than the default person attribute types. Fixes #11576.
2019-08-24 Ross Gammon <rossgammon@mail.dk>
2020-04-23 SNoiraud <serge.noiraud@laposte.net>
* debian/changelog: Finalise Debian changelog for 5.1.0 release
* gramps/gui/configure.py, po/ar.po, po/bg.po, po/br.po, po/ca.po,
po/cs.po, po/da.po, po/de.po, po/el.po, po/en_GB.po, po/eo.po,
po/es.po, po/fi.po, po/fr.po, po/ga.po, po/he.po, po/hr.po,
po/hu.po, po/is.po, po/it.po, po/ja.po, po/lt.po, po/mk.po,
po/nb.po, po/nl.po, po/nn.po, po/pl.po, po/pt_BR.po, po/pt_PT.po,
po/ro.po, po/ru.po, po/sk.po, po/sl.po, po/sq.po, po/sr.po,
po/sr_Latn.po, po/sv.po, po/ta.po, po/tr.po, po/uk.po, po/vi.po,
po/zh_CN.po, po/zh_HK.po, po/zh_TW.po: Fix typo in gui/configure.py
and translation files Fixes #11665
2019-08-24 Ross Gammon <rossgammon@mail.dk>
2020-05-07 prculley <paulr2787@gmail.com>
* debian/control: Bump gtk+ version to 3.12 & add
gir1.2-geocodeglib-1.0 dependency
* gramps/plugins/tool/verify.py: Fix Verify tool bug caused by bad
change in GObject introspection Fixes: #11708
2019-08-24 Ross Gammon <rossgammon@mail.dk>
2020-06-22 pehlm <par.ekholm@pekholm.org>
* debian/copyright: Update copyrights
* po/sv.po: A little adjustment to Swedish translation
2019-08-24 Ross Gammon <rossgammon@mail.dk>
2020-06-21 pehlm <par.ekholm@pekholm.org>
* debian/changelog, debian/control: Merge last 5.0.2 debian release
information into 51 maintenance branch
* po/sv.po: Updates to Swedish translation
2019-08-23 Sebastian Schubert <schubert.seb@gmail.com>
2020-06-20 Nick Hall <nick-h@gramps-project.org>
* README.md: Add optional fontconfig package to README.md
* gramps/gen/utils/grampslocale.py: Remove Japanese from the
incomplete translations Japanese now has a coverage of 83.2% which is above the 70%
threshold.
2019-08-23 Sebastian Schubert <schubert.seb@gmail.com>
2020-06-20 Megumi Sakata <megumi.sakata.k@gmail.com>
* NEWS: Fix typo in NEWS
* po/ja.po: Update Japanese translation
2019-08-30 Zdeněk Hataš <zdenek.hatas@gmail.com>
2020-06-07 Serge Noiraud <Serge.Noiraud@laposte.net>
* po/cs.po: Update Czech translation
* gramps/plugins/webreport/person.py,
gramps/plugins/webreport/place.py: Navweb: incorrect link type for
osm css files (#1071) Fixes #011787
2019-08-29 Zdeněk Hataš <zdenek.hatas@gmail.com>
2020-06-07 prculley <paulr2787@gmail.com>
* po/cs.po: Update Czech translation
* data/tests/imp_sample.gramps: Fix import test for change cause by
commit a2c66417 which was Fix GEDCOM import for bad source title
when sources precede references.
2019-08-25 Mirko Leonhaeuser <mirko@leonhaeuser.de>
2020-06-07 prculley <paulr2787@gmail.com>
* po/de.po: German translation updated
* : commit e614a79cef213f57552ceb566eb2d294c9435231 Author: vantu5z
<vantu5z@mail.ru> Date: Tue Apr 28 15:23:25 2020 +0300
2019-08-24 John Ralls <jralls@ceridwen.us>
2020-03-16 prculley <paulr2787@gmail.com>
* mac/Info.plist, mac/gramps.modules: Release Gramps-5.1.0 on Mac.
* gramps/gen/plug/menu/_enumeratedlist.py: Fix some reports for CLI
where warning message about Value not found Fixes #11621
2019-08-16 John Ralls <jralls@ceridwen.us>
2020-03-16 prculley <paulr2787@gmail.com>
* 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.
* gramps/cli/plug/__init__.py: Fix Genealogy Tree reports for crash
in CLI Fixes #11621
2019-06-11 John Ralls <jralls@ceridwen.us>
2020-04-10 prculley <paulr2787@gmail.com>
* mac/gramps.modules: Fix graphviz and exiv2 download URLs.
* gramps/gui/views/treemodels/treebasemodel.py: Add uistate to tree
views filter initialization Fixes #11657
2019-06-11 John Ralls <jralls@ceridwen.us>
2020-04-04 prculley <paulr2787@gmail.com>
* mac/gramps.modules: Update dependency versions and download paths.
* gramps/plugins/lib/libgedcom.py: Fix GEDCOM import for bad source
title when sources precede references. Fixes #11610
2019-08-22 vantu5z <vantu5z@mail.ru>
2020-03-31 prculley <paulr2787@gmail.com>
* gramps/plugins/tool/removeunused.py: Fix RemoveUnused tool for
crash caused by Gtk introspection bug Fixes #11634
2020-03-30 prculley <paulr2787@gmail.com>
* gramps/gen/plug/_manager.py, gramps/gen/plug/_pluginreg.py,
gramps/gui/pluginmanager.py,
gramps/plugins/lib/maps/messagelayer.py: Fix some Python syntax
errors that appear in v3.8.x Fixes #11641
2020-03-26 SNoiraud <serge.noiraud@laposte.net>
* gramps/gui/editors/displaytabs/eventrefmodel.py,
gramps/plugins/gramplet/events.py: Age: test if the death is the
same day as birth
2020-03-25 SNoiraud <serge.noiraud@laposte.net>
* gramps/gui/editors/displaytabs/eventrefmodel.py,
gramps/plugins/gramplet/events.py: Suppress age = 0 days in events
list If the reference event date is equal to the event date, don't show
the age except if the date is estimated, calculated, ... Fixes #0007745
2020-03-23 prculley <paulr2787@gmail.com>
* gramps/gui/viewmanager.py: Fix Dashboard Gramplets to update
during db close when not shown Fixes #11632
2020-03-14 prculley <paulr2787@gmail.com>
* gramps/grampsapp.py: Fix Windows GUI mode startup for crash with
some languages Fixes: #11612. #11490, #11518, #9179, #9201, #9266
2020-03-07 prculley <paulr2787@gmail.com>
* gramps/gen/db/generic.py, gramps/plugins/db/dbapi/dbapi.py: Fix
dbapi to support "Abandon Changes & Quit" feature Fixes #11599
2020-02-08 prculley <paulr2787@gmail.com>
* gramps/gen/lib/grampstype.py: Fix GrampsType for comparison bug
with empty string as one value Fixes #11563
2020-05-07 prculley <paulr2787@gmail.com>
* gramps/plugins/tool/verify.py: Fix Verify tool bug caused by bad
change in GObject introspection Fixes: #11708
2020-04-24 niememat <niememat@gmail.com>
* po/fi.po: Fix translation in Finnish
2020-04-18 Joan Creus <joan.creusandreu@gmail.com>
* po/ca.po: Updating Catalan translation
2020-04-18 Joan Creus <joan.creusandreu@gmail.com>
* po/ca.po: Updating Catalan translation
2020-01-20 prculley <paulr2787@gmail.com>
* gramps/gen/datehandler/__init__.py: Fix Date Display so that it
uses LC_TIME if defined Fixes #11230
2020-01-12 prculley <paulr2787@gmail.com>
* gramps/gen/lib/styledtext.py,
gramps/gen/lib/test/styledtext_test.py: Fix StyledText so serialize
will match for style list order changes Fixes #11529
2020-01-08 prculley <paulr2787@gmail.com>
* gramps/gui/managedwindow.py: Try to fix exceptions on
ManagedWindow close Issues #10252, #10642, #10821, #11163, #11440, #11476, #11482,
#11508
2020-04-08 John Ralls <jralls@ceridwen.us>
* : Merge John Ralls's 'bug11639' into maintenance/gramps51
2020-04-04 Serge Noiraud <Serge.Noiraud@laposte.net>
* gramps/plugins/tool/verify.py: Same date of birth and death gives
an error. (#1011) Fixes #011553
2020-04-04 Serge Noiraud <Serge.Noiraud@laposte.net>
* gramps/plugins/lib/maps/osmgps.py: Geography: add a popup for a
bad tiles path (#1025)
2020-04-04 Serge Noiraud <Serge.Noiraud@laposte.net>
* gramps/plugins/webreport/narrativeweb.py: Narweb: image size limit
doesn't match tooltip (#1004) Fixes #011536
2020-04-01 John Ralls <jralls@ceridwen.us>
* gramps/plugins/db/dbapi/sqlite.py: Protect SQLite3 locale from
old-style Unicode locale characters. PySQLite3 requires that collation names have only ascii
alphanumerics and _. ICU locales use old-style Unicode specifiers
and passing them to create_locale will raise an exception. Translate
those characters into underscores. Fixes #11639
2020-03-26 vantu5z <vantu5z@mail.ru>
* po/ru.po: update Russian translation
2019-08-22 pehlm <par.ekholm@pekholm.org>
2020-03-25 Translator5 <Translator5@users.noreply.github.com>
* po/sv.po: Update Swedish translation with the new gramps.pot
* po/ru.po: [Language: Russian] Maintenance/gramps51 (#1027) * some Russian translations updates Новый перевод для неких случаев, но
улучшающие понимание и выглядит
более уместно. Также применены
русские переводы слов, которые
использовали до того англицизмы
2019-08-21 prculley <paulr2787@gmail.com>
2020-03-03 Joan Creus <joan.creusandreu@gmail.com>
* Bump to 5.1.1
* po/ca.po: Updating Catalan translation
2020-02-29 Joan Creus <joan.creusandreu@gmail.com>
* po/ca.po: Updating Catalan translation
2020-02-25 Bernard Banko <beernarrd@gmail.com>
* po/sl.po: V&O changed to PZV to avoid ampersand
2020-02-07 pehlm <par.ekholm@pekholm.org>
* po/sv.po: Minor update to Swedish translation
2020-01-07 prculley <paulr2787@gmail.com>
* data/tests/exp_sample_ged.ged,
gramps/plugins/export/exportgedcom.py: Fix GEDCOM export of
estimated/calculated dates with modifers Fixes #11513
2020-01-11 Ross Gammon <rossgammon@mail.dk>
* debian/changelog: New debian release - update changelog
2020-01-31 vantu5z <vantu5z@mail.ru>
* po/ru.po: update Russian translation
2020-01-26 Bernard Banko <beernarrd@gmail.com>
* po/sl.po: Slovenian translation update
2020-01-23 prculley <paulr2787@gmail.com>
* po/ru.po: Fix typo in Russian translation
2020-01-21 système <romjerome@users.noreply.github.com>
* po/fr.po: typos in french translation #11534 #10534
2020-01-21 Fedik <getthesite@gmail.com>
* po/uk.po: Ukrainian translation update
2020-01-11 John Ralls <jralls@ceridwen.us>
* mac/Info.plist, mac/gramps.modules: Mac release of 5.1.2.
2020-01-10 prculley <paulr2787@gmail.com>
* gramps/gen/const.py, gramps/gui/grampsgui.py, gramps/version.py:
Bump to v5.1.3
+4 -1
View File
@@ -32,6 +32,9 @@ We do not check all dependencies of Gramps, see README for a list of
all required and optional dependencies. Missing dependencies will
result in runtime errors.
To install all needed dependences you can use (in Ubuntu):
sudo apt-get build-dep gramps
To build and install, whether from a tarball or git repo:
python3 setup.py build
sudo python3 setup.py install
@@ -48,7 +51,7 @@ things like MIME type and desktop entries.
See below for ways to invoke Gramps.
Typical install directories in linux (ubuntu) are:
Typical install directories in linux (Ubuntu) are:
* /usr/local/lib/python3.4/dist-packages/gramps/ : the gramps python module
* /usr/local/share/mime-info : mime info so gramps opens files automatically
* /usr/local/share/icons/gnome : our icons
-3
View File
@@ -22,9 +22,6 @@ recursive-include test *
recursive-include windows *
# Remove files created in the build
exclude data/tips.xml
exclude data/holidays.xml
exclude po/.intltool-merge-cache
global-exclude *.pyc
global-exclude *.pyo
+122
View File
@@ -1,3 +1,125 @@
2020-08-11
Version 5.1.3
* Update ca, de, fi, fr, ja, pl, ru, sl, sv, uk, zh_CN translation
* Events View: "Main Participants" column does not show the full list
of participants when expanded.
* mac/gramps.modules: Use current Gtk release instead of Gtk-3.14.
* mac/gramps.modules: Upgrade pymodules for Python 3.8 compatibility.
* Fix XML export when 'Group-as" name contains XML invalid chars
* Fix NarWeb: Province place-type is not displayed
* Fix ManagedWindow so that new windows don't appear offscreen when
system 'screen' sizes change in part time multi-monitor setups.
* Fix menus when db fails to open due to upgrade/downgrade etc.
* Fix issue with attach source tool, results panel
* Fix GEDCOM export; don't include ADDR when address is missing
* EditPlace: Allow Coordinates containing a comma instead of a period
* NarrativeWeb:
* Should show patronymic in individuals.
In the individuals and in surnames pages, we should show the
complete name like defined in the display tab from the narrative web
configuration.
* Fix Narrated Website Google Maps Output JS Warning SensorNotRequired
* Fix incorrect link type for osm css files
* Fix image size limit doesn't match tooltip
* Update all translations for changes from 'Default' to 'Home' Person
* Change GUI references to 'Home Person' instead of 'Default Person'
* Use event attribute types in the event reference editor.
In the event reference editor, custom event attribute types should
be used rather than the default person attribute types.
* Fix Verify tool bug caused by bad change in GObject introspection
* Fix RemoveUnused tool for crash caused by Gtk introspection bug
* Fix import test for change cause by previous change which was:
Fix GEDCOM import for bad source title when sources precede references.
* Fix GEDCOM import for bad source title when sources precede references.
* Fix some reports for CLI where warning message about Value not found
* Fix Genealogy Tree reports for crash in CLI
* Add uistate to tree views filter initialization
* Fix some Python syntax errors that appear in v3.8.x
* Suppress age = 0 days in events list. If the reference event date is equal
to the event date, don't show the age except if the date is estimated,
calculated, etc.
* Fix Dashboard Gramplets to update during db close when not shown
* Fix Windows GUI mode startup for crash with some languages
* Fix dbapi to support "Abandon Changes & Quit" feature
* Fix GrampsType for comparison bug with empty string as one value
* Fix Date Display so that it uses LC_TIME if defined
* Fix StyledText so serialize will match for style list order changes
* Try to fix exceptions on ManagedWindow close
* Fix Mac SQLite3 locale bug when locale contains non-ascii characters
* Fix issue when Person has Same date of birth and death; gives an error.
* Geography: add a popup for a bad tiles path
* Fix GEDCOM export of estimated/calculated dates with modifers
* Bump to v5.1.3
2020-01-14
Version 5.1.2
* Narweb: Private notes for home, intro and contact. If the notes are private,
we can't use them in these pages.
* Referenced regions problems. When image width > 800, the referenced
regions are incorrectly placed
* Ancestor's tree display looks weird Solves the following:
- Person boxes overlap
- Some person boxes partially visible or hidden
* some cleanup in ancestortree.css
* ancestor tree and long names.
* Adapt ancestor tree css file for all themes
* dates not localised in place pages
* Mainz problem with short text in one note, Issue occurs on the homepage
and introduction page.
* bad event links on media pages
* Navweb: Don't use media regions in some case:
- If we don't show families
- If we don't show events
- Don't show the media regions for a thumbnail
* WEBCAL: home link translated to lowercase
* Wrong web calendar title on home page. This solves the possibility to
have ">", "<" in the title
* Update LDS Temple list
* Make GuiDestinationOption Folder Icon start in users directory
* Allow import file filter to accept case insensitive extensions
* Fix db to warn/prevent opening newer schema versions
* Fix Progen import dialog and progress meter for correct parent window
* Fix Progen import to correctly handle AKA surnames
* Fix ExportPkg so errors are not lost, and has progress bar for media
* Fix Export Assistant so error messages get correct parent window
* Fix GEDCOM import when family is missing; import created a missing note
* Fix Dashboard for adding Gramplet crash in Slovenian
* Update cs, ca, fr, uk, he, fi, hr, de, sv translation
* Update date parsing for czech locale
* Fix Spanish translation for dates
* fix private proxy tagref support. Add missing code for event, repository,
source, citation and place
* [Tree doc Tex] fix "-" char on place name "-" can lead to confusion,
generating text out of the box with PDF file format
* [Tree doc Tex] fix typo on custom size
* Fix duplicated "døde døde" Norwegion Translation for libnarrate
* Fix up Event Editors Place display for bidi text with Gramps ID
* Fix issues with RTL languages and LAT/LONG
* Fix display of GPS coordinates in Places view for RTL languages
* Fix place editor lat/long entry for RTL languages
* Fix GEDCOM export to avoid translated GrampsType strings
* Allow Tools with Notbook tabs to expand to fill the window
* 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.
* Fix the Preferences 'Age display precision' value getting lost
* Fix Window family tree title for non-ASCII chars on Windows
* Fix Preferences/Genealogical Symbols when only one font is present
* Fix various Entry fields so Undo/Redo works
* Fix tag colors on PedigreeView
* Fix Gramps -v error when Gtk is not present
* Fix for PedigreeView not reflecting changes to birthday or death
* ODF DOC - Fix improper escaping in odt output for TOC/Bookmark etc.
* Fix CLI parser to accept negative integers as valid
* Fix Descendant Tree report for HandleError when no parents on family
* Fix Reorder ID tool so subsequent db additions used next possible ID
* Upgrade export VCalendar to v2.0, so can export all utf8 characters
* Fix Preferences so <ctrl>PageUp/PageDn doesn't stick on Dates tab
* Graphs: Escape for name, dates and places in graph reports with XML
illegal characters
* Fix 'Go' menu direct object selection, goes to wrong place
2019-09-14
Version 5.1.1
* Update translations: cs, de, fi, fr, he, hr, pt_PT, ru, sv
+2 -2
View File
@@ -8,13 +8,13 @@ Please read the **INSTALL** file if you intend to build from source.
Requirements
============
The following packages **MUST** be installed in order for Gramps to work:
The following three packages **MUST** be installed in order for Gramps to work:
* **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)
The following packages with GObject Introspection bindings (the gi packages)
* **cairo** 1.13.1 or greater - a 2D graphics library with support for multiple output devices. http://cairographics.org/
* **Pycairo** 1.13.3 or greater - GObject Introspection bindings for cairo. https://github.com/pygobject/pycairo
+168 -38
View File
@@ -1,14 +1,14 @@
/*
**************************************************************************************************
*******************************************************************************
Copyright Holder and License
**************************************************************************************************
*******************************************************************************
GRAMPS Cascading Style Sheet
Style Name: Basic-Ash Stylesheet
Style Author: Jason M. Simanek (2008)
Note: Adapted from GRAMPS original Modern Style stylesheet
**************************************************************************************************
*******************************************************************************
This website was created with GRAMPS <http://www.gramps-project.org/>
--------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------
GRAMPS is a Free Software Project for Genealogy, offering a professional
genealogy program, and a wiki open to all. It is a community project, created,
@@ -16,7 +16,7 @@ developed and governed by genealogists.
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>
@@ -36,10 +36,10 @@ 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
GRAMPS. If not, see <http://www.gnu.org/licenses/>.
--------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------
Color Palette
--------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------
black #000
gray dark #555
@@ -47,14 +47,14 @@ gray #999
gray light #CCC
gray very light #EEE
white #FFF
--------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------
Characteristic of this style is that it uses the full width of the browser
window and that horizontal highlighting bars extend over the full width of
the page.
--------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------
NarrativeWeb Styles
------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------
General Elements
----------------------------------------------------- */
@@ -96,6 +96,16 @@ body > div {
.content {
padding: 0em 0.5em;
}
body#fullyearlinked table.calendar {
float: none;
width: 100%;
}
}
@media only screen and (width > 1080px) {
body#fullyearlinked table.calendar {
float: left;
width: 33.3%;
}
}
/* General Text
@@ -225,7 +235,7 @@ div#alphanav ul li a:hover {
}
/* Responsive navigation */
a.navIcon {
button.navIcon {
display: none;
}
@@ -251,11 +261,6 @@ div#nav::after {
.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 */
@@ -277,11 +282,14 @@ div#nav::after {
.nav li {display: none;}
.nav ul {display: none;}
a.navIcon {
font-size:1.3em;
button.navIcon {
display: block;
margin: 0.1em 0.4em 0.4em 0.4em;
float: left;
font-size:2.9em;
line-height: 35px;
border: 0px;
color: #555;
background-color: #EEE;
}
.nav.responsive {position: absolute; display: block; z-index: 100;}
@@ -292,7 +300,6 @@ div#nav::after {
margin-right: 10px;
}
.nav.responsive li {
/* float: left; */
display: block;
text-align: left;
background-color: #EEE;
@@ -389,18 +396,41 @@ table#SortByCount thead th.ColumnQuantity a:after {
table.surname td.ColumnName {
background-color: #EEE;
}
table#SortByName tr:hover td.ColumnSurname,
table#SortByCount tr:hover td.ColumnQuantity {
background-color: #DDE;
}
table#SortByName tr:hover,
table#SortByCount tr:hover,
table#SortByName tr:hover td.ColumnQuantity,
table#SortByCount tr:hover td.ColumnSurname {
background-color: #DDE;
}
table.surname tr:hover,
table.surname tr:hover td.ColumnName {
background-color: #DDE;
}
/* Individuals
----------------------------------------------------- */
table.IndividualList td.ColumnSurname {
background-color: #EEE;
}
#parents table.infolist tr:hover,
table.IndividualList tr:hover,
table.IndividualList tr:hover td.ColumnSurname {
background-color: #DDE;
}
/* Places
----------------------------------------------------- */
#Places table.infolist td.ColumnName {
background-color: #EEE;
}
#Places table.infolist tr:hover,
#Places table.infolist tr:hover td.ColumnName {
background-color: #DDE;
}
/* Events
----------------------------------------------------- */
@@ -416,6 +446,10 @@ table.IndividualList td.ColumnSurname {
#EventList td.ColumnPerson a {
display: inline;
}
#EventList table.infolist tr:hover,
#EventList table.infolist tr:hover td.ColumnType {
background-color: #DDE;
}
#EventList td.ColumnPerson span.person:after,
#EventList td.ColumnPerson span.father:after,
#EventList td.ColumnPerson span.mother:after,
@@ -436,10 +470,33 @@ table.IndividualList td.ColumnSurname {
#EventDetail td.ColumnPerson span.mother:last-child:after {
content: "";
}
table.eventlist tbody tr td:first-child,
table.eventlist thead tr th:first-child {
padding-left: 10px;
}
table.eventlist tbody tr td.ColumnSources {
width: 5%;
}
table.eventlist tbody tr td.ColumnDate {
width: 15%;
}
table.eventlist td.ColumnEvent,
table.eventlist td.ColumnDate,
table.eventlist td.ColumnPlace {
font-weight: bold;
}
#attributes table.infolist td.ColumnType {
width: 10%;
padding-left: 15px;
}
#attributes table.infolist td.ColumnSources {
width: 5%;
padding-left: 5px;
}
#WebLinks table.infolist td.ColumnType {
width: 10%;
padding-left: 15px;
}
/* Gallery
----------------------------------------------------- */
@@ -473,11 +530,10 @@ table.eventlist tbody tr td.ColumnSources {
margin: 0px auto;
display: block;
border: solid 1px #999;
max-width: 800px;
height: auto;
}
@media only screen and (max-width: 1080px) {
@media only screen and (max-width: 1600px) {
#GalleryDisplay img {
max-width: 100%;
}
@@ -492,6 +548,10 @@ table.eventlist tbody tr td.ColumnSources {
div#SourceDetail {
margin: 0 auto;
}
#Sources table.infolist tr:hover,
#Sources table.infolist tr:hover td.ColumnType {
background-color: #DDE;
}
/* Contact
----------------------------------------------------- */
@@ -561,18 +621,32 @@ div#SourceDetail {
/* Subsection : Families
----------------------------------------------------- */
#families table.infolist td.ColumnValue.Child table.infolist tr:hover,
table.relationships tr:hover {
background-color: #DDE;
}
div#families table.fixed_subtables table.eventlist {
table-layout: fixed;
}
div#families table.fixed_subtables table.eventlist th:first-child {
width: 9em;
}
div#families table.fixed_subtables table.eventlist th:last-child {
div#families table.fixed_subtables table.eventlist th.ColumnDate {
width: 12%;
}
div#families table.fixed_subtables table.eventlist th.ColumnSources {
width: 5em;
}
div#families table.attrlist td.ColumnType {
color: black;
}
div#families table.fixed_subtables .Child table.eventlist .ColumnName {
width: 60%;
}
div#families table.fixed_subtables .Child table.eventlist .ColumnDate {
width: 20%;
}
/* Subsection : Gallery
----------------------------------------------------- */
@@ -612,7 +686,6 @@ div#families table.attrlist td.ColumnType {
}
#gallery div.indexno {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
@@ -660,11 +733,15 @@ div.snapshot div.thumbnail {
h4 + div.grampsstylednote, a.familymap {
margin: 1em 15px;
}
i.NoteType {
font-weight: bold;
font-size: .8em;
}
i + div.grampsstylednote p {
margin: 0 0 0.3em 0;
}
div.grampsstylednote p {
margin-bottom: 0.5em;
padding-bottom: 0.6em;
}
/* Subsection : Family Map
@@ -672,6 +749,15 @@ div.grampsstylednote p {
a.familymap {
display: block;
}
a.family_map {
margin-left: 15px;
}
/* Subsection : References
----------------------------------------------------- */
#references ol {
margin-left: 2em;
}
/* Subsection : Source References
----------------------------------------------------- */
@@ -733,10 +819,16 @@ a.familymap {
padding-right: 15px;
}
/* Updates
----------------------------------------------------- */
#Updates table.list td.date {
width: 20%;
}
/* Overwritten
----------------------------------------------------- */
body#FamilyMap {
background-color: #EEE ! important;
background-color: #EEE !important;
}
/* Calendar Styles
@@ -755,16 +847,12 @@ table.calendar {
background-color: white;
border-bottom-style: none;
padding-top: 1em;
vertical-align: top;
height: 2em;
}
.calendar thead th abbr {
border-bottom-style: none;
}
#CreatorInfo {
float: right;
margin: -1em 15px 0px 0px;
font-weight: bold;
color: #999;
}
.calendar tfoot tr td {
border-top: solid 4px #999;
vertical-align: middle;
@@ -773,7 +861,6 @@ table.calendar {
/* Calendar : Date Numeral */
.calendar div.date {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
@@ -782,7 +869,7 @@ table.calendar {
/* Calendar : Date Container */
.calendar td {
padding: 0px 0px 0px 1ex;
padding: 0px 5px 0px 1ex;
border-width: 1px 0px 0px 1px;
border-style: solid;
border-color: #CCC;
@@ -790,7 +877,7 @@ table.calendar {
}
.calendar td:first-child {
border-left-style: none;
padding: 0px 0px 0px 1ex;
padding: 0px 5px 0px 1ex;
}
.calendar tbody tr:first-child td {
border-top-style: none;
@@ -834,8 +921,6 @@ body#fullyearlinked div.content {
overflow: hidden;
}
body#fullyearlinked table.calendar {
float: left;
width: 33.3%;
height: 18em;
border: solid 1px black;
}
@@ -852,3 +937,48 @@ body#fullyearlinked table.calendar tbody td {
body#OneDay div.content {
overflow: hidden;
}
body#OneDay h3 {
font-size: xx-large;
vertical-align: top;
height: 2em;
}
#WebCal table.calendar tfoot {
display: none;
}
#WebCal table.calendar tr td {
word-wrap: break-word;
padding: 2px;
}
#WebCal .calendar tr td .empty {
border: 5px solid rgba(255,255,255,.0);
}
#WebCal .calendar tr td .clickable {
border: 5px solid rgba(255,255,255,.0);
}
#WebCal .calendar tr td .clickable:hover {
display: block;
overflow:auto;
word-wrap: break-word;
cursor: text;
border-radius: 10px 0px 10px 10px;
border: 5px solid #555;
padding: 0px;
}
body#fullyearlinked #YearGlance tbody td {
height:48px;
vertical-align: middle;
text-align: center;
padding-left: 6px;
}
body#fullyearlinked #YearGlance tbody td .date {
font-size: 30px;
vertical-align: middle;
text-align: center;
border-radius: 45px;
float: none;
border: 5px solid rgba(0,0,0,.0);
}
body#fullyearlinked #YearGlance tbody td:hover .date {
border-radius: 45px;
border: 5px solid;
}
+170 -69
View File
@@ -11,7 +11,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.
@@ -119,6 +119,16 @@ img {
.content {
padding: 0em 0.5em;
}
body#fullyearlinked table.calendar {
float: none;
width: 100%;
}
}
@media only screen and (width > 1080px) {
body#fullyearlinked table.calendar {
float: left;
width: 33.3%;
}
}
/* General Text
@@ -129,7 +139,6 @@ h1 {
h2 {
font: bold 1em sans-serif;
text-align: center;
float: center;
}
h3 {
font: bold italic 1.6em serif;
@@ -339,7 +348,7 @@ div#footer p#copyright img {
}
/* Responsive navigation */
a.navIcon {
button.navIcon {
display: none;
}
@@ -349,6 +358,12 @@ div#header::after {
display: table;
}
/* Updates
----------------------------------------------------- */
#Updates table.list td.date {
width: 20%;
}
/* Alphabet Navigation
----------------------------------------------------- */
div#alphanav {
@@ -401,11 +416,6 @@ div#nav::after {
.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 */
@@ -427,22 +437,23 @@ div#nav::after {
.nav li {display: none;}
.nav ul {display: none;}
a.navIcon {
font-size:1.3em;
button.navIcon {
display: block;
margin: 0.1em 0.4em 0.4em 0.4em;
float: left;
font-size:2.9em;
line-height: 60px;
border: 0px;
color: #FFF;
background-color: #00029D;
}
.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;
@@ -503,13 +514,12 @@ table.infolist tr td.ColumnRowLabel a {
}
table.infolist tr td.ColumnType {
width: 6%;
padding-left: 20px;
}
table.infolist tr td.ColumnAttribute {
width: 10%;
}
table.infolist tr td.ColumnValue {
width: 40%;
width: 30%;
}
table.infolist tr td.ColumnName {
width: 30%;
@@ -524,7 +534,7 @@ table.infolist tr td.ColumnPartner {
table.infolist tr td.ColumnParents {
width: 30%;
}
table.infolist tbody tr td.ColumnParents span.father,
table.infolist tbody tr td.ColumnParents span.father,
table.infolist tbody tr td.ColumnParents span.mother {
display: block;
}
@@ -585,6 +595,9 @@ div#IndividualDetail table.infolist tbody tr td.ColumnAttribute {
#familymap a.familymap {
margin-left:20px;
}
a.family_map {
margin-left: 20px;
}
/* Surnames
----------------------------------------------------- */
@@ -592,11 +605,11 @@ div#IndividualDetail table.infolist tbody tr td.ColumnAttribute {
margin: 0;
padding: 0;
}
table.surnamelist thead tr th.ColumnSurname,
table.surnamelist thead tr th.ColumnSurname,
#Surnames table.surnamelist tbody tr td.ColumnSurname {
width: 50%;
}
table#SortByName thead tr th.ColumnSurname,
table#SortByName thead tr th.ColumnSurname,
table#SortByCount thead tr th.ColumnQuantity {
background-color: #00029D;
color: #FFF;
@@ -607,7 +620,7 @@ table.surnamelist thead tr th.ColumnSurname a {
table.surnamelist thead tr th.ColumnSurname a:hover {
color: #000;
}
table#SortByName thead tr th.ColumnSurname a:after,
table#SortByName thead tr th.ColumnSurname a:after,
table#SortByCount thead tr th.ColumnQuantity a:after {
content: " ↓";
}
@@ -658,11 +671,9 @@ div#Places table.infolist tbody tr td.ColumnLongitude {
}
div#PlaceDetail h5 {
font: bold .7cm serif;
float: center;
text-align: center;
border-bottom: double 4px #13A926;
}
/* EventList and EventDetail
------------------------------------------------------ */
@@ -673,18 +684,40 @@ div#EventList, div#EventDetail {
table.eventlist tbody tr td.ColumnEvent {
width: 10%;
}
table.eventlist tbody tr td.ColumnPlace {
width: 25%;
}
table.eventlist tbody tr td.ColumnNotes {
width: 20%;
}
table.eventlist tbody tr td.ColumnSources {
vertical-align: top;
width: 5%;
}
table.eventlist tbody tr td.ColumnPerson {
width: 35%;
}
table.eventlist th.ColumnDate {
width: 15%;
}
table.eventlist td.ColumnEvent,
table.eventlist td.ColumnDate,
table.eventlist td.ColumnPlace {
font-weight: bold;
}
#attributes table.infolist td.ColumnType {
width: 10%;
padding-left: 15px;
}
#attributes table.infolist td.ColumnSources {
width: 5%;
padding-left: 5px;
}
#WebLinks table.infolist td.ColumnType {
width: 10%;
padding-left: 15px;
}
#families table.infolist th.ColumnEvent {
width: 10%;
padding-left: 0px;
}
#families table.infolist td.ColumnAttribute {
padding-left: 0px;
}
div#IndividualDetail div#families table.eventlist tr td {
border-bottom: dashed 1px #000;
}
@@ -716,7 +749,7 @@ div#EventList table.alphaevent tbody tr td.ColumnGRAMPSID {
div#EventList table.alphaevent tbody tr td.ColumnPerson {
width: 50%;
}
div#EventList table.alphaevent tbody tr td.ColumnPerson span.father,
div#EventList table.alphaevent tbody tr td.ColumnPerson span.father,
div#EventList table.alphaevent tbody tr td.ColumnPerson span.mother {
display:block;
}
@@ -741,14 +774,14 @@ div#EventDetail table.eventlist tbody tr td.ColumnAttribute {
div#EventDetail table.eventlist tbody tr td.ColumnDate {
border-top: solid 1px #000;
}
/* Events
----------------------------------------------------- */
#EventList table.infolist tr td a,
#EventDetail table.infolist tr td a {
display: inline;
}
#EventList table.infolist tr td span.father,
#EventList table.infolist tr td span.father,
#EventList table.infolist tr td span.mother,
#EventDetail table.infolist tr td span.father,
#EventDetail table.infolist tr td span.mother {
@@ -838,11 +871,10 @@ div#EventDetail table.eventlist tbody tr td.ColumnDate {
}
#GalleryDisplay img {
margin: 0 auto;
max-width: 800px;
height: auto;
}
@media only screen and (max-width: 1080px) {
@media only screen and (max-width: 1600px) {
#GalleryDisplay img {
max-width: 100%;
}
@@ -861,7 +893,6 @@ div#EventDetail table.eventlist tbody tr td.ColumnDate {
}
#GalleryDetail div#summaryarea table.gallery {
padding-bottom: 0;
margin: 1 .5em 0 0;
border-style: solid;
border-width: 2px 0 1px 0;
border-color: #000;
@@ -947,9 +978,9 @@ body#ThumbnailPreview div#references table.infolist tbody tr td.ColumnName {
text-decoration: none;
}
/* Download
/* Download
----------------------------------------------------- */
div#Download {
div#Download {
margin: 0;
width: 100%;
}
@@ -963,7 +994,7 @@ div#Download table.download {
div#Download table.download tbody tr#Row02 {
border-bottom: solid 2px #000;
}
div#Download table.download tbody tr td {
div#Download table.download tbody tr td {
border: solid 1px #000;
text-align: left;
}
@@ -987,6 +1018,9 @@ div#Download table.download td.ColumnModified {
margin: 0;
padding: 0;
}
#Sources table.infolist tr td.ColumnName {
width: 70%;
}
div#SourceDetail {
min-height: 900px
}
@@ -1095,8 +1129,14 @@ div#events h4 {
#IndividualDetail div#events table.eventtable {
width: 100%;
}
table.eventlist tbody tr td.ColumnEvent {
width: 12%;
#families table.eventlist tbody tr td.ColumnEvent {
vertical-align: top;
width: 8%;
}
div#RelationshipDetail table.infolist tbody tr td.ColumnAttribute,
div#IndividualDetail table.infolist tbody tr td.ColumnAttribute {
vertical-align: top;
width: 10%;
}
#IndividualDetail div#events table.infolist tbody tr td {
padding-top: .4em;
@@ -1183,6 +1223,10 @@ div#Families table.infolist tbody tr td.ColumnAttribute {
}
div#families table.infolist tbody tr td.ColumnValue p {
margin-top: 0;
margin-left: 0;
}
div#families table.infolist tbody tr td.ColumnValue {
width: 70%;
}
div#families table.infolist tbody tr td.ColumnValue ol {
margin: 0;
@@ -1197,6 +1241,22 @@ div#families table.infolist tbody tr td.ColumnValue ol li a {
div#families table.fixed_subtables table.eventlist {
table-layout:fixed;
}
div#families table.fixed_subtables table.eventlist th.ColumnDate {
width: 12%;
}
div#families table.fixed_subtables table.eventlist th.ColumnSources {
width: 5em;
}
div#families table.fixed_subtables .Child table.eventlist .ColumnName {
width: 60%;
}
div#families table.fixed_subtables .Child table.eventlist .ColumnDate {
width: 20%;
}
div#families table.fixed_subtables .BeginFamily .ColumnType {
width: 7em;
vertical-align: top;
}
/* Subsection: Families: Attributes
------------------------------------------------- */
@@ -1213,17 +1273,14 @@ SourcesType {
div#families table.infolist tbody tr td.Value {
width: 15%;
}
div#families table.infolist tr td.Notes {
width: 40%;
}
div#families table.infolist tbody tr td.Sources {
width: 15%;
width: 5%;
}
/* Subsection: Families: LDS Ordinance
------------------------------------------------------ */
div#families table.infolist {
font: normal .8em sans;
font: normal .9em sans;
}
div#families table.infolist tbody tr.BeginOrdinance {
border-top: solid 1px #000;
@@ -1364,7 +1421,6 @@ div.Residence table.infolist tr td {
}
#gallery div.indexno {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
@@ -1409,9 +1465,22 @@ div.narrative {
font: normal .9em/1.4em sans-serif;
margin: 0.1em 0 0.2em 0;
}
i.NoteType {
font-weight: bold;
font-size: .8em;
}
i + div.grampsstylednote p {
margin: 0.1em 0 0.2em 0;
}
div.grampsstylednote p {
padding-bottom: 0.6em;
}
/* Subsection : References
----------------------------------------------------- */
#references ol {
margin-left: 3em;
}
/* Subsections : References
----------------------------------------------------- */
@@ -1451,6 +1520,9 @@ div#summaryarea table.infolist tr td, div#summaryarea table.infolist tr td p {
font: normal .9em/1.2em sans-serif;
vertical-align: top;
}
div#summaryarea table.infolist tr td.ColumnValue {
width: 70%;
}
div#summaryarea table.infolist tr td a, div#summaryarea table.infolist tr td p a {
display:inline;
}
@@ -1480,7 +1552,7 @@ table.WebLinks tbody tr td.ColumnPath {
width: 50%;
}
table.weblinks tbody tr td.ColumnDescription {
width: 30%;
width: 80%;
}
/* Subsections : Pedigree
@@ -1534,7 +1606,7 @@ div#pedigree {
/* Calendar Styles
-------------------------------------------------------------------------------------------- */
#OneDay, #WebCal, #YearGlance {
width: 95%
width: 100%
}
/* Calendar : General */
.calendar {
@@ -1563,19 +1635,10 @@ div#pedigree {
color: #542;
padding:.3em 0 .2em 0;
background-color: #FFF;
vertical-align: top;
height: 2em;
}
#CreatorInfo {
float:right;
color: #FFF;
margin:-24px 10px 0 0;
}
#CreatorInfo a {
color: #FFF;
}
#CreatorInfo a:hover {
color: #FFF;
}
.calendar thead tr th.weekend,
.calendar thead tr th.weekend,
.calendar thead tr th.weekday {
font-style:italic;
color: #000;
@@ -1598,8 +1661,8 @@ div#pedigree {
font-size:1.2em;
line-height:100%;
text-align:center;
border: 5px solid rgba(0,0,0,.0);
color: #542;
margin:0 0 0 .5em;
padding:.2em 0;
background-color: #D8F3D6;
}
@@ -1639,9 +1702,12 @@ div#pedigree {
display:block;
width:92%;
margin:0 4%;
padding:.2em 0 .3em 0;
padding:.6em 0 .3em 0;
border-top: dashed 1px #000;
}
.calendar tbody tr td ul li:first-child {
border-top: 10px;
}
/* Calendar : Birthday, Anniversary, Highlight */
.calendar tbody tr td ul li em {
@@ -1659,9 +1725,9 @@ div#pedigree {
}
/* Calendar : Previous-Next Month */
.calendar tbody tr td.previous,
.calendar tbody tr td.next,
.calendar tbody tr td.previous div.date,
.calendar tbody tr td.previous,
.calendar tbody tr td.next,
.calendar tbody tr td.previous div.date,
.calendar tbody tr td.next div.date {
color: #333;
background-color: #D8F3D6;
@@ -1672,13 +1738,10 @@ body#fullyearlinked {
background-color: #FFF;
}
body#fullyearlinked div.content {
width:963px;
margin:0 auto;
padding:15px 0 2px 2px;
}
body#fullyearlinked table.calendar {
float:left;
width:320px;
height:18em;
border:solid 1px #000;
}
@@ -1693,10 +1756,8 @@ body#fullyearlinked table.calendar thead tr th.monthName {
padding:2px 0;
border-bottom: solid 1px #000;
}
body#fullyearlinked table.calendar tbody tr td {
height:3em;
}
body#fullyearlinked table.calendar tbody tr td.emptyDays {
height:52px;
background-color: #FFF;
}
body#fullyearlinked table.calendar tbody tr td.saturday {
@@ -1734,3 +1795,43 @@ table.oneday tbody tr td.ColumnText {
table.oneday tbody tr td.ColumnEvent {
width: 10%;
}
#WebCal table.calendar tfoot {
display: none;
}
#WebCal table.calendar tr td {
word-wrap: break-word;
padding: 2px;
}
#WebCal .calendar tr td .empty {
border: 5px solid rgba(255,255,255,.0);
}
#WebCal .calendar tr td .clickable {
border: 5px solid rgba(255,255,255,.0);
}
#WebCal .calendar tr td .clickable:hover {
display: block;
overflow:auto;
word-wrap: break-word;
cursor: text;
border-radius: 10px 0px 10px 10px;
border: 5px solid #000290;
padding: 0px;
}
body#fullyearlinked #YearGlance tbody td {
height:48px;
vertical-align: middle;
text-align: center;
padding-left: 3px;
}
body#fullyearlinked #YearGlance tbody td .date {
font-size: 30px;
vertical-align: middle;
text-align: center;
border-radius: 45px;
float: none;
border: 5px solid rgba(0,0,0,.0);
}
body#fullyearlinked #YearGlance tbody td:hover .date {
border-radius: 45px;
border: 5px solid;
}
+175 -41
View File
@@ -1,14 +1,15 @@
/*
**************************************************************************************************
*******************************************************************************
Copyright Holder and License
**************************************************************************************************
*******************************************************************************
GRAMPS Cascading Style Sheet
Style Name: Basic - Cypress
Style Author: Jason Simanek (2008)
Note: Adapted from GRAMPS original Modern Style stylesheet with colors from the original 'Tranquil' stylesheet
**************************************************************************************************
Note: Adapted from GRAMPS original Modern Style stylesheet with colors from the
original 'Tranquil' stylesheet
*******************************************************************************
This website was created with GRAMPS <http://www.gramps-project.org/>
--------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------
GRAMPS is a Free Software Project for Genealogy, offering a professional
genealogy program, and a wiki open to all. It is a community project, created,
@@ -16,7 +17,7 @@ developed and governed by genealogists.
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>
@@ -36,10 +37,10 @@ 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
GRAMPS. If not, see <http://www.gnu.org/licenses/>.
--------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------
Color Palette
--------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------
black #000
slate dark #454
@@ -47,14 +48,14 @@ slate #7C8F7C
slate light #9DBF9D
slate very light #E0E6E0
white #FFF
--------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------
Characteristic of this style is that it uses the full width of the browser
window and that horizontal highlighting bars extend over the full width of
the page.
--------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------
NarrativeWeb Styles
------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------
General Elements
----------------------------------------------------- */
@@ -96,6 +97,16 @@ body > div {
.content {
padding: 0em 0.5em;
}
body#fullyearlinked table.calendar {
float: none;
width: 100%;
}
}
@media only screen and (width > 1080px) {
body#fullyearlinked table.calendar {
float: left;
width: 33.3%;
}
}
/* General Text
@@ -229,7 +240,7 @@ div#alphanav ul li a:hover {
}
/* Responsive navigation */
a.navIcon {
button.navIcon {
display: none;
}
@@ -255,11 +266,6 @@ div#nav::after {
.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 */
@@ -281,11 +287,14 @@ div#nav::after {
.nav li {display: none;}
.nav ul {display: none;}
a.navIcon {
font-size:1.3em;
button.navIcon {
display: block;
margin: 0.1em 0.4em 0.4em 0.4em;
float: left;
font-size:2.9em;
line-height: 35px;
border: 0px;
color: #E0E6E0;
background-color: #454;
}
.nav.responsive {position: absolute; display: block; z-index: 100;}
@@ -296,11 +305,10 @@ div#nav::after {
margin-right: 10px;
}
.nav.responsive li {
/* float: left; */
display: block;
text-align: left;
color: #454;
background-color: #E0E6E0;
background-color: #454;
/* required by IE */
float: left;
clear: both;
@@ -369,9 +377,6 @@ td.ColumnLetter, td.ColumnRowLabel {
td.ColumnEvent, td.ColumnDate {
white-space: nowrap;
}
td.ColumnPlace, td.ColumnDescription {
width: 20%
}
/* end of customizations by Stephane */
td.ColumnBirth, td.ColumnDeath, td.ColumnPartner, td.ColumnParents {
font-size: 90%;
@@ -430,12 +435,31 @@ table.surname td.ColumnName {
table.surname td.ColumnName > a {
padding-left: 15px;
}
table#SortByName tr:hover td.ColumnSurname,
table#SortByCount tr:hover td.ColumnQuantity {
background-color: #9DBF9D;
}
table#SortByName tr:hover,
table#SortByCount tr:hover,
table#SortByName tr:hover td.ColumnQuantity,
table#SortByCount tr:hover td.ColumnSurname {
background-color: #9DBF9D;
}
table.surname tr:hover,
table.surname tr:hover td.ColumnName {
background-color: #9DBF9D;
}
/* Individuals
----------------------------------------------------- */
table.IndividualList td.ColumnSurname {
background-color: #E0E6E0;
}
#parents table.infolist tr:hover,
table.IndividualList tr:hover,
table.IndividualList tr:hover td.ColumnSurname {
background-color: #9DBF9D;
}
/* Places
----------------------------------------------------- */
@@ -449,6 +473,10 @@ table.IndividualList td.ColumnSurname {
#Places table.infolist td.ColumnName > a {
padding-left: 1ex;
}
#Places table.infolist tr:hover,
#Places table.infolist tr:hover td.ColumnName {
background-color: #9DBF9D;
}
/* Events
----------------------------------------------------- */
@@ -464,6 +492,10 @@ table.IndividualList td.ColumnSurname {
#EventList td.ColumnPerson a {
display: inline;
}
#EventList table.infolist tr:hover,
#EventList table.infolist tr:hover td.ColumnType {
background-color: #9DBF9D;
}
#EventList td.ColumnPerson span.person:after,
#EventList td.ColumnPerson span.father:after,
#EventList td.ColumnPerson span.mother:after,
@@ -484,10 +516,49 @@ table.IndividualList td.ColumnSurname {
#EventDetail td.ColumnPerson span.mother:last-child:after {
content: "";
}
table.eventlist tbody tr td:first-child,
table.eventlist thead tr th:first-child {
padding-left: 15px;
}
#attributes table.infolist td.ColumnType {
width: 10%;
padding-left: 15px;
}
#attributes table.infolist td.ColumnValue {
width: 15%;
}
#attributes table.infolist td.ColumnSources {
width: 5%;
padding-left: 5px;
}
#WebLinks table.infolist td.ColumnType {
width: 10%;
padding-left: 15px;
}
#events table.eventlist td.ColumnDate {
padding-left: 15px;
}
#families table.eventlist tbody tr td:first-child,
#families table.eventlist thead tr th:first-child {
width: 10%;
padding-left: 0px;
}
#families table.eventlist tbody tr td.ColumnDate,
#families table.eventlist tbody tr td.ColumnNotes {
padding-left: 15px;
}
table.eventlist tbody tr td.ColumnSources {
width: 5%;
}
table.eventlist th.ColumnDate {
padding-left: 15px;
width: 15%;
}
table.eventlist td.ColumnEvent,
table.eventlist td.ColumnDate,
table.eventlist td.ColumnPlace {
font-weight: bold;
}
/* Gallery
----------------------------------------------------- */
@@ -524,11 +595,10 @@ table.eventlist tbody tr td.ColumnSources {
margin: 0px auto;
display: block;
border: solid 1px #7C8F7C;
max-width: 800px;
height: auto;
}
@media only screen and (max-width: 1080px) {
@media only screen and (max-width: 1600px) {
#GalleryDisplay img {
max-width: 100%;
}
@@ -543,6 +613,10 @@ table.eventlist tbody tr td.ColumnSources {
div#SourceDetail {
margin: 0 auto;
}
#Sources table.infolist tr:hover,
#Sources table.infolist tr:hover td.ColumnType {
background-color: #9DBF9D;
}
/* Contact
----------------------------------------------------- */
@@ -612,6 +686,10 @@ div#SourceDetail {
/* Subsection : Families
----------------------------------------------------- */
#families table.infolist td.ColumnValue.Child table.infolist tr:hover,
table.relationships tr:hover {
background-color: #9DBF9D;
}
div#families table.fixed_subtables table.eventlist {
table-layout: fixed;
}
@@ -663,7 +741,6 @@ div#families table.attrlist td.ColumnType {
}
#gallery div.indexno {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
@@ -711,11 +788,21 @@ div.snapshot div.thumbnail {
h4 + div.grampsstylednote, a.familymap {
margin: 1em 15px;
}
i.NoteType {
font-weight: bold;
font-size: .8em;
}
i + div.grampsstylednote p {
margin: 0 0 0.3em 0;
}
div.grampsstylednote p {
margin-bottom: 0.5em;
padding-bottom: 0.6em;
}
/* Subsection : References
----------------------------------------------------- */
#references ol {
margin-left: 2em;
}
/* Subsection : Family Map
@@ -723,6 +810,9 @@ div.grampsstylednote p {
a.familymap {
display: block;
}
a.family_map {
margin-left: 15px;
}
/* Subsection : Source References
----------------------------------------------------- */
@@ -788,10 +878,16 @@ a.familymap {
padding-right: 15px;
}
/* Updates
----------------------------------------------------- */
#Updates table.list td.date {
width: 20%;
}
/* Overwritten
----------------------------------------------------- */
body#FamilyMap {
background-color: #454 ! important;
background-color: #454 !important;
}
/* Calendar Styles
@@ -810,16 +906,12 @@ table.calendar {
background-color: white;
border-bottom-style: none;
padding-top: 1em;
vertical-align: top;
height: 2em;
}
.calendar thead th abbr {
border-bottom-style: none;
}
#CreatorInfo {
float: right;
margin: -1em 15px 0px 0px;
font-weight: bold;
color: #7C8F7C;
}
.calendar tfoot tr td {
border-top: solid 4px #7C8F7C;
vertical-align: middle;
@@ -837,7 +929,7 @@ table.calendar {
/* Calendar : Date Container */
.calendar td {
padding: 0px 0px 0px 1ex;
padding: 0px 5px 0px 1ex;
border-width: 1px 0px 0px 1px;
border-style: solid;
border-color: #9DBF9D;
@@ -845,7 +937,7 @@ table.calendar {
}
.calendar td:first-child {
border-left-style: none;
padding: 0px 0px 0px 1ex;
padding: 0px 5px 0px 1ex;
}
.calendar tbody tr:first-child td {
border-top-style: none;
@@ -893,8 +985,6 @@ body#fullyearlinked div.content {
overflow: hidden;
}
body#fullyearlinked table.calendar {
float: left;
width: 33.3%;
height: 18em;
border: solid 1px black;
}
@@ -911,3 +1001,47 @@ body#fullyearlinked table.calendar tbody td {
body#OneDay div.content {
overflow: hidden;
}
body#OneDay h3 {
font-size: xx-large;
vertical-align: top;
height: 2em;
}
#WebCal table.calendar tfoot {
display: none;
}
#WebCal table.calendar tr td {
word-wrap: break-word;
padding: 2px;
}
#WebCal .calendar tr td .empty {
border: 5px solid rgba(255,255,255,.0);
}
#WebCal .calendar tr td .clickable {
border: 5px solid rgba(255,255,255,.0);
}
#WebCal .calendar tr td .clickable:hover {
display: block;
overflow:auto;
word-wrap: break-word;
cursor: text;
border-radius: 10px 0px 10px 10px;
border: 5px solid #454;
}
body#fullyearlinked #YearGlance tbody td {
height:48px;
vertical-align: middle;
text-align: center;
padding-left: 6px;
}
body#fullyearlinked #YearGlance tbody td .date {
font-size: 30px;
vertical-align: middle;
text-align: center;
border-radius: 45px;
float: none;
border: 5px solid rgba(0,0,0,.0);
}
body#fullyearlinked #YearGlance tbody td:hover .date {
border-radius: 45px;
border: 5px solid;
}
+183 -41
View File
@@ -1,14 +1,15 @@
/*
**************************************************************************************************
*******************************************************************************
Copyright Holder and License
**************************************************************************************************
*******************************************************************************
GRAMPS Cascading Style Sheet
Style Name: Basic - Lilac
Style Author: Jason M. Simanek (2008)
Note: Adapted from GRAMPS original Modern Style stylesheet with colors from the original 'Business' stylesheet
**************************************************************************************************
Note: Adapted from GRAMPS original Modern Style stylesheet with colors from the
original 'Business' stylesheet
*******************************************************************************
This website was created with GRAMPS <http://www.gramps-project.org/>
--------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------
GRAMPS is a Free Software Project for Genealogy, offering a professional
genealogy program, and a wiki open to all. It is a community project, created,
@@ -16,7 +17,7 @@ developed and governed by genealogists.
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>
@@ -36,10 +37,10 @@ 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
GRAMPS. If not, see <http://www.gnu.org/licenses/>.
--------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------
Color Palette
--------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------
black #000
lilac dark #2E2E61
@@ -47,14 +48,14 @@ lilac #669
lilac light #B4B4CB
lilac very light #E0E0E9
white #FAFAFF
--------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------
Characteristic of this style is that it uses the full width of the browser
window and that horizontal highlighting bars extend over the full width of
the page.
--------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------
NarrativeWeb Styles
------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------
General Elements
----------------------------------------------------- */
@@ -96,6 +97,16 @@ body > div {
.content {
padding: 0em 0.5em;
}
body#fullyearlinked table.calendar {
float: none;
width: 100%;
}
}
@media only screen and (width > 1080px) {
body#fullyearlinked table.calendar {
float: left;
width: 33.3%;
}
}
/* General Text
@@ -227,7 +238,7 @@ div#alphanav ul li a:hover {
}
/* Responsive navigation */
a.navIcon {
button.navIcon {
display: none;
}
@@ -253,11 +264,6 @@ div#nav::after {
.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 */
@@ -279,11 +285,14 @@ div#nav::after {
.nav li {display: none;}
.nav ul {display: none;}
a.navIcon {
font-size:1.3em;
button.navIcon {
display: block;
margin: 0.1em 0.4em 0.4em 0.4em;
float: left;
font-size:2.9em;
line-height: 35px;
border: 0px;
color: #2E2E61;
background-color: #E0E0E9;
}
.nav.responsive {position: absolute; display: block; z-index: 100;}
@@ -294,7 +303,6 @@ div#nav::after {
margin-right: 10px;
}
.nav.responsive li {
/* float: left; */
display: block;
text-align: left;
background-color: #669;
@@ -415,12 +423,31 @@ table.surname td.ColumnName {
table.surname td.ColumnName > a {
padding-left: 15px;
}
table#SortByName tr:hover td.ColumnSurname,
table#SortByCount tr:hover td.ColumnQuantity {
background-color: #B4B4CB;
}
table#SortByName tr:hover,
table#SortByCount tr:hover,
table#SortByName tr:hover td.ColumnQuantity,
table#SortByCount tr:hover td.ColumnSurname {
background-color: #B4B4CB;
}
table.surname tr:hover,
table.surname tr:hover td.ColumnName {
background-color: #B4B4CB;
}
/* Individuals
----------------------------------------------------- */
table.IndividualList td.ColumnSurname {
background-color: #E0E0E9;
}
#parents table.infolist tr:hover,
table.IndividualList tr:hover,
table.IndividualList tr:hover td.ColumnSurname {
background-color: #B4B4CB;
}
/* Places
----------------------------------------------------- */
@@ -437,6 +464,10 @@ table.IndividualList td.ColumnSurname {
#Places table.infolist td.ColumnName > a {
padding-left: 1ex;
}
#Places table.infolist tr:hover,
#Places table.infolist tr:hover td.ColumnName {
background-color: #B4B4CB;
}
/* Events
----------------------------------------------------- */
@@ -452,6 +483,10 @@ table.IndividualList td.ColumnSurname {
#EventList td.ColumnPerson a {
display: inline;
}
#EventList table.infolist tr:hover,
#EventList table.infolist tr:hover td.ColumnType {
background-color: #B4B4CB;
}
#EventList td.ColumnPerson span.person:after,
#EventList td.ColumnPerson span.father:after,
#EventList td.ColumnPerson span.mother:after,
@@ -472,9 +507,54 @@ table.IndividualList td.ColumnSurname {
#EventDetail td.ColumnPerson span.mother:last-child:after {
content: "";
}
table.eventlist tbody tr td.ColumnSources {
#attributes table.infolist td.ColumnType {
width: 10%;
padding-left: 15px;
}
#attributes table.infolist td.ColumnValue {
width: 15%;
}
#attributes table.infolist td.ColumnSources {
width: 5%;
padding-left: 5px;
}
#WebLinks table.infolist td.ColumnType {
width: 10%;
padding-left: 15px;
}
#events table.eventlist td.ColumnDate {
width: 15%;
padding-left: 10px;
}
#families table.eventlist td.ColumnDate {
width: 15%;
padding-left: 10px;
}
#families table.eventlist tbody tr td:first-child,
#families table.eventlist thead tr th:first-child {
width: 10%;
padding-left: 0px;
}
#families table.eventlist tbody tr td.ColumnDate,
#families table.eventlist tbody tr td.ColumnNotes {
padding-left: 20px;
}
table.eventlist tbody tr td:first-child,
table.eventlist thead tr th:first-child {
padding-left: 10px;
}
table.eventlist tbody tr td.ColumnSources {
padding-left: 20px;
width: 5%;
}
#families table.eventlist th.ColumnDate {
padding-left: 20px;
width: 15%;
}
table.eventlist td.ColumnEvent,
table.eventlist td.ColumnDate,
table.eventlist td.ColumnPlace {
font-weight: bold;
}
/* Gallery
@@ -512,15 +592,15 @@ table.eventlist tbody tr td.ColumnSources {
margin: 0px auto;
display: block;
border: solid 1px #669;
max-width: 800px;
height: auto;
}
@media only screen and (max-width: 1080px) {
@media only screen and (max-width: 1600px) {
#GalleryDisplay img {
max-width: 100%;
}
}
#GalleryDetail h3 {
text-align: center;
}
@@ -530,6 +610,10 @@ table.eventlist tbody tr td.ColumnSources {
div#SourceDetail {
margin: 0 auto;
}
#Sources table.infolist tr:hover,
#Sources table.infolist tr:hover td.ColumnType {
background-color: #B4B4CB;
}
/* Contact
----------------------------------------------------- */
@@ -599,6 +683,10 @@ div#SourceDetail {
/* Subsection : Families
----------------------------------------------------- */
#families table.infolist td.ColumnValue.Child table.infolist tr:hover,
table.relationships tr:hover {
background-color: #B4B4CB;
}
div#families table.fixed_subtables table.eventlist {
table-layout: fixed;
}
@@ -650,7 +738,6 @@ div#families table.attrlist td.ColumnType {
}
#gallery div.indexno {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
@@ -698,11 +785,21 @@ div.snapshot div.thumbnail {
h4 + div.grampsstylednote, a.familymap {
margin: 1em 15px;
}
i.NoteType {
font-weight: bold;
font-size: .8em;
}
i + div.grampsstylednote p {
margin: 0 0 0.3em 0;
}
div.grampsstylednote p {
margin-bottom: 0.5em;
padding-bottom: 0.6em;
}
/* Subsection : References
----------------------------------------------------- */
#references ol {
margin-left: 2em;
}
/* Subsection : Family Map
@@ -710,6 +807,9 @@ div.grampsstylednote p {
a.familymap {
display: block;
}
a.family_map {
margin-left: 15px;
}
/* Subsection : Source References
----------------------------------------------------- */
@@ -774,10 +874,16 @@ a.familymap {
background-color: #B4B4CB;
}
/* Updates
----------------------------------------------------- */
#Updates table.list td.date {
width: 20%;
}
/* Overwritten
----------------------------------------------------- */
body#FamilyMap {
background-color: #E0E0E9 ! important;
background-color: #E0E0E9 !important;
}
/* Calendar Styles
@@ -796,19 +902,12 @@ table.calendar {
background-color: #FAFAFF;
border-bottom-style: none;
padding-top: 1em;
vertical-align: top;
height: 2em;
}
.calendar thead th abbr {
border-bottom-style: none;
}
#CreatorInfo {
float: right;
margin: -1em 15px 0px 0px;
font-weight: bold;
color: #669;
}
#CreatorInfo a[href]:hover {
background-color: #B4B4CB;
}
.calendar tfoot tr td {
border-top: solid 4px #669;
vertical-align: middle;
@@ -826,7 +925,7 @@ table.calendar {
/* Calendar : Date Container */
.calendar td {
padding: 0px 0px 0px 1ex;
padding: 0px 5px 0px 1ex;
border-width: 1px 0px 0px 1px;
border-style: solid;
border-color: #B4B4CB;
@@ -834,7 +933,7 @@ table.calendar {
}
.calendar td:first-child {
border-left-style: none;
padding: 0px 0px 0px 1ex;
padding: 0px 5px 0px 1ex;
}
.calendar tbody tr:first-child td {
border-top-style: none;
@@ -885,8 +984,6 @@ body#fullyearlinked div.content {
overflow: hidden;
}
body#fullyearlinked table.calendar {
float: left;
width: 33.3%;
height: 18em;
border: solid 1px black;
}
@@ -903,3 +1000,48 @@ body#fullyearlinked table.calendar tbody td {
body#OneDay div.content {
overflow: hidden;
}
body#OneDay h3 {
font-size: xx-large;
vertical-align: top;
height: 2em;
}
#WebCal table.calendar tfoot {
display: none;
}
#WebCal table.calendar tr td {
word-wrap: break-word;
padding: 2px;
}
#WebCal .calendar tr td .empty {
border: 5px solid rgba(255,255,255,.0);
}
#WebCal .calendar tr td .clickable {
border: 5px solid rgba(255,255,255,.0);
}
#WebCal .calendar tr td .clickable:hover {
display: block;
overflow:auto;
word-wrap: break-word;
cursor: text;
border-radius: 10px 0px 10px 10px;
border: 5px solid #2E2E61;
padding: 0px;
}
body#fullyearlinked #YearGlance tbody td {
height:48px;
vertical-align: middle;
text-align: center;
padding-left: 6px;
}
body#fullyearlinked #YearGlance tbody td .date {
font-size: 30px;
vertical-align: middle;
text-align: center;
border-radius: 45px;
float: none;
border: 5px solid rgba(0,0,0,.0);
}
body#fullyearlinked #YearGlance tbody td:hover .date {
border-radius: 45px;
border: 5px solid;
}
+183 -41
View File
@@ -1,14 +1,15 @@
/*
**************************************************************************************************
*******************************************************************************
Copyright Holder and License
**************************************************************************************************
*******************************************************************************
GRAMPS Cascading Style Sheet
Style Name: Basic-Peach Stylesheet
Style Author: Jason M. Simanek (2008)
Note: Adapted from GRAMPS original Modern Style stylesheet with a new orange color scheme.
**************************************************************************************************
Note: Adapted from GRAMPS original Modern Style stylesheet with a new orange
color scheme.
*******************************************************************************
This website was created with GRAMPS <http://www.gramps-project.org/>
--------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------
GRAMPS is a Free Software Project for Genealogy, offering a professional
genealogy program, and a wiki open to all. It is a community project, created,
@@ -16,7 +17,7 @@ developed and governed by genealogists.
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>
@@ -36,10 +37,10 @@ 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
GRAMPS. If not, see <http://www.gnu.org/licenses/>.
--------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------
Color Palette
--------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------
black #36220B
brown #8C581C
@@ -47,14 +48,14 @@ orange dark #EA8414
orange #FFC35E
orange light #FFE09F
yellow light #FFFBE7
--------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------
Characteristic of this style is that it uses the full width of the browser
window and that horizontal highlighting bars extend over the full width of
the page.
--------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------
NarrativeWeb Styles
------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------
General Elements
----------------------------------------------------- */
@@ -96,6 +97,16 @@ body > div {
.content {
padding: 0em 0.5em;
}
body#fullyearlinked table.calendar {
float: none;
width: 100%;
}
}
@media only screen and (width > 1080px) {
body#fullyearlinked table.calendar {
float: left;
width: 33.3%;
}
}
/* General Text
@@ -227,7 +238,7 @@ div#alphanav ul li a:hover {
}
/* Responsive navigation */
a.navIcon {
button.navIcon {
display: none;
}
@@ -253,11 +264,6 @@ div#nav::after {
.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 */
@@ -279,11 +285,14 @@ div#nav::after {
.nav li {display: none;}
.nav ul {display: none;}
a.navIcon {
font-size:1.3em;
button.navIcon {
display: block;
margin: 0.1em 0.4em 0.4em 0.4em;
float: left;
font-size:2.9em;
line-height: 35px;
border: 0px;
color: #EA8414;
background-color: #FFE09F;
}
.nav.responsive {position: absolute; display: block; z-index: 100;}
@@ -294,7 +303,6 @@ div#nav::after {
margin-right: 10px;
}
.nav.responsive li {
/* float: left; */
display: block;
text-align: left;
background-color: #FFC35E;
@@ -415,12 +423,31 @@ table.surname td.ColumnName {
table.surname td.ColumnName > a {
padding-left: 15px;
}
table#SortByName tr:hover td.ColumnSurname,
table#SortByCount tr:hover td.ColumnQuantity {
background-color: #FFC35E;
}
table#SortByName tr:hover,
table#SortByCount tr:hover,
table#SortByName tr:hover td.ColumnQuantity,
table#SortByCount tr:hover td.ColumnSurname {
background-color: #FFC35E;
}
table.surname tr:hover,
table.surname tr:hover td.ColumnName {
background-color: #FFC35E;
}
/* Individuals
----------------------------------------------------- */
table.IndividualList td.ColumnSurname {
background-color: #FFE09F;
}
#parents table.infolist tr:hover,
table.IndividualList tr:hover,
table.IndividualList tr:hover td.ColumnSurname {
background-color: #FFC35E;
}
/* Places
----------------------------------------------------- */
@@ -437,6 +464,10 @@ table.IndividualList td.ColumnSurname {
#Places table.infolist td.ColumnName > a {
padding-left: 1ex;
}
#Places table.infolist tr:hover,
#Places table.infolist tr:hover td.ColumnName {
background-color: #FFC35E;
}
/* Events
----------------------------------------------------- */
@@ -452,6 +483,10 @@ table.IndividualList td.ColumnSurname {
#EventList td.ColumnPerson a {
display: inline;
}
#EventList table.infolist tr:hover,
#EventList table.infolist tr:hover td.ColumnType {
background-color: #FFC35E;
}
#EventList td.ColumnPerson span.person:after,
#EventList td.ColumnPerson span.father:after,
#EventList td.ColumnPerson span.mother:after,
@@ -472,10 +507,57 @@ table.IndividualList td.ColumnSurname {
#EventDetail td.ColumnPerson span.mother:last-child:after {
content: "";
}
#attributes table.infolist td.ColumnType {
width: 10%;
padding-left: 15px;
}
#attributes table.infolist td.ColumnValue {
width: 15%;
}
#attributes table.infolist td.ColumnSources {
width: 5%;
padding-left: 5px;
}
#WebLinks table.infolist td.ColumnType {
width: 10%;
padding-left: 15px;
}
#events table.eventlist td.ColumnDate {
width: 15%;
padding-left: 10px;
}
#families table.eventlist th.ColumnDate {
width: 15%;
padding-left: 20px;
}
#families table.eventlist td.ColumnDate {
width: 15%;
padding-left: 10px;
}
#families table.eventlist tbody tr td:first-child,
#families table.eventlist thead tr th:first-child {
width: 10%;
padding-left: 0px;
}
#families table.eventlist tbody tr td.ColumnDate,
#families table.eventlist tbody tr td.ColumnNotes {
padding-left: 20px;
}
table.eventlist tbody tr td:first-child,
table.eventlist thead tr th:first-child {
padding-left: 10px;
}
table.eventlist tbody tr td.ColumnSources {
width: 5%;
}
table.eventlist th.ColumnDate {
width: 15%;
}
table.eventlist td.ColumnEvent,
table.eventlist td.ColumnDate,
table.eventlist td.ColumnPlace {
font-weight: bold;
}
/* Gallery
----------------------------------------------------- */
@@ -512,11 +594,10 @@ table.eventlist tbody tr td.ColumnSources {
margin: 0px auto;
display: block;
border: solid 1px #EA8414;
max-width: 800px;
height: auto;
}
@media only screen and (max-width: 1080px) {
@media only screen and (max-width: 1600px) {
#GalleryDisplay img {
max-width: 100%;
}
@@ -530,6 +611,10 @@ table.eventlist tbody tr td.ColumnSources {
div#SourceDetail {
margin: 0 auto;
}
#Sources table.infolist tr:hover,
#Sources table.infolist tr:hover td.ColumnType {
background-color: #FFC35E;
}
/* Contact
----------------------------------------------------- */
@@ -599,6 +684,10 @@ div#SourceDetail {
/* Subsection : Families
----------------------------------------------------- */
#families table.infolist td.ColumnValue.Child table.infolist tr:hover,
table.relationships tr:hover {
background-color: #FFC35E;
}
div#families table.fixed_subtables table.eventlist {
table-layout: fixed;
}
@@ -650,7 +739,6 @@ div#families table.attrlist td.ColumnType {
}
#gallery div.indexno {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
@@ -698,11 +786,21 @@ div.snapshot div.thumbnail {
h4 + div.grampsstylednote, a.familymap {
margin: 1em 15px;
}
i.NoteType {
font-weight: bold;
font-size: .8em;
}
i + div.grampsstylednote p {
margin: 0 0 0.3em 0;
}
div.grampsstylednote p {
margin-bottom: 0.5em;
padding-bottom: 0.6em;
}
/* Subsection : References
----------------------------------------------------- */
#references ol {
margin-left: 2em;
}
/* Subsection : Family Map
@@ -710,6 +808,9 @@ div.grampsstylednote p {
a.familymap {
display: block;
}
a.family_map {
margin-left: 15px;
}
/* Subsection : Source References
----------------------------------------------------- */
@@ -774,11 +875,17 @@ a.familymap {
background-color: #FFC35E;
}
/* Updates
----------------------------------------------------- */
#Updates table.list td.date {
width: 20%;
}
/* Overwritten
----------------------------------------------------- */
button#drop {
background-color: #FFE09F;
border: solid 1px #EA8414 ! important;
border: solid 1px #EA8414 !important;
}
button#drop:hover {
background-color: #FFC35E;
@@ -806,19 +913,12 @@ table.calendar {
background-color: #FFFBE7;
border-bottom-style: none;
padding-top: 1em;
vertical-align: top;
height: 2em;
}
.calendar thead th abbr {
border-bottom-style: none;
}
#CreatorInfo {
float: right;
margin: -1em 15px 0px 0px;
font-weight: bold;
color: #8C581C;
}
#CreatorInfo a[href]:hover {
background-color: #FFC35E;
}
.calendar tfoot tr td {
border-top: solid 4px #8C581C;
vertical-align: middle;
@@ -827,7 +927,6 @@ table.calendar {
/* Calendar : Date Numeral */
.calendar div.date {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #FFC35E;
@@ -836,7 +935,7 @@ table.calendar {
/* Calendar : Date Container */
.calendar td {
padding: 0px 0px 0px 1ex;
padding: 0px 5px 0px 1ex;
border-width: 1px 0px 0px 1px;
border-style: solid;
border-color: #FFC35E;
@@ -844,7 +943,7 @@ table.calendar {
}
.calendar td:first-child {
border-left-style: none;
padding: 0px 0px 0px 1ex;
padding: 0px 5px 0px 1ex;
}
.calendar tbody tr:first-child td {
border-top-style: none;
@@ -895,8 +994,6 @@ body#fullyearlinked div.content {
overflow: hidden;
}
body#fullyearlinked table.calendar {
float: left;
width: 33.3%;
height: 18em;
border: solid 1px #36220B;
}
@@ -913,3 +1010,48 @@ body#fullyearlinked table.calendar tbody td {
body#OneDay div.content {
overflow: hidden;
}
body#OneDay h3 {
font-size: xx-large;
vertical-align: top;
height: 2em;
}
#WebCal table.calendar tfoot {
display: none;
}
#WebCal table.calendar tr td {
word-wrap: break-word;
padding: 2px;
}
#WebCal .calendar tr td .empty {
border: 5px solid rgba(255,255,255,.0);
}
#WebCal .calendar tr td .clickable {
border: 5px solid rgba(255,255,255,.0);
}
#WebCal .calendar tr td .clickable:hover {
display: block;
overflow:auto;
word-wrap: break-word;
cursor: text;
border-radius: 10px 0px 10px 10px;
border: 5px solid #EA8414;
padding: 0px;
}
body#fullyearlinked #YearGlance tbody td {
height:48px;
vertical-align: middle;
text-align: center;
padding-left: 6px;
}
body#fullyearlinked #YearGlance tbody td .date {
font-size: 30px;
vertical-align: middle;
text-align: center;
border-radius: 45px;
float: none;
border: 5px solid rgba(0,0,0,.0);
}
body#fullyearlinked #YearGlance tbody td:hover .date {
border-radius: 45px;
border: 5px solid;
}
+183 -40
View File
@@ -1,14 +1,15 @@
/*
**************************************************************************************************
*******************************************************************************
Copyright Holder and License
**************************************************************************************************
*******************************************************************************
GRAMPS Cascading Style Sheet
Style Name: Basic-Spruce Stylesheet
Style Author: Jason M. Simanek (2008)
Note: Adapted from GRAMPS original Modern Style stylesheet with a new blue color scheme.
**************************************************************************************************
Note: Adapted from GRAMPS original Modern Style stylesheet with a new blue
color scheme.
*******************************************************************************
This website was created with GRAMPS <http://www.gramps-project.org/>
--------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------
GRAMPS is a Free Software Project for Genealogy, offering a professional
genealogy program, and a wiki open to all. It is a community project, created,
@@ -16,7 +17,7 @@ developed and governed by genealogists.
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>
@@ -37,10 +38,10 @@ 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
GRAMPS. If not, see <http://www.gnu.org/licenses/>.
--------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------
Color Palette
--------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------
black #000
blue dark #204D91
@@ -48,14 +49,14 @@ blue #7CA3DD
blue light #BFD0EA
blue very light #EAEEF4
white #FFF
--------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------
Characteristic of this style is that it uses the full width of the browser
window and that horizontal highlighting bars extend over the full width of
the page.
--------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------
NarrativeWeb Styles
------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------
General Elements
----------------------------------------------------- */
@@ -97,6 +98,16 @@ body > div {
.content {
padding: 0em 0.5em;
}
body#fullyearlinked table.calendar {
float: none;
width: 100%;
}
}
@media only screen and (width > 1080px) {
body#fullyearlinked table.calendar {
float: left;
width: 33.3%;
}
}
/* General Text
@@ -228,7 +239,7 @@ div#alphanav ul li a:hover {
}
/* Responsive navigation */
a.navIcon {
button.navIcon {
display: none;
}
@@ -254,11 +265,6 @@ div#nav::after {
.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 */
@@ -280,11 +286,14 @@ div#nav::after {
.nav li {display: none;}
.nav ul {display: none;}
a.navIcon {
font-size:1.3em;
button.navIcon {
display: block;
margin: 0.1em 0.4em 0.4em 0.4em;
float: left;
font-size:2.9em;
line-height: 35px;
border: 0px;
color: #204D91;
background-color: #EAEEF4;
}
.nav.responsive {position: absolute; display: block; z-index: 100;}
@@ -295,7 +304,6 @@ div#nav::after {
margin-right: 10px;
}
.nav.responsive li {
/* float: left; */
display: block;
text-align: left;
background-color: #EEE;
@@ -416,12 +424,31 @@ table.surname td.ColumnName {
table.surname td.ColumnName > a {
padding-left: 15px;
}
table#SortByName tr:hover td.ColumnSurname,
table#SortByCount tr:hover td.ColumnQuantity {
background-color: #BFD0EA;
}
table#SortByName tr:hover,
table#SortByCount tr:hover,
table#SortByName tr:hover td.ColumnQuantity,
table#SortByCount tr:hover td.ColumnSurname {
background-color: #BFD0EA;
}
table.surname tr:hover,
table.surname tr:hover td.ColumnName {
background-color: #BFD0EA;
}
/* Individuals
----------------------------------------------------- */
table.IndividualList td.ColumnSurname {
background-color: #EAEEF4;
}
#parents table.infolist tr:hover,
table.IndividualList tr:hover,
table.IndividualList tr:hover td.ColumnSurname {
background-color: #EAEEF4;
}
/* Places
----------------------------------------------------- */
@@ -438,6 +465,10 @@ table.IndividualList td.ColumnSurname {
#Places table.infolist td.ColumnName > a {
padding-left: 1ex;
}
#Places table.infolist tr:hover,
#Places table.infolist tr:hover td.ColumnName {
background-color: #BFD0EA;
}
/* Events
----------------------------------------------------- */
@@ -453,6 +484,10 @@ table.IndividualList td.ColumnSurname {
#EventList td.ColumnPerson a {
display: inline;
}
#EventList table.infolist tr:hover,
#EventList table.infolist tr:hover td.ColumnType {
background-color: #BFD0EA;
}
#EventList td.ColumnPerson span.person:after,
#EventList td.ColumnPerson span.father:after,
#EventList td.ColumnPerson span.mother:after,
@@ -473,10 +508,57 @@ table.IndividualList td.ColumnSurname {
#EventDetail td.ColumnPerson span.mother:last-child:after {
content: "";
}
#attributes table.infolist td.ColumnType {
width: 10%;
padding-left: 15px;
}
#attributes table.infolist td.ColumnValue {
width: 15%;
}
#attributes table.infolist td.ColumnSources {
width: 5%;
padding-left: 5px;
}
#WebLinks table.infolist td.ColumnType {
width: 10%;
padding-left: 15px;
}
#events table.eventlist td.ColumnDate {
width: 15%;
padding-left: 10px;
}
#families table.eventlist th.ColumnDate {
width: 15%;
padding-left: 20px;
}
#families table.eventlist td.ColumnDate {
width: 15%;
padding-left: 10px;
}
#families table.eventlist tbody tr td:first-child,
#families table.eventlist thead tr th:first-child {
width: 10%;
padding-left: 0px;
}
#families table.eventlist tbody tr td.ColumnDate,
#families table.eventlist tbody tr td.ColumnNotes {
padding-left: 20px;
}
table.eventlist tbody tr td:first-child,
table.eventlist thead tr th:first-child {
padding-left: 10px;
}
table.eventlist tbody tr td.ColumnSources {
width: 5%;
}
table.eventlist th.ColumnDate {
width: 15%;
}
table.eventlist td.ColumnEvent,
table.eventlist td.ColumnDate,
table.eventlist td.ColumnPlace {
font-weight: bold;
}
/* Gallery
----------------------------------------------------- */
@@ -513,11 +595,10 @@ table.eventlist tbody tr td.ColumnSources {
margin: 0px auto;
display: block;
border: solid 1px #7CA3DD;
max-width: 800px;
height: auto;
}
@media only screen and (max-width: 1080px) {
@media only screen and (max-width: 1600px) {
#GalleryDisplay img {
max-width: 100%;
}
@@ -531,6 +612,10 @@ table.eventlist tbody tr td.ColumnSources {
div#SourceDetail {
margin: 0 auto;
}
#Sources table.infolist tr:hover,
#Sources table.infolist tr:hover td.ColumnType {
background-color: #BFD0EA;
}
/* Contact
----------------------------------------------------- */
@@ -600,6 +685,10 @@ div#SourceDetail {
/* Subsection : Families
----------------------------------------------------- */
#families table.infolist td.ColumnValue.Child table.infolist tr:hover,
table.relationships tr:hover {
background-color: #BFD0EA;
}
div#families table.fixed_subtables table.eventlist {
table-layout: fixed;
}
@@ -651,7 +740,6 @@ div#families table.attrlist td.ColumnType {
}
#gallery div.indexno {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
@@ -699,11 +787,21 @@ div.snapshot div.thumbnail {
h4 + div.grampsstylednote, a.familymap {
margin: 1em 15px;
}
i.NoteType {
font-weight: bold;
font-size: .8em;
}
i + div.grampsstylednote p {
margin: 0 0 0.3em 0;
}
div.grampsstylednote p {
margin-bottom: 0.5em;
padding-bottom: 0.6em;
}
/* Subsection : References
----------------------------------------------------- */
#references ol {
margin-left: 2em;
}
/* Subsection : Family Map
@@ -711,6 +809,9 @@ div.grampsstylednote p {
a.familymap {
display: block;
}
a.family_map {
margin-left: 15px;
}
/* Subsection : Source References
----------------------------------------------------- */
@@ -775,10 +876,16 @@ a.familymap {
background-color: #BFD0EA;
}
/* Updates
----------------------------------------------------- */
#Updates table.list td.date {
width: 20%;
}
/* Overwritten
----------------------------------------------------- */
body#FamilyMap {
background-color: #EAEEF4 ! important;
background-color: #EAEEF4 !important;
}
/* Calendar Styles
@@ -797,19 +904,12 @@ table.calendar {
background-color: #FFF;
border-bottom-style: none;
padding-top: 1em;
vertical-align: top;
height: 2em;
}
.calendar thead th abbr {
border-bottom-style: none;
}
#CreatorInfo {
float: right;
margin: -1em 15px 0px 0px;
font-weight: bold;
color: #7CA3DD;
}
#CreatorInfo a[href]:hover {
background-color: #BFD0EA;
}
.calendar tfoot tr td {
border-top: solid 4px #7CA3DD;
vertical-align: middle;
@@ -827,7 +927,7 @@ table.calendar {
/* Calendar : Date Container */
.calendar td {
padding: 0px 0px 0px 1ex;
padding: 0px 5px 0px 1ex;
border-width: 1px 0px 0px 1px;
border-style: solid;
border-color: #BFD0EA;
@@ -835,7 +935,7 @@ table.calendar {
}
.calendar td:first-child {
border-left-style: none;
padding: 0px 0px 0px 1ex;
padding: 0px 5px 0px 1ex;
}
.calendar tbody tr:first-child td {
border-top-style: none;
@@ -886,8 +986,6 @@ body#fullyearlinked div.content {
overflow: hidden;
}
body#fullyearlinked table.calendar {
float: left;
width: 33.3%;
height: 18em;
border: solid 1px black;
}
@@ -904,3 +1002,48 @@ body#fullyearlinked table.calendar tbody td {
body#OneDay div.content {
overflow: hidden;
}
body#OneDay h3 {
font-size: xx-large;
vertical-align: top;
height: 2em;
}
#WebCal table.calendar tfoot {
display: none;
}
#WebCal table.calendar tr td {
word-wrap: break-word;
padding: 2px;
}
#WebCal .calendar tr td .empty {
border: 5px solid rgba(255,255,255,.0);
}
#WebCal .calendar tr td .clickable {
border: 5px solid rgba(255,255,255,.0);
}
#WebCal .calendar tr td .clickable:hover {
display: block;
overflow:auto;
word-wrap: break-word;
cursor: text;
border-radius: 10px 0px 10px 10px;
border: 5px solid #204D91;
padding: 0px;
}
body#fullyearlinked #YearGlance tbody td {
height:48px;
vertical-align: middle;
text-align: center;
padding-left: 6px;
}
body#fullyearlinked #YearGlance tbody td .date {
font-size: 30px;
vertical-align: middle;
text-align: center;
border-radius: 45px;
float: none;
border: 5px solid rgba(0,0,0,.0);
}
body#fullyearlinked #YearGlance tbody td:hover .date {
border-radius: 45px;
border: 5px solid;
}
+1 -1
View File
@@ -10,7 +10,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.
+4 -7
View File
@@ -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.
@@ -77,8 +77,7 @@ ul#dropmenu li:hover > a {
color: #fafafa
}
*html ul#dropmenu li a:hover /* IE6 */
{
*html ul#dropmenu li a:hover /* IE6 */ {
color: #fafafa
}
ul#dropmenu li:hover > ul {
@@ -129,13 +128,11 @@ ul#dropmenu ul a {
float: none;
text-transform: none;
}
*html ul#dropmenu ul a /* IE6 */
{
*html ul#dropmenu ul a /* IE6 */ {
height: 10px;
width: 150px;
}
*:first-child+html ul#dropmenu ul a /* IE7 */
{
*:first-child+html ul#dropmenu ul a /* IE7 */ {
height: 10px;
width: 150px;
}
+1 -1
View File
@@ -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.
+1 -1
View File
@@ -10,7 +10,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.
+198 -39
View File
@@ -58,7 +58,7 @@ Middle Light images/Web_Mainz_MidLight.png
NarrativeWeb Styles
--------------------------------------------------------------------------------------------
----------------------------------------------------------------------------
General Elements
-----------------------------------------------------------------*/
@@ -69,7 +69,6 @@ body {
background: url(../images/Web_Mainz_Bkgd.png) black repeat;
}
body > div {
width: 85%;
margin: 0px auto;
overflow: hidden;
}
@@ -82,6 +81,7 @@ body > div {
}
.content {
padding: 1.5em 1.5em;
overflow: auto;
background: url(../images/Web_Mainz_Mid.png) #FFF2C6 repeat;
}
#ThumbnailPreview div.snapshot {
@@ -99,8 +99,17 @@ div.snapshot a {
.content {
padding: 0em 0.5em;
}
body#fullyearlinked table.calendar {
float: none;
width: 100%;
}
}
@media only screen and (width > 1080px) {
body#fullyearlinked table.calendar {
float: left;
width: 33.3%;
}
}
/* General Text
-----------------------------------------------------------------*/
@@ -141,7 +150,8 @@ a {
word-wrap: break-word;
}
a[href]:hover, a[href]:active {
background-color: #FFFFE7;
background-color: #D8C19F;
font-style: italic;
}
.grampsid {
font-family: monospace;
@@ -158,7 +168,7 @@ a[href]:hover, a[href]:active {
/* Navigation
-----------------------------------------------------------------*/
div#nav, #subnavigation {
background: url(../images/Web_Mainz_MidLight.png) #FFF2C6 repeat;
background: url(../images/Web_Mainz_Mid.png) repeat-x top left;
}
div#nav ul, #subnavigation ul {
list-style-type: none;
@@ -224,7 +234,7 @@ div#alphanav ul li a:hover {
}
/* Responsive navigation */
a.navIcon {
button.navIcon {
display: none;
}
@@ -250,11 +260,6 @@ div#nav::after {
.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 */
@@ -276,11 +281,14 @@ div#nav::after {
.nav li {display: none;}
.nav ul {display: none;}
a.navIcon {
font-size:1.3em;
button.navIcon {
display: block;
margin: 0.1em 0.4em 0.4em 0.4em;
float: left;
font-size:2.9em;
line-height: 80px;
border: 0px;
color: #7D5925;
background: url(../images/Web_Mainz_Mid.png) #FFF2C6 repeat;
}
.nav.responsive {position: absolute; display: block; z-index: 100;}
@@ -291,8 +299,8 @@ div#nav::after {
margin-right: 10px;
}
.nav.responsive li {
/* float: left; */
display: block;
height:1.4em;
text-align: left;
background-color: #D8C19F;
/* required by IE */
@@ -376,12 +384,40 @@ table#SortByName thead th.ColumnSurname a:after,
table#SortByCount thead th.ColumnQuantity a:after {
content: " \2193";
}
table#SortByName tr:hover td.ColumnSurname,
table#SortByCount tr:hover td.ColumnQuantity {
background-color: #D8C19F;
}
table#SortByName tbody tr:hover,
table#SortByCount tbody tr:hover,
table#SortByName tr:hover td.ColumnQuantity,
table#SortByCount tr:hover td.ColumnSurname {
background-color: #D8C19F;
}
table.surname tbody tr:hover,
table.surname tr:hover td.ColumnName {
background-color: #D8C19F;
}
#SurnameDetail h3 {
border-bottom-width: 0px;
padding-bottom: 0px;
margin: 0px;
}
/* Individuals
----------------------------------------------------- */
#parents table.infolist tbody tr:hover,
table.IndividualList tbody tr:hover,
table.IndividualList tr:hover td.ColumnSurname {
background-color: #D8C19F;
}
/* Places
----------------------------------------------------- */
#Places table.infolist tbody tr:hover,
#Places table.infolist tr:hover td.ColumnName {
background-color: #D8C19F;
}
/* Events
-----------------------------------------------------------------*/
#EventList tr.BeginType td {
@@ -395,6 +431,10 @@ table#SortByCount thead th.ColumnQuantity a:after {
#EventList td.ColumnPerson a {
display: inline;
}
#EventList table.infolist tbody tr:hover,
#EventList table.infolist tr:hover td.ColumnType {
background-color: #D8C19F;
}
/* Family events, put mother on next line */
#EventList td.ColumnPerson span.father,
#EventList td.ColumnPerson span.mother,
@@ -418,9 +458,57 @@ table#SortByCount thead th.ColumnQuantity a:after {
#EventDetail td.ColumnPerson span.mother:last-child:after {
content: "";
}
table.eventlist tbody tr td.ColumnSources {
#attributes table.infolist td.ColumnType {
width: 10%;
padding-left: 15px;
}
#attributes table.infolist td.ColumnValue {
width: 15%;
}
#attributes table.infolist td.ColumnSources {
width: 5%;
padding-left: 5px;
}
#WebLinks table.infolist td.ColumnType {
width: 10%;
padding-left: 15px;
}
#events table.eventlist td.ColumnDate {
width: 15%;
padding-left: 10px;
}
#families table.eventlist th.ColumnDate {
width: 15%;
padding-left: 25px;
}
#families table.eventlist td.ColumnDate {
width: 15%;
padding-left: 20px;
}
#families table.eventlist tbody tr td:first-child,
#families table.eventlist thead tr th:first-child {
width: 10%;
padding-left: 0px;
}
#families table.eventlist tbody tr td.ColumnDate,
#families table.eventlist tbody tr td.ColumnNotes {
padding-left: 25px;
}
#IndividualDetail div table.eventlist td.ColumnEvent {
padding-right: 0px;
width: 8%;
}
#IndividualDetail div table.eventlist td.ColumnSources {
width: 5%;
}
#IndividualDetail div table.eventlist td.ColumnDate {
padding-right: 0px;
width: 15%;
}
#IndividualDetail div table.eventlist td.ColumnEvent,
#IndividualDetail div table.eventlist td.ColumnDate,
#IndividualDetail div table.eventlist td.ColumnPlace {
font-weight: bold;
}
/* Gallery
@@ -467,11 +555,10 @@ table.eventlist tbody tr td.ColumnSources {
margin: 0px auto;
display:block;
border: solid 1px #7D5925;
max-width: 800px;
height: auto;
}
@media only screen and (max-width: 1080px) {
@media only screen and (max-width: 1600px) {
#GalleryDisplay img {
max-width: 100%;
}
@@ -482,6 +569,10 @@ table.eventlist tbody tr td.ColumnSources {
div#SourceDetail {
margin: 0 auto;
}
#Sources table.infolist tbody tr:hover,
#Sources table.infolist tr:hover td.ColumnType {
background-color: #D8C19F;
}
/* Contact
-----------------------------------------------------------------*/
@@ -548,6 +639,10 @@ div#SourceDetail {
/* SubSection : Families
-----------------------------------------------------------------*/
#families table.infolist td.ColumnValue.Child table.infolist tbody tr:hover,
table.relationships tr:hover td {
background-color: #D8C19F;
}
div#families table.fixed_subtables table.eventlist {
table-layout: fixed;
}
@@ -566,9 +661,6 @@ div#families .infolist h4 {
#gallery {
background-color: green;
}
#indivgallery {
background-color: white;
}
#gallery .gallerycell {
float: left;
width: 130px;
@@ -593,7 +685,6 @@ div#families .infolist h4 {
font-size: smaller;
text-align: center;
margin: 0.5em;
background-color: white;
}
#indivgallery img {
border: solid 1px #7D5925;
@@ -604,7 +695,6 @@ div#families .infolist h4 {
}
#gallery div.indexno {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
@@ -646,11 +736,24 @@ h4 + div.grampsstylednote, a.familymap {
margin-left: 10px;
margin-right: 10px;
}
a.family_map {
margin-left: 10px;
}
i.NoteType {
font-weight: bold;
font-size: .8em;
}
i + div.grampsstylednote p {
margin: 0 0 0.3em 0;
}
div.grampsstylednote p {
margin-bottom: 0.5em;
padding-bottom: 0.6em;
}
/* Subsection : References
----------------------------------------------------- */
#references ol {
margin-left: 2em;
}
/* SubSection : Source References
@@ -718,16 +821,22 @@ div.grampsstylednote p {
background: url(../images/Web_Mainz_MidLight.png) #FFF2C6;
}
/* Updates
----------------------------------------------------- */
#Updates table.list td.date {
width: 20%;
}
/* Overwritten
-----------------------------------------------------------------*/
button#drop {
font-style: italic;
color: #FFF2C6;
background: url(../images/Web_Mainz_Bkgd.png) #7D5925 repeat;
border: outset 3px black ! important;
border: outset 3px black !important;
}
div#map_canvas {
border-color: #7D5925 ! important;
border-color: #7D5925 !important;
}
/* Calendar Styles
@@ -747,28 +856,24 @@ table.calendar {
.calendar thead th.monthName {
font-size: xx-large;
color: #767D25;
border-bottom-color: #7D5925;
vertical-align: top;
height: 2em;
border-bottom-style: none;
}
.calendar thead th abbr {
border-bottom-style: none;
}
#CreatorInfo {
float: right;
margin: -1em 0px 0px 0px;
font-weight: bold;
font-style: italic;
}
.calendar tfoot td {
border-top: double 4px #7D5925;
}
/* Calendar : Date Numeral */
.calendar div.date {
float: right;
width: 1.8em;
width: 1.5em;
font-size: large;
font-style: italic;
text-align: center;
margin-top: 1px;
background: url(../images/Web_Mainz_MidLight.png) #FFF2C6 repeat;
}
@@ -812,10 +917,11 @@ table.calendar {
color: #767D25;
}
.calendar td ul li span.yearsmarried em {
color: black;
color: #767D25;
}
.calendar td.highlight div.date {
color: #767D25;
margin-top: 1px;
background-image: none;
background-color: #FFFFE7;
}
@@ -828,8 +934,6 @@ table.calendar {
/* Calendar : Full Year */
body#fullyearlinked table.calendar {
float: left;
width: 315px;
height: 18em;
border: solid 1px #7D5925;
}
@@ -842,3 +946,58 @@ body#fullyearlinked table.calendar thead th.monthName {
body#fullyearlinked table.calendar tbody td {
height: 3em;
}
body#OneDay h3 {
font-size: xx-large;
vertical-align: top;
height: 2em;
text-align: center;
}
#WebCal table.calendar tfoot {
display: none;
}
#WebCal table.calendar tr td {
word-wrap: break-word;
padding: 2px;
}
#WebCal .calendar tr td .empty {
border: 5px solid rgba(255,255,255,.0);
}
#WebCal .calendar tr td .clickable {
border: 5px solid rgba(255,255,255,.0);
}
#WebCal .calendar tr td .clickable:hover {
display: block;
overflow:auto;
word-wrap: break-word;
cursor: text;
border-radius: 10px 0px 10px 10px;
border: 5px solid #7D5925;
padding: 0px;
}
body#fullyearlinked #YearGlance tbody td {
vertical-align: middle;
text-align: center;
padding-left: 8px;
}
body#fullyearlinked #YearGlance tbody td .date {
font-size: 30px;
vertical-align: middle;
text-align: center;
border-radius: 45px;
float: none;
border: 5px solid rgba(0,0,0,.0);
}
body#fullyearlinked #YearGlance tbody td.previous .date:hover,
body#fullyearlinked #YearGlance tbody td.next .date:hover {
border-radius: 10px;
border: 5px solid;
}
body#fullyearlinked #YearGlance tbody td div.empty .date:hover {
border-radius: 10px;
border: 5px solid;
}
body#fullyearlinked #YearGlance tbody td.highlight .date:hover {
border-radius: 45px;
border: 5px solid;
background: url(../images/Web_Mainz_Bkgd.png) black repeat;
}
+223 -56
View File
@@ -1,21 +1,21 @@
/*
**************************************************************************************************
*******************************************************************************
Copyright Holder and License
**************************************************************************************************
*******************************************************************************
GRAMPS Cascading Style Sheet
Style Name: Nebraska Default Stylesheet
Style Author: Jason M. Simanek (2008)
**************************************************************************************************
*******************************************************************************
This website was created with GRAMPS <http://www.gramps-project.org/>
--------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------
GRAMPS is a Free Software Project for Genealogy, offering a professional
genealogy program, and a wiki open to all. It is a community project, created,
developed and governed by genealogists.
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>
@@ -34,10 +34,10 @@ 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
GRAMPS. If not, see <http://www.gnu.org/licenses/>.
--------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------
Color Palette
--------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------
brown darkest #453619
brown dark #542
brown #A97
@@ -45,14 +45,14 @@ brown light #C1B398
brown lightest #F6F2EE
gray #696969
green #5D835F
--------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------
NarrativeWeb Styles
--------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------
General Elements
----------------------------------------------------- */
---------------------------------------------------------------------------- */
body {
color:#000;
@@ -118,6 +118,16 @@ img {
.content {
padding: 0em 0.5em;
}
body#fullyearlinked table.calendar {
float: none;
width: 100%;
}
}
@media only screen and (width > 1080px) {
body#fullyearlinked table.calendar {
float: left;
width: 33.3%;
}
}
.fullclear {
width:100%;
@@ -162,7 +172,7 @@ p#description {
background-color:#FFF;
}
p a {
color:#FFF;
color:#542;
text-decoration:underline;
}
sup {
@@ -274,7 +284,7 @@ div#subnavigation ul li.CurrentSection a {
}
/* Responsive navigation */
a.navIcon {
button.navIcon {
display: none;
color: #FFF;
}
@@ -301,11 +311,6 @@ div#nav::after {
.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 */
@@ -327,12 +332,14 @@ div#nav::after {
.nav li {display: none;}
.nav ul {display: none;}
a.navIcon {
font-size:1.3em;
button.navIcon {
display: block;
margin: 0.1em 0.4em 0.4em 0.4em;
float: left;
color: #FFF;
font-size:2.9em;
line-height: 70px;
border: 0px;
background-color: #542;
color: #FFF;
}
.nav.responsive {position: absolute; display: block; z-index: 100;}
@@ -348,7 +355,6 @@ div#nav::after {
background-color: #A97;
}
.nav.responsive li {
/* float: left; */
display: block;
text-align: left;
background-color: #A97;
@@ -452,6 +458,20 @@ table.surnamelist tr th a, table.surnamelist tr th a:visited {
table.surnamelist tr th:hover {
background-color:#C1B398;
}
table#SortByName tr:hover td.ColumnSurname,
table#SortByCount tr:hover td.ColumnQuantity {
background-color:#C1B398;
}
table#SortByName tr:hover,
table#SortByCount tr:hover,
table#SortByName tr:hover td.ColumnQuantity,
table#SortByCount tr:hover td.ColumnSurname {
background-color:#C1B398;
}
table.surname tr:hover,
table.surname tr:hover td.ColumnName {
background-color:#C1B398;
}
table.surnamelist thead tr th.ColumnLetter {
padding-left:20px;
padding-right:10px;
@@ -507,6 +527,11 @@ table.surname thead tr th.ColumnParents, table.surname tbody tr td.ColumnParents
/* Individuals
----------------------------------------------------- */
#parents table.infolist tr:hover,
table.IndividualList tr:hover,
table.IndividualList tr:hover td.ColumnSurname {
background-color:#C1B398;
}
#Individuals { }
#Individuals table.IndividualList {
border-bottom:solid 1px #A97;
@@ -550,6 +575,7 @@ table.IndividualList tbody tr td.ColumnName a:hover {
#IndividualDetail div table.infolist tr td {
font:normal .9em/1.2em sans-serif;
vertical-align:top;
padding-left: 5px;
}
#IndividualDetail div table.infolist tr td a {
display:inline;
@@ -562,11 +588,15 @@ table.IndividualList tbody tr td.ColumnName a:hover {
color:#696969;
}
#IndividualDetail div.subsection table tr td:first-child {
color:#696969;
padding-left:20px;
}
#familymap a.familymap {
margin-left:20px;
}
a.family_map {
margin-left: 20px;
}
/* Subsections : Attributes
----------------------------------------------------- */
@@ -599,6 +629,10 @@ table.attrlist tbody tr td.ColumnSources {
/* Sources
----------------------------------------------------- */
#Sources table.infolist tr:hover,
#Sources table.infolist tr:hover td.ColumnType {
background-color:#C1B398;
}
#Sources { }
#Sources table.infolist tbody tr td.ColumnRowLabel {
padding-bottom:0;
@@ -647,6 +681,10 @@ table.relationships tbody tr td.ColumnPartner a:hover {
#Places table.infolist tbody tr td.ColumnName {
padding:0;
}
#Places table.infolist tr:hover,
#Places table.infolist tr:hover td.ColumnName {
background-color:#C1B398;
}
#Places table.infolist tbody tr td.ColumnName a {
padding:.1em 10px .3em 10px;
}
@@ -666,7 +704,11 @@ table.relationships tbody tr td.ColumnPartner a:hover {
#EventDetail table.infolist tr td a {
display: inline;
}
#EventList table.infolist tr td span.father,
#EventList table.infolist tr:hover,
#EventList table.infolist tr:hover td.ColumnType {
background-color:#C1B398;
}
#EventList table.infolist tr td span.father,
#EventList table.infolist tr td span.mother,
#EventDetail table.infolist tr td span.father,
#EventDetail table.infolist tr td span.mother {
@@ -688,10 +730,27 @@ table.relationships tbody tr td.ColumnPartner a:hover {
#EventDetail table.infolist tr td span.mother:last-child:after {
content: "";
}
table.eventlist tbody tr td.ColumnSources {
#IndividualDetail div table.eventlist tbody tr td:first-child,
#IndividualDetail div table.eventlist thead tr th:first-child {
padding-left: 10px;
}
#IndividualDetail div table.eventlist tbody tr td.ColumnSources {
padding-left: 5px;
width: 5%;
}
#IndividualDetail div table.eventlist tbody tr td.ColumnEvent {
padding-right: 0px;
width: 8%;
}
#IndividualDetail div table.eventlist tbody tr td.ColumnDate {
padding-left: 10px;
width: 15%;
}
#IndividualDetail div table.eventlist td.ColumnEvent,
#IndividualDetail div table.eventlist td.ColumnDate,
#IndividualDetail div table.eventlist td.ColumnPlace {
font-weight: bold;
}
/* Gallery
----------------------------------------------------- */
@@ -747,11 +806,10 @@ table.eventlist tbody tr td.ColumnSources {
}
#GalleryDisplay img {
margin:0 auto;
max-width: 800px;
height: auto;
}
@media only screen and (max-width: 1080px) {
@media only screen and (max-width: 1600px) {
#GalleryDisplay img {
max-width: 100%;
}
@@ -844,9 +902,9 @@ body#ThumbnailPreview div#references table.infolist tbody tr td.ColumnName {
text-decoration:underline;
}
/* Download
/* Download
----------------------------------------------------- */
#Download {
#Download {
padding:1cm;
height:396px;
}
@@ -866,7 +924,7 @@ table.download thead tr th {
table.download tbody tr#Row02 {
border-bottom:solid 2px #000;
}
table.download thead tr th, table.download tbody tr td {
table.download thead tr th, table.download tbody tr td {
padding-left:10px;
padding-top:20px;
border-style:solid;
@@ -969,9 +1027,6 @@ div#events h4 {
padding-bottom:4px;
background-color:#A97;
}
#IndividualDetail div#events table.infolist thead tr th:first-child {
padding-left:20px;
}
#IndividualDetail div#events table.infolist tbody tr td {
padding-top:.4em;
padding-bottom:.8em;
@@ -987,6 +1042,51 @@ table.infolist tbody tr td.ColumnValue p {
color:#696969;
margin:.2em 0 0 2em;
}
#attributes table.infolist td.ColumnType {
width: 10%;
padding-left: 15px;
}
#attributes table.infolist td.ColumnValue {
width: 15%;
}
#attributes table.infolist td.ColumnSources {
width: 5%;
padding-left: 5px;
}
#WebLinks table.weblinks tbody tr td:first-child {
vertical-align:middle;
}
#WebLinks table.weblinks td.ColumnType,
#WebLinks table.weblinks td.ColumnDescription {
}
#events table.eventlist td.ColumnDate {
width: 15%;
padding-left: 10px;
}
#families table.eventlist th.ColumnDate {
width: 15%;
padding-left: 10px;
}
#families table.eventlist td.ColumnEvent,
#families table.eventlist td.ColumnDate,
#families table.eventlist td.ColumnPlace,
#families table.eventlist td.ColumnDescription,
#families table.eventlist td.ColumnSources {
padding-top:.4em;
padding-bottom:.8em;
}
#families table.eventlist td.ColumnDate {
width: 15%;
padding-left: 20px;
}
#families table.eventlist td.ColumnNotes {
font:normal 1.1em/1.4em sans-serif;
}
#families table.eventlist tbody tr td:first-child,
#families table.eventlist thead tr th:first-child {
width: 10%;
padding-left: 0px;
}
/* Subsections : Attributes
----------------------------------------------------- */
@@ -1009,10 +1109,15 @@ div#parents table.infolist tbody tr td.ColumnValue ol li {
/* Subsections : Families
----------------------------------------------------- */
#families table.infolist td.ColumnValue.Child table.infolist tr:hover,
table.relationships tr:hover {
background-color:#C1B398;
}
div#families table.infolist {
margin-top:.5em;
}
div#families table.infolist tbody tr td.ColumnValue p {
margin-left:0;
margin-top:0;
}
div#families table.infolist tbody tr td.ColumnValue ol {
@@ -1060,9 +1165,6 @@ div#Addresses table.infolist tr td a, div#Addresses table.infolist tr td p a {
#gallery {
background-color: green;
}
#indivgallery {
background-color: white;
}
#gallery .gallerycell {
float: left;
width: 130px;
@@ -1085,11 +1187,10 @@ 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;
background-color: #F6F2EE;
}
#gallery div.indexno {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
@@ -1152,16 +1253,26 @@ div.snapshot div.thumbnail {
div.narrative {
padding-bottom:0;
}
i.NoteType {
font-weight: bold;
font-size: .8em;
}
i + div.grampsstylednote p {
margin: 0.1em 0 0.2em 0;
}
div.grampsstylednote p {
padding-bottom: 0.6em;
}
.narrative p {
margin: 0.1em 0 0.2em 0;
font:normal .9em/1.4em sans-serif;
}
/* Subsections : References
/* Subsection : References
----------------------------------------------------- */
#references ol {
margin-left: 3em;
}
/* Subsections : Source References
----------------------------------------------------- */
@@ -1303,6 +1414,12 @@ div#pedigree {
padding: 0;
}
/* Updates
----------------------------------------------------- */
#Updates table.list td.date {
width: 20%;
}
/* Calendar Styles
-------------------------------------------------------------------------------------------- */
/* Calendar : General */
@@ -1337,18 +1454,15 @@ body#WebCal {
color:#542;
padding:.3em 0 .2em 0;
background-color:#FFF;
vertical-align: top;
height: 2em;
}
#CreatorInfo {
float:right;
color:#FFF;
margin:-24px 10px 0 0;
}
.calendar thead tr th.weekend,
.calendar thead tr th.weekend,
.calendar thead tr th.weekday {
color:#542;
background-color:#A97;
}
.calendar thead tr th.saturday,
.calendar thead tr th.saturday,
.calendar thead tr th.sunday { }
.calendar tfoot tr td {
padding:.7em 5% 1em 5%;
@@ -1362,14 +1476,12 @@ body#WebCal {
/* Calendar : Date Numeral */
.calendar tbody tr td div.date {
float:right;
float:none;
display:block;
width:1.8em;
font-size:1.2em;
line-height:100%;
text-align:center;
color:#542;
margin:0 0 0 .5em;
padding:.2em 0;
background-color:#F6F2EE;
}
@@ -1432,26 +1544,25 @@ body#WebCal {
.calendar tbody tr td.highlight div.date {
color:#0A65B5;
background-color:#C2E1FE;
border: 5px solid rgba(255,255,255,.0);
}
/* Calendar : Previous-Next Month */
.calendar tbody tr td.previous,
.calendar tbody tr td.next,
.calendar tbody tr td.previous div.date,
.calendar tbody tr td.previous,
.calendar tbody tr td.next,
.calendar tbody tr td.previous div.date,
.calendar tbody tr td.next div.date {
color:#A97;
background-color:#F6F2EE;
border: 5px solid rgba(255,255,255,.0);
}
/* Calendar : Full Year */
body#fullyearlinked div.content {
width:963px;
margin:0 auto;
padding:15px 0 2px 2px;
padding:5px 0 2px 2px;
}
body#fullyearlinked table.calendar {
float:left;
width:320px;
height:18em;
border:solid 1px #7D5925;
}
@@ -1465,3 +1576,59 @@ body#fullyearlinked table.calendar thead tr th.monthName {
body#fullyearlinked table.calendar tbody tr td {
height:3em;
}
body#OneDay h3 {
font-size: xx-large;
vertical-align: top;
height: 2em;
}
#WebCal table.calendar tfoot {
display: none;
}
#WebCal table.calendar tr td {
word-wrap: break-word;
border-bottom:solid 1px #7D5925;
border-right:solid 1px #7D5925;
padding-left: 0px;
}
#WebCal .calendar tr td .empty {
border: 5px solid rgba(255,255,255,.0);
}
#WebCal .calendar tr td .clickable {
border: 5px solid rgba(255,255,255,.0);
}
#WebCal .calendar tr td .clickable:hover {
display: block;
overflow:auto;
word-wrap: break-word;
cursor: text;
border-radius: 10px 0px 10px 10px;
border: 5px solid #453619;
padding: 0px;
}
body#fullyearlinked #YearGlance tbody td {
height:48px;
vertical-align: middle;
text-align: center;
}
body#fullyearlinked #YearGlance tbody td.previous {
border-width:0px 1px 1px 0px;
border-color:#C1B398;
}
body#fullyearlinked #YearGlance tbody td.next {
border-width:1px 0px 0px 1px;
border-color:#C1B398;
}
body#fullyearlinked #YearGlance tbody td .date {
font-size: 30px;
vertical-align: middle;
text-align: center;
border-radius: 45px;
margin-left: 5px;
margin-right: 5px;
float: none;
border: 5px solid rgba(0,0,0,.0);
}
body#fullyearlinked #YearGlance tbody td:hover .date {
border-radius: 45px;
border: 5px solid;
}
+20 -24
View File
@@ -1,22 +1,22 @@
/*
**************************************************************************************************
*******************************************************************************
Copyright Holder and License
**************************************************************************************************
*******************************************************************************
GRAMPS Cascading Style Sheet
Style Name: Print Style Sheet
Style Author: Jason M. Simanek (2008)
Modified by Rob G. Healey, July 2008
**************************************************************************************************
*******************************************************************************
This website was created with GRAMPS <http://www.gramps-project.org/>
--------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------
GRAMPS is a Free Software Project for Genealogy, offering a professional
genealogy program, and a wiki open to all. It is a community project, created,
developed and governed by genealogists.
'Go to <http://gramps-project.org/> to learn more!
--------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------
Copyright (C) 2008-2011 Rob G. Healey <robhealey1@gmail.com>
This file is part of the GRAMPS program.
@@ -31,21 +31,21 @@ 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
GRAMPS. If not, see <http://www.gnu.org/licenses/>.
--------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------
Color Palette
--------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------
gray #A7A7A7
red #520
black #000
white #FFF
---------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------
NarrativeWeb Styles
--------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------
General Elements
General Elements
----------------------------------------------------- */
body {
@@ -419,7 +419,7 @@ body#ThumbnailPreview div#references table.infolist tbody tr td.ColumnName {
width: 90%;
}
/* Contact
/* Contact
----------------------------------------------------- */
#researcher {
margin:16pt 0 0 0;
@@ -456,13 +456,13 @@ body#ThumbnailPreview div#references table.infolist tbody tr td.ColumnName {
clear:left;
}
/* Subsections
/* Subsections
----------------------------------------------------- */
#Home, #Introduction, #Download, #Contact {
padding:3em 20px;
}
/* Subsections : Events
/* Subsections : Events
----------------------------------------------------- */
#IndividualDetail .ColumnValue {
padding:4pt 0;
@@ -472,7 +472,7 @@ body#ThumbnailPreview div#references table.infolist tbody tr td.ColumnName {
margin:1pt 0 0 18pt;
}
/* Subsections : Gallery
/* Subsections : Gallery
----------------------------------------------------- */
#indivgallery h4 {
margin-bottom:1em;
@@ -532,7 +532,7 @@ table.attrlist tbody tr td.ColumnSources {
width: 10%;
}
/* Subsections : Pedigree
/* Subsections : Pedigree
----------------------------------------------------- */
#pedigree a {
text-decoration:none;
@@ -574,7 +574,7 @@ table.attrlist tbody tr td.ColumnSources {
font-weight:bold;
}
/* Subsections : Ancestors Tree
/* Subsections : Ancestors Tree
----------------------------------------------------- */
#tree {
page-break-before:always;
@@ -674,7 +674,7 @@ p#createdate {
display: none;
}
/* Calendar Styles
/* Calendar Styles
-------------------------------------------------------------------------------------------- */
/* Calendar : General */
body#WebCal h1#SiteTitle {
@@ -719,10 +719,6 @@ body#WebCal h1#SiteTitle {
padding:5pt;
border-width:0;
}
#CreatorInfo {
float:right;
margin:0 10px 0 0;
}
body#WebCal a {
text-decoration:none;
color:#000;
@@ -795,9 +791,9 @@ body#WebCal a {
}
/* Calendar : Previous-Next Month */
.calendar tbody tr td.previous,
.calendar tbody tr td.next,
.calendar tbody tr td.previous div.date,
.calendar tbody tr td.previous,
.calendar tbody tr td.next,
.calendar tbody tr td.previous div.date,
.calendar tbody tr td.next div.date {
font-weight:normal;
font-size:12pt;
+6 -5
View File
@@ -10,7 +10,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,17 +20,18 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
**************************************************************************************************
*******************************************************************************
GRAMPS Cascading Style Sheet
Style Name: Web_Navigation-Vertical.css Stylesheet
***************************************************************************************************
*******************************************************************************
# $Id: Web_Navigation-Vertical.css 15241 2010-04-19 11:07:00Z robhealey1 $
Body Element
----------------------------------------------------- */
body { background: -webkit-gradient
(linear, left top, left bottom, from(#ccc), to(#fff));
body {
background: -webkit-gradient (linear, left top, left bottom,
from(#ccc), to(#fff));
color: #000;
padding: 60px 0px 0px 146px;
}
+39 -35
View File
@@ -10,7 +10,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,15 +20,15 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
**************************************************************************************************
*******************************************************************************
GRAMPS Cascading Style Sheet
Style Name: Visually Impaired Stylesheet
Style Author: Jason M. Simanek (2008)
***************************************************************************************************
*******************************************************************************
--------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------
Color Palette
--------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------
brown dark #453619, #542
brown light #C1B398
gray #696969
@@ -47,7 +47,7 @@ Females Web_Gender_Female.png
NarrativeWeb Styles
-------------------------------------------------------------------------------------------- */
---------------------------------------------------------------------------- */
div#alphabet ul li {
background-color: #6AF364;
}
@@ -96,8 +96,6 @@ img {
background:none;
}
.content {
overflow: auto;
width:965px;
margin:0 auto;
padding-bottom: .2em;
}
@@ -349,7 +347,7 @@ table.infolist tbody tr td.ColumnPartner a {
table.infolist tbody tr td.ColumnParents {
font-size:.9em;
}
table.infolist tbody tr td.ColumnParents span.father,
table.infolist tbody tr td.ColumnParents span.father,
table.infolist tbody tr td.ColumnParents span.mother {
display:block;
}
@@ -366,7 +364,7 @@ table.infolist tbody tr td.ColumnParents span.mother:before {
#SurnameDetail p#description {
padding-top:0;
}
table.surnamelist thead tr th.ColumnSurname,
table.surnamelist thead tr th.ColumnSurname,
#Surnames table.surnamelist tbody tr td.ColumnSurname {
width:50%;
}
@@ -391,11 +389,11 @@ table.surnamelist tbody tr td.ColumnLetter a {
table.surnamelist tbody tr td.ColumnSurname {
background-color: #FFF;
}
table#SortByName thead tr th.ColumnSurname,
table#SortByName thead tr th.ColumnSurname,
table#SortByCount thead tr th.ColumnQuantity {
background-color: #C1B398;
}
table#SortByName thead tr th.ColumnSurname a:after,
table#SortByName thead tr th.ColumnSurname a:after,
table#SortByCount thead tr th.ColumnQuantity a:after {
content:" ↓";
}
@@ -443,7 +441,7 @@ table.surname tbody tr td.ColumnPartner a {
display:block;
padding:.6em 10px .6em 0px;
}
table.surname thead tr th.ColumnParents,
table.surname thead tr th.ColumnParents,
table.surname tbody tr td.ColumnParents {
width:25%;
}
@@ -465,7 +463,7 @@ div#Individuals table.IndividualList tbody tr td a {
display: block;
padding: .6em 10px;
}
div#Individuals table.IndividualList tbody tr td.ColumnSurname a:hover,
div#Individuals table.IndividualList tbody tr td.ColumnSurname a:hover,
div#Individuals table.IndividualList tbody tr td.ColumnSurname a:active {
cursor:default;
color: #000;
@@ -666,7 +664,7 @@ div#EventList table.alphaevent tbody tr td.ColumnDate {
div#EventList table.alphaevent tbody tr td.ColumnPerson {
width: 60%;
}
div#EventList table.alphaevent tbody tr td.ColumnPerson span.father,
div#EventList table.alphaevent tbody tr td.ColumnPerson span.father,
div#EventList table.alphaevent tbody tr td.ColumnPerson span.mother {
display:block;
}
@@ -696,7 +694,7 @@ div#EventDetail table.eventlist tbody tr td.ColumnDate {
div#EventDetail table.eventlist tbody tr td.ColumnPerson {
background-color: #D8F3D6;
}
/* Events
----------------------------------------------------- */
#EventList table.infolist tr.BeginType td {
@@ -709,7 +707,7 @@ div#EventDetail table.eventlist tbody tr td.ColumnPerson {
#EventDetail table.infolist tr td a {
display: inline;
}
#EventList table.infolist tr td span.father,
#EventList table.infolist tr td span.father,
#EventList table.infolist tr td span.mother,
#EventDetail table.infolist tr td span.father,
#EventDetail table.infolist tr td span.mother {
@@ -731,6 +729,20 @@ div#EventDetail table.eventlist tbody tr td.ColumnPerson {
#EventDetail table.infolist tr td span.mother:last-child:after {
content: "";
}
#IndividualDetail div table.eventlist td.ColumnSources {
width: 5%;
}
#IndividualDetail div table.eventlist td.ColumnDate {
width: 15%;
}
#IndividualDetail div table.eventlist td.ColumnEvent {
width: 8%;
}
#IndividualDetail div table.eventlist td.ColumnEvent,
#IndividualDetail div table.eventlist td.ColumnDate,
#IndividualDetail div table.eventlist td.ColumnPlace {
font-weight: bold;
}
/* Gallery
----------------------------------------------------- */
@@ -899,7 +911,7 @@ body#ThumbnailPreview div#references table.infolist tbody tr td.ColumnName {
text-decoration:none;
}
/* Download
/* Download
----------------------------------------------------- */
div#Download {
margin: 0;
@@ -912,7 +924,7 @@ div#Download table.download {
div#Download table.download tbody tr#Row02 {
border-bottom: solid 1px #000;
}
div#Download table.download tbody tr td {
div#Download table.download tbody tr td {
border: solid 1px #000;
text-align: left;
padding: 5px 0px 5px 0px;
@@ -1197,6 +1209,7 @@ div#families table.infolist tbody tr td.ColumnValue {
}
div#families table.infolist tbody tr td.ColumnValue p {
margin-top:0;
margin-left:0;
}
div#families table.infolist tbody tr td.ColumnValue ol {
margin:0;
@@ -1486,19 +1499,10 @@ body#WebCal {
color: #542;
padding:.3em 0 .2em 0;
background-color: #FFF;
vertical-align: top;
height: 2em;
}
#CreatorInfo {
float:right;
color: #FFF;
margin:-24px 10px 0 0;
}
#CreatorInfo a {
color: #FFF;
}
#CreatorInfo a:hover {
color: #FFF;
}
.calendar thead tr th.weekend,
.calendar thead tr th.weekend,
.calendar thead tr th.weekday {
font-style:italic;
color: #000;
@@ -1590,9 +1594,9 @@ body#WebCal {
}
/* Calendar : Previous-Next Month */
.calendar tbody tr td.previous,
.calendar tbody tr td.next,
.calendar tbody tr td.previous div.date,
.calendar tbody tr td.previous,
.calendar tbody tr td.next,
.calendar tbody tr td.previous div.date,
.calendar tbody tr td.next div.date {
color: #333;
background-color: #D8F3D6;
@@ -1658,7 +1662,7 @@ table.oneday tbody tr td.ColumnText {
width: 85%;
}
table.oneday tbody tr td.ColumnEvent {
width; 10%;
width: 10%;
}
/* PlaceMaps
+67 -41
View File
@@ -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,15 +33,14 @@ 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;
padding:0;
background:none;
overflow-x:auto;
}
#treeContainer {
position:relative;
@@ -52,8 +51,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 +60,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 +106,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;
}
+103 -2
View File
@@ -31,7 +31,7 @@ body#FamilyMap {
margin-left: 10px;
margin-right: 10px;
border: solid 4px #000;
margin: 0px auto;
margin: 20px auto;
width: 800px;
height: 400px;
max-width: 90%;
@@ -64,5 +64,106 @@ div#FamilyMapDetail div#references table.infolist {
width: 100%;
}
div#FamilyMapDetail div#references table.infolist tbody tr td.ColumnPlace {
width: 40%;
width: 70%;
}
/* Subsection: popup
------------------------------------------------------ */
#map_canvas .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: 5px;
border-radius: 8px;
border: 2px solid #111111;
bottom: 8px;
left: -10px;
min-width: 500px;
}
#map_canvas .ol-popup:after, #map_canvas .ol-popup:before {
top: 100%;
border: solid transparent;
height: 0;
width: 0;
position: absolute;
pointer-events: none;
}
#map_canvas .ol-popup:after {
border-top-color: white;
border-width: 10px;
left: 48px;
margin-left: -10px;
}
#map_canvas .ol-popup:before {
border-top-color: #cccccc;
border-width: 11px;
left: 48px;
margin-left: -11px;
}
#map_canvas .ol-popup-closer {
text-decoration: none;
position: absolute;
top: 2px;
right: 8px;
}
#map_canvas .ol-popup-title {
background-color: #ededed;
padding: 0 0.5em;
}
#map_canvas .ol-popup-content {
color: #111;
font: bold 0.9em sans-serif;
max-height: 200px;
overflow-y: auto;
padding: 0 0.5em 15px 0.5em;
}
#map_canvas .ol-popup-content a {
color: #111;
}
#map_canvas .ol-popup-content a:visited {
color: green;
}
#map_canvas .ol-popup-content a:hover {
color: red;
}
#map_canvas .ol-popup-closer:after {
content: "✖";
}
#map_canvas .ol-control {
position: absolute;
background-color: rgba(255,255,255,0.1);
bottom: .1em;
left: .1em;
height: 4%;
width: 100%;
margin-top: 1px;
margin-bottom: 1px;
padding-left: 1px;
}
#map_canvas .ol-rotate {
display: none;
}
#map_canvas .ol-zoom, #map_canvas .ol-zoom-in, #map_canvas .ol-zoom-out {
top: .5em;
left: .5em;
border-left-width: 1px;
padding-left: 1px;
padding-right: 1px;
}
#map_canvas .ol-attribution ul {
list-style-type: none;
font-size:0.8em;
float: left;
margin-top: 1px;
margin-bottom: 1px;
padding-left: 5px;
}
#map_canvas .ol-attribution li {
float: left;
padding-left: 5px;
}
#map_canvas .ol-attribution button {
display: none;
}
-7
View File
@@ -1,7 +0,0 @@
gramps
command=gramps
name=GRAMPS
can_open_multiple_files=false
expects_uris=false
requires_terminal=false
mime_types=application/x-gramps,application/x-gedcom,application/x-gramps-package,application/x-gramps-xml,application/x-geneweb
+5 -5
View File
@@ -1,13 +1,13 @@
[Desktop Entry]
_Name=Gramps
_GenericName=Genealogy System
_X-GNOME-FullName=Gramps Genealogy System
_Comment=Manage genealogical information, perform genealogical research and analysis
Name=Gramps
GenericName=Genealogy System
X-GNOME-FullName=Gramps Genealogy System
Comment=Manage genealogical information, perform genealogical research and analysis
Icon=gramps
Terminal=false
Type=Application
StartupNotify=true
Categories=GTK;Office;
_Keywords=Genealogy;Family History;Research;Family Tree;GEDCOM;
Keywords=Genealogy;Family History;Research;Family Tree;GEDCOM;
MimeType=application/x-gramps;application/x-gedcom;application/x-gramps-package;application/x-gramps-xml;
Exec=gramps %F
-54
View File
@@ -1,54 +0,0 @@
application/x-gramps:
_description=Gramps database
default_action_type=application
short_list_application_ids=gramps
short_list_application_ids_for_novice_user_level=gramps
short_list_application_ids_for_intermediate_user_level=gramps
short_list_application_ids_for_advanced_user_level=gramps
category=Documents/Genealogy
icon-filename=/usr/share/gramps/gramps.png
open=gramps %f
application/x-gramps-package:
_description=Gramps package
default_action_type=application
short_list_application_ids=gramps
short_list_application_ids_for_novice_user_level=gramps
short_list_application_ids_for_intermediate_user_level=gramps
short_list_application_ids_for_advanced_user_level=gramps
category=Documents/Genealogy
icon-filename=/usr/share/gramps/gramps.png
open=gramps %f
application/x-gramps-xml:
_description=Gramps XML database
default_action_type=application
short_list_application_ids=gramps
short_list_application_ids_for_novice_user_level=gramps
short_list_application_ids_for_intermediate_user_level=gramps
short_list_application_ids_for_advanced_user_level=gramps
category=Documents/Genealogy
icon-filename=/usr/share/gramps/gramps.png
open=gramps %f
application/x-gedcom:
_description=GEDCOM
default_action_type=application
short_list_application_ids=gramps
short_list_application_ids_for_novice_user_level=gramps
short_list_application_ids_for_intermediate_user_level=gramps
short_list_application_ids_for_advanced_user_level=gramps
category=Documents/Genealogy
icon-filename=/usr/share/gramps/gramps.png
open=gramps %f
application/x-geneweb:
_description=GeneWeb
default_action_type=application
short_list_application_ids=gramps
short_list_application_ids_for_novice_user_level=gramps
short_list_application_ids_for_intermediate_user_level=gramps
short_list_application_ids_for_advanced_user_level=gramps
category=Documents/Genealogy
icon-filename=/usr/share/gramps/gramps.png
open=gramps %f
-14
View File
@@ -1,14 +0,0 @@
application/x-gramps
ext: grdb
application/x-gramps-xml
ext: gramps
application/x-gramps-package
ext: gpkg
application/x-gedcom
ext: ged gedcom GED GEDCOM
application/x-geneweb
ext: gw GW
+144 -131
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<calendar>
<country _name="Bulgaria">
<country name="Bulgaria">
<date name="Нова Година" value="*/1/1" type="national" />
<date name="Освобождение на България от Османско иго" value="*/3/3" type="national" />
<date name="Ден на труда" value="*/5/1" type="national" />
@@ -49,7 +49,7 @@
<date name="Възнесение господне" value="2011/6/2" type="religious" />
<date name="Възнесение господне" value="2012/5/24" type="religious" />
</country>
<country _name="Canada">
<country name="Canada">
<date name="New Year's Day" value="*/1/1" type="national" />
<date name="Groundhog Day" value="*/2/2" type="secular" />
<date name="Valentine's Day" value="*/2/14" type="secular" />
@@ -81,22 +81,7 @@
<date name="Christmas" value="*/12/25" type="national" />
<date name="Boxing Day" value="*/12/26" type="national" />
</country>
<country _name="Czech Republic">
<date name="Nový rok" value="*/1/1" type="national" />
<date name="Den obnovy samostatného českého státu" value="*/1/1" type="national" />
<date name="Velikonoce" type="religious" value="> easter(y)" />
<date name="Svátek práce" value="*/5/1" type="national" />
<date name="Den osvobození od fašismu" value="*/5/8" type="national" />
<date name="Den slovanských věrozvěstů Cyrila a Metoděje" value="*/7/5" type="national" />
<date name="Den upálení mistra Jana Husa" value="*/7/6" type="national" />
<date name="Den české státnosti" value="*/9/28" type="national" />
<date name="Den vzniku samostatného československého státu" value="*/10/28" type="national" />
<date name="Den boje za svobodu a demokracii" value="*/11/17" type="national" />
<date name="Štědrý den" value="*/12/24" type="religious" />
<date name="1. svátek vánoční" value="*/12/25" type="national" />
<date name="2. svátek vánoční" value="*/12/26" type="national" />
</country>
<country _name="Chile">
<country name="Chile">
<date name="Año nuevo" value="*/1/1" type="national" />
<date name="Viernes Santo" value="2007/4/6" type="religious" />
<date name="Viernes Santo" value="2008/3/21" type="religious" />
@@ -119,10 +104,10 @@
<date name="Inmaculada Concepción" value="*/12/8" type="religious" />
<date name="Navidad" value="*/12/25" type="national" />
</country>
<country _name="China">
<country name="China">
<date name="Chinese New Year" value="2006/1/29" type="national" />
</country>
<country _name="Croatia">
<country name="Croatia">
<date name="Nova godina" value="*/1/1" type="national" />
<date name="Sveta tri kralja" value="*/1/6" type="national" />
<date name="Uskrs" value="> easter(y)" type="national" />
@@ -138,7 +123,22 @@
<date name="Božić" value="*/12/25" type="national" />
<date name="Sveti Stjepan" value="*/12/26" type="national" />
</country>
<country _name="England">
<country name="Czech Republic">
<date name="Nový rok" value="*/1/1" type="national" />
<date name="Den obnovy samostatného českého státu" value="*/1/1" type="national" />
<date name="Velikonoce" type="religious" value="> easter(y)" />
<date name="Svátek práce" value="*/5/1" type="national" />
<date name="Den osvobození od fašismu" value="*/5/8" type="national" />
<date name="Den slovanských věrozvěstů Cyrila a Metoděje" value="*/7/5" type="national" />
<date name="Den upálení mistra Jana Husa" value="*/7/6" type="national" />
<date name="Den české státnosti" value="*/9/28" type="national" />
<date name="Den vzniku samostatného československého státu" value="*/10/28" type="national" />
<date name="Den boje za svobodu a demokracii" value="*/11/17" type="national" />
<date name="Štědrý den" value="*/12/24" type="religious" />
<date name="1. svátek vánoční" value="*/12/25" type="national" />
<date name="2. svátek vánoční" value="*/12/26" type="national" />
</country>
<country name="England">
<date name="New Year's Day" value="*/1/1" type="national" />
<date name="Bank Holiday" value="*/1/1" offset="+1" if="dow(y, m, d) == 7" type="national" />
<date name="Bank Holiday" value="*/1/1" offset="+2" if="dow(y, m, d) == 6" type="national" />
@@ -168,7 +168,7 @@
<date name="Armistice Day" value="*/11/11" type="secular" />
<date name="Remembrance Sunday" value="*/2/sun/nov" type="secular" />
</country>
<country _name="Finland">
<country name="Finland">
<date name="Loppiainen" value="*/1/6" type="religious" if="not(y>=1973)" />
<date name="Loppiainen" value="*/1/6" offset="sat" type="religious" if="(y>=1973) and not(y>=1992)" />
<date name="Loppiainen" value="*/1/6" type="religious" if="(y>=1992)" />
@@ -262,7 +262,7 @@
<date name="Jean Sibeliuksen päivä" value="*/12/8" type="national" if="(y>=2011)" />
<date name="Uudenvuodenaatto" value="*/12/31" type="national" if="(y>=1846)" />
</country>
<country _name="France">
<country name="France">
<date name="Jour de l'an" value="*/1/1" type="national" />
<date name="Fête du travail" value="*/5/1" type="national" />
<date name="Victoire 1945" value="*/5/8" type="national" />
@@ -298,7 +298,7 @@
<date name="début Ramadan" value="2016/06/08" type="religious" />
<date name="Saint Étienne (Alsace/Moselle)" value="*/12/26" type="religious" />
</country>
<country _name="Germany">
<country name="Germany">
<date name="Neujahr" type="national" value="*/1/1" />
<date name="Hl. Drei Könige BW,BY,ST" type="religious" value="*/1/6" />
<date name="Karfreitag" type="religious" value="> easter(y)" offset="-2" />
@@ -315,7 +315,7 @@
<date name="1. Weihnachtsfeiertag" type="religious" value="*/12/25" />
<date name="2. Weihnachtsfeiertag" type="religious" value="*/12/26" />
</country>
<country _name="Japan">
<country name="Japan">
<date name="元日" value="*/1/1" />
<date name="成人の日" value="*/2/mon/jan" />
<date name="建国記念の日" value="*/2/11" />
@@ -338,7 +338,96 @@
<date name="天皇(明仁)即位記念" value="1990/11/12" />
<date name="皇太子徳仁親王の結婚" value="1993/6/9" />
</country>
<country _name="Slovakia">
<country name="Jewish Holidays">
<date name="Purim" value="> passover(y)" offset="-30"/>
<date name="Passover" value="> passover(y)" offset="0"/>
<date name="2 of Passover" value="> passover(y)" offset="1"/>
<date name="3 of Passover" value="> passover(y)" offset="2"/>
<date name="4 of Passover" value="> passover(y)" offset="3"/>
<date name="5 of Passover" value="> passover(y)" offset="4"/>
<date name="6 of Passover" value="> passover(y)" offset="5"/>
<date name="7 of Passover" value="> passover(y)" offset="6"/>
<date name="Shavuot" value="> passover(y)" offset="50"/>
<date name="Rosh Ha'Shana" value="> passover(y)" offset="163"/>
<date name="Rosh Ha'Shana 2" value="> passover(y)" offset="164"/>
<date name="Yom Kippur" value="> passover(y)" offset="172"/>
<date name="Sukot" value="> passover(y)" offset="177"/>
<date name="2 of Sukot" value="> passover(y)" offset="178"/>
<date name="3 of Sukot" value="> passover(y)" offset="179"/>
<date name="4 of Sukot" value="> passover(y)" offset="180"/>
<date name="5 of Sukot" value="> passover(y)" offset="181"/>
<date name="6 of Sukot" value="> passover(y)" offset="182"/>
<date name="7 of Sukot" value="> passover(y)" offset="183"/>
<date name="Simhat Tora" value="> passover(y)" offset="184"/>
<date name="Hanuka" value="> hanuka(y)" offset="0"/>
<date name="2 of Hanuka" value="> hanuka(y)" offset="1"/>
<date name="3 of Hanuka" value="> hanuka(y)" offset="2"/>
<date name="4 of Hanuka" value="> hanuka(y)" offset="3"/>
<date name="5 of Hanuka" value="> hanuka(y)" offset="4"/>
<date name="6 of Hanuka" value="> hanuka(y)" offset="5"/>
<date name="7 of Hanuka" value="> hanuka(y)" offset="6"/>
<date name="8 of Hanuka" value="> hanuka(y)" offset="7"/>
</country>
<country name="New Zealand">
<date value="*/1/1" type="national" name="New Year's Day"/>
<date value="*/1/2" type="national" name="Day After New Year's Day"/>
<date value="*/1/1" type="national" offset="+1" name="New Years Day Holiday" if="dow(y, m, d) == 7"/>
<date value="*/1/1" type="national" offset="+2" name="Day After New Years Day Holiday" if="dow(y, m, d) == 6"/>
<date value="*/feb/6" type="national" name="Waitangi Day"/>
<date value="> easter(y)" type="national" offset="-2" name="Good Friday"/>
<date value="> easter(y)" type="national" offset="+1" name="Easter Monday"/>
<date value="*/apr/25" type="national" name="ANZAC Day"/>
<date value="*/-1/mon/jun" type="national" name="Queen's Birthday Holiday"/>
<date value="*/-4/mon/oct" type="national" name="Labour Day"/>
<date value="*/dec/25" type="national" name="Christmas Day"/>
<date value="*/dec/26" type="national" name="Boxing Day"/>
<date value="*/dec/25" type="national" offset="+2" name="Christmas Day Holiday" if="dow(y, m, d) > 5"/>
<date value="*/dec/26" type="national" offset="+2" name="Boxing Day Holiday" if="dow(y, m, d) > 5"/>
</country>
<country name="Russia">
<date value="*/1/7" type="religious" name="Рождество Христово" />
<date value="*/1/19" type="religious" name="Крещение Господне" />
<date value="*/2/23" type="national" name="День защитника" />
<date value="*/3/8" type="national" name="Международный женский день" />
<date value="*/5/1" type="national" name="День труда" />
<date value="*/5/9" type="national" name="День Победы" />
<date value="*/6/1" type="national" name="День защиты детей" />
<date value="*/6/12" type="national" name="День России" />
<date value="*/9/1" type="national" name="День знаний" />
<date value="*/11/4" type="national" name="День народного единства" />
<date value="*/12/31" offset="+2" type="national" name="Новый год" />
</country>
<country name="Serbia">
<date value="*/1/1" type="national" name="Нова Година" />
<date value="*/1/7" type="religious" name="Божић" />
<date value="*/2/15" type="national" name="Дан државности Србије" />
<date value="> julian_easter(y)" type="religious" offset="-2" name="Велики петак" />
<date value="> julian_easter(y)" type="religious" name="Васкрс" />
<date value="> julian_easter(y)" type="religious" offset="1" name="Васкрсни понедељак" />
<date value="*/5/1" type="national" name="Празник рада" />
<date value="*/11/11" type="national" name="Дан примирја" />
<date value="*/1/27" type="religious" name="Свети Сава" />
<date value="*/4/22" type="national" name="Дан сећања на жртве холокауста" />
<date value="*/5/9" type="national" name="Дан победе" />
<date value="*/6/28" type="religious" name="Видовдан" />
<date value="*/10/21" type="national" name="Дан сећања на српске жртве у Другом светском рату" />
</country>
<country name="Serbia (Latin)">
<date value="*/1/1" type="national" name="Nova godina" />
<date value="*/1/7" type="religious" name="Božić" />
<date value="*/2/15" type="national" name="Dan državnosti Srbije" />
<date value="> julian_easter(y)" type="religious" offset="-2" name="Veliki petak" />
<date value="> julian_easter(y)" type="religious" name="Vaskrs" />
<date value="> julian_easter(y)" type="religious" offset="1" name="Vaskrsni ponedeljak" />
<date value="*/5/1" type="national" name="Praznik rada" />
<date value="*/11/11" type="national" name="Dan primirja" />
<date value="*/1/27" type="religious" name="Sveti Sava" />
<date value="*/4/22" type="national" name="Dan sećanja na žrtve holokausta" />
<date value="*/5/9" type="national" name="Dan pobede" />
<date value="*/6/28" type="religious" name="Vidovdan" />
<date value="*/10/21" type="national" name="Dan sećanja na srpske žrtve u Drugom svetskom ratu" />
</country>
<country name="Slovakia">
<date name="Deň vzniku Slovenskej republiky" value="*/1/1" type="national" />
<date name="Zjavenie Pána (Traja králi)" value="*/1/6" type="religious" />
<date name="Veľký piatok" value="> easter(y)" offset="-2" type="religious" />
@@ -355,7 +444,7 @@
<date name="Prvý sviatok vianočný" value="*/12/25" type="national" />
<date name="Druhý sviatok vianočný" value="*/12/26" type="national" />
</country>
<country _name="Sweden">
<country name="Sweden">
<date name="Nyårsafton" value="*/12/31" type="national" />
<date name="Trettondedag jul" value="*/1/6" type="religious" />
<date name="Alla helgons dag" value="*/oct/31" offset="sat" type="religious" if="(y>=1953)" />
@@ -382,7 +471,34 @@
<date name="Midsommardagen" value="*/jun/24" type="religious" if="not(y>=1953)" />
<date name="Fars dag" value="*/2/sun/nov" type="national" />
</country>
<country _name="United States of America">
<country name="Ukraine">
<date value="*/1/1" type="national" name="Новий Рік"/>
<date value="*/1/6" type="religious" name="Святий Вечір"/>
<date value="*/1/7" type="religious" name="Різдво"/>
<date value="*/1/13" type="religious" name="Маланка"/>
<date value="*/1/14" type="religious" name="Старий Новий рік, Щедрий вечір"/>
<date value="*/1/19" type="religious" name="Водохреща"/>
<date value="*/1/22" type="national" name="День Соборності України"/>
<date value="*/2/14" type="secular" name="День закоханих"/>
<date value="*/2/15" type="religious" name="Стрітення"/>
<date value="*/3/8" type="secular" name="Міжнародний жіночий день"/>
<date value="*/3/20" type="secular" name="Весняне Рівнодення"/>
<date value="*/4/1" type="secular" name="День сміху"/>
<date value="*/4/7" type="religious" name="Благовіщення"/>
<date value="> julian_easter(y)" type="religious" name="Великдень"/>
<date value="*/5/1" type="national" name="День Праці"/>
<date value="*/6/21" type="secular" name="Весняне Сонцестояння"/>
<date value="*/6/28" type="national" name="День Конституції України"/>
<date value="*/7/7" type="religious" name="Івана Купала"/>
<date value="*/8/19" type="religious" name="Спаса"/>
<date value="*/8/24" type="national" name="День Незалежності України"/>
<date value="*/9/22" type="secular" name="Осіннє Рівнодення"/>
<date value="*/10/14" type="religious" name="Покрова, День Українського козацтва"/>
<date value="*/12/13" type="religious" name="Андрія"/>
<date value="*/12/19" type="religious" name="Миколая"/>
<date value="*/12/21" type="secular" name="Осіннє Сонцестояння"/>
</country>
<country name="United States of America">
<date name="New Year's Eve" value="*/12/31" type="national" />
<date name="New Year's Day" value="*/1/1" type="national" />
<date name="ML Kings's Birthday" value="*/3/mon/jan" type="secular" />
@@ -432,107 +548,4 @@
<date name="Christmas" value="*/12/25" type="religious" />
<date name="Kwanzaa begins" value="*/12/26" type="religious" />
</country>
<country _name="Jewish Holidays">
<date _name="Purim" value="> passover(y)" offset="-30"/>
<date _name="Passover" value="> passover(y)" offset="0"/>
<date _name="2 of Passover" value="> passover(y)" offset="1"/>
<date _name="3 of Passover" value="> passover(y)" offset="2"/>
<date _name="4 of Passover" value="> passover(y)" offset="3"/>
<date _name="5 of Passover" value="> passover(y)" offset="4"/>
<date _name="6 of Passover" value="> passover(y)" offset="5"/>
<date _name="7 of Passover" value="> passover(y)" offset="6"/>
<date _name="Shavuot" value="> passover(y)" offset="50"/>
<date _name="Rosh Ha'Shana" value="> passover(y)" offset="163"/>
<date _name="Rosh Ha'Shana 2" value="> passover(y)" offset="164"/>
<date _name="Yom Kippur" value="> passover(y)" offset="172"/>
<date _name="Sukot" value="> passover(y)" offset="177"/>
<date _name="2 of Sukot" value="> passover(y)" offset="178"/>
<date _name="3 of Sukot" value="> passover(y)" offset="179"/>
<date _name="4 of Sukot" value="> passover(y)" offset="180"/>
<date _name="5 of Sukot" value="> passover(y)" offset="181"/>
<date _name="6 of Sukot" value="> passover(y)" offset="182"/>
<date _name="7 of Sukot" value="> passover(y)" offset="183"/>
<date _name="Simhat Tora" value="> passover(y)" offset="184"/>
<date _name="Hanuka" value="> hanuka(y)" offset="0"/>
<date _name="2 of Hanuka" value="> hanuka(y)" offset="1"/>
<date _name="3 of Hanuka" value="> hanuka(y)" offset="2"/>
<date _name="4 of Hanuka" value="> hanuka(y)" offset="3"/>
<date _name="5 of Hanuka" value="> hanuka(y)" offset="4"/>
<date _name="6 of Hanuka" value="> hanuka(y)" offset="5"/>
<date _name="7 of Hanuka" value="> hanuka(y)" offset="6"/>
<date _name="8 of Hanuka" value="> hanuka(y)" offset="7"/>
</country>
<country _name="New Zealand">
<date value="*/1/1" type="national" name="New Year's Day"/>
<date value="*/1/2" type="national" name="Day After New Year's Day"/>
<date value="*/1/1" type="national" offset="+1" name="New Years Day Holiday" if="dow(y, m, d) == 7"/>
<date value="*/1/1" type="national" offset="+2" name="Day After New Years Day Holiday" if="dow(y, m, d) == 6"/>
<date value="*/feb/6" type="national" name="Waitangi Day"/>
<date value="> easter(y)" type="national" offset="-2" name="Good Friday"/>
<date value="> easter(y)" type="national" offset="+1" name="Easter Monday"/>
<date value="*/apr/25" type="national" name="ANZAC Day"/>
<date value="*/-1/mon/jun" type="national" name="Queen's Birthday Holiday"/>
<date value="*/-4/mon/oct" type="national" name="Labour Day"/>
<date value="*/dec/25" type="national" name="Christmas Day"/>
<date value="*/dec/26" type="national" name="Boxing Day"/>
<date value="*/dec/25" type="national" offset="+2" name="Christmas Day Holiday" if="dow(y, m, d) > 5"/>
<date value="*/dec/26" type="national" offset="+2" name="Boxing Day Holiday" if="dow(y, m, d) > 5"/>
</country>
<country _name="Ukraine">
<date value="*/1/1" type="national" name="Новий Рік"/>
<date value="*/1/6" type="religious" name="Святий Вечір"/>
<date value="*/1/7" type="religious" name="Різдво"/>
<date value="*/1/13" type="religious" name="Маланка"/>
<date value="*/1/14" type="religious" name="Старий Новий рік, Щедрий вечір"/>
<date value="*/1/19" type="religious" name="Водохреща"/>
<date value="*/1/22" type="national" name="День Соборності України"/>
<date value="*/2/14" type="secular" name="День закоханих"/>
<date value="*/2/15" type="religious" name="Стрітення"/>
<date value="*/3/8" type="secular" name="Міжнародний жіночий день"/>
<date value="*/3/20" type="secular" name="Весняне Рівнодення"/>
<date value="*/4/1" type="secular" name="День сміху"/>
<date value="*/4/7" type="religious" name="Благовіщення"/>
<date value="> julian_easter(y)" type="religious" name="Великдень"/>
<date value="*/5/1" type="national" name="День Праці"/>
<date value="*/6/21" type="secular" name="Весняне Сонцестояння"/>
<date value="*/6/28" type="national" name="День Конституції України"/>
<date value="*/7/7" type="religious" name="Івана Купала"/>
<date value="*/8/19" type="religious" name="Спаса"/>
<date value="*/8/24" type="national" name="День Незалежності України"/>
<date value="*/9/22" type="secular" name="Осіннє Рівнодення"/>
<date value="*/10/14" type="religious" name="Покрова, День Українського козацтва"/>
<date value="*/12/13" type="religious" name="Андрія"/>
<date value="*/12/19" type="religious" name="Миколая"/>
<date value="*/12/21" type="secular" name="Осіннє Сонцестояння"/>
</country>
<country _name="Serbia">
<date value="*/1/1" type="national" name="Нова Година" />
<date value="*/1/7" type="religious" name="Божић" />
<date value="*/2/15" type="national" name="Дан државности Србије" />
<date value="> julian_easter(y)" type="religious" offset="-2" name="Велики петак" />
<date value="> julian_easter(y)" type="religious" name="Васкрс" />
<date value="> julian_easter(y)" type="religious" offset="1" name="Васкрсни понедељак" />
<date value="*/5/1" type="national" name="Празник рада" />
<date value="*/11/11" type="national" name="Дан примирја" />
<date value="*/1/27" type="religious" name="Свети Сава" />
<date value="*/4/22" type="national" name="Дан сећања на жртве холокауста" />
<date value="*/5/9" type="national" name="Дан победе" />
<date value="*/6/28" type="religious" name="Видовдан" />
<date value="*/10/21" type="national" name="Дан сећања на српске жртве у Другом светском рату" />
</country>
<country _name="Serbia (Latin)">
<date value="*/1/1" type="national" name="Nova godina" />
<date value="*/1/7" type="religious" name="Božić" />
<date value="*/2/15" type="national" name="Dan državnosti Srbije" />
<date value="> julian_easter(y)" type="religious" offset="-2" name="Veliki petak" />
<date value="> julian_easter(y)" type="religious" name="Vaskrs" />
<date value="> julian_easter(y)" type="religious" offset="1" name="Vaskrsni ponedeljak" />
<date value="*/5/1" type="national" name="Praznik rada" />
<date value="*/11/11" type="national" name="Dan primirja" />
<date value="*/1/27" type="religious" name="Sveti Sava" />
<date value="*/4/22" type="national" name="Dan sećanja na žrtve holokausta" />
<date value="*/5/9" type="national" name="Dan pobede" />
<date value="*/6/28" type="religious" name="Vidovdan" />
<date value="*/10/21" type="national" name="Dan sećanja na srpske žrtve u Drugom svetskom ratu" />
</country>
</calendar>
+82 -14
View File
@@ -20,6 +20,9 @@
<code>SAMOA</code>
<code>AP</code>
</temple>
<temple name="Arequipa Peru Temple">
<code>AREQU</code>
</temple>
<temple name="Asuncion, Paraguay">
<code>ASUNC</code>
</temple>
@@ -27,6 +30,9 @@
<code>ATLAN</code>
<code>AT</code>
</temple>
<temple name="Barranquilla Colombia Temple">
<code>BARRA</code>
</temple>
<temple name="Baton Rouge, Louisiana">
<code>BROUG</code>
</temple>
@@ -57,6 +63,9 @@
<temple name="Bountiful, Utah">
<code>BOUNT</code>
</temple>
<temple name="Brigham City Utah Temple">
<code>BRIGH</code>
</temple>
<temple name="Brisbane, Australia">
<code>BRISB</code>
</temple>
@@ -79,8 +88,12 @@
<code>ALBR</code>
</temple>
<temple name="Cebu, Philippines">
<code>CEBUP</code>
<code>CEBU</code>
</temple>
<temple name="Cedar City Utah">
<code>CEDAR</code>
</temple>
<temple name="Chicago, Illinois">
<code>CHICA</code>
<code>CH</code>
@@ -94,15 +107,18 @@
<temple name="Colonia Juarez, Chihuahua, Mexico">
<code>COLJU</code>
</temple>
<temple name="Columbia, South Carolina">
<code>COLSC</code>
</temple>
<temple name="Columbia River, Washington">
<code>CRIVE</code>
</temple>
<temple name="Columbia, South Carolina">
<code>COLSC</code>
</temple>
<temple name="Columbus, Ohio">
<code>COLUM</code>
</temple>
<temple name="Concepción Chile">
<code>CONCE</code>
</temple>
<temple name="Copenhagen, Denmark">
<code>COPEN</code>
</temple>
@@ -129,6 +145,19 @@
<temple name="Edmonton, Alberta">
<code>EDMON</code>
</temple>
<temple name="Endowment House">
<code>EHOUS</code>
<code>EH</code>
</temple>
<temple name="Fort Collins Colorado">
<code>FORTC</code>
</temple>
<temple name="Fort Lauderdale Florida">
<code>FORTL</code>
</temple>
<temple name="Fortaleza Brazil">
<code>FORTA</code>
</temple>
<temple name="Frankfurt, Germany">
<code>FRANK</code>
<code>FR</code>
@@ -191,6 +220,9 @@
<code>IFALL</code>
<code>IF</code>
</temple>
<temple name="Indianapolis Indiana">
<code>INDIA</code>
</temple>
<temple name="Johannesburg, South Africa">
<code>JOHAN</code>
<code>JO</code>
@@ -202,10 +234,14 @@
<temple name="Kansas City, Missouri">
<code>KANSA</code>
</temple>
<temple name="Kinshasa Democratic Republic of the Congo">
<code>KINSH</code>
</temple>
<temple name="Kona, Hawaii">
<code>KONA</code>
</temple>
<temple name="Kiev, Ukraine">
<code>KYIV</code>
<code>KIEV</code>
</temple>
<temple name="Kirtland, Ohio">
@@ -223,6 +259,9 @@
<code>LIMA</code>
<code>LI</code>
</temple>
<temple name="Lisbon Portugal">
<code>LISBO</code>
</temple>
<temple name="Logan, Utah">
<code>LOGAN</code>
<code>LG</code>
@@ -270,6 +309,9 @@
<temple name="Merida, Mexico">
<code>MERID</code>
</temple>
<temple name="Meridian Idaho">
<code>MIDAH</code>
</temple>
<temple name="Mesa, Arizona">
<code>ARIZO</code>
<code>AZ</code>
@@ -325,6 +367,7 @@
<code>OKLAH</code>
</temple>
<temple name="Oquirrh Mountain, Utah">
<code>OQUIR</code>
<code>OMOUN</code>
</temple>
<temple name="Orlando, Florida">
@@ -340,6 +383,12 @@
<code>PAPEE</code>
<code>TA</code>
</temple>
<temple name="Paris France">
<code>PARIS</code>
</temple>
<temple name="Payson Utah">
<code>PAYSO</code>
</temple>
<temple name="Perth, Australia">
<code>PERTH</code>
</temple>
@@ -349,6 +398,9 @@
<temple name="Phoenix, Arizona">
<code>PHOEN</code>
</temple>
<temple name="Port-au-Prince Haiti">
<code>PORTA</code>
</temple>
<temple name="Portland, Oregon">
<code>PORTL</code>
<code>PT</code>
@@ -359,6 +411,9 @@
<temple name="Preston, England">
<code>PREST</code>
</temple>
<temple name="Provo City Center, Utah">
<code>PROCC</code>
</temple>
<temple name="Provo, Utah">
<code>PROVO</code>
<code>PV</code>
@@ -385,6 +440,7 @@
<code>REXBU</code>
</temple>
<temple name="Rome, Italy">
<code>ROMEI</code>
<code>ROME</code>
</temple>
<temple name="Sacramento, California">
@@ -394,12 +450,6 @@
<code>SGEOR</code>
<code>SG</code>
</temple>
<temple name="St. Louis, Missouri">
<code>SLOUI</code>
</temple>
<temple name="St. Paul, Minnesota">
<code>SPMIN</code>
</temple>
<temple name="Salt Lake City, Utah">
<code>SLAKE</code>
<code>SL</code>
@@ -415,6 +465,7 @@
<code>SJOSE</code>
</temple>
<temple name="San Salvador, El Salvador">
<code>SANSA</code>
<code>SSALV</code>
</temple>
<temple name="Santiago, Chile">
@@ -428,6 +479,9 @@
<code>SPAUL</code>
<code>SP</code>
</temple>
<temple name="Sapporo Japan">
<code>SAPPO</code>
</temple>
<temple name="Seattle, Washington">
<code>SEATT</code>
<code>SE</code>
@@ -442,6 +496,15 @@
<temple name="Spokane, Washington">
<code>SPOKA</code>
</temple>
<temple name="St. Louis, Missouri">
<code>SLOUI</code>
</temple>
<temple name="St. Paul, Minnesota">
<code>SPMIN</code>
</temple>
<temple name="Star Valley Wyoming">
<code>STARV</code>
</temple>
<temple name="Stockholm, Sweden">
<code>STOCK</code>
<code>ST</code>
@@ -463,9 +526,15 @@
<temple name="Tegucigalpa, Honduras">
<code>TEGUC</code>
</temple>
<temple name="The Gila Valley Arizona">
<code>GILAV</code>
</temple>
<temple name="The Hague, Netherlands">
<code>HAGUE</code>
</temple>
<temple name="Tijuana Mexico">
<code>TIJUA</code>
</temple>
<temple name="Tokyo, Japan">
<code>TOKYO</code>
<code>TK</code>
@@ -474,16 +543,19 @@
<code>TORON</code>
<code>TORNO</code>
<code>TR</code>
</temple>
<temple name="Trujillo, Peru">
<code>TRUJI</code>
</temple>
<temple name="Tucson Arizona">
<code>TUCSO</code>
</temple>
<temple name="Tuxtla Gutierrez, Mexico">
<code>TGUTI</code>
</temple>
<temple name="Twin Falls, Idaho">
<code>TFALL</code>
<code>TWINF</code>
<code>TFALL</code>
</temple>
<temple name="Vancouver, British Columbia">
<code>VANCO</code>
@@ -505,10 +577,6 @@
<code>WINTE</code>
<code>WQUAR</code>
</temple>
<temple name="Endowment House">
<code>EHOUS</code>
<code>EH</code>
</temple>
<temple name="President's Office">
<code>POFFI</code>
<code>PO</code>
+14 -3
View File
@@ -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ä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
+315 -655
View File
File diff suppressed because it is too large Load Diff
+52 -47
View File
@@ -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;;;
+50 -51
View File
@@ -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
1 Place Title Name Type Latitude Longitude Code Enclosed_by Date
30 [P0014] Denver, Denver Co., CO Denver, Denver Co., CO City 39.7392 104.9903 W [P0024]
31 Person Surname Given Call Suffix Prefix Title Gender Birth date
32 [I0030] Adams Janice Ann female 26 Aug 1965 1965-08-26
33 [I0016] Anderson Jennifer female 5 Nov 1907 1907-11-05
34 [I0025] Ericsdotter Marta female about 1775
35 [I0041] Green Janis Elaine female 2 Dec 1935 1935-12-02
36 [I0000] Hansdotter Anna female 2 Oct 1864 1864-10-02
37 [I0038] Hansdotter Kerstina female 29 Nov 1832 1832-11-29
38 [I0032] Horne Darcy female 2 Jul 1966 1966-07-02
39 [I0036] Jefferson Elna female 14 Sep 1800 1800-09-14
40 [I0017] Jones Lillie Harriet female 2 May 1910 1910-05-02
41 [I0042] Ke 柯 male
42 [I0013] Michaels Evelyn female about 1897
43 [I0012] Nielsen Herman Julius male 31 Aug 1889 1889-08-31
44 [I0031] Ohman Marjorie female 3 Jun 1903 1903-06-03
45 [I0034] Perkins Alice Paula female 22 Nov 1933 1933-11-22
46 [I0002] Smith Amber Marie female 12 Apr 1998 1998-04-12
47 [I0023] Smith Astrid Shermanna Augusta female 31 Jan 1889 1889-01-31
48 [I0020] Smith Carl Emil male 20 Dec 1899 1899-12-20
49 [I0029] Smith Craig Peter male after 1966
50 [I0037] Smith Edwin Michael male 24 May 1961 1961-05-24
51 [I0009] Smith Emil male 27 Sep 1860 1860-09-27
52 [I0019] Smith Eric Lloyd Dr. male 28 Aug 1963 1963-08-28
53 [I0015] Smith Gus male 11 Sep 1897 1897-09-11
54 [I0024] Smith Gustaf Sr. male 28 Nov 1862 1862-11-28
55 [I0011] Smith Hanna female 29 Jan 1821 1821-01-29
56 [I0010] Smith Hans Peter male 17 Apr 1904 1904-04-17
57 [I0021] Smith Hjalmar male 31 Jan 1893 1893-01-31
58 [I0008] Smith Hjalmar male 7 Apr 1895 1895-04-07
59 [I0007] Smith Ingar female after 1823
60 [I0027] Smith Ingeman male about 1770
61 [I0004] Smith Ingeman male 29 Jan 1826 1826-01-29
62 [I0018] Smith John Hjalmar male 30 Jan 1932 1932-01-30
63 [I0001] Smith Keith Lloyd male 11 Aug 1966 1966-08-11
64 [I0026] Smith Kirsti Marie female 15 Dec 1886 1886-12-15
65 [I0035] Smith Lars Peter male 16 Sep 1991 1991-09-16
66 [I0033] Smith Lloyd male 13 Mar 1935 1935-03-13
67 [I0003] Smith Magnes male 6 Oct 1858 1858-10-06
68 [I0040] Smith Marjorie Alice female 5 Feb 1960 1960-02-05
69 [I0014] Smith Marjorie Lee female 4 Nov 1934 1934-11-04
70 [I0022] Smith Martin male 19 Nov 1830 1830-11-19
71 [I0039] Smith Martin male between 1794 and 1796
72 [I0005] Smith Mason Michael male 26 Jun 1996 1996-06-26
73 [I0028] Streiffert Anna female 23 Sep 1860 1860-09-23
74 [I0006] Willard Edwin male about 1886
75 [I0043] Marriage リチミシキスイミ Husband ピーター Wife Date Place Source Note
Marriage Husband Wife Date Place Source Note
76 [F0000] [I0039] [I0036] about 1816 Gladsax, Kristianstad Län, Sweden [P0004]
77 [F0001] [I0027] [I0025] about 1790 Sweden [P0008]
78 [F0002] [I0022] [I0038] about 1856
79 [F0003] [I0024] [I0000] 27 Nov 1885 1885-11-27 Rønne, Bornholm, Denmark [P0003]
80 [F0004] [I0006] [I0026] about 1910
81 [F0005] [I0012] [I0023] 30 Nov 1912 1912-11-30 Rønne, Bornholm, Denmark [P0003]
82 [F0006] [I0008] [I0031] 31 Oct 1927 1927-10-31 Reno, Washoe Co., NV [P0005]
83 [F0007] [I0015] [I0013] about 1920
84 [F0008] [I0033] [I0041] 10 Aug 1958 1958-08-10 San Francisco, San Francisco Co., CA [P0002]
85 [F0009] [I0010] [I0017]
86 [F0010] [I0019] [I0032] 12 Jul 1986 1986-07-12 Woodland, Yolo Co., CA [P0022]
87 [F0011] [I0003] [I0028] 24 Aug 1884 1884-08-24 Rønne, Bornholm, Denmark [P0003]
88 [F0012] [I0018] [I0034] 4 Jun 1954 1954-06-04 Sparks, Washoe Co., NV [P0001] Marriage Certificae
89 [F0013] [I0037] [I0030] 27 May 1995 1995-05-27 San Ramon, Conta Costa Co., CA [P0023]
90 [F0014] [I0010] [I0016]
91 Family Child
92 [F0000] [I0011]
93 [F0000] [I0007]
94 [F0000] [I0004]
+6 -6
View File
@@ -1,12 +1,12 @@
0 HEAD
1 SOUR Gramps
2 VERS 5.0.2
2 VERS 5.1.2
2 NAME Gramps
1 DATE 4 AUG 2019
2 TIME 15:26:44
1 DATE 7 JAN 2020
2 TIME 13:39:43
1 SUBM @SUBM@
1 FILE C:\Users\prc\AppData\Roaming\gramps\temp\exp_sample_ged.ged
1 COPR Copyright (c) 2019 Alex Roitman,,,.
1 COPR Copyright (c) 2020 Alex Roitman,,,.
1 GEDC
2 VERS 5.5.1
2 FORM LINEAGE-LINKED
@@ -911,7 +911,7 @@
2 DATE I think 1970 to 1971
2 PLAC San Francisco, San Francisco Co., CA
1 SLGC
2 DATE EST ABT 1999
2 DATE ABT 1999
2 FAMC @F0016@
2 TEMP DENVE
2 PLAC Denver, Denver Co., CO, Denver Co., Colorado, USA
@@ -1424,7 +1424,7 @@
0 @N0018@ NOTE Another Citation Note
0 @N0019@ NOTE A bad photo for sure
0 @O0000@ OBJE
1 FILE c:\users\prc\workspace\grampsm\main\data\tests\O0.jpg
1 FILE d:\users\prc\documents\gramps\data\tests\O0.jpg
2 FORM jpg
2 TITL Michael O'Toole 2015-11
1 NOTE @N0019@
+3 -3
View File
@@ -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="2019-08-04" version="5.0.2"/>
<created date="1999-12-25" version="5.1.3"/>
<researcher>
<resname>Alex Roitman,,,</resname>
<resaddr>Not Provided</resaddr>
@@ -1302,7 +1302,7 @@
</reporef>
</source>
<source handle="_0000008500000085" change="1" id="S0000">
<stitle>@S0@</stitle>
<stitle>Marriage Certificae</stitle>
<noteref hlink="_000000e7000000e7"/>
<reporef hlink="_000000e6000000e6" callno="what-321-ever" medium="Photo"/>
</source>
@@ -1705,7 +1705,7 @@ Unknown tag Line 1111:
<range start="0" end="163"/>
</style>
</note>
<note handle="_000000f9000000f9" change="1564950708" id="N0036" type="General">
<note handle="_000000f9000000f9" change="1591544255" 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>
+130
View File
@@ -0,0 +1,130 @@
<?xml version="1.0" encoding="UTF-8"?>
<tips>
<tip number="1"><b>Working with Dates</b><br/>A range of dates can be given by using the format &quot;between January 4, 2000 and March 20, 2003&quot;. You can also indicate the level of confidence in a date and even choose between seven different calendars. Try the button next to the date field in the Events Editor.</tip>
<tip number="2"><b>Editing Objects</b><br/>In most cases double clicking on a name, source, place or media entry will bring up a window to allow you to edit the object. Note that the result can be dependent on context. For example, in the Family View clicking on a parent or child will bring up the Relationship Editor.</tip>
<tip number="3"><b>Adding Images</b><br/>An image can be added to any gallery or the Media View by dragging and dropping it from a file manager or a web browser. Actually you can add any type of file like this, useful for scans of documents and other digital sources.</tip>
<tip number="4"><b>Ordering Children in a Family</b><br/>The birth order of children in a family can be set by using drag and drop. This order is preserved even when they do not have birth dates.</tip>
<tip number="5"><b>Talk to Relatives Before It Is Too Late</b><br/>Your oldest relatives can be your most important source of information. They usually know things about the family that haven't been written down. They might tell you nuggets about people that may one day lead to a new avenue of research. At the very least, you will get to hear some great stories. Don't forget to record the conversations!</tip>
<tip number="7"><b>Filtering People</b><br/>In the People View, you can 'filter' individuals based on many criteria. To define a new filter go to &quot;Edit &gt; Person Filter Editor&quot;. There you can name your filter and add and combine rules using the many preset rules. For example, you can define a filter to find all adopted people in the family tree. People without a birth date mentioned can also be filtered. To get the results save your filter and select it at the bottom of the Filter Sidebar, then click Apply. If the Filter Sidebar is not visible, select View &gt; Filter.</tip>
<tip number="8"><b>Inverted Filtering</b><br/>Filters can easily be reversed by using the 'invert' option. For instance, by inverting the 'People with children' filter you can select all people without children.</tip>
<tip number="9"><b>Locating People</b><br/>By default, each surname in the People View is listed only once. By clicking on the arrow to the left of a name, the list will expand to show all individuals with that last name. To locate any Family Name from a long list, select a Family Name (not a person) and start typing. The view will jump to the first Family Name matching the letters you enter.</tip>
<tip number="10"><b>The Family View</b><br/>The Family View is used to display a typical family unit as two parents and their children.</tip>
<tip number="11"><b>Changing the Active Person</b><br/>Changing the Active Person in views is easy. In the Relationship view just click on anyone. In the Ancestry View doubleclick on the person or right click to select any of their spouses, siblings, children or parents.</tip>
<tip number="12"><b>Who Was Born When?</b><br/>Under &quot;Tools &gt; Analysis and exploration &gt; Compare Individual Events...&quot; you can compare the data of individuals in your database. This is useful, say, if you wish to list the birth dates of everyone in your database. You can use a custom filter to narrow the results.</tip>
<tip number="13"><b>Gramps Tools</b><br/>Gramps comes with a rich set of tools. These allow you to undertake operations such as checking the database for errors and consistency. There are research and analysis tools such as event comparison, finding duplicate people, interactive descendant browser, and many others. All tools can be accessed through the &quot;Tools&quot; menu.</tip>
<tip number="14"><b>Calculating Relationships</b><br/>To check if two people in the database are related (by blood, not marriage) try the tool under &quot;Tools &gt; Utilities &gt; Relationship Calculator...&quot;. The exact relationship as well as all common ancestors are reported.</tip>
<tip number="15"><b>SoundEx can help with family research</b><br/>SoundEx solves a long standing problem in genealogy, how to handle spelling variations. The SoundEx Gramplet takes a surname and generates a simplified form that is equivalent for similar sounding names. Knowing the SoundEx Code for a surname is very helpful for researching Census Data files (microfiche) at a library or other research facility. To view the SoundEx codes for surnames in your database, add the SoundEx Gramplet.</tip>
<tip number="16"><b>Setting Your Preferences</b><br/>&quot;Edit &gt; Preferences...&quot; lets you modify a number of settings, such as the path to your media files, and allows you to adjust many aspects of the Gramps presentation to your needs. Each separate view can also be configured under &quot;View &gt; Configure View...&quot;</tip>
<tip number="17"><b>Gramps Reports</b><br/>Gramps offers a wide variety of reports. The Graphical Reports and Graphs can present complex relationships easily and the Text Reports are particularly useful if you want to send the results of your family tree to members of the family via email. If you're ready to make a website for your family tree then there's a report for that as well.</tip>
<tip number="18"><b>Starting a New Family Tree</b><br/>A good way to start a new family tree is to enter all the members of the family into the database using the Person View (use &quot;Edit &gt; Add...&quot; or click on the Add a new person button from the People View). Then go to the Relationship View and create relationships between people.</tip>
<tip number="19"><b>What's That For?</b><br/>Unsure what a button does? Simply hold the mouse over a button and a tooltip will appear.</tip>
<tip number="20"><b>Unsure of a Date?</b><br/>If you're unsure about the date an event occurred, Gramps allows you to enter a wide range of date formats based on a guess or an estimate. For instance, &quot;about 1908&quot; is a valid entry for a birth date in Gramps. Click the Date button next to the date field and see the Gramps Manual to learn more.</tip>
<tip number="21"><b>Duplicate Entries</b><br/>&quot;Tools &gt; Database Processing &gt; Find Possible Duplicate People...&quot; allows you to locate (and merge) entries of the same person entered more than once in the database.</tip>
<tip number="22"><b>Merging Entries</b><br/>The function &quot;Edit &gt; Compare and Merge...&quot; allows you to combine separately listed people into one. Select the second entry by holding the Control key as you click. This is very useful for combining two databases with overlapping people, or combining erroneously entered differing names for one individual. This also works for the Places, Sources and Repositories views.</tip>
<tip number="23"><b>Organising the Views</b><br/>Many of the views can present your data as either a hierarchical tree or as a simple list. Each view can also be configured to the way you like it. Have a look to the right of the top toolbar or under the &quot;View&quot; menu.</tip>
<tip number="24"><b>Navigating Back and Forward</b><br/>Gramps maintains a list of previous active objects such as People and Events. You can move forward and backward through the list using &quot;Go &gt; Forward&quot; and &quot;Go &gt; Back&quot; or the arrow buttons.</tip>
<tip number="25"><b>Keyboard Shortcuts</b><br/>Tired of having to take your hand off the keyboard to use the mouse? Many functions in Gramps have keyboard shortcuts. If one exists for a function it is displayed on the right side of the menu.</tip>
<tip number="26"><b>Read the Manual</b><br/>Don't forget to read the Gramps manual, &quot;Help &gt; User Manual&quot;. The developers have worked hard to make most operations intuitive but the manual is full of information that will make your time spent on genealogy more productive.</tip>
<tip number="27"><b>Adding Children</b><br/>To add children in Gramps there are two options. You can find one of their parents in the Families View and open the family. Then choose to create a new person or add an existing person. You can also add children (or siblings) from inside the Family Editor.</tip>
<tip number="28"><b>Editing the Parent-Child Relationship</b><br/> You can edit the relationship of a child to its parents by double clicking the child in the Family Editor. Relationships can be any of Adopted, Birth, Foster, None, Sponsored, Stepchild and Unknown.</tip>
<tip number="29"><b>Show All Checkbutton</b><br/>When adding an existing person as a spouse, the list of people shown is filtered to display only people who could realistically fit the role (based on dates in the database). In case Gramps is wrong in making this choice, you can override the filter by checking the Show All checkbutton.</tip>
<tip number="31"><b>Improving Gramps</b><br/>Users are encouraged to request enhancements to Gramps. Requesting an enhancement can be done either through the gramps-users or gramps-devel mailing lists, or by going to https://gramps-project.org/bugs/ and creating a Feature Request. Filing a Feature Request is preferred but it can be good to discuss your ideas on the email lists.</tip>
<tip number="32"><b>Gramps Mailing Lists</b><br/>Want answers to your questions about Gramps? Check out the gramps-users email list. Many helpful people are on the list, so you're likely to get an answer quickly. If you have questions related to the development of Gramps, try the gramps-devel list. You can see the lists by selecting &quot;Help &gt; Gramps Mailing Lists&quot;.</tip>
<tip number="33"><b>Contributing to Gramps</b><br/>Want to help with Gramps but can't write programs? Not a problem! A project as large as Gramps requires people with a wide variety of skills. Contributions can be anything from writing documentation to testing development versions and helping with the web site. Start by subscribing to the Gramps developers mailing list, gramps-devel, and introducing yourself. Subscription information can be found at &quot;Help &gt; Gramps Mailing Lists&quot;</tip>
<tip number="34"><b>So What's in a Name?</b><br/>The name Gramps was suggested to the original developer, Don Allingham, by his father. It stands for <i>Genealogical Research and Analysis Management Program System</i>. It is a full-featured genealogy program letting you store, edit, and research genealogical data. The Gramps database back end is so robust that some users are managing genealogies containing hundreds of thousands of people.</tip>
<tip number="36"><b>Bookmarking Individuals</b><br/>The Bookmarks menu is a convenient place to store the names of frequently used individuals. Selecting a bookmark will make that person the Active Person. To bookmark someone make them the Active Person then go to &quot;Bookmarks &gt; Add Bookmark&quot; or press Ctrl+D. You can also bookmark most of the other objects.</tip>
<tip number="37"><b>Incorrect Dates</b><br/>Everyone occasionally enters dates with an invalid format. Incorrect date formats will show up in Gramps with a either a reddish background or a red dot on the right edge of the field. You can fix the date using the Date Selection dialog which can be opened by clicking on the date button. The format of the date is set under &quot;Edit &gt; Preferences &gt; Display&quot;.</tip>
<tip number="38"><b>Listing Events</b><br/>Events are added using the editor opened with &quot;Person &gt; Edit Person &gt; Events&quot;. There is a long list of preset event types. You can add your own event types by typing in the text field, they will be added to the available events, but not translated.</tip>
<tip number="39"><b>Managing Names</b><br/>It is easy to manage people with several names in Gramps. In the Person Editor select the Names tab. You can add names of different types and set the preferred name by dragging it to the Preferred Name section.</tip>
<tip number="40"><b>Ancestor View</b><br/>The Ancestry View displays a traditional pedigree chart. Hold the mouse over an individual to see more information about them or right click on an individual to access other family members and settings. Play with the settings to see the different options.</tip>
<tip number="41"><b>Managing Sources</b><br/>The Sources View shows a list of all sources in a single window. From here you can edit your sources, merge duplicates and see which individuals reference each source. You can use filters to group your sources.</tip>
<tip number="42"><b>Managing Places</b><br/>The Places View shows a list of all places in the database. The list can be sorted by a number of different criteria, such as City, County or State.</tip>
<tip number="43"><b>Media View</b><br/>The Media View shows a list of all media entered in the database. These can be graphic images, videos, sound clips, spreadsheets, documents, and more.</tip>
<tip number="44"><b>Filters</b><br/>Filters allow you to limit the people seen in the People View. In addition to the many preset filters, Custom Filters can be created limited only by your imagination. Custom filters are created from &quot;Edit &gt; Person Filter Editor&quot;.</tip>
<tip number="45"><b>The GEDCOM File Format</b><br/>Gramps allows you to import from, and export to, the GEDCOM format. There is extensive support for the industry standard GEDCOM version 5.5, so you can exchange Gramps information to and from users of most other genealogy programs. Filters exist that make importing and exporting GEDCOM files trivial.</tip>
<tip number="46"><b>The Gramps XML Package</b><br/>You can export your Family Tree as a Gramps XML Package. This is a compressed file containing your family tree data and all the media files connected to the database (images for example). This file is completely portable so is useful for backups or sharing with other Gramps users. This format has the key advantage over GEDCOM that no information is ever lost when exporting and importing.</tip>
<tip number="48"><b>Web Family Tree Format</b><br/>Gramps can export data to the Web Family Tree (WFT) format. This format allows a family tree to be displayed online using a single file, instead of many html files.</tip>
<tip number="49"><b>Making a Genealogy Website</b><br/>You can easily export your family tree to a web page. Select the entire database, family lines or selected individuals to a collection of web pages ready for upload to the World Wide Web.</tip>
<tip number="50"><b>Reporting Bugs in Gramps</b><br/>The best way to report a bug in Gramps is to use the Gramps bug tracking system at https://gramps-project.org/bugs/</tip>
<tip number="51"><b>The Gramps Homepage</b><br/>The Gramps homepage is at http://gramps-project.org/</tip>
<tip number="53"><b>Privacy in Gramps</b><br/>Gramps helps you to keep personal information secure by allowing you to mark information as private. Data marked as private can be excluded from reports and data exports. Look for the padlock which toggles records between private and public.</tip>
<tip number="54"><b>Keeping Good Records</b><br/>Be accurate when recording genealogical information. Don't make assumptions while recording primary information; write it exactly as you see it. Use bracketed comments to indicate your additions, deletions or comments. Use of the Latin 'sic' is recommended to confirm the accurate transcription of what appears to be an error in a source.</tip>
<tip number="57"><b>Extra Reports and Tools</b><br/>Extra tools and reports can be added to Gramps with the &quot;Addon&quot; system. See them under &quot;Help &gt; Extra Reports/Tools&quot;. This is the best way for advanced users to experiment and create new functionality.</tip>
<tip number="58"><b>Book Reports</b><br/>The Book report under &quot;Reports &gt; Books &gt; Book Report...&quot;, allows you to collect a variety of reports into a single document. This single report is easier to distribute than multiple reports, especially when printed.</tip>
<tip number="59"><b>Gramps Announcements</b><br/>Interested in getting notified when a new version of Gramps is released? Join the Gramps-announce mailing list at &quot;Help &gt; Gramps Mailing Lists&quot;</tip>
<tip number="60"><b>Record Your Sources</b><br/>Information collected about your family is only as good as the source it came from. Take the time and trouble to record all the details of where the information came from. Whenever possible get a copy of original documents.</tip>
<tip number="61"><b>Directing Your Research</b><br/>Go from what you know to what you do not. Always record everything that is known before making conjectures. Often the facts at hand suggest plenty of direction for more research. Don't waste time looking through thousands of records hoping for a trail when you have other unexplored leads.</tip>
<tip number="62"><b>The 'How and Why' of Your Genealogy</b><br/> Genealogy isn't only about dates and names. It is about people. Be descriptive. Include why things happened, and how descendants might have been shaped by the events they went through. Narratives go a long way in making your family history come alive.</tip>
<tip number="63"><b>Don't speak English?</b><br/>Volunteers have translated Gramps into more than 40 languages. If Gramps supports your language and it is not being displayed, set the default language in your operating system and restart Gramps.</tip>
<tip number="64"><b>Gramps Translators</b><br/>Gramps has been designed so that new translations can easily be added with little development effort. If you are interested in participating please email gramps-devel@lists.sf.net</tip>
<tip number="66"><b>Hello, привет or 喂</b><br/>Whatever script you use Gramps offers full Unicode support. Characters for all languages are properly displayed.</tip>
<tip number="67"><b>The Home Person</b><br/>Anyone can be chosen as the Home Person in Gramps. Use &quot;Edit &gt; Set Home Person&quot; in the Person View. The home person is the person who is selected when the database is opened or when the home button is pressed.</tip>
<tip number="70"><b>The Gramps Code</b><br/>Gramps is written in a computer language called Python using the GTK and GNOME libraries for the graphical interface. Gramps is supported on any computer system where these programs have been ported. Gramps is known to be run on Linux, BSD, Solaris, Windows and Mac OS X.</tip>
<tip number="71"><b>Open Source Software</b><br/>The Free/Libre and Open Source Software (FLOSS) development model means Gramps can be extended by any programmer since all of the source code is freely available under its license. So it's not just about free beer, it's also about freedom to study and change the tool. For more about Open Source software lookup the Free Software Foundation and the Open Source Initiative.</tip>
<tip number="72"><b>The Gramps Software License</b><br/>You are free to use and share Gramps with others. Gramps is freely distributable under the GNU General Public License, see http://www.gnu.org/licenses/licenses.html#GPL to read about the rights and restrictions of this license.</tip>
<tip number="73"><b>Gramps for Gnome or KDE?</b><br/>For Linux users Gramps works with whichever desktop environment you prefer. As long as the required GTK libraries are installed it will run fine.</tip>
</tips>
-130
View File
@@ -1,130 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<tips>
<_tip number="1"><b>Working with Dates</b><br/>A range of dates can be given by using the format &quot;between January 4, 2000 and March 20, 2003&quot;. You can also indicate the level of confidence in a date and even choose between seven different calendars. Try the button next to the date field in the Events Editor.</_tip>
<_tip number="2"><b>Editing Objects</b><br/>In most cases double clicking on a name, source, place or media entry will bring up a window to allow you to edit the object. Note that the result can be dependent on context. For example, in the Family View clicking on a parent or child will bring up the Relationship Editor.</_tip>
<_tip number="3"><b>Adding Images</b><br/>An image can be added to any gallery or the Media View by dragging and dropping it from a file manager or a web browser. Actually you can add any type of file like this, useful for scans of documents and other digital sources.</_tip>
<_tip number="4"><b>Ordering Children in a Family</b><br/>The birth order of children in a family can be set by using drag and drop. This order is preserved even when they do not have birth dates.</_tip>
<_tip number="5"><b>Talk to Relatives Before It Is Too Late</b><br/>Your oldest relatives can be your most important source of information. They usually know things about the family that haven't been written down. They might tell you nuggets about people that may one day lead to a new avenue of research. At the very least, you will get to hear some great stories. Don't forget to record the conversations!</_tip>
<_tip number="7"><b>Filtering People</b><br/>In the People View, you can 'filter' individuals based on many criteria. To define a new filter go to &quot;Edit &gt; Person Filter Editor&quot;. There you can name your filter and add and combine rules using the many preset rules. For example, you can define a filter to find all adopted people in the family tree. People without a birth date mentioned can also be filtered. To get the results save your filter and select it at the bottom of the Filter Sidebar, then click Apply. If the Filter Sidebar is not visible, select View &gt; Filter.</_tip>
<_tip number="8"><b>Inverted Filtering</b><br/>Filters can easily be reversed by using the 'invert' option. For instance, by inverting the 'People with children' filter you can select all people without children.</_tip>
<_tip number="9"><b>Locating People</b><br/>By default, each surname in the People View is listed only once. By clicking on the arrow to the left of a name, the list will expand to show all individuals with that last name. To locate any Family Name from a long list, select a Family Name (not a person) and start typing. The view will jump to the first Family Name matching the letters you enter.</_tip>
<_tip number="10"><b>The Family View</b><br/>The Family View is used to display a typical family unit as two parents and their children.</_tip>
<_tip number="11"><b>Changing the Active Person</b><br/>Changing the Active Person in views is easy. In the Relationship view just click on anyone. In the Ancestry View doubleclick on the person or right click to select any of their spouses, siblings, children or parents.</_tip>
<_tip number="12"><b>Who Was Born When?</b><br/>Under &quot;Tools &gt; Analysis and exploration &gt; Compare Individual Events...&quot; you can compare the data of individuals in your database. This is useful, say, if you wish to list the birth dates of everyone in your database. You can use a custom filter to narrow the results.</_tip>
<_tip number="13"><b>Gramps Tools</b><br/>Gramps comes with a rich set of tools. These allow you to undertake operations such as checking the database for errors and consistency. There are research and analysis tools such as event comparison, finding duplicate people, interactive descendant browser, and many others. All tools can be accessed through the &quot;Tools&quot; menu.</_tip>
<_tip number="14"><b>Calculating Relationships</b><br/>To check if two people in the database are related (by blood, not marriage) try the tool under &quot;Tools &gt; Utilities &gt; Relationship Calculator...&quot;. The exact relationship as well as all common ancestors are reported.</_tip>
<_tip number="15"><b>SoundEx can help with family research</b><br/>SoundEx solves a long standing problem in genealogy, how to handle spelling variations. The SoundEx Gramplet takes a surname and generates a simplified form that is equivalent for similar sounding names. Knowing the SoundEx Code for a surname is very helpful for researching Census Data files (microfiche) at a library or other research facility. To view the SoundEx codes for surnames in your database, add the SoundEx Gramplet.</_tip>
<_tip number="16"><b>Setting Your Preferences</b><br/>&quot;Edit &gt; Preferences...&quot; lets you modify a number of settings, such as the path to your media files, and allows you to adjust many aspects of the Gramps presentation to your needs. Each separate view can also be configured under &quot;View &gt; Configure View...&quot;</_tip>
<_tip number="17"><b>Gramps Reports</b><br/>Gramps offers a wide variety of reports. The Graphical Reports and Graphs can present complex relationships easily and the Text Reports are particularly useful if you want to send the results of your family tree to members of the family via email. If you're ready to make a website for your family tree then there's a report for that as well.</_tip>
<_tip number="18"><b>Starting a New Family Tree</b><br/>A good way to start a new family tree is to enter all the members of the family into the database using the Person View (use &quot;Edit &gt; Add...&quot; or click on the Add a new person button from the People View). Then go to the Relationship View and create relationships between people.</_tip>
<_tip number="19"><b>What's That For?</b><br/>Unsure what a button does? Simply hold the mouse over a button and a tooltip will appear.</_tip>
<_tip number="20"><b>Unsure of a Date?</b><br/>If you're unsure about the date an event occurred, Gramps allows you to enter a wide range of date formats based on a guess or an estimate. For instance, &quot;about 1908&quot; is a valid entry for a birth date in Gramps. Click the Date button next to the date field and see the Gramps Manual to learn more.</_tip>
<_tip number="21"><b>Duplicate Entries</b><br/>&quot;Tools &gt; Database Processing &gt; Find Possible Duplicate People...&quot; allows you to locate (and merge) entries of the same person entered more than once in the database.</_tip>
<_tip number="22"><b>Merging Entries</b><br/>The function &quot;Edit &gt; Compare and Merge...&quot; allows you to combine separately listed people into one. Select the second entry by holding the Control key as you click. This is very useful for combining two databases with overlapping people, or combining erroneously entered differing names for one individual. This also works for the Places, Sources and Repositories views.</_tip>
<_tip number="23"><b>Organising the Views</b><br/>Many of the views can present your data as either a hierarchical tree or as a simple list. Each view can also be configured to the way you like it. Have a look to the right of the top toolbar or under the &quot;View&quot; menu.</_tip>
<_tip number="24"><b>Navigating Back and Forward</b><br/>Gramps maintains a list of previous active objects such as People and Events. You can move forward and backward through the list using &quot;Go &gt; Forward&quot; and &quot;Go &gt; Back&quot; or the arrow buttons.</_tip>
<_tip number="25"><b>Keyboard Shortcuts</b><br/>Tired of having to take your hand off the keyboard to use the mouse? Many functions in Gramps have keyboard shortcuts. If one exists for a function it is displayed on the right side of the menu.</_tip>
<_tip number="26"><b>Read the Manual</b><br/>Don't forget to read the Gramps manual, &quot;Help &gt; User Manual&quot;. The developers have worked hard to make most operations intuitive but the manual is full of information that will make your time spent on genealogy more productive.</_tip>
<_tip number="27"><b>Adding Children</b><br/>To add children in Gramps there are two options. You can find one of their parents in the Families View and open the family. Then choose to create a new person or add an existing person. You can also add children (or siblings) from inside the Family Editor.</_tip>
<_tip number="28"><b>Editing the Parent-Child Relationship</b><br/> You can edit the relationship of a child to its parents by double clicking the child in the Family Editor. Relationships can be any of Adopted, Birth, Foster, None, Sponsored, Stepchild and Unknown.</_tip>
<_tip number="29"><b>Show All Checkbutton</b><br/>When adding an existing person as a spouse, the list of people shown is filtered to display only people who could realistically fit the role (based on dates in the database). In case Gramps is wrong in making this choice, you can override the filter by checking the Show All checkbutton.</_tip>
<_tip number="31"><b>Improving Gramps</b><br/>Users are encouraged to request enhancements to Gramps. Requesting an enhancement can be done either through the gramps-users or gramps-devel mailing lists, or by going to https://gramps-project.org/bugs/ and creating a Feature Request. Filing a Feature Request is preferred but it can be good to discuss your ideas on the email lists.</_tip>
<_tip number="32"><b>Gramps Mailing Lists</b><br/>Want answers to your questions about Gramps? Check out the gramps-users email list. Many helpful people are on the list, so you're likely to get an answer quickly. If you have questions related to the development of Gramps, try the gramps-devel list. You can see the lists by selecting &quot;Help &gt; Gramps Mailing Lists&quot;.</_tip>
<_tip number="33"><b>Contributing to Gramps</b><br/>Want to help with Gramps but can't write programs? Not a problem! A project as large as Gramps requires people with a wide variety of skills. Contributions can be anything from writing documentation to testing development versions and helping with the web site. Start by subscribing to the Gramps developers mailing list, gramps-devel, and introducing yourself. Subscription information can be found at &quot;Help &gt; Gramps Mailing Lists&quot;</_tip>
<_tip number="34"><b>So What's in a Name?</b><br/>The name Gramps was suggested to the original developer, Don Allingham, by his father. It stands for <i>Genealogical Research and Analysis Management Program System</i>. It is a full-featured genealogy program letting you store, edit, and research genealogical data. The Gramps database back end is so robust that some users are managing genealogies containing hundreds of thousands of people.</_tip>
<_tip number="36"><b>Bookmarking Individuals</b><br/>The Bookmarks menu is a convenient place to store the names of frequently used individuals. Selecting a bookmark will make that person the Active Person. To bookmark someone make them the Active Person then go to &quot;Bookmarks &gt; Add Bookmark&quot; or press Ctrl+D. You can also bookmark most of the other objects.</_tip>
<_tip number="37"><b>Incorrect Dates</b><br/>Everyone occasionally enters dates with an invalid format. Incorrect date formats will show up in Gramps with a either a reddish background or a red dot on the right edge of the field. You can fix the date using the Date Selection dialog which can be opened by clicking on the date button. The format of the date is set under &quot;Edit &gt; Preferences &gt; Display&quot;.</_tip>
<_tip number="38"><b>Listing Events</b><br/>Events are added using the editor opened with &quot;Person &gt; Edit Person &gt; Events&quot;. There is a long list of preset event types. You can add your own event types by typing in the text field, they will be added to the available events, but not translated.</_tip>
<_tip number="39"><b>Managing Names</b><br/>It is easy to manage people with several names in Gramps. In the Person Editor select the Names tab. You can add names of different types and set the preferred name by dragging it to the Preferred Name section.</_tip>
<_tip number="40"><b>Ancestor View</b><br/>The Ancestry View displays a traditional pedigree chart. Hold the mouse over an individual to see more information about them or right click on an individual to access other family members and settings. Play with the settings to see the different options.</_tip>
<_tip number="41"><b>Managing Sources</b><br/>The Sources View shows a list of all sources in a single window. From here you can edit your sources, merge duplicates and see which individuals reference each source. You can use filters to group your sources.</_tip>
<_tip number="42"><b>Managing Places</b><br/>The Places View shows a list of all places in the database. The list can be sorted by a number of different criteria, such as City, County or State.</_tip>
<_tip number="43"><b>Media View</b><br/>The Media View shows a list of all media entered in the database. These can be graphic images, videos, sound clips, spreadsheets, documents, and more.</_tip>
<_tip number="44"><b>Filters</b><br/>Filters allow you to limit the people seen in the People View. In addition to the many preset filters, Custom Filters can be created limited only by your imagination. Custom filters are created from &quot;Edit &gt; Person Filter Editor&quot;.</_tip>
<_tip number="45"><b>The GEDCOM File Format</b><br/>Gramps allows you to import from, and export to, the GEDCOM format. There is extensive support for the industry standard GEDCOM version 5.5, so you can exchange Gramps information to and from users of most other genealogy programs. Filters exist that make importing and exporting GEDCOM files trivial.</_tip>
<_tip number="46"><b>The Gramps XML Package</b><br/>You can export your Family Tree as a Gramps XML Package. This is a compressed file containing your family tree data and all the media files connected to the database (images for example). This file is completely portable so is useful for backups or sharing with other Gramps users. This format has the key advantage over GEDCOM that no information is ever lost when exporting and importing.</_tip>
<_tip number="48"><b>Web Family Tree Format</b><br/>Gramps can export data to the Web Family Tree (WFT) format. This format allows a family tree to be displayed online using a single file, instead of many html files.</_tip>
<_tip number="49"><b>Making a Genealogy Website</b><br/>You can easily export your family tree to a web page. Select the entire database, family lines or selected individuals to a collection of web pages ready for upload to the World Wide Web.</_tip>
<_tip number="50"><b>Reporting Bugs in Gramps</b><br/>The best way to report a bug in Gramps is to use the Gramps bug tracking system at https://gramps-project.org/bugs/</_tip>
<_tip number="51"><b>The Gramps Homepage</b><br/>The Gramps homepage is at http://gramps-project.org/</_tip>
<_tip number="53"><b>Privacy in Gramps</b><br/>Gramps helps you to keep personal information secure by allowing you to mark information as private. Data marked as private can be excluded from reports and data exports. Look for the padlock which toggles records between private and public.</_tip>
<_tip number="54"><b>Keeping Good Records</b><br/>Be accurate when recording genealogical information. Don't make assumptions while recording primary information; write it exactly as you see it. Use bracketed comments to indicate your additions, deletions or comments. Use of the Latin 'sic' is recommended to confirm the accurate transcription of what appears to be an error in a source.</_tip>
<_tip number="57"><b>Extra Reports and Tools</b><br/>Extra tools and reports can be added to Gramps with the &quot;Addon&quot; system. See them under &quot;Help &gt; Extra Reports/Tools&quot;. This is the best way for advanced users to experiment and create new functionality.</_tip>
<_tip number="58"><b>Book Reports</b><br/>The Book report under &quot;Reports &gt; Books &gt; Book Report...&quot;, allows you to collect a variety of reports into a single document. This single report is easier to distribute than multiple reports, especially when printed.</_tip>
<_tip number="59"><b>Gramps Announcements</b><br/>Interested in getting notified when a new version of Gramps is released? Join the Gramps-announce mailing list at &quot;Help &gt; Gramps Mailing Lists&quot;</_tip>
<_tip number="60"><b>Record Your Sources</b><br/>Information collected about your family is only as good as the source it came from. Take the time and trouble to record all the details of where the information came from. Whenever possible get a copy of original documents.</_tip>
<_tip number="61"><b>Directing Your Research</b><br/>Go from what you know to what you do not. Always record everything that is known before making conjectures. Often the facts at hand suggest plenty of direction for more research. Don't waste time looking through thousands of records hoping for a trail when you have other unexplored leads.</_tip>
<_tip number="62"><b>The 'How and Why' of Your Genealogy</b><br/> Genealogy isn't only about dates and names. It is about people. Be descriptive. Include why things happened, and how descendants might have been shaped by the events they went through. Narratives go a long way in making your family history come alive.</_tip>
<_tip number="63"><b>Don't speak English?</b><br/>Volunteers have translated Gramps into more than 40 languages. If Gramps supports your language and it is not being displayed, set the default language in your operating system and restart Gramps.</_tip>
<_tip number="64"><b>Gramps Translators</b><br/>Gramps has been designed so that new translations can easily be added with little development effort. If you are interested in participating please email gramps-devel@lists.sf.net</_tip>
<_tip number="66"><b>Hello, привет or 喂</b><br/>Whatever script you use Gramps offers full Unicode support. Characters for all languages are properly displayed.</_tip>
<_tip number="67"><b>The Home Person</b><br/>Anyone can be chosen as the Home Person in Gramps. Use &quot;Edit &gt; Set Home Person&quot; in the Person View. The home person is the person who is selected when the database is opened or when the home button is pressed.</_tip>
<_tip number="70"><b>The Gramps Code</b><br/>Gramps is written in a computer language called Python using the GTK and GNOME libraries for the graphical interface. Gramps is supported on any computer system where these programs have been ported. Gramps is known to be run on Linux, BSD, Solaris, Windows and Mac OS X.</_tip>
<_tip number="71"><b>Open Source Software</b><br/>The Free/Libre and Open Source Software (FLOSS) development model means Gramps can be extended by any programmer since all of the source code is freely available under its license. So it's not just about free beer, it's also about freedom to study and change the tool. For more about Open Source software lookup the Free Software Foundation and the Open Source Initiative.</_tip>
<_tip number="72"><b>The Gramps Software License</b><br/>You are free to use and share Gramps with others. Gramps is freely distributable under the GNU General Public License, see http://www.gnu.org/licenses/licenses.html#GPL to read about the rights and restrictions of this license.</_tip>
<_tip number="73"><b>Gramps for Gnome or KDE?</b><br/>For Linux users Gramps works with whichever desktop environment you prefer. As long as the required GTK libraries are installed it will run fine.</_tip>
</tips>
+13
View File
@@ -1,3 +1,16 @@
gramps (5.1.2-1) unstable; urgency=medium
* New release
-- Ross Gammon <rossgammon@debian.org> Sat, 11 Jan 2020 19:07:08 +0100
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
+2 -1
View File
@@ -42,7 +42,8 @@ Recommends:
gir1.2-gexiv2-0.10,
gir1.2-osmgpsmap-1.0,
python3-icu,
gir1.2-geocodeglib-1.0
gir1.2-geocodeglib-1.0,
python3-fontconfig
Suggests:
fonts-freefont-ttf,
gir1.2-goocanvas-2.0,
+4 -35
View File
@@ -52,14 +52,9 @@ from gramps.gen.db.utils import make_database
from gramps.gen.errors import DbError
from gramps.gen.dbstate import DbState
from gramps.gen.db.exceptions import (DbUpgradeRequiredError,
BsddbDowngradeError,
DbSupportedError,
DbVersionError,
DbPythonError,
DbEnvironmentError,
BsddbUpgradeRequiredError,
BsddbDowngradeRequiredError,
PythonUpgradeRequiredError,
PythonDowngradeError,
DbConnectionError)
from gramps.gen.plug import BasePluginManager
from gramps.gen.utils.config import get_researcher
@@ -176,34 +171,8 @@ class CLIDbLoader:
try:
self.dbstate.db.load(filename, self._pulse_progress, mode,
username=username, password=password)
except DbEnvironmentError as msg:
self.dbstate.no_database()
self._errordialog(_("Cannot open database"), str(msg))
except BsddbUpgradeRequiredError as msg:
self.dbstate.no_database()
self._errordialog(_("Cannot open database"), str(msg))
except BsddbDowngradeRequiredError as msg:
self.dbstate.no_database()
self._errordialog(_("Cannot open database"), str(msg))
except BsddbDowngradeError as msg:
self.dbstate.no_database()
self._errordialog(_("Cannot open database"), str(msg))
except DbUpgradeRequiredError as msg:
self.dbstate.no_database()
self._errordialog(_("Cannot open database"), str(msg))
except PythonDowngradeError as msg:
self.dbstate.no_database()
self._errordialog(_("Cannot open database"), str(msg))
except PythonUpgradeRequiredError as msg:
self.dbstate.no_database()
self._errordialog(_("Cannot open database"), str(msg))
except DbVersionError as msg:
self.dbstate.no_database()
self._errordialog(_("Cannot open database"), str(msg))
except DbPythonError as msg:
self.dbstate.no_database()
self._errordialog(_("Cannot open database"), str(msg))
except DbConnectionError as msg:
except (DbConnectionError, DbSupportedError, DbUpgradeRequiredError,
DbVersionError, DbPythonError, DbConnectionError) as msg:
self.dbstate.no_database()
self._errordialog(_("Cannot open database"), str(msg))
except OSError as msg:
@@ -280,7 +249,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
+4 -4
View File
@@ -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
@@ -519,8 +519,8 @@ class CommandLineReport:
self.format = tree_format["class"]
if self.format is None:
# Pick the first one as the default.
self.format = tree_format.FORMATS[0]["class"]
_chosen_format = tree_format.FORMATS[0]["type"]
self.format = treedoc.FORMATS[0]["class"]
_chosen_format = treedoc.FORMATS[0]["type"]
else:
self.format = None
if _chosen_format and _format_str:
+7 -5
View File
@@ -47,8 +47,8 @@ from .const import GRAMPS_LOCALE as glocale
_ = glocale.translation.gettext
# _T_ is a gramps-defined keyword -- see po/update_po.py and po/genpot.sh
def _T_(value): # enable deferred translations (see Python docs 22.1.3.4)
return value
def _T_(value, context=''): # enable deferred translations
return "%s\x04%s" % (context, value) if context else value
#---------------------------------------------------------------
#
@@ -133,7 +133,6 @@ register('behavior.addmedia-image-dir', '')
register('behavior.addmedia-relative-path', False)
register('behavior.autoload', False)
register('behavior.avg-generation-gap', 20)
register('behavior.betawarn', False)
register('behavior.check-for-addon-updates', 0)
register('behavior.check-for-addon-update-types', ["new"])
register('behavior.last-check-for-addon-updates', "1970/01/01")
@@ -157,7 +156,7 @@ 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/gramps51")
register('behavior.addons-url', "https://raw.githubusercontent.com/gramps-project/addons/master/gramps52")
register('database.backend', 'sqlite')
register('database.compress-backup', True)
@@ -186,6 +185,7 @@ register('geography.zoom_when_center', 12)
register('geography.show_cross', False)
register('geography.path', "")
register('geography.use-keypad', True)
register('geography.personal-map', "")
# note that other calls to "register" are done in realtime (when
# needed), for instance to four 'interface.clipboard' variables --
@@ -316,7 +316,7 @@ 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"))
register('test.january', _("|January", "localized lexeme inflections"))
#---------------------------------------------------------------
#
@@ -368,3 +368,5 @@ if not os.path.exists(CONFIGMAN.filename):
CONFIGMAN.load()
config = CONFIGMAN
if config.get('database.backend') == 'bsddb':
config.set('database.backend', 'sqlite')
+6 -5
View File
@@ -41,7 +41,7 @@ import uuid
#-------------------------------------------------------------------------
from .git_revision import get_git_revision
from .constfunc import get_env_var
from ..version import VERSION, VERSION_TUPLE, major_version
from ..version import VERSION, VERSION_TUPLE, major_version, DEV_VERSION
from .utils.resourcepath import ResourcePath
from .utils.grampslocale import GrampsLocale
@@ -145,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
if DEV_VERSION:
VERSION += git_revision
#VERSION += "-1"
#
@@ -225,7 +226,7 @@ GTK_GETTEXT_DOMAIN = 'gtk30'
#
#-------------------------------------------------------------------------
COPYRIGHT_MSG = "© 2001-2006 Donald N. Allingham\n" \
"© 2007-2019 The Gramps Developers"
"© 2007-2020 The Gramps Developers"
COMMENTS = _("Gramps\n (Genealogical Research and Analysis "
"Management Programming System)\n"
"is a personal genealogy program.")
@@ -256,8 +257,8 @@ DOCUMENTERS = [
THUMBSCALE = 96.0
THUMBSCALE_LARGE = 180.0
XMLFILE = "data.gramps"
NO_SURNAME = "(%s)" % _("surname|none")
NO_GIVEN = "(%s)" % _("given-name|none")
NO_SURNAME = "(%s)" % _("none", "surname")
NO_GIVEN = "(%s)" % _("none", "given-name")
ARABIC_COMMA = "،"
ARABIC_SEMICOLON = "؛"
DOCGEN_OPTIONS = 'Docgen Options'
+11 -6
View File
@@ -35,6 +35,7 @@ import logging
# Gramps modules
#
#-------------------------------------------------------------------------
from ..utils.grampslocale import GrampsLocale
from ..const import GRAMPS_LOCALE as glocale
_ = glocale.translation.sgettext
# import prerequisites for localized handlers
@@ -72,16 +73,20 @@ from . import _date_uk
from . import _date_zh_CN
from . import _date_zh_TW
# the following makes sure we use the LC_TIME value for date display & parsing
dlocale = GrampsLocale(lang=glocale.calendar)
# Initialize global parser
try:
if LANG in LANG_TO_PARSER:
parser = LANG_TO_PARSER[LANG](plocale=glocale)
parser = LANG_TO_PARSER[LANG](plocale=dlocale)
else:
parser = LANG_TO_PARSER[LANG_SHORT](plocale=glocale)
parser = LANG_TO_PARSER[LANG_SHORT](plocale=dlocale)
except:
logging.warning(
_("Date parser for '%s' not available, using default") % LANG)
parser = LANG_TO_PARSER["C"](plocale=glocale)
parser = LANG_TO_PARSER["C"](plocale=dlocale)
# Initialize global displayer
try:
@@ -92,13 +97,13 @@ except:
try:
if LANG in LANG_TO_DISPLAY:
displayer = LANG_TO_DISPLAY[LANG](val, blocale=glocale)
displayer = LANG_TO_DISPLAY[LANG](val, blocale=dlocale)
else:
displayer = LANG_TO_DISPLAY[LANG_SHORT](val, blocale=glocale)
displayer = LANG_TO_DISPLAY[LANG_SHORT](val, blocale=dlocale)
except:
logging.warning(
_("Date displayer for '%s' not available, using default") % LANG)
displayer = LANG_TO_DISPLAY["C"](val, blocale=glocale)
displayer = LANG_TO_DISPLAY["C"](val, blocale=dlocale)
# Import utility functions
+20
View File
@@ -50,6 +50,15 @@ class DateParserCZ(DateParser):
Converts a text string into a Date object
"""
quality_to_int = {
'přibližně' : Date.QUAL_ESTIMATED,
'odhadem' : Date.QUAL_ESTIMATED,
'odh.' : Date.QUAL_ESTIMATED,
'vypočteno' : Date.QUAL_CALCULATED,
'vypočtené' : Date.QUAL_CALCULATED,
'vyp.' : Date.QUAL_CALCULATED,
}
bce = ["před naším letopočtem", "před Kristem",
"př. n. l.", "př. Kr."] + DateParser.bce
@@ -58,6 +67,17 @@ class DateParserCZ(DateParser):
# bug 9739 grampslocale.py gets '%-d.%-m.%Y' -- makes it be '%/d.%/m.%Y'
self.dhformat = self.dhformat.replace('/', '') # so counteract that
def init_strings(self):
DateParser.init_strings(self)
self._text2 = re.compile(r'(\d+)?\.?\s+?%s\.?\s*((\d+)(/\d+)?)?\s*$'
% self._mon_str, re.IGNORECASE)
self._span = re.compile(
r"(od)\s+(?P<start>.+)\s+(do)\s+(?P<stop>.+)",
re.IGNORECASE)
self._range = re.compile(
r"(mezi)\s+(?P<start>.+)\s+(a)\s+(?P<stop>.+)",
re.IGNORECASE)
#-------------------------------------------------------------------------
#
# Czech display
+14 -1
View File
@@ -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:
+30 -30
View File
@@ -52,8 +52,8 @@ from ..utils.grampslocale import GrampsLocale
from ._datestrings import DateStrings
# _T_ is a gramps-defined keyword -- see po/update_po.py and po/genpot.sh
def _T_(value): # enable deferred translations (see Python docs 22.1.3.4)
return value
def _T_(value, context=''): # enable deferred translations
return "%s\x04%s" % (context, value) if context else value
#-------------------------------------------------------------------------
#
@@ -74,7 +74,7 @@ class DateDisplay:
# This should be the format that is used under the locale by
# strftime() for '%x'.
# You may translate this as "Numerical", "System preferred", or similar.
_T_("date format|Numerical"),
_T_("Numerical", "date format"),
# Full month name, day, year
_T_("Month Day, Year"),
@@ -186,7 +186,7 @@ class DateDisplay:
# language, translate this to "{long_month.f[X]} {year}"
# (where X is one of the month-name inflections you defined)
# else leave it untranslated
: _("from|{long_month} {year}"),
: _("{long_month} {year}", "from"),
"to"
# second date in a span
@@ -194,7 +194,7 @@ class DateDisplay:
# language, translate this to "{long_month.f[X]} {year}"
# (where X is one of the month-name inflections you defined)
# else leave it untranslated
: _("to|{long_month} {year}"),
: _("{long_month} {year}", "to"),
"between"
# first date in a range
@@ -202,7 +202,7 @@ class DateDisplay:
# language, translate this to "{long_month.f[X]} {year}"
# (where X is one of the month-name inflections you defined)
# else leave it untranslated
: _("between|{long_month} {year}"),
: _("{long_month} {year}", "between"),
"and"
# second date in a range
@@ -210,42 +210,42 @@ class DateDisplay:
# language, translate this to "{long_month.f[X]} {year}"
# (where X is one of the month-name inflections you defined)
# else leave it untranslated
: _("and|{long_month} {year}"),
: _("{long_month} {year}", "and"),
"before"
# If "before <Month>" needs a special inflection in your
# language, translate this to "{long_month.f[X]} {year}"
# (where X is one of the month-name inflections you defined)
# else leave it untranslated
: _("before|{long_month} {year}"),
: _("{long_month} {year}", "before"),
"after"
# If "after <Month>" needs a special inflection in your
# language, translate this to "{long_month.f[X]} {year}"
# (where X is one of the month-name inflections you defined)
# else leave it untranslated
: _("after|{long_month} {year}"),
: _("{long_month} {year}", "after"),
"about"
# If "about <Month>" needs a special inflection in your
# language, translate this to "{long_month.f[X]} {year}"
# (where X is one of the month-name inflections you defined)
# else leave it untranslated
: _("about|{long_month} {year}"),
: _("{long_month} {year}", "about"),
"estimated"
# If "estimated <Month>" needs a special inflection in your
# language, translate this to "{long_month.f[X]} {year}"
# (where X is one of the month-name inflections you defined)
# else leave it untranslated
: _("estimated|{long_month} {year}"),
: _("{long_month} {year}", "estimated"),
"calculated"
# If "calculated <Month>" needs a special inflection in your
# language, translate this to "{long_month.f[X]} {year}"
# (where X is one of the month-name inflections you defined)
# else leave it untranslated
: _("calculated|{long_month} {year}"),
: _("{long_month} {year}", "calculated"),
}
self.FORMATS_short_month_year = {
@@ -258,7 +258,7 @@ class DateDisplay:
# language, translate this to "{short_month.f[X]} {year}"
# (where X is one of the month-name inflections you defined)
# else leave it untranslated
: _("from|{short_month} {year}"),
: _("{short_month} {year}", "from"),
"to"
# second date in a span
@@ -266,7 +266,7 @@ class DateDisplay:
# language, translate this to "{short_month.f[X]} {year}"
# (where X is one of the month-name inflections you defined)
# else leave it untranslated
: _("to|{short_month} {year}"),
: _("{short_month} {year}", "to"),
"between"
# first date in a range
@@ -274,7 +274,7 @@ class DateDisplay:
# language, translate this to "{short_month.f[X]} {year}"
# (where X is one of the month-name inflections you defined)
# else leave it untranslated
: _("between|{short_month} {year}"),
: _("{short_month} {year}", "between"),
"and"
# second date in a range
@@ -282,42 +282,42 @@ class DateDisplay:
# language, translate this to "{short_month.f[X]} {year}"
# (where X is one of the month-name inflections you defined)
# else leave it untranslated
: _("and|{short_month} {year}"),
: _("{short_month} {year}", "and"),
"before"
# If "before <Month>" needs a special inflection in your
# language, translate this to "{short_month.f[X]} {year}"
# (where X is one of the month-name inflections you defined)
# else leave it untranslated
: _("before|{short_month} {year}"),
: _("{short_month} {year}", "before"),
"after"
# If "after <Month>" needs a special inflection in your
# language, translate this to "{short_month.f[X]} {year}"
# (where X is one of the month-name inflections you defined)
# else leave it untranslated
: _("after|{short_month} {year}"),
: _("{short_month} {year}", "after"),
"about"
# If "about <Month>" needs a special inflection in your
# language, translate this to "{short_month.f[X]} {year}"
# (where X is one of the month-name inflections you defined)
# else leave it untranslated
: _("about|{short_month} {year}"),
: _("{short_month} {year}", "about"),
"estimated"
# If "estimated <Month>" needs a special inflection in your
# language, translate this to "{short_month.f[X]} {year}"
# (where X is one of the month-name inflections you defined)
# else leave it untranslated
: _("estimated|{short_month} {year}"),
: _("{short_month} {year}", "estimated"),
"calculated"
# If "calculated <Month>" needs a special inflection in your
# language, translate this to "{short_month.f[X]} {year}"
# (where X is one of the month-name inflections you defined)
# else leave it untranslated
: _("calculated|{short_month} {year}"),
: _("{short_month} {year}", "calculated"),
}
def formats_changed(self):
@@ -424,12 +424,12 @@ class DateDisplay:
# If there is no special inflection for "from <Month>"
# in your language, DON'T translate this string. Otherwise,
# "translate" this to "from" in ENGLISH!!! ENGLISH!!!
inflect=self._("from-date|"))
inflect=self._("", "from-date"))
d2 = self.display_cal[cal](date.get_stop_date(),
# If there is no special inflection for "to <Month>"
# in your language, DON'T translate this string. Otherwise,
# "translate" this to "to" in ENGLISH!!! ENGLISH!!!
inflect=self._("to-date|"))
inflect=self._("", "to-date"))
return self._("{date_quality}from {date_start} to {date_stop}"
"{nonstd_calendar_and_ny}").format(
date_quality=qual_str,
@@ -449,12 +449,12 @@ class DateDisplay:
# If there is no special inflection for "between <Month>"
# in your language, DON'T translate this string. Otherwise,
# "translate" this to "between" in ENGLISH!!! ENGLISH!!!
inflect=self._("between-date|"))
inflect=self._("", "between-date"))
d2 = self.display_cal[cal](date.get_stop_date(),
# If there is no special inflection for "and <Month>"
# in your language, DON'T translate this string. Otherwise,
# "translate" this to "and" in ENGLISH!!! ENGLISH!!!
inflect=self._("and-date|"))
inflect=self._("", "and-date"))
return self._("{date_quality}between {date_start} and {date_stop}"
"{nonstd_calendar_and_ny}").format(
date_quality=qual_str,
@@ -488,27 +488,27 @@ class DateDisplay:
# If there is no special inflection for "before <Month>"
# in your language, DON'T translate this string. Otherwise,
# "translate" this to "before" in ENGLISH!!! ENGLISH!!!
date_type = _("before-date|")
date_type = _("", "before-date")
elif mod == Date.MOD_AFTER:
# If there is no special inflection for "after <Month>"
# in your language, DON'T translate this string. Otherwise,
# "translate" this to "after" in ENGLISH!!! ENGLISH!!!
date_type = _("after-date|")
date_type = _("", "after-date")
elif mod == Date.MOD_ABOUT:
# If there is no special inflection for "about <Month>"
# in your language, DON'T translate this string. Otherwise,
# "translate" this to "about" in ENGLISH!!! ENGLISH!!!
date_type = _("about-date|")
date_type = _("", "about-date")
elif qual == Date.QUAL_ESTIMATED:
# If there is no special inflection for "estimated <Month>"
# in your language, DON'T translate this string. Otherwise,
# "translate" this to "estimated" in ENGLISH!!! ENGLISH!!!
date_type = _("estimated-date|")
date_type = _("", "estimated-date")
elif qual == Date.QUAL_CALCULATED:
# If there is no special inflection for "calculated <Month>"
# in your language, DON'T translate this string. Otherwise,
# "translate" this to "calculated" in ENGLISH!!! ENGLISH!!!
date_type = _("calculated-date|")
date_type = _("", "calculated-date")
else:
date_type = ""
# TODO -- do "estimated" and "calculated" need their own "if"?
+98 -98
View File
@@ -76,36 +76,36 @@ class DateStrings:
# http://gramps-project.org/wiki/index.php?title=Translating_Gramps#Translating_dates
# to learn how to select proper inflection to be used in your localized
# DateDisplayer code!
_("localized lexeme inflections||January"),
_("localized lexeme inflections||February"),
_("localized lexeme inflections||March"),
_("localized lexeme inflections||April"),
_("localized lexeme inflections||May"),
_("localized lexeme inflections||June"),
_("localized lexeme inflections||July"),
_("localized lexeme inflections||August"),
_("localized lexeme inflections||September"),
_("localized lexeme inflections||October"),
_("localized lexeme inflections||November"),
_("localized lexeme inflections||December") )
_("|January", "localized lexeme inflections"),
_("|February", "localized lexeme inflections"),
_("|March", "localized lexeme inflections"),
_("|April", "localized lexeme inflections"),
_("|May", "localized lexeme inflections"),
_("|June", "localized lexeme inflections"),
_("|July", "localized lexeme inflections"),
_("|August", "localized lexeme inflections"),
_("|September", "localized lexeme inflections"),
_("|October", "localized lexeme inflections"),
_("|November", "localized lexeme inflections"),
_("|December", "localized lexeme inflections") )
self.short_months = ( "",
# TRANSLATORS: see
# http://gramps-project.org/wiki/index.php?title=Translating_Gramps#Translating_dates
# to learn how to select proper inflection to be used in your localized
# DateDisplayer code!
_("localized lexeme inflections - short month form||Jan"),
_("localized lexeme inflections - short month form||Feb"),
_("localized lexeme inflections - short month form||Mar"),
_("localized lexeme inflections - short month form||Apr"),
_("localized lexeme inflections - short month form||May"),
_("localized lexeme inflections - short month form||Jun"),
_("localized lexeme inflections - short month form||Jul"),
_("localized lexeme inflections - short month form||Aug"),
_("localized lexeme inflections - short month form||Sep"),
_("localized lexeme inflections - short month form||Oct"),
_("localized lexeme inflections - short month form||Nov"),
_("localized lexeme inflections - short month form||Dec") )
_("|Jan", "localized lexeme inflections - short month form"),
_("|Feb", "localized lexeme inflections - short month form"),
_("|Mar", "localized lexeme inflections - short month form"),
_("|Apr", "localized lexeme inflections - short month form"),
_("|May", "localized lexeme inflections - short month form"),
_("|Jun", "localized lexeme inflections - short month form"),
_("|Jul", "localized lexeme inflections - short month form"),
_("|Aug", "localized lexeme inflections - short month form"),
_("|Sep", "localized lexeme inflections - short month form"),
_("|Oct", "localized lexeme inflections - short month form"),
_("|Nov", "localized lexeme inflections - short month form"),
_("|Dec", "localized lexeme inflections - short month form") )
_ = locale.translation.sgettext
self.alt_long_months = ( "",
@@ -113,28 +113,28 @@ class DateStrings:
# http://gramps-project.org/wiki/index.php?title=Translating_Gramps#Translating_dates
# to learn how to add proper alternatives to be recognized in your localized
# DateParser code!
_("alternative month names for January||"),
_("alternative month names for February||"),
_("alternative month names for March||"),
_("alternative month names for April||"),
_("alternative month names for May||"),
_("alternative month names for June||"),
_("alternative month names for July||"),
_("alternative month names for August||"),
_("alternative month names for September||"),
_("alternative month names for October||"),
_("alternative month names for November||"),
_("alternative month names for December||") )
_("|", "alternative month names for January"),
_("|", "alternative month names for February"),
_("|", "alternative month names for March"),
_("|", "alternative month names for April"),
_("|", "alternative month names for May"),
_("|", "alternative month names for June"),
_("|", "alternative month names for July"),
_("|", "alternative month names for August"),
_("|", "alternative month names for September"),
_("|", "alternative month names for October"),
_("|", "alternative month names for November"),
_("|", "alternative month names for December") )
self.calendar = (
# Must appear in the order indexed by Date.CAL_... numeric constants
_("calendar|Gregorian"),
_("calendar|Julian"),
_("calendar|Hebrew"),
_("calendar|French Republican"),
_("calendar|Persian"),
_("calendar|Islamic"),
_("calendar|Swedish") )
_("Gregorian", "calendar"),
_("Julian", "calendar"),
_("Hebrew", "calendar"),
_("French Republican", "calendar"),
_("Persian", "calendar"),
_("Islamic", "calendar"),
_("Swedish", "calendar") )
_ = locale.translation.lexgettext
self.hebrew = (
@@ -143,19 +143,19 @@ class DateStrings:
# http://gramps-project.org/wiki/index.php?title=Translating_Gramps#Translating_dates
# to learn how to select proper inflection to be used in your localized
# DateDisplayer code!
_("Hebrew month lexeme|Tishri"),
_("Hebrew month lexeme|Heshvan"),
_("Hebrew month lexeme|Kislev"),
_("Hebrew month lexeme|Tevet"),
_("Hebrew month lexeme|Shevat"),
_("Hebrew month lexeme|AdarI"),
_("Hebrew month lexeme|AdarII"),
_("Hebrew month lexeme|Nisan"),
_("Hebrew month lexeme|Iyyar"),
_("Hebrew month lexeme|Sivan"),
_("Hebrew month lexeme|Tammuz"),
_("Hebrew month lexeme|Av"),
_("Hebrew month lexeme|Elul")
_("Tishri", "Hebrew month lexeme"),
_("Heshvan", "Hebrew month lexeme"),
_("Kislev", "Hebrew month lexeme"),
_("Tevet", "Hebrew month lexeme"),
_("Shevat", "Hebrew month lexeme"),
_("AdarI", "Hebrew month lexeme"),
_("AdarII", "Hebrew month lexeme"),
_("Nisan", "Hebrew month lexeme"),
_("Iyyar", "Hebrew month lexeme"),
_("Sivan", "Hebrew month lexeme"),
_("Tammuz", "Hebrew month lexeme"),
_("Av", "Hebrew month lexeme"),
_("Elul", "Hebrew month lexeme")
)
self.french = (
@@ -164,19 +164,19 @@ class DateStrings:
# http://gramps-project.org/wiki/index.php?title=Translating_Gramps#Translating_dates
# to learn how to select proper inflection to be used in your localized
# DateDisplayer code!
_("French month lexeme|Vendémiaire"),
_("French month lexeme|Brumaire"),
_("French month lexeme|Frimaire"),
_("French month lexeme|Nivôse"),
_("French month lexeme|Pluviôse"),
_("French month lexeme|Ventôse"),
_("French month lexeme|Germinal"),
_("French month lexeme|Floréal"),
_("French month lexeme|Prairial"),
_("French month lexeme|Messidor"),
_("French month lexeme|Thermidor"),
_("French month lexeme|Fructidor"),
_("French month lexeme|Extra"),
_("Vendémiaire", "French month lexeme"),
_("Brumaire", "French month lexeme"),
_("Frimaire", "French month lexeme"),
_("Nivôse", "French month lexeme"),
_("Pluviôse", "French month lexeme"),
_("Ventôse", "French month lexeme"),
_("Germinal", "French month lexeme"),
_("Floréal", "French month lexeme"),
_("Prairial", "French month lexeme"),
_("Messidor", "French month lexeme"),
_("Thermidor", "French month lexeme"),
_("Fructidor", "French month lexeme"),
_("Extra", "French month lexeme"),
)
self.islamic = (
@@ -185,18 +185,18 @@ class DateStrings:
# http://gramps-project.org/wiki/index.php?title=Translating_Gramps#Translating_dates
# to learn how to select proper inflection to be used in your localized
# DateDisplayer code!
_("Islamic month lexeme|Muharram"),
_("Islamic month lexeme|Safar"),
_("Islamic month lexeme|Rabi`al-Awwal"),
_("Islamic month lexeme|Rabi`ath-Thani"),
_("Islamic month lexeme|Jumada l-Ula"),
_("Islamic month lexeme|Jumada t-Tania"),
_("Islamic month lexeme|Rajab"),
_("Islamic month lexeme|Sha`ban"),
_("Islamic month lexeme|Ramadan"),
_("Islamic month lexeme|Shawwal"),
_("Islamic month lexeme|Dhu l-Qa`da"),
_("Islamic month lexeme|Dhu l-Hijja"),
_("Muharram", "Islamic month lexeme"),
_("Safar", "Islamic month lexeme"),
_("Rabi`al-Awwal", "Islamic month lexeme"),
_("Rabi`ath-Thani", "Islamic month lexeme"),
_("Jumada l-Ula", "Islamic month lexeme"),
_("Jumada t-Tania", "Islamic month lexeme"),
_("Rajab", "Islamic month lexeme"),
_("Sha`ban", "Islamic month lexeme"),
_("Ramadan", "Islamic month lexeme"),
_("Shawwal", "Islamic month lexeme"),
_("Dhu l-Qa`da", "Islamic month lexeme"),
_("Dhu l-Hijja", "Islamic month lexeme"),
)
self.persian = (
@@ -205,35 +205,35 @@ class DateStrings:
# http://gramps-project.org/wiki/index.php?title=Translating_Gramps#Translating_dates
# to learn how to select proper inflection to be used in your localized
# DateDisplayer code!
_("Persian month lexeme|Farvardin"),
_("Persian month lexeme|Ordibehesht"),
_("Persian month lexeme|Khordad"),
_("Persian month lexeme|Tir"),
_("Persian month lexeme|Mordad"),
_("Persian month lexeme|Shahrivar"),
_("Persian month lexeme|Mehr"),
_("Persian month lexeme|Aban"),
_("Persian month lexeme|Azar"),
_("Persian month lexeme|Dey"),
_("Persian month lexeme|Bahman"),
_("Persian month lexeme|Esfand"),
_("Farvardin", "Persian month lexeme"),
_("Ordibehesht", "Persian month lexeme"),
_("Khordad", "Persian month lexeme"),
_("Tir", "Persian month lexeme"),
_("Mordad", "Persian month lexeme"),
_("Shahrivar", "Persian month lexeme"),
_("Mehr", "Persian month lexeme"),
_("Aban", "Persian month lexeme"),
_("Azar", "Persian month lexeme"),
_("Dey", "Persian month lexeme"),
_("Bahman", "Persian month lexeme"),
_("Esfand", "Persian month lexeme"),
)
self.modifiers = ("",
# TRANSLATORS: if the modifier is after the date
# put the space ahead of the word instead of after it
_("date modifier|before "),
_("before ", "date modifier"),
# TRANSLATORS: if the modifier is after the date
# put the space ahead of the word instead of after it
_("date modifier|after "),
_("after ", "date modifier"),
# TRANSLATORS: if the modifier is after the date
# put the space ahead of the word instead of after it
_("date modifier|about "),
_("about ", "date modifier"),
"", "", "")
self.qualifiers = ("",
_("date quality|estimated "),
_("date quality|calculated "),
_("estimated ", "date quality"),
_("calculated ", "date quality"),
)
# 6753: localized day names. Eventually should sprout into
+9 -1
View File
@@ -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.
@@ -757,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.
+29 -194
View File
@@ -122,121 +122,6 @@ class DbPythonError(Exception):
'min_vers': self.min_vers,
'max_vers': self.max_vers}
class BsddbDowngradeError(Exception):
"""
Error used to report that the Berkeley database used to create the family
tree is of a version that is too new to be supported by the current version.
"""
def __init__(self, env_version, bdb_version):
Exception.__init__(self)
self.env_version = str(env_version)
self.bdb_version = str(bdb_version)
def __str__(self):
return _('The Family Tree you are trying to load is in the Bsddb '
'version %(env_version)s format. This version of Gramps uses '
'Bsddb version %(bdb_version)s. So you are trying to load '
'data created in a newer format into an older program, and '
'this is bound to fail.\n\n'
'You should start your '
'%(bold_start)snewer%(bold_end)s version of Gramps and '
'%(wiki_backup_html_start)smake a backup%(html_end)s '
'of your Family Tree. You can then import '
'this backup into this version of Gramps.') % {
'wiki_backup_html_start' : URL_BACKUP1_START ,
'html_end' : '</a>' ,
'bold_start' : '<b>' ,
'bold_end' : '</b>' ,
'env_version' : self.env_version,
'bdb_version' : self.bdb_version }
class BsddbDowngradeRequiredError(Exception):
"""
Error used to report that the Berkeley database used to create the family
tree is of a version that is newer than the current version, but it may be
possible to open the tree, because the difference is only a point upgrade
(i.e. a difference in the last digit of the version tuple).
"""
def __init__(self, env_version, bdb_version):
Exception.__init__(self)
self.env_version = str(env_version)
self.bdb_version = str(bdb_version)
def __str__(self):
return _('The Family Tree you are trying to load is in the Bsddb '
'version %(env_version)s format. This version of Gramps uses '
'Bsddb version %(bdb_version)s. So you are trying to load '
'data created in a newer format into an older program. In '
'this particular case, the difference is very small, so it '
'may work.\n\n'
'If you have not already made a backup of your Family Tree, '
'then you should start your '
'%(bold_start)snewer%(bold_end)s version of Gramps and '
'%(wiki_backup_html_start)smake a backup%(html_end)s '
'of your Family Tree.') % {
'wiki_backup_html_start' : URL_BACKUP1_START ,
'html_end' : '</a>' ,
'bold_start' : '<b>' ,
'bold_end' : '</b>' ,
'env_version' : self.env_version,
'bdb_version' : self.bdb_version }
class BsddbUpgradeRequiredError(Exception):
"""
Error used to report that the Berkeley database used to create the family
tree is of a version that is too new to be supported by the current version.
"""
def __init__(self, env_version, bsddb_version):
Exception.__init__(self)
self.env_version = str(env_version)
self.bsddb_version = str(bsddb_version)
def __str__(self):
return _('The Family Tree you are trying to load is in the Bsddb '
'version %(env_version)s format. This version of Gramps uses '
'Bsddb version %(bdb_version)s. Therefore you cannot load '
'this Family Tree without upgrading the Bsddb version of the '
'Family Tree.\n\n'
'Opening the Family Tree with this version of Gramps might '
'irretrievably corrupt your Family Tree. You are strongly '
'advised to backup your Family Tree.\n\n'
'If you have not already made a backup of your Family Tree, '
'then you should start your %(bold_start)sold%(bold_end)s '
'version of Gramps and '
'%(wiki_backup_html_start)smake a backup%(html_end)s '
'of your Family Tree.') % {
'wiki_backup_html_start' : URL_BACKUP1_START ,
'html_end' : '</a>' ,
'bold_start' : '<b>' ,
'bold_end' : '</b>' ,
'env_version' : self.env_version,
'bdb_version' : self.bsddb_version }
class DbEnvironmentError(Exception):
"""
Error used to report that the database 'environment' could not be opened.
Most likely, the database was created by a different version of the underlying database engine.
"""
def __init__(self, msg):
Exception.__init__(self)
self.msg = msg
def __str__(self):
return (_("Gramps has detected a problem in opening the 'environment' "
"of the underlying Berkeley database used to store this "
"Family Tree. The most likely cause "
"is that the database was created with an old version "
"of the Berkeley database program, "
"and you are now using a new version. "
"It is quite likely that your database has not been "
"changed by Gramps.\nIf possible, you should revert to your "
"old version of Gramps and its support software; export "
"your database to XML; close the database; "
"then upgrade again "
"to this version of Gramps and import the XML file "
"in an empty Family Tree. Alternatively, it may be possible "
"to use the Berkeley database recovery tools.")
+ '\n\n' + str(self.msg))
class DbUpgradeRequiredError(Exception):
"""
@@ -275,73 +160,6 @@ class DbUpgradeRequiredError(Exception):
'oldschema' : self.oldschema,
'newschema' : self.newschema }
class PythonDowngradeError(Exception):
"""
Error used to report that the Python version used to create the family tree
(i.e. Python3) is a version that is newer than the current version
(i.e. Python2), so the Family Tree cannot be opened
"""
def __init__(self, db_python_version, current_python_version):
Exception.__init__(self)
self.db_python_version = str(db_python_version)
self.current_python_version = str(current_python_version)
def __str__(self):
return _('The Family Tree you are trying to load was created with '
'Python version %(db_python_version)s. This version of Gramps '
'uses Python version %(current_python_version)s. So you are '
'trying to load '
'data created in a newer format into an older program, and '
'this is bound to fail.\n\n'
'You should start your '
'%(bold_start)snewer%(bold_end)s version of Gramps and '
'%(wiki_backup_html_start)smake a backup%(html_end)s '
'of your Family Tree. You can then import '
'this backup into this version of Gramps.') % {
'wiki_backup_html_start' : URL_BACKUP1_START ,
'html_end' : '</a>' ,
'bold_start' : '<b>' ,
'bold_end' : '</b>' ,
'db_python_version': self.db_python_version,
'current_python_version': self.current_python_version }
class PythonUpgradeRequiredError(Exception):
"""
Error used to report that the Python version used to create the family tree
(i.e. Python2) is earlier than the current Python version (i.e. Python3), so
the Family Tree needs to be upgraded.
"""
def __init__(self, db_python_version, current_python_version):
Exception.__init__(self)
self.db_python_version = str(db_python_version)
self.current_python_version = str(current_python_version)
def __str__(self):
return _('The Family Tree you are trying to load is in the Python '
'version %(db_python_version)s format. This version of Gramps '
'uses Python version %(current_python_version)s. Therefore '
'you cannot load this Family Tree without upgrading the '
'Python version of the Family Tree.\n\n'
'If you upgrade then you won\'t be able to use the previous '
'version of Gramps, even if you subsequently '
'%(wiki_manual_backup_html_start)sbackup%(html_end)s or '
'%(wiki_manual_export_html_start)sexport%(html_end)s '
'your upgraded Family Tree.\n\n'
'Upgrading is a difficult task which could irretrievably '
'corrupt your Family Tree if it is interrupted or fails.\n\n'
'If you have not already made a backup of your Family Tree, '
'then you should start your %(bold_start)sold%(bold_end)s '
'version of Gramps and '
'%(wiki_backup_html_start)smake a backup%(html_end)s '
'of your Family Tree.') % {
'wiki_backup_html_start' : URL_BACKUP1_START ,
'wiki_manual_backup_html_start' : URL_BACKUP2_START ,
'wiki_manual_export_html_start' : URL_EXPORT_START ,
'html_end' : '</a>' ,
'bold_start' : '<b>' ,
'bold_end' : '</b>' ,
'db_python_version': self.db_python_version,
'current_python_version': self.current_python_version }
class DbConnectionError(Exception):
"""
@@ -360,6 +178,35 @@ class DbConnectionError(Exception):
'message': self.msg,
'settings_file': self.settings_file}
class DbSupportedError(Exception):
"""
Error used to report that a database is no longer supported.
"""
def __init__(self, msg):
Exception.__init__(self)
self.msg = msg
def __str__(self):
return _('The Family Tree you are trying to load is in the %(dbtype)s '
'database, which is no longer supported.\nTherefore you '
'cannot load this Family Tree without upgrading.\n\n'
'If you upgrade then you won\'t be able to use the previous '
'version of Gramps, even if you subsequently '
'%(wiki_manual_backup_html_start)sbackup%(html_end)s or '
'%(wiki_manual_export_html_start)sexport%(html_end)s '
'your upgraded Family Tree.\n\n'
'You are strongly advised to backup your Family Tree.\n\n'
'If you have not already made a backup of your Family Tree, '
'then you should start your previous version of Gramps and '
'%(wiki_backup_html_start)smake a backup%(html_end)s '
'of your Family Tree.') % {
'dbtype' : self.msg,
'wiki_manual_backup_html_start' : URL_BACKUP2_START ,
'wiki_manual_export_html_start' : URL_EXPORT_START ,
'wiki_backup_html_start' : URL_BACKUP1_START ,
'html_end' : '</a>'}
if __name__ == "__main__":
"""
Call this from the CLI (in order to find the imported modules):
@@ -370,20 +217,8 @@ if __name__ == "__main__":
print("\nDbVersionError:\n",
DbVersionError('1.6.0', '1.5.0', '1.5.1'))
print("\nBsddbDowngradeError:\n",
BsddbDowngradeError('4.8.30', '4.8.29'))
print("\nBsddbDowngradeRequiredError:\n",
BsddbDowngradeRequiredError('4.8.30', '4.8.29'))
print("\nBsddbUpgradeRequiredError:\n",
BsddbUpgradeRequiredError('4.8.29', '4.8.30'))
print("\nDbEnvironmentError:\n",
DbEnvironmentError('test message'))
print("\nDbUpgradeRequiredError:\n",
DbUpgradeRequiredError('1.5.1', '1.6.0'))
print("\nPythonDowngradeError:\n",
PythonDowngradeError('3', '2'))
print("\nPythonUpgradeRequiredError:\n",
PythonUpgradeRequiredError('2', '3'))
sys.exit(0)
print("\nxxx:\n",
+64 -4
View File
@@ -47,6 +47,7 @@ from . import (DbReadBase, DbWriteBase, DbUndo, DBLOGNAME, DBUNDOFN,
REPOSITORY_KEY, NOTE_KEY, TAG_KEY, TXNADD, TXNUPD, TXNDEL,
KEY_TO_NAME_MAP, DBMODE_R, DBMODE_W)
from .utils import write_lock_file, clear_lock_file
from .exceptions import DbVersionError, DbUpgradeRequiredError
from ..errors import HandleError
from ..utils.callback import Callback
from ..updatecallback import UpdateCallback
@@ -311,7 +312,7 @@ class DbGeneric(DbWriteBase, DbReadBase, UpdateCallback, Callback):
__callback_map = {}
VERSION = (18, 0, 0)
VERSION = (20, 0, 0)
def __init__(self, directory=None):
DbReadBase.__init__(self)
@@ -534,9 +535,9 @@ class DbGeneric(DbWriteBase, DbReadBase, UpdateCallback, Callback):
self.undo_history_callback = None
self.modified = 0
self.transaction = None
self.abort_possible = False
self.abort_possible = True
self._bm_changes = 0
self.has_changed = False
self.has_changed = 0 # Also gives commits since startup
self.surname_list = []
self.genderStats = GenderStats() # can pass in loaded stats as dict
self.owner = Researcher()
@@ -659,6 +660,21 @@ class DbGeneric(DbWriteBase, DbReadBase, UpdateCallback, Callback):
self.db_is_open = True
# Check on db version to see if we need upgrade or too new
dbversion = int(self._get_metadata('version', default='0'))
if dbversion > self.VERSION[0]:
self.close()
raise DbVersionError(dbversion, 18, self.VERSION[0])
if not self.readonly and dbversion < self.VERSION[0]:
LOG.debug("Schema upgrade required from %s to %s",
dbversion, self.VERSION[0])
if force_schema_upgrade:
self._gramps_upgrade(dbversion, directory, callback)
else:
self.close()
raise DbUpgradeRequiredError(dbversion, self.VERSION[0])
def _close(self):
"""
Close database backend.
@@ -757,7 +773,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))
@@ -2463,3 +2479,47 @@ class DbGeneric(DbWriteBase, DbReadBase, UpdateCallback, Callback):
enclosed_by = placeref.ref
break
return enclosed_by
def _gramps_upgrade(self, version, directory, callback=None):
"""
Here we do the calls for stepwise schema upgrades.
We assume that we need to rebuild secondary and reference maps.
"""
UpdateCallback.__init__(self, callback)
start = time.time()
from gramps.gen.db.upgrade import (
gramps_upgrade_14, gramps_upgrade_15, gramps_upgrade_16,
gramps_upgrade_17, gramps_upgrade_18, gramps_upgrade_19,
gramps_upgrade_20)
if version < 14:
gramps_upgrade_14(self)
if version < 15:
gramps_upgrade_15(self)
if version < 16:
gramps_upgrade_16(self)
if version < 17:
gramps_upgrade_17(self)
if version < 18:
gramps_upgrade_18(self)
if version < 19:
gramps_upgrade_19(self)
if version < 20:
gramps_upgrade_20(self)
self.rebuild_secondary(callback)
self.reindex_reference_map(callback)
self.reset()
self.set_schema_version(self.VERSION[0])
LOG.debug("Upgrade time: %d seconds" % int(time.time() - start))
def get_schema_version(self):
""" Return current schema version as an int """
return int(self._get_metadata('version', default='0'))
def set_schema_version(self, value):
""" set the current schema version """
self._set_metadata('version', str(value))
File diff suppressed because it is too large Load Diff
+10 -10
View File
@@ -599,7 +599,7 @@ class NameDisplay:
# called to fill in each format flag.
# Dictionary is "code": ("expression", "keyword", "i18n-keyword")
d = {"t": ("raw_data[_TITLE]", "title",
_("Person|title")),
_("title", "Person")),
"f": ("raw_data[_FIRSTNAME]", "given",
_("given")),
"l": ("_raw_full_surname(raw_data[_SURNAME_LIST])", "surname",
@@ -607,17 +607,17 @@ class NameDisplay:
"s": ("raw_data[_SUFFIX]", "suffix",
_("suffix")),
"c": ("raw_data[_CALL]", "call",
_("Name|call")),
_("call", "Name")),
"x": ("(raw_data[_NICK] or raw_data[_CALL] or raw_data[_FIRSTNAME].split(' ')[0])",
"common",
_("Name|common")),
_("common", "Name")),
"i": ("''.join([word[0] +'.' for word in ('. ' +" +
" raw_data[_FIRSTNAME]).split()][1:])",
"initials",
_("initials")),
"m": ("_raw_primary_surname(raw_data[_SURNAME_LIST])",
"primary",
_("Name|primary")),
_("primary", "Name")),
"0m": ("_raw_primary_prefix_only(raw_data[_SURNAME_LIST])",
"primary[pre]",
_("primary[pre]")),
@@ -639,7 +639,7 @@ class NameDisplay:
_("notpatronymic")),
"r": ("_raw_nonprimary_surname(raw_data[_SURNAME_LIST])",
"rest",
_("Remaining names|rest")),
_("rest", "Remaining names")),
"p": ("_raw_prefix_surname(raw_data[_SURNAME_LIST])",
"prefix",
_("prefix")),
@@ -699,7 +699,7 @@ class NameDisplay:
# called to fill in each format flag.
# Dictionary is "code": ("expression", "keyword", "i18n-keyword")
d = {"t": ("title", "title",
_("Person|title")),
_("title", "Person")),
"f": ("first", "given",
_("given")),
"l": ("_raw_full_surname(raw_surname_list)", "surname",
@@ -707,14 +707,14 @@ class NameDisplay:
"s": ("suffix", "suffix",
_("suffix")),
"c": ("call", "call",
_("Name|call")),
_("call", "Name")),
"x": ("(nick or call or first.split(' ')[0])", "common",
_("Name|common")),
_("common", "Name")),
"i": ("''.join([word[0] +'.' for word in ('. ' + first).split()][1:])",
"initials",
_("initials")),
"m": ("_raw_primary_surname(raw_surname_list)", "primary",
_("Name|primary")),
_("primary", "Name")),
"0m":("_raw_primary_prefix_only(raw_surname_list)",
"primary[pre]", _("primary[pre]")),
"1m":("_raw_primary_surname_only(raw_surname_list)",
@@ -732,7 +732,7 @@ class NameDisplay:
"o": ("_raw_nonpatro_surname(raw_surname_list)", "notpatronymic",
_("notpatronymic")),
"r": ("_raw_nonprimary_surname(raw_surname_list)", "rest",
_("Remaining names|rest")),
_("rest", "Remaining names")),
"p": ("_raw_prefix_surname(raw_surname_list)", "prefix",
_("prefix")),
"q": ("_raw_single_surname(raw_surname_list)", "rawsurnames",
@@ -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,
@@ -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")
@@ -29,6 +29,7 @@ from ._disconnected import Disconnected
from ._everyone import Everyone
from ._familywithincompleteevent import FamilyWithIncompleteEvent
from ._hasaddress import HasAddress
from ._hasaddresstext import HasAddressText
from ._hasalternatename import HasAlternateName
from ._hasassociation import HasAssociation
from ._hasattribute import HasAttribute
@@ -125,6 +126,7 @@ editor_rule_list = [
IsBookmarked,
HasAlternateName,
HasAddress,
HasAddressText,
HasAssociation,
HasIdOf,
HasLDS,
@@ -0,0 +1,54 @@
#
# Gramps - a GTK+/GNOME based genealogy program
#
# Copyright (C) 2008 Brian G. Matherly
# Copyright (C) 2008 Jerome Rapinat
# Copyright (C) 2008 Benny Malengier
#
# 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.
#
# -------------------------------------------------------------------------
#
# Gramps modules
#
# -------------------------------------------------------------------------
from .. import Rule
from ....const import GRAMPS_LOCALE as glocale
_ = glocale.translation.gettext
# -------------------------------------------------------------------------
#
# HasAddressText
#
# -------------------------------------------------------------------------
class HasAddressText(Rule):
"""Rule that checks for text in personal addresses"""
labels = [_('Text:')]
name = _('People with an address containing <text>')
description = _("Matches people with a personal address containing "
"the given text")
category = _('General filters')
allow_regex = True
def apply(self, db, person):
for address in person.get_address_list():
for string in address.get_text_data_list():
if self.match_substring(0, string):
return True
return False
@@ -45,7 +45,7 @@ class HasNameOf(Rule):
labels = [_('Given name:'),
_('Full Family name:'),
_('person|Title:'),
_('Title:', 'person'),
_('Suffix:'),
_('Call Name:'),
_('Nick Name:'),
@@ -41,9 +41,9 @@ from .. import Rule
class IsDefaultPerson(Rule):
"""Rule that checks for a default person in the database"""
name = _('Default person')
name = _('Home Person')
category = _('General filters')
description = _("Matches the default person")
description = _("Matches the Home Person")
def prepare(self, db, user):
p = db.get_default_person()
@@ -44,10 +44,10 @@ class IsLessThanNthGenerationAncestorOfDefaultPerson(Rule):
not more than N generations away"""
labels = [ _('Number of generations:') ]
name = _('Ancestors of the default person '
name = _('Ancestors of the Home Person '
'not more than <N> generations away')
category = _('Ancestral filters')
description = _("Matches ancestors of the default person "
description = _("Matches ancestors of the Home Person "
"not more than N generations away")
def prepare(self, db, user):
@@ -37,10 +37,10 @@ import re
# Gramps modules
#
#-------------------------------------------------------------------------
from gramps.gen.errors import FilterError
from ....const import GRAMPS_LOCALE as glocale
from .. import Rule
from ....utils.place import conv_lat_lon
from gramps.gen.errors import FilterError
_ = glocale.translation.sgettext
@@ -81,13 +81,13 @@ class WithinArea(Rule):
"D.D8")
if self.latitude is None or self.longitude is None:
raise FilterError(_("Cannot use the filter 'within area'"),
_("The place you selected contains bad coordinates. "
"Please, run the tool 'clean input data'"))
return
_("The place you selected contains bad"
" coordinates. Please, run the tool "
"'clean input data'"))
val = self.list[1]
if isinstance(val, str):
val = re.sub(r"\D", "", val) # suppress all alpha characters
val = re.sub(r"\D", "", val) # suppress all alpha characters
value = int(val)
unit = int(self.list[2])
# earth perimeter in kilometers for latitude
@@ -25,6 +25,7 @@ Package providing filter rules for Gramps.
from ._allrepos import AllRepos
from ._hasidof import HasIdOf
from ._regexpidof import RegExpIdOf
from ._hasattribute import HasAttribute
from ._hasnoteregexp import HasNoteRegexp
from ._hasnotematchingsubstringof import HasNoteMatchingSubstringOf
from ._hasreferencecountof import HasReferenceCountOf
@@ -37,6 +38,7 @@ from ._hastag import HasTag
editor_rule_list = [
AllRepos,
HasAttribute,
HasIdOf,
RegExpIdOf,
HasNoteRegexp,
@@ -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 repository with a particular attribute"""
labels = [_('Repository attribute:'), _('Value:')]
name = _('Repositories with the attribute <attribute>')
description = _("Matches repositories with the attribute "
"of a particular value")
@@ -43,7 +43,7 @@ class HasRepo(Rule):
"""Rule that checks for a repo with a particular value"""
labels = [ _('repo|Name:'),
labels = [ _('Name:', 'repo'),
_('Type:'),
_('Address:'),
_('URL:'),
@@ -27,6 +27,7 @@ Package providing filter rules for Gramps.
from .._hassourcebase import HasSourceBase as HasSource
from ._allsources import AllSources
from ._hasattribute import HasAttribute
from ._hasgallery import HasGallery
from ._hasidof import HasIdOf
from ._regexpidof import RegExpIdOf
@@ -45,6 +46,7 @@ from ._hastag import HasTag
editor_rule_list = [
AllSources,
HasAttribute,
HasGallery,
HasIdOf,
RegExpIdOf,
@@ -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 source with a particular attribute"""
labels = [_('Source attribute:'), _('Value:')]
name = _('Sources with the attribute <attribute>')
description = _("Matches sources with the attribute "
"of a particular value")
+2 -2
View File
@@ -33,8 +33,8 @@ from ..const import GRAMPS_LOCALE as glocale
_ = glocale.translation.gettext
# _T_ is a gramps-defined keyword -- see po/update_po.py and po/genpot.sh
def _T_(value): # enable deferred translations (see Python docs 22.1.3.4)
return value
def _T_(value, context=''): # enable deferred translations
return "%s\x04%s" % (context, value) if context else value
class AttributeType(GrampsType):
+14 -14
View File
@@ -287,7 +287,7 @@ class Span:
elif self.date2.get_modifier() == Date.MOD_AFTER:
_repr = trans_text("less than") + " " + fdate12
elif self.date2.get_modifier() == Date.MOD_ABOUT:
_repr = trans_text("age|about") + " " + fdate12p1
_repr = trans_text("about", "age") + " " + fdate12p1
elif self.date2.is_compound():
start, stop = self.date2.get_start_stop_range()
start = Date(*start)
@@ -322,15 +322,15 @@ class Span:
_repr = trans_text("more than") + " " + fdate12
elif self.date1.get_modifier() == Date.MOD_ABOUT:
if self.date2.get_modifier() == Date.MOD_NONE:
_repr = trans_text("age|about") + " " + fdate12p1
_repr = trans_text("about", "age") + " " + fdate12p1
elif self.date2.get_modifier() == Date.MOD_BEFORE:
_repr = trans_text("more than about") + " " + fdate12p1
elif self.date2.get_modifier() == Date.MOD_AFTER:
_repr = trans_text("less than about") + " " + fdate12p1
elif self.date2.get_modifier() == Date.MOD_ABOUT:
_repr = trans_text("age|about") + " " + fdate12p1
_repr = trans_text("about", "age") + " " + fdate12p1
elif self.date2.is_compound():
_repr = trans_text("age|about") + " " + fdate12p1
_repr = trans_text("about", "age") + " " + fdate12p1
elif self.date1.is_compound():
if self.date2.get_modifier() == Date.MOD_NONE:
start, stop = self.date1.get_start_stop_range()
@@ -347,7 +347,7 @@ class Span:
elif self.date2.get_modifier() == Date.MOD_AFTER:
_repr = trans_text("less than") + " " + fdate12
elif self.date2.get_modifier() == Date.MOD_ABOUT:
_repr = trans_text("age|about") + " " + fdate12p1
_repr = trans_text("about", "age") + " " + fdate12p1
elif self.date2.is_compound():
start1, stop1 = self.date1.get_start_stop_range()
start2, stop2 = self.date2.get_start_stop_range()
@@ -606,13 +606,13 @@ class Date:
"Swedish"]
ui_calendar_names = [_("calendar|Gregorian"),
_("calendar|Julian"),
_("calendar|Hebrew"),
_("calendar|French Republican"),
_("calendar|Persian"),
_("calendar|Islamic"),
_("calendar|Swedish")]
ui_calendar_names = [_("Gregorian", "calendar"),
_("Julian", "calendar"),
_("Hebrew", "calendar"),
_("French Republican", "calendar"),
_("Persian", "calendar"),
_("Islamic", "calendar"),
_("Swedish", "calendar")]
def __init__(self, *source):
"""
@@ -1853,7 +1853,7 @@ class Date:
Lookup date quality keyword, even if translated.
"""
qualities = ["none", "estimated", "calculated"]
ui_qualities = [_("date-quality|none"),
ui_qualities = [_("none", "date-quality"),
_("estimated"), _("calculated")]
if quality.lower() in qualities:
return qualities.index(quality.lower())
@@ -1868,7 +1868,7 @@ class Date:
"""
mods = ["none", "before", "after", "about",
"range", "span", "textonly"]
ui_mods = [_("date-modifier|none"),
ui_mods = [_("none", "date-modifier"),
_("before"), _("after"), _("about"),
_("range"), _("span"), _("textonly")]
if modifier.lower() in mods:
+2 -2
View File
@@ -51,14 +51,14 @@ class EventRoleType(GrampsType):
_DATAMAP = [
(UNKNOWN, _("Unknown"), "Unknown"),
(CUSTOM, _("Custom"), "Custom"),
(PRIMARY, _("Role|Primary"), "Primary"),
(PRIMARY, _("Primary", "Role"), "Primary"),
(CLERGY, _("Clergy"), "Clergy"),
(CELEBRANT, _("Celebrant"), "Celebrant"),
(AIDE, _("Aide"), "Aide"),
(BRIDE, _("Bride"), "Bride"),
(GROOM, _("Groom"), "Groom"),
(WITNESS, _("Witness"), "Witness"),
(FAMILY, _("Role|Family"), "Family"),
(FAMILY, _("Family", "Role"), "Family"),
(INFORMANT, _("Informant"), "Informant"),
]
+48 -48
View File
@@ -131,8 +131,8 @@ class EventType(GrampsType):
WILL = 44
# _T_ is a gramps-defined keyword -- see po/update_po.py and po/genpot.sh
def _T_(value): # enable deferred translations (see Python docs 22.1.3.4)
return value
def _T_(value, context=''): # enable deferred translations
return "%s\x04%s" % (context, value) if context else value
_MENU = [[_T_('Life Events'),
[BIRTH, BAPTISM, DEATH, BURIAL, CREMATION, ADOPT]],
@@ -208,52 +208,52 @@ class EventType(GrampsType):
]
_ABBREVIATIONS = {
BIRTH: _T_("birth abbreviation|b."),
DEATH: _T_("death abbreviation|d."),
MARRIAGE: _T_("marriage abbreviation|m."),
UNKNOWN: _T_("Unknown abbreviation|unkn."),
CUSTOM: _T_("Custom abbreviation|cust."),
ADOPT: _T_("Adopted abbreviation|adop."),
ADULT_CHRISTEN : _T_("Adult Christening abbreviation|a.chr."),
BAPTISM: _T_("Baptism abbreviation|bap."),
BAR_MITZVAH : _T_("Bar Mitzvah abbreviation|bar."),
BAS_MITZVAH : _T_("Bat Mitzvah abbreviation|bat."),
BLESS: _T_("Blessing abbreviation|bles."),
BURIAL: _T_("Burial abbreviation|bur."),
CAUSE_DEATH : _T_("Cause Of Death abbreviation|d.cau."),
CENSUS: _T_("Census abbreviation|cens."),
CHRISTEN: _T_("Christening abbreviation|chr."),
CONFIRMATION: _T_("Confirmation abbreviation|conf."),
CREMATION: _T_("Cremation abbreviation|crem."),
DEGREE: _T_("Degree abbreviation|deg."),
EDUCATION: _T_("Education abbreviation|edu."),
ELECTED: _T_("Elected abbreviation|elec."),
EMIGRATION: _T_("Emigration abbreviation|em."),
FIRST_COMMUN: _T_("First Communion abbreviation|f.comm."),
IMMIGRATION: _T_("Immigration abbreviation|im."),
GRADUATION: _T_("Graduation abbreviation|grad."),
MED_INFO: _T_("Medical Information abbreviation|medinf."),
MILITARY_SERV: _T_("Military Service abbreviation|milser."),
NATURALIZATION: _T_("Naturalization abbreviation|nat."),
NOB_TITLE: _T_("Nobility Title abbreviation|nob."),
NUM_MARRIAGES: _T_("Number of Marriages abbreviation|n.o.mar."),
OCCUPATION: _T_("Occupation abbreviation|occ."),
ORDINATION: _T_("Ordination abbreviation|ord."),
PROBATE: _T_("Probate abbreviation|prob."),
PROPERTY: _T_("Property abbreviation|prop."),
RELIGION: _T_("Religion abbreviation|rel."),
RESIDENCE: _T_("Residence abbreviation|res."),
RETIREMENT: _T_("Retirement abbreviation|ret."),
WILL: _T_("Will abbreviation|will."),
MARR_SETTL: _T_("Marriage Settlement abbreviation|m.set."),
MARR_LIC: _T_("Marriage License abbreviation|m.lic."),
MARR_CONTR: _T_("Marriage Contract abbreviation|m.con."),
MARR_BANNS: _T_("Marriage Banns abbreviation|m.ban."),
MARR_ALT: _T_("Alternate Marriage abbreviation|alt.mar."),
ENGAGEMENT: _T_("Engagement abbreviation|engd."),
DIVORCE: _T_("Divorce abbreviation|div."),
DIV_FILING: _T_("Divorce Filing abbreviation|div.f."),
ANNULMENT: _T_("Annulment abbreviation|annul.")
BIRTH: _T_("b.", "birth abbreviation"),
DEATH: _T_("d.", "death abbreviation"),
MARRIAGE: _T_("m.", "marriage abbreviation"),
UNKNOWN: _T_("unkn.", "Unknown abbreviation"),
CUSTOM: _T_("cust.", "Custom abbreviation"),
ADOPT: _T_("adop.", "Adopted abbreviation"),
ADULT_CHRISTEN : _T_("a.chr.", "Adult Christening abbreviation"),
BAPTISM: _T_("bap.", "Baptism abbreviation"),
BAR_MITZVAH : _T_("bar.", "Bar Mitzvah abbreviation"),
BAS_MITZVAH : _T_("bat.", "Bat Mitzvah abbreviation"),
BLESS: _T_("bles.", "Blessing abbreviation"),
BURIAL: _T_("bur.", "Burial abbreviation"),
CAUSE_DEATH : _T_("d.cau.", "Cause Of Death abbreviation"),
CENSUS: _T_("cens.", "Census abbreviation"),
CHRISTEN: _T_("chr.", "Christening abbreviation"),
CONFIRMATION: _T_("conf.", "Confirmation abbreviation"),
CREMATION: _T_("crem.", "Cremation abbreviation"),
DEGREE: _T_("deg.", "Degree abbreviation"),
EDUCATION: _T_("edu.", "Education abbreviation"),
ELECTED: _T_("elec.", "Elected abbreviation"),
EMIGRATION: _T_("em.", "Emigration abbreviation"),
FIRST_COMMUN: _T_("f.comm.", "First Communion abbreviation"),
IMMIGRATION: _T_("im.", "Immigration abbreviation"),
GRADUATION: _T_("grad.", "Graduation abbreviation"),
MED_INFO: _T_("medinf.", "Medical Information abbreviation"),
MILITARY_SERV: _T_("milser.", "Military Service abbreviation"),
NATURALIZATION: _T_("nat.", "Naturalization abbreviation"),
NOB_TITLE: _T_("nob.", "Nobility Title abbreviation"),
NUM_MARRIAGES: _T_("n.o.mar.", "Number of Marriages abbreviation"),
OCCUPATION: _T_("occ.", "Occupation abbreviation"),
ORDINATION: _T_("ord.", "Ordination abbreviation"),
PROBATE: _T_("prob.", "Probate abbreviation"),
PROPERTY: _T_("prop.", "Property abbreviation"),
RELIGION: _T_("rel.", "Religion abbreviation"),
RESIDENCE: _T_("res.", "Residence abbreviation"),
RETIREMENT: _T_("ret.", "Retirement abbreviation"),
WILL: _T_("will.", "Will abbreviation"),
MARR_SETTL: _T_("m.set.", "Marriage Settlement abbreviation"),
MARR_LIC: _T_("m.lic.", "Marriage License abbreviation"),
MARR_CONTR: _T_("m.con.", "Marriage Contract abbreviation"),
MARR_BANNS: _T_("m.ban.", "Marriage Banns abbreviation"),
MARR_ALT: _T_("alt.mar.", "Alternate Marriage abbreviation"),
ENGAGEMENT: _T_("engd.", "Engagement abbreviation"),
DIVORCE: _T_("div.", "Divorce abbreviation"),
DIV_FILING: _T_("div.f.", "Divorce Filing abbreviation"),
ANNULMENT: _T_("annul.", "Annulment abbreviation")
}
def __init__(self, value=None):
+4 -2
View File
@@ -288,10 +288,12 @@ class GrampsType(object, metaclass=GrampsTypeMeta):
else:
return self.__value == value[0]
else:
if value.value == self._CUSTOM:
if value.value == self._CUSTOM and self.__value == self._CUSTOM:
return self.__string == value.string
else:
elif value.value != self._CUSTOM and self.__value != self._CUSTOM:
return self.__value == value.value
else:
return False
def __ne__(self, value):
return not self.__eq__(value)
+4 -4
View File
@@ -73,12 +73,12 @@ class NameOriginType(GrampsType):
(UNKNOWN, _("Unknown"), "Unknown "),
(CUSTOM, _("Custom"), "Custom"),
(NONE, "", ""),
(INHERITED, _("Surname|Inherited"), "Inherited"),
(GIVEN, _("Surname|Given"), "Given"),
(TAKEN, _("Surname|Taken"), "Taken"),
(INHERITED, _("Inherited", "Surname"), "Inherited"),
(GIVEN, _("Given", "Surname"), "Given"),
(TAKEN, _("Taken", "Surname"), "Taken"),
(PATRONYMIC, _("Patronymic"), "Patronymic"),
(MATRONYMIC, _("Matronymic"), "Matronymic"),
(FEUDAL, _("Surname|Feudal"), "Feudal"),
(FEUDAL, _("Feudal", "Surname"), "Feudal"),
(PSEUDONYM, _("Pseudonym"), "Pseudonym"),
(PATRILINEAL, _("Patrilineal"), "Patrilineal"),
(MATRILINEAL, _("Matrilineal"), "Matrilineal"),
+2 -2
View File
@@ -79,8 +79,8 @@ class NoteType(GrampsType):
(CITATION, _('Citation'), "Citation"),
(REPORT_TEXT, _("Report"), "Report"),
(HTML_CODE, _("Html code"), "Html code"),
(TODO, _("notetype|To Do"), "To Do"),
(LINK, _("notetype|Link"), "Link"),
(TODO, _("To Do", "notetype"), "To Do"),
(LINK, _("Link", "notetype"), "Link"),
]
_DATAMAPIGNORE = [
+1
View File
@@ -299,6 +299,7 @@ class StyledText:
"""
if self._tags:
the_tags = [tag.serialize() for tag in self._tags]
the_tags.sort()
else:
the_tags = []
+3 -3
View File
@@ -64,11 +64,11 @@ class Test1(unittest.TestCase):
C = self.C.join([self.A, self.S, deepcopy(self.B)])
C = C.replace('X', StyledText('_', [self.T3]))
_C = ('123_456\ncleartext\nabc_def',
[((1, ''), 'v1', [(0, 2), (2, 3)]),
((0, ''), 'v3', [(3, 4)]),
[((0, ''), 'v3', [(3, 4)]),
((0, ''), 'v3', [(21, 22)]),
((1, ''), 'v1', [(0, 2), (2, 3)]),
((1, ''), 'v1', [(4, 6)]),
((2, ''), 'v2', [(19, 21), (18, 21)]),
((0, ''), 'v3', [(21, 22)]),
((2, ''), 'v2', [(22, 23), (22, 25)])])
self.assertEqual(C.serialize(), _C)
+2
View File
@@ -29,6 +29,8 @@ _type_map = {
'application/x-gedcom' : 'GEDCOM database',
'application/x-gramps-package': 'Gramps package',
'image/jpeg' : 'JPEG image',
'image/tiff' : 'TIFF image',
'image/png' : 'PNG image',
'application/pdf' : 'PDF document',
'text/rtf' : 'Rich Text File',
}
+1 -1
View File
@@ -83,7 +83,7 @@ class BasePluginManager:
def __init__(self):
""" This function should only be run once by get_instance() """
if BasePluginManager.__instance is not 1:
if BasePluginManager.__instance != 1:
raise Exception("This class is a singleton. "
"Use the get_instance() method")
+1 -1
View File
@@ -1135,7 +1135,7 @@ class PluginRegister:
def __init__(self):
""" This function should only be run once by get_instance() """
if PluginRegister.__instance is not 1:
if PluginRegister.__instance != 1:
raise Exception("This class is a singleton. "
"Use the get_instance() method")
self.stable_only = True
+2 -2
View File
@@ -75,9 +75,9 @@ class PaperSize:
self.height = height
self.width = width
if self.name == 'Letter':
self.trans_pname = _('paper size|Letter')
self.trans_pname = _('Letter', 'paper size')
elif self.name == 'Legal':
self.trans_pname = _('paper size|Legal')
self.trans_pname = _('Legal', 'paper size')
elif self.name == 'Custom Size':
self.trans_pname = _('Custom Size')
else:
+48 -1
View File
@@ -302,7 +302,7 @@ class TreeDocBase(BaseDoc, TreeDoc):
name = paper_size.get_name().lower()
if name == 'custom size':
width = str(paper_size.get_width())
height = str(paper_size.get_width())
height = str(paper_size.get_height())
paper = 'papersize={%scm,%scm}' % (width, height)
elif name in ('a', 'b', 'c', 'd', 'e'):
paper = 'ansi' + name + 'paper'
@@ -519,6 +519,7 @@ class TreeDocBase(BaseDoc, TreeDoc):
date_str = date_str + '/' + stop_date
place = escape(_pd.display_event(db, event))
place = place.replace("-", "\--")
if modifier:
event_type += '+'
@@ -586,6 +587,47 @@ class TreeDocBase(BaseDoc, TreeDoc):
self.write_end()
#------------------------------------------------------------------------------
#
# TreeGraphDoc
#
#------------------------------------------------------------------------------
class TreeGraphDoc(TreeDocBase):
"""
TreeGraphDoc implementation that generates a .graph file.
"""
def write_start(self):
"""
Write the start of the document - nothing for a graph file.
"""
pass
def start_tree(self, option_list):
"""
Write the start of a tree - nothing for a graph file.
"""
pass
def end_tree(self):
"""
Write the end of a tree - nothing for a graph file.
"""
pass
def write_end(self):
"""
Write the end of the document - nothing for a graph file.
"""
pass
def close(self):
""" Implements TreeDocBase.close() """
TreeDocBase.close(self)
with open(self._filename, 'w', encoding='utf-8') as texfile:
texfile.write(self._tex.getvalue())
#------------------------------------------------------------------------------
#
# TreeTexDoc
@@ -653,6 +695,11 @@ if _LATEX_FOUND:
'mime' : "application/pdf",
'class': TreePdfDoc}]
FORMATS += [{'type' : "graph",
'ext' : "graph",
'descr': _("Graph File for genealogytree"),
'class': TreeGraphDoc}]
FORMATS += [{'type' : "tex",
'ext' : "tex",
'descr': _("LaTeX File"),
+3
View File
@@ -62,6 +62,7 @@ class EnumeratedListOption(Option):
:type value: int
:return: nothing
"""
self.ini_value = value
Option.__init__(self, label, value)
self.__items = []
self.__xml_items = []
@@ -138,6 +139,8 @@ class EnumeratedListOption(Option):
"""
if value in (v for v, d in self.__items):
Option.set_value(self, value)
elif value == self.ini_value:
return
else:
logging.warning(_("Value '%(val)s' not found for option '%(opt)s'") %
{'val' : str(value), 'opt' : self.get_label()})
+8 -7
View File
@@ -40,8 +40,8 @@ from ...const import GRAMPS_LOCALE as glocale
_ = glocale.translation.sgettext
# _T_ is a gramps-defined keyword -- see po/update_po.py and po/genpot.sh
def _T_(value): # enable deferred translations (see Python docs 22.1.3.4)
return value
def _T_(value, context=''): # enable deferred translations
return "%s\x04%s" % (context, value) if context else value
#-------------------------------------------------------------------------
#
@@ -171,17 +171,18 @@ def add_living_people_option(menu, category,
living_people = EnumeratedListOption(_("Living People"), mode)
items = [(LivingProxyDb.MODE_INCLUDE_ALL,
_T_("'living people'|Included, and all data"))]
_T_("Included, and all data", "'living people'"))]
if process_names:
items += [
(LivingProxyDb.MODE_INCLUDE_FULL_NAME_ONLY,
_T_("'living people'|Full names, but data removed")),
_T_("Full names, but data removed", "'living people'")),
(LivingProxyDb.MODE_INCLUDE_LAST_NAME_ONLY,
_T_("'living people'|Given names replaced, and data removed")),
_T_("Given names replaced, and data removed", "'living people'")),
(LivingProxyDb.MODE_REPLACE_COMPLETE_NAME,
_T_("'living people'|Complete names replaced, and data removed"))]
_T_("Complete names replaced, and data removed",
"'living people'"))]
items += [(LivingProxyDb.MODE_EXCLUDE_ALL,
_T_("'living people'|Not included"))]
_T_("Not included", "'living people'"))]
living_people.set_items(items, xml_items=True) # for deferred translation
living_people.set_help(_("How to handle living people"))
menu.add_option(category, "living_people", living_people)
+2 -3
View File
@@ -46,9 +46,8 @@ from ...utils.file import media_path_full
from ..docgen import IndexMark, INDEX_TYPE_ALP
# _T_ is a gramps-defined keyword -- see po/update_po.py and po/genpot.sh
def _T_(value):
""" enable deferred translations (see Python docs 22.1.3.4) """
return value
def _T_(value, context=''): # enable deferred translations
return "%s\x04%s" % (context, value) if context else value
#-------------------------------------------------------------------------
#
+3 -4
View File
@@ -116,9 +116,8 @@ class Zipfile:
os.mkdir(fullname)
for name in self.get_files(names):
fullname = os.path.join(path, name)
outfile = file(fullname, 'wb')
outfile.write(self.zip_obj.read(name))
outfile.close()
with open(fullname, 'wb') as outfile:
outfile.write(self.zip_obj.read(name))
def extractfile(self, name):
"""
@@ -259,7 +258,7 @@ def available_updates():
if "new" in whattypes:
if (not config.get('behavior.do-not-show-previously-seen-addon-updates') or
plugin_dict["i"] not in config.get('behavior.previously-seen-addon-updates')):
addon_update_list.append((_("updates|New"),
addon_update_list.append((_("New", "updates"),
"%s/download/%s" %
(config.get("behavior.addons-url"),
plugin_dict["z"]),
+5
View File
@@ -769,6 +769,7 @@ def sanitize_citation(db, citation):
new_citation.set_gramps_id(citation.get_gramps_id())
new_citation.set_handle(citation.get_handle())
new_citation.set_change_time(citation.get_change_time())
new_citation.set_tag_list(citation.get_tag_list())
copy_srcattributes(db, citation, new_citation)
copy_notes(db, citation, new_citation)
copy_media_ref_list(db, citation, new_citation)
@@ -914,6 +915,7 @@ def sanitize_source(db, source):
new_source.set_gramps_id(source.get_gramps_id())
new_source.set_handle(source.get_handle())
new_source.set_change_time(source.get_change_time())
new_source.set_tag_list(source.get_tag_list())
for repo_ref in source.get_reporef_list():
if repo_ref and not repo_ref.get_privacy():
@@ -987,6 +989,7 @@ def sanitize_place(db, place):
new_place.set_type(place.get_type())
new_place.set_code(place.get_code())
new_place.set_placeref_list(place.get_placeref_list())
new_place.set_tag_list(place.get_tag_list())
copy_citation_ref_list(db, place, new_place)
copy_notes(db, place, new_place)
@@ -1017,6 +1020,7 @@ def sanitize_event(db, event):
new_event.set_handle(event.get_handle())
new_event.set_date_object(event.get_date_object())
new_event.set_change_time(event.get_change_time())
new_event.set_tag_list(event.get_tag_list())
copy_citation_ref_list(db, event, new_event)
copy_notes(db, event, new_event)
@@ -1120,6 +1124,7 @@ def sanitize_repository(db, repository):
new_repository.set_gramps_id(repository.get_gramps_id())
new_repository.set_handle(repository.get_handle())
new_repository.set_change_time(repository.get_change_time())
new_repository.set_tag_list(repository.get_tag_list())
copy_notes(db, repository, new_repository)
copy_addresses(db, repository, new_repository)
+20 -20
View File
@@ -2171,58 +2171,58 @@ class RelationshipCalculator:
elif gender == FEMALE:
return trans_text("wife")
else:
return trans_text("gender unknown|spouse")
return trans_text("spouse", "gender unknown")
elif spouse_type == self.PARTNER_EX_MARRIED:
if gender == MALE:
return trans_text("ex-husband")
elif gender == FEMALE:
return trans_text("ex-wife")
else:
return trans_text("gender unknown|ex-spouse")
return trans_text("ex-spouse", "gender unknown")
elif spouse_type == self.PARTNER_UNMARRIED:
if gender == MALE:
return trans_text("male,unmarried|partner")
return trans_text("partner", "male,unmarried")
elif gender == FEMALE:
return trans_text("female,unmarried|partner")
return trans_text("partner", "female,unmarried")
else:
return trans_text("gender unknown,unmarried|partner")
return trans_text("partner", "gender unknown,unmarried")
elif spouse_type == self.PARTNER_EX_UNMARRIED:
if gender == MALE:
return trans_text("male,unmarried|ex-partner")
return trans_text("ex-partner", "male,unmarried")
elif gender == FEMALE:
return trans_text("female,unmarried|ex-partner")
return trans_text("ex-partner", "female,unmarried")
else:
return trans_text("gender unknown,unmarried|ex-partner")
return trans_text("ex-partner", "gender unknown,unmarried")
elif spouse_type == self.PARTNER_CIVIL_UNION:
if gender == MALE:
return trans_text("male,civil union|partner")
return trans_text("partner", "male,civil union")
elif gender == FEMALE:
return trans_text("female,civil union|partner")
return trans_text("partner", "female,civil union")
else:
return trans_text("gender unknown,civil union|partner")
return trans_text("partner", "gender unknown,civil union")
elif spouse_type == self.PARTNER_EX_CIVIL_UNION:
if gender == MALE:
return trans_text("male,civil union|former partner")
return trans_text("former partner", "male,civil union")
elif gender == FEMALE:
return trans_text("female,civil union|former partner")
return trans_text("former partner", "female,civil union")
else:
return trans_text("gender unknown,civil union|former partner")
return trans_text("former partner", "gender unknown,civil union")
elif spouse_type == self.PARTNER_UNKNOWN_REL:
if gender == MALE:
return trans_text("male,unknown relation|partner")
return trans_text("partner", "male,unknown relation")
elif gender == FEMALE:
return trans_text("female,unknown relation|partner")
return trans_text("partner", "female,unknown relation")
else:
return trans_text("gender unknown,unknown relation|partner")
return trans_text("partner", "gender unknown,unknown relation")
else:
# here we have spouse_type == self.PARTNER_EX_UNKNOWN_REL
# or other not catched types
if gender == MALE:
return trans_text("male,unknown relation|former partner")
return trans_text("former partner", "male,unknown relation")
elif gender == FEMALE:
return trans_text("female,unknown relation|former partner")
return trans_text("former partner", "female,unknown relation")
else:
return trans_text("gender unknown,unknown relation|former partner")
return trans_text("former partner", "gender unknown,unknown relation")
def connect_db_signals(self, dbstate):
"""
+55 -13
View File
@@ -117,7 +117,7 @@ _LOCALE_NAMES = {
_RTL_LOCALES = ('ar', 'he')
# locales with less than 70% currently translated
INCOMPLETE_TRANSLATIONS = ('ar', 'bg', 'he', 'ja', 'sq', 'ta', 'tr')
INCOMPLETE_TRANSLATIONS = ('ar', 'bg', 'he', 'sq', 'ta', 'tr')
def _check_mswin_locale(locale):
msloc = None
@@ -1027,8 +1027,8 @@ class Lexeme(str):
Python code::
_ = lexgettext
dec = _("localized lexeme inflections||December")
xmas = _("lexeme||Christmas")
dec = _("|December", "localized lexeme inflections")
xmas = _("|Christmas", "lexeme")
text = _("{holiday} is celebrated in {month}".format(
holiday=xmas, month=dec))
greeting = _("Merry {holiday}!").format(holiday=xmas)
@@ -1142,26 +1142,33 @@ class GrampsTranslations(gettext.GNUTranslations):
Overrides and extends gettext.GNUTranslations. See the Python gettext
"Class API" documentation for how to use this.
"""
CONTEXT = "%s\x04%s"
def language(self):
"""
Return the target languge of this translations object.
"""
return self._language
def gettext(self, msgid):
def gettext(self, msgid, context=''):
"""
Obtain translation of gettext, return a unicode object
:param msgid: The string to translated.
:type msgid: unicode
:param context: The message context.
:type context: unicode
:returns: Translation or the original.
:rtype: unicode
"""
# If msgid =="" then gettext will return po file header
# If context=="" and msgid =="" then gettext will return po file header
# and that's not what we want.
if len(msgid.strip()) == 0:
if len((context + msgid).strip()) == 0:
return msgid
return gettext.GNUTranslations.gettext(self, msgid)
if context:
return self.pgettext(context, msgid)
else:
return gettext.GNUTranslations.gettext(self, msgid)
def ngettext(self, singular, plural, num):
"""
@@ -1181,7 +1188,7 @@ class GrampsTranslations(gettext.GNUTranslations):
"""
return gettext.GNUTranslations.ngettext(self, singular, plural, num)
def sgettext(self, msgid, sep='|'):
def sgettext(self, msgid, context='', sep='|'):
"""
Strip the context used for resolving translation ambiguities.
@@ -1192,18 +1199,22 @@ class GrampsTranslations(gettext.GNUTranslations):
:param msgid: The string to translated.
:type msgid: unicode
:param context: The message context.
:type context: unicode
:param sep: The separator marking the context.
:type sep: unicode
:returns: Translation or the original with context stripped.
:rtype: unicode
"""
msgval = self.gettext(msgid)
if '\x04' in msgid: # Deferred translation
context, msgid = msgid.split('\x04')
msgval = self.gettext(msgid, context)
if msgval == msgid:
sep_idx = msgid.rfind(sep)
msgval = msgid[sep_idx+1:]
return msgval
def lexgettext(self, msgid):
def lexgettext(self, msgid, context=''):
"""
Extract all inflections of the same lexeme,
stripping the '|'-separated context using :meth:`~sgettext`
@@ -1222,13 +1233,28 @@ class GrampsTranslations(gettext.GNUTranslations):
:param msgid: The string to translated.
:type msgid: unicode
:param context: The message context.
:type context: unicode
:returns: Translation or the original with context stripped.
:rtype: unicode (for option (1)) / Lexeme (option (2))
"""
variants = self.sgettext(msgid).split('|')
variants = self.sgettext(msgid, context).split('|')
return Lexeme([v.split('=') for v in variants]
) if len(variants) > 1 else variants[0]
def pgettext(self, context, message):
"""
Copied from python 3.8
"""
ctxt_msg_id = self.CONTEXT % (context, message)
missing = object()
tmsg = self._catalog.get(ctxt_msg_id, missing)
if tmsg is missing:
if self._fallback:
return self._fallback.pgettext(context, message)
return message
return tmsg
class GrampsNullTranslations(gettext.NullTranslations):
"""
Extends gettext.NullTranslations to provide the sgettext method.
@@ -1236,8 +1262,16 @@ class GrampsNullTranslations(gettext.NullTranslations):
Note that it's necessary for msgid to be unicode. If it's not,
neither will be the returned string.
"""
def sgettext(self, msgid, sep='|'):
msgval = self.gettext(msgid)
def gettext(self, msgid, context=''):
if context:
return self.pgettext(context, msgid)
else:
return gettext.NullTranslations.gettext(self, msgid)
def sgettext(self, msgid, context='', sep='|'):
if '\x04' in msgid: # Deferred translation
context, msgid = msgid.split('\x04')
msgval = self.gettext(msgid, context)
if msgval == msgid:
sep_idx = msgid.rfind(sep)
msgval = msgid[sep_idx+1:]
@@ -1250,3 +1284,11 @@ class GrampsNullTranslations(gettext.NullTranslations):
The null translation returns the raw msgids, which are in English
"""
return "en"
def pgettext(self, context, message):
"""
Copied from python 3.8
"""
if self._fallback:
return self._fallback.pgettext(context, message)
return message
+2 -2
View File
@@ -161,12 +161,12 @@ def image_size(source):
:returns: a tuple consisting of the width and height
"""
from gi.repository import GdkPixbuf
from gi.repository import GObject
from gi.repository import GLib
try:
img = GdkPixbuf.Pixbuf.new_from_file(source)
width = img.get_width()
height = img.get_height()
except GObject.GError:
except GLib.GError:
width = 0
height = 0
return (width, height)
+4 -4
View File
@@ -51,14 +51,14 @@ Keyword translation interface
from ..const import GRAMPS_LOCALE as glocale
_ = glocale.translation.sgettext
KEYWORDS = [("title", "t", _("Person|Title"), _("Person|TITLE")),
KEYWORDS = [("title", "t", _("Title", "Person"), _("TITLE", "Person")),
("given", "f", _("Given"), _("GIVEN")),
("surname", "l", _("Surname"), _("SURNAME")),
("call", "c", _("Name|Call"), _("Name|CALL")),
("common", "x", _("Name|Common"), _("Name|COMMON")),
("call", "c", _("Call", "Name"), _("CALL", "Name")),
("common", "x", _("Common", "Name"), _("COMMON", "Name")),
("initials", "i", _("Initials"), _("INITIALS")),
("suffix", "s", _("Suffix"), _("SUFFIX")),
("primary", "m", _("Name|Primary"), _("PRIMARY")),
("primary", "m", _("Primary", "Name"), _("PRIMARY")),
("primary[pre]", "0m", _("Primary[pre]"), _("PRIMARY[PRE]")),
("primary[sur]", "1m", _("Primary[sur]"), _("PRIMARY[SUR]")),
("primary[con]", "2m", _("Primary[con]"), _("PRIMARY[CON]")),
+44 -21
View File
@@ -2,6 +2,7 @@
# Gramps - a GTK+/GNOME based genealogy program
#
# Copyright (C) 2013 John Ralls <jralls@ceridwen.us>
# Copyright (C) 2020 Nick Hall <nick-h@gramps-project.org>
#
# 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
@@ -35,6 +36,25 @@ class ResourcePath:
It should be called only by const.py; other code should retrieve the
paths from there.
Attempt to derive the resource path from the package path assuming that
one of the three main installation schemes has been used.
The package path will be one of the following:
<prefix>/lib/pythonX.Y/site-packages
<prefix>\Lib\site-packages
<home>/lib/python
<userbase>/lib/pythonX.Y/site-packages
<userbase>\PythonXY\site-packages
Where <prefix>, <home> and <userbase> are the resource paths used in the
Prefix, Home and User installation schemes.
The use of the command line option "--install-data" in the setup script
is no longer supported.
"""
instance = None
def __new__(cls):
@@ -47,9 +67,9 @@ class ResourcePath:
def __init__(self):
if self.initialized:
return
resource_file = os.path.join(os.path.abspath(os.path.dirname(
__file__)), 'resource-path')
installed = os.path.exists(resource_file)
package_path = os.path.abspath(os.path.join(os.path.dirname(
__file__), '..', "..", ".."))
installed = not os.path.exists(os.path.join(package_path, '.git'))
if installed:
test_path = os.path.join("gramps", "authors.xml")
else:
@@ -59,27 +79,30 @@ class ResourcePath:
if (tmp_path and os.path.exists(os.path.join(tmp_path, test_path))):
resource_path = tmp_path
elif installed:
try:
with open(resource_file, encoding='utf-8',
errors='strict') as fp:
resource_path = fp.readline()
except UnicodeError as err:
LOG.exception("Encoding error while parsing resource path", err)
sys.exit(1)
except IOError as err:
LOG.exception("Failed to open resource file", err)
sys.exit(1)
if not os.path.exists(os.path.join(resource_path, test_path)):
LOG.error("Resource Path %s is invalid", resource_path)
base_path = None
head, tail = os.path.split(package_path)
if tail in ('site-packages', 'dist-packages'):
# Prefix or User installation scheme
head, tail = os.path.split(head)
if tail.startswith('python'):
base_path, tail = os.path.split(head)
elif tail == 'Lib' or tail.startswith('Python'):
base_path = head
elif tail == 'python':
# Home installation scheme
base_path, tail = os.path.split(head)
if base_path is not None:
resource_path = os.path.join(base_path, 'share')
else:
LOG.error("Unable to determine resource path")
sys.exit(1)
else:
# Let's try to run from source without env['GRAMPS_RESOURCES']:
resource_path = os.path.join(os.path.abspath(os.path.dirname(
__file__)), '..', "..", "..")
test_path = os.path.join("data", "authors.xml")
if (not os.path.exists(os.path.join(resource_path, test_path))):
LOG.error("Unable to determine resource path")
sys.exit(1)
resource_path = package_path
if (not os.path.exists(os.path.join(resource_path, test_path))):
LOG.error("Resource Path %s is invalid", resource_path)
sys.exit(1)
resource_path = os.path.abspath(resource_path)
if installed:
+3 -3
View File
@@ -33,8 +33,8 @@ from ..lib import Person, Citation, FamilyRelType
from ..const import GRAMPS_LOCALE as glocale
_ = glocale.translation.sgettext
def _T_(value): # enable deferred translations (see Python docs 22.1.3.4)
return value
def _T_(value, context=''): # enable deferred translations
return "%s\x04%s" % (context, value) if context else value
# _T_ is a gramps-defined keyword -- see po/update_po.py and po/genpot.sh
#-------------------------------------------------------------------------
@@ -45,7 +45,7 @@ def _T_(value): # enable deferred translations (see Python docs 22.1.3.4)
gender = {
Person.MALE : _("male"),
Person.FEMALE : _("female"),
Person.UNKNOWN : _("gender|unknown"),
Person.UNKNOWN : _("unknown", "gender"),
}
def format_gender(type):
+1 -1
View File
@@ -58,7 +58,7 @@ class FileTest(unittest.TestCase):
"""
# Create database
db = make_database("bsddb")
db = make_database("sqlite")
path = get_empty_tempdir("utils_file_test")
db.load(path)
+6 -5
View File
@@ -36,7 +36,8 @@ except:
class LexGettextTest(unittest.TestCase):
SRC_WORD = "Inflect-me"
MSGID = "how-to-use-lexgettext||" + SRC_WORD
CONTEXT = "how-to-use-lexgettext"
MSGID = "|" + SRC_WORD
def setUp(self):
from ..grampslocale import GrampsTranslations
@@ -54,26 +55,26 @@ class LexGettextTest(unittest.TestCase):
if MOCKING:
try:
self.trans.sgettext.assert_called_once_with(
self.MSGID)
self.MSGID, self.CONTEXT)
except AttributeError as e:
print ("Apparently the test has never set up the mock: ", e)
def testSrcWordOnlyIfNoTranslation(self):
self.setup_sgettext_mock(self.SRC_WORD)
result = self.trans.lexgettext(self.MSGID)
result = self.trans.lexgettext(self.MSGID, self.CONTEXT)
self.assertEqual(result, self.SRC_WORD)
def test3InflectionsExtractableByNameThroughForm(self):
translated = "n=TargetNom|g=TargetGen|d=TargetDat"
self.setup_sgettext_mock(translated)
lex = self.trans.lexgettext(self.MSGID)
lex = self.trans.lexgettext(self.MSGID, self.CONTEXT)
formatted = "{lex.f[n]},{lex.f[g]},{lex.f[d]}".format(lex=lex)
self.assertEqual(formatted, "TargetNom,TargetGen,TargetDat")
def testFirstLexemeFormExtractableAsDefaultString(self):
translated = "def=Default|v1=Option1|a=AnotherOption"
self.setup_sgettext_mock(translated)
lex = self.trans.lexgettext(self.MSGID)
lex = self.trans.lexgettext(self.MSGID, self.CONTEXT)
formatted = "{}".format(lex)
self.assertEqual(formatted, "Default")
+4 -4
View File
@@ -36,7 +36,7 @@ from hashlib import md5
# GTK/Gnome modules
#
#-------------------------------------------------------------------------
from gi.repository import GObject
from gi.repository import GLib
from gi.repository import GdkPixbuf
try:
@@ -98,7 +98,7 @@ def __get_gconf_string(key):
"""
try:
val = CLIENT.get_string(key)
except GObject.GError:
except GLib.GError:
val = None
return str(val)
@@ -119,7 +119,7 @@ def __get_gconf_bool(key):
"""
try:
val = CLIENT.get_bool(key)
except GObject.GError:
except GLib.GError:
val = None
return val
@@ -318,7 +318,7 @@ def get_thumbnail_image(src_file, mtype=None, rectangle=None, size=SIZE_NORMAL):
try:
filename = get_thumbnail_path(src_file, mtype, rectangle, size)
return GdkPixbuf.Pixbuf.new_from_file(filename)
except (GObject.GError, OSError):
except (GLib.GError, OSError):
if mtype:
return find_mime_type_pixbuf(mtype)
else:
+4 -4
View File
@@ -76,7 +76,7 @@ _ = glocale.translation.gettext
try:
# On Darwin sys.getdefaultencoding() is correct, on Win32 it's
# sys.stdout.enoding, and on Linux they're both right.
# sys.stdout.encoding, and on Linux they're both right.
if mac():
_encoding = sys.getdefaultencoding()
else:
@@ -126,7 +126,7 @@ if win():
pass # ok
elif not os.path.isdir(HOME_DIR):
os.makedirs(HOME_DIR)
sys.stdout = sys.stderr = open(logfile, "w")
sys.stdout = sys.stderr = open(logfile, "w", encoding='utf-8')
stderrh = logging.StreamHandler(sys.stderr)
stderrh.setFormatter(form)
stderrh.setLevel(logging.DEBUG)
@@ -212,7 +212,7 @@ def show_settings():
Gtk.get_minor_version(), Gtk.get_micro_version())
except: # any failure to 'get' the version
gtkver_str = 'unknown version'
except ImportError:
except (ImportError, ValueError):
gtkver_str = 'not found'
# no DISPLAY is a RuntimeError in an older pygtk (e.g. 2.17 in Fedora 14)
except RuntimeError:
@@ -483,7 +483,7 @@ def run():
LOG.debug("A GUI is needed, set it up")
try:
from .gui.grampsgui import startgramps
# no DISPLAY is a RuntimeError in an older pygtk (e.g. F14's 2.17)
# no DISPLAY is a RuntimeError in an older pygtk (e.g. 2.17 in Fedora 14)
except RuntimeError as msg:
error += [(_("Configuration error:"), str(msg))]
return error
+6 -6
View File
@@ -67,7 +67,7 @@ _ = glocale.translation.sgettext
#
#-------------------------------------------------------------------------
WIKI_HELP_PAGE = '%s_-_Navigation' % URL_MANUAL_PAGE
WIKI_HELP_SEC = _('manual|Using_the_Clipboard')
WIKI_HELP_SEC = _('Using_the_Clipboard', 'manual')
clipdb = None # current db to avoid different transient dbs during db change
#-------------------------------------------------------------------------
@@ -480,7 +480,7 @@ class ClipCitation(ClipHandleWrapper):
if note.get_type() == NoteType.SOURCE_TEXT]
page = citation.get_page()
if not page:
page = _('not available|NA')
page = _('NA', 'not available')
text = ""
if srctxtlist:
text = " ".join(srctxtlist[0].get().split())
@@ -1490,7 +1490,7 @@ class MultiTreeView(Gtk.TreeView):
if obj2class(objclass):
if self.dbstate.db.method('has_%s_handle', objclass)(handle):
menu_item = Gtk.MenuItem(
label=_("the object|See %s details") %
label=_("See %s details", "the object") %
glocale.trans_objclass(objclass))
menu_item.connect(
"activate",
@@ -1499,7 +1499,7 @@ class MultiTreeView(Gtk.TreeView):
menu_item.show()
# ---------------------------
menu_item = Gtk.MenuItem(
label=_("the object|Make %s active") %
label=_("Make %s active", "the object") %
glocale.trans_objclass(objclass))
menu_item.connect(
"activate", lambda widget:
@@ -1521,8 +1521,8 @@ class MultiTreeView(Gtk.TreeView):
gids.add(obj.gramps_id)
if gids:
menu_item = Gtk.MenuItem(
label=_("the object|Create Filter from %s "
"selected...") %
label=_("Create Filter from %s selected...",
"the object") %
glocale.trans_objclass(objclass))
menu_item.connect("activate", lambda widget: make_filter(
self.dbstate, self.uistate,
+54 -58
View File
@@ -690,7 +690,7 @@ class GrampsPreferences(ConfigureDialog):
hbox.pack_start(lwidget, False, False, 0)
hbox.pack_start(self.color_scheme_box, False, False, 0)
restore_btn = Gtk.Button(_('Restore to defaults'))
restore_btn = Gtk.Button(label=_('Restore to defaults'))
restore_btn.set_tooltip_text(
_('Restore colors for current theme to default.'))
restore_btn.connect('clicked', self.restore_colors)
@@ -845,19 +845,19 @@ class GrampsPreferences(ConfigureDialog):
_("Common")),
"%s, %s %s (%s)" % (_("Surname"), _("Given"), _("Suffix"),
_("Nickname")),
"%s, %s %s (%s)" % (_("Surname"), _("Name|Common"), _("Suffix"),
"%s, %s %s (%s)" % (_("Surname"), _("Common", "Name"), _("Suffix"),
_("Nickname")),
"%s, %s %s" % (_("Surname"), _("Name|Common"), _("Suffix")),
"%s, %s %s" % (_("Surname"), _("Common", "Name"), _("Suffix")),
"%s, %s %s (%s)" % (_("SURNAME"), _("Given"), _("Suffix"),
_("Call")),
"%s, %s (%s)" % (_("Surname"), _("Given"), _("Name|Common")),
"%s, %s (%s)" % (_("Surname"), _("Name|Common"), _("Nickname")),
"%s, %s (%s)" % (_("Surname"), _("Given"), _("Common", "Name")),
"%s, %s (%s)" % (_("Surname"), _("Common", "Name"), _("Nickname")),
"%s %s" % (_("Given"), _("Surname")),
"%s %s, %s" % (_("Given"), _("Surname"), _("Suffix")),
"%s %s %s" % (_("Given"), _("NotPatronymic"), _("Patronymic")),
"%s, %s %s (%s)" % (_("SURNAME"), _("Given"), _("Suffix"),
_("Common")),
"%s, %s (%s)" % (_("SURNAME"), _("Given"), _("Name|Common")),
"%s, %s (%s)" % (_("SURNAME"), _("Given"), _("Common", "Name")),
"%s, %s (%s)" % (_("SURNAME"), _("Given"), _("Nickname")),
"%s %s" % (_("Given"), _("SURNAME")),
"%s %s, %s" % (_("Given"), _("SURNAME"), _("Suffix")),
@@ -1241,7 +1241,7 @@ class GrampsPreferences(ConfigureDialog):
row, 'preferences.place-auto', start=0, stop=1,
extra_callback=self.auto_title_changed,
tooltip=_("Enables automatic place title generation "
"using specifed format."))
"using specified format."))
self.auto_title_changed(cb_widget)
hbox.pack_start(self.pformat, True, True, 0)
hbox.pack_start(self.fmt_btn, False, False, 0)
@@ -1256,14 +1256,15 @@ class GrampsPreferences(ConfigureDialog):
_("Years, Months, Days")]
list(map(obox.append_text, age_precision))
# Combo_box active index is from 0 to 2, we need values from 1 to 3
constant = 'preferences.age-display-precision'
active = config.get(constant) - 1
active = config.get('preferences.age-display-precision') - 1
if active >= 0 and active <= 2:
obox.set_active(active)
else:
obox.set_active(0)
obox.connect('changed',
lambda obj: config.set(constant, obj.get_active() + 1))
obox.connect(
'changed',
lambda obj: config.set('preferences.age-display-precision',
obj.get_active() + 1))
lwidget = BasicLabel(_("%s: ")
% _('Age display precision (requires restart)'))
grid.attach(lwidget, 0, row, 1, 1)
@@ -1300,10 +1301,10 @@ class GrampsPreferences(ConfigureDialog):
obox = Gtk.ComboBoxText()
formats = FamilyRelType().get_standard_names()
list(map(obox.append_text, formats))
constant = 'preferences.family-relation-type'
obox.set_active(config.get(constant))
obox.set_active(config.get('preferences.family-relation-type'))
obox.connect('changed',
lambda obj: config.set(constant, obj.get_active()))
lambda obj: config.set('preferences.family-relation-type',
obj.get_active()))
lwidget = BasicLabel(_("%s: ") % _('Default family relationship'))
grid.attach(lwidget, 0, row, 1, 1)
grid.attach(obox, 1, row, 2, 1)
@@ -1489,6 +1490,26 @@ class GrampsPreferences(ConfigureDialog):
align=Gtk.Align.CENTER, bold=True)
row = 1
self.add_pos_int_entry(
grid, _('Markup for invalid date format'),
row, 'preferences.invalid-date-format',
self.update_markup_entry,
helptext=_(
'Convenience markups are:\n'
'<b>&lt;b&gt;Bold&lt;/b&gt;</b>\n'
'<big>&lt;big&gt;'
'Makes font relatively larger&lt;/big&gt;</big>\n'
'<i>&lt;i&gt;Italic&lt;/i&gt;</i>\n'
'<s>&lt;s&gt;Strikethrough&lt;/s&gt;</s>\n'
'<sub>&lt;sub&gt;Subscript&lt;/sub&gt;</sub>\n'
'<sup>&lt;sup&gt;Superscript&lt;/sup&gt;</sup>\n'
'<small>&lt;small&gt;'
'Makes font relatively smaller&lt;/small&gt;</small>\n'
'<tt>&lt;tt&gt;Monospace font&lt;/tt&gt;</tt>\n'
'<u>&lt;u&gt;Underline&lt;/u&gt;</u>\n\n'
'For example: &lt;u&gt;&lt;b&gt;%s&lt;/b&gt;&lt;/u&gt;\n'
'will display <u><b>Underlined bold date</b></u>.\n'))
row += 1
self.add_spinner(
grid, _('Date about range'),
row, 'behavior.date-about-range', (1, 9999))
@@ -1516,26 +1537,6 @@ class GrampsPreferences(ConfigureDialog):
self.add_spinner(
grid, _('Average years between generations'),
row, 'behavior.avg-generation-gap', (10, 30))
row += 1
self.add_pos_int_entry(
grid, _('Markup for invalid date format'),
row, 'preferences.invalid-date-format',
self.update_markup_entry,
helptext=_(
'Convenience markups are:\n'
'<b>&lt;b&gt;Bold&lt;/b&gt;</b>\n'
'<big>&lt;big&gt;'
'Makes font relatively larger&lt;/big&gt;</big>\n'
'<i>&lt;i&gt;Italic&lt;/i&gt;</i>\n'
'<s>&lt;s&gt;Strikethrough&lt;/s&gt;</s>\n'
'<sub>&lt;sub&gt;Subscript&lt;/sub&gt;</sub>\n'
'<sup>&lt;sup&gt;Superscript&lt;/sup&gt;</sup>\n'
'<small>&lt;small&gt;'
'Makes font relatively smaller&lt;/small&gt;</small>\n'
'<tt>&lt;tt&gt;Monospace font&lt;/tt&gt;</tt>\n'
'<u>&lt;u&gt;Underline&lt;/u&gt;</u>\n\n'
'For example: &lt;u&gt;&lt;b&gt;%s&lt;/b&gt;&lt;/u&gt;\n'
'will display <u><b>Underlined bold date</b></u>.\n'))
return _('Dates'), grid
@@ -1572,7 +1573,7 @@ class GrampsPreferences(ConfigureDialog):
self.add_checkbox(grid, _('Add tag on import'), current_line,
cb_const, stop=2,
extra_callback=self.toggle_tag_on_import,
tooltip=_("Specifed tag will be added on import.\n"
tooltip=_("Specified tag will be added on import.\n"
"Clear to set default value."))
grid.attach(self.tag_format_entry, 2, current_line, 1, 1)
@@ -1778,7 +1779,9 @@ class GrampsPreferences(ConfigureDialog):
formats = [_("Never"),
_("Every 15 minutes"),
_("Every 30 minutes"),
_("Every hour")]
_("Every hour"),
_("Every 12 hours"),
_("Every day")]
list(map(obox.append_text, formats))
active = config.get('database.autobackup')
obox.set_active(active)
@@ -1808,6 +1811,8 @@ class GrampsPreferences(ConfigureDialog):
for plugin in sorted(backend_plugins, key=lambda plugin: plugin.name):
if plugin.id == default:
active = count
if plugin.id == 'bsddb':
continue # bsddb is deprecated, so don't allow setting
model.append(row=[count, plugin.name, plugin.id])
count += 1
obox.set_model(model)
@@ -1827,12 +1832,10 @@ class GrampsPreferences(ConfigureDialog):
Show dialog to choose media directory.
"""
f = Gtk.FileChooserDialog(title=_("Select media directory"),
parent=self.window,
action=Gtk.FileChooserAction.SELECT_FOLDER,
buttons=(_('_Cancel'),
Gtk.ResponseType.CANCEL,
_('_Apply'),
Gtk.ResponseType.OK))
transient_for=self.window,
action=Gtk.FileChooserAction.SELECT_FOLDER)
f.add_buttons(_('_Cancel'), Gtk.ResponseType.CANCEL,
_('_Apply'), Gtk.ResponseType.OK)
mpath = media_path(self.dbstate.db)
f.set_current_folder(os.path.dirname(mpath))
@@ -1877,12 +1880,10 @@ class GrampsPreferences(ConfigureDialog):
Show dialog to choose backup directory.
"""
f = Gtk.FileChooserDialog(title=_("Select backup directory"),
parent=self.window,
action=Gtk.FileChooserAction.SELECT_FOLDER,
buttons=(_('_Cancel'),
Gtk.ResponseType.CANCEL,
_('_Apply'),
Gtk.ResponseType.OK))
transient_for=self.window,
action=Gtk.FileChooserAction.SELECT_FOLDER)
f.add_buttons(_('_Cancel'), Gtk.ResponseType.CANCEL,
_('_Apply'), Gtk.ResponseType.OK)
backup_path = config.get('database.backup-path')
if not backup_path:
backup_path = config.get('database.path')
@@ -2093,9 +2094,9 @@ class GrampsPreferences(ConfigureDialog):
self.all_avail_fonts, callback=self.utf8_update_font,
valueactive=True, setactive=active_val)
if len(available_fonts) == 1:
single_font = self.all_avail_fonts[choosefont.get_active()][1]
single_font = self.all_avail_fonts[choosefont.get_active()][0]
config.set('utf8.selected-font',
self.all_avail_fonts[single_font])
self.all_avail_fonts[single_font][1])
self.utf8_show_example()
symbols = Symbols()
all_sbls = symbols.get_death_symbols()
@@ -2162,11 +2163,9 @@ class GrampsPreferences(ConfigureDialog):
scrollw.set_size_request(600, 100)
text = Gtk.Label()
text.set_line_wrap(True)
font_description = Pango.font_description_from_string(font)
text.modify_font(font_description)
self.activate_change_font()
text.set_halign(Gtk.Align.START)
text.set_text(my_characters)
text.set_markup("<span font='%s'>%s</span>" % (font, my_characters))
scrollw.add(text)
scrollw.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
self.grid.attach(scrollw, 1, 7, 8, 1)
@@ -2179,12 +2178,9 @@ class GrampsPreferences(ConfigureDialog):
my_characters += symbols.get_death_symbol_for_char(death_symbl)
text = Gtk.Label()
text.set_line_wrap(True)
font_description = Pango.font_description_from_string(font)
text.modify_font(font_description)
text.set_halign(Gtk.Align.START)
text.set_markup("<big><big><big><big>" +
my_characters +
"</big></big></big></big>")
text.set_markup("<big><big><big><big><span font='%s'>%s</span>"
"</big></big></big></big>" % (font, my_characters))
self.grid.attach(text, 1, 8, 8, 1)
scrollw.show_all()
text.show_all()
+41 -98
View File
@@ -54,18 +54,14 @@ from gi.repository import GObject
from gramps.gen.const import GRAMPS_LOCALE as glocale
from gramps.gen.db.dbconst import DBBACKEND
from gramps.gen.db.utils import make_database
from gramps.gen.db.upgrade import make_zip_backup
_ = glocale.translation.gettext
from gramps.cli.grampscli import CLIDbLoader
from gramps.gen.config import config
from gramps.gen.db.exceptions import (DbUpgradeRequiredError,
BsddbDowngradeError,
DbVersionError,
DbPythonError,
DbEnvironmentError,
BsddbUpgradeRequiredError,
BsddbDowngradeRequiredError,
PythonUpgradeRequiredError,
PythonDowngradeError,
DbSupportedError,
DbConnectionError)
from .pluginmanager import GuiPluginManager
from .dialog import (DBErrorDialog, ErrorDialog, QuestionDialog2,
@@ -163,130 +159,70 @@ class DbLoader(CLIDbLoader):
if not os.access(filename, os.W_OK):
mode = "r"
self._warn(_('Read only database'),
_('You do not have write access '
'to the selected file.'))
_('You do not have write access '
'to the selected file.'))
else:
mode = "w"
else:
mode = 'w'
dbid_path = os.path.join(filename, DBBACKEND)
if os.path.isfile(dbid_path):
with open(dbid_path) as fp:
dbid = fp.read().strip()
else:
dbid = "bsddb"
db = make_database(dbid)
db.disable_signals()
self.dbstate.no_database()
if db.requires_login() and username is None:
login = GrampsLoginDialog(self.uistate)
credentials = login.run()
if credentials is None:
return
username, password = credentials
self._begin_progress()
self.uistate.progress.show()
self.uistate.pulse_progressbar(0)
force_schema_upgrade = False
force_bsddb_upgrade = False
force_bsddb_downgrade = False
force_python_upgrade = False
try:
while True:
dbid_path = os.path.join(filename, DBBACKEND)
if os.path.isfile(dbid_path):
with open(dbid_path) as fp:
dbid = fp.read().strip()
else:
dbid = "bsddb"
db = make_database(dbid)
db.disable_signals()
if db.requires_login() and username is None:
login = GrampsLoginDialog(self.uistate)
credentials = login.run()
if credentials is None:
return
username, password = credentials
try:
db.load(filename, self._pulse_progress,
db.load(filename, self.uistate.pulse_progressbar,
mode, force_schema_upgrade,
force_bsddb_upgrade,
force_bsddb_downgrade,
force_python_upgrade,
username=username,
password=password)
if self.dbstate.is_open():
self.dbstate.db.close(
user=User(callback=self._pulse_progress,
user=User(callback=self.uistate.pulse_progressbar,
uistate=self.uistate,
dbstate=self.dbstate))
self.dbstate.change_database(db)
break
except DbUpgradeRequiredError as msg:
if QuestionDialog2(_("Are you sure you want "
except (DbSupportedError, DbUpgradeRequiredError) as msg:
if(force_schema_upgrade or
QuestionDialog2(_("Are you sure you want "
"to upgrade this Family Tree?"),
str(msg),
_("I have made a backup,\n"
"please upgrade my Family Tree"),
_("Cancel"),
parent=self.uistate.window).run():
parent=self.uistate.window).run()):
force_schema_upgrade = True
force_bsddb_upgrade = False
force_bsddb_downgrade = False
force_python_upgrade = False
else:
self.dbstate.no_database()
break
except BsddbUpgradeRequiredError as msg:
if QuestionDialog2(_("Are you sure you want "
"to upgrade this Family Tree?"),
str(msg),
_("I have made a backup,\n"
"please upgrade my Family Tree"),
_("Cancel"),
parent=self.uistate.window).run():
force_schema_upgrade = False
force_bsddb_upgrade = True
force_bsddb_downgrade = False
force_python_upgrade = False
else:
self.dbstate.no_database()
break
except BsddbDowngradeRequiredError as msg:
if QuestionDialog2(_("Are you sure you want "
"to downgrade this Family Tree?"),
str(msg),
_("I have made a backup,\n"
"please downgrade my Family Tree"),
_("Cancel"),
parent=self.uistate.window).run():
force_schema_upgrade = False
force_bsddb_upgrade = False
force_bsddb_downgrade = True
force_python_upgrade = False
else:
self.dbstate.no_database()
break
except PythonUpgradeRequiredError as msg:
if QuestionDialog2(_("Are you sure you want "
"to upgrade this Family Tree?"),
str(msg),
_("I have made a backup,\n"
"please upgrade my Family Tree"),
_("Cancel"),
parent=self.uistate.window).run():
force_schema_upgrade = False
force_bsddb_upgrade = False
force_bsddb_downgrade = False
force_python_upgrade = True
make_zip_backup(filename)
else:
self.dbstate.no_database()
break
# Get here is there is an exception the while loop does not handle
except BsddbDowngradeError as msg:
self.dbstate.no_database()
self._warn( _("Cannot open database"), str(msg))
except DbVersionError as msg:
self.dbstate.no_database()
self._errordialog( _("Cannot open database"), str(msg))
except DbPythonError as msg:
self.dbstate.no_database()
self._errordialog( _("Cannot open database"), str(msg))
except DbEnvironmentError as msg:
self.dbstate.no_database()
self._errordialog( _("Cannot open database"), str(msg))
except PythonDowngradeError as msg:
self.dbstate.no_database()
self._warn( _("Cannot open database"), str(msg))
except DbConnectionError as msg:
self.dbstate.no_database()
self._warn(_("Cannot open database"), str(msg))
@@ -300,7 +236,8 @@ class DbLoader(CLIDbLoader):
except Exception as newerror:
self.dbstate.no_database()
self._dberrordialog(str(newerror))
self._end_progress()
self.uistate.progress.hide()
return True
#-------------------------------------------------------------------------
@@ -317,6 +254,13 @@ def add_all_files_filter(chooser):
mime_filter.add_pattern('*')
chooser.add_filter(mime_filter)
def icase(ext):
"""
Return a glob reresenting a case insensitive file extension.
"""
return ''.join(['[{}{}]'.format(s.lower(), s.upper()) for s in ext])
#-------------------------------------------------------------------------
#
# Format selectors: explictly set the format of the file
@@ -380,7 +324,7 @@ class GrampsLoginDialog(ManagedWindow):
self.title = _("Login")
ManagedWindow.__init__(self, uistate, [], self.__class__, modal=True)
dialog = Gtk.Dialog(parent=uistate.window)
dialog = Gtk.Dialog(transient_for=uistate.window)
grid = Gtk.Grid()
grid.set_border_width(6)
grid.set_row_spacing(6)
@@ -446,8 +390,7 @@ class GrampsImportFileDialog(ManagedWindow):
file_filter = Gtk.FileFilter()
name = "%s (.%s)" % (plugin.get_name(), plugin.get_extension())
file_filter.set_name(name)
file_filter.add_pattern("*.%s" % plugin.get_extension())
file_filter.add_pattern(plugin.get_extension().capitalize())
file_filter.add_pattern("*.%s" % icase(plugin.get_extension()))
import_dialog.add_filter(file_filter)
(box, type_selector) = format_maker()
@@ -526,7 +469,7 @@ class GrampsImportFileDialog(ManagedWindow):
return True
else:
try:
f = file(filename,'w')
f = open(filename,'w')
f.close()
os.remove(filename)
except IOError:
+2 -2
View File
@@ -367,7 +367,7 @@ class DbManager(CLIDbManager, ManagedWindow):
dbid = config.get('database.backend')
backend_type = self.get_backend_name_from_dbid(dbid)
if backend_type == UNAVAILABLE:
dbid = 'bsddb'
dbid = 'sqlite'
config.set('database.backend', dbid)
backend_type = self.get_backend_name_from_dbid(dbid)
self.new_btn.set_tooltip_text(backend_type)
@@ -938,7 +938,7 @@ class DbManager(CLIDbManager, ManagedWindow):
fname = os.path.join(dirname, filename)
os.unlink(fname)
dbase = make_database("bsddb")
dbase = make_database("sqlite")
dbase.load(dirname, None)
self.__start_cursor(_("Rebuilding database from backup files"))

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