Compare commits

..

254 Commits

Author SHA1 Message Date
kulath 4370fa29ad Fix Testcasegenerator to generate correct LDS ordinances for people and
families (avoids an error when the GEDCOM is reimported).
2016-06-13 18:51:54 +01:00
romjerome 20bb38de62 9003: Locality data in address was not imported 2015-10-27 09:53:12 +01:00
romjerome 7c3073c54a 6684: Unused Object Dialog box too small 2015-09-05 10:50:26 +02:00
kulath f96c6ce2a0 0008537: Gedcom import crashes
(1) Fix count of individuals in libgedcom/GedcomStageOne/parse so that
magic transactions are used when more than 1000 individuals.
(2) Remove use of find_backlink_handles in libgedcom so it doesn't
crash.
2015-07-27 22:12:30 +01:00
Zdeněk Hataš 5c88ccfe7a czech translation update 2015-06-06 17:07:32 +02:00
Doug Blank 93197c4677 Fixed GW import issue with citation handles 2015-05-23 10:38:09 -04:00
John Ralls 9b0145d050 More mac fixups for 3.4.9 release. 2015-05-02 17:20:56 -07:00
John Ralls 2b9efedd41 Mac updates for releasing 3.4.9. 2015-05-02 11:45:58 -07:00
SNoiraud 9a8af2289a narrativeweb : bug 8528 : local variable 'body' referenced before assignment 2015-05-01 10:30:11 +02:00
Jérôme Rapinat 58d30e6ded make official release 2015-04-30 15:28:56 +02:00
Jérôme Rapinat b656d55364 update translation template
was change around GEDCOM SUBM tag

update french translation

remove extra 'gramps/gui/viewmanager.py' file from 34 branch
2015-04-28 20:07:25 +02:00
John Ralls 2fc6750867 Use MSWin environment variables USERPROFILE and APPDATA.
Instead of GRAMPSHOME. GRAMPSHOME is based on the assumption that
the config directory is GRAMPSHOME/gramps, and that causes the
default location for reports and backups to be ~/Library/Application Support.
The MSWin variables allow the two to be separated.

Thanks to Tim Lyons for the suggestion.

(cherry picked from commit c11c63169f)
2015-04-25 17:01:21 -07:00
Leonhaeuser 44d9578622 update German translation 2015-04-24 21:59:33 +02:00
kulath 78c79202de 0001360: Gedcom input: SUBN and SUBM record handling
Fixed:
(a) Additional spaces beyond the first between a GEDCOM tag and the rest
of the line are not ignored.

(b) The SUBMitter name is ignored (it is overwritten by the XREF).

(c) SUBmissioN data items are not committed to the database.
2015-04-24 10:51:08 +01:00
John Ralls df1ffe06e1 Fix gtk-critical error when setting mac menubar.
Port of 3147cf5 from master.
2015-04-17 15:20:27 -07:00
kulath c46f7dde41 0002370: GEDCOM import/export round trip causes lost information
Fixed output of Adoption records so "1 ADOP" is only written once for
the person event and the adoption relationship.
2015-04-12 19:04:08 +01:00
Nemeséri Lajos e9c3ca1620 update Hungarian translation 2015-04-01 16:18:58 +02:00
Jérôme Rapinat 46cf600fac 6403: false positive on pattern 2015-04-01 15:53:46 +02:00
kulath 3246bf77d3 0004412: Entering a witness to an event such as marriage
In some circumstances (after a Father's age of Mother's age) a witness
could be ignored.
2015-04-01 14:48:41 +01:00
Jérôme Rapinat 3501a9666c 6403: add a rule for checking mapping key 2015-04-01 15:25:07 +02:00
Matt Keenan ee0bc905da 8468: GuiColorOption missing avail-changed event handler 2015-03-31 10:21:29 -07:00
kulath 8be01ff00e 0008355: Gramps can't [GEDCOM] import estim. date period exported by
itself

Changed output format to DATE EST FROM TO and DATE CALC FROM TO. Also
changed in Narrative Web (which uses the same functions).
2015-03-31 10:48:16 +01:00
Jérôme Rapinat 5c278cfc36 update template; fr.po:8103: sidebar gramplet does not fit well into Event and Citation views 2015-03-19 16:19:01 +01:00
Jérôme Rapinat 915522c989 8451: Fix crash on RelGraph report with unknown gender 2015-03-19 16:12:01 +01:00
Paul Franklin e4ebeb247a 7155: Support creating directories in various scenarios 2015-03-18 14:04:26 -07:00
Zdeněk Hataš e6c7a53580 czech translation update 2015-03-13 17:33:00 +01:00
kulath 10aca55568 0008401: NameError in GEDCOM importer 2015-03-12 14:10:04 +00:00
kulath 5fc71a7923 0008322: Event address is lost on import, i.e. disconnected from event.
On GEDCOM import, Places are only merged if the Place Title and the
whole of the main location are identical.
2015-03-12 12:32:17 +00:00
kulath d25385328b Make a zip backup if schema is to be upgraded see 8134: Error converting
python2 utf-8 strings to python3 str when loading data from database
2015-03-02 17:42:51 +00:00
kulath 5c6259edbc 0007824: Regression: running gramps from crontab fails 2015-03-01 16:48:35 +00:00
kulath 1452b499ff 0008380: tag_map is not initialized 2015-02-28 20:48:16 +00:00
kulath 63a8a2955d 8233: Fix bad handle in explanation note for unknown event 2015-02-27 18:22:23 +00:00
Paul Franklin 97762815bc 8316: Family with children but no parents is lost on filtered export 2015-02-23 10:35:59 -08:00
kulath fed7d5e5b8 0008347: GEDCOM import of embedded notes attached to media does not work 2015-02-16 22:51:26 +00:00
Jérôme Rapinat d3f346808f fix typos, thank you phcook 2015-02-16 20:08:50 +01:00
kulath c1e356769e 0007014: Errors handling owner/submitter information in GEDCOM files.
Only import researcher from GEDCOM or XML if the family tree was
originally empty.
2015-02-02 18:57:16 +00:00
Nick Hall 31a222a754 7533: Check for active person in session log gramplet 2015-01-21 23:04:43 +00:00
Nick Hall bbe5e0ec84 7770: Always display main participants 2015-01-21 18:56:43 +00:00
Nick Hall 57209001cb 7299: Fix bug when family has no parents 2015-01-21 17:40:21 +00:00
kulath 7c3094b5b5 Merge branch 'maintenance/gramps34' of ssh://git.code.sf.net/p/gramps/source into maintenance/gramps34 2015-01-08 17:44:42 +00:00
kulath 489d12d484 0008283: GEDCOM export does not export media attached to citations. Fix
for gramps34
2015-01-07 17:57:20 +00:00
Jérôme Rapinat a6659515d5 New year... 2015-01-02 10:12:04 +01:00
Enno Borgsteede b094b4b7a7 Fix missing mediaattrembedlist reference for building 2015-01-02 10:11:16 +01:00
Paul Franklin bf20905761 specify SVG font size is in points, for stupid viewers 2014-12-30 10:50:55 -08:00
Paul Franklin 555a244a45 8240: can't disable box shadow in SVG descendant tree 2014-12-30 10:42:14 -08:00
Paul Franklin 78ec6a26a2 8237: descendant tree graphical report, syntax error in svg output 2014-12-17 19:37:45 -08:00
kulath 942b51945c Merge branch 'maintenance/gramps34' of ssh://kulath@git.code.sf.net/p/gramps/source into maintenance/gramps34 2014-12-14 17:53:28 +00:00
kulath 6a5b630a05 Fix 0008234: Various problems with docgen.TextDoc.add_media_object part
(1) for gramps34 branch
2014-12-14 17:48:04 +00:00
Jérôme Rapinat c97aeb0f1a 6934: backport environment for better managing custom attributes on Media, new MediaAttrEmbedList class 2014-12-12 09:42:46 +01:00
kulath 503d3bf6ca 8196: Spurious spaces in CLI List Family Trees, tab delimited output.
Print statements changed to assemble the whole line before output.
2014-11-24 18:13:06 +00:00
noirauds 951e9341cf bug 7929: HTML View fails to load on Debian unstable. 2014-11-22 23:04:11 +01:00
Jérôme Rapinat c864804eac 8122: DB lock not checked when opening database from the recent opened trees 2014-10-24 09:43:54 +02:00
Paul Franklin 87a5ae428e enhance Serbian date handler to handle Cyrillic dates 2014-10-17 18:10:42 -07:00
Jérôme Rapinat 6b55af1e03 8103: sidebarfilter gramplet does not fit well into People, Events, Citations or Media views 2014-10-15 22:00:46 +02:00
Luigi Toscano 9dc8e62951 Fix few messages 2014-09-27 23:38:39 +02:00
Paul Franklin e398d3db2d sync gramps34's _Date_sr.py with gramps41's _date_sr.py 2014-09-25 10:03:44 -07:00
Zdeněk Hataš 320bbeb0b6 8064: translation fixes 2014-09-18 12:26:57 +02:00
Zdeněk Hataš 7af4bf5d5f Typo fix. 2014-09-14 20:20:29 +02:00
Petr Hejl 9fb493415a 8051: Can't fill in calculated and estimated dates in cs locale 2014-09-11 18:02:14 +02:00
John Ralls 7c35586ae2 Change OsmGpsMaps to git branch gtk2 from tarball
Prereq for cherry-picking Open Street Maps and Google Maps fixes.
2014-09-09 17:55:56 -07:00
Paul Franklin 82294e6a82 revert part of 8014 patch, pending further review 2014-08-25 11:27:46 -07:00
Björn Samvik 2203f28b28 8014: Importing gedcom files containing multibyte UTF-8 characters fails 2014-08-25 10:47:46 -07:00
Paul Franklin 7c27167042 tweak to "default" CSS choice for the narrated web report 2014-08-20 07:54:11 -07:00
Paul Franklin 6cb766326f enable the "default" CSS choice for the narrated web report
Otherwise, whenever you start the report, you get this:

WARNING: _enumeratedlist.py: line 124: Value 'default' not found for option 'StyleSheet'
2014-08-17 12:46:19 -07:00
Paul Franklin 716096be44 7888: crash while scrolling in person view 2014-07-20 13:25:19 -07:00
Paul Franklin 58d5d61789 7861: In Ahnentafel Report, Use Christening Date if no Birth Date 2014-07-11 15:38:05 -07:00
Paul Franklin 01ee2d9a30 7739: [Narweb:] Missing webpage for media [under some circumstances] 2014-07-10 09:24:26 -07:00
Paul Franklin 755eeaf1dc more translated strings in gramps34 Chinese date handler
(but it is still not enabled, as it awaits more testing)
2014-06-26 19:20:07 -07:00
Mirko Leonhaeuser fd2db583c1 Fixed 0006655 and 0007840 2014-06-22 18:08:10 +02:00
Paul Franklin 16cbe024ec 7398: Gedcom import deletes first char of notes 2014-06-11 10:05:08 -07:00
Paul Franklin 97a1419281 7784 "IndexError: list index out of range" on [initial CLI "gramps -t"] 2014-06-05 08:01:14 -07:00
Jérôme Rapinat 2d4e36a074 5024 7770: typo around 'Last Change' column into Person Selector 2014-06-02 17:55:52 +02:00
John Ralls f2c9e7cfc8 Patch PIL to build with Freetype2 2014-05-30 10:12:20 -07:00
John Ralls a006b930d9 Update mac packaging for 3.4.8 release. 2014-05-30 09:54:18 -07:00
Jérôme Rapinat 29dc9bdc54 bump to 3.4.9 2014-05-29 19:41:38 +02:00
Jérôme Rapinat af39c293b7 make official '3.4.8' release 2014-05-29 19:32:48 +02:00
Peter Landgren a2f8526bb7 Updated Swedish translation 2014-05-29 17:38:23 +02:00
Omar Kohl 803e515afa Git Merge Request #9: Spanish typo 2014-05-29 15:56:06 +02:00
Zdeněk Hataš 32cb8f4e63 typo 2014-05-28 21:33:15 +02:00
Zdeněk Hataš 9b91f40c28 czech translation update 2014-05-24 23:13:49 +02:00
Ondrej Krc 1daa4b0493 Merge Request #8: Typo fix in slovak translation 2014-05-23 14:54:16 +01:00
John Ralls 73d9c3052e Update remote location of gtk-osx modulesets to gnome.org. 2014-05-20 11:08:11 -07:00
John Ralls 630351daa5 7598: No narrative.css File After Running Narrated Website Report 2014-05-20 11:08:11 -07:00
Nick Hall 679dcf1b6e 7152: Fix error when importing database from the CLI 2014-05-20 13:29:51 +01:00
Paul Franklin 89d6a819d7 5690: Can create multiple events with same Gramps-ID 2014-05-13 14:16:26 -07:00
Paul Franklin ce9753fe99 5690: Can create multiple events with same Gramps-ID 2014-05-11 10:33:23 -07:00
donfano 14eb354a4b 7685: Correction of the LDS ordinance names in French 2014-05-11 10:33:57 +02:00
Pitxyoki e5ba3d1894 7671: Typo on Portuguese translation for 'third grandson/daughter' 2014-05-09 12:20:31 +02:00
Jérôme Rapinat 33dc25a323 update template; consistency on translation strings 2014-05-04 15:54:54 +02:00
Paul Franklin d4c3cfaac2 use a standard string, not a unique string 2014-05-03 15:14:47 -07:00
verthezp fd62969f5a 7662: Missing closing bracket in Web_Basic-Spruce.css 2014-05-03 17:37:22 +02:00
Jérôme Rapinat e84aff4c0e update template and french translation 2014-04-29 10:55:34 +02:00
Paul Franklin 2a9a6a4373 translate the new GVFamilyLines strings 2014-04-26 09:56:28 -07:00
Mirko Leonhaeuser 69a8ebb61c update German translation 2014-04-23 18:35:02 +02:00
Paul Franklin 419bf93d42 7620: 'Display as' field in Name Editor reverts to Preferences default ... 2014-04-21 13:52:18 -07:00
Paul Franklin f09c5d1a69 flag some semicolons, for translation in Arabic 2014-04-20 16:32:25 -07:00
Vassilii Khachaturov 17e7135d93 RU: update translation from gramps40 2014-04-11 09:24:48 +03:00
Nick Hall 114a8ff173 Fix bug in family events gramplet 2014-04-10 18:44:41 +01:00
Nick Hall c74c91a9e0 Fix family editor callback 2014-04-10 18:18:02 +01:00
Nick Hall 64d87eaeb2 7119: Register history objects at startup 2014-04-10 17:17:12 +01:00
Zdeněk Hataš f8f4ab1751 czech translation update 2014-04-10 10:23:03 +02:00
Paul Franklin 8129b4036b make gramps XML the initial default export type 2014-04-08 19:24:26 -07:00
Mirko Leonhaeuser 08d8124bc3 update German translation 2014-04-07 18:08:34 +02:00
Nick Hall e7ca43f996 7584: Fix update of active object after merge 2014-04-05 19:08:30 +01:00
Mirko Leonhaeuser 5576b266d3 update German translation 2014-04-04 22:41:23 +02:00
Jérôme Rapinat 2ddcb79a2f Update template (~4 modified/new strings) and the french translation 2014-04-04 15:51:32 +02:00
Nick Hall ba1eafdf44 More informative messages in citation editor 2014-04-03 18:47:30 +01:00
Nick Hall 34df591118 Fix drag & drop in citation editor 2014-04-03 16:05:50 +01:00
Nick Hall 7a713e84d2 7137: Fix updating of events gramplets 2014-03-29 23:50:04 +00:00
Nick Hall 3d64617ca1 7559: Fix bug in abandon changes and quit 2014-03-29 19:46:59 +00:00
Jérôme Rapinat ee80c46747 7559: more accurate word for 'Undo' on french translation 2014-03-25 11:59:05 +01:00
Igal Shapira a9407cd4f5 Updated Hebrew translations - update to latest gramps.pot and some minor fixes 2014-03-25 09:47:08 +01:00
Luigi Toscano b729a2f0c5 Italian translation updates (3.4.x) 2014-03-23 02:44:14 +01:00
Zdeněk Hataš 6b96dbbf17 czech translation update 2014-03-20 16:42:13 +01:00
Jérôme Rapinat 3d3a7d4115 Update template and french translation, new string on gvfamilylines [93f724] 2014-03-19 09:10:58 +01:00
Paul Franklin 93f724bc47 fix translation of children count to use ngettext 2014-03-18 18:24:58 -07:00
Mirko Leonhaeuser 4d8b2bb7bc update German translation 2014-03-18 22:30:20 +01:00
Peter Landgren 042e599d8b Swedish translation update. 2014-03-18 16:03:02 +01:00
Jérôme Rapinat aac85d6b57 7276: [82078e] update template and french translation 2014-03-17 19:04:09 +01:00
Paul Franklin 82078e6956 7276: translate some punctuation marks -- partial 2014-03-17 08:40:58 -07:00
Jérôme Rapinat bfcf062368 6369 Couldn't find a target for a mnemonic activation on confidence into Citation Editor 2014-03-16 11:10:14 +01:00
Jérôme Rapinat 17ca1443fb [c9c8d3]: update translation template and french translation, new source selection and citation editor simplification 2014-03-15 21:30:38 +01:00
Nick Hall c9c8d31902 Simplify citation editor and add source selection 2014-03-15 18:52:42 +00:00
Mirko Leonhaeuser 7ecc9a7f8c update German translation 2014-03-15 16:35:53 +01:00
Jérôme Rapinat c2965640a4 7510: do not drag and drop more than one data into editor tabs 2014-03-15 11:16:26 +01:00
Muhammad Bashir Al-Noimi 0d5c20db79 update Arabic translation 2014-03-13 20:26:55 +01:00
Jérôme Rapinat 9bd9d118d0 update template and french translation 2014-03-07 14:52:45 +01:00
kulath 56c67576d5 6194: Database corrupted - TypeError: unhashable type: 'list'
Fixed upgrade to deal with sourceref in media references in Sources.
Also fixed Check and Repair to repair previously broken databases.
2014-03-04 19:11:57 +00:00
Peter Landgren b971373182 Update Swedish translation. 2014-03-04 10:39:35 -08:00
Nick Hall ed65d4e7df 7342: Update column order in editor event tabs 2014-02-28 14:00:13 +00:00
Nick Hall a0bb7ddfd1 7342: Split details column in events gramplet 2014-02-28 13:56:07 +00:00
Nick Hall da3bff2ec4 7342: Update default columns in event view
Add main participant.
Change order to be consistent with selector.
2014-02-28 12:52:28 +00:00
Nick Hall 591263e4bb 7342: Better column order in event selector 2014-02-28 12:50:27 +00:00
Nick Hall 04f9d46451 Add author column to source selector 2014-02-28 12:14:47 +00:00
Vassilii Khachaturov 17a4147644 7097: EditNote hangs initially on misspelled note
reapply [4182ac] from gramps40
2014-02-27 18:57:21 +02:00
Paul Franklin 7f2bd919a1 7276: translate some punctuation marks -- partial 2014-02-26 10:20:11 -08:00
John Ralls 8ee6525f06 Move icu module to gtk-osx-unsupported.modules 2014-02-25 15:19:33 -08:00
Vassilii Khachaturov 4ede3aa4ab 7097: spell.py hangs on a note for tens of secods
Back-port my fix from gramps40: [ef1027] [c81ff4] [ee9151]
2014-02-19 16:33:12 +02:00
Jérôme Rapinat 567a526857 566 7477: Translate 'New Style' and 'Default' on StyleEditor; update template for translation strings 2014-02-19 15:27:54 +01:00
Mirko Leonhaeuser 574124a688 fix bug #0007487 and update German translation 2014-02-18 21:43:26 +01:00
noirauds a588afb395 0007488: After creating narrative web report, some temporary files remains in /tmp 2014-02-17 09:46:54 +01:00
Paul Franklin 3e8ca5613e 7477: Users should not be allowed to delete 'default' style in Style Editor 2014-02-16 11:25:54 -08:00
Paul Franklin 5a1694b981 translate some paper names, suggested in 0566 2014-02-16 11:16:47 -08:00
Paul Franklin 7434da9f63 0566: Translate the "New Style" and "Default" on StyleEditor.py 2014-02-16 11:11:53 -08:00
Paul Franklin 67b5308f6f encode every "style" file in utf-8 2014-02-09 13:33:39 -08:00
noirauds 2c2f42be55 bug 7368 : os.environ['http_proxy'] gives an error if http_proxy is not set. 2014-02-09 11:02:01 +01:00
noirauds ca8f2626c4 bug 7368 : Geography gramplet does not communicate over proxy server with autorisation. 2014-02-08 12:53:34 +01:00
Paul Franklin 7f757e0304 7439: pre-load alert dialogs crash w/o DISPLAY 2014-02-04 20:22:47 -08:00
Jérôme Rapinat e4abd21dae 3 new strings [221541] 2014-02-04 18:50:27 +01:00
Nick Hall 4fbcb530cf Fix person sidebar filter 2014-02-04 15:38:39 +00:00
Nick Hall 2215416396 Add HasDayOfWeek rule 2014-02-03 21:58:04 +00:00
Nick Hall 600043913b 7419: HasEventBase should not include primary role 2014-02-02 16:08:06 +00:00
Nick Hall c31dfcb767 7429: Fix bug when an empty string is used as custom type 2014-02-02 15:35:19 +00:00
John Ralls 27c25b876d Don't load quartz input module on OSX 10.5 2014-02-01 13:11:35 -08:00
Jérôme Rapinat ed8847b3d9 7427: do not depend on osmgpsmap and pyexiv2 (debian package); include gramps-autogen.sh into next tarballs 2014-01-31 19:47:56 +01:00
Mirko Leonhaeuser 1baa31be41 update German translation 2014-01-29 18:22:23 +01:00
John Ralls abc534ee44 Updates for 3.4.7 2014-01-28 16:29:58 -08:00
Nick Hall f277f6c00c 7419: Fix HasEvent filter in sidebar gramplet 2014-01-28 19:14:41 +00:00
Jérôme Rapinat 427a47b642 7413: COPYING file is missing into debian package 2014-01-27 18:18:33 +01:00
Jérôme Rapinat f25cd60b64 Bump to '3.4.8' 2014-01-27 11:04:46 +01:00
Jérôme Rapinat 6e3d087d55 make official '3.4.7' release 2014-01-27 10:50:39 +01:00
Jérôme Rapinat f093950351 update for 4.0.3 release 2014-01-27 10:47:23 +01:00
Jérôme Rapinat 05f72293de 6519: 3 new strings around event roles on filter rules [b8fa34] 2014-01-26 21:02:29 +01:00
Nick Hall b8fa348621 6519: Add primary role option to event filter 2014-01-26 16:09:17 +00:00
Jérôme Rapinat f5b57d71fe 7183: two new strings for a new filter rule 2014-01-25 21:14:59 +01:00
Nick Hall 0972d72079 7183: Fix source note citation filter 2014-01-25 19:50:47 +00:00
Jérôme Rapinat e22bd2bfcb 7388: Clicking on www link in Welcome Gramplet when detached causes crash 2014-01-25 19:05:05 +01:00
Mirko Leonhaeuser a4a24ca233 update German translation 2014-01-24 00:39:29 +01:00
Nick Hall 2717b1f826 Make event groups consistent with event type menu 2014-01-23 19:31:29 +00:00
Nick Hall c606c1f11b 5123: Fix bug in associations filter 2014-01-22 16:16:11 +00:00
Jérôme Rapinat 19249844a1 update current year to 2014 2014-01-22 16:11:23 +01:00
Doug Blank bb9e1d2f52 7075: backport fix on [db79b0] 2014-01-22 15:58:24 +01:00
Jérôme Rapinat 68e8759a65 7361: Do not save column order if there is not at least one column 2014-01-22 14:42:04 +01:00
Mirko Leonhaeuser fc8404d9bc update German translation 2014-01-21 21:38:37 +01:00
Jérôme Rapinat f12304adb7 5775: rebuild template (one new string) and make french translation more consistent 2014-01-21 20:55:08 +01:00
Theophraste 39e03dbcca 5775: ID reorder tool doesn't update citation IDs
Applied the patch by the original submitter, tested manually
with shared and not shared citations on a big DB.
2014-01-21 21:21:22 +02:00
Vassilii Khachaturov 71b3de2e7b RU: translation update - back-merge from gramps40 2014-01-21 17:31:47 +02:00
Jérôme Rapinat 569b7482f2 7404: update docstring 2014-01-21 15:39:26 +01:00
Jérôme Rapinat c4186b916a 7361: Keep at least one column on views 2014-01-21 11:17:48 +01:00
Vassilii Khachaturov aa9deb6a3d 7360: disable cal switch along with OK button
As proposed by Jérôme.
2014-01-21 10:11:55 +02:00
Mirko Leonhaeuser 50c5cd9a9a update German translation 2014-01-20 21:44:03 +01:00
Vassilii Khachaturov 8b30ade6a4 NEWS: HTTPS on gramps project web 2014-01-19 18:49:29 +02:00
Vassilii Khachaturov ecdccaf351 7360: Calendar conversion broken in date editor
1) using a new field self.validated_date instead of self.date
that collided with the switch_calendar callback
2) provide for the Date.set failure possibility in
switch_calendar, and do no field conversion if it throws,
just switch the calendar (thanks to Nick for finding)
2014-01-19 18:36:25 +02:00
Jérôme Rapinat 8bc6336e27 7397: cannot focus on newyear field for edition 2014-01-17 19:14:58 +01:00
Benny Malengier f25ce97653 7157: better support for objects having citations as subobjects 2014-01-15 09:36:47 +01:00
Mirko Leonhaeuser 3c67dea703 update German translation 2014-01-13 16:12:09 +01:00
Jérôme Rapinat 195eb00f34 7342: New event types; www.gramps-project.org/wiki/index.php?title=Custom_Event_Types ; sub-menu on selector 2014-01-08 18:24:24 +01:00
Nick Hall 6618cdcfb2 Enhance event type selector to use sub-menus 2014-01-06 21:49:33 +00:00
Nick Hall 6b98ad9319 Add custom types to selection widgets 2014-01-06 19:57:14 +00:00
Jérôme Rapinat 6da6c61c7c Update template (one new string for CSV export); update french translation 2014-01-06 17:41:22 +01:00
Jérôme Rapinat 57e408ada5 5024: add 'Last Change' column on selectors, when missing 2014-01-06 17:09:45 +01:00
Mirko Leonhaeuser d538fe6ebc update German translation 2014-01-02 13:25:46 +01:00
Nick Hall c0770988c6 7340: Performance improvement in ancestor filter 2013-12-31 17:43:47 +00:00
Vassilii Khachaturov fe71887ad1 NEWS: svn->git transition is definitely noteworthy 2013-12-30 11:49:02 +02:00
Vassilii Khachaturov e2b1a6e568 initial draft of some NEWS items for 3.4.7 2013-12-30 11:47:50 +02:00
Vassilii Khachaturov 429c18af6a 6380: GEDCOM export error for family _UID
Applying patch from 2013-12-24 by Enno Borgsteede,
fixing attribute processing on the path that handled _UID
and adding another extension, _FSFTID.
2013-12-30 10:42:01 +02:00
Nick Hall eb44633c42 7333: Reduce number of columns in LDS temple selector 2013-12-26 17:36:38 +00:00
Vassilii Khachaturov dd2a5c4a35 7327: clean up file open/lock/close code
In preparation for fixing the bug, discovered minor glitches
in the open/lock/close logic on error paths. Using the RAII syntax
for xml_file and removing redundant unlock-before-close.
2013-12-26 18:45:18 +02:00
Vassilii Khachaturov e4df103e39 file header comment - +(C) -RCS kwd 2013-12-26 17:35:12 +02:00
Vassilii Khachaturov b22ae317ae 6955: warn on non-primary surnames not exported 2013-12-26 17:35:11 +02:00
Jérôme Rapinat d8b2349a6c #7317: DateEdit statusbar and invalid dates; new strings (help links to manual for person and name editors; update template and french translation 2013-12-22 15:33:06 +01:00
Vassilii Khachaturov 6b0b9f209f 7317: DateEdit statusbar to report invalid dates
Add/remove an explanatory prompt on the statusbar along
with disabling/enabling the "OK" button when the date
is invalid.
2013-12-21 22:45:42 +02:00
Vassilii Khachaturov 0c80c5eeea 7317: DateEdit statusbar to report invalid dates
add the status bar to the date editor dialog
2013-12-21 22:43:11 +02:00
Vassilii Khachaturov 86b0a3800a add specific help links for person/name editor 2013-12-19 19:33:12 +02:00
Jérôme Rapinat 0fc8b6b1c4 7147 7001: Merge person dialog does not properly adjust context section after expand 2013-12-17 15:14:35 +01:00
Vassilii Khachaturov 6caf08659e 7229: change active person upon a bookmark select
Follow-up for review w/Nick Hall:
rm redundant call to goto_handle in NavigationView.jump
2013-12-16 21:42:12 +02:00
Vassilii Khachaturov d98e63d0e0 7229: change active person upon a bookmark select
Rename goto_handle to change_active in ListBookmarks and
derived classes, in line with [fff1f2].
2013-12-15 16:33:56 +02:00
Vassilii Khachaturov fff1f21ab3 7229: change active person upon a bookmark select
NavigationView: register self.change_active, not
self.goto_handle as the callback when initializing self.bookmarks,
as suggested by Nick Hall.
2013-12-15 16:27:22 +02:00
Vassilii Khachaturov c7c0b2c6bd 7229: change active person upon a bookmark select
Revert [88d2a2]. See 7229:33418.
2013-12-15 15:38:49 +02:00
Vassilii Khachaturov 10954921ef 6921: Use "Bat Mitzvah" as the en_US event name
p3/3: related msgid changes in the POT
2013-12-14 17:00:48 +02:00
Vassilii Khachaturov 4f86a36090 6921: Use "Bat Mitzvah" as the en_US event name
p2/3: related msgid changes in the translaion DBs
See also
http://www.gramps-project.org/wiki/index.php?title=Coding_for_translation#Changing_translated_text_message_in_the_source_code
2013-12-14 16:59:11 +02:00
Vassilii Khachaturov 0021e8cec2 6921: Use "Bat Mitzvah" as the en_US event name
p1/3: actual change in the code. Note that the abbreviation
also has to be changed accordingly.
2013-12-14 16:58:42 +02:00
Vassilii Khachaturov c32160b254 7300: "Add citation" missing in pop-up menu 2013-12-14 16:27:23 +02:00
Vassilii Khachaturov 2eca306acf 7290: use simpler math in image_dpi 2013-12-14 16:06:59 +02:00
Vassilii Khachaturov 2f5e221711 7290: align warning with the image_dpi fix logic 2013-12-14 16:01:06 +02:00
Vassilii Khachaturov 36f84e1d0d 7290: image_dpi default calc based on gtk.gdk 2013-12-14 14:19:14 +02:00
Vassilii Khachaturov 161ce3b66e 7290: ImgManip.image_dpi shouldn't return None
always return a sensible default, even if we couldn't read the DPI
Use the data from Matthias Basler for ODF docgen code, as
that is the only user of image_dpi anyway.
2013-12-12 18:40:04 +02:00
Vassilii Khachaturov 460e631e5b 7288/7290 refactor out crop_percentage_to_pixel
trivial wrapper for crop_percentage_to_subpixel
2013-12-12 18:25:10 +02:00
Vassilii Khachaturov a8a38ff87d 7288/7290 refactor out crop_percentage_to_subpixel 2013-12-12 17:58:14 +02:00
Vassilii Khachaturov 0d61bb01ab 7288/7290: refactor fix from matthiasbasler
Cluster DPI-aware code together
More precise comment
2013-12-12 17:28:59 +02:00
Vassilii Khachaturov 08814624b6 rm relict RCS kwd 2013-12-12 17:04:48 +02:00
Vassilii Khachaturov 76df5d703a 7288/7290: image cropping fixes in ODFDoc
Applied the patch from Matthias Basler attached to bug #7288,
without the rename of x and y variables to minimize the diff.

Code reviewed for correctness and retested manually.
Further work needed (probably on the master branch only):
1) DPI default of 96 -- need to verify platform independence
2) Proper refactoring of the code into ODF-specific pieces
and image manipulation that should go down into ImgManip.py
2013-12-12 17:04:48 +02:00
Mirko Leonhaeuser 7a154fa680 update German translation 2013-12-11 19:54:12 +01:00
Vassilii Khachaturov 3d02d6b4a3 7288: report PIL version with --version
help debugging the bug with wrong image aspect ration in ODF
2013-12-10 18:04:06 +02:00
Vassilii Khachaturov 67be5f3714 7086: "Remove selected items?" inconsistent YES/NO
also make "YES" the default choice for "Confirm every deletion?"
2013-12-05 17:10:54 +02:00
Vassilii Khachaturov d6e1ada425 7086: "Remove selected items?" inconsistent YES/NO
For gramps34, only change the text to be consistent,
won't fix the rest as the GUI code around this place has
changed in later branches.
2013-12-05 16:38:16 +02:00
Vassilii Khachaturov ee9a23715e 7273: imprecise l10n of 'before' as 'перед' in RU 2013-12-05 16:18:37 +02:00
Vassilii Khachaturov 5c467c3bb3 7172: more meaningful LOG warning plug/utils.py 2013-12-05 13:46:54 +02:00
Mirko Leonhaeuser 3a5b0bca9a update German translation 2013-12-03 20:37:56 +01:00
Jérôme Rapinat b14eb08727 6918: try to limit lintian messages by merging Ross Gammon's work on Debian packaging 2013-11-30 10:48:13 +01:00
Vassilii Khachaturov bf6219e3a9 7256: extra spaces in HTML GV labels 2013-11-28 23:06:04 +02:00
noirauds efb318b433 Geography : bug7240 : create a bookmark via GeoEvents leads to an empty link 2013-11-27 21:18:42 +01:00
Vassilii Khachaturov 91424cfec7 Change version string to contain git hash instead of svn revision
Align "gramps --version" with master as of [57daf4],
within or without .git available.
2013-11-27 20:34:48 +02:00
Vassilii Khachaturov 0753f87630 7212: convert invalid date to text on .gw import
Back-port from master [829986] [1ac0e2]
2013-11-27 18:21:15 +02:00
Vassilii Khachaturov d8f5d40c4c 7212: A person with invalid dates (as datestr)
impex.sh passes, even on Gedcom
2013-11-26 11:50:09 +02:00
Vassilii Khachaturov 88d2a2b84c 7229: change active person upon a bookmark select 2013-11-26 11:08:36 +02:00
Vassilii Khachaturov 80fa9b19b8 7212: convert invalid dates to text on import
Back-ported [4d9381] - use named format strings to enable l10n.
2013-11-25 11:09:24 +02:00
Vassilii Khachaturov 36d91fc68b 7212: convert invalid dates to text on import
Back-port from gramps40 [cca72aa] and [befcd21]

Unit test run as follows (4/4 passed):
	LANG=en_GB.utf8 python plugins/import/test/ImportXml_test.py -v
2013-11-23 21:23:01 +02:00
Vassilii Khachaturov f527a82380 Date editor crashes on invalid date
Back-port from gramps40 the following commits as a single change:
[ca4eab8] [b4a5df2] [531e662] [83c6788] [1d654a2]
2013-11-23 20:44:56 +02:00
Vassilii Khachaturov a00b413906 7198, 7212: attach invalid date to DateError
Back-port [872bf57] from gramps40
2013-11-23 20:26:46 +02:00
Vassilii Khachaturov d96b01318a 7198,7212: fix Date.set(value=None)
back-port [3c93c1d] from gramps40
2013-11-23 20:22:41 +02:00
Vassilii Khachaturov 62cd754ef4 7197: back-port the fix 68c0615b from gramps40
The failing test now passes.

Back-porting work done:
1) use numbers in format strings for str.format, for py2.6 compat
2) downgrade to_struct to dateval as there's no to_struct in gramps34

Original commit:
	commit 68c0615bc4
	Author: Vassilii Khachaturov <vassilii@tarunz.org>
	Date:   Fri Nov 15 15:43:27 2013 +0200

		7197: merge the fix from master
2013-11-15 18:33:06 +02:00
Vassilii Khachaturov 5e78d54c9c 7197: test demonstrating the bug
Merge from master
	commit 93ca90f3b8
	Author: Vassilii Khachaturov <vassilii@tarunz.org>
	Date:   Thu Nov 14 22:41:46 2013 +0200

		7197: more failing tests
Not merging the datehandler_test.py changes as datehandler_test.py
hasn't been back-ported, and this test is enough to show the bug
on gramps34.
2013-11-15 18:19:09 +02:00
John Ralls 2cb90d353f Bug 7191: Cursor keys just beep on PPC with Gramps 3.4.6
It's actually on both PPC and Intel, and it's from forgetting to update
gramps.accel after upgrading Gtk past 2.24.10, which changed the mapping
of alt/option from Mod5 to Mod1.
2013-11-14 09:27:33 -08:00
Vassilii Khachaturov d49dbfcc08 RU translation fix 2013-11-12 11:23:24 +02:00
John Ralls 2646a39ac6 Fix gramps.modules for git conversion 2013-11-09 17:36:31 -08:00
Nick Hall 4594f754a0 Update url to example file 2013-11-09 19:48:47 +00:00
Nick Hall a3bf964f96 Skip .git instead of .svn directories 2013-11-09 00:17:52 +00:00
Jérôme Rapinat 5c1f0b6924 6918: http://lintian.debian.org/tags/old-fsf-address-in-copyright-file.html
svn: r23457
2013-11-07 11:36:59 -08:00
Vassilii Khachaturov 2eb8b98f8f 6194: add debugging to track the bug
Note that reflist is not an iterable but a flat list, so the added
debugging doesn't drain any delayed computations...

svn: r23449
2013-11-04 09:25:40 +00:00
Vassilii Khachaturov 59470368d3 7167: support python2.6 where str.format() is used
svn: r23442
2013-10-30 07:39:25 +00:00
Jérôme Rapinat 227a1e6378 7151: update start of Ramadan in France
svn: r23438
2013-10-29 17:47:36 +00:00
John Ralls 3059382574 Mac: Release 3.4.6
svn: r23433
2013-10-28 16:08:41 +00:00
Jérôme Rapinat 18119b6eb8 bump to 3.4.7
svn: r23432
2013-10-28 15:54:12 +00:00
208 changed files with 50432 additions and 40644 deletions
+1 -1
View File
@@ -2,7 +2,7 @@
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
675 Mass Ave, Cambridge, MA 02139, USA
51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
+1 -1
View File
@@ -4,7 +4,7 @@
SUBDIRS = m4 po src data example
EXTRA_DIST = \
config.rpath autogen.sh \
config.rpath autogen.sh gramps-autogen.sh \
FAQ COPYING \
intltool-extract.in intltool-merge.in intltool-update.in
+102 -1
View File
@@ -1,6 +1,107 @@
2014-04-30
Version 3.4.9 of Gramps! "I am no longer infected", a maintenance release.
* Error converting python2 utf-8 strings to python3 str when loading data from database
* Gedcom input: SUBN and SUBM record handling
* [Gedcom] import/export round trip causes lost information
* [Gedcom] Gramps can't import estim. date period exported by itself
* [Gedcom] import deletes first char of notes
* [Gedcom] import of embedded notes attached to media does not work
* [Gedcom] NameError in importer
* [Gedcom] export does not export media attached to citations
* [Gedcom] Errors handling owner/submitter information
* [Gedcom] Event address is lost on import, i.e. disconnected from event
* [Gedcom] Entering a witness to an event such as marriage might be ignored
* [Gedcom] Importing file containing multibyte UTF-8 characters fails
* Event list in editors does not display content into 'Main Participants' column
* Fix 'Last Change' column into Person Selector
* Support creating directories in various scenarios
* tag_map is not initialized
* Fix bad handle in explanation note for unknown event
* Narrative website: Missing webpage for media with missing thumbnail on person page
* Enable the "default" CSS choice for the narrated web report
* Crash while scrolling in person view
* Crash when attempting to create Places Report
* Error in Session Log gramplet with no active person
* In Ahnentafel Report, Use Christening Date if no Birth Date Present
* Family with children but no parents is lost on filtered export
* Some labels now fit better on citations sidebar filter
* Can't disable box shadow in SVG descendant tree
* Descendant tree graphical report, syntax error in svg output
* Various problems with docgen.TextDoc.add_media_object
* Spurious spaces in CLI List Family Trees, tab delimited output. Print statements changed to assemble the whole line before output.
* GuiColorOption missing avail-changed event handler
* Regression: running gramps from crontab fails
* Better support for handling custom media attributes on edition
* DB lock not checked when opening database from the recent opened trees menu item
* List index out of range" on [initial CLI "gramps -t"]
* HTML View fails to load on Debian unstable
* Fix unknown gender relationships hander for the french locale
* Can't fill in calculated and estimated dates in czech locale
* Enhance Serbian date handler to handle Cyrillic dates
* Updated translations: cs, de, fr, hu, it
* Fix mac menubar setting
* Fix mac OsmGpsMaps setting
* Enable PIL with Freetype2 support on mac
2014-05-29
Version 3.4.8 of Gramps! "Forget about your sin, give the audience a grin", a maintenance release.
* Database corrupted - TypeError: unhashable type: 'list'
* Fix bug in abandon changes and quit
* Fix error when importing database from the CLI
* 'Display as' field in Name Editor reverts to Preferences default
* Geography does not communicate over proxy server with autorisation
* Event gramplet filter does not have field for primary role
* New HasDayOfWeek filter rule
* Error when leaving a Gramps type field blank in an editor
* Fix creation of events with same Gramps-ID
* Enhancements and consitency on events gramplet, selector and view
* Enhanced Citation Editor
* Fix update of active object after merge
* Do not drag and drop more than one data into editor tabs
* Media Editor error if Path value was changed to a non existing file
* Register history objects at startup
* Users should not be allowed to edit and delete 'default' style into Style Editor
* Missing closing bracket in Web_Basic-Spruce.css
* Some temporary files remains in /tmp with NarrativeWeb report
* Some fixes and enhancements
* No narrative.css File After Running Narrated Website Report
* Paper names and Styles values are now translated
* Translate some punctuation marks
* Fix Relationships handler for Portuguese
* Updated translations: ar, cs, de, es, fr, he, it, ru, sk, sv
2014-01-27
Version 3.4.7 of Gramps! "Ask me tomorrow, but not today", a maintenance release.
* Gramps project web hosting now has an HTTPS interface; the old HTTP URLs redirect to it.
* Development switched from SVN to git.
* Add new filter rule matching citations having a source with a <text> on a note
* Add primary role option to event filter
* Add Groups support and reduce number of lines in Event types selector
* Add 'Last Change' column on selectors, when missing
* Fix a filter rule on citation sidebar (Source:Note)
* Fix url in Welcome gramplet when detached
* Fix bug in associations filter
* Better support for objects having citations as subobjects
* Check Tag handling on people views
* Keep at least one column on views
* Reorder tool now updates citation IDs
* Performance improvement in ancestor filter
* Reduce number of columns in LDS temple selector
* Fix menu action for last recently opened family trees
* Fix minor visual issue on Merge Person dialog
* Use 'Bat Mitzvah' (en_US event name)
* "Add citation" missing in pop-up menu
* Fix HTML spacing on GraphViz output
* Enhancement on date validation into Date Editor
* Invalid dates (like 2013-02-30) no longer crash the date editor or file import.
* Fixed image handling in ODF docgen, thanks to Matthias Basler for the initial patch.
* Fixed GEDCOM export for family _UID, added support for _FSFTID, by Enno Borgsteede.
* Fixed bookmark handling in navigation views.
* Multiple maintainability and usability improvements.
* Translation updates and translation-related fixes.
2013-10-28
Version 3.4.6 of Gramps! "The Answer to the Ultimate Question", a maintenance release.
* Citation merge works better for all objects with citations
* Fixed citations attached to family events
* Fixed several crashes, hangs, and data corruption scenarios
+3 -3
View File
@@ -5,16 +5,16 @@ dnl May need to run automake && aclocal first
AC_PREREQ(2.57)
dnl NOTE: arg to macro below becomes the "VERSION"
AC_INIT(gramps, 3.4.6, [gramps-bugs@lists.sourceforge.net])
AC_INIT(gramps, 3.4.9, [gramps-bugs@lists.sourceforge.net])
AC_CONFIG_SRCDIR(configure.in)
AM_INIT_AUTOMAKE([1.6.3 foreign])
AC_CONFIG_MACRO_DIR([m4])
RELEASE=0.SVN$(svnversion -n .)
dnl RELEASE=$(git log -1 --format=%h .)
dnl RELEASE=0beta
dnl RELEASE=0rc1
dnl RELEASE=1
RELEASE=1
VERSIONSTRING=$VERSION
if test x"$RELEASE" != "x"
+3 -16
View File
@@ -1,19 +1,6 @@
gramps for Debian
----------------------
-----------------
This is the Debian package of GRAMPS.
python-webkit is "Suggested" as upstream states it as optional in their README file. According to upstream, webkit needs to be tested for stability for Gramps (it is used in the hidden HTML View). If it is unstable, it may be necessary to revert to gecko (python-gtkmozembed).
Regarding the extra dependencies:
Recommends: graphviz
Enable creation of graphs
Recommends: python-gtkmozembed
Recommends: python-webkit
Enable html rendering for Geographic view and Web view. If both
are installed webkit will be used. python-gtkmozembed may be more
stable.
Recommends: python-pyicu
Suggests: ttf-freefont
Allows more fonts in reports
Suggests: python-gtkspell python-enchant
allows spell checking in the notes. Both need to be installed.
-- Ross Gammon <rossgammon@mail.dk> Wed, 23 Oct 2013 21:24:00 +0200
+1 -1
View File
@@ -1 +1 @@
7
9
+9 -12
View File
@@ -1,20 +1,19 @@
Source: gramps
Section: gnome
Priority: optional
Maintainer: Stéphane Charette <stephanecharette@gmail.com>
Build-Depends-Indep: libxml-parser-perl, python-gtk2, gettext, python-central (>= 0.5.6), python, intltool
Build-Depends: debhelper (>= 7)
Standards-Version: 3.8.3
Maintainer: Ross Gammon <rossgammon@mail.dk>
Build-Depends-Indep: libxml-parser-perl, python-gtk2, gettext, python, intltool
Build-Depends: debhelper (>= 9.0.0)
Standards-Version: 3.9.5
Vcs-Git: git://anonscm.debian.org/collab-maint/gramps.git
Vcs-browser: http://anonscm.debian.org/git/collab-maint/gramps.git
Homepage: http://www.gramps-project.org/
XS-Python-Version: >=2.5
Package: gramps
Architecture: all
Depends: ${python:Depends}, librsvg2-common, python-gtk2, xdg-utils, graphviz, python-osmgpsmap ${misc:Depends}
Replaces: gramps-manual, gramps-extending-doc
Conflicts: gramps-manual, gramps-extending-doc, gramps-common, python-gtk-1.2
Recommends: python-pyicu
Suggests: ttf-freefont, python-enchant, python-gtkspell, python-pyexiv2
Depends: ${python:Depends}, librsvg2-common, python-gtk2, xdg-utils, ${misc:Depends}
Recommends: graphviz, python-pyicu, python-pyexiv2, python-osmgpsmap,
Suggests: ttf-freefont, python-gtkspell, python-pygoocanvas, python-webkit
Description: Genealogical research program
GRAMPS is an Open Source genealogy program written in Python, using
the GTK/GNOME interface. It is an extremely flexible program fitting
@@ -23,5 +22,3 @@ Description: Genealogical research program
GRAMPS has the ability to import GEDCOM files exported from many
proprietary genealogy programs and can produce a large number of
reports in many popular formats.
XB-Python-Version: ${python:Versions}
+136 -243
View File
@@ -1,251 +1,144 @@
This package was originally debianized by Brandon L. Griffith
<brandon@debian.org> on Sat, 19 May 2001 13:37:24 -0400.
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: Gramps
Source: http://gramps-project.org
The current Debian maintainer is James A. Treacy <treacy@debian.org>
Files: *
Copyright: 2000-2002, Bruce J. DeGrasse
2000-2008, Donald N. Allingham
2000-2007, Martin Hawlisch
2001, Andrés Sepúlveda
2001, David R. Hampton
2001-2013, Free Software Foundation, Inc.
2001, Jesper Zedlitz
2001-2013, the Gramps Project
2002, Gary Shao
2003-2006, Josiah Carlson
2004-2006, Eero Tamminen
2004-2013, Julio Sánchez
2004, Toshio Kuratomi
2005-2011, Serge Noiraud
2000-2007, Alex Roitman
2006-2011, Brian G. Matherly
2007-2011, Benny Malengier
2007-2012, Douglas S. Blank
2007-2012, Gary Burton
2007-2011, Jerome Rapinat
2007, Johan Gronqvist
2007, Robert Cawley
2007-2009, Stephane Charette
2007, Thom Sturgill
2007-2008, Zsolt Foldvari
2008-2010, 2012, Craig J. Anderson
2008-2009, James Friedmann
2008-2009, Jason Simanek
2008-2011, Kees Bakker
2008, Lukasz Rymarczyk
2008-2010, Peter G. Landgren
2008, 2010, Raphael Ackermann
2008-2011, Reinhard Mueller
2008, 2011, Robert Cheramy
2008-2012, Rob G. Healey
2008, Stefan Siegel
2009-2010, Andrew I Baznikin
2009, 2011, The Dojo Foundation
2009, Florian Heinle
2009, Gerald W. Britton
2009, 2011, John Resig
2009-2013, Nick Hall
2009, Pander Musubi
2009, Robert Ham
2009-2010, Stephen George
2009, Swoon on bug tracker
2009, Yevgeny Zegzda
2010, Gramps
2010, Jakim Friant
2010, Josip
2010, lcc & Robert Jerome
2010-2012, Michiel D. Nauta
2010-2013, Tim G L Lyons
2010-2011, Vlada Perić
2011, Adam Stein
2011, 2013 Heinz Brinker
2011, Helge Herz
2011, John Ralls
2011, Matt Keenan
2011-2013, Paul Franklin
2012, Mathieu MD
2013, Fedir Zinchuk
2013, Oleh Petrivk
2013, Vassilii Khachaturov
2013, Zissis Papadopoulos
License: GPL-2+
It was downloaded from http://gramps-project.org
Files: debian/*
Copyright: 2001-2002, Brandon L. Griffith
2002, Alex Roitman
2002-2012, James A. Treacy
2013, Ross Gammon
License: GPL-2+
Upstream Authors:
Donald N. Allingham, Alexander Roitman, Martin Hawlisch, Richard Taylor,
Brian Matherly, Tim Waugh, Donald A. Peterson, David Hampton
Files: src/plugins/webstuff/js/jquery-ui-1.7.2.custom.min.js
Copyright: 2009, jQuery UI Team (http://jqueryui.com/about/)
License: MIT and GPL-2
========================================================
Copyright: 2001-2006 Donald N. Allingham
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.
Files: src/plugins/webstuff/js/jquery-1.7.1.js
Copyright: 2009, jQuery UI Team (http://jqueryui.com/about/)
License: MIT and GPL-2
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.
Files: src/plugins/webstuff/js/jquery-1.3.2.min.js
Copyright: 2009, jQuery UI Team (http://jqueryui.com/about/)
License: MIT and GPL-2
You should have received a copy of the GNU General Public License with
the Debian GNU/Linux distribution in file /usr/share/common-licenses/GPL;
if not, write to the Free Software Foundation, Inc., 59 Temple Place,
Suite 330, Boston, MA 02111-1307 USA
License: GPL-2
This package 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; version 2 only of the License.
.
This package 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 package; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
.
On Debian systems, the complete text of the GNU General
Public License can be found in `/usr/share/common-licenses/GPL-2'.
On Debian systems, the complete text of the GNU General Public
License can be found in /usr/share/common-licenses/GPL
License: GPL-2+
This package 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 package 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 package; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
.
On Debian systems, the complete text of the GNU General
Public License can be found in `/usr/share/common-licenses/GPL-2'.
========================================================
The files in help/C directory are Copyright 2006 Alexander Roitman
This documentation 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 documentation 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 with
the Debian GNU/Linux distribution in file /usr/share/common-licenses/GPL;
if not, write to the Free Software Foundation, Inc., 59 Temple Place,
Suite 330, Boston, MA 02111-1307 USA
========================================================
The files in help/fr directory are Copyright 2003-2006 Jerome Rapinat
This documentation 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 documentation 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 with
the Debian GNU/Linux distribution in file /usr/share/common-licenses/GPL;
if not, write to the Free Software Foundation, Inc., 59 Temple Place,
Suite 330, Boston, MA 02111-1307 USA
========================================================
The data/grampsxml.dtd file is Copyright 2001 Graham J. William
and Copyright 2000-2006 Donald N. Allingham
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 with
the Debian GNU/Linux distribution in file /usr/share/common-licenses/GPL;
if not, write to the Free Software Foundation, Inc., 59 Temple Place,
Suite 330, Boston, MA 02111-1307 USA
========================================================
The src/TreeTips.py file is Copyright 2004 Toshio Kuratomi
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 with
the Debian GNU/Linux distribution in file /usr/share/common-licenses/GPL;
if not, write to the Free Software Foundation, Inc., 59 Temple Place,
Suite 330, Boston, MA 02111-1307 USA
========================================================
The src/data/fdl.txt file is Copyright 2000,2001,2002
Free Software Foundation, Inc.
59 Temple Place, Suite 330,
Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
========================================================
The file src/docgen/ODFDoc.py file is Copyright 2005-2006 Serge Noiraud
and Copyright 2005-2006 Donald N. Allingham
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 with
the Debian GNU/Linux distribution in file /usr/share/common-licenses/GPL;
if not, write to the Free Software Foundation, Inc., 59 Temple Place,
Suite 330, Boston, MA 02111-1307 USA
========================================================
The file src/Mime/_WinMime.py file is Copyright 2006 Brian Matherly
and Copyright 2006 Donald N. Allingham
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 with
the Debian GNU/Linux distribution in file /usr/share/common-licenses/GPL;
if not, write to the Free Software Foundation, Inc., 59 Temple Place,
Suite 330, Boston, MA 02111-1307 USA
========================================================
The src/plugins/Ancestors.py file is Copyright 2003 Tim Waugh
and Copyright 2003-2006 Donald N. Allingham
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 with
the Debian GNU/Linux distribution in file /usr/share/common-licenses/GPL;
if not, write to the Free Software Foundation, Inc., 59 Temple Place,
Suite 330, Boston, MA 02111-1307 USA
========================================================
The src/plugins/CountAncestors.py file is Copyright 2001 Jesper Zedlitz
and Copyright 2001-2006 Donald N. Allingham
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 with
the Debian GNU/Linux distribution in file /usr/share/common-licenses/GPL;
if not, write to the Free Software Foundation, Inc., 59 Temple Place,
Suite 330, Boston, MA 02111-1307 USA
========================================================
The files:
src/plugins/DetAncestralReport.py
src/plugins/DetDescendantReport.py
are Copyright 2000-2002 Bruce J. DeGrasse
and Copyright 2002-2006 Donald N. Allingham
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 with
the Debian GNU/Linux distribution in file /usr/share/common-licenses/GPL;
if not, write to the Free Software Foundation, Inc., 59 Temple Place,
Suite 330, Boston, MA 02111-1307 USA
========================================================
The files:
src/date_test.py
src/DataViews/_PedigreeView.py
src/plugins/DumpGenderStats.py
src/plugins/ExportVCalendar.py
src/plugins/ExportVCard.py
src/plugins/ImportGeneWeb.py
src/plugins/ImportvCard.py
src/plugins/TestcaseGenerator.py
src/plugins/WriteGeneWeb.py
are Copyright 2001-2006 Martin Hawlisch, Donald N. Allingham
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 with
the Debian GNU/Linux distribution in file /usr/share/common-licenses/GPL;
if not, write to the Free Software Foundation, Inc., 59 Temple Place,
Suite 330, Boston, MA 02111-1307 USA
========================================================
The files:
src/ReportBase/__init__.py
src/ReportBase/_Report.py
are Copyright 2001 David R. Hampton
and Copyright 2001-2006 Donald N. Allingham
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 with
the Debian GNU/Linux distribution in file /usr/share/common-licenses/GPL;
if not, write to the Free Software Foundation, Inc., 59 Temple Place,
Suite 330, Boston, MA 02111-1307 USA
License: MIT
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following conditions:
.
The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.
.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
-1
View File
@@ -1,5 +1,4 @@
AUTHORS
FAQ
NEWS
README
TODO
+1
View File
@@ -0,0 +1 @@
debian/gramps.xpm usr/share/pixmaps/
+7 -1
View File
@@ -1,3 +1,9 @@
#!/bin/sh -e
#!/bin/sh
set -e
# Update mime database postinst
if [ -x /usr/sbin/update-mime-database ]; then
update-mime-database /usr/share/mime
fi
#DEBHELPER#
+7 -1
View File
@@ -1,3 +1,9 @@
#!/bin/sh -e
#!/bin/sh
set -e
# Update mime database postrm
if [ -x /usr/sbin/update-mime-database ]; then
update-mime-database /usr/share/mime
fi
#DEBHELPER#
+13 -69
View File
@@ -1,73 +1,17 @@
#!/usr/bin/make -f
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
#export DH_OPTIONS=-v
build: build-stamp
build-stamp:
dh_testdir
%:
dh $@ --with python2
#./autogen.sh --prefix=/usr --mandir=\$${prefix}/share/man --sysconfdir=/etc
./configure --enable-packager-mode --prefix=/usr --mandir=\$${prefix}/share/man --sysconfdir=/etc
# ./configure --prefix=`pwd`/debian/tmp/usr --mandir=\$${prefix}/share/man
$(MAKE)
# $(MAKE) html
# Remove COPYING file (duplicates standard copyright)
override_dh_install:
dh_install
# Need COPYING file into About dialog
#rm debian/gramps/usr/share/gramps/COPYING
touch build-stamp
clean:
dh_testdir
dh_testroot
# [ ! -f Makefile ] || $(MAKE) distclean
# -rm -f src/*.pyo src/*/*.pyo
# -rm -f config.status config.log
dh_auto_clean
dh_clean
install: build
dh_testdir
dh_testroot
dh_prep
dh_installdirs
# Add here commands to install the package into debian/tmp.
# GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1
$(MAKE) install DESTDIR=`pwd`/debian/gramps
-rm -f debian/gramps/usr/share/gramps/COPYING
ln -s /usr/share/common-licenses/GPL-2 debian/gramps/usr/share/gramps/COPYING
-rm -rf debian/gramps/usr/var
# cp src/data/gramps.xml debian/gramps/usr/share/mime/packages
-find debian/gramps/usr/share/ -name "*.pyo" -exec rm -f '{}' ';'
cp debian/gramps.xpm debian/gramps/usr/share/pixmaps/
# cp src/gramps.xpm debian/tmp/usr/share/pixmaps/
# cp src/images/gramps.svg debian/gramps/usr/share/pixmaps/
# chmod 644 debian/gramps/usr/share/pixmaps/gramps.svg
# Build architecture-independent files here.
binary-indep: build install
dh_testdir
dh_testroot
dh_installdocs FAQ
dh_installmenu
# dh_installman
dh_installmime -i
# dh_installchangelogs ChangeLog
dh_installchangelogs
dh_icons
# dh_movefiles -i
# dh_gconf -i
dh_link -i
dh_compress -i
dh_fixperms -i
dh_pycentral -i
dh_installdeb -i
dh_gencontrol -i
dh_md5sums -i
dh_builddeb -i
# Build architecture-dependent files here.
binary-arch: build install
binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install
# Test packager mode to avoid installing mime type
override_dh_auto_configure:
dh_auto_configure -- --enable-packager-mode
+3
View File
@@ -0,0 +1,3 @@
version=3
http://sf.net/gramps/gramps-(.+)\.tar\.gz
+32 -32
View File
@@ -25,7 +25,7 @@
1 BIRT
2 TYPE Birth of Anna Hansdotter
2 DATE 2 OCT 1864
2 PLAC Loderup, Malmous Lan, Sweden
2 PLAC Löderup, Malmöhus Län, Sweden
1 DEAT
2 TYPE Death of Anna Hansdotter
2 DATE 29 SEP 1945
@@ -55,7 +55,7 @@
1 BIRT
2 TYPE Birth of Hans Peter Smith
2 DATE 17 APR 1904
2 PLAC Ronne, Bornholm, Denmark
2 PLAC Rønne, Bornholm, Denmark
1 DEAT
2 TYPE Death of Hans Peter Smith
2 DATE 29 JAN 1977
@@ -74,7 +74,7 @@
1 BIRT
2 TYPE Birth of Hanna Smith
2 DATE 29 JAN 1821
2 PLAC Gladsax, Kristianstad Lan, Sweden
2 PLAC Gladsax, Kristianstad Län, Sweden
1 FAMC @F0@
1 CHAN
2 DATE 21 DEC 2007
@@ -87,7 +87,7 @@
1 BIRT
2 TYPE Birth of Herman Julius Nielsen
2 DATE 31 AUG 1889
2 PLAC Ronne, Bornholm, Denmark
2 PLAC Rønne, Bornholm, Denmark
1 DEAT
2 TYPE Death of Herman Julius Nielsen
2 DATE 1945
@@ -128,7 +128,7 @@
1 BIRT
2 TYPE Birth of Gus Smith
2 DATE 11 SEP 1897
2 PLAC Ronne, Bornholm, Denmark
2 PLAC Rønne, Bornholm, Denmark
1 DEAT
2 TYPE Death of Gus Smith
2 DATE 21 OCT 1963
@@ -146,7 +146,7 @@
1 BIRT
2 TYPE Birth of Jennifer Anderson
2 DATE 5 NOV 1907
2 PLAC Ronne, Bornholm, Denmark
2 PLAC Rønne, Bornholm, Denmark
1 DEAT
2 TYPE Death of Jennifer Anderson
2 DATE 29 MAY 1985
@@ -163,7 +163,7 @@
1 BIRT
2 TYPE Birth of Lillie Harriet Jones
2 DATE 2 MAY 1910
2 PLAC Ronne, Bornholm, Denmark
2 PLAC Rønne, Bornholm, Denmark
1 DEAT
2 TYPE Death of Lillie Harriet Jones
2 DATE 26 JUN 1990
@@ -227,7 +227,7 @@
1 BIRT
2 TYPE Birth of Carl Emil Smith
2 DATE 20 DEC 1899
2 PLAC Ronne, Bornholm, Denmark
2 PLAC Rønne, Bornholm, Denmark
1 DEAT
2 TYPE Death of Carl Emil Smith
2 DATE 28 JAN 1959
@@ -245,11 +245,11 @@
1 BIRT
2 TYPE Birth of Hjalmar Smith
2 DATE 31 JAN 1893
2 PLAC Ronne, Bornholm, Denmark
2 PLAC Rønne, Bornholm, Denmark
1 DEAT
2 TYPE Death of Hjalmar Smith
2 DATE 25 SEP 1894
2 PLAC Ronne, Bornholm, Denmark
2 PLAC Rønne, Bornholm, Denmark
1 FAMC @F3@
1 CHAN
2 DATE 21 DEC 2007
@@ -262,7 +262,7 @@
1 BIRT
2 TYPE Birth of Martin Smith
2 DATE 19 NOV 1830
2 PLAC Gladsax, Kristianstad Lan, Sweden
2 PLAC Gladsax, Kristianstad Län, Sweden
1 DEAT
2 TYPE Death of Martin Smith
2 DATE BET 1899 AND 1905
@@ -270,7 +270,7 @@
1 BAPM
2 TYPE Baptism of Martin Smith
2 DATE 23 NOV 1830
2 PLAC Gladsax, Kristianstad Lan, Sweden
2 PLAC Gladsax, Kristianstad Län, Sweden
1 FAMC @F0@
1 FAMS @F2@
1 NOTE @N0002@
@@ -285,7 +285,7 @@
1 BIRT
2 TYPE Birth of Astrid Shermanna Augusta Smith
2 DATE 31 JAN 1889
2 PLAC Ronne, Bornholm, Denmark
2 PLAC Rønne, Bornholm, Denmark
1 DEAT
2 TYPE Death of Astrid Shermanna Augusta Smith
2 DATE 21 DEC 1963
@@ -304,7 +304,7 @@
1 BIRT
2 TYPE Birth of Gustaf Smith, Sr.
2 DATE 28 NOV 1862
2 PLAC Grostorp, Kristianstad Lan, Sweden
2 PLAC Grostorp, Kristianstad Län, Sweden
1 DEAT
2 TYPE Death of Gustaf Smith, Sr.
2 DATE BEF 23 JUL 1930
@@ -316,7 +316,7 @@
1 CHR
2 TYPE Christening of Gustaf Smith, Sr.
2 DATE 7 DEC 1862
2 PLAC Gladsax, Kristianstad Lan, Sweden
2 PLAC Gladsax, Kristianstad Län, Sweden
1 FAMC @F2@
1 FAMS @F3@
1 CHAN
@@ -343,7 +343,7 @@
1 BIRT
2 TYPE Birth of Kirsti Marie Smith
2 DATE 15 DEC 1886
2 PLAC Ronne, Bornholm, Denmark
2 PLAC Rønne, Bornholm, Denmark
1 DEAT
2 TYPE Death of Kirsti Marie Smith
2 DATE 18 JUL 1966
@@ -378,7 +378,7 @@
1 DEAT
2 TYPE Death of Anna Streiffert
2 DATE 2 FEB 1927
2 PLAC Ronne, Bornholm, Denmark
2 PLAC Rønne, Bornholm, Denmark
1 FAMS @F11@
1 CHAN
2 DATE 21 DEC 2007
@@ -407,11 +407,11 @@
1 BIRT
2 TYPE Birth of Magnes Smith
2 DATE 6 OCT 1858
2 PLAC Simrishamn, Kristianstad Lan, Sweden
2 PLAC Simrishamn, Kristianstad Län, Sweden
1 DEAT
2 TYPE Death of Magnes Smith
2 DATE 20 FEB 1910
2 PLAC Ronne, Bornholm, Denmark
2 PLAC Rønne, Bornholm, Denmark
1 FAMC @F2@
1 FAMS @F11@
1 CHAN
@@ -515,14 +515,14 @@
1 BIRT
2 TYPE Birth of Elna Jefferson
2 DATE 14 SEP 1800
2 PLAC Gladsax, Kristianstad Lan, Sweden
2 PLAC Gladsax, Kristianstad Län, Sweden
1 DEAT
2 TYPE Death of Elna Jefferson
2 PLAC Sweden
1 CHR
2 TYPE Christening of Elna Jefferson
2 DATE 16 SEP 1800
2 PLAC Gladsax, Kristianstad Lan, Sweden
2 PLAC Gladsax, Kristianstad Län, Sweden
1 FAMS @F0@
1 CHAN
2 DATE 21 DEC 2007
@@ -560,7 +560,7 @@
1 BIRT
2 TYPE Birth of Kerstina Hansdotter
2 DATE 29 NOV 1832
2 PLAC Smestorp, Kristianstad Lan, Sweden
2 PLAC Smestorp, Kristianstad Län, Sweden
1 DEAT
2 TYPE Death of Kerstina Hansdotter
2 DATE BEF 1908
@@ -577,7 +577,7 @@
1 BIRT
2 TYPE Birth of Martin Smith
2 DATE BET 1794 AND 1796
2 PLAC Tommarp, Kristianstad Lan, Sweden
2 PLAC Tommarp, Kristianstad Län, Sweden
1 DEAT
2 TYPE Death of Martin Smith
2 PLAC Sweden
@@ -594,7 +594,7 @@
1 BIRT
2 TYPE Birth of Ingeman Smith
2 DATE 29 JAN 1826
2 PLAC Gladsax, Kristianstad Lan, Sweden
2 PLAC Gladsax, Kristianstad Län, Sweden
1 FAMC @F0@
1 CHAN
2 DATE 21 DEC 2007
@@ -661,7 +661,7 @@
1 BIRT
2 TYPE Birth of Ingar Smith
2 DATE AFT 1823
2 PLAC Gladsax, Kristianstad Lan, Sweden
2 PLAC Gladsax, Kristianstad Län, Sweden
1 FAMC @F0@
1 CHAN
2 DATE 21 DEC 2007
@@ -674,7 +674,7 @@
1 BIRT
2 TYPE Birth of Hjalmar Smith
2 DATE 7 APR 1895
2 PLAC Ronne, Bornholm, Denmark
2 PLAC Rønne, Bornholm, Denmark
1 DEAT
2 TYPE Death of Hjalmar Smith
2 DATE 26 JUN 1975
@@ -682,7 +682,7 @@
1 BAPM
2 TYPE Baptism of Hjalmar Smith
2 DATE 3 JUN 1895
2 PLAC Ronne Bornholm, Denmark
2 PLAC Rønne Bornholm, Denmark
1 EVEN
2 TYPE Immi
2 DATE 14 NOV 1912
@@ -701,7 +701,7 @@
1 BIRT
2 TYPE Birth of Emil Smith
2 DATE 27 SEP 1860
2 PLAC Simrishamn, Kristianstad Lan, Sweden
2 PLAC Simrishamn, Kristianstad Län, Sweden
1 FAMC @F2@
1 CHAN
2 DATE 21 DEC 2007
@@ -712,7 +712,7 @@
1 MARR
2 TYPE Marriage of Martin Smith and Elna Jefferson
2 DATE ABT 1816
2 PLAC Gladsax, Kristianstad Lan, Sweden
2 PLAC Gladsax, Kristianstad Län, Sweden
1 CHIL @I11@
1 CHIL @I7@
1 CHIL @I4@
@@ -748,7 +748,7 @@
1 MARR
2 TYPE Marriage of Magnes Smith and Anna Streiffert
2 DATE 24 AUG 1884
2 PLAC Ronne, Bornholm, Denmark
2 PLAC Rønne, Bornholm, Denmark
1 CHAN
2 DATE 21 DEC 2007
3 TIME 01:35:26
@@ -805,7 +805,7 @@
1 MARR
2 TYPE Marriage of Gustaf Smith, Sr. and Anna Hansdotter
2 DATE 27 NOV 1885
2 PLAC Ronne, Bornholm, Denmark
2 PLAC Rønne, Bornholm, Denmark
1 CHIL @I26@
1 CHIL @I23@
1 CHIL @I21@
@@ -831,7 +831,7 @@
1 MARR
2 TYPE Marriage of Herman Julius Nielsen and Astrid Shermanna Augusta Smith
2 DATE 30 NOV 1912
2 PLAC Ronne, Bornholm, Denmark
2 PLAC Rønne, Bornholm, Denmark
1 CHAN
2 DATE 21 DEC 2007
3 TIME 01:35:26
+19
View File
@@ -17848,6 +17848,16 @@
<dateval val="1974-03-30"/>
<description>Marriage of Peters, John C. and Cruz, Joyce Marie</description>
</event>
<event handle="_c99c56a20172a29cfe0" change="1185458159" id="E3403">
<type>Birth</type>
<datestr val="1975-02-29"/>
<description>obviously invalid date, preserved as text in ISO fmt style</description>
</event>
<event handle="_E3404" change="1185458159" id="E3404">
<type>Death</type>
<datestr val="29 FEB 1995"/>
<description>obviously invalid date, preserved as text in Gedcom fmt style</description>
</event>
</events>
<people home="_GNUJQCL9MD64AM56OH">
<person handle="_004KQCGYT27EEPQHK" change="1185438865" id="I0552">
@@ -40063,6 +40073,15 @@
<parentin hlink="_F0WKQCXB6Y8RVGHIC7"/>
<citationref hlink="_c140d280aa7494978c4"/>
</person>
<person handle="_c99c56aa6b6598272c0" change="1185458163" id="I0000">
<gender>M</gender>
<name type="Birth Name">
<first>Вася</first>
<surname>Пупкин</surname>
</name>
<eventref hlink="_c99c56a20172a29cfe0" role="Primary"/>
<eventref hlink="_E3404" role="Primary"/>
</person>
</people>
<families>
<family handle="_03GKQCH37C1SL9C5B3" change="1185438865" id="F0372">
+27
View File
@@ -0,0 +1,27 @@
*** a/_imagingft.c Sat Oct 31 17:44:12 2009
--- b/_imagingft.c Thu May 22 12:30:02 2014
***************
*** 70,76 ****
--- 70,80 ----
const char* message;
} ft_errors[] =
+ #if defined(USE_FREETYPE_2_1)
+ #include <freetype2/fterrors.h>
+ #else
#include <freetype/fterrors.h>
+ #endif
/* -------------------------------------------------------------------- */
/* font objects */
--- a/setup.py Sun Nov 15 08:06:10 2009
+++ b/setup.py Fri May 23 11:26:20 2014
@@ -348,7 +348,7 @@
dir = os.path.join(root, "Tk.framework", "Headers")
add_directory(self.compiler.include_dirs, dir, 1)
break
- if frameworks:
+ if False:
exts.append(Extension(
"_imagingtk", ["_imagingtk.c", "Tk/tkImaging.c"],
extra_compile_args=frameworks, extra_link_args=frameworks
+4 -4
View File
@@ -7,7 +7,7 @@
<key>CFBundleExecutable</key>
<string>Gramps</string>
<key>CFBundleGetInfoString</key>
<string>Gramps 3.4.5-1, (C) 1997-2013 The Gramps Team http://www.gramps-project.org</string>
<string>Gramps 3.4.9-1, (C) 1997-2015 The Gramps Team http://www.gramps-project.org</string>
<key>CFBundleIconFile</key>
<string>gramps.icns</string>
<key>CFBundleIdentifier</key>
@@ -17,15 +17,15 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>3.4.5-1</string>
<string>3.4.9-1</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleName</key>
<string>Gramps</string>
<key>CFBundleVersion</key>
<string>3.4.5-1</string>
<string>3.4.9-1</string>
<key>NSHumanReadableCopyright</key>
<string>Copyright 1997 - 2013 The Gramps Team, GNU General Public License.</string>
<string>Copyright 1997 - 2015 The Gramps Team, GNU General Public License.</string>
<key>LSMinimumSystemVersion</key>
<string>10.5</string>
</dict>
+40 -40
View File
@@ -5,23 +5,23 @@
; (gtk_accel_path "<Actions>/FileWindow/PluginStatus" "")
; (gtk_accel_path "<Actions>/ReportWindow/place_report" "")
; (gtk_accel_path "<Actions>/FileWindow/ViewMenu" "")
(gtk_accel_path "<Actions>/Pedigree/Forward/Forward" "<Mod5>Right")
(gtk_accel_path "<Actions>/Pedigree/Forward/Forward" "<Alt>Right")
; (gtk_accel_path "<Actions>/ReportWindow/birthday_report" "")
; (gtk_accel_path "<Actions>/ReportWindow/marker_report" "")
; (gtk_accel_path "<Actions>/ReportWindow/Graphs" "")
; (gtk_accel_path "<Actions>/FileWindow/FAQ" "")
; (gtk_accel_path "<Actions>/ToolWindow/mediaman" "")
(gtk_accel_path "<Actions>/Families/Forward/Forward" "<Mod5>Right")
(gtk_accel_path "<Actions>/Events/ChangeOrder/Add" "<Mod5><Meta>i")
(gtk_accel_path "<Actions>/Families/Forward/Forward" "<Alt>Right")
(gtk_accel_path "<Actions>/Events/ChangeOrder/Add" "<Alt><Meta>i")
; (gtk_accel_path "<Actions>/ReportWindow/det_descendant_report" "")
; (gtk_accel_path "<Actions>/ReportWindow/statistics_chart" "")
; (gtk_accel_path "<Actions>/Person View/PersonAll/FilterEdit" "")
(gtk_accel_path "<Actions>/Events/Backward/Back" "<Mod5>Left")
(gtk_accel_path "<Actions>/Events/Backward/Back" "<Alt>Left")
; (gtk_accel_path "<Actions>/ToolWindow/rebuild_refmap" "")
; (gtk_accel_path "<Actions>/ToolWindow/Database-Processing" "")
(gtk_accel_path "<Actions>/Events/Bookmark/EditBook" "<Shift><Meta>b")
(gtk_accel_path "<Actions>/People Tree View/PersonEdit/Remove" "<Meta>Delete")
(gtk_accel_path "<Actions>/Notes/Forward/Forward" "<Mod5>Right")
(gtk_accel_path "<Actions>/Notes/Forward/Forward" "<Alt>Right")
(gtk_accel_path "<Actions>/Undo/Undo" "<Meta>z")
(gtk_accel_path "<Actions>/MainWindow/Import" "<Meta>i")
; (gtk_accel_path "<Actions>/FileWindow/Filter" "")
@@ -32,40 +32,40 @@
(gtk_accel_path "<Actions>/Repositories/Bookmark/EditBook" "<Shift><Meta>b")
; (gtk_accel_path "<Actions>/ReportWindow/book" "")
; (gtk_accel_path "<Actions>/FileWindow/FileMenu" "")
(gtk_accel_path "<Actions>/Person View/Backward/Back" "<Mod5>Left")
(gtk_accel_path "<Actions>/Person View/Backward/Back" "<Alt>Left")
; (gtk_accel_path "<Actions>/ReportWindow/records" "")
; (gtk_accel_path "<Actions>/ReportWindow/ancestor_report" "")
; (gtk_accel_path "<Actions>/ToolWindow/chname" "")
; (gtk_accel_path "<Actions>/Person View/PersonEdit/FastMerge" "")
(gtk_accel_path "<Actions>/Relationships/Forward/Forward" "<Mod5>Right")
(gtk_accel_path "<Actions>/Relationships/Forward/Forward" "<Alt>Right")
; (gtk_accel_path "<Actions>/Person View/PersonEdit/ExportTab" "")
(gtk_accel_path "<Actions>/Notes/ChangeOrder/Remove" "<Meta>Delete")
; (gtk_accel_path "<Actions>/ToolWindow/editowner" "")
; (gtk_accel_path "<Actions>/ReportWindow/hourglass_graph" "")
(gtk_accel_path "<Actions>/Repositories/ChangeOrder/Add" "<Mod5><Meta>i")
(gtk_accel_path "<Actions>/Media/Forward/Forward" "<Mod5>Right")
(gtk_accel_path "<Actions>/Repositories/ChangeOrder/Add" "<Alt><Meta>i")
(gtk_accel_path "<Actions>/Media/Forward/Forward" "<Alt>Right")
(gtk_accel_path "<Actions>/AllMainWindow/<CONTROL>Delete" "<Meta>Delete")
; (gtk_accel_path "<Actions>/FileWindow/Toolbar" "")
(gtk_accel_path "<Actions>/Place Tree View/ChangeOrder/Add" "<Mod5><Meta>i")
(gtk_accel_path "<Actions>/Place Tree View/ChangeOrder/Add" "<Alt><Meta>i")
; (gtk_accel_path "<Actions>/ReportWindow/number_of_ancestors_report" "")
(gtk_accel_path "<Actions>/Families/ChangeOrder/Add" "<Mod5><Meta>i")
(gtk_accel_path "<Actions>/Families/ChangeOrder/Add" "<Alt><Meta>i")
(gtk_accel_path "<Actions>/Person View/Bookmark/EditBook" "<Shift><Meta>b")
(gtk_accel_path "<Actions>/Relationships/Bookmark/AddBook" "<Meta>d")
; (gtk_accel_path "<Actions>/ReportWindow/familylines_graph" "")
(gtk_accel_path "<Actions>/Person View/Forward/Forward" "<Mod5>Right")
(gtk_accel_path "<Actions>/Person View/Forward/Forward" "<Alt>Right")
(gtk_accel_path "<Actions>/Place View/ChangeOrder/Remove" "<Meta>Delete")
(gtk_accel_path "<Actions>/Sources/ChangeOrder/Remove" "<Meta>Delete")
(gtk_accel_path "<Actions>/Person View/ChangeOrder/Remove" "<Meta>Delete")
; (gtk_accel_path "<Actions>/ToolWindow/relcalc" "")
(gtk_accel_path "<Actions>/AllMainWindow/Export" "<Meta>e")
(gtk_accel_path "<Actions>/Pedigree/Backward/Back" "<Mod5>Left")
(gtk_accel_path "<Actions>/Pedigree/Backward/Back" "<Alt>Left")
(gtk_accel_path "<Actions>/Relationships/Bookmark/EditBook" "<Shift><Meta>b")
; (gtk_accel_path "<Actions>/ToolWindow/reorder_ids" "")
(gtk_accel_path "<Actions>/Place Tree View/Bookmark/EditBook" "<Shift><Meta>b")
; (gtk_accel_path "<Actions>/RecentFiles/RecentMenu0" "")
(gtk_accel_path "<Actions>/Person View/PersonAll/Edit" "<Meta>Return")
; (gtk_accel_path "<Actions>/FileWindow/MailingLists" "")
(gtk_accel_path "<Actions>/Place View/Forward/Forward" "<Mod5>Right")
(gtk_accel_path "<Actions>/Place View/Forward/Forward" "<Alt>Right")
; (gtk_accel_path "<Actions>/ReportWindow/kinship_report" "")
; (gtk_accel_path "<Actions>/MainWindow/BookMenu" "")
; (gtk_accel_path "<Actions>/ToolWindow/evname" "")
@@ -75,23 +75,23 @@
(gtk_accel_path "<Actions>/Place Tree View/Bookmark/AddBook" "<Meta>d")
; (gtk_accel_path "<Actions>/AllMainWindow/F11" "F11")
; (gtk_accel_path "<Actions>/ToolWindow/sortevents" "")
(gtk_accel_path "<Actions>/Fan Chart/Backward/Back" "<Mod5>Left")
; (gtk_accel_path "<Actions>/Media/Backward/Back" "<Mod5>Left")
(gtk_accel_path "<Actions>/Fan Chart/Backward/Back" "<Alt>Left")
; (gtk_accel_path "<Actions>/Media/Backward/Back" "<Alt>Left")
; (gtk_accel_path "<Actions>/Fan Chart/Bookmark/AddBook" "<Meta>d")
; (gtk_accel_path "<Actions>/Person View/PersonEdit/CmpMerge" "")
; (gtk_accel_path "<Actions>/MainWindow/ToolsMenu" "")
(gtk_accel_path "<Actions>/Events/Forward/Forward" "<Mod5>Right")
(gtk_accel_path "<Actions>/Families/Backward/Back" "<Mod5>Left")
(gtk_accel_path "<Actions>/Place View/Backward/Back" "<Mod5>Left")
(gtk_accel_path "<Actions>/Events/Forward/Forward" "<Alt>Right")
(gtk_accel_path "<Actions>/Families/Backward/Back" "<Alt>Left")
(gtk_accel_path "<Actions>/Place View/Backward/Back" "<Alt>Left")
; (gtk_accel_path "<Actions>/ReportWindow/descend_chart" "")
; (gtk_accel_path "<Actions>/ToolWindow/dupfind" "")
; (gtk_accel_path "<Actions>/MainWindow/EditMenu" "")
(gtk_accel_path "<Actions>/UndoHistory/UndoHistory" "<Meta>h")
(gtk_accel_path "<Actions>/Sources/Bookmark/EditBook" "<Shift><Meta>b")
; (gtk_accel_path "<Actions>/FileWindow/ReportBug" "")
(gtk_accel_path "<Actions>/AllMainWindow/<CONTROL>Insert" "<Mod5><Meta>i")
(gtk_accel_path "<Actions>/AllMainWindow/<CONTROL>Insert" "<Alt><Meta>i")
(gtk_accel_path "<Actions>/Notes/Bookmark/AddBook" "<Meta>d")
(gtk_accel_path "<Actions>/People Tree View/ChangeOrder/Add" "<Mod5><Meta>i")
(gtk_accel_path "<Actions>/People Tree View/ChangeOrder/Add" "<Alt><Meta>i")
; (gtk_accel_path "<Actions>/FileWindow/Sidebar" "")
; (gtk_accel_path "<Actions>/Person View/PersonAll/Dummy" "")
(gtk_accel_path "<Actions>/Redo/Redo" "<Shift><Meta>z")
@@ -99,11 +99,11 @@
; (gtk_accel_path "<Actions>/ReportWindow/family_group" "")
; (gtk_accel_path "<Actions>/ToolWindow/excity" "")
(gtk_accel_path "<Actions>/Repositories/ChangeOrder/Remove" "<Meta>Delete")
(gtk_accel_path "<Actions>/Repositories/Forward/Forward" "<Mod5>Right")
(gtk_accel_path "<Actions>/Repositories/Forward/Forward" "<Alt>Right")
; (gtk_accel_path "<Actions>/FileWindow/UserManual" "F1")
; (gtk_accel_path "<Actions>/FileWindow/OpenRecent" "")
(gtk_accel_path "<Actions>/Families/Bookmark/AddBook" "<Meta>d")
(gtk_accel_path "<Actions>/Place Tree View/Forward/Forward" "<Mod5>Right")
(gtk_accel_path "<Actions>/Place Tree View/Forward/Forward" "<Alt>Right")
; (gtk_accel_path "<Actions>/ReportWindow/rel_graph" "")
; (gtk_accel_path "<Actions>/ReportWindow/Web-Pages" "")
; (gtk_accel_path "<Actions>/ReportWindow/WebCal" "")
@@ -112,7 +112,7 @@
; (gtk_accel_path "<Actions>/FileWindow/HomePage" "")
(gtk_accel_path "<Actions>/Relationships/Family/Edit" "<Meta>Return")
; (gtk_accel_path "<Actions>/ToolWindow/patchnames" "")
(gtk_accel_path "<Actions>/Relationships/Backward/Back" "<Mod5>Left")
(gtk_accel_path "<Actions>/Relationships/Backward/Back" "<Alt>Left")
; (gtk_accel_path "<Actions>/ReportWindow/det_ancestor_report" "")
(gtk_accel_path "<Actions>/AllMainWindow/<CONTROL>BackSpace" "<Meta>BackSpace")
; (gtk_accel_path "<Actions>/ToolWindow/Utilities" "")
@@ -128,12 +128,12 @@
; (gtk_accel_path "<Actions>/AllMainWindow/F3" "F3")
; (gtk_accel_path "<Actions>/AllMainWindow/F2" "F2")
(gtk_accel_path "<Actions>/Notes/Bookmark/EditBook" "<Shift><Meta>b")
(gtk_accel_path "<Actions>/Sources/ChangeOrder/Add" "<Mod5><Meta>i")
(gtk_accel_path "<Actions>/Sources/ChangeOrder/Add" "<Alt><Meta>i")
; (gtk_accel_path "<Actions>/ReportWindow/Books" "")
; (gtk_accel_path "<Actions>/FileWindow/About" "")
(gtk_accel_path "<Actions>/Notes/Backward/Back" "<Mod5>Left")
(gtk_accel_path "<Actions>/Notes/Backward/Back" "<Alt>Left")
; (gtk_accel_path "<Actions>/ReportWindow/endofline_report" "")
(gtk_accel_path "<Actions>/People Tree View/PersonEdit/Add" "<Mod5><Meta>i")
(gtk_accel_path "<Actions>/People Tree View/PersonEdit/Add" "<Alt><Meta>i")
; (gtk_accel_path "<Actions>/ToolWindow/dbrowse" "")
(gtk_accel_path "<Actions>/Pedigree/Bookmark/EditBook" "<Shift><Meta>b")
; (gtk_accel_path "<Actions>/ToolWindow/soundgen" "")
@@ -150,12 +150,12 @@
; (gtk_accel_path "<Actions>/ReportWindow/timeline" "")
; (gtk_accel_path "<Actions>/ToolWindow/Database-Repair" "")
; (gtk_accel_path "<Actions>/ReportWindow/Graphical-Reports" "")
(gtk_accel_path "<Actions>/Person View/HomePerson" "<Mod5>Home")
(gtk_accel_path "<Actions>/Person View/HomePerson" "<Alt>Home")
; (gtk_accel_path "<Actions>/ReportWindow/ancestor_chart" "")
; (gtk_accel_path "<Actions>/ToolWindow/check" "")
(gtk_accel_path "<Actions>/Fan Chart/Forward/Forward" "<Mod5>Right")
(gtk_accel_path "<Actions>/Fan Chart/Forward/Forward" "<Alt>Right")
; (gtk_accel_path "<Actions>/ToolWindow/chtype" "")
(gtk_accel_path "<Actions>/Notes/ChangeOrder/Add" "<Mod5><Meta>i")
(gtk_accel_path "<Actions>/Notes/ChangeOrder/Add" "<Alt><Meta>i")
; (gtk_accel_path "<Actions>/ReportWindow/calendar" "")
; (gtk_accel_path "<Actions>/FileWindow/Fullscreen" "F11")
(gtk_accel_path "<Actions>/Fan Chart/Bookmark/EditBook" "<Shift><Meta>b")
@@ -163,26 +163,26 @@
(gtk_accel_path "<Actions>/Repositories/Bookmark/AddBook" "<Meta>d")
(gtk_accel_path "<Actions>/Families/ChangeOrder/Remove" "<Meta>Delete")
; (gtk_accel_path "<Actions>/ToolWindow/verify" "")
(gtk_accel_path "<Actions>/People Tree View/Forward/Forward" "<Mod5>Right")
(gtk_accel_path "<Actions>/Sources/Backward/Back" "<Mod5>Left")
(gtk_accel_path "<Actions>/People Tree View/Forward/Forward" "<Alt>Right")
(gtk_accel_path "<Actions>/Sources/Backward/Back" "<Alt>Left")
; (gtk_accel_path "<Actions>/ToolWindow/not_related" "")
(gtk_accel_path "<Actions>/People Tree View/Bookmark/AddBook" "<Meta>d")
; (gtk_accel_path "<Actions>/FileWindow/TipOfDay" "")
(gtk_accel_path "<Actions>/Media/ChangeOrder/Add" "<Mod5><Meta>i")
(gtk_accel_path "<Actions>/Media/ChangeOrder/Add" "<Alt><Meta>i")
(gtk_accel_path "<Actions>/FileWindow/Quit" "<Meta>q")
(gtk_accel_path "<Actions>/People Tree View/Bookmark/EditBook" "<Shift><Meta>b")
(gtk_accel_path "<Actions>/Place Tree View/Backward/Back" "<Mod5>Left")
(gtk_accel_path "<Actions>/Place Tree View/Backward/Back" "<Alt>Left")
(gtk_accel_path "<Actions>/FileWindow/Open" "<Meta>o")
(gtk_accel_path "<Actions>/Place View/Bookmark/EditBook" "<Shift><Meta>b")
(gtk_accel_path "<Actions>/Media/Bookmark/EditBook" "<Shift><Meta>b")
(gtk_accel_path "<Actions>/MainWindow/ConfigView" "<Shift><Meta>c")
(gtk_accel_path "<Actions>/People Tree View/Backward/Back" "<Mod5>Left")
(gtk_accel_path "<Actions>/People Tree View/Backward/Back" "<Alt>Left")
; (gtk_accel_path "<Actions>/FileWindow/KeyBindings" "")
(gtk_accel_path "<Actions>/Repositories/Backward/Back" "<Mod5>Left")
(gtk_accel_path "<Actions>/Repositories/Backward/Back" "<Alt>Left")
(gtk_accel_path "<Actions>/Events/Bookmark/AddBook" "<Meta>d")
(gtk_accel_path "<Actions>/People Tree View/ChangeOrder/Remove" "<Meta>Delete")
(gtk_accel_path "<Actions>/AllMainWindow/<CONTROL>P" "<Meta>p")
(gtk_accel_path "<Actions>/Person View/ChangeOrder/Add" "<Mod5><Meta>i")
(gtk_accel_path "<Actions>/Person View/ChangeOrder/Add" "<Alt><Meta>i")
(gtk_accel_path "<Actions>/AllMainWindow/<CONTROL>N" "<Meta>n")
(gtk_accel_path "<Actions>/Place Tree View/ChangeOrder/Remove" "<Meta>Delete")
; (gtk_accel_path "<Actions>/AllMainWindow/Abandon" "")
@@ -193,8 +193,8 @@
; (gtk_accel_path "<Actions>/Person View/PersonOther/SetActive" "")
(gtk_accel_path "<Actions>/categoryviews/personview_1" "<Meta>2")
(gtk_accel_path "<Actions>/Sources/Bookmark/AddBook" "<Meta>d")
(gtk_accel_path "<Actions>/Place View/ChangeOrder/Add" "<Mod5><Meta>i")
(gtk_accel_path "<Actions>/Person View/PersonEdit/Add" "<Mod5><Meta>i")
(gtk_accel_path "<Actions>/Sources/Forward/Forward" "<Mod5>Right")
(gtk_accel_path "<Actions>/Place View/ChangeOrder/Add" "<Alt><Meta>i")
(gtk_accel_path "<Actions>/Person View/PersonEdit/Add" "<Alt><Meta>i")
(gtk_accel_path "<Actions>/Sources/Forward/Forward" "<Alt>Right")
(gtk_accel_path "<Actions>/Person View/Bookmark/AddBook" "<Meta>d")
; (gtk_accel_path "<Actions>/FileWindow/Preferences" "")
+6 -6
View File
@@ -72,7 +72,7 @@
</binary>
<binary>
${prefix}/lib/libgtkmacintegration.2.dylib
${prefix}/lib/libgtkmacintegration-gtk2.2.dylib
</binary>
<binary>
@@ -100,7 +100,7 @@
</binary>
<binary>
${prefix}/lib/libtiff.3.dylib
${prefix}/lib/libtiff.5.dylib
</binary>
<binary dest="${bundle}/Contents/MacOS/">
@@ -138,10 +138,6 @@
${prefix}/include/python2.7/pyconfig.h
</data>
<data>
${prefix}/etc/pango/
</data>
<data recurse="True">
${prefix}/share/gramps/*.py
</data>
@@ -158,6 +154,10 @@
${prefix}/share/gramps/images/
</data>
<data>
${prefix}/share/gramps/plugins/webstuff/
</data>
<!--data>
${prefix}/share/webkit-1.0/
</data-->
+6 -3
View File
@@ -23,8 +23,10 @@ export GTK_PATH="$bundle_res"
export PANGO_RC_FILE="$bundle_etc/pango/pangorc"
export PANGO_SYSCONFDIR="$bundle_etc"
export PANGO_LIBDIR="$bundle_lib"
export GDK_PIXBUF_MODULE_FILE="$bundle_etc/gtk-2.0/gdk-pixbuf.loaders"
export GTK_IM_MODULE_FILE="$bundle_etc/gtk-2.0/gtk.immodules"
export GDK_PIXBUF_MODULE_FILE="$bundle_lib/gdk-pixbuf-2.0/2.10.0/loaders.cache"
if [ `uname -r | cut -d . -f 1` -ge 10 ]; then
export GTK_IM_MODULE_FILE="$bundle_etc/gtk-2.0/gtk.immodules"
fi
export GTK2_RC_FILES="$bundle_etc/gtk-2.0/gtkrc"
export GVBINDIR="$bundle_lib/graphviz"
@@ -38,7 +40,8 @@ export PYTHONPATH="$bundle_lib/python$PYVER/site-packages/gtk-2.0:$PYTHONPATH"
export GRAMPSDIR="$bundle_data"/gramps
export GRAMPSI18N="$bundle_data"/locale
export GRAMPSHOME="$HOME/Library/Application Support"
export USERPROFILE="$HOME"
export APPDATA="$HOME/Library/Application Support"
# Strip out the argument added by the OS.
if /bin/expr "x$1" : '^x-psn_' > /dev/null; then
+22 -36
View File
@@ -13,14 +13,16 @@
href="http://www.gnome.org/~fpeters/pyxdg/"/>
<repository type="tarball" name="xdg-utils"
href="http://portland.freedesktop.org/download/"/>
<repository type="svn" name="gramps"
href="http://svn.code.sf.net/p/gramps/code/"/>
<repository type="git" name="gramps"
href="git://git.code.sf.net/p/gramps/"/>
<repository type="svn" name="gramps-addons"
href="https://gramps-addons.svn.sourceforge.net/svnroot/gramps-addons/"/>
<repository type="tarball" name="oracle"
href="http://download.oracle.com/"/>
<repository type="tarball" name="stowers"
href="http://www.johnstowers.co.nz/files/"/>
<repository type="tarball" name="pymodules"
href="http://pypi.python.org/packages/source/"/>
<repository type="git" name="github"
href="git://github.com/"/>
<repository type="tarball" name="graphviz"
href="http://www.graphviz.org/pub/graphviz/stable/SOURCES/"/>
<repository type="tarball" name="launchpad"
@@ -57,12 +59,11 @@ ige-mac-bundler gtk-osx-build/projects/gramps/gramps.bundle
<include href="https://raw.github.com/jralls/gtk-osx-build/master/modulesets-stable/gtk-osx.modules"/>
<include href="http://git.gnome.org/browse/gtk-osx/plain/modulesets-stable/gtk-osx.modules"/>
<!--include href="/Users/john/Development/GTK-OSX/gtk-osx-build/modulesets-stable/gtk-osx.modules"/-->
<autotools id="gramps" autogen-sh="configure">
<branch module="gramps/gramps-3.4.5.tar.gz" version="3.4.5"
<branch module="gramps/gramps-3.4.9.tar.gz" version="3.4.9"
repo="sourceforge">
</branch>
<dependencies>
@@ -73,7 +74,7 @@ ige-mac-bundler gtk-osx-build/projects/gramps/gramps.bundle
<dep package="shared-mime-info"/>
<dep package="hunspell"/>
<dep package="pygtk-extras"/>
<dep package="osmgpsmap-py"/>
<dep package="osmgpsmap"/>
<dep package="graphviz"/>
<dep package="pyicu"/>
</dependencies>
@@ -82,8 +83,9 @@ ige-mac-bundler gtk-osx-build/projects/gramps/gramps.bundle
</after>
</autotools>
<autotools id="gramps-34" >
<branch module="code" revision="maintenance/gramps34" repo="gramps" />
<autotools id="gramps-git" supports-non-srcdir-builds="no">
<branch module="source" repo="gramps" revision="maintenance/gramps34"
checkoutdir="gramps-git"/>
<dependencies>
<dep package="meta-gtk-osx-python"/>
<dep package="librsvg"/>
@@ -91,7 +93,7 @@ ige-mac-bundler gtk-osx-build/projects/gramps/gramps.bundle
<dep package="shared-mime-info"/>
<dep package="hunspell"/>
<dep package="pygtk-extras"/>
<dep package="osmgpsmap-py"/>
<dep package="osmgpsmap"/>
<dep package="graphviz"/>
</dependencies>
<after>
@@ -136,27 +138,15 @@ ige-mac-bundler gtk-osx-build/projects/gramps/gramps.bundle
<branch module="xdg-utils-1.0.2.tgz" version="1.0.2" repo="xdg-utils"/>
</autotools>
<autotools id="osmgpsmap" autogenargs="--disable-introspection"
autogen-sh="configure">
<branch module="osm-gps-map/osm-gps-map-0.7.3.tar.gz" repo="stowers"
version="0.7.3"/>
<autotools id="osmgpsmap" skip-autogen="never"
supports-non-srcdir-builds="no">
<branch module="nzjrs/osm-gps-map" revision="gtk2" repo="github"/>
<dependencies>
<dep package="gtk+"/>
<dep package="libsoup"/>
</dependencies>
</autotools>
<distutils id="osmgpsmap-py" autogen-sh="gnome-autogen.sh">
<branch module="osm-gps-map/python-osmgpsmap-0.7.3.tar.gz" repo="stowers"
version="0.7.3"/>
<dependencies>
<dep package="osmgpsmap"/>
<dep package="pygtk"/>
<dep package="pycairo-python2.6"/>
<dep package="pygobject"/>
</dependencies>
</distutils>
<autotools id="graphviz" autogen-sh="configure"
autogenargs="--disable-sharp --disable-guile --disable-java --disable-lua --disable-ocaml --disable-perl --disable-php --disable-r --disable-ruby --disable-tcl --without-x --with-pangocairo --with-included-ltdl=yes">
<branch module="graphviz-2.28.0.tar.gz" version="2.28.0" repo="graphviz"/>
@@ -167,11 +157,11 @@ ige-mac-bundler gtk-osx-build/projects/gramps/gramps.bundle
</dependencies>
</autotools>
<autotools id="exiv2">
<autotools id="exiv2" supports-non-srcdir-builds="no">
<branch module="exiv2-0.21.1.tar.gz" repo="exiv2.org" version="0.21.1"/>
</autotools>
<autotools id="boost">
<autotools id="boost" supports-non-srcdir-builds="no">
<branch module="boost/boost_1_46_1.tar.bz2" repo="sourceforge"
version="1.46.1"/>
</autotools>
@@ -180,7 +170,7 @@ ige-mac-bundler gtk-osx-build/projects/gramps/gramps.bundle
<branch repo="sourceforge" module="scons/scons-2.0.1.tar.gz" version="2.0.1"/>
</distutils>
<autotools id="pyexiv2">
<autotools id="pyexiv2" supports-non-srcdir-builds="no">
<branch module="pyexiv2/0.3.x/0.3/+download/pyexiv2-0.3.0.tar.bz2"
repo="launchpad" version="0.3.0"/>
<dependencies>
@@ -194,15 +184,11 @@ ige-mac-bundler gtk-osx-build/projects/gramps/gramps.bundle
</autotools>
<distutils id="pil">
<branch module="Imaging-1.1.7.tar.gz" version="1.1.7" repo="pythonware"/>
<branch module="Imaging-1.1.7.tar.gz" version="1.1.7" repo="pythonware">
<patch file="Imaging-Freetype2.patch" strip="1"/>
</branch>
</distutils>
<autotools id='icu' autogen-sh='source/configure'
makeargs='CFLAGS="$CFLAGS -DU_CHARSET_IS_UTF8=1 -DU_USING_ICU_NAMESPACE=0"'>
<branch repo='icu' version='50.1.2' checkoutdir='icu'
module='icu4c/50.1.2/icu4c-50_1_2-src.tgz'/>
</autotools>
<distutils id='pyicu'>
<branch version='1.5' repo='pymodules'
module='P/PyICU/PyICU-1.5.tar.gz'/>
+5
View File
@@ -50,6 +50,7 @@ src/gen/lib/familyreltype.py
src/gen/lib/grampstype.py
src/gen/lib/ldsord.py
src/gen/lib/markertype.py
src/gen/lib/name.py
src/gen/lib/nametype.py
src/gen/lib/nameorigintype.py
src/gen/lib/notetype.py
@@ -72,6 +73,7 @@ src/gen/plug/utils.py
# gen docgen API
src/gen/plug/docgen/graphdoc.py
src/gen/plug/docgen/paperstyle.py
# plugin report base API (was ReportBase)
src/gen/plug/report/_constants.py
@@ -116,6 +118,7 @@ src/gui/editors/editperson.py
src/gui/editors/editpersonref.py
src/gui/editors/editplace.py
src/gui/editors/editprimary.py
src/gui/editors/editreference.py
src/gui/editors/editreporef.py
src/gui/editors/editrepository.py
src/gui/editors/editsource.py
@@ -576,6 +579,7 @@ src/Filters/Rules/Event/_EventPrivate.py
src/Filters/Rules/Event/_HasAttribute.py
src/Filters/Rules/Event/_HasCitation.py
src/Filters/Rules/Event/_HasData.py
src/Filters/Rules/Event/_HasDayOfWeek.py
src/Filters/Rules/Event/_HasGallery.py
src/Filters/Rules/Event/_HasIdOf.py
src/Filters/Rules/Event/_HasNote.py
@@ -642,6 +646,7 @@ src/Filters/Rules/Citation/_HasNoteRegexp.py
src/Filters/Rules/Citation/_HasReferenceCountOf.py
src/Filters/Rules/Citation/_HasSource.py
src/Filters/Rules/Citation/_HasSourceIdOf.py
src/Filters/Rules/Citation/_HasSourceNoteRegexp.py
src/Filters/Rules/Citation/_MatchesFilter.py
src/Filters/Rules/Citation/_MatchesPageSubstringOf.py
src/Filters/Rules/Citation/_RegExpIdOf.py
+1 -3
View File
@@ -124,7 +124,6 @@ src/gen/lib/locationbase.py
src/gen/lib/mediaobj.py
src/gen/lib/mediabase.py
src/gen/lib/mediaref.py
src/gen/lib/name.py
src/gen/lib/note.py
src/gen/lib/notebase.py
src/gen/lib/personref.py
@@ -186,7 +185,6 @@ src/gen/plug/docgen/fontscale.py
src/gen/plug/docgen/fontstyle.py
src/gen/plug/docgen/graphdoc.py
src/gen/plug/docgen/graphicstyle.py
src/gen/plug/docgen/paperstyle.py
src/gen/plug/docgen/paragraphstyle.py
src/gen/plug/docgen/stylesheet.py
src/gen/plug/docgen/tablestyle.py
@@ -222,7 +220,6 @@ src/gui/user.py
# gui/editors - the GUI editors package
src/gui/editors/__init__.py
src/gui/editors/editreference.py
src/gui/editors/editsecondary.py
# gui/editors/displaytabs - the GUI display tabs package
@@ -237,6 +234,7 @@ src/gui/editors/displaytabs/grampstab.py
src/gui/editors/displaytabs/groupembeddedlist.py
src/gui/editors/displaytabs/ldsmodel.py
src/gui/editors/displaytabs/locationmodel.py
src/gui/editors/displaytabs/mediaattrembedlist.py
src/gui/editors/displaytabs/mediabackreflist.py
src/gui/editors/displaytabs/notebackreflist.py
src/gui/editors/displaytabs/personrefmodel.py
+3736 -5051
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -2857,7 +2857,7 @@ msgid "Bar Mitzvah"
msgstr "Бар Мицва"
#: ../src/gen/lib/eventtype.py:151
msgid "Bas Mitzvah"
msgid "Bat Mitzvah"
msgstr "Бас Мицва"
#: ../src/gen/lib/eventtype.py:152
@@ -3065,7 +3065,7 @@ msgstr "род"
#: ../src/gen/lib/eventtype.py:201
#, fuzzy
msgid "Bas Mitzvah abbreviation|bas."
msgid "Bat Mitzvah abbreviation|bat."
msgstr "род"
#: ../src/gen/lib/eventtype.py:202
+3 -3
View File
@@ -2824,8 +2824,8 @@ msgid "Bar Mitzvah"
msgstr "Bar Mitzvah"
#: ../src/gen/lib/eventtype.py:151
msgid "Bas Mitzvah"
msgstr "Bas Mitzvah"
msgid "Bat Mitzvah"
msgstr "Bat Mitzvah"
#: ../src/gen/lib/eventtype.py:152
msgid "Blessing"
@@ -3022,7 +3022,7 @@ msgid "Bar Mitzvah abbreviation|bar."
msgstr ""
#: ../src/gen/lib/eventtype.py:201
msgid "Bas Mitzvah abbreviation|bas."
msgid "Bat Mitzvah abbreviation|bat."
msgstr ""
#: ../src/gen/lib/eventtype.py:202
+7 -5
View File
@@ -3095,8 +3095,8 @@ msgid "Bar Mitzvah"
msgstr "Bar Mitzvah"
#: ../src/gen/lib/eventtype.py:151
msgid "Bas Mitzvah"
msgstr "Bas Mitzvah"
msgid "Bat Mitzvah"
msgstr "Bat Mitzvah"
#: ../src/gen/lib/eventtype.py:152
msgid "Blessing"
@@ -3293,7 +3293,7 @@ msgid "Bar Mitzvah abbreviation|bar."
msgstr "bar."
#: ../src/gen/lib/eventtype.py:201
msgid "Bas Mitzvah abbreviation|bas."
msgid "Bat Mitzvah abbreviation|bat."
msgstr "bas."
#: ../src/gen/lib/eventtype.py:202
@@ -13994,8 +13994,10 @@ msgstr "No heu especificat ningú"
#: ../src/plugins/graph/GVFamilyLines.py:921
#, python-format
msgid "%d children"
msgstr "%d fills"
msgid "%d child"
msgid_plural "%d children"
msgstr[0] "%d fill"
msgstr[1] "%d fills"
#: ../src/plugins/graph/GVHourGlass.py:57
#: ../src/plugins/graph/GVRelGraph.py:68
Executable → Regular
+33
View File
@@ -115,6 +115,38 @@ class Check_named_fmt( Check ):
msgstr = msg.msgstr[1]
self.__process( msg, msgid, msgstr )
class Check_mapping_fmt( Check ):
# A pattern to find all {}
find_map_pat = re.compile('\{ \w+ \}', re.VERBOSE)
def __init__( self ):
Check.__init__( self )
self.diag_header = "-------- {} name mismatches --------------"
self.summary_text = "{} name mismatches:"
def __process( self, msg, msgid, msgstr ):
# Same number of named formats?
fmts1 = self.find_map_pat.findall( msgid )
fmts2 = self.find_map_pat.findall( msgstr )
if len( fmts1 ) != len( fmts2 ):
self.msgs.append( msg )
else:
# Do we have the same named formats?
fmts1.sort()
fmts2.sort()
if fmts1 != fmts2:
self.msgs.append( msg )
def process( self, msg ):
msgid = msg.msgid
msgstr = msg.msgstr[0]
self.__process( msg, msgid, msgstr )
if msg.msgidp and len(msg.msgstr) >= 2:
msgid = msg.msgidp
msgstr = msg.msgstr[1]
self.__process( msg, msgid, msgstr )
class Check_missing_sd( Check ):
# A pattern to find %() without s or d
# Here is a command to use for testing
@@ -512,6 +544,7 @@ def analyze_msgs( options, fname, msgs, nr_templates = None, nth = 0 ):
checks.append( Check_fmt( '%s' ) )
checks.append( Check_fmt( '%d' ) )
checks.append( Check_named_fmt() )
checks.append( Check_mapping_fmt() )
checks.append( Check_missing_sd() )
checks.append( Check_runaway() )
checks.append( Check_xml_chars() )
+6586 -4404
View File
File diff suppressed because it is too large Load Diff
+7 -5
View File
@@ -3027,8 +3027,8 @@ msgid "Bar Mitzvah"
msgstr "Bar Mitzvah"
#: ../src/gen/lib/eventtype.py:151
msgid "Bas Mitzvah"
msgstr "Bas Mitzvah"
msgid "Bat Mitzvah"
msgstr "Bat Mitzvah"
#: ../src/gen/lib/eventtype.py:152
msgid "Blessing"
@@ -3225,7 +3225,7 @@ msgid "Bar Mitzvah abbreviation|bar."
msgstr "bar."
#: ../src/gen/lib/eventtype.py:201
msgid "Bas Mitzvah abbreviation|bas."
msgid "Bat Mitzvah abbreviation|bat."
msgstr "bas."
#: ../src/gen/lib/eventtype.py:202
@@ -13258,8 +13258,10 @@ msgstr "Du angav ikke nogen"
#: ../src/plugins/graph/GVFamilyLines.py:921
#, python-format
msgid "%d children"
msgstr "%d børn"
msgid "%d child"
msgid_plural "%d children"
msgstr[0] "%d barn"
msgstr[1] "%d børn"
#: ../src/plugins/graph/GVHourGlass.py:57
#: ../src/plugins/graph/GVRelGraph.py:68
+4994 -3521
View File
File diff suppressed because it is too large Load Diff
+7 -5
View File
@@ -3140,8 +3140,8 @@ msgid "Bar Mitzvah"
msgstr "Bar Mitzvah"
#: ../src/gen/lib/eventtype.py:151
msgid "Bas Mitzvah"
msgstr "Bas Mitzvah"
msgid "Bat Mitzvah"
msgstr "Bat Mitzvah"
#: ../src/gen/lib/eventtype.py:152
msgid "Blessing"
@@ -3344,7 +3344,7 @@ msgid "Bar Mitzvah abbreviation|bar."
msgstr "bar."
#: ../src/gen/lib/eventtype.py:201
msgid "Bas Mitzvah abbreviation|bas."
msgid "Bat Mitzvah abbreviation|bat."
msgstr "bas."
#: ../src/gen/lib/eventtype.py:202
@@ -14140,8 +14140,10 @@ msgstr "Δεν προσδιορίσατε κανέναν"
#: ../src/plugins/graph/GVFamilyLines.py:921
#, python-format
msgid "%d children"
msgstr "%d τέκνα"
msgid "%d child"
msgid_plural "%d children"
msgstr[0] "%d τέκνο"
msgstr[1] "%d τέκνα"
#: ../src/plugins/graph/GVHourGlass.py:57
#: ../src/plugins/graph/GVRelGraph.py:68
+3 -3
View File
@@ -2893,8 +2893,8 @@ msgid "Bar Mitzvah"
msgstr "Bar Mitzvah"
#: ../src/gen/lib/eventtype.py:151
msgid "Bas Mitzvah"
msgstr "Bas Mitzvah"
msgid "Bat Mitzvah"
msgstr "Bat Mitzvah"
#: ../src/gen/lib/eventtype.py:152
msgid "Blessing"
@@ -3103,7 +3103,7 @@ msgstr "Kremacio"
#: ../src/gen/lib/eventtype.py:201
#, fuzzy
msgid "Bas Mitzvah abbreviation|bas."
msgid "Bat Mitzvah abbreviation|bat."
msgstr "Kremacio"
#: ../src/gen/lib/eventtype.py:202
+8 -6
View File
@@ -3313,8 +3313,8 @@ msgid "Bar Mitzvah"
msgstr "Bar Mitzvah"
#: ../src/gen/lib/eventtype.py:151
msgid "Bas Mitzvah"
msgstr "Bas Mitzvah"
msgid "Bat Mitzvah"
msgstr "Bat Mitzvah"
#: ../src/gen/lib/eventtype.py:152
msgid "Blessing"
@@ -3514,7 +3514,7 @@ msgid "Bar Mitzvah abbreviation|bar."
msgstr "bar."
#: ../src/gen/lib/eventtype.py:201
msgid "Bas Mitzvah abbreviation|bas."
msgid "Bat Mitzvah abbreviation|bat."
msgstr "bas."
#: ../src/gen/lib/eventtype.py:202
@@ -14362,8 +14362,10 @@ msgstr "No especificó ninguna persona"
#: ../src/plugins/graph/GVFamilyLines.py:921
#, python-format
msgid "%d children"
msgstr "%d hijos"
msgid "%d child"
msgid_plural "%d children"
msgstr[0] "%d hijo"
msgstr[1] "%d hijos"
#: ../src/plugins/graph/GVHourGlass.py:57
#: ../src/plugins/graph/GVRelGraph.py:68
@@ -31128,7 +31130,7 @@ msgstr ""
"resuelve un problema persistente en genealogía: cómo manejar las variaciones "
"ortográficas. La utilidad SoundEx toma un apellido y genera una forma "
"simplificada que es equivalente para dos apellidos que suenan parecido. "
"Conocer el Código SoundEx de un apellido es muy útil al inverstigar datos "
"Conocer el Código SoundEx de un apellido es muy útil al investigar datos "
"del censo (en microficha) en una biblioteca u otro local de investigación. "
"Para obtener los códigos SoundEx de los apellidos de su base de datos, vaya "
"a &quot;Herramientas &gt; Utilidades &gt; Generar códigos SoundEx...&quot;."
+7 -5
View File
@@ -2853,8 +2853,8 @@ msgid "Bar Mitzvah"
msgstr "Bar Mitzvah"
#: ../src/gen/lib/eventtype.py:151
msgid "Bas Mitzvah"
msgstr "Bas Mitzvah"
msgid "Bat Mitzvah"
msgstr "Bat Mitzvah"
#: ../src/gen/lib/eventtype.py:152
msgid "Blessing"
@@ -3061,7 +3061,7 @@ msgstr "Lyhennys"
#: ../src/gen/lib/eventtype.py:201
#, fuzzy
msgid "Bas Mitzvah abbreviation|bas."
msgid "Bat Mitzvah abbreviation|bat."
msgstr "Lyhennys"
#: ../src/gen/lib/eventtype.py:202
@@ -13416,8 +13416,10 @@ msgstr ""
#: ../src/plugins/graph/GVFamilyLines.py:921
#, python-format
msgid "%d children"
msgstr "%d lasta"
msgid "%d child"
msgid_plural "%d children"
msgstr[0] "%d lapsi"
msgstr[1] "%d lasta"
#: ../src/plugins/graph/GVHourGlass.py:57
#: ../src/plugins/graph/GVRelGraph.py:68
+2274 -2048
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -2695,7 +2695,7 @@ msgid "Bar Mitzvah"
msgstr ""
#: ../src/gen/lib/eventtype.py:151
msgid "Bas Mitzvah"
msgid "Bat Mitzvah"
msgstr ""
#: ../src/gen/lib/eventtype.py:152
@@ -2894,7 +2894,7 @@ msgid "Bar Mitzvah abbreviation|bar."
msgstr ""
#: ../src/gen/lib/eventtype.py:201
msgid "Bas Mitzvah abbreviation|bas."
msgid "Bat Mitzvah abbreviation|bat."
msgstr ""
#: ../src/gen/lib/eventtype.py:202
+2267 -2032
View File
File diff suppressed because it is too large Load Diff
+8753 -6139
View File
File diff suppressed because it is too large Load Diff
+7 -4
View File
@@ -3058,7 +3058,7 @@ msgid "Bar Mitzvah"
msgstr "Bar Mitzvah"
#: ../src/gen/lib/eventtype.py:151
msgid "Bas Mitzvah"
msgid "Bat Mitzvah"
msgstr "Bar Mitzvah"
#: ../src/gen/lib/eventtype.py:152
@@ -3259,7 +3259,7 @@ msgid "Bar Mitzvah abbreviation|bar."
msgstr "bar."
#: ../src/gen/lib/eventtype.py:201
msgid "Bas Mitzvah abbreviation|bas."
msgid "Bat Mitzvah abbreviation|bat."
msgstr "bas."
#: ../src/gen/lib/eventtype.py:202
@@ -13419,8 +13419,11 @@ msgstr "Niste nikoga odabrali"
#: ../src/plugins/graph/GVFamilyLines.py:921
#, python-format
msgid "%d children"
msgstr "%d djece"
msgid "%d child"
msgid_plural "%d children"
msgstr[0] "%d dijete"
msgstr[1] "%d djece"
msgstr[2] "%d djece"
#: ../src/plugins/graph/GVHourGlass.py:57
#: ../src/plugins/graph/GVRelGraph.py:68
+8070 -6317
View File
File diff suppressed because it is too large Load Diff
+5983 -5368
View File
File diff suppressed because it is too large Load Diff
+6 -4
View File
@@ -3008,7 +3008,7 @@ msgid "Bar Mitzvah"
msgstr "バルミツヴァ"
#: ../src/gen/lib/eventtype.py:151
msgid "Bas Mitzvah"
msgid "Bat Mitzvah"
msgstr "バトミツヴァ"
#: ../src/gen/lib/eventtype.py:152
@@ -3209,7 +3209,7 @@ msgid "Bar Mitzvah abbreviation|bar."
msgstr "バルミツヴァ."
#: ../src/gen/lib/eventtype.py:201
msgid "Bas Mitzvah abbreviation|bas."
msgid "Bat Mitzvah abbreviation|bat."
msgstr "バトミツヴァ."
#: ../src/gen/lib/eventtype.py:202
@@ -13287,8 +13287,10 @@ msgstr ""
#: ../src/plugins/graph/GVFamilyLines.py:921
#, python-format
msgid "%d children"
msgstr "%d 人の子供"
msgid "%d child"
msgid_plural "%d children"
msgstr[0] "%d 人の子供"
msgstr[1] "%d 人の子供"
#: ../src/plugins/graph/GVHourGlass.py:57
#: ../src/plugins/graph/GVRelGraph.py:68
+10 -7
View File
@@ -3387,7 +3387,7 @@ msgid "Bar Mitzvah"
msgstr ""
#: ../src/gen/lib/eventtype.py:151
msgid "Bas Mitzvah"
msgid "Bat Mitzvah"
msgstr ""
#: ../src/gen/lib/eventtype.py:152
@@ -3598,7 +3598,7 @@ msgstr "bar."
#: ../src/gen/lib/eventtype.py:201
#, fuzzy
msgid "Bas Mitzvah abbreviation|bas."
msgid "Bat Mitzvah abbreviation|bat."
msgstr "bas."
#: ../src/gen/lib/eventtype.py:202
@@ -14337,8 +14337,11 @@ msgstr "Nieko nenurodėte!"
#: ../src/plugins/graph/GVFamilyLines.py:921
#, python-format
msgid "%d children"
msgstr "%d vaikai"
msgid "%d child"
msgid_plural "%d children"
msgstr[0] "%d vaikas"
msgstr[1] "%d vaikai"
msgstr[2] "%d vaikų"
#: ../src/plugins/graph/GVHourGlass.py:57
#: ../src/plugins/graph/GVRelGraph.py:68
@@ -23706,9 +23709,9 @@ msgstr "Prašom paleisti \"Tikrinti ir Taisyti duomenų bazę\" įrankį"
#, python-format
msgid " (%d child)"
msgid_plural " (%d children)"
msgstr[0] "(%d vaikas)"
msgstr[1] "(%d vaikai)"
msgstr[2] "(%d vaikų)"
msgstr[0] " (%d vaikas)"
msgstr[1] " (%d vaikai)"
msgstr[2] " (%d vaikų)"
#: ../src/plugins/view/relview.py:1328
#: ../src/plugins/view/relview.py:1375
+2 -2
View File
@@ -2904,7 +2904,7 @@ msgid "Bar Mitzvah"
msgstr "Бар Мицва"
#: ../src/gen/lib/eventtype.py:151
msgid "Bas Mitzvah"
msgid "Bat Mitzvah"
msgstr "Бас Мицва"
#: ../src/gen/lib/eventtype.py:152
@@ -3115,7 +3115,7 @@ msgstr "Кратенка"
#: ../src/gen/lib/eventtype.py:201
#, fuzzy
msgid "Bas Mitzvah abbreviation|bas."
msgid "Bat Mitzvah abbreviation|bat."
msgstr "Кратенка"
#: ../src/gen/lib/eventtype.py:202
+7 -5
View File
@@ -3042,8 +3042,8 @@ msgid "Bar Mitzvah"
msgstr "Bar Mitzvah"
#: ../src/gen/lib/eventtype.py:151
msgid "Bas Mitzvah"
msgstr "Bas Mitzvah"
msgid "Bat Mitzvah"
msgstr "Bat Mitzvah"
#: ../src/gen/lib/eventtype.py:152
msgid "Blessing"
@@ -3240,7 +3240,7 @@ msgid "Bar Mitzvah abbreviation|bar."
msgstr "barm."
#: ../src/gen/lib/eventtype.py:201
msgid "Bas Mitzvah abbreviation|bas."
msgid "Bat Mitzvah abbreviation|bat."
msgstr "basm."
#: ../src/gen/lib/eventtype.py:202
@@ -13319,8 +13319,10 @@ msgstr "Du valgte ingen"
#: ../src/plugins/graph/GVFamilyLines.py:921
#, python-format
msgid "%d children"
msgstr "%d barn"
msgid "%d child"
msgid_plural "%d children"
msgstr[0] "%d barn"
msgstr[1] "%d barn"
#: ../src/plugins/graph/GVHourGlass.py:57
#: ../src/plugins/graph/GVRelGraph.py:68
+7 -5
View File
@@ -3338,8 +3338,8 @@ msgid "Bar Mitzvah"
msgstr "Bar Mitzvah"
#: ../src/gen/lib/eventtype.py:151
msgid "Bas Mitzvah"
msgstr "Bas Mitzvah"
msgid "Bat Mitzvah"
msgstr "Bat Mitzvah"
# Huwelijkszegen?
#: ../src/gen/lib/eventtype.py:152
@@ -3550,7 +3550,7 @@ msgid "Bar Mitzvah abbreviation|bar."
msgstr "bar."
#: ../src/gen/lib/eventtype.py:201
msgid "Bas Mitzvah abbreviation|bas."
msgid "Bat Mitzvah abbreviation|bat."
msgstr "bas."
#: ../src/gen/lib/eventtype.py:202
@@ -14463,8 +14463,10 @@ msgstr "U heeft niemand opgegeven"
#: ../src/plugins/graph/GVFamilyLines.py:921
#, python-format
msgid "%d children"
msgstr "%d kinderen"
msgid "%d child"
msgid_plural "%d children"
msgstr[0] "%d kind"
msgstr[1] "%d kinderen"
#: ../src/plugins/graph/GVHourGlass.py:57
#: ../src/plugins/graph/GVRelGraph.py:68
+7 -5
View File
@@ -2957,8 +2957,8 @@ msgid "Bar Mitzvah"
msgstr "Bar Mitzvah"
#: ../src/gen/lib/eventtype.py:151
msgid "Bas Mitzvah"
msgstr "Bas Mitzvah"
msgid "Bat Mitzvah"
msgstr "Bat Mitzvah"
#: ../src/gen/lib/eventtype.py:152
msgid "Blessing"
@@ -3155,7 +3155,7 @@ msgid "Bar Mitzvah abbreviation|bar."
msgstr "barm."
#: ../src/gen/lib/eventtype.py:201
msgid "Bas Mitzvah abbreviation|bas."
msgid "Bat Mitzvah abbreviation|bat."
msgstr "basm."
#: ../src/gen/lib/eventtype.py:202
@@ -13161,8 +13161,10 @@ msgstr "Du spesifiserte ingen"
#: ../src/plugins/graph/GVFamilyLines.py:921
#, python-format
msgid "%d children"
msgstr "%d barn"
msgid "%d child"
msgid_plural "%d children"
msgstr[0] "%d barn"
msgstr[1] "%d barn"
#: ../src/plugins/graph/GVHourGlass.py:57
#: ../src/plugins/graph/GVRelGraph.py:68
+10 -7
View File
@@ -3047,7 +3047,7 @@ msgid "Bar Mitzvah"
msgstr "Bar micwa"
#: ../src/gen/lib/eventtype.py:151
msgid "Bas Mitzvah"
msgid "Bat Mitzvah"
msgstr "Bat micwa"
#: ../src/gen/lib/eventtype.py:152
@@ -3245,7 +3245,7 @@ msgid "Bar Mitzvah abbreviation|bar."
msgstr "bar."
#: ../src/gen/lib/eventtype.py:201
msgid "Bas Mitzvah abbreviation|bas."
msgid "Bat Mitzvah abbreviation|bat."
msgstr "bas."
#: ../src/gen/lib/eventtype.py:202
@@ -13347,8 +13347,11 @@ msgstr "Nie określiłeś nikogo"
#: ../src/plugins/graph/GVFamilyLines.py:921
#, python-format
msgid "%d children"
msgstr "%d dzieci"
msgid "%d child"
msgid_plural "%d children"
msgstr[0] "%d dziecko"
msgstr[1] "%d dzieci"
msgstr[2] "%d dzieci"
#: ../src/plugins/graph/GVHourGlass.py:57
#: ../src/plugins/graph/GVRelGraph.py:68
@@ -22435,9 +22438,9 @@ msgstr "Proszę najpierw uruchomić narzędzie Sprawdź i napraw bazę danych"
#, python-format
msgid " (%d child)"
msgid_plural " (%d children)"
msgstr[0] "(%d dziecko)"
msgstr[1] "(%d dzieci)"
msgstr[2] "(%d dzieci)"
msgstr[0] " (%d dziecko)"
msgstr[1] " (%d dzieci)"
msgstr[2] " (%d dzieci)"
#: ../src/plugins/view/relview.py:1328 ../src/plugins/view/relview.py:1375
msgid " (no children)"
+7 -5
View File
@@ -3189,8 +3189,8 @@ msgid "Bar Mitzvah"
msgstr "Bar Mitzvah"
#: ../src/gen/lib/eventtype.py:151
msgid "Bas Mitzvah"
msgstr "Bas Mitzvah"
msgid "Bat Mitzvah"
msgstr "Bat Mitzvah"
#: ../src/gen/lib/eventtype.py:152
msgid "Blessing"
@@ -3387,7 +3387,7 @@ msgid "Bar Mitzvah abbreviation|bar."
msgstr "bar."
#: ../src/gen/lib/eventtype.py:201
msgid "Bas Mitzvah abbreviation|bas."
msgid "Bat Mitzvah abbreviation|bat."
msgstr "bas."
#: ../src/gen/lib/eventtype.py:202
@@ -14111,8 +14111,10 @@ msgstr "Você não especificou ninguém"
#: ../src/plugins/graph/GVFamilyLines.py:921
#, python-format
msgid "%d children"
msgstr "%d filhos"
msgid "%d child"
msgid_plural "%d children"
msgstr[0] "%d filho(a)"
msgstr[1] "%d filhos(as)"
#: ../src/plugins/graph/GVHourGlass.py:57
#: ../src/plugins/graph/GVRelGraph.py:68
+7 -5
View File
@@ -2980,8 +2980,8 @@ msgid "Bar Mitzvah"
msgstr "Bar Mitzvah"
#: ../src/gen/lib/eventtype.py:151
msgid "Bas Mitzvah"
msgstr "Bas Mitzvah"
msgid "Bat Mitzvah"
msgstr "Bat Mitzvah"
#: ../src/gen/lib/eventtype.py:152
msgid "Blessing"
@@ -3180,7 +3180,7 @@ msgid "Bar Mitzvah abbreviation|bar."
msgstr "bar."
#: ../src/gen/lib/eventtype.py:201
msgid "Bas Mitzvah abbreviation|bas."
msgid "Bat Mitzvah abbreviation|bat."
msgstr "bas."
#: ../src/gen/lib/eventtype.py:202
@@ -13201,8 +13201,10 @@ msgstr "Você não especificou ninguém"
#: ../src/plugins/graph/GVFamilyLines.py:921
#, python-format
msgid "%d children"
msgstr "%d filhos"
msgid "%d child"
msgid_plural "%d children"
msgstr[0] "%d filho"
msgstr[1] "%d filhos"
#: ../src/plugins/graph/GVHourGlass.py:57
#: ../src/plugins/graph/GVRelGraph.py:68
+3 -3
View File
@@ -2893,8 +2893,8 @@ msgid "Bar Mitzvah"
msgstr "Bar Mitzvah"
#: ../src/gen/lib/eventtype.py:151
msgid "Bas Mitzvah"
msgstr "Bas Mitzvah"
msgid "Bat Mitzvah"
msgstr "Bat Mitzvah"
#: ../src/gen/lib/eventtype.py:152
msgid "Blessing"
@@ -3103,7 +3103,7 @@ msgstr "Cremare"
#: ../src/gen/lib/eventtype.py:201
#, fuzzy
msgid "Bas Mitzvah abbreviation|bas."
msgid "Bat Mitzvah abbreviation|bat."
msgstr "Cremare"
#: ../src/gen/lib/eventtype.py:202
+2599 -1809
View File
File diff suppressed because it is too large Load Diff
+8 -6
View File
@@ -3188,8 +3188,8 @@ msgid "Bar Mitzvah"
msgstr "Bar Mitzvah"
#: ../src/gen/lib/eventtype.py:151
msgid "Bas Mitzvah"
msgstr "Bas Mitzvah"
msgid "Bat Mitzvah"
msgstr "Bat Mitzvah"
#: ../src/gen/lib/eventtype.py:152
msgid "Blessing"
@@ -3386,7 +3386,7 @@ msgid "Bar Mitzvah abbreviation|bar."
msgstr "bar."
#: ../src/gen/lib/eventtype.py:201
msgid "Bas Mitzvah abbreviation|bas."
msgid "Bat Mitzvah abbreviation|bat."
msgstr "bas."
#: ../src/gen/lib/eventtype.py:202
@@ -14020,8 +14020,10 @@ msgstr "Nevybrali ste nikoho"
#: ../src/plugins/graph/GVFamilyLines.py:921
#, python-format
msgid "%d children"
msgstr "Počet detí %d"
msgid "%d child"
msgid_plural "%d children"
msgstr[0] "%d dieťa"
msgstr[1] "%d detí"
#: ../src/plugins/graph/GVHourGlass.py:57
#: ../src/plugins/graph/GVRelGraph.py:68
@@ -24092,7 +24094,7 @@ msgstr "Zrakovo postihnutí"
#: ../src/plugins/webreport/NarrativeWeb.py:1754
#: ../src/plugins/webreport/NarrativeWeb.py:1904
msgid "Html|Home"
msgstr "Domovská Htnl"
msgstr "Domovská Html"
#: ../src/plugins/webreport/NarrativeWeb.py:1755
#: ../src/plugins/webreport/NarrativeWeb.py:1861
+8 -4
View File
@@ -2822,7 +2822,7 @@ msgid "Bar Mitzvah"
msgstr "Bar Micva"
#: ../src/gen/lib/eventtype.py:151
msgid "Bas Mitzvah"
msgid "Bat Mitzvah"
msgstr "Bas Micva"
#: ../src/gen/lib/eventtype.py:152
@@ -3020,7 +3020,7 @@ msgid "Bar Mitzvah abbreviation|bar."
msgstr "bar."
#: ../src/gen/lib/eventtype.py:201
msgid "Bas Mitzvah abbreviation|bas."
msgid "Bat Mitzvah abbreviation|bat."
msgstr "bas."
#: ../src/gen/lib/eventtype.py:202
@@ -13099,8 +13099,12 @@ msgstr ""
#: ../src/plugins/graph/GVFamilyLines.py:921
#, python-format
msgid "%d children"
msgstr "Št. otrok: %d"
msgid "%d child"
msgid_plural "%d children"
msgstr[0] "%d otrok"
msgstr[1] "%d otrok"
msgstr[2] "%d otroka"
msgstr[3] "%d otroci"
#: ../src/plugins/graph/GVHourGlass.py:57
#: ../src/plugins/graph/GVRelGraph.py:68
+3 -3
View File
@@ -2875,8 +2875,8 @@ msgid "Bar Mitzvah"
msgstr "Bar Mitzvah"
#: ../src/gen/lib/eventtype.py:151
msgid "Bas Mitzvah"
msgstr "Bas Mitzvah"
msgid "Bat Mitzvah"
msgstr "Bat Mitzvah"
#: ../src/gen/lib/eventtype.py:152
msgid "Blessing"
@@ -3078,7 +3078,7 @@ msgid "Bar Mitzvah abbreviation|bar."
msgstr ""
#: ../src/gen/lib/eventtype.py:201
msgid "Bas Mitzvah abbreviation|bas."
msgid "Bat Mitzvah abbreviation|bat."
msgstr ""
#: ../src/gen/lib/eventtype.py:202
+2 -2
View File
@@ -2683,7 +2683,7 @@ msgid "Bar Mitzvah"
msgstr ""
#: ../src/gen/lib/eventtype.py:151
msgid "Bas Mitzvah"
msgid "Bat Mitzvah"
msgstr ""
#: ../src/gen/lib/eventtype.py:152
@@ -2881,7 +2881,7 @@ msgid "Bar Mitzvah abbreviation|bar."
msgstr ""
#: ../src/gen/lib/eventtype.py:201
msgid "Bas Mitzvah abbreviation|bas."
msgid "Bat Mitzvah abbreviation|bat."
msgstr ""
#: ../src/gen/lib/eventtype.py:202
+1588 -1374
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -2884,7 +2884,7 @@ msgid "Bar Mitzvah"
msgstr ""
#: ../src/gen/lib/eventtype.py:151
msgid "Bas Mitzvah"
msgid "Bat Mitzvah"
msgstr ""
#: ../src/gen/lib/eventtype.py:152
@@ -3094,7 +3094,7 @@ msgstr "kisaltma"
#: ../src/gen/lib/eventtype.py:201
#, fuzzy
msgid "Bas Mitzvah abbreviation|bas."
msgid "Bat Mitzvah abbreviation|bat."
msgstr "kisaltma"
#: ../src/gen/lib/eventtype.py:202
+7 -4
View File
@@ -3072,7 +3072,7 @@ msgid "Bar Mitzvah"
msgstr "Бар-міцва"
#: ../src/gen/lib/eventtype.py:151
msgid "Bas Mitzvah"
msgid "Bat Mitzvah"
msgstr "Бас-міцва"
#: ../src/gen/lib/eventtype.py:152
@@ -3270,7 +3270,7 @@ msgid "Bar Mitzvah abbreviation|bar."
msgstr "бар.Міц."
#: ../src/gen/lib/eventtype.py:201
msgid "Bas Mitzvah abbreviation|bas."
msgid "Bat Mitzvah abbreviation|bat."
msgstr "бас.Міц."
#: ../src/gen/lib/eventtype.py:202
@@ -13391,8 +13391,11 @@ msgstr "Ви нікого не вказали"
#: ../src/plugins/graph/GVFamilyLines.py:921
#, python-format
msgid "%d children"
msgstr "%d дітей"
msgid "%d child"
msgid_plural "%d children"
msgstr[0] "%d дитина"
msgstr[1] "%d дитини"
msgstr[2] "%d дітей"
#: ../src/plugins/graph/GVHourGlass.py:57
#: ../src/plugins/graph/GVRelGraph.py:68
+6 -5
View File
@@ -3076,8 +3076,8 @@ msgid "Bar Mitzvah"
msgstr "Lễ Thành nhân (Bar Mitzvah)"
#: ../src/gen/lib/eventtype.py:151
msgid "Bas Mitzvah"
msgstr "Lễ Thành nhân (Bas Mitzvah)"
msgid "Bat Mitzvah"
msgstr "Lễ Thành nhân (Bat Mitzvah)"
#: ../src/gen/lib/eventtype.py:152
msgid "Blessing"
@@ -3277,7 +3277,7 @@ msgid "Bar Mitzvah abbreviation|bar."
msgstr "Viết tắt lễ thành nhân Do Thái|bar."
#: ../src/gen/lib/eventtype.py:201
msgid "Bas Mitzvah abbreviation|bas."
msgid "Bat Mitzvah abbreviation|bat."
msgstr "Viết tắt lễ thành nhân|bas. "
#: ../src/gen/lib/eventtype.py:202
@@ -13466,8 +13466,9 @@ msgstr "Bạn chưa nêu một người nào"
#: ../src/plugins/graph/GVFamilyLines.py:921
#, python-format
msgid "%d children"
msgstr "%d con cái "
msgid "%d child"
msgid_plural "%d children"
msgstr[0] "%d con cái "
#: ../src/plugins/graph/GVHourGlass.py:57
#: ../src/plugins/graph/GVRelGraph.py:68
+6 -5
View File
@@ -2860,7 +2860,7 @@ msgid "Bar Mitzvah"
msgstr "男孩成人13岁成人礼"
#: ../src/gen/lib/eventtype.py:151
msgid "Bas Mitzvah"
msgid "Bat Mitzvah"
msgstr "女孩成人13岁成人礼"
#: ../src/gen/lib/eventtype.py:152
@@ -3058,7 +3058,7 @@ msgid "Bar Mitzvah abbreviation|bar."
msgstr "犹太受戒礼"
#: ../src/gen/lib/eventtype.py:201
msgid "Bas Mitzvah abbreviation|bas."
msgid "Bat Mitzvah abbreviation|bat."
msgstr "犹太女孩成人仪式"
#: ../src/gen/lib/eventtype.py:202
@@ -13208,8 +13208,9 @@ msgstr ""
#: ../src/plugins/graph/GVFamilyLines.py:921
#, python-format
msgid "%d children"
msgstr "%d 子女"
msgid "%d child"
msgid_plural "%d children"
msgstr[0] "%d 子女"
#: ../src/plugins/graph/GVHourGlass.py:57
#: ../src/plugins/graph/GVRelGraph.py:68
@@ -21889,7 +21890,7 @@ msgstr "请运行检查和修复数据库工具"
#, python-format
msgid " (%d child)"
msgid_plural " (%d children)"
msgstr[0] "(%d 子女)"
msgstr[0] " (%d 子女)"
#: ../src/plugins/view/relview.py:1328 ../src/plugins/view/relview.py:1375
msgid " (no children)"
+66 -25
View File
@@ -30,6 +30,7 @@ Provide autocompletion functionality.
#
#-------------------------------------------------------------------------
import locale
from gen.ggettext import sgettext as _
#-------------------------------------------------------------------------
#
@@ -110,7 +111,7 @@ class StandardCustomSelector(object):
"""
def __init__(self, mapping, cbe=None, custom_key=None, active_key=None,
additional=None):
additional=None, menu=None):
"""
Constructor for the StandardCustomSelector class.
@@ -130,57 +131,85 @@ class StandardCustomSelector(object):
self.active_key = active_key
self.active_index = 0
self.additional = additional
# make model
self.store = gtk.ListStore(gobject.TYPE_INT, gobject.TYPE_STRING)
# fill it up using mapping
self.fill()
self.menu = menu
# create combo box entry
if cbe:
self.selector = cbe
self.selector.set_model(self.store)
self.selector.set_text_column(1)
else:
self.selector = gtk.ComboBoxEntry(self.store, 1)
if self.active_key is not None:
self.selector.set_active(self.active_index)
self.selector = gtk.ComboBoxEntry()
# create models
if menu:
self.store = self.create_menu()
completion_store = self.create_list()
else:
self.store = self.create_list()
completion_store = self.store
self.selector.set_model(self.store)
self.selector.set_text_column(1)
if menu:
for cell in self.selector.get_cells():
self.selector.add_attribute(cell, 'sensitive', 2)
#if self.active_key is not None:
#self.selector.set_active(self.active_index)
# make autocompletion work
completion = gtk.EntryCompletion()
completion.set_model(self.store)
completion.set_model(completion_store)
completion.set_minimum_key_length(1)
completion.set_text_column(1)
self.selector.child.set_completion(completion)
def fill(self):
def create_menu(self):
"""
Fill with data
Create a model and fill it with a two-level tree corresponding to the
menu.
"""
store = gtk.TreeStore(int, str, bool)
for heading, items in self.menu:
if self.active_key in items:
parent = None
else:
parent = store.append(None, row=[-999, heading, False])
for item in items:
store.append(parent, row=[item, self.mapping[item], True])
if self.additional:
parent = store.append(None, row=[-999, _('Custom'), False])
for event_type in self.additional:
key, value = self.get_key_and_value(event_type)
store.append(parent, row=[key, value, True])
return store
def create_list(self):
"""
Create a model and fill it with a sorted flat list.
"""
store = gtk.ListStore(int, str)
keys = sorted(self.mapping, self.by_value)
index = 0
for key in keys:
if key != self.custom_key:
self.store.append(row=[key, self.mapping[key]])
store.append(row=[key, self.mapping[key]])
if key == self.active_key:
self.active_index = index
index += 1
if self.additional:
for event_type in self.additional:
if isinstance(event_type, basestring):
if event_type:
self.store.append(row=[self.custom_key, event_type])
elif isinstance(event_type, tuple):
if event_type[1]:
self.store.append(row=[event_type[0], event_type[1]])
else:
self.store.append(row=[int(event_type), str(event_type)])
key, value = self.get_key_and_value(event_type)
store.append(row=[key, value])
if key == self.active_key:
self.active_index = index
index += 1
return store
def by_value(self, first, second):
"""
Method for sorting keys based on the values.
@@ -235,4 +264,16 @@ class StandardCustomSelector(object):
return True
return False
def get_key_and_value(self, event_type):
"""
Return the key and value for the given event type. The event type may be
a string representing a custom type, an (int, str) tuple or an EventType
instance.
"""
if isinstance(event_type, basestring):
return (self.custom_key, event_type)
elif isinstance(event_type, tuple):
if event_type[1]:
return (event_type[0], event_type[1])
else:
return(int(event_type), str(event_type))
+21 -21
View File
@@ -304,22 +304,22 @@ class Bookmarks :
class ListBookmarks(Bookmarks):
def __init__(self, dbstate, uistate, bookmarks, goto_handle):
self.goto_handle = goto_handle
def __init__(self, dbstate, uistate, bookmarks, change_active):
self.change_active = change_active
Bookmarks.__init__(self, dbstate, uistate, bookmarks)
def callback(self, handle):
return make_callback(handle, self.do_callback)
def do_callback(self, handle):
self.goto_handle(handle)
self.change_active(handle)
class PersonBookmarks(ListBookmarks) :
"Handle the bookmarks interface for Gramps."
def __init__(self, dbstate, uistate, bookmarks, goto_handle):
def __init__(self, dbstate, uistate, bookmarks, change_active):
ListBookmarks.__init__(self, dbstate, uistate, bookmarks,
goto_handle)
change_active)
def make_label(self, handle):
return Utils.navigation_label(self.dbstate.db, 'Person', handle)
@@ -330,9 +330,9 @@ class PersonBookmarks(ListBookmarks) :
class FamilyBookmarks(ListBookmarks) :
"Handle the bookmarks interface for Gramps."
def __init__(self, dbstate, uistate, bookmarks, goto_handle):
def __init__(self, dbstate, uistate, bookmarks, change_active):
ListBookmarks.__init__(self, dbstate, uistate, bookmarks,
goto_handle)
change_active)
def make_label(self, handle):
return Utils.navigation_label(self.dbstate.db, 'Family', handle)
@@ -343,9 +343,9 @@ class FamilyBookmarks(ListBookmarks) :
class EventBookmarks(ListBookmarks) :
"Handle the bookmarks interface for Gramps."
def __init__(self, dbstate, uistate, bookmarks, goto_handle):
def __init__(self, dbstate, uistate, bookmarks, change_active):
ListBookmarks.__init__(self, dbstate, uistate, bookmarks,
goto_handle)
change_active)
def make_label(self, handle):
return Utils.navigation_label(self.dbstate.db, 'Event', handle)
@@ -355,9 +355,9 @@ class EventBookmarks(ListBookmarks) :
class SourceBookmarks(ListBookmarks) :
"Handle the bookmarks interface for Gramps."
def __init__(self, dbstate, uistate, bookmarks, goto_handle):
def __init__(self, dbstate, uistate, bookmarks, change_active):
ListBookmarks.__init__(self, dbstate, uistate, bookmarks,
goto_handle)
change_active)
def make_label(self, handle):
return Utils.navigation_label(self.dbstate.db, 'Source', handle)
@@ -367,9 +367,9 @@ class SourceBookmarks(ListBookmarks) :
class CitationBookmarks(ListBookmarks) :
"Handle the bookmarks interface for Gramps."
def __init__(self, dbstate, uistate, bookmarks, goto_handle):
def __init__(self, dbstate, uistate, bookmarks, change_active):
ListBookmarks.__init__(self, dbstate, uistate, bookmarks,
goto_handle)
change_active)
def make_label(self, handle):
return Utils.navigation_label(self.dbstate.db, 'Citation', handle)
@@ -403,9 +403,9 @@ class CitationBookmarks(ListBookmarks) :
class MediaBookmarks(ListBookmarks) :
"Handle the bookmarks interface for Gramps."
def __init__(self, dbstate, uistate, bookmarks, goto_handle):
def __init__(self, dbstate, uistate, bookmarks, change_active):
ListBookmarks.__init__(self, dbstate, uistate, bookmarks,
goto_handle)
change_active)
def make_label(self, handle):
return Utils.navigation_label(self.dbstate.db, 'Media', handle)
@@ -416,9 +416,9 @@ class MediaBookmarks(ListBookmarks) :
class RepoBookmarks(ListBookmarks) :
"Handle the bookmarks interface for Gramps."
def __init__(self, dbstate, uistate, bookmarks, goto_handle):
def __init__(self, dbstate, uistate, bookmarks, change_active):
ListBookmarks.__init__(self, dbstate, uistate, bookmarks,
goto_handle)
change_active)
def make_label(self, handle):
return Utils.navigation_label(self.dbstate.db, 'Repository', handle)
@@ -429,9 +429,9 @@ class RepoBookmarks(ListBookmarks) :
class PlaceBookmarks(ListBookmarks) :
"Handle the bookmarks interface for Gramps."
def __init__(self, dbstate, uistate, bookmarks, goto_handle):
def __init__(self, dbstate, uistate, bookmarks, change_active):
ListBookmarks.__init__(self, dbstate, uistate, bookmarks,
goto_handle)
change_active)
def make_label(self, handle):
return Utils.navigation_label(self.dbstate.db, 'Place', handle)
@@ -442,9 +442,9 @@ class PlaceBookmarks(ListBookmarks) :
class NoteBookmarks(ListBookmarks) :
"Handle the bookmarks interface for Gramps."
def __init__(self, dbstate, uistate, bookmarks, goto_handle):
def __init__(self, dbstate, uistate, bookmarks, change_active):
ListBookmarks.__init__(self, dbstate, uistate, bookmarks,
goto_handle)
change_active)
def make_label(self, handle):
return Utils.navigation_label(self.dbstate.db, 'Note', handle)
+76 -26
View File
@@ -24,9 +24,8 @@
"""
Date editing module for GRAMPS.
The DateEdit.DateEdit provides visual feedback to the user via a pixamp
to indicate if the associated GtkEntry box contains a valid date. Green
means complete and regular date. Yellow means a valid, but not a regular date.
The DateEdit.DateEdit provides visual feedback to the user
to indicate if the associated GtkEntry box contains a valid date.
Red means that the date is not valid, and will be viewed as a text string
instead of a date.
@@ -47,7 +46,7 @@ unambiguously built using UI controls such as menus and spin buttons.
#
#-------------------------------------------------------------------------
import logging
__LOG = logging.getLogger(".DateEdit")
LOG = logging.getLogger(".DateEdit")
#-------------------------------------------------------------------------
#
@@ -62,7 +61,7 @@ import gtk
#
#-------------------------------------------------------------------------
from gen.ggettext import sgettext as _
from gen.lib.date import Date, NextYear
from gen.lib.date import Date, DateError, NextYear
import DateHandler
import const
import GrampsDisplay
@@ -201,6 +200,9 @@ class DateEditorDialog(ManagedWindow.ManagedWindow):
self.top.get_object('title'),
_('Date selection'))
self.statusbar = self.top.get_object('statusbar')
self.ok_button = self.top.get_object('ok_button')
self.calendar_box = self.top.get_object('calendar_box')
for name in Date.ui_calendar_names:
self.calendar_box.get_model().append([name])
@@ -273,8 +275,15 @@ class DateEditorDialog(ManagedWindow.ManagedWindow):
# want to have several open dialogs, since then the user will
# loose track of which is which. Much like opening files.
self.return_date = None
self.validated_date = self.return_date = None
for o in self.top.get_objects():
try:
if o != self.ok_button:
o.connect_after('changed', self.revalidate)
except TypeError:
pass # some of them don't support the signal, ignore them...
self.revalidate()
self.show()
while True:
@@ -286,19 +295,53 @@ class DateEditorDialog(ManagedWindow.ManagedWindow):
break
else:
if response == gtk.RESPONSE_OK:
(the_quality, the_modifier, the_calendar,
the_value, the_text, the_newyear) = self.build_date_from_ui()
self.return_date = Date(self.date)
self.return_date.set(
quality=the_quality,
modifier=the_modifier,
calendar=the_calendar,
value=the_value,
text=the_text,
newyear=the_newyear)
# if the user pressed OK/enter while inside an edit field,
# e.g., the year,
# build_date_from_ui won't pick up the new text in the
# run of revalidate that allowed the OK!
if not self.revalidate():
continue
self.return_date = Date()
self.return_date.copy(self.validated_date)
self.close()
break
def revalidate(self, obj = None):
"""
If anything changed, revalidate the date and
enable/disable the "OK" button based on the result.
"""
(the_quality, the_modifier, the_calendar, the_value,
the_text, the_newyear) = self.build_date_from_ui()
LOG.debug("revalidate: {0} changed, value: {1}".format(
obj, the_value))
d = Date(self.date)
if not self.ok_button.get_sensitive():
self.statusbar.pop(1)
try:
d.set(
quality=the_quality,
modifier=the_modifier,
calendar=the_calendar,
value=the_value,
text=the_text,
newyear=the_newyear)
# didn't throw yet?
self.validated_date = d
LOG.debug("validated_date set to: {0}".format(d.dateval))
self.ok_button.set_sensitive(1)
self.calendar_box.set_sensitive(1)
return True
except DateError as e:
self.ok_button.set_sensitive(0)
self.calendar_box.set_sensitive(0)
self.statusbar.push(1,
_("Correct the date or switch from `{cur_mode}' to `{text_mode}'"
).format(
cur_mode = MOD_TEXT[self.type_box.get_active()][1],
text_mode = MOD_TEXT[-1][1]))
return False
def build_menu_names(self, obj):
"""
Define the menu entry for the ManagedWindows
@@ -394,19 +437,24 @@ class DateEditorDialog(ManagedWindow.ManagedWindow):
old_cal = self.date.get_calendar()
new_cal = self.calendar_box.get_active()
LOG.debug(">>>switch_calendar: {0} changed, {1} -> {2}".format(
obj, old_cal, new_cal))
(the_quality, the_modifier, the_calendar,
the_value, the_text, the_newyear) = self.build_date_from_ui()
self.date.set(
quality=the_quality,
modifier=the_modifier,
calendar=old_cal,
value=the_value,
text=the_text,
newyear=the_newyear)
if not self.date.is_empty():
self.date.convert_calendar(new_cal)
try:
self.date.set(
quality=the_quality,
modifier=the_modifier,
calendar=old_cal,
value=the_value,
text=the_text,
newyear=the_newyear)
except DateError:
pass
else:
if not self.date.is_empty():
self.date.convert_calendar(new_cal)
self.start_month_box.get_model().clear()
self.stop_month_box.get_model().clear()
@@ -421,3 +469,5 @@ class DateEditorDialog(ManagedWindow.ManagedWindow):
self.stop_day.set_value(self.date.get_stop_day())
self.stop_month_box.set_active(self.date.get_stop_month())
self.stop_year.set_value(self.date.get_stop_year())
LOG.debug("<<<switch_calendar: {0} changed, {1} -> {2}".format(
obj, old_cal, new_cal))
+10 -8
View File
@@ -166,8 +166,10 @@ class DateParserCZ(DateParser):
}
quality_to_int = {
u'přibližně' : Date.QUAL_ESTIMATED,
u'odhadované' : Date.QUAL_ESTIMATED,
u'odh.' : Date.QUAL_ESTIMATED,
u'vypočteno' : Date.QUAL_CALCULATED,
u'vypočtené' : Date.QUAL_CALCULATED,
u'vyp.' : Date.QUAL_CALCULATED,
}
@@ -238,14 +240,14 @@ class DateDisplayCZ(DateDisplay):
return date.get_text()
elif start == Date.EMPTY:
return ""
elif mod == Date.MOD_NONE:
date_decl_string = self.display_cal[cal](start)
date_decl_string = date_decl_string.replace(u"den ", u"dna ")
date_decl_string = date_decl_string.replace(u"or ", u"ora ")
date_decl_string = date_decl_string.replace(u"en ", u"na ")
date_decl_string = date_decl_string.replace(u"ad ", u"adu ")
date_decl_string = date_decl_string.replace(u"ec ", u"ce ")
return date_decl_string
# elif mod == Date.MOD_NONE:
# date_decl_string = self.display_cal[cal](start)
# date_decl_string = date_decl_string.replace(u"den ", u"dna ")
# date_decl_string = date_decl_string.replace(u"or ", u"ora ")
# date_decl_string = date_decl_string.replace(u"en ", u"na ")
# date_decl_string = date_decl_string.replace(u"ad ", u"adu ")
# date_decl_string = date_decl_string.replace(u"ec ", u"ce ")
# return date_decl_string
elif mod == Date.MOD_SPAN:
dat1 = self.display_cal[cal](start)
dat2 = self.display_cal[cal](date.get_stop_date())
+2 -1
View File
@@ -51,6 +51,7 @@ class DateParserRU(DateParser):
modifier_to_int = {
u'перед' : Date.MOD_BEFORE,
u'до' : Date.MOD_BEFORE,
u'по' : Date.MOD_BEFORE,
u'после' : Date.MOD_AFTER,
u'п.' : Date.MOD_AFTER,
@@ -257,7 +258,7 @@ class DateDisplayRU(DateDisplay):
_mod_str = (
u"",
u"перед ",
u"до ",
u"после ",
u"около ",
u"", u"", u"")
+235 -178
View File
@@ -16,10 +16,7 @@
#
# 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# DateHandler/_Date_sr.py
# $Id$
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Serbian version by Vlada Perić <vlada.peric@gmail.com>, 2009.
@@ -28,7 +25,7 @@
"""
Serbian-specific classes for parsing and displaying dates.
"""
from __future__ import unicode_literals
#-------------------------------------------------------------------------
#
# Python modules
@@ -57,153 +54,153 @@ class DateParserSR(DateParser):
"""
month_to_int = DateParser.month_to_int
month_to_int[u"januar"] = 1
month_to_int[u"januara"] = 1
month_to_int[u"jan"] = 1
month_to_int[u"јан"] = 1
month_to_int[u"јануара"] = 1
month_to_int[u"јануар"] = 1
month_to_int[u"i"] = 1
month_to_int["januar"] = 1
month_to_int["januara"] = 1
month_to_int["jan"] = 1
month_to_int["јан"] = 1
month_to_int["јануара"] = 1
month_to_int["јануар"] = 1
month_to_int["i"] = 1
month_to_int[u"februar"] = 2
month_to_int[u"februara"] = 2
month_to_int[u"feb"] = 2
month_to_int[u"феб"] = 2
month_to_int[u"фебруар"] = 2
month_to_int[u"фебруара"] = 2
month_to_int[u"ii"] = 2
month_to_int["februar"] = 2
month_to_int["februara"] = 2
month_to_int["feb"] = 2
month_to_int["феб"] = 2
month_to_int["фебруар"] = 2
month_to_int["фебруара"] = 2
month_to_int["ii"] = 2
month_to_int[u"mart"] = 3
month_to_int[u"marta"] = 3
month_to_int[u"mar"] = 3
month_to_int[u"мар"] = 3
month_to_int[u"март"] = 3
month_to_int[u"марта"] = 3
month_to_int[u"iii"] = 3
month_to_int["mart"] = 3
month_to_int["marta"] = 3
month_to_int["mar"] = 3
month_to_int["мар"] = 3
month_to_int["март"] = 3
month_to_int["марта"] = 3
month_to_int["iii"] = 3
month_to_int[u"april"] = 4
month_to_int[u"aprila"] = 4
month_to_int[u"apr"] = 4
month_to_int[u"апр"] = 4
month_to_int[u"април"] = 4
month_to_int[u"априла"] = 4
month_to_int[u"iv"] = 4
month_to_int["april"] = 4
month_to_int["aprila"] = 4
month_to_int["apr"] = 4
month_to_int["апр"] = 4
month_to_int["април"] = 4
month_to_int["априла"] = 4
month_to_int["iv"] = 4
month_to_int[u"maj"] = 5
month_to_int[u"maja"] = 5
month_to_int[u"мај"] = 5
month_to_int[u"маја"] = 5
month_to_int[u"v"] = 5
month_to_int["maj"] = 5
month_to_int["maja"] = 5
month_to_int["мај"] = 5
month_to_int["маја"] = 5
month_to_int["v"] = 5
month_to_int[u"jun"] = 6
month_to_int[u"juna"] = 6
month_to_int[u"јун"] = 6
month_to_int[u"јуна"] = 6
month_to_int[u"vi"] = 6
month_to_int["jun"] = 6
month_to_int["juna"] = 6
month_to_int["јун"] = 6
month_to_int["јуна"] = 6
month_to_int["vi"] = 6
month_to_int[u"jul"] = 7
month_to_int[u"jula"] = 7
month_to_int[u"јул"] = 7
month_to_int[u"јула"] = 7
month_to_int[u"vii"] = 7
month_to_int["jul"] = 7
month_to_int["jula"] = 7
month_to_int["јул"] = 7
month_to_int["јула"] = 7
month_to_int["vii"] = 7
month_to_int[u"avgust"] = 8
month_to_int[u"avgusta"] = 8
month_to_int[u"avg"] = 8
month_to_int[u"авг"] = 8
month_to_int[u"август"] = 8
month_to_int[u"августа"] = 8
month_to_int[u"viii"] = 8
month_to_int["avgust"] = 8
month_to_int["avgusta"] = 8
month_to_int["avg"] = 8
month_to_int["авг"] = 8
month_to_int["август"] = 8
month_to_int["августа"] = 8
month_to_int["viii"] = 8
month_to_int[u"septembar"] = 9
month_to_int[u"septembra"] = 9
month_to_int[u"sep"] = 9
month_to_int[u"сеп"] = 9
month_to_int[u"септембар"] = 9
month_to_int[u"септембра"] = 9
month_to_int[u"ix"] = 9
month_to_int["septembar"] = 9
month_to_int["septembra"] = 9
month_to_int["sep"] = 9
month_to_int["сеп"] = 9
month_to_int["септембар"] = 9
month_to_int["септембра"] = 9
month_to_int["ix"] = 9
month_to_int[u"oktobar"] = 10
month_to_int[u"oktobra"] = 10
month_to_int[u"okt"] = 10
month_to_int[u"окт"] = 10
month_to_int[u"октобар"] = 10
month_to_int[u"октобра"] = 10
month_to_int[u"x"] = 10
month_to_int["oktobar"] = 10
month_to_int["oktobra"] = 10
month_to_int["okt"] = 10
month_to_int["окт"] = 10
month_to_int["октобар"] = 10
month_to_int["октобра"] = 10
month_to_int["x"] = 10
month_to_int[u"novembar"] = 11
month_to_int[u"novembra"] = 11
month_to_int[u"nov"] = 11
month_to_int[u"нов"] = 11
month_to_int[u"новембар"] = 11
month_to_int[u"новембра"] = 11
month_to_int[u"xi"] = 11
month_to_int["novembar"] = 11
month_to_int["novembra"] = 11
month_to_int["nov"] = 11
month_to_int["нов"] = 11
month_to_int["новембар"] = 11
month_to_int["новембра"] = 11
month_to_int["xi"] = 11
month_to_int[u"decembar"] = 12
month_to_int[u"decembra"] = 12
month_to_int[u"dec"] = 12
month_to_int[u"дец"] = 12
month_to_int[u"децембар"] = 12
month_to_int[u"децембра"] = 12
month_to_int[u"xii"] = 12
month_to_int["decembar"] = 12
month_to_int["decembra"] = 12
month_to_int["dec"] = 12
month_to_int["дец"] = 12
month_to_int["децембар"] = 12
month_to_int["децембра"] = 12
month_to_int["xii"] = 12
modifier_to_int = {
u'pre' : Date.MOD_BEFORE,
u'posle' : Date.MOD_AFTER,
u'oko' : Date.MOD_ABOUT,
u'cca' : Date.MOD_ABOUT,
'pre' : Date.MOD_BEFORE,
'posle' : Date.MOD_AFTER,
'oko' : Date.MOD_ABOUT,
'cca' : Date.MOD_ABOUT,
u'пре' : Date.MOD_BEFORE,
u'после' : Date.MOD_AFTER,
u'око' : Date.MOD_ABOUT,
'пре' : Date.MOD_BEFORE,
'после' : Date.MOD_AFTER,
'око' : Date.MOD_ABOUT,
}
calendar_to_int = {
u'gregorijanski' : Date.CAL_GREGORIAN,
u'greg.' : Date.CAL_GREGORIAN,
u'julijanski' : Date.CAL_JULIAN,
u'jul.' : Date.CAL_JULIAN,
u'hebrejski' : Date.CAL_HEBREW,
u'hebr.' : Date.CAL_HEBREW,
u'islamski' : Date.CAL_ISLAMIC,
u'isl.' : Date.CAL_ISLAMIC,
u'francuski republikanski': Date.CAL_FRENCH,
u'franc.' : Date.CAL_FRENCH,
u'persijski' : Date.CAL_PERSIAN,
u'pers. ' : Date.CAL_PERSIAN,
u'švedski' : Date.CAL_SWEDISH,
u'šv.' : Date.CAL_SWEDISH,
'gregorijanski' : Date.CAL_GREGORIAN,
'greg.' : Date.CAL_GREGORIAN,
'julijanski' : Date.CAL_JULIAN,
'jul.' : Date.CAL_JULIAN,
'hebrejski' : Date.CAL_HEBREW,
'hebr.' : Date.CAL_HEBREW,
'islamski' : Date.CAL_ISLAMIC,
'isl.' : Date.CAL_ISLAMIC,
'francuski republikanski': Date.CAL_FRENCH,
'franc.' : Date.CAL_FRENCH,
'persijski' : Date.CAL_PERSIAN,
'pers. ' : Date.CAL_PERSIAN,
'švedski' : Date.CAL_SWEDISH,
'šv.' : Date.CAL_SWEDISH,
u'грегоријански' : Date.CAL_GREGORIAN,
u'грег.' : Date.CAL_GREGORIAN,
u'јулијански' : Date.CAL_JULIAN,
u'јул.' : Date.CAL_JULIAN,
u'хебрејски' : Date.CAL_HEBREW,
u'хебр.' : Date.CAL_HEBREW,
u'исламски' : Date.CAL_ISLAMIC,
u'исл.' : Date.CAL_ISLAMIC,
u'француски републикански': Date.CAL_FRENCH,
u'франц.' : Date.CAL_FRENCH,
u'персијски' : Date.CAL_PERSIAN,
u'перс. ' : Date.CAL_PERSIAN,
u'шведски' : Date.CAL_SWEDISH,
u'шв' : Date.CAL_SWEDISH,
'грегоријански' : Date.CAL_GREGORIAN,
'грег.' : Date.CAL_GREGORIAN,
'јулијански' : Date.CAL_JULIAN,
'јул.' : Date.CAL_JULIAN,
'хебрејски' : Date.CAL_HEBREW,
'хебр.' : Date.CAL_HEBREW,
'исламски' : Date.CAL_ISLAMIC,
'исл.' : Date.CAL_ISLAMIC,
'француски републикански': Date.CAL_FRENCH,
'франц.' : Date.CAL_FRENCH,
'персијски' : Date.CAL_PERSIAN,
'перс. ' : Date.CAL_PERSIAN,
'шведски' : Date.CAL_SWEDISH,
'шв' : Date.CAL_SWEDISH,
}
quality_to_int = {
u'procenjeno' : Date.QUAL_ESTIMATED,
u'pro.' : Date.QUAL_ESTIMATED,
u'izračunato' : Date.QUAL_CALCULATED,
u'izr.' : Date.QUAL_CALCULATED,
'procenjeno' : Date.QUAL_ESTIMATED,
'pro.' : Date.QUAL_ESTIMATED,
'izračunato' : Date.QUAL_CALCULATED,
'izr.' : Date.QUAL_CALCULATED,
u'процењено' : Date.QUAL_ESTIMATED,
u'про.' : Date.QUAL_ESTIMATED,
u'израчунато' : Date.QUAL_CALCULATED,
u'изр.' : Date.QUAL_CALCULATED,
'процењено' : Date.QUAL_ESTIMATED,
'про.' : Date.QUAL_ESTIMATED,
'израчунато' : Date.QUAL_CALCULATED,
'изр.' : Date.QUAL_CALCULATED,
}
bce = [u"пре нове ере", u"пре Христа", u"п.н.е."
u"pre nove ere", u"pre Hrista", u"p.n.e."] + DateParser.bce
bce = ["пре нове ере", "пре Христа", "п.н.е."
"pre nove ere", "pre Hrista", "p.n.e."] + DateParser.bce
def init_strings(self):
"""
@@ -217,10 +214,10 @@ class DateParserSR(DateParser):
# match Day.Month.Year.
self._numeric = re.compile("((\d+)[/\. ])?\s*((\d+)[/\.])?\s*(\d+)\.?$")
_span_1 = [u'od', u'од']
_span_2 = [u'do', u'до']
_range_1 = [u'između', u'између']
_range_2 = [u'i', u'и']
_span_1 = ['od', 'од']
_span_2 = ['do', 'до']
_range_1 = ['između', 'између']
_range_2 = ['i', 'и']
self._span = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
('|'.join(_span_1), '|'.join(_span_2)),
re.IGNORECASE)
@@ -233,46 +230,15 @@ class DateParserSR(DateParser):
# Serbian display
#
#-------------------------------------------------------------------------
class DateDisplaySR_latin(DateDisplay):
class DateDisplaySR_Base(DateDisplay):
"""
Serbian (latin) date display class
Serbian (base) date display class
"""
long_months = ("",
u"januara", u"februara", u"marta", u"aprila",
u"maja", u"juna", u"jula", u"avgusta",
u"septembra", u"oktobra", u"novembra", u"decembra"
)
short_months = ("",
u"jan", u"feb", u"mar", u"apr", u"maj", u"jun",
u"jul", u"avg", u"sep", u"okt", u"nov", u"dec"
)
roman_months = (
"", "I", "II", "III", "IV", "V", "VI",
"VII", "VIII", "IX", "X", "XI", "XII"
)
calendar = (
"", u"julijanski", u"hebrejski",
u"francuski republikanski", u"persijski", u"islamski",
u"švedski"
)
_mod_str = ("", "pre ", "posle ", "oko ", "", "", "")
_qual_str = ("", "procenjeno ", "izračunato ")
_bce_str = "%s p.n.e."
formats = (
"GGGG-MM-DD (ISO-8601)",
"Numerički (DD.MM.GGGG.)",
"D. MMM GGGG.",
"D. Mesec GGGG.",
"D. Rb GGGG."
)
# this definition must agree with its "_display_gregorian" method
def _display_gregorian(self, date_val):
"""
@@ -299,27 +265,27 @@ class DateDisplaySR_latin(DateDisplay):
# day. month_abbreviation year.
if date_val[0] == 0:
if date_val[1] == 0:
value = u"%s." % year
value = "%s." % year
else:
value = u"%s %s." % (self.short_months[date_val[1]], year)
value = "%s %s." % (self.short_months[date_val[1]], year)
else:
value = u"%d. %s %s." % (date_val[0],
self.short_months[date_val[1]], year)
value = "%d. %s %s." % (date_val[0],
self.short_months[date_val[1]], year)
elif self.format == 3:
# day. month_name year.
if date_val[0] == 0:
if date_val[1] == 0:
value = u"%s." % year
value = "%s." % year
else:
value = u"%s %s." % (self.long_months[date_val[1]], year)
value = "%s %s." % (self.long_months[date_val[1]], year)
else:
value = u"%d. %s %s." % (date_val[0],
self.long_months[date_val[1]], year)
value = "%d. %s %s." % (date_val[0],
self.long_months[date_val[1]], year)
else:
# day. Roman_number_month year.
if date_val[0] == 0:
if date_val[1] == 0:
value = u"%s." % year
value = "%s." % year
else:
value = "%s %s." % (self.roman_months[date_val[1]], year)
else:
@@ -341,6 +307,10 @@ class DateDisplaySR_latin(DateDisplay):
newyear = date.get_new_year()
qual_str = self._qual_str[qual]
span1 = self._span1
span2 = self._span2
range1 = self._range1
range2 = self._range2
if mod == Date.MOD_TEXTONLY:
return date.get_text()
@@ -350,13 +320,13 @@ class DateDisplaySR_latin(DateDisplay):
d_1 = self.display_cal[cal](start)
d_2 = self.display_cal[cal](date.get_stop_date())
scal = self.format_extras(cal, newyear)
return "%s%s %s %s %s%s" % (qual_str, u'od', d_1, u'do', d_2,
return "%s%s %s %s %s%s" % (qual_str, span1, d_1, span2, d_2,
scal)
elif mod == Date.MOD_RANGE:
d_1 = self.display_cal[cal](start)
d_2 = self.display_cal[cal](date.get_stop_date())
scal = self.format_extras(cal, newyear)
return "%s%s %s %s %s%s" % (qual_str, u'između', d_1, u'i', d_2,
return "%s%s %s %s %s%s" % (qual_str, range1, d_1, range2, d_2,
scal)
else:
text = self.display_cal[date.get_calendar()](start)
@@ -364,11 +334,98 @@ class DateDisplaySR_latin(DateDisplay):
return "%s%s%s%s" % (qual_str, self._mod_str[mod], text,
scal)
class DateDisplaySR_Latin(DateDisplaySR_Base):
"""
Serbian (Latin) date display class
"""
long_months = ("",
"januara", "februara", "marta", "aprila",
"maja", "juna", "jula", "avgusta",
"septembra", "oktobra", "novembra", "decembra"
)
short_months = ("",
"jan", "feb", "mar", "apr", "maj", "jun",
"jul", "avg", "sep", "okt", "nov", "dec"
)
calendar = (
"", "julijanski", "hebrejski",
"francuski republikanski", "persijski", "islamski",
"švedski"
)
_mod_str = ("", "pre ", "posle ", "oko ", "", "", "")
_qual_str = ("", "procenjeno ", "izračunato ")
_bce_str = "%s p.n.e."
formats = (
"GGGG-MM-DD (ISO-8601)",
"Numerički (DD.MM.GGGG.)",
"D. MMM GGGG.",
"D. Mesec GGGG.",
"D. Rb GGGG."
)
# this definition must agree with its "_display_gregorian" method
_span1 = 'od'
_span2 = 'do'
_range1 = 'između'
_range2 = 'i'
class DateDisplaySR_Cyrillic(DateDisplaySR_Base):
"""
Serbian (Cyrillic) date display class
"""
long_months = ("",
"Јануар", "Фебруар", "Март", "Април",
"Мај", "Јуне", "Јули", "Аугуст",
"Септембар", "Оцтобер", "Новембер", "Децембар"
)
short_months = ("",
"Јан", "Феб", "Мар", "Апр", "Мај", "Јун",
"Јул", "Авг", "Сеп", "Окт", "Нов", "Дец"
)
calendar = (
"", "Јулиан", "хебрејски",
"француски републиканац", "Персиан", "исламски",
"шведски"
)
_mod_str = ("", "пре ", "после ", "око ", "", "", "")
_qual_str = ("", "процењено ", "израчунато ")
_bce_str = "%s п.н.е."
formats = (
"ГГГГ-ММ-ДД (ISO-8601)",
"Нумеричка (ДД.ММ.ГГГГ.)",
"Д. МММ ГГГГ.",
"Д. Месец ГГГГ.",
"Д. Rb ГГГГ."
)
# this definition must agree with its "_display_gregorian" method
_span1 = 'из'
_span2 = 'до'
_range1 = 'између'
_range2 = 'и'
#-------------------------------------------------------------------------
#
# Register classes
#
#-------------------------------------------------------------------------
register_datehandler(('sr', 'serbian', 'srpski', 'sr_RS'),
DateParserSR, DateDisplaySR_latin)
register_datehandler(('srpski', 'Srpski',
'sr_Latn', 'sr_Latn_RS', 'sr_RS@latin'),
DateParserSR, DateDisplaySR_Latin)
register_datehandler(('sr', 'српски', 'Српски', 'serbian',
'sr_RS', 'sr_Cyrl', 'sr_Cyrl_RS'),
DateParserSR, DateDisplaySR_Cyrillic)
+90 -131
View File
@@ -18,20 +18,17 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# DateHandler/_Date_zh.py
# $Id$
#
"""
Simplified-Chinese-specific classes for parsing and displaying dates.
"""
#-------------------------------------------------------------------------
#
# Python modules
#
#-------------------------------------------------------------------------
"""
Chinese-specific classes for parsing and displaying dates.
"""
from __future__ import unicode_literals
import re
#-------------------------------------------------------------------------
@@ -39,7 +36,6 @@ import re
# GRAMPS modules
#
#-------------------------------------------------------------------------
from gen.lib import Date
from _DateParser import DateParser
from _DateDisplay import DateDisplay
@@ -47,147 +43,128 @@ from _DateHandler import register_datehandler
#-------------------------------------------------------------------------
#
# Chinese parser
# Simplified-Chinese parser
#
#-------------------------------------------------------------------------
class DateParserZH(DateParser):
class DateParserZH_CN(DateParser):
"""
Convert a text string into a Date object. If the date cannot be
converted, the text string is assigned.
"""
# translate english strings into chinese
# modifiers before the date
modifier_to_int = {
u'before' : Date.MOD_BEFORE, u'bef' : Date.MOD_BEFORE,
u'bef.' : Date.MOD_BEFORE, u'after' : Date.MOD_AFTER,
u'aft' : Date.MOD_AFTER, u'aft.' : Date.MOD_AFTER,
u'about' : Date.MOD_ABOUT, u'abt.' : Date.MOD_ABOUT,
u'abt' : Date.MOD_ABOUT, u'circa' : Date.MOD_ABOUT,
u'c.' : Date.MOD_ABOUT, u'around' : Date.MOD_ABOUT,
'以前' : Date.MOD_BEFORE,
'以后' : Date.MOD_AFTER,
'大约' : Date.MOD_ABOUT,
}
month_to_int = DateParser.month_to_int
month_to_int[u""] = 1
month_to_int[u""] = 1
month_to_int[u"zhēngyuè"] = 1
month_to_int[u""] = 2
month_to_int[u"èryuè"] = 2
month_to_int[u""] = 3
month_to_int[u"sānyuè"] = 3
month_to_int[u""] = 4
month_to_int[u"sìyuè"] = 4
month_to_int[u""] = 5
month_to_int[u"wǔyuè"] = 5
month_to_int[u""] = 6
month_to_int[u"liùyuè"] = 6
month_to_int[u""] = 7
month_to_int[u"qīyuè"] = 7
month_to_int[u""] = 8
month_to_int[u"bāyuè"] = 8
month_to_int[u""] = 9
month_to_int[u"jiǔyuè"] = 9
month_to_int[u""] = 10
month_to_int[u"shíyuè"] = 10
month_to_int[u"十一"] = 11
month_to_int[u"shíyīyuè"] = 11
month_to_int[u"十二"] = 12
month_to_int[u"shí'èryuè"] = 12
month_to_int[u"假閏"] = 13
month_to_int[u"jiǎ rùn yùe"] = 13
# translate english strings into chinese
month_to_int[""] = 1
month_to_int[""] = 1
month_to_int["zhēngyuè"] = 1
month_to_int[""] = 2
month_to_int["èryuè"] = 2
month_to_int[""] = 3
month_to_int["sānyuè"] = 3
month_to_int[""] = 4
month_to_int["sìyuè"] = 4
month_to_int[""] = 5
month_to_int["wǔyuè"] = 5
month_to_int[""] = 6
month_to_int["liùyuè"] = 6
month_to_int[""] = 7
month_to_int["qīyuè"] = 7
month_to_int[""] = 8
month_to_int["bāyuè"] = 8
month_to_int[""] = 9
month_to_int["jiǔyuè"] = 9
month_to_int[""] = 10
month_to_int["shíyuè"] = 10
month_to_int["十一"] = 11
month_to_int["shíyīyuè"] = 11
month_to_int["十二"] = 12
month_to_int["shí'èryuè"] = 12
month_to_int["假閏"] = 13
month_to_int["jiǎ rùn yùe"] = 13
calendar_to_int = {
'gregorian' : Date.CAL_GREGORIAN,
'阳历' : Date.CAL_GREGORIAN,
'g' : Date.CAL_GREGORIAN,
'julian' : Date.CAL_JULIAN,
'儒略历' : Date.CAL_JULIAN,
'j' : Date.CAL_JULIAN,
'hebrew' : Date.CAL_HEBREW,
'希伯来历' : Date.CAL_HEBREW,
'h' : Date.CAL_HEBREW,
'islamic' : Date.CAL_ISLAMIC,
'伊斯兰历' : Date.CAL_ISLAMIC,
'i' : Date.CAL_ISLAMIC,
'french' : Date.CAL_FRENCH,
'french republican': Date.CAL_FRENCH,
'法国共和历' : Date.CAL_FRENCH,
'f' : Date.CAL_FRENCH,
'persian' : Date.CAL_PERSIAN,
'伊郎历' : Date.CAL_PERSIAN,
'p' : Date.CAL_PERSIAN,
'swedish' : Date.CAL_SWEDISH,
'瑞典历' : Date.CAL_SWEDISH,
's' : Date.CAL_SWEDISH,
}
# translate english strings into chinese
quality_to_int = {
u'estimated' : Date.QUAL_ESTIMATED,
u'est.' : Date.QUAL_ESTIMATED,
u'est' : Date.QUAL_ESTIMATED,
u'calc.' : Date.QUAL_CALCULATED,
u'calc' : Date.QUAL_CALCULATED,
u'calculated' : Date.QUAL_CALCULATED,
'据估计' : Date.QUAL_ESTIMATED,
'据计算' : Date.QUAL_CALCULATED,
}
# translate english strings into chinese
bce = [u"before calendar", u"negative year"] + DateParser.bce
# FIXME translate these English strings into simplified-Chinese ones
bce = ["before calendar", "negative year"] + DateParser.bce
def init_strings(self):
"""
This method compiles regular expression strings for matching dates.
Most of the re's in most languages can stay as is. span and range
most likely will need to change. Whatever change is done, this method
may be called first as DateParser.init_strings(self) so that the
invariant expresions don't need to be repeteadly coded. All differences
can be coded after DateParser.init_strings(self) call, that way they
override stuff from this method. See DateParserRU() as an example.
"""
DateParser.init_strings(self)
# day: 日 ; month : 月 ; year : 年
# See DateParser class; translate english strings (from/to, between/and) into chinese
# do not translate <start> and <stop>
self._span = re.compile(u"(from)\s+(?P<start>.+)\s+to\s+(?P<stop>.+)",
re.IGNORECASE)
self._range = re.compile(u"(bet|bet.|between)\s+(?P<start>.+)\s+and\s+(?P<stop>.+)",
re.IGNORECASE)
_span_1 = ['']
_span_2 = ['']
_range_1 = ['介于']
_range_2 = ['']
self._span = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
('|'.join(_span_1), '|'.join(_span_2)),
re.IGNORECASE)
self._range = re.compile("(%s)\s+(?P<start>.+)\s+(%s)\s+(?P<stop>.+)" %
('|'.join(_range_1), '|'.join(_range_2)),
re.IGNORECASE)
#def _parse_lunisolar(self, date_val=text):
#text = text.strip() # otherwise spaces can make it a bad date
#date = Date(self._qual_str, self._mod_str, self._cal_str, text, self._ny_str)
#return unicode(text)
#-------------------------------------------------------------------------
#
# Chinese display
# Simplified-Chinese display
#
#-------------------------------------------------------------------------
class DateDisplayZH(DateDisplay):
class DateDisplayZH_CN(DateDisplay):
"""
Chinese language date display class.
Simplified-Chinese language date display class.
"""
# translate english strings into chinese
long_months = ( u"", u"January", u"February", u"March", u"April", u"May",
u"June", u"July", u"August", u"September", u"October",
u"November", u"December" )
# this is used to display the 12 gregorian months
long_months = ( "", "正月", "二月", "三月", "四月", "五月",
"六月", "七月", "八月", "九月", "十月",
"十一月", "十二月" )
short_months = ( u"", u"Jan", u"Feb", u"Mar", u"Apr", u"May", u"Jun",
u"Jul", u"Aug", u"Sep", u"Oct", u"Nov", u"Dec" )
short_months = ( "", "一月", "二月", "三月", "四月", "五月", "六月",
"七月", "八月", "九月", "十月", "十一月", "十二月" )
formats = (
"年年年年-月月-日日 (ISO)", "数字格式", "月 日,年",
"月 日,年", "日 月 年", "日 月 年",
)
# this must agree with DateDisplayEn's "formats" definition
# (since no locale-specific _display_gregorian exists, here)
calendar = (
"", u"Julian", u"Hebrew", u"French Republican",
u"Persian", u"Islamic", u"Swedish"
"", "儒略历", "希伯来历", "法国共和历",
"伊郎历", "伊斯兰历", "瑞典历"
)
_mod_str = ("", u"before ", u"after ", u"around ", "", "", "")
_mod_str = ("", "以前 ", "以后 ", "大约 ", "", "", "")
_qual_str = ("", u"estimated ", u"calculated ", "")
_qual_str = ("", "据估计 ", "据计算 ", "")
# FIXME translate these English strings into simplified-Chinese ones
_bce_str = "%s B.C.E."
@@ -195,7 +172,6 @@ class DateDisplayZH(DateDisplay):
"""
Return a text string representing the date.
"""
mod = date.get_modifier()
cal = date.get_calendar()
qual = date.get_quality()
@@ -209,45 +185,28 @@ class DateDisplayZH(DateDisplay):
elif start == Date.EMPTY:
return ""
elif mod == Date.MOD_SPAN:
date1 = self.display_cal[cal](start)
date2 = self.display_cal[cal](date.get_stop_date())
d1 = self.display_cal[cal](start)
d2 = self.display_cal[cal](date.get_stop_date())
scal = self.format_extras(cal, newyear)
# translate english strings into chinese
return "%s%s %s %s %s%s" % (qual_str, u'from', date1, u'to',
date2, scal)
return "%s%s %s %s %s%s" % (qual_str, '', d1, '', d2, scal)
elif mod == Date.MOD_RANGE:
date1 = self.display_cal[cal](start)
date2 = self.display_cal[cal](date.get_stop_date())
d1 = self.display_cal[cal](start)
d2 = self.display_cal[cal](date.get_stop_date())
scal = self.format_extras(cal, newyear)
# translate english strings into chinese
return "%s%s %s %s %s%s" % (qual_str, u'between', date1, u'and',
date2, scal)
return "%s%s %s %s %s%s之间" % (qual_str, '介于', d1, '',
d2, scal)
else:
text = self.display_cal[date.get_calendar()](start)
scal = self.format_extras(cal, newyear)
return "%s%s%s%s" % (qual_str, (self._mod_str)[mod], text,
scal)
#def _display_chinese(self, date_val):
#self._tformat = '%Y年%m月%d日'
#year = self._slash_year(date_val[2], date_val[3])
#if date_val[3]:
#return self.display_iso(date_val)
#else:
#if date_val[0] == date_val[1] == 0:
#value = u'%Y年' % date_val[2]
#else:
#value = self._tformat.replace('%m月', str(self.lunisolar[date_val[1]]))
#value = u'%m月' % date_val[1]
#value = u'%d日' % date_val[0]
#value = u'%Y年' % date_val[2]
#-------------------------------------------------------------------------
#
# Register classes
#
#-------------------------------------------------------------------------
register_datehandler(('zh_CN', 'zh_TW', 'zh_SG', 'zh_HK', 'zh', 'chinese', 'Chinese'),
DateParserZH, DateDisplayZH)
register_datehandler(('zh_CN', 'zh_SG', 'zh_TW', 'zh_HK',
'zh', 'chinese', 'Chinese'),
DateParserZH_CN, DateDisplayZH_CN)
+1
View File
@@ -17,6 +17,7 @@ pkgpython_PYTHON = \
_HasReferenceCountOf.py \
_HasSource.py \
_HasSourceIdOf.py \
_HasSourceNoteRegexp.py \
_MatchesFilter.py \
_MatchesPageSubstringOf.py \
_MatchesRepositoryFilter.py \
@@ -0,0 +1,60 @@
#
# Gramps - a GTK+/GNOME based genealogy program
#
# Copyright (C) 2014 Nick Hall
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
"""
Filter rule to match citations whose source notes contain a substring or
match a regular expression.
"""
#-------------------------------------------------------------------------
#
# Standard python modules
#
#-------------------------------------------------------------------------
from gen.ggettext import gettext as _
#-------------------------------------------------------------------------
#
# Gramps modules
#
#-------------------------------------------------------------------------
from Filters.Rules._HasNoteRegexBase import HasNoteRegexBase
#-------------------------------------------------------------------------
#
# HasSourceNoteRegexp
#
#-------------------------------------------------------------------------
class HasSourceNoteRegexp(HasNoteRegexBase):
"""
Rule that checks if a citation has a source note that contains a
substring or matches a regular expression.
"""
name = _('Citations having source notes containing <text>')
description = _("Matches citations whose source notes contain a substring "
"or match a regular expression")
category = _('Source filters')
def apply(self, db, citation):
source = db.get_source_from_handle(citation.get_reference_handle())
if HasNoteRegexBase.apply(self, db, source):
return True
return False
+2
View File
@@ -38,6 +38,7 @@ from _HasNoteRegexp import HasNoteRegexp
from _HasReferenceCountOf import HasReferenceCountOf
from _HasSource import HasSource
from _HasSourceIdOf import HasSourceIdOf
from _HasSourceNoteRegexp import HasSourceNoteRegexp
from _MatchesFilter import MatchesFilter
from _MatchesPageSubstringOf import MatchesPageSubstringOf
from _MatchesRepositoryFilter import MatchesRepositoryFilter
@@ -57,6 +58,7 @@ editor_rule_list = [
HasReferenceCountOf,
HasSource,
HasSourceIdOf,
HasSourceNoteRegexp,
MatchesFilter,
MatchesPageSubstringOf,
MatchesRepositoryFilter,
+1
View File
@@ -24,6 +24,7 @@ pkgpython_PYTHON = \
_MatchesSourceConfidence.py\
_MatchesSourceFilter.py\
_HasAttribute.py\
_HasDayOfWeek.py\
__init__.py
pkgpyexecdir = @pkgpyexecdir@/Filters/Rules/Event
+53
View File
@@ -0,0 +1,53 @@
#
# Gramps - a GTK+/GNOME based genealogy program
#
# Copyright (C) 2013 Nick Hall
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
#-------------------------------------------------------------------------
#
# Standard Python modules
#
#-------------------------------------------------------------------------
from gen.ggettext import gettext as _
#-------------------------------------------------------------------------
#
# Gramps modules
#
#-------------------------------------------------------------------------
from Filters.Rules import Rule
#-------------------------------------------------------------------------
#
# HasDayOfWeek
#
#-------------------------------------------------------------------------
class HasDayOfWeek(Rule):
"""Rule that matches an event occurring on a particular day of the week."""
labels = [ _('Day of Week:') ]
name = _('Events occurring on a particular day of the week')
description = _('Matches events occurring on a particular day of the week')
category = _('General filters')
def apply(self, db, event):
if not self.list[0]:
return False
else:
dow = event.get_date_object().get_dow()
return dow == int(self.list[0])
+3 -1
View File
@@ -48,6 +48,7 @@ from _HasAttribute import HasAttribute
from _HasData import HasData
from _ChangedSince import ChangedSince
from _MatchesPlaceFilter import MatchesPlaceFilter
from _HasDayOfWeek import HasDayOfWeek
editor_rule_list = [
AllEvents,
@@ -68,5 +69,6 @@ editor_rule_list = [
HasAttribute,
HasData,
ChangedSince,
MatchesPlaceFilter
MatchesPlaceFilter,
HasDayOfWeek
]
+5 -5
View File
@@ -60,13 +60,13 @@ class HasAssociation(Rule):
else:
self.count_type = 1 # "equal to"
self.userSelectedCount = int(self.list[0])
self.selected_count = int(self.list[0])
def apply(self, db, person):
return len( person.get_person_ref_list()) > 0
count = len(person.get_person_ref_list())
if self.count_type == 0: # "lesser than"
return count < self.userSelectedCount
return count < self.selected_count
elif self.count_type == 2: # "greater than"
return count > self.userSelectedCount
return count > self.selected_count
# "equal to"
return count == self.userSelectedCount
return count == self.selected_count
+3 -2
View File
@@ -50,7 +50,8 @@ class HasEvent(HasEventBase):
_('Date:'),
_('Place:'),
_('Description:'),
_('Main Participants') ]
_('Main Participants:'),
_('Primary Role:') ]
name = _('People with the personal <event>')
description = _("Matches people with a personal event of a particular "
"value")
@@ -59,7 +60,7 @@ class HasEvent(HasEventBase):
for event_ref in person.get_event_ref_list():
if not event_ref:
continue
if event_ref.role != EventRoleType.PRIMARY:
if int(self.list[5]) and event_ref.role != EventRoleType.PRIMARY:
# Only match primaries, no witnesses
continue
event = dbase.get_event_from_handle(event_ref.ref)
@@ -70,6 +70,8 @@ class IsAncestorOf(Rule):
def init_ancestor_list(self, db, person,first):
if not person:
return
if person.handle in self.map:
return
if not first:
self.map.add(person.handle)
+1 -1
View File
@@ -50,7 +50,7 @@ class HasEventBase(Rule):
_('Date:'),
_('Place:'),
_('Description:'),
_('Main Participants') ]
_('Main Participants:') ]
name = _('Events matching parameters')
description = _("Matches events with particular parameters")
category = _('Event filters')
@@ -45,7 +45,8 @@ import gen.lib
from Filters.SideBar import SidebarFilter
from Filters import GenericFilterFactory, build_filter_model, Rules
from Filters.Rules.Citation import (RegExpIdOf, HasCitation, HasNoteRegexp,
MatchesFilter, HasSource, RegExpSourceIdOf)
MatchesFilter, HasSource, RegExpSourceIdOf,
HasSourceNoteRegexp)
from Utils import confidence
GenericCitationFilter = GenericFilterFactory('Citation')
#-------------------------------------------------------------------------
@@ -173,6 +174,10 @@ class CitationSidebarFilter(SidebarFilter):
rule = HasNoteRegexp([note], use_regex=regex)
generic_filter.add_rule(rule)
if src_note:
rule = HasSourceNoteRegexp([src_note], use_regex=regex)
generic_filter.add_rule(rule)
if self.generic.get_active() != 0:
model = self.generic.get_model()
node = self.generic.get_active_iter()
+2 -1
View File
@@ -201,7 +201,8 @@ class PersonSidebarFilter(SidebarFilter):
# Build an event filter if needed
if etype:
rule = HasEvent([etype, u'', u'', u'', u''], use_regex=regex)
rule = HasEvent([etype, u'', u'', u'', u'', True],
use_regex=regex)
generic_filter.add_rule(rule)
# Build birth event filter if needed
+3
View File
@@ -166,6 +166,9 @@ class FilterParser(handler.ContentHandler):
and len(self.a) == 3):
self.use_regex = self.a[2] == '1'
self.a = self.a[:2]
# HasEvent rule has extra primary role field in v3.4.7
if self.r == Rules.Person.HasEvent and len(self.a) == 5:
self.a.append('1')
#-------------------------------------------------------------------------
#
+1 -1
View File
@@ -66,7 +66,7 @@ except KeyError:
def help(webpage='', section=''):
"""
Display the specified webpage and section from the Gramps 3.0 wiki.
Display the specified webpage and section from the Gramps wiki.
"""
if not webpage:
link = const.URL_WIKISTRING + const.URL_MANUAL_PAGE + EXTENSION
+41 -26
View File
@@ -46,6 +46,20 @@ import tempfile
#-------------------------------------------------------------------------
import Utils
def crop_percentage_to_subpixel(width, height, crop):
"""
Convert from Gramps cropping coordinates [0, 100] to
pixels, given image width and height. No rounding to pixel resolution.
"""
return (
crop[0]/100.0*width,
crop[1]/100.0*height,
crop[2]/100.0*width,
crop[3]/100.0*height )
def crop_percentage_to_pixel(width, height, crop):
return map (int, crop_percentage_to_subpixel(width, height, crop))
#-------------------------------------------------------------------------
#
# resize_to_jpeg
@@ -72,12 +86,9 @@ def resize_to_jpeg(source, destination, width, height, crop=None):
img = gtk.gdk.pixbuf_new_from_file(source)
if crop:
# Gramps cropping coorinates are [0, 100], so we need to convert to pixels
start_x = int((crop[0]/100.0)*img.get_width())
start_y = int((crop[1]/100.0)*img.get_height())
end_x = int((crop[2]/100.0)*img.get_width())
end_y = int((crop[3]/100.0)*img.get_height())
(start_x, start_y, end_x, end_y
) = crop_percentage_to_pixel(
img.get_width(), img.get_height(), crop)
img = img.subpixbuf(start_x, start_y, end_x-start_x, end_y-start_y)
# Need to keep the ratio intact, otherwise scaled images look stretched
@@ -92,35 +103,44 @@ def resize_to_jpeg(source, destination, width, height, crop=None):
# image_dpi
#
#-------------------------------------------------------------------------
MM_PER_INCH = 25.4
def image_dpi(source):
"""
Return the dpi found in the image header. None is returned if no dpi attribute
is available.
Return the dpi found in the image header. Use a sensible
default of the screen DPI or 96.0 dpi if N/A.
:param source: source image file, in any format that PIL recognizes
:type source: unicode
:rtype: int
:returns: the DPI setting in the image header
:returns: (x_dpi, y_dpi)
"""
try:
import PIL.Image
except ImportError:
import logging
logging.warning(_("WARNING: PIL module not loaded. "
"Image cropping in report files will not be available."))
dpi = None
"Image cropping in report files will be impaired."))
else:
try:
img = PIL.Image.open(source)
except IOError:
dpi = None
pass
else:
try:
dpi = img.info["dpi"]
return dpi
except (AttributeError, KeyError):
dpi = None
pass
try:
import gtk
dpi = (
gtk.gdk.screen_width() * MM_PER_INCH / gtk.gdk.screen_width_mm(),
gtk.gdk.screen_height() * MM_PER_INCH / gtk.gdk.screen_height_mm()
)
except:
dpi = (96.0,96.0) #LibOO 3.6 assumes this if image contains no DPI info
# This isn't safe even within a single platform (Windows), but we
# can't do better if all of the above failed. See bug# 7290.
return dpi
#-------------------------------------------------------------------------
@@ -203,12 +223,9 @@ def resize_to_buffer(source, size, crop=None):
img = gtk.gdk.pixbuf_new_from_file(source)
if crop:
# Gramps cropping coorinates are [0, 100], so we need to convert to pixels
start_x = int((crop[0]/100.0)*img.get_width())
start_y = int((crop[1]/100.0)*img.get_height())
end_x = int((crop[2]/100.0)*img.get_width())
end_y = int((crop[3]/100.0)*img.get_height())
(start_x, start_y, end_x, end_y
) = crop_percentage_to_pixel(
img.get_width(), img.get_height(), crop)
img = img.subpixbuf(start_x, start_y, end_x-start_x, end_y-start_y)
# Need to keep the ratio intact, otherwise scaled images look stretched
@@ -243,11 +260,9 @@ def resize_to_jpeg_buffer(source, size, crop=None):
img = gtk.gdk.pixbuf_new_from_file(source)
if crop:
# Gramps cropping coorinates are [0, 100], so we need to convert to pixels
start_x = int((crop[0]/100.0)*img.get_width())
start_y = int((crop[1]/100.0)*img.get_height())
end_x = int((crop[2]/100.0)*img.get_width())
end_y = int((crop[3]/100.0)*img.get_height())
(start_x, start_y, end_x, end_y
) = crop_percentage_to_pixel(
img.get_width(), img.get_height(), crop)
img = img.subpixbuf(start_x, start_y, end_x-start_x, end_y-start_y)
+1 -2
View File
@@ -156,8 +156,7 @@ class MergeCitations(ManagedWindow.ManagedWindow):
titanic = self.citation1
# Add second handle to history so that when merge is complete,
# phoenix is the selected row.
self.uistate.viewmanager.active_page.get_history().push(
phoenix.get_handle())
self.uistate.set_active(phoenix.get_handle(), 'Citation')
if self.get_widget("page_btn1").get_active() ^ use_handle1:
phoenix.set_page(titanic.get_page())
+1 -2
View File
@@ -170,8 +170,7 @@ class MergeEvents(ManagedWindow.ManagedWindow):
titanic = self.ev1
# Add second handle to history so that when merge is complete,
# phoenix is the selected row.
self.uistate.viewmanager.active_page.get_history().push(
phoenix.get_handle())
self.uistate.set_active(phoenix.get_handle(), 'Event')
if self.get_widget("type_btn1").get_active() ^ use_handle1:
phoenix.set_type(titanic.get_type())
+1 -2
View File
@@ -202,8 +202,7 @@ class MergeFamilies(ManagedWindow.ManagedWindow):
titanic = self.fy1
# Add second handle to history so that when merge is complete,
# phoenix is the selected row.
self.uistate.viewmanager.active_page.get_history().push(
phoenix.get_handle())
self.uistate.set_active(phoenix.get_handle(), 'Family')
phoenix_fh = phoenix.get_father_handle()
phoenix_mh = phoenix.get_mother_handle()
+1 -2
View File
@@ -152,8 +152,7 @@ class MergeMediaObjects(ManagedWindow.ManagedWindow):
titanic = self.mo1
# Add second handle to history so that when merge is complete,
# phoenix is the selected row.
self.uistate.viewmanager.active_page.get_history().push(
phoenix.get_handle())
self.uistate.set_active(phoenix.get_handle(), 'Media')
if self.get_widget("path_btn1").get_active() ^ use_handle1:
phoenix.set_path(titanic.get_path())
+1 -2
View File
@@ -165,8 +165,7 @@ class MergeNotes(ManagedWindow.ManagedWindow):
titanic = self.no1
# Add second handle to history so that when merge is complete,
# phoenix is the selected row.
self.uistate.viewmanager.active_page.get_history().push(
phoenix.get_handle())
self.uistate.set_active(phoenix.get_handle(), 'Note')
if self.get_widget("text_btn1").get_active() ^ use_handle1:
phoenix.set_styledtext(titanic.get_styledtext())
+2 -3
View File
@@ -72,7 +72,7 @@ class MergePeople(ManagedWindow.ManagedWindow):
Displays a dialog box that allows the persons to be combined into one.
"""
def __init__(self, dbstate, uistate, handle1, handle2, cb_update=None,
expand_context_info=False):
expand_context_info=True):
ManagedWindow.ManagedWindow.__init__(self, uistate, [], self.__class__)
self.database = dbstate.db
self.pr1 = self.database.get_person_from_handle(handle1)
@@ -313,8 +313,7 @@ class MergePeople(ManagedWindow.ManagedWindow):
titanic = self.pr1
# Add second handle to history so that when merge is complete,
# phoenix is the selected row.
self.uistate.viewmanager.active_page.get_history().push(
phoenix.get_handle())
self.uistate.set_active(phoenix.get_handle(), 'Person')
if self.get_widget("name_btn1").get_active() ^ use_handle1:
swapname = phoenix.get_primary_name()
+1 -3
View File
@@ -174,9 +174,7 @@ class MergePlaces(ManagedWindow.ManagedWindow):
titanic = self.pl1
# Add second handle to history so that when merge is complete,
# phoenix is the selected row.
self.uistate.viewmanager.active_page.get_history().push(
phoenix.get_handle())
self.uistate.set_active(phoenix.get_handle(), 'Place')
if self.get_widget("title_btn1").get_active() ^ use_handle1:
phoenix.set_title(titanic.get_title())
+1 -2
View File
@@ -141,8 +141,7 @@ class MergeRepositories(ManagedWindow.ManagedWindow):
titanic = self.rp1
# Add second handle to history so that when merge is complete,
# phoenix is the selected row.
self.uistate.viewmanager.active_page.get_history().push(
phoenix.get_handle())
self.uistate.set_active(phoenix.get_handle(), 'Repository')
if self.get_widget("name_btn1").get_active() ^ use_handle1:
phoenix.set_name(titanic.get_name())
+1 -2
View File
@@ -165,8 +165,7 @@ class MergeSources(ManagedWindow.ManagedWindow):
titanic = self.src1
# Add second handle to history so that when merge is complete,
# phoenix is the selected row.
self.uistate.viewmanager.active_page.get_history().push(
phoenix.get_handle())
self.uistate.set_active(phoenix.get_handle(), 'Source')
if self.get_widget("title_btn1").get_active() ^ use_handle1:
phoenix.set_title(titanic.get_title())
+26 -31
View File
@@ -162,25 +162,23 @@ class RecentFiles(object):
"""
Saves the current GRAMPS RecentFiles collection to the associated file.
"""
xml_file = file(os.path.expanduser(GRAMPS_FILENAME),'w')
if use_lock:
fcntl.lockf(xml_file,fcntl.LOCK_EX)
xml_file.write("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n")
xml_file.write('<RecentFiles>\n')
index = 0
for item in self.gramps_recent_files:
index += 1
if index > MAX_GRAMPS_ITEMS:
break
xml_file.write(' <RecentItem>\n')
xml_file.write(' <Path><![CDATA[%s]]></Path>\n' % item.get_path())
xml_file.write(' <Name><![CDATA[%s]]></Name>\n' % item.get_name())
xml_file.write(' <Timestamp>%d</Timestamp>\n' % item.get_time())
xml_file.write(' </RecentItem>\n')
xml_file.write('</RecentFiles>\n')
if use_lock:
fcntl.lockf(xml_file,fcntl.LOCK_UN)
xml_file.close()
with open(os.path.expanduser(GRAMPS_FILENAME), 'w') as xml_file:
if use_lock:
fcntl.lockf(xml_file,fcntl.LOCK_EX)
xml_file.write("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n")
xml_file.write('<RecentFiles>\n')
index = 0
for item in self.gramps_recent_files:
index += 1
if index > MAX_GRAMPS_ITEMS:
break
xml_file.write(' <RecentItem>\n')
xml_file.write(' <Path><![CDATA[%s]]></Path>\n' % item.get_path())
xml_file.write(' <Name><![CDATA[%s]]></Name>\n' % item.get_name())
xml_file.write(' <Timestamp>%d</Timestamp>\n' % item.get_time())
xml_file.write(' </RecentItem>\n')
xml_file.write('</RecentFiles>\n')
# all advisory locks on a file are released on close
#-------------------------------------------------------------------------
#
@@ -196,19 +194,16 @@ class RecentParser(object):
self.recent_files = []
try:
xml_file = open(os.path.expanduser(GRAMPS_FILENAME))
if use_lock:
fcntl.lockf(xml_file,fcntl.LOCK_SH)
with open(os.path.expanduser(GRAMPS_FILENAME)) as xml_file:
if use_lock:
fcntl.lockf(xml_file,fcntl.LOCK_SH)
p = ParserCreate()
p.StartElementHandler = self.startElement
p.EndElementHandler = self.endElement
p.CharacterDataHandler = self.characters
p.ParseFile(xml_file)
if use_lock:
fcntl.lockf(xml_file,fcntl.LOCK_UN)
xml_file.close()
p = ParserCreate()
p.StartElementHandler = self.startElement
p.EndElementHandler = self.endElement
p.CharacterDataHandler = self.characters
p.ParseFile(xml_file)
# all advisory locks on a file are released on close
except:
pass
+3 -1
View File
@@ -2,6 +2,7 @@
# Gramps - a GTK+/GNOME based genealogy program
#
# Copyright (C) 2005-2006 Donald N. Allingham
# Copyright (C) 2014 Vassilii Khachaturov
#
# 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
@@ -97,7 +98,8 @@ class Spell(object):
return
else:
try:
gtkspell_spell = gtkspell.Spell(self.textview)
with self.textview.undo_disabled():
gtkspell_spell = gtkspell.Spell(self.textview)
self._active_spellcheck = spellcheck_code
except:
# attaching the spellchecker will fail if
+2 -2
View File
@@ -837,7 +837,7 @@ class ProbablyAlive(object):
return (date1, date2, explain, other)
def ancestors_too_old(person, year):
LOG.debug("ancestors_too_old('{}', {})".format(
LOG.debug("ancestors_too_old('{0}', {1})".format(
name_displayer.display(person), year) )
family_handle = person.get_main_parents_family_handle()
if family_handle:
@@ -986,7 +986,7 @@ def probably_alive(person, db,
max_sib_age_diff, max_age_prob_alive, avg_generation_gap)
if current_date is None:
current_date = gen.lib.date.Today()
LOG.debug("{}: b.{}, d.{} - {}".format(
LOG.debug("{0}: b.{1}, d.{2} - {3}".format(
" ".join(person.get_primary_name().get_text_data_list()),
birth, death, explain))
if not birth or not death:
+15 -17
View File
@@ -392,7 +392,7 @@ class ArgHandler(object):
@param: climan: the manager of a CLI session
@type: CLIManager object
"""
# Handle the "-l" List Family Trees option.
if self.list:
print _('List of known family trees in your database path\n').\
encode(sys.getfilesystemencoding())
@@ -403,6 +403,7 @@ class ArgHandler(object):
'f_t_name' : name}).encode(sys.getfilesystemencoding())
sys.exit(0)
# Handle the "-L" List Family Trees in detail option.
if self.list_more:
print _('Gramps Family Trees:').encode(sys.getfilesystemencoding())
summary_list = self.dbman.family_tree_summary()
@@ -418,25 +419,28 @@ class ArgHandler(object):
encode(sys.getfilesystemencoding())
sys.exit(0)
# Handle the "-t" List Family Trees, tab delimited option.
if self.list_table:
print _('Gramps Family Trees:').encode(sys.getfilesystemencoding())
summary_list = self.dbman.family_tree_summary()
print _("Family Tree").encode(sys.getfilesystemencoding()),
if not summary_list:
sys.exit(0)
# We have to construct the line elements together, to avoid
# insertion of blank spaces when print on the same line is used
line_list = [_("Family Tree").encode(sys.getfilesystemencoding())]
for key in sorted(summary_list[0]):
if key != _("Family tree"):
print "\t ",
print key.encode(sys.getfilesystemencoding()),
print
line_list += [key.encode(sys.getfilesystemencoding())]
print "\t".join(line_list)
for summary in sorted(summary_list,
key=lambda sum: sum[_("Family tree")].lower()):
print '"%s"'.\
encode(sys.getfilesystemencoding()) % summary[_("Family tree")],
line_list = [('"%s"' % summary[_("Family tree")]).\
encode(sys.getfilesystemencoding())]
for item in sorted(summary):
if item != _("Family tree"):
print "\t ",
print ('"%s"' % summary[item]).\
encode(sys.getfilesystemencoding()),
print
line_list += [('"%s"' % summary[item]).\
encode(sys.getfilesystemencoding())]
print "\t".join(line_list)
sys.exit(0)
self.__open_action()
@@ -560,12 +564,6 @@ class ArgHandler(object):
if family_tree_format == plugin.get_extension():
import_function = plugin.get_import_function()
import_function(self.dbstate.db, filename, None)
if not self.cl:
if self.imp_db_path:
return self.sm.open_activate(self.imp_db_path)
else:
return self.sm.open_activate(self.open)
#-------------------------------------------------------------------------
#
+11 -1
View File
@@ -238,6 +238,13 @@ class CLIManager(object):
_("Family Tree does not exist, as it has been deleted."))
return
if os.path.isfile(os.path.join(filename, "lock")):
self._errordialog(
_("The database is locked."),
_("Use the --force-unlock option if you are sure "
"that the database is not in use."))
return
if self.db_loader.read_file(filename):
# Attempt to figure out the database title
path = os.path.join(filename, "name.txt")
@@ -279,7 +286,10 @@ class CLIManager(object):
# apply preferred researcher if loaded file has none
res = self.dbstate.db.get_researcher()
owner = get_researcher()
if res.get_name() == "" and owner.get_name() != "":
# If the DB Owner Info is empty and
# [default] Researcher is not empty and
# database is empty, then copy default researcher to DB owner
if res.is_empty() and not owner.is_empty() and self.dbstate.db.is_empty():
self.dbstate.db.set_researcher(owner)
name_displayer.set_name_format(self.dbstate.db.name_formats)
+1 -1
View File
@@ -299,7 +299,7 @@ class CommandLineReport(object):
self.options_help['papers'][2] = \
[ paper.get_name() for paper in paper_sizes
if paper.get_name() != _("Custom Size") ]
if paper.get_name() != 'Custom Size' ]
self.options_help['papero'][2] = [
"%d\tPortrait" % PAPER_PORTRAIT,

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