Compare commits

..
Author SHA1 Message Date
John Ralls b57b8d0b75 Update Gramps & dependencies for 5.1.6 release. 2023-07-02 14:39:41 -07:00
Nick Hall 9fe57a2eb2 Bump to 5.1.7 2023-06-29 21:44:40 +01:00
Nick Hall ddfc88946a Release Gramps 5.1.6 2023-06-29 21:37:13 +01:00
Nick Hall 52e4790753 Update Changelog and NEWS files 2023-06-29 21:28:47 +01:00
Nick Hall 8a2c94a3dd Update copyright date 2023-06-29 18:42:00 +01:00
SNoiraudandNick Hall e40b727a57 Narrative web: problem with small pictures.
Fixes #012884
2023-06-28 21:50:08 +01:00
SNoiraudandNick Hall 160d5952f2 Implement the "<CTRL>J" for the family view
Fixes #012882
2023-06-28 21:42:08 +01:00
Jon ScheweandNick Hall 482199d29c Avoid application crash on invalid user input
If the user inputs an invalid date this change keeps the application
from crashing when such a date is found. The invalid date
information is reported to the user in the log.

Fixes #12658.
2023-06-28 20:58:37 +01:00
Nick Hall bfa7c0c9f4 Fix export where private citations are excluded 2023-06-28 19:05:25 +01:00
prculleyandNick Hall 614332aac8 Fix Event compare tool to display enclosed places properly 2023-05-14 22:50:01 +01:00
SNoiraudandNick Hall 0a981f0ca6 Check that view exists before calling post_create method
Avoids 'NoneType' object has no attribute 'post_create' error.

Fixes #12638
2023-05-14 22:47:55 +01:00
Jingxuan HeandNick Hall 9e81014fc6 Fix a wrong operator bug in the web calendar report 2023-05-14 22:27:59 +01:00
Himanshu GohelandNick Hall 2da93aad1f Revert "Enclose tree report image path and file name in braces"
Fixes #12437 by reverting commit 75921ceaf4 due to
reports of regression where processing of the generated TeX file fails due to
bad path specificiation for image files.

Change was introduced in bug fix for #10495.

Bugs #12437 and #12697 reported the regression and confirmed that reverting the
change fixes the regression.
2023-05-14 22:13:38 +01:00
SNoiraudandNick Hall 97434a0136 Geography View: Fix number of arguments in add_bookmark method
add_bookmark() takes 2 positional arguments but 3 were given

Fixes #12718
2023-05-14 21:54:33 +01:00
GaryGriffinandNick Hall 181e2d8540 Use date-specific place in report substitution variables
Fix place title in graphical reports which have user-defined display formats
to use date-specific alternate name.

This impacts Ancestor Tree, Descendant Tree, and Family Descendant Tree.

Fixes #12763.
2023-05-14 21:38:49 +01:00
John RallsandNick Hall 36d03137dd Try to import berkeleydb if bsddb3 isn't found.
berkelydb is usable for python >= 3.6 and required for
python >= 3.10. See https://www.jcea.es/programacion/pybsddb.htm.
2023-05-14 21:11:55 +01:00
Vincent SmeetsandNick Hall f6ac1999dd HtmlDoc: Create a unique filename for cropped images 2023-05-14 21:00:28 +01:00
D.A.LordemannandNick Hall a99b48711f Fix corrupted NOTE tag in Gedcom export
Remove Python2 code obsoleted by Python3, which was corrupting GEDCOM export of Gramps Notes text that includes multi-byte utf-8 characters.

Fixes #12709.
2023-05-14 19:03:52 +01:00
SNoiraudandNick Hall d5d86e9139 Fix IndexError that sometimes occurs when changing view
This occurs when restarting Gramps.

Fixes #12636, #12304, #12429, #12623, #12695.
2023-05-14 18:49:17 +01:00
SNoiraudandNick Hall 4ebba02b6b Fix crash when invalid note link
Fixes #012854
2023-05-12 22:11:29 +01:00
SNoiraudandNick Hall e535fcefa5 Tags with color names don't work in pedigree views
Color tags work correctly in all views except in pedigree views.
These views modify colors:
...
 context.set_source_rgba(*(self.bordercolor[:3] + (0.4,)))
... and
 context.set_source_rgb(*self.bgcolor[:3])

As it works everywhere except in these views, I think it is a bug
even if we cannot enter color names in tags

Fixes #012866
2023-05-12 21:57:24 +01:00
SNoiraud 0170e2b1e6 Crash when invalid event date 2023-04-05 18:41:27 +02:00
SNoiraud 54799df049 ListModel: Only the first level is managed
When we use checkboxes in columns.
The path was converted to int. Why ?
But when we have multiple level, the path format is "x:y" for two levels,
"x:y:z" for three levels, etc
2023-04-04 19:38:10 +02:00
Nick Hall b97facb66f Update Gramps CI workflow to run on Ubuntu 20.04
Ubuntu 18.04 became fully unsupported on 1 Dec 2022.
2023-03-07 21:56:08 +00:00
John Ralls aae38a6861 mac: Patch bsddb to use berkeleydb instead of bsddb3 module. 2022-12-27 15:25:07 -08:00
John Ralls e0ee86c36a Mac build: Patch berkeleydb configure to work on Apple Silicon. 2022-12-27 11:45:08 -08:00
John Ralls e3e89e6592 [mac] Update Exiv2 download URL, moved to github. 2022-12-26 13:56:57 -08:00
John Ralls 2cde1f0cdb Repackage Gramps 5.1.5 with Gtk updates fixing use on macOS 13 Ventura. 2022-12-24 14:27:46 -08:00
Nick Hall 2ca3839904 Fix spouse's name and underlined call names in records
Fixes #12391
2022-03-19 17:51:06 +00:00
Nick Hall 66cac5e852 Fix package installation failures in CI 2022-03-16 22:21:22 +00:00
Sam ManziandNick Hall 99ec8e876b Update INCOMPLETE_TRANSLATIONS
* Remove: he

* Add: zh_HK, zh_TW
2022-02-12 22:44:46 +00:00
Ross GammonandNick Hall b27480f7a1 Update Debian folder after 5.1.5 release 2022-02-12 21:44:57 +00:00
John Ralls e0e81cf56a Package Gramps 5.1.5 for macOS. 2022-02-05 17:12:38 -08:00
Nick Hall 6df7c46400 Bump to 5.1.6 2022-02-05 23:33:10 +00:00
Nick Hall b98f166a6d Release Gramps 5.1.5 2022-02-05 23:28:04 +00:00
Nick Hall 33e78d47db Update Changelog and NEWS files 2022-02-05 23:23:27 +00:00
Nick Hall c753ca66b0 Remove Travis CI configuration 2022-02-05 22:04:48 +00:00
Nick Hall ff87829b99 Fix badges in README file 2022-02-05 22:01:11 +00:00
Nick Hall a1ec516340 Update copyright date 2022-02-05 19:25:53 +00:00
SNoiraudandNick Hall 60b4866296 Strange behavior for the scrollbar in the bottombar
Fixes #012438
2022-02-04 22:13:05 +00:00
romjeromeandNick Hall 3ad5248af0 Fix place object element order in DTD and RNG schemas
Element placeobj content does not follow the DTD and RNG,
expecting (ptitle? , pname+)

Fixes #12500
2022-02-04 21:44:15 +00:00
Nick Hall aa7d9c10c8 Merge pull request #1323 from izikeros/pl 2022-02-01 22:25:43 +00:00
Krystian SafjanandNick Hall 9f458578c0 Fixes suggested after review by @stojex 2022-02-01 22:17:38 +00:00
Krystian SafjanandNick Hall 3418027e50 Update Polish translation
- Consistent usage of "Tag": was "Tag" or "Atrybut", note that
  "Attribute" (atrybut) is something different than tag
- "Magazyn" (repository) renamed to "Repozytorium"
- other fixes and addons
2022-02-01 22:16:17 +00:00
SNoiraudandNick Hall 8eed6b869a Solve InterpolationSyntaxError if "%" in a string
The grampletpane module save data in a config file for all
the gramplets added in the dashboard.
The python configparser module doesn't like if we have a "%"
character in a string.

Fixes #012423
2022-02-01 21:57:37 +00:00
SNoiraudandNick Hall f5202a9ab8 '<' not supported between 2 instances of IndexMark
Fixes #012467
2022-02-01 21:45:32 +00:00
Nick Hall b8e5eacbbe Remove debug sattements in unit tests 2022-02-01 21:36:44 +00:00
Nick Hall 810d2fca24 Fix negative Span when dates are not Gregorian
Fixes #12525
2022-02-01 21:33:53 +00:00
Leonhaeuser 7c0e138ad2 get German translation with manual in sync (Display name editor) 2022-01-29 13:22:40 +01:00
Nick Hall 85535c0f5b Merge pull request #1291 from SNoiraud/B12395 2022-01-28 22:18:50 +00:00
SNoiraudandNick Hall b52d90221f Incorrect grouping if no ma/patronymic surname 2022-01-28 22:05:26 +00:00
SNoiraudandNick Hall bfcbd38610 Group As override is ignored for ma/patronymic surnames
Fixes #12395

discourse:
https://gramps.discourse.group/t/patronymic-and-matronymic-name/1684/5
2022-01-28 22:05:17 +00:00
Nick Hall 2ada529a21 Merge pull request #1290 from SNoiraud/B12374 2022-01-28 21:49:56 +00:00
SNoiraudandNick Hall 8d355ee184 Add comments for the lat-lon field of editplace 2022-01-28 21:41:57 +00:00
SNoiraudandNick Hall d5b28435e0 Place editor, lat and long text are swapped
Fixes #012374
2022-01-28 21:41:57 +00:00
prculleyandNick Hall 61189d3930 Fix Statusbar progress being shown before use
Fixes #12373
2022-01-28 21:32:12 +00:00
prculleyandNick Hall fec961d992 Fix exception when removing a group name in Sqlite db when group
name is already missing.

Fixes #12367
2022-01-28 21:31:51 +00:00
prculleyandNick Hall 8ceccb4a28 Fix error when trying to close name editor during long name group
mapping view rebuild.

Fixes #12328
2022-01-28 21:30:27 +00:00
SNoiraudandNick Hall 6ba9722dee OsmGpsMap-CRITICAL: Map source setup called twice
Fixes #012352
2022-01-28 21:17:30 +00:00
Ross GammonandNick Hall 4a9f658dd4 Fix probably alive test
The probably alive funtion was fixed just prior to the Gramps 5.1.4
release. It appears the relevant unit test was not updated to match.
The relevant commit:
https://github.com/gramps-project/gramps/commit/a685b96f700dcfc6b953413cb3adc8be61d87438
2022-01-28 19:52:42 +00:00
Nick Hall c9537b355e Use GitHub Actions to run continuous integration checks 2022-01-28 19:46:52 +00:00
John Ralls 49c3fa0f3f Update Exiv2, PYExiv2, and json-glib. 2022-01-28 09:06:08 -08:00
Ross GammonandNick Hall eb002718b1 Update Debian folder for Gramps 5.1.4 release 2022-01-27 21:45:22 +00:00
pehlm 19c714d57a Minor update of Swedish translation 2022-01-25 17:56:25 +01:00
Tian ShixiongandNick Hall b392ce01e0 Minor update to zh_CN translation 2022-01-24 15:40:16 +00:00
Leonhaeuser b43b6bdd6d small German translation fixes 2021-11-03 19:43:17 +01:00
Leonhaeuser c027276466 Fixed German translation error of "Character set encoding" 2021-11-01 22:16:40 +01:00
Leonhaeuser 898b6b26e8 Fixed German translation error of "Graph generations" 2021-10-25 21:54:26 +02:00
John Ralls ab2df73268 Repackage Gramps.app to work with macOS 12. 2021-10-16 13:51:55 -07:00
John Ralls e1794090e1 [macOS]Add entitlements path to bundle-file so Gramps.app is signed with it. 2021-10-16 13:51:55 -07:00
Leonhaeuser 87860fcfd2 Fixed German translation error of "filter person" 2021-09-19 13:15:21 +02:00
Leonhaeuser 79986e1f5e fixed error in German translation found during manual translation also fixed in master 2021-08-30 18:06:20 +02:00
Leonhaeuser 0f38a1a645 fixed German translation of 'Descendant families of' already done in trunk Weblate 2021-08-11 22:36:58 +02:00
John Ralls 14618917c2 Add python-fontconfig to the macOS build.
Needed to enable using genealogical symbols.
2021-08-10 16:18:41 -07:00
John Ralls ae7a2500de Inlude fontconfig's etc/fonts in macOS app bundle.
Graphviz now uses fontconfig to find its fonts.
Fixes #12370
2021-07-29 15:13:45 -07:00
John Ralls 358a6b118b Bundle release of Gramps 5.1.4. 2021-07-26 13:23:19 -07:00
Nick Hall 9352f0c438 Bump to 5.1.5 2021-07-26 20:53:53 +01:00
Nick Hall 1ab4cbfa63 Release Gramps 5.1.4 2021-07-26 20:49:30 +01:00
Nick Hall 1fd319e13a Update Changelog and NEWS files 2021-07-26 20:45:57 +01:00
Nick Hall 7cb8489ba2 Update copyright date 2021-07-26 15:43:24 +01:00
SNoiraudandNick Hall a685b96f70 probably-alive incorrect if death without date 2021-07-26 15:38:25 +01:00
SNoiraudandNick Hall b24ebd5d77 fix the commit in master without bug report:
commit: 410cffe832
2021-07-22 18:50:17 +01:00
SNoiraudandNick Hall 6dcb1d00d5 Place editor, copy and paste of lat and long text
no longer auto-populating latitude and longitude fields

Fixes #012349
2021-07-22 18:50:17 +01:00
prculleyandNick Hall a3b37b9627 Fix for crash when changing views if part of toolbar is not shown
because of a small screen when changing views.

Fixes #12048
2021-07-22 18:49:03 +01:00
prculleyandNick Hall 034720321c Fix bottombar always showing after restrt, even when not wanted
Fixes #12338
2021-07-22 18:47:46 +01:00
Tian ShixiongandNick Hall 09f01a69d5 Update and fix Simplified Chinese translation 2021-07-21 18:53:11 +01:00
Leonhaeuser 597f3ebedf fixed smal German translation Error for item also fixed in Weblate GUI for master 2021-07-16 22:27:20 +02:00
Tian ShixiongandNick Hall c7b5e149fa Update Simplified Chinese translation 2021-07-08 23:20:13 +01:00
pehlm f7203aa029 One update Swedish translation 2021-07-05 15:50:44 +02:00
John Ralls 9cca728a66 Better to use locale.get_collation than locale.collation. 2021-07-03 21:54:57 -07:00
John Ralls df270adc94 Wrap call to dbapi.check_collection to prevent a forced API change. 2021-07-03 21:49:01 -07:00
John Ralls c177c13f99 Merge John Ralls's 'bug12343' into maintenance/gramps51. 2021-07-03 06:54:09 -07:00
John Ralls 15f1bb0201 Fix URL for berkeleydb patch. 2021-07-01 15:40:58 -07:00
John Ralls f75aa9302a Always use filtered collation names.
Store the Sqlite3 collations in the __collations array to short-circuit
re-creation.

Fixes https://gramps-project.org/bugs/view.php?id=12343.
2021-07-01 11:45:23 -07:00
prculley 708c83dc58 Revert "An experimental fix for bug12048"
This reverts commit 3c1c21163c.
commited by mistake
2021-06-25 09:59:15 -05:00
prculley 0a809904dc Revert "Change to timeout, rather than idle_add, and dereference toolbars in order they were added"
This reverts commit f91d3e94ab.
commited by mistake.
2021-06-25 09:58:34 -05:00
Leonhaeuser e8f50deabc Fixed different German translations for "What's next" also fixed in master (Weblate) 2021-06-25 11:40:13 +02:00
Leonhaeuser 486fae91ce German relation calculator fixed issue if more then 24 generations between the two person 2021-06-23 10:23:33 +02:00
niememat 9ee5468bda Fix translation in Finnish 2021-06-22 13:22:45 +03:00
Tian Shixiong eac6a935f6 Correct and improve Simplified Chinese translation
Correct some terribly wrong and low quality translation,
even machine translation.

Improve some existing translation for better user experience
as a software, use more written language.
2021-06-17 16:37:09 +08:00
Tian ShixiongandNick Hall cc68b7acfc Improve and correct Simplified Chinese translation 2021-06-10 18:37:26 +01:00
Tian Shixiong c321e7f0d6 Improve and correct the Simplified Chinese translation 2021-05-28 14:04:35 +08:00
Tian ShixiongandNick Hall e13a852523 Update and improve Simplified Chinese translation 2021-05-26 12:51:15 +01:00
Tian Shixiong 3c4c433a84 Update Simplified Chinese translation 2021-05-20 14:01:20 +08:00
Jan SparreboomandNick Hall e8268cb37e Update Dutch translation 2021-05-15 23:12:19 +01:00
Nick Hall 721d964741 Merge pull request #1137 from tiansworld/workl10n 2021-05-15 15:52:07 +01:00
Tian ShixiongandNick Hall 7d4ec1be73 Correct and Update Simplified Chinese translation 2021-05-15 15:44:39 +01:00
Tian ShixiongandNick Hall 36ce375a2a Update Simplified Chinese translation 2021-05-15 15:44:39 +01:00
Leonhaeuser 9f6afcc7db Corrected some German translation errors found during handbook revision 2021-05-14 21:23:35 +02:00
John Ralls c66fc6423d Add file logging for macOS.
When Gramps is launched from macOS's LaunchServices it doesn't have
a sys.stderr attached so the default stream logger goes to /dev/null.
Use a FileHandler in tht case, writing the log to $TMPDIR/gramps-pid.log.

This will help particularly in analyzing crashes where python shuts down
as there's no crash report in that case.
2021-05-11 15:58:00 -07:00
prculleyandJohn Ralls f91d3e94ab Change to timeout, rather than idle_add, and dereference toolbars in order they were added 2021-05-11 15:58:00 -07:00
prculleyandJohn Ralls 3c1c21163c An experimental fix for bug12048 2021-05-11 15:58:00 -07:00
John Ralls 09709ec0c6 Update PyICU to 2.7.2 in macOS build. 2021-05-06 14:24:17 -07:00
Paul CulleyandGitHub bb7f5fa522 Fix libplaceview to avoid exception when mapservice is no longer present (#1193)
Fixes #12263
2021-05-06 10:19:03 -05:00
Paul CulleyandGitHub 9957506f35 Fix References Gramplet for inadequate updates when other objects change (#1192)
Fixes #12248
2021-05-06 10:18:11 -05:00
Serge NoiraudandGitHub eb4ce9ff79 geofamily crashes if a family has no father (#1188) 2021-05-06 10:14:49 -05:00
Serge NoiraudandGitHub 1d72f4b23d Home Person setting does not convey in a Merge (#1187)
* Home Person setting does not convey in a Merge

Fixes #012235

* better pylint score
2021-05-06 10:14:26 -05:00
Paul CulleyandGitHub 5ad5f08a2b Fix CSV export of view to only put single CR character. (#1186)
Fixes #12158
2021-05-06 10:13:02 -05:00
Paul CulleyandGitHub 9e43f060d1 Add Media filter rule 'HasMedia' to list of media rules for editor (#1182)
Fixes #12212
2021-05-06 10:11:16 -05:00
Leonhaeuser bc1ed688c4 corrected German translation of "confidence" 2021-04-28 23:04:23 +02:00
Leonhaeuser 9d358d06f5 German corrected translation of 'attribute' 2021-04-26 18:02:29 +02:00
Leonhaeuser 16b1945a0e Fixed translation error of "display name editor" into German 2021-04-25 12:12:50 +02:00
Leonhaeuser 5e9be68ad5 some translation fixes for German 2021-04-24 22:05:49 +02:00
pehlm cd3ef08ffb Changed immigration too, Swedish 2021-04-24 15:21:33 +02:00
pehlm 773e763093 Correction of Swedish translation 2021-04-24 13:17:11 +02:00
Helder Geovane Gomes de LimaandGitHub 0badfb6b47 Update Portuguese translation (pt_BR) (#1199)
This pull request is an updated version of the patch I've provided at <https://gramps-project.org/bugs/view.php?id=10547> in 2018, now based on branch 5.1
2021-04-22 15:38:01 +02:00
Leonhaeuser 5af80da5cd Corrected translation of markup in German translation 2021-04-19 23:22:48 +02:00
Leonhaeuser 0045f134c6 Fixed translation of tags in German translation 2021-04-17 00:07:47 +02:00
Leonhaeuser 1035f8930f German translation for type unified 2021-04-14 00:22:56 +02:00
romjeromeandGitHub d4bceeb6ff 11656: typo, spelling correction
contribution by Philippe
2021-04-13 09:14:24 +02:00
romjeromeandGitHub c8fc88cfe7 Need to set locale.textdomain under linux (#1198)
_build_popup_ui() ignores translated strings without locale.textdomain set.
2021-04-13 08:53:04 +02:00
Leonhaeuser b4b6d52306 Fixed German translation of number for places 2021-04-13 00:04:11 +02:00
John Ralls 4f390c6b33 Update dependencies.
Includes moving berkeleydb and pybsddb over from gtk-osx.
2021-04-11 16:18:46 -07:00
Leonhaeuser 0442c34258 Some small fixes in German translation 2021-03-21 00:18:46 +01:00
Leonhaeuser c903f5e5a5 Update German translation for csv import/export 2021-03-11 22:59:42 +01:00
Leonhaeuser 3329860f50 small fix in German translation 2021-03-01 23:21:46 +01:00
Matthias KemmerandGitHub e7401f3aaa Change category of 'MatchesEventFilter' (#1130) 2021-02-19 11:45:38 -06:00
Paul CulleyandGitHub 1a48e8a03e Fix issue where separator between top and bottom bar of View creeps up. (#1122)
Fixes #11973
2021-02-19 11:44:32 -06:00
Paul CulleyandGitHub 9a4adab9d6 Fix Locations Gramplet (Enclosed by) to properly displaycertain nested places. (#1127)
when the smallest place has undated enclosure and larger places are dated.

Issue #11691
2021-02-19 11:32:33 -06:00
Paul CulleyandGitHub bb0647274b Fix Family Tree Manager drop error on Windows (#1132)
Fixes #10734
2021-02-19 11:31:43 -06:00
Paul CulleyandGitHub f6bfb46fc0 Fix exportvcalendar error is "is not" with a literal (Python 3.8 issue) (#1135)
Fixes #12000
2021-02-19 11:31:06 -06:00
Serge NoiraudandGitHub b6fa5da8ee Handle not found when copying source from the (#1175)
Citation tree

Fixes #12170
2021-02-19 11:25:02 -06:00
Paul CulleyandGitHub 14c2d0e1b6 DbLoader: Fix call to 'file' function, which doesn't exist in Python3 (#1173) 2021-02-19 11:23:47 -06:00
Paul CulleyandGitHub 226e8c549a Fix write_lock_file exception when USERNAME is missing (#1171)
Fixes #12150
2021-02-19 11:23:06 -06:00
Paul CulleyandGitHub d173809d8c Fix EditPlace so Tab key doesn't get stuck on Private icon (#1168)
Fixes #12139
2021-02-19 11:22:35 -06:00
Paul CulleyandGitHub 63c52fa1bb Fix Tag report for places that have a hierarchy. (#1162)
Fixes #12124
2021-02-19 11:21:11 -06:00
Paul CulleyandGitHub 455628d44a Fix exception when cancelling out of a db upgrade in GUI (#1154)
Fixes #12063
2021-02-19 11:18:18 -06:00
Leonhaeuser 670bb355cb additional small German translation fixes 2021-02-12 21:36:51 +01:00
Leonhaeuser 202c7a9bf6 Small fixes German translation 2021-02-11 12:06:22 +01:00
Leonhaeuser 72955840f1 fix wrong translation of source text in German translation 2021-02-06 22:06:22 +01:00
Leonhaeuser b8e73d5ee1 fixed small error in German translation 2021-02-06 00:04:33 +01:00
Leonhaeuser 990db39664 small fixes German translation 2021-01-26 18:59:23 +01:00
Nick Hall 9c0dca6bd1 Merge pull request #1053 from cjmayo:themeicon 2020-11-14 19:29:58 +00:00
Chris MayoandNick Hall 02e0c1c67d Install 128x128 and 256x256 application icons
Created with ImageMagick using e.g.:

convert -background none ../../../gramps.svg -geometry 256x256 gramps.png
2020-11-14 19:23:25 +00:00
Chris MayoandNick Hall ebf1715468 Install MIME type icons into the hicolor theme
The gnome theme is defunct.

Remove gnome-mime- prefix from icon filenames.
2020-11-14 19:23:24 +00:00
Nick Hall c10f2da00e Install application icons into correct directories 2020-11-14 19:10:34 +00:00
vantu5z 9f71372a97 Update Russian translation 2020-10-15 16:06:19 +03:00
Zdeněk Hataš 0993d9cfc3 Update Czech translation - typo fixes 2020-09-25 09:02:45 +02:00
Tian ShixiongandNick Hall 34471834ab Update Simplified Chinese translation 2020-09-24 22:37:57 +01:00
Jan SparreboomandNick Hall ff912f844c Update Dutch translation 2020-09-24 21:36:52 +01:00
Lajos NemesériandNick Hall 45eac501a9 Revised and updated hu translation 2020-09-24 19:41:31 +01:00
Juan SaavedraandNick Hall d4e85c2397 Update Spanish translation 2020-09-24 17:52:35 +01:00
bokfinkandGitHub c7a4d287f0 Fix error in Birthday and Anniversary report (#1113)
Fixes an error triggered when the first person_handle in the list
has a death event, but no birth event (get_birth_ref() == None)
and does not have family relationships (spouse_handle == None).
These conditions lead to the local variable short_name not being
declared before it comes time to process death events.

Fixes #11766
2020-09-14 11:13:08 -05:00
Paul CulleyandGitHub c0d622c16a Fix graphdoc to properly escape characters in ids for Graphviz (#1111)
Fixes #11741
2020-09-14 11:10:20 -05:00
John RallsandGitHub b38f77f2aa Replace inspect.stack() with inspect.currentframe() (#1104)
* Replace inspect.stack() with inspect.currentframe()

Fixes #11874

Works around https://bugs.python.org/issue12920 which causes every
call to inspect.trace() to fail because __main__ is always the
starting point.

* Fix a few Codecov complaints from files touched by previous commit.

Ignoring the "duplicate code" issue caused by the empty comment line
at the beginning of every file.
2020-09-14 11:08:58 -05:00
d91fc9e2fb Update Debian directory after producing the deb file for the 5.1.3 (#1100)
Release.

Co-authored-by: Ross Gammon <rossgammon@debian.org>
2020-09-14 11:05:21 -05:00
Paul CulleyandGitHub 198602be61 Fix crash sorting on columns in Selectors with TreeModels (#1099)
Fixes #11750
2020-09-14 11:04:12 -05:00
Paul CulleyandGitHub 3f9f3215ee Fix progress bar freeze due to changes in Gtk (#1103)
Fixes #11642
2020-09-14 11:02:48 -05:00
Paul CulleyandGitHub beb388a30d Fix svgdrawdoc for text containing XML invalid characters (#1110)
Fixes #11929
2020-09-14 11:00:43 -05:00
John Ralls 29e78d4253 Further changes for bundling with Python 3.8. 2020-08-30 14:46:35 -07:00
John Ralls b80dcaf701 Add libgeocode-glib to bundle so that it actually works. 2020-08-30 14:44:51 -07:00
Leonhaeuser a876d94fbc German tzranslation two smal corrections 2020-08-26 18:08:42 +02:00
John Ralls 95e1e8cb67 [mac] Set __file__ if gramps_launcher.py is run as __main__.
Fixes #11874.
2020-08-25 17:14:10 -07:00
Zdeněk Hataš 4147bc728a Update Czech translation 2020-08-21 11:02:14 +02:00
John Ralls 3a9a7053ec Bundle release of Gramps 5.1.3. 2020-08-20 14:41:57 -07:00
John Ralls b96fd8a274 Add geocode-glib to build. 2020-08-20 14:14:53 -07:00
pehlm 26cf0601d8 Update Swedish translation 2020-08-12 20:32:03 +02:00
prculley c59278ef20 Bump to 5.1.4 2020-08-12 12:05:25 -05:00
prculley 767557be61 Release Gramps 5.1.3 2020-08-12 11:28:29 -05:00
prculley 495d4e58ae Remove duplicates in Translations 2020-08-11 09:24:38 -05:00
prculley fd90a80cf8 Clean up translations for Default/Home Person 2020-08-10 17:16:12 -05:00
Leonhaeuser f6c0103f32 Update German translation 2020-08-10 22:48:17 +02:00
Serge NoiraudandGitHub 04c1dc8503 Events View: "Main Participants" column does not (#1075)
show the full list of participants when expanded.

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

Fixes #11831
2020-07-25 10:13:57 -05:00
prculley f7be7ab63f Fix menus when db fails to open due to upgrade/downgrade etc.
Fixes #11604
2020-07-25 10:10:56 -05:00
prculley 97923e7530 Fix issue with attach source tool, results panel
Fixes #11780
2020-07-25 10:09:52 -05:00
prculley 75aabf570d Fix GEDCOM export; don't include ADDR when address is missing
Fixes #11825
2020-07-25 10:08:58 -05:00
SNoiraudandPaul Culley 41f1e91600 Coordinates containing a comma instead of a period
Fixes #11823
2020-07-25 10:08:22 -05:00
Leonhaeuser 981c0dfc5c German translation fixed typo 2020-07-23 20:28:59 +02:00
niememat d558a9a004 Update finnish translation 2020-07-17 00:41:16 +03:00
Tian Shixiongandprculley 914bd6c0d3 Update Simplified Chinese translation for gramps51 branch 2020-07-09 09:42:35 -05:00
Serge NoiraudandGitHub e8eb5bf0a1 NarrativeWeb should show patronymic in individuals (#1048)
In the individuals and in surnames pages, we should show the complete name
like defined in the display tab from the narrative web configuration.

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

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

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

Fixes #0007745
2020-05-15 14:55:15 -05:00
prculley 6cbc2b896d Fix Dashboard Gramplets to update during db close when not shown
Fixes #11632
2020-05-15 14:53:43 -05:00
prculley d210275a4e Fix Windows GUI mode startup for crash with some languages
Fixes: #11612. #11490, #11518, #9179, #9201, #9266
2020-05-15 14:50:54 -05:00
prculley 0a3a65ffb0 Fix dbapi to support "Abandon Changes & Quit" feature
Fixes #11599
2020-05-15 14:49:55 -05:00
prculley e34b98033e Fix GrampsType for comparison bug with empty string as one value
Fixes #11563
2020-05-15 14:47:06 -05:00
prculley 96de0ceb4e Fix Verify tool bug caused by bad change in GObject introspection
Fixes: #11708
2020-05-07 09:39:09 -05:00
niememat 58335cfee2 Fix translation in Finnish 2020-04-24 15:35:00 +03:00
Joan Creus 2ce48d3793 Updating Catalan translation 2020-04-18 13:06:40 +02:00
Joan Creus f91063884e Updating Catalan translation 2020-04-18 12:57:30 +02:00
prculley 06732b1b5d Fix Date Display so that it uses LC_TIME if defined
Fixes #11230
2020-04-13 11:51:23 -05:00
prculley 26b78c17af Fix StyledText so serialize will match for style list order changes
Fixes #11529
2020-04-13 11:45:15 -05:00
prculley d83fff3b62 Try to fix exceptions on ManagedWindow close
Issues #10252, #10642, #10821, #11163, #11440, #11476, #11482, #11508
2020-04-13 11:36:24 -05:00
John Ralls 823bcaac0d Merge John Ralls's 'bug11639' into maintenance/gramps51 2020-04-08 13:09:17 -07:00
Leonhaeuser b9c324ef37 update Germn translation 2020-04-08 19:17:13 +02:00
Serge NoiraudandGitHub 23d2c8e694 Same date of birth and death gives an error. (#1011)
Fixes #011553
2020-04-04 09:52:50 +02:00
Serge NoiraudandGitHub 28dc2e5158 Geography: add a popup for a bad tiles path (#1025) 2020-04-04 09:49:41 +02:00
Serge NoiraudandGitHub 2baa6f5e40 Narweb: image size limit doesn't match tooltip (#1004)
Fixes #011536
2020-04-04 09:45:54 +02:00
John Ralls eb1b4c1eb5 Protect SQLite3 locale from old-style Unicode locale characters.
PySQLite3 requires that collation names have only ascii alphanumerics
and _. ICU locales use old-style Unicode specifiers and passing them to
create_locale will raise an exception. Translate those characters into
underscores.

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

Новый перевод для неких случаев, но улучшающие понимание и выглядит более уместно. Также применены русские переводы слов, которые использовали до того англицизмы
2020-03-25 15:24:06 +03:00
Joan Creus 74d72f4dd0 Updating Catalan translation 2020-03-03 00:00:28 +01:00
Joan Creus 9ce92f41e3 Updating Catalan translation 2020-02-29 18:00:08 +01:00
Bernard Banko 77cdbb11b5 V&O changed to PZV to avoid ampersand 2020-02-25 23:44:55 +01:00
pehlm 72277db766 Minor update to Swedish translation 2020-02-07 18:30:09 +01:00
prculleyandNick Hall 7ae77abead Fix GEDCOM export of estimated/calculated dates with modifers
Fixes #11513
2020-02-04 15:57:40 +00:00
Ross GammonandNick Hall 04b1463746 New debian release - update changelog 2020-02-04 15:49:02 +00:00
vantu5z 1eeae2edf8 update Russian translation 2020-01-31 14:06:03 +03:00
Bernard Banko 740adc7070 Slovenian translation update 2020-01-26 21:45:38 +01:00
prculley a2dbdbb61a Fix typo in Russian translation 2020-01-23 09:33:24 -06:00
système 8d5b0c83ce typos in french translation #11534 #10534 2020-01-21 20:27:05 +01:00
Fedik 01afe251fb Ukrainian translation update 2020-01-21 18:20:30 +02:00
John Ralls 152ed0b6bc Mac release of 5.1.2. 2020-01-11 13:14:41 -08:00
prculley 5624fb1490 Bump to v5.1.3 2020-01-10 11:43:58 -06:00
prculley 32c700c6bf Release Gramps 5.1.2 2020-01-10 11:29:07 -06:00
prculley 130740553d Update Changelog and NEWS files 2020-01-10 11:20:09 -06:00
Serge NoiraudandGitHub 675dfdbc70 Narrated Web: bad event links on media pages (#983)
* Navweb: Don't use media regions in some case:

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

Fixes #011500

* Navweb: side effect between event and media pages

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

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

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

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

Fixes #11463

* Allow import file filter to accept case insensitive extensions

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

* Fix Progen import to correctly handle AKA surnames

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

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

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

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

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

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

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

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

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

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

Issue #11335

* Fix place editor lat/long entry for RTL languages

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

* Update POTFILES.skip

* Update POTFILES.in

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

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

Fixes #11382

* Narrative web: some cleanup in ancestortree.css

* Narrative web : ancestor tree and long names.

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

* Handle long and short hex format black color

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

Fixes #11357

* WEBCAL: home link translated to lowercase

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

* Make PedigreeView listen on event update signals.

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

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

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

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

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

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

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

* Finalise Debian changelog for 5.1.1-1 release
2019-09-18 11:41:30 +10:00
John Ralls 2b62729f52 Release Gramps 5.1.1 on MacOS. 2019-09-14 16:58:34 -07:00
John Ralls 1c856bb93b Assorted fixes for building Gramps 5.0. 2019-09-14 16:56:23 -07:00
Nick Hall 710e40425f Bump to 5.1.2 2019-09-14 23:40:42 +01:00
242 changed files with 83753 additions and 91059 deletions
+77
View File
@@ -0,0 +1,77 @@
#
# Gramps - a GTK+/GNOME based genealogy program
#
# Copyright (C) 2022 Nick Hall
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
name: Gramps CI
on:
push:
branches: [ maintenance/gramps51 ]
pull_request:
branches: [ maintenance/gramps51 ]
jobs:
build:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install gir1.2-pango-1.0
sudo apt-get install gir1.2-gtk-3.0
sudo apt-get install xdg-utils
sudo apt-get install librsvg2-common
sudo apt-get install libglib2.0-dev
sudo apt-get install intltool
sudo apt-get install python3-gi
sudo apt-get install python3-cairo
sudo apt-get install python3-gi-cairo
sudo apt-get install python3-bsddb3
sudo apt-get install python3-dev
sudo apt-get install python3-nose
sudo apt-get install python3-mock
sudo apt-get install python3-icu
sudo apt-get install python3-coverage
sudo apt-get install python3-jsonschema
sudo apt-get install libxml2-utils
sudo apt-get install python3-lxml
sudo apt-get install python-libxml2
sudo apt-get install zlib1g-dev
sudo apt-get install python3-setuptools
- name: Install addons
run: |
mkdir -p ~/.gramps/gramps51/plugins/
wget https://github.com/gramps-project/addons/raw/master/gramps51/download/CliMerge.addon.tgz
tar -C ~/.gramps/gramps51/plugins -xzf CliMerge.addon.tgz
wget https://github.com/gramps-project/addons/raw/master/gramps51/download/ExportRaw.addon.tgz
tar -C ~/.gramps/gramps51/plugins -xzf ExportRaw.addon.tgz
- name: Build
run: |
python3 setup.py build
- name: Run unit test suite
run: |
python3 setup.py test
- name: Trailing whitespace check
run: |
if git --no-pager grep --color -n --full-name '[ ]$' -- \*.py; then
echo "ERROR - Trailing whitespace found in source file(s)";
exit 1;
fi
-129
View File
@@ -1,129 +0,0 @@
#
# Gramps - a GTK+/GNOME based genealogy program
#
# Copyright (C) 2015-2015 Doug Blank
# Copyright (C) 2016 DaAwesomeP
# Copyright (C) 2016 QuLogic
# Copyright (C) 2016 Tim G L Lyons
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
# After changing this file, check it on:
# http://lint.travis-ci.org/
sudo: required
dist: trusty
language: python
python:
- 3.3 # This is irrelevant, because the virtualenv is not used at all
# FIXME: The minimum requirement for Gramps is Python 3.2, so a test environment
# for Python 3.2 should be added to this environment which is Python 3.3. It
# will not be possible to run coverage under Python 3.2, because coverage is
# Python 3.3 (or above) only.
addons:
apt:
packages:
- gir1.2-pango-1.0
- gir1.2-gtk-3.0
- xdg-utils
- librsvg2-common
- libglib2.0-dev
- intltool
# - python3-gobject Provided by python3-gi
- python3-gi
- python3-cairo
- python3-gi-cairo
- python3-bsddb3
- python3-dev
- python3-nose
- python3-mock
- python3-pyicu
- python3-coverage
- python3-jsonschema
# lxml dependencies. for merge_ref_test to work
# - libxml2-dev
# - libxslt1-dev
- libxml2-utils
- python3-lxml
- python-libxml2
# ubuntu 14.04 requires this in addition to libxml2-dev and
# libxslt1-dev for compiling lxml.
# https://github.com/deanmalmgren/textract/issues/19
- zlib1g-dev
before_install:
install:
# The working directory is set to /home/travis/build/gramps-project/gramps
# by the automatic git checkout.
# Download Sean Ross-Ross's Pure Python module containing a framework to
# manipulate and analyze python asts and bytecode. This is loaded to
# /home/travis/build/gramps-project/gramps/meta
# FIXME: This should be loaded from the release directory at
# https://pypi.python.org/pypi/meta
- git clone -b master https://github.com/srossross/meta
# Build Gramps package. This seems to copy everything to
# /home/travis/build/scripts-3.3
- python setup.py build
before_script:
# Create the Gramps database directory.
- mkdir -p ~/.gramps/grampsdb/
# set PYTHONPATH so the directly installed module (meta) is picked up from
# /home/travis/build/gramps-project/gramps/meta
- export PYTHONPATH=meta
# set module exclusions. --exclude=TestUser because of older version of mock
# without configure_mock
- export EXCLUDE="--exclude=TestcaseGenerator"
# --exclude=merge_ref_test"
# set GRAMPS_RESOURCES for locale, data,image and documentation
- export GRAMPS_RESOURCES=.
# Install addons
- mkdir -p ~/.gramps/gramps51/plugins/
- wget https://github.com/gramps-project/addons/raw/master/gramps51/download/CliMerge.addon.tgz
- tar -C ~/.gramps/gramps51/plugins -xzf CliMerge.addon.tgz
- wget https://github.com/gramps-project/addons/raw/master/gramps51/download/ExportRaw.addon.tgz
- tar -C ~/.gramps/gramps51/plugins -xzf ExportRaw.addon.tgz
script:
# Ignore the virtualenv entirely. Use nosetests3, python3 (3.4.0) and coverage
# from /usr/bin. Use libraries from /usr/lib/python3.4,
# /usr/local/lib/python3.4/dist-packages and /usr/lib/python3/dist-packages
- nosetests3 --nologcapture --with-coverage --cover-package=gramps $EXCLUDE
gramps
# FIXME: This should have run from the current directory, rather than from
# gramps, because there is some test code in that directory.
# give an error for any trailing whitespace
- if git --no-pager grep --color -n --full-name '[ ]$' -- \*.py; then
echo "ERROR - Trailing whitespace found in source file(s)";
exit 1;
fi
after_success:
# apt-get installs python3-coverage, but codecov only invokes coverage, so make
# a link
- sudo ln /usr/bin/python3-coverage /usr/bin/coverage
# We have to use the bash script because the apt-get coverage does not install
# codecov. If we used pip to install codecov, it would run inside the
# virtualenv, and that doesn't work. Change the path to ensure that codecov
# picks up coverage from /usr/bin, rather than from
# /home/travis/virtualenv/python3.3.6/bin/
- PATH=/usr/bin:$PATH bash <(curl -s https://codecov.io/bash)
+114 -217
View File
@@ -1,277 +1,174 @@
2019-09-14 SNoiraud <Serge.Noiraud@free.fr>
2023-06-29 Nick Hall <nick-h@gramps-project.org>
* gramps/gen/filters/rules/place/_withinarea.py: Fix deprecation
warning in withinarea rule
* docs/conf.py, gramps/gen/const.py: Update copyright date
2019-09-14 Nick Hall <nick-h@gramps-project.org>
2023-05-13 SNoiraud <Serge.Noiraud@free.fr>
* gramps/gui/grampsgui.py: Disable development warning message
* gramps/plugins/webreport/media.py: Narrative web: problem with
small pictures. Fixes #012884
2019-09-13 Jonas Hahnfeld <hahnjo@hahnjo.de>
2023-05-09 SNoiraud <Serge.Noiraud@free.fr>
* gramps/gen/plug/docgen/treedoc.py: Add options to sandclock in
tree document generator This works and is actually needed to style the root node.
* gramps/plugins/view/familyview.py: Implement the "<CTRL>J" for the
family view Fixes #012882
2019-09-11 SNoiraud <Serge.Noiraud@free.fr>
2022-07-11 Jon Schewe <jpschewe@mtu.net>
* gramps/gui/filters/sidebar/_personsidebarfilter.py: Using regex in
the sidebar gives different result from previous gramps release. Fixes #11321
* gramps/plugins/webreport/basepage.py: Avoid application crash on
invalid user input If the user inputs an invalid date this change keeps the application
from crashing when such a date is found. The invalid date
information is reported to the user in the log. Fixes #12658.
2019-09-12 Jérôme Rapinat <romjerome@yahoo.fr>
2023-05-13 Nick Hall <nick-h@gramps-project.org>
* po/fr.po: Add missing French translation strings
* gramps/plugins/export/exportgedcom.py: Fix export where private
citations are excluded
2019-09-10 Gil da Costa <gdacosta@sommier-colas.fr>
2022-06-01 prculley <paulr2787@gmail.com>
* po/fr.po: Update French translation
* gramps/plugins/tool/eventcmp.py: Fix Event compare tool to display
enclosed places properly
2019-09-09 prculley <paulr2787@gmail.com>
2022-06-08 SNoiraud <Serge.Noiraud@free.fr>
* gramps/plugins/docgen/odfdoc.py: Fix odt output when db owner has
XML unfriendly chars ('&') Fixes #11327
* gramps/gui/viewmanager.py: Check that view exists before calling
post_create method Avoids 'NoneType' object has no attribute 'post_create' error. Fixes #12638
2019-09-11 John Bickmore <johnbickmore@users.noreply.github.com>
2022-06-15 Jingxuan He <LostBenjamin@users.noreply.github.com>
* README.md: Bump required Python version to 3.3 on Readme As mentioned on the release announcement
* gramps/plugins/webreport/webcal.py: Fix a wrong operator bug in
the web calendar report
https://gramps-project.org/introduction-WP/2019/08/gramps-5-1-0-released/
2022-10-08 Himanshu Gohel <1551217+hgohel@users.noreply.github.com>
2019-09-08 SNoiraud <Serge.Noiraud@free.fr>
* gramps/gen/plug/docgen/treedoc.py: Revert "Enclose tree report
image path and file name in braces" Fixes #12437 by reverting commit
75921ceaf40f3ced597d99c43794b98f81e49957 due to reports of
regression where processing of the generated TeX file fails due to
bad path specificiation for image files. Change was introduced in bug fix for #10495. Bugs #12437 and #12697 reported the regression and confirmed that
reverting the change fixes the regression.
* gramps/plugins/webreport/narrativeweb.py: Remove
reload_custom_filters to conform to PR894
2022-10-22 SNoiraud <Serge.Noiraud@free.fr>
2019-09-07 prculley <paulr2787@gmail.com>
* gramps/plugins/lib/maps/geography.py: Geography View: Fix number
of arguments in add_bookmark method add_bookmark() takes 2 positional arguments but 3 were given Fixes #12718
* gramps/cli/grampscli.py: Fix CLI crash when generating reports Fixes #11318, #11213
2022-12-08 GaryGriffin <genealogy@garygriffin.net>
2019-09-06 prculley <paulr2787@gmail.com>
* gramps/plugins/lib/libsubstkeyword.py: Use date-specific place in
report substitution variables Fix place title in graphical reports which have user-defined display
formats to use date-specific alternate name. This impacts Ancestor Tree, Descendant Tree, and Family Descendant
Tree. Fixes #12763.
* gramps/gui/views/listview.py: Fix Statusbar HandleError on merge
families Fixes #11320, #11294, #11279
2022-12-27 John Ralls <jralls@ceridwen.us>
2019-09-12 Avi Markovitz <avi.markovitz@gmail.com>
* gramps/grampsapp.py, gramps/gui/aboutdialog.py,
gramps/gui/logger/_errorreportassistant.py,
gramps/plugins/db/bsddb/bsddbtxn.py,
gramps/plugins/db/bsddb/cursor.py, gramps/plugins/db/bsddb/read.py,
gramps/plugins/db/bsddb/summary.py,
gramps/plugins/db/bsddb/test/cursor_test.py,
gramps/plugins/db/bsddb/undoredo.py,
gramps/plugins/db/bsddb/upgrade.py,
gramps/plugins/db/bsddb/write.py, gramps/plugins/gramplet/leak.py,
mac/patches/gramps-berkeleydb.patch: Try to import berkeleydb if
bsddb3 isn't found. berkelydb is usable for python >= 3.6 and required for python >=
3.10. See https://www.jcea.es/programacion/pybsddb.htm.
* po/he.po: Update Hebrew translation
2023-02-12 Vincent Smeets <Vincent.VSmeets@GMail.com>
2019-09-12 Matti Niemelä <matti.u.niemela@gmail.com>
* gramps/plugins/docgen/htmldoc.py: HtmlDoc: Create a unique
filename for cropped images
* po/fi.po: Fix translation in Finnish
2022-10-24 D.A.Lordemann <LordemannD@gmail.com>
2019-09-12 Matti Niemelä <matti.u.niemela@gmail.com>
* gramps/plugins/export/exportgedcom.py: Fix corrupted NOTE tag in
Gedcom export Remove Python2 code obsoleted by Python3, which was corrupting
GEDCOM export of Gramps Notes text that includes multi-byte utf-8
characters. Fixes #12709.
* po/fi.po: Update finnish translation
2022-09-27 SNoiraud <Serge.Noiraud@free.fr>
2019-09-11 vantu5z <vantu5z@mail.ru>
* gramps/gui/viewmanager.py: Fix IndexError that sometimes occurs
when changing view This occurs when restarting Gramps. Fixes #12636, #12304, #12429, #12623, #12695.
* po/ru.po: update Russian translation
2023-03-18 SNoiraud <Serge.Noiraud@free.fr>
2019-09-10 pehlm <par.ekholm@pekholm.org>
* gramps/gen/proxy/referencedbyselection.py,
gramps/gui/widgets/styledtexteditor.py,
gramps/plugins/lib/libhtmlbackend.py: Fix crash when invalid note
link Fixes #012854
* po/sv.po: Update Swedish translation
2023-04-17 SNoiraud <Serge.Noiraud@free.fr>
2019-09-10 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* gramps/gui/utils.py: Tags with color names don't work in pedigree
views Color tags work correctly in all views except in pedigree views.
These views modify colors: ... context.set_source_rgba(*(self.bordercolor[:3] + (0.4,))) ... and context.set_source_rgb(*self.bgcolor[:3]) As it works everywhere except in these views, I think it is a bug
even if we cannot enter color names in tags Fixes #012866
* po/de.po: Update German translation
2023-04-05 SNoiraud <Serge.Noiraud@free.fr>
2019-09-10 Nick Hall <nick-h@gramps-project.org>
* gramps/gui/views/treemodels/eventmodel.py: Crash when invalid
event date
* po/ar.po, po/bg.po, po/br.po, po/ca.po, po/cs.po, po/da.po,
po/de.po, po/el.po, po/en_GB.po, po/eo.po, po/es.po, po/fi.po,
po/fr.po, po/ga.po, po/he.po, po/hr.po, po/hu.po, po/is.po,
po/it.po, po/ja.po, po/lt.po, po/mk.po, po/nb.po, po/nl.po,
po/nn.po, po/pl.po, po/pt_BR.po, po/pt_PT.po, po/ro.po, po/ru.po,
po/sk.po, po/sl.po, po/sq.po, po/sr.po, po/sr_Latn.po, po/sv.po,
po/ta.po, po/tr.po, po/uk.po, po/vi.po, po/zh_CN.po, po/zh_HK.po,
po/zh_TW.po: Merge po files and new template
2023-04-04 SNoiraud <Serge.Noiraud@free.fr>
2019-09-10 Nick Hall <nick-h@gramps-project.org>
* gramps/gui/listmodel.py: ListModel: Only the first level is
managed When we use checkboxes in columns. The path was converted to int.
Why ? But when we have multiple level, the path format is "x:y" for
two levels, "x:y:z" for three levels, etc
* po/gramps.pot: Update translation template for new release
2023-03-07 Nick Hall <nick-h@gramps-project.org>
2019-08-27 Avi Markovitz <avi.markovitz@gmail.com>
* .github/workflows/gramps-ci.yml: Update Gramps CI workflow to run
on Ubuntu 20.04 Ubuntu 18.04 became fully unsupported on 1 Dec 2022.
* po/he.po: Update Hebrew translation
2022-12-27 John Ralls <jralls@ceridwen.us>
2019-07-11 Pedro Albuquerque <palbuquerque73@gmail.com>
* mac/gramps.modules: mac: Patch bsddb to use berkeleydb instead of
bsddb3 module.
* po/pt_PT.po: Update Portuguese (Europe) translation
2022-12-27 John Ralls <jralls@ceridwen.us>
2019-06-24 Milo Ivir <mail@milotype.de>
* mac/gramps.modules, mac/patches/berkeleydb-4.8-mutex.patch: Mac
build: Patch berkeleydb configure to work on Apple Silicon.
* po/hr.po: Update croatian translation - update with newest/current .pot file - translation is complete - corrections in wording and some missing accelerators
2022-12-26 John Ralls <jralls@ceridwen.us>
2019-09-02 prculley <paulr2787@gmail.com>
* mac/gramps.modules: [mac] Update Exiv2 download URL, moved to
github.
* gramps/gui/widgets/styledtexteditor.py: Fix missing tooltip
translations in the Note editor toolbar Fixes #11289
2022-12-24 John Ralls <jralls@ceridwen.us>
2019-09-01 SNoiraud <Serge.Noiraud@free.fr>
* mac/Info.plist, mac/gramps.bundle, mac/gramps.modules: Repackage
Gramps 5.1.5 with Gtk updates fixing use on macOS 13 Ventura.
* gramps/gen/filters/rules/place/_withinarea.py: Avoid bad
coordinates in the ref place
2022-03-08 Nick Hall <nick-h@gramps-project.org>
2019-08-28 SNoiraud <Serge.Noiraud@free.fr>
* gramps/plugins/lib/librecords.py: Fix spouse's name and underlined
call names in records Fixes #12391
* gramps/gen/filters/rules/place/_withinarea.py: Avoid alphabetic
characters in filter rules
2022-03-16 Nick Hall <nick-h@gramps-project.org>
2019-08-23 SNoiraud <Serge.Noiraud@free.fr>
* .github/workflows/gramps-ci.yml: Fix package installation failures
in CI
* gramps/gen/filters/rules/place/_withinarea.py: Could not convert
string to float by using withinarea filter rule + difference between sidebar filter
and filter rule + some pylint improvements
2019-12-09 Sam Manzi <manzi.sam@gmail.com>
2019-08-31 prculley <paulr2787@gmail.com>
* gramps/gen/utils/grampslocale.py: Update INCOMPLETE_TRANSLATIONS * Remove: he * Add: zh_HK, zh_TW
* gramps/gen/plug/docgen/graphdoc.py: Fix Graph outputs for multiple
page PDF Postscript Fixes #11305
2022-02-12 Ross Gammon <rossgammon@debian.org>
2019-08-31 prculley <paulr2787@gmail.com>
* debian/changelog, debian/copyright,
debian/patches/fix-probably_alive_test.patch, debian/patches/series:
Update Debian folder after 5.1.5 release
* gramps/gen/plug/_pluginreg.py, gramps/gui/managedwindow.py,
gramps/gui/plug/quick/_quickreports.py, gramps/gui/uimanager.py,
gramps/gui/viewmanager.py, gramps/gui/views/tags.py,
gramps/gui/widgets/grampletpane.py: Fix to make Gtk 'action names'
always valid Fixes #11291
2022-02-05 John Ralls <jralls@ceridwen.us>
2019-08-31 prculley <paulr2787@gmail.com>
* mac/Info.plist, mac/gramps.modules: Package Gramps 5.1.5 for
macOS.
* gramps/gui/uimanager.py, gramps/gui/views/tags.py: Fix missing
menus/buttons when operating in non-English languages Fixes #11292
2022-02-05 Nick Hall <nick-h@gramps-project.org>
2019-08-31 SNoiraud <Serge.Noiraud@free.fr>
* gramps/gui/widgets/validatedmaskedentry.py: Cursor position error
in lat and long fields Fixes #11310
2019-08-30 SNoiraud <Serge.Noiraud@free.fr>
* gramps/plugins/tool/removespaces.py: Avoid all characters looking
like a dash hyphen non breaking hyphen figure dash em dash horizontal bar Fixes #11308
2019-08-30 SNoiraud <Serge.Noiraud@free.fr>
* data/css/Web_Mainz.css: Narrative web: Mainz Style sheet weird
looking Fixes #11282
2019-09-02 SNoiraud <Serge.Noiraud@free.fr>
* gramps/plugins/view/relview.py: Set symbols for the active person
2019-08-28 SNoiraud <Serge.Noiraud@free.fr>
* gramps/plugins/view/relview.py: Set good symbols for marriage,
baptism, cremation and burial
2019-08-28 SNoiraud <Serge.Noiraud@free.fr>
* gramps/plugins/view/relview.py: Reduce the size of the sexuality
symbol in relview Fixes #11295
2019-08-28 prculley <paulr2787@gmail.com>
* gramps/gui/widgets/styledtexteditor.py: Fix exception when editing
Note with italics/bold etc. in non English Fixes #11284
2019-08-27 Nick Hall <nick-h@gramps-project.org>
* gramps/gui/views/pageview.py: Restore keybindings for gramplet
bars Resolves #11297.
2019-08-27 Nick Hall <nick-h@gramps-project.org>
* gramps/gui/plug/quick/_quickreports.py: Fix bug in web connection
menu launching incorrect web site Resolves #11280.
2019-08-26 SNoiraud <Serge.Noiraud@free.fr>
* gramps/gui/autocomp.py: Translation problem when creating event
filter If you create a filter with the rule name: "Events with a particular type" or "Events with <data>" The menu "Travel", "Academic"... are not
translated Fixes #11293
2019-08-26 SNoiraud <Serge.Noiraud@free.fr>
* gramps/gui/configure.py, gramps/gui/widgets/grampletbar.py: Error
when checking option to add Quit to Taskbar Fixes #11290
2019-08-25 SNoiraud <Serge.Noiraud@free.fr>
* gramps/plugins/webreport/narrativeweb.py,
gramps/plugins/webreport/person.py: Make the narratives notes
placement an option From 5.1 the narrative notes are placed just after the name, gender
and age at death. This follow the feature request #6772. Some
people want to have this placement an option to have the same
functionality as before Fixes #11283
2019-08-24 Ross Gammon <rossgammon@mail.dk>
* debian/changelog: Finalise Debian changelog for 5.1.0 release
2019-08-24 Ross Gammon <rossgammon@mail.dk>
* debian/control: Bump gtk+ version to 3.12 & add
gir1.2-geocodeglib-1.0 dependency
2019-08-24 Ross Gammon <rossgammon@mail.dk>
* debian/copyright: Update copyrights
2019-08-24 Ross Gammon <rossgammon@mail.dk>
* debian/changelog, debian/control: Merge last 5.0.2 debian release
information into 51 maintenance branch
2019-08-23 Sebastian Schubert <schubert.seb@gmail.com>
* README.md: Add optional fontconfig package to README.md
2019-08-23 Sebastian Schubert <schubert.seb@gmail.com>
* NEWS: Fix typo in NEWS
2019-08-30 Zdeněk Hataš <zdenek.hatas@gmail.com>
* po/cs.po: Update Czech translation
2019-08-29 Zdeněk Hataš <zdenek.hatas@gmail.com>
* po/cs.po: Update Czech translation
2019-08-25 Mirko Leonhaeuser <mirko@leonhaeuser.de>
* po/de.po: German translation updated
2019-08-24 John Ralls <jralls@ceridwen.us>
* mac/Info.plist, mac/gramps.modules: Release Gramps-5.1.0 on Mac.
2019-08-16 John Ralls <jralls@ceridwen.us>
* mac/release.entitlements.plist: An entitlements plist for
codesigning Gramps. Python is an interpreter and therefore needs to create executable
memory. Since it doesn't know how to sign that memory it requires
the allow-unsigned-executable-memory entitlement to run in a
hardened runtime. One must apply this entitlement to both Gramps.app
and Gramps.app/Contents/MacOS/dot when codesigning them.
2019-06-11 John Ralls <jralls@ceridwen.us>
* mac/gramps.modules: Fix graphviz and exiv2 download URLs.
2019-06-11 John Ralls <jralls@ceridwen.us>
* mac/gramps.modules: Update dependency versions and download paths.
2019-08-22 vantu5z <vantu5z@mail.ru>
* po/ru.po: update Russian translation
2019-08-22 pehlm <par.ekholm@pekholm.org>
* po/sv.po: Update Swedish translation with the new gramps.pot
2019-08-21 prculley <paulr2787@gmail.com>
* Bump to 5.1.1
* Bump to 5.1.6
+274
View File
@@ -1,3 +1,277 @@
2023-06-29
Version 5.1.6
* Update copyright date.
* Narrative web: problem with small pictures. Fixes #12884.
* Implement the "<CTRL>J" for the family view. Fixes #12882.
* Avoid application crash on invalid user input. If the user inputs an invalid
date this change keeps the application from crashing. The invalid date
information is reported to the user in the log. Fixes #12658.
* Fix export where private citations are excluded.
* Fix Event Compare tool to display enclosed places properly.
* Check that view exists before calling post_create method. Avoids 'NoneType'
object has no attribute 'post_create' error. Fixes #12638.
* Fix a wrong operator bug in the web calendar report.
* Revert "Enclose tree report image path and file name in braces" due to reports
of regression where processing of the generated TeX file fails due to bad path
specificiation for image files. Fixes #12437 and #12697.
* Geography View: Fix number of arguments in add_bookmark method. Fixes #12718.
* Use date-specific place in report substitution variables. Fix place title in
graphical reports which have user-defined display formats to use date-specific
alternate name. This impacts the Ancestor Tree, Descendant Tree, and Family
Descendant Tree reports. Fixes #12763.
* Try to import berkeleydb if bsddb3 isn't found. berkelydb is usable for
python >= 3.6 and required for python >= 3.10.
See https://www.jcea.es/programacion/pybsddb.htm.
* HtmlDoc: Create a unique filename for cropped images.
* Fix corrupted NOTE tag in Gedcom export. Remove Python2 code obsoleted by
Python3, which was corrupting Gedcom export of Gramps Notes text that includes
multi-byte utf-8 characters. Fixes #12709.
* Fix IndexError that sometimes occurs when changing view This occurs when
restarting Gramps. Fixes #12636, #12304, #12429, #12623, #12695.
* Fix crash when invalid note link. Fixes #12854.
* Fix tags with color names in pedigree views. Fixes #12866.
* Crash when invalid event date.
* ListModel: Fix multiple level paths when we use checkboxes in columns.
The path was previously converted to int.
* Update Gramps CI workflow to run on Ubuntu 20.04. Ubuntu 18.04 became fully
unsupported on 1 Dec 2022.
* Fix package installation failures in CI.
* Fix spouse's name and underlined call names in records. Fixes #12391.
* Update INCOMPLETE_TRANSLATIONS list. Remove: he, Add: zh_HK, zh_TW.
* Update Debian folder after 5.1.5 release.
* Mac:
* Patch bsddb to use berkeleydb instead of bsddb3 module.
* Patch berkeleydb configure to work on Apple Silicon.
* Update Exiv2 download URL, moved to github.
* Repackage Gramps 5.1.5 with Gtk updates fixing use on macOS 13 Ventura.
2022-02-05
Version 5.1.5
* Update translations: de, pl, sv, zh_CN.
* Remove Travis CI configuration.
* Fix badges in README file.
* Update copyright date.
* Strange behavior for the scrollbar in the bottombar. Fixes #12438.
* Fix place object element order in DTD and RNG schemas. Element placeobj
content does not follow the DTD and RNG, expecting (ptitle? , pname+).
Fixes #12500.
* Solve InterpolationSyntaxError if "%" in a string. The grampletpane module
saves data in a config file for all the gramplets added in the dashboard. The
python configparser module doesn't like if we have a "%" character in a string.
Fixes #12423.
* '<' not supported between 2 instances of IndexMark. Fixes #12467.
* Remove debug statements in unit tests.
* Fix negative Span when dates are not Gregorian. Fixes #12525.
* Incorrect grouping if no ma/patronymic surname.
* Group As override is ignored for ma/patronymic surnames. Fixes #12395.
See: https://gramps.discourse.group/t/patronymic-and-matronymic-name/1684/5
* Add comments for the lat-lon field of editplace.
* Place editor, lat and long text are swapped. Fixes #12374.
* Fix Statusbar progress being shown before use. Fixes #12373.
* Fix exception when removing a group name in Sqlite db when group name is
already missing. Fixes #12367.
* Fix error when trying to close name editor during long name group mapping
view rebuild. Fixes #12328.
* OsmGpsMap-CRITICAL: Map source setup called twice Fixes #12352.
* Fix probably alive function unit test.
* Use GitHub Actions to run continuous integration checks.
* Mac:
* Update Exiv2, PYExiv2, and json-glib.
* Repackage Gramps.app to work with macOS 12.
* Add entitlements path to bundle-file so Gramps.app is signed with it.
* Add python-fontconfig to the macOS build. Needed to enable using
genealogical symbols.
* Inlude fontconfig's etc/fonts in macOS app bundle. Graphviz now uses
fontconfig to find its fonts. Fixes #12370.
2021-07-26
Version 5.1.4
* Update translations: cs, de, es, fi, fr, hu, nl, pt_BR, ru, sv, zh_CN.
* Update copyright date.
* Fix probably alive if death without date.
* Place editor, copy and paste of lat and long text no longer
auto-populating latitude and longitude fields.
* Fix for crash when changing views if part of toolbar is not shown because
of a small screen when changing views.
* Fix bottombar always showing after restart, even when not wanted.
* Always use filtered collation names. Store the Sqlite3 collations in the
__collations array to short-circuit re-creation.
* Fix issue with German relation calculator fixed issue when more than 24
generations between the two people.
* Add file logging for macOS. When Gramps is launched from macOS's
LaunchServices it doesn't have a sys.stderr attached so the default stream
logger goes to /dev/null. Use a FileHandler in tht case, writing the log
to $TMPDIR/gramps-pid.log. This will help particularly in analyzing
crashes where python shuts down as there's no crash report in that case.
* Fix libplaceview to avoid exception when mapservice is no longer present.
* Fix References Gramplet for inadequate updates when other objects change.
* Fix geofamily crash if a family has no father.
* Home Person setting does not convey in a merge.
* Fix CSV export of view to only put single CR character.
* Add Media filter rule 'HasMedia' to list of media rules for editor.
* Need to set locale.textdomain under linux. _build_popup_ui() ignores
translated strings without locale.textdomain set.
* Change category of 'MatchesEventFilter'.
* Fix issue where separator between top and bottom bar of View creeps up.
* Fix Locations Gramplet (Enclosed by) to properly display certain nested
places when the smallest place has undated enclosure and larger places are
dated.
* Fix Family Tree Manager drop error on Windows.
* Fix exportvcalendar error is "is not" with a literal (Python 3.8 issue)
* Handle not found when copying source from the citation tree.
* Fix call to 'file' function, which doesn't exist in Python3.
* Fix write_lock_file exception when USERNAME is missing.
* Fix EditPlace so Tab key doesn't get stuck on Private icon.
* Fix Tag report for places that have a hierarchy.
* Fix exception when cancelling out of a db upgrade in GUI.
* Icon file changes:
* Install 128x128 and 256x256 application icons.
* Install MIME type icons into the hicolor theme.
* Remove gnome-mime- prefix from icon filenames.
* Install application icons into correct directories.
* Fix error in Birthday and Anniversary report. Fixes an error triggered
when the first person_handle in the list has a death event, but no birth
event and does not have family relationships. These conditions lead to
the local variable short_name not being declared before it comes time to
process death events.
* Fix graphdoc to properly escape characters in ids for Graphviz.
* Replace inspect.stack() with inspect.currentframe().
Works around https://bugs.python.org/issue12920 which causes every
call to inspect.trace() to fail because __main__ is always the
starting point.
* Fix crash sorting on columns in Selectors with TreeModels.
* Fix progress bar freeze due to changes in Gtk.
* Fix svgdrawdoc for text containing XML invalid characters.
* Mac:
* Update PyICU to 2.7.2 in macOS build.
* Update dependencies. Includes moving berkeleydb and pybsddb over from
gtk-osx.
* Further changes for bundling with Python 3.8.
* Set __file__ if gramps_launcher.py is run as __main__.
* Add geocode-glib to build.
2020-08-11
Version 5.1.3
* Update ca, de, fi, fr, ja, pl, ru, sl, sv, uk, zh_CN translation
* Events View: "Main Participants" column does not show the full list
of participants when expanded.
* mac/gramps.modules: Use current Gtk release instead of Gtk-3.14.
* mac/gramps.modules: Upgrade pymodules for Python 3.8 compatibility.
* Fix XML export when 'Group-as" name contains XML invalid chars
* Fix NarWeb: Province place-type is not displayed
* Fix ManagedWindow so that new windows don't appear offscreen when
system 'screen' sizes change in part time multi-monitor setups.
* Fix menus when db fails to open due to upgrade/downgrade etc.
* Fix issue with attach source tool, results panel
* Fix GEDCOM export; don't include ADDR when address is missing
* EditPlace: Allow Coordinates containing a comma instead of a period
* NarrativeWeb:
* Should show patronymic in individuals.
In the individuals and in surnames pages, we should show the
complete name like defined in the display tab from the narrative web
configuration.
* Fix Narrated Website Google Maps Output JS Warning SensorNotRequired
* Fix incorrect link type for osm css files
* Fix image size limit doesn't match tooltip
* Update all translations for changes from 'Default' to 'Home' Person
* Change GUI references to 'Home Person' instead of 'Default Person'
* Use event attribute types in the event reference editor.
In the event reference editor, custom event attribute types should
be used rather than the default person attribute types.
* Fix Verify tool bug caused by bad change in GObject introspection
* Fix RemoveUnused tool for crash caused by Gtk introspection bug
* Fix import test for change cause by previous change which was:
Fix GEDCOM import for bad source title when sources precede references.
* Fix GEDCOM import for bad source title when sources precede references.
* Fix some reports for CLI where warning message about Value not found
* Fix Genealogy Tree reports for crash in CLI
* Add uistate to tree views filter initialization
* Fix some Python syntax errors that appear in v3.8.x
* Suppress age = 0 days in events list. If the reference event date is equal
to the event date, don't show the age except if the date is estimated,
calculated, etc.
* Fix Dashboard Gramplets to update during db close when not shown
* Fix Windows GUI mode startup for crash with some languages
* Fix dbapi to support "Abandon Changes & Quit" feature
* Fix GrampsType for comparison bug with empty string as one value
* Fix Date Display so that it uses LC_TIME if defined
* Fix StyledText so serialize will match for style list order changes
* Try to fix exceptions on ManagedWindow close
* Fix Mac SQLite3 locale bug when locale contains non-ascii characters
* Fix issue when Person has Same date of birth and death; gives an error.
* Geography: add a popup for a bad tiles path
* Fix GEDCOM export of estimated/calculated dates with modifers
* Bump to v5.1.3
2020-01-14
Version 5.1.2
* Narweb: Private notes for home, intro and contact. If the notes are private,
we can't use them in these pages.
* Referenced regions problems. When image width > 800, the referenced
regions are incorrectly placed
* Ancestor's tree display looks weird Solves the following:
- Person boxes overlap
- Some person boxes partially visible or hidden
* some cleanup in ancestortree.css
* ancestor tree and long names.
* Adapt ancestor tree css file for all themes
* dates not localised in place pages
* Mainz problem with short text in one note, Issue occurs on the homepage
and introduction page.
* bad event links on media pages
* Navweb: Don't use media regions in some case:
- If we don't show families
- If we don't show events
- Don't show the media regions for a thumbnail
* WEBCAL: home link translated to lowercase
* Wrong web calendar title on home page. This solves the possibility to
have ">", "<" in the title
* Update LDS Temple list
* Make GuiDestinationOption Folder Icon start in users directory
* Allow import file filter to accept case insensitive extensions
* Fix db to warn/prevent opening newer schema versions
* Fix Progen import dialog and progress meter for correct parent window
* Fix Progen import to correctly handle AKA surnames
* Fix ExportPkg so errors are not lost, and has progress bar for media
* Fix Export Assistant so error messages get correct parent window
* Fix GEDCOM import when family is missing; import created a missing note
* Fix Dashboard for adding Gramplet crash in Slovenian
* Update cs, ca, fr, uk, he, fi, hr, de, sv translation
* Update date parsing for czech locale
* Fix Spanish translation for dates
* fix private proxy tagref support. Add missing code for event, repository,
source, citation and place
* [Tree doc Tex] fix "-" char on place name "-" can lead to confusion,
generating text out of the box with PDF file format
* [Tree doc Tex] fix typo on custom size
* Fix duplicated "døde døde" Norwegion Translation for libnarrate
* Fix up Event Editors Place display for bidi text with Gramps ID
* Fix issues with RTL languages and LAT/LONG
* Fix display of GPS coordinates in Places view for RTL languages
* Fix place editor lat/long entry for RTL languages
* Fix GEDCOM export to avoid translated GrampsType strings
* Allow Tools with Notbook tabs to expand to fill the window
* Limit Age Stats gramplet settings to appropriate values.
* Max ages should be divisible by 5 to avoid out of range errors.
* The chart width should be greater than 45 to look right and
avoid division by zero errors.
* Fix the Preferences 'Age display precision' value getting lost
* Fix Window family tree title for non-ASCII chars on Windows
* Fix Preferences/Genealogical Symbols when only one font is present
* Fix various Entry fields so Undo/Redo works
* Fix tag colors on PedigreeView
* Fix Gramps -v error when Gtk is not present
* Fix for PedigreeView not reflecting changes to birthday or death
* ODF DOC - Fix improper escaping in odt output for TOC/Bookmark etc.
* Fix CLI parser to accept negative integers as valid
* Fix Descendant Tree report for HandleError when no parents on family
* Fix Reorder ID tool so subsequent db additions used next possible ID
* Upgrade export VCalendar to v2.0, so can export all utf8 characters
* Fix Preferences so <ctrl>PageUp/PageDn doesn't stick on Dates tab
* Graphs: Escape for name, dates and places in graph reports with XML
illegal characters
* Fix 'Go' menu direct object selection, goes to wrong place
2019-09-14
Version 5.1.1
* Update translations: cs, de, fi, fr, he, hr, pt_PT, ru, sv
+6 -3
View File
@@ -1,5 +1,8 @@
The Gramps Project ( https://gramps-project.org ) [![Build Status](https://travis-ci.org/gramps-project/gramps.svg?branch=master)](https://travis-ci.org/gramps-project/gramps)[![codecov.io](https://codecov.io/github/gramps-project/gramps/coverage.svg?branch=master)](https://codecov.io/github/gramps-project/gramps?branch=master)
The Gramps Project ( https://gramps-project.org )
===================
[![GitHub CI](https://github.com/gramps-project/gramps/actions/workflows/gramps-ci.yml/badge.svg?event=push&branch=maintenance/gramps51)](https://github.com/gramps-project/gramps/actions/workflows/gramps-ci.yml?query=branch%3Amaintenance%2Fgramps51)
[![codecov.io](https://codecov.io/github/gramps-project/gramps/coverage.svg?branch=maintenance/gramps51)](https://app.codecov.io/gh/gramps-project/gramps/branch/maintenance%2Fgramps51)
We strive to produce a genealogy program that is both intuitive for hobbyists and feature-complete for professional genealogists.
Please read the **COPYING** file first.
@@ -63,7 +66,7 @@ The following packages are **STRONGLY RECOMMENDED** to be installed:
sorting is done through built-in libraries. PyICU is
fairly widely available through the package managers of
distributions. See http://pyicu.osafoundation.org/
(These are Python bindings for the ICU package.
(These are Python bindings for the ICU package.
https://pypi.python.org/pypi/PyICU/)
* **Ghostscript**
@@ -72,7 +75,7 @@ The following packages are **STRONGLY RECOMMENDED** to be installed:
The following packages are optional:
------------------------------------
* **gtkspell**
* **gtkspell**
Enable spell checking in the notes. Gtkspell depends on
enchant. A version of gtkspell with gobject introspection

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 40 KiB

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 40 KiB

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 52 KiB

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 40 KiB

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 40 KiB

+1 -2
View File
@@ -473,11 +473,10 @@ table.eventlist tbody tr td.ColumnSources {
margin: 0px auto;
display: block;
border: solid 1px #999;
max-width: 800px;
height: auto;
}
@media only screen and (max-width: 1080px) {
@media only screen and (max-width: 1600px) {
#GalleryDisplay img {
max-width: 100%;
}
+1 -2
View File
@@ -838,11 +838,10 @@ div#EventDetail table.eventlist tbody tr td.ColumnDate {
}
#GalleryDisplay img {
margin: 0 auto;
max-width: 800px;
height: auto;
}
@media only screen and (max-width: 1080px) {
@media only screen and (max-width: 1600px) {
#GalleryDisplay img {
max-width: 100%;
}
+1 -2
View File
@@ -524,11 +524,10 @@ table.eventlist tbody tr td.ColumnSources {
margin: 0px auto;
display: block;
border: solid 1px #7C8F7C;
max-width: 800px;
height: auto;
}
@media only screen and (max-width: 1080px) {
@media only screen and (max-width: 1600px) {
#GalleryDisplay img {
max-width: 100%;
}
+2 -2
View File
@@ -512,15 +512,15 @@ table.eventlist tbody tr td.ColumnSources {
margin: 0px auto;
display: block;
border: solid 1px #669;
max-width: 800px;
height: auto;
}
@media only screen and (max-width: 1080px) {
@media only screen and (max-width: 1600px) {
#GalleryDisplay img {
max-width: 100%;
}
}
#GalleryDetail h3 {
text-align: center;
}
+1 -2
View File
@@ -512,11 +512,10 @@ table.eventlist tbody tr td.ColumnSources {
margin: 0px auto;
display: block;
border: solid 1px #EA8414;
max-width: 800px;
height: auto;
}
@media only screen and (max-width: 1080px) {
@media only screen and (max-width: 1600px) {
#GalleryDisplay img {
max-width: 100%;
}
+1 -2
View File
@@ -513,11 +513,10 @@ table.eventlist tbody tr td.ColumnSources {
margin: 0px auto;
display: block;
border: solid 1px #7CA3DD;
max-width: 800px;
height: auto;
}
@media only screen and (max-width: 1080px) {
@media only screen and (max-width: 1600px) {
#GalleryDisplay img {
max-width: 100%;
}
+2 -2
View File
@@ -82,6 +82,7 @@ body > div {
}
.content {
padding: 1.5em 1.5em;
overflow: auto;
background: url(../images/Web_Mainz_Mid.png) #FFF2C6 repeat;
}
#ThumbnailPreview div.snapshot {
@@ -467,11 +468,10 @@ table.eventlist tbody tr td.ColumnSources {
margin: 0px auto;
display:block;
border: solid 1px #7D5925;
max-width: 800px;
height: auto;
}
@media only screen and (max-width: 1080px) {
@media only screen and (max-width: 1600px) {
#GalleryDisplay img {
max-width: 100%;
}
+1 -2
View File
@@ -747,11 +747,10 @@ table.eventlist tbody tr td.ColumnSources {
}
#GalleryDisplay img {
margin:0 auto;
max-width: 800px;
height: auto;
}
@media only screen and (max-width: 1080px) {
@media only screen and (max-width: 1600px) {
#GalleryDisplay img {
max-width: 100%;
}
+66 -41
View File
@@ -9,7 +9,7 @@
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
@@ -20,10 +20,10 @@
#
# $Id: $
#
**************************************************************************************************
*******************************************************************************
GRAMPS Cascading Style Sheet
Style Name: Combined Ancestor Tree Style Sheet
***************************************************************************************************
*******************************************************************************
#
===== Ancestor Graph Color Scheme =====
Males #BCEAF6
@@ -33,10 +33,8 @@ Unknown #000
===== Web Graphics =====
Males Web_Gender_Male.png
Females Web_Gender_Female.png
# ------------------------------------------------------------------------------------------------- */
/* Subsections : Ancestors Tree
----------------------------------------------------- */
# -------------------------------------------------------------------------- #
/* Subsections : Ancestors Tree -------------------------------------------- */
#tree {
page-break-before:always;
margin:0;
@@ -52,8 +50,8 @@ Females Web_Gender_Female.png
}
#treeContainer div.boxbg {
position:absolute;
margin:0;
padding:0;
margin:0px;
padding:0px;
background:none;
}
#treeContainer div.boxbg a,
@@ -61,41 +59,43 @@ Females Web_Gender_Female.png
position:relative;
z-index:10;
display:block;
font:normal .7em/1.4em sans-serif;
font:normal 1.1em/1.4em sans-serif;
text-align:center;
word-break:break-word;
word-wrap:break-word;
text-decoration:none;
color: #00029D;
width:118px;
padding:5px 20px 7px 20px;
width:280px;
min-height: 70px;
margin-left:16px;
background-color: #FFF;
border: solid 1px #000;
border: solid 2px #000;
border-radius: 10px;
}
#treeContainer div.boxbg a.noThumb,
#treeContainer div.AncCol3 a,
#treeContainer div.AncCol4 a,
#treeContainer div.AncCol3 span.unlinked,
#treeContainer div.AncCol4 a,
#treeContainer div.AncCol4 span.unlinked {
margin-top:10px;
float: right;
}
#treeContainer div.boxbg a:hover {
position:relative;
z-index:999;
font-size:1em;
font-size:1.3em;
word-break:break-word;
word-wrap:break-word;
text-decoration:none;
color: #00029D;
width:190px;
width:400px;
margin-left:-20px;
padding:10px 25px 12px 25px;
border: solid 2px #000;
padding: 0px 0px 0px 40px;
}
#treeContainer div.boxbg a:hover,
#treeContainer div.AncCol3 a:hover,
#treeContainer div.boxbg a:hover,
#treeContainer div.AncCol4 a:hover {
margin-top:-44px;
}
#treeContainer div.boxbg a.noThumb:hover {
margin-top:0;
padding-left: 10px;
}
#treeContainer div.AncCol0 a:hover {
margin-left:12px;
@@ -105,48 +105,73 @@ Females Web_Gender_Female.png
}
#treeContainer div.boxbg span.thumbnail {
display:block;
max-width:80px;
max-height:65px;
margin:0 auto;
padding:4px 0;
position: absolute;
max-width:85px;
max-height:75px;
left: 3px;
top: 3px;
}
#treeContainer div.boxbg span.thumbnail img {
max-width:80px;
max-height:65px;
margin:0 auto;
#treeContainer div.boxbg a.thumbnail table td.img {
padding-right: 5px;
}
#treeContainer div.boxbg a:hover span.thumbnail, #treeContainer div.boxbg a:hover span.thumbnail img {
height:80px;
#treeContainer div.boxbg a.thumbnail:hover table td.img {
padding-right: 9px;
}
#treeContainer div.AncCol3 span.thumbnail, #treeContainer div.AncCol4 span.thumbnail {
#treeContainer div.boxbg a.thumbnail table td.name {
padding-top:3px;
padding-left: 2px;
padding-right: 23px;
width: 90%;
}
#treeContainer div.boxbg a.thumbnail img {
margin-left:0px;
padding-left: 0px;
border-radius: 5px;
}
#treeContainer div.boxbg a.thumbnail:hover img {
max-height:90%;
margin-left:5px;
position: absolute;
left: 0px;
top: 4px;
border-radius: 5px;
}
#treeContainer div.boxbg table td:first-child, table th:first-child {
padding-left: 5px;
padding-top: 5px;
}
#IndividualDetail div.subsection table tr td:first-child {
padding-left: 5px;
padding-top: 5px;
}
#treeContainer #treeContainer div.AncCol4 span.thumbnail {
display:none;
}
#treeContainer div.boxbg a:hover span.thumbnail {
display:block;
}
#treeContainer div.boxbg span.fullname {
display: none;
}
#treeContainer div.boxbg span.shortname {
display: inline;
}
#treeContainer div.boxbg a:hover span.fullname {
display: inline;
}
#treeContainer div.boxbg a:hover span.shortname {
display: none;
}
#treeContainer div.boxbg a:hover {
float: right;
margin-top: 10px;
border: solid 4px #000;
}
#treeContainer div.male a,
#treeContainer div.male span.unlinked {
background:url(../images/Web_Gender_Male.png) #BCEAF6 no-repeat top right;
}
#treeContainer div.female a,
#treeContainer div.female a,
#treeContainer div.female span.unlinked {
background:url(../images/Web_Gender_Female.png) #FFC0CB no-repeat top right;
}
+1 -1
View File
@@ -251,7 +251,7 @@ PLACES
<!ELEMENT places (placeobj)*>
<!ELEMENT placeobj (ptitle?, pname+, code?, coord?, placeref*, location*,
<!ELEMENT placeobj (ptitle?, code?, pname+, coord?, placeref*, location*,
objref*, url*, noteref*, citationref*, tagref*)>
<!ATTLIST placeobj
id CDATA #IMPLIED
+1 -1
View File
@@ -453,10 +453,10 @@
<ref name="primary-object"/>
<attribute name="type"><text/></attribute>
<optional><element name="ptitle"><text/></element></optional>
<optional><element name="code"><text/></element></optional>
<oneOrMore><element name="pname">
<ref name="placename-content"/>
</element></oneOrMore>
<optional><element name="code"><text/></element></optional>
<optional><element name="coord">
<attribute name="long"><text/></attribute>
<attribute name="lat"><text/></attribute>
+82 -14
View File
@@ -20,6 +20,9 @@
<code>SAMOA</code>
<code>AP</code>
</temple>
<temple name="Arequipa Peru Temple">
<code>AREQU</code>
</temple>
<temple name="Asuncion, Paraguay">
<code>ASUNC</code>
</temple>
@@ -27,6 +30,9 @@
<code>ATLAN</code>
<code>AT</code>
</temple>
<temple name="Barranquilla Colombia Temple">
<code>BARRA</code>
</temple>
<temple name="Baton Rouge, Louisiana">
<code>BROUG</code>
</temple>
@@ -57,6 +63,9 @@
<temple name="Bountiful, Utah">
<code>BOUNT</code>
</temple>
<temple name="Brigham City Utah Temple">
<code>BRIGH</code>
</temple>
<temple name="Brisbane, Australia">
<code>BRISB</code>
</temple>
@@ -79,8 +88,12 @@
<code>ALBR</code>
</temple>
<temple name="Cebu, Philippines">
<code>CEBUP</code>
<code>CEBU</code>
</temple>
<temple name="Cedar City Utah">
<code>CEDAR</code>
</temple>
<temple name="Chicago, Illinois">
<code>CHICA</code>
<code>CH</code>
@@ -94,15 +107,18 @@
<temple name="Colonia Juarez, Chihuahua, Mexico">
<code>COLJU</code>
</temple>
<temple name="Columbia, South Carolina">
<code>COLSC</code>
</temple>
<temple name="Columbia River, Washington">
<code>CRIVE</code>
</temple>
<temple name="Columbia, South Carolina">
<code>COLSC</code>
</temple>
<temple name="Columbus, Ohio">
<code>COLUM</code>
</temple>
<temple name="Concepción Chile">
<code>CONCE</code>
</temple>
<temple name="Copenhagen, Denmark">
<code>COPEN</code>
</temple>
@@ -129,6 +145,19 @@
<temple name="Edmonton, Alberta">
<code>EDMON</code>
</temple>
<temple name="Endowment House">
<code>EHOUS</code>
<code>EH</code>
</temple>
<temple name="Fort Collins Colorado">
<code>FORTC</code>
</temple>
<temple name="Fort Lauderdale Florida">
<code>FORTL</code>
</temple>
<temple name="Fortaleza Brazil">
<code>FORTA</code>
</temple>
<temple name="Frankfurt, Germany">
<code>FRANK</code>
<code>FR</code>
@@ -191,6 +220,9 @@
<code>IFALL</code>
<code>IF</code>
</temple>
<temple name="Indianapolis Indiana">
<code>INDIA</code>
</temple>
<temple name="Johannesburg, South Africa">
<code>JOHAN</code>
<code>JO</code>
@@ -202,10 +234,14 @@
<temple name="Kansas City, Missouri">
<code>KANSA</code>
</temple>
<temple name="Kinshasa Democratic Republic of the Congo">
<code>KINSH</code>
</temple>
<temple name="Kona, Hawaii">
<code>KONA</code>
</temple>
<temple name="Kiev, Ukraine">
<code>KYIV</code>
<code>KIEV</code>
</temple>
<temple name="Kirtland, Ohio">
@@ -223,6 +259,9 @@
<code>LIMA</code>
<code>LI</code>
</temple>
<temple name="Lisbon Portugal">
<code>LISBO</code>
</temple>
<temple name="Logan, Utah">
<code>LOGAN</code>
<code>LG</code>
@@ -270,6 +309,9 @@
<temple name="Merida, Mexico">
<code>MERID</code>
</temple>
<temple name="Meridian Idaho">
<code>MIDAH</code>
</temple>
<temple name="Mesa, Arizona">
<code>ARIZO</code>
<code>AZ</code>
@@ -325,6 +367,7 @@
<code>OKLAH</code>
</temple>
<temple name="Oquirrh Mountain, Utah">
<code>OQUIR</code>
<code>OMOUN</code>
</temple>
<temple name="Orlando, Florida">
@@ -340,6 +383,12 @@
<code>PAPEE</code>
<code>TA</code>
</temple>
<temple name="Paris France">
<code>PARIS</code>
</temple>
<temple name="Payson Utah">
<code>PAYSO</code>
</temple>
<temple name="Perth, Australia">
<code>PERTH</code>
</temple>
@@ -349,6 +398,9 @@
<temple name="Phoenix, Arizona">
<code>PHOEN</code>
</temple>
<temple name="Port-au-Prince Haiti">
<code>PORTA</code>
</temple>
<temple name="Portland, Oregon">
<code>PORTL</code>
<code>PT</code>
@@ -359,6 +411,9 @@
<temple name="Preston, England">
<code>PREST</code>
</temple>
<temple name="Provo City Center, Utah">
<code>PROCC</code>
</temple>
<temple name="Provo, Utah">
<code>PROVO</code>
<code>PV</code>
@@ -385,6 +440,7 @@
<code>REXBU</code>
</temple>
<temple name="Rome, Italy">
<code>ROMEI</code>
<code>ROME</code>
</temple>
<temple name="Sacramento, California">
@@ -394,12 +450,6 @@
<code>SGEOR</code>
<code>SG</code>
</temple>
<temple name="St. Louis, Missouri">
<code>SLOUI</code>
</temple>
<temple name="St. Paul, Minnesota">
<code>SPMIN</code>
</temple>
<temple name="Salt Lake City, Utah">
<code>SLAKE</code>
<code>SL</code>
@@ -415,6 +465,7 @@
<code>SJOSE</code>
</temple>
<temple name="San Salvador, El Salvador">
<code>SANSA</code>
<code>SSALV</code>
</temple>
<temple name="Santiago, Chile">
@@ -428,6 +479,9 @@
<code>SPAUL</code>
<code>SP</code>
</temple>
<temple name="Sapporo Japan">
<code>SAPPO</code>
</temple>
<temple name="Seattle, Washington">
<code>SEATT</code>
<code>SE</code>
@@ -442,6 +496,15 @@
<temple name="Spokane, Washington">
<code>SPOKA</code>
</temple>
<temple name="St. Louis, Missouri">
<code>SLOUI</code>
</temple>
<temple name="St. Paul, Minnesota">
<code>SPMIN</code>
</temple>
<temple name="Star Valley Wyoming">
<code>STARV</code>
</temple>
<temple name="Stockholm, Sweden">
<code>STOCK</code>
<code>ST</code>
@@ -463,9 +526,15 @@
<temple name="Tegucigalpa, Honduras">
<code>TEGUC</code>
</temple>
<temple name="The Gila Valley Arizona">
<code>GILAV</code>
</temple>
<temple name="The Hague, Netherlands">
<code>HAGUE</code>
</temple>
<temple name="Tijuana Mexico">
<code>TIJUA</code>
</temple>
<temple name="Tokyo, Japan">
<code>TOKYO</code>
<code>TK</code>
@@ -474,16 +543,19 @@
<code>TORON</code>
<code>TORNO</code>
<code>TR</code>
</temple>
<temple name="Trujillo, Peru">
<code>TRUJI</code>
</temple>
<temple name="Tucson Arizona">
<code>TUCSO</code>
</temple>
<temple name="Tuxtla Gutierrez, Mexico">
<code>TGUTI</code>
</temple>
<temple name="Twin Falls, Idaho">
<code>TFALL</code>
<code>TWINF</code>
<code>TFALL</code>
</temple>
<temple name="Vancouver, British Columbia">
<code>VANCO</code>
@@ -505,10 +577,6 @@
<code>WINTE</code>
<code>WQUAR</code>
</temple>
<temple name="Endowment House">
<code>EHOUS</code>
<code>EH</code>
</temple>
<temple name="President's Office">
<code>POFFI</code>
<code>PO</code>
+14 -3
View File
@@ -9,6 +9,12 @@ beg
- h Hans_Peter.8 17/4/1904 #bp Rønne,_Bornholm,_Denmark 29/1/1977 #dp San_Francisco,_San_Francisco_Co.,_CA
end
notes Hansdotter Anna.1
beg
******************************************************************890123456789
******************************************************************89 123456789
end notes
notes Smith Hjalmar.5
beg
BIOGRAPHY
@@ -61,7 +67,7 @@ Some Bold Unicode Characters: &#2294;&#508;&#1024;&#1580;&#12228;&#13405;&#15691
Some Italic Unicode Characters: &#2294;&#508;&#1024;&#1580;&#12228;&#13405;&#15691;&#22299;&#22665;&#24181;&#32863;&#32870;&#65865;&#128694;&#128712;
end notes
fam Smith Gus.6 +~1920 Michaels Evelyn.25 ~1897
fam Smith Gus.6 +~1920 Michaels Evelyn.25 ~1897 0
fam Smith Hjalmar.5 +31/10/1927 #mp Reno,_Washoe_Co.,_NV Ohman Marjorie.26 3/6/1903 #bp Denver,_Denver_Co.,_CO,_Denver_Co.,_Colorado,_USA 22/6/1980 #dp Reno,_Washoe_Co.,_NV
beg
@@ -98,13 +104,18 @@ beg
- h Martin.17 1794..1796 #bp Tommarp,_Kristianstad_Län,_Sweden #dp Sweden
end
fam Willard Edwin.42 ~1886 +~1910 Smith Kirsti_Marie.2
fam Willard Edwin.42 ~1886 0 +~1910 Smith Kirsti_Marie.2
fam Smith Magnes.38 +24/8/1884 #mp Rønne,_Bornholm,_Denmark Streiffert Anna.43 23/9/1860 #bp Hoya/Jona/Hoia,_Sweden 2/2/1927 #dp Rønne,_Bornholm,_Denmark
fam Tester The.14 + Tester Mrs.44 0
beg
- h Tom.45 0
- h Tom.45 Von_Tester_y_tested 0
- Fake.46 von_Person 1954 #bp Fremont,_Alameda_Co.,_CA
- f Mary.47 0
- f Martha.48 0
- h John.49 0
- h Mark.50 0
end
notes Tester Mrs.44
+315 -655
View File
File diff suppressed because it is too large Load Diff
+52 -47
View File
@@ -1,47 +1,52 @@
Anna Hansdotter;;;;;2/10/1864-29/9/1945
Keith Lloyd Smith;Lloyd Smith;Janis Green;;;11/8/1966
Hans Peter Smith;Gustaf Smith;Anna Hansdotter;;;17/4/1904-29/1/1977
Hanna Smith;Martin Smith0;Elna Jefferson;;;29/1/1821
Herman Julius Nielsen;;;;;31/8/1889-1945
Evelyn Michaels;;;;;1897
Marjorie Lee Smith;Hjalmar Smith0;Marjorie Ohman;;;4/11/1934
Gus Smith;Gustaf Smith;Anna Hansdotter;;;11/9/1897-21/10/1963
Jennifer Anderson;;;;;5/11/1907-29/5/1985
Lillie Harriet Jones;;;;;2/5/1910-26/6/1990
John Hjalmar Smith;Hjalmar Smith0;Marjorie Ohman;;;30/1/1932
Eric Lloyd Smith;Lloyd Smith;Janis Green;;;28/8/1963
Amber Marie Smith;Edwin Smith;Janice Adams;;;12/4/1998
Carl Emil Smith;Gustaf Smith;Anna Hansdotter;;;20/12/1899-28/1/1959
Hjalmar Smith;Gustaf Smith;Anna Hansdotter;;;31/1/1893-25/9/1894
Martin Smith;Martin Smith0;Elna Jefferson;;;19/11/1830-1899
Astrid Shermanna Augusta Smith;Gustaf Smith;Anna Hansdotter;;;31/1/1889-21/12/1963
Gustaf Smith, Sr.;Martin Smith;Kerstina Hansdotter;;;28/11/1862-23/7/1930
Marta Ericsdotter;;;;;1775
Kirsti Marie Smith;Gustaf Smith;Anna Hansdotter;;;15/12/1886-18/7/1966
Ingeman Smith;;;;;1770
Anna Streiffert;;;;;23/9/1860-2/2/1927
Craig Peter Smith;Lloyd Smith;Janis Green;;;1966
Magnes Smith;Martin Smith;Kerstina Hansdotter;;;6/10/1858-20/2/1910
Janice Ann Adams;;;;;26/8/1965
Marjorie Ohman;;;;;3/6/1903-22/6/1980
Darcy Horne;;;;;2/7/1966
Alice Paula Perkins;;;;;22/11/1933
Lars Peter Smith;Eric Smith;Darcy Horne;;;16/9/1991
Ingeman Smith0;Martin Smith0;Elna Jefferson;;;29/1/1826
Lloyd Smith;Hans Smith;Lillie Jones;;;13/3/1935
Elna Jefferson;;;;;14/9/1800-
Edwin Michael Smith;John Smith;Alice Perkins;;;24/5/1961
Kerstina Hansdotter;;;;;29/11/1832-1908
Martin Smith0;Ingeman Smith;Marta Ericsdotter;;;1794-
Marjorie Alice Smith0;John Smith;Alice Perkins;;;5/2/1960
Janis Elaine Green;;;;;2/12/1935
Mason Michael Smith;Edwin Smith;Janice Adams;;;26/6/1996
Edwin Willard;;;;;1886
Ingar Smith;Martin Smith0;Elna Jefferson;;;1823
Hjalmar Smith0;Gustaf Smith;Anna Hansdotter;;;7/4/1895-26/6/1975
Emil Smith;Martin Smith;Kerstina Hansdotter;;;27/9/1860
雪 Ke 柯;Herman Nielsen;Astrid Smith;;;
The Tester;Lloyd Smith;Janis Green;;;29/12/1954
Mrs Tester;;;;;
ピーター リチミシキスイミ;;;;;
Tom Tester;The Tester;Mrs Tester;;;
Anna Hansdotter;;;;;2/10/1864-29/9/1945
Keith Lloyd Smith;Lloyd Smith;Janis Green;;;11/8/1966
Hans Peter Smith;Gustaf Smith;Anna Hansdotter;;;17/4/1904-29/1/1977
Hanna Smith;Martin Smith0;Elna Jefferson;;;29/1/1821
Herman Julius Nielsen;;;;;31/8/1889-1945
Evelyn Michaels;;;;;1897
Marjorie Lee Smith;Hjalmar Smith0;Marjorie Ohman;;;4/11/1934
Gus Smith;Gustaf Smith;Anna Hansdotter;;;11/9/1897-21/10/1963
Jennifer Anderson;;;;;5/11/1907-29/5/1985
Lillie Harriet Jones;;;;;2/5/1910-26/6/1990
John Hjalmar Smith;Hjalmar Smith0;Marjorie Ohman;;;30/1/1932
Eric Lloyd Smith;Lloyd Smith;Janis Green;;;28/8/1963
Amber Marie Smith;Edwin Smith;Janice Adams;;;12/4/1998
Carl Emil Smith;Gustaf Smith;Anna Hansdotter;;;20/12/1899-28/1/1959
Hjalmar Smith;Gustaf Smith;Anna Hansdotter;;;31/1/1893-25/9/1894
Martin Smith;Martin Smith0;Elna Jefferson;;;19/11/1830-1899
Astrid Shermanna Augusta Smith;Gustaf Smith;Anna Hansdotter;;;31/1/1889-21/12/1963
Gustaf Smith, Sr.;Martin Smith;Kerstina Hansdotter;;;28/11/1862-23/7/1930
Marta Ericsdotter;;;;;1775
Kirsti Marie Smith;Gustaf Smith;Anna Hansdotter;;;15/12/1886-18/7/1966
Ingeman Smith;;;;;1770
Anna Streiffert;;;;;23/9/1860-2/2/1927
Craig Peter Smith;Lloyd Smith;Janis Green;;;1966
Magnes Smith;Martin Smith;Kerstina Hansdotter;;;6/10/1858-20/2/1910
Janice Ann Adams;;;;;26/8/1965
Marjorie Ohman;;;;;3/6/1903-22/6/1980
Darcy Horne;;;;;2/7/1966
Lloyd Smith;Hans Smith;Lillie Jones;;;13/3/1935
Alice Paula Perkins;;;;;22/11/1933
Lars Peter Smith;Eric Smith;Darcy Horne;;;16/9/1991
Elna Jefferson;;;;;14/9/1800-
Edwin Michael Smith;John Smith;Alice Perkins;;;24/5/1961
Kerstina Hansdotter;;;;;29/11/1832-1908
Martin Smith0;Ingeman Smith;Marta Ericsdotter;;;1794-
Ingeman Smith0;Martin Smith0;Elna Jefferson;;;29/1/1826
Marjorie Alice Smith0;John Smith;Alice Perkins;;;5/2/1960
Janis Elaine Green;;;;;2/12/1935
Mason Michael Smith;Edwin Smith;Janice Adams;;;26/6/1996
Edwin Willard;;;;;1886
Ingar Smith;Martin Smith0;Elna Jefferson;;;1823
Hjalmar Smith0;Gustaf Smith;Anna Hansdotter;;;7/4/1895-26/6/1975
Emil Smith;Martin Smith;Kerstina Hansdotter;;;27/9/1860
雪 Ke 柯;Herman Nielsen;Astrid Smith;;;
ピーター リチミシキスイミ;;;;;
The Tester;Lloyd Smith;Janis Green;;;29/12/1954
Mrs Tester;;;;;
Tom Von Tester y tested;The Tester;Mrs Tester;;;
Fake von Person, I;The Tester;Mrs Tester;;;1954-
Mary Tester;The Tester;Mrs Tester;;;
Martha Tester;The Tester;Mrs Tester;;;
John Tester;The Tester;Mrs Tester;;;
Mark Tester;The Tester;Mrs Tester;;;
+50 -51
View File
@@ -30,66 +30,65 @@
[P0014],"Denver, Denver Co., CO","Denver, Denver Co., CO",City,39.7392,104.9903 W,,[P0024],
Person,Surname,Given,Call,Suffix,Prefix,Title,Gender,Birth date,Birth place,Birth source,Baptism date,Baptism place,Baptism source,Death date,Death place,Death source,Burial date,Burial place,Burial source,Note
[I0030],Adams,Janice Ann,,,,,female,26 Aug 1965,"Fremont, Alameda Co., CA",,,,,,,,,,,
[I0016],Anderson,Jennifer,,,,,female,5 Nov 1907,"Rønne, Bornholm, Denmark",,,,,29 May 1985,"San Francisco, San Francisco Co., CA",,,,,
[I0025],Ericsdotter,Marta,,,,,female,about 1775,Sweden,,,,,,,,,,,
[I0041],Green,Janis Elaine,,,,,female,2 Dec 1935,,,,,,,,,,,,
[I0000],Hansdotter,Anna,,,,,female,2 Oct 1864,"Löderup, Malmöhus Län, Sweden",,,,,29 Sep 1945,"Sparks, Washoe Co., NV",,,,,
[I0038],Hansdotter,Kerstina,,,,,female,29 Nov 1832,"Smestorp, Kristianstad Län, Sweden",,,,,before 1908,Sweden,,,,,
[I0032],Horne,Darcy,,,,,female,2 Jul 1966,"Sacramento, Sacramento Co., CA",,,,,,,,,,,
[I0036],Jefferson,Elna,,,,,female,14 Sep 1800,"Gladsax, Kristianstad Län, Sweden",,,,,,Sweden,,,,,
[I0017],Jones,Lillie Harriet,,,,,female,2 May 1910,"Rønne, Bornholm, Denmark",,,,,26 Jun 1990,,,,,,
[I0030],Adams,Janice Ann,,,,,female,1965-08-26,[P0013],,,,,,,,,,,
[I0016],Anderson,Jennifer,,,,,female,1907-11-05,[P0003],,,,,1985-05-29,[P0002],,,,,
[I0025],Ericsdotter,Marta,,,,,female,about 1775,[P0008],,,,,,,,,,,
[I0041],Green,Janis Elaine,,,,,female,1935-12-02,,,,,,,,,,,,
[I0000],Hansdotter,Anna,,,,,female,1864-10-02,[P0000],,,,,1945-09-29,[P0001],,,,,
[I0038],Hansdotter,Kerstina,,,,,female,1832-11-29,[P0019],,,,,before 1908,[P0008],,,,,
[I0032],Horne,Darcy,,,,,female,1966-07-02,[P0015],,,,,,,,,,,
[I0036],Jefferson,Elna,,,,,female,1800-09-14,[P0004],,,,,,[P0008],,,,,
[I0017],Jones,Lillie Harriet,,,,,female,1910-05-02,[P0003],,,,,1990-06-26,,,,,,
[I0042],Ke 柯,,,,,,male,,,,,,,,,,,,,
[I0013],Michaels,Evelyn,,,,,female,about 1897,,,,,,,,,,,,
[I0012],Nielsen,Herman Julius,,,,,male,31 Aug 1889,"Rønne, Bornholm, Denmark",,,,,1945,,,,,,
[I0031],Ohman,Marjorie,,,,,female,3 Jun 1903,"Denver, Denver Co., CO, Denver Co., Colorado, USA",,,,,22 Jun 1980,"Reno, Washoe Co., NV",,,,,
[I0034],Perkins,Alice Paula,,,,,female,22 Nov 1933,"Sparks, Washoe Co., NV",,,,,,,,,,,
[I0002],Smith,Amber Marie,,,,,female,12 Apr 1998,"Hayward, Alameda Co., CA",,,,,,,,,,,
[I0023],Smith,Astrid Shermanna Augusta,,,,,female,31 Jan 1889,"Rønne, Bornholm, Denmark",,,,,21 Dec 1963,"San Francisco, San Francisco Co., CA",,,,,
[I0020],Smith,Carl Emil,,,,,male,20 Dec 1899,"Rønne, Bornholm, Denmark",,,,,28 Jan 1959,"Reno, Washoe Co., NV",,,,,
[I0029],Smith,Craig Peter,,,,,male,after 1966,"San Francisco, San Francisco Co., CA",,,,,,,,,,,
[I0037],Smith,Edwin Michael,,,,,male,24 May 1961,"San Jose, Santa Clara Co., CA","Birth, Death and Marriage Records",,,,,,,,,,
[I0009],Smith,Emil,,,,,male,27 Sep 1860,"Simrishamn, Kristianstad Län, Sweden",,,,,,,,,,,
[I0019],Smith,Eric Lloyd,,,,Dr.,male,28 Aug 1963,"San Francisco, San Francisco Co., CA",,,,,,,,,,,
[I0015],Smith,Gus,,,,,male,11 Sep 1897,"Rønne, Bornholm, Denmark",,,,,21 Oct 1963,"San Francisco, San Francisco Co., CA",,,,,
[I0024],Smith,Gustaf,,Sr.,,,male,28 Nov 1862,"Grostorp, Kristianstad Län, Sweden",,,,,before 23 Jul 1930,"Sparks, Washoe Co., NV",,,,,
[I0011],Smith,Hanna,,,,,female,29 Jan 1821,"Gladsax, Kristianstad Län, Sweden",,,,,,,,,,,
[I0010],Smith,Hans Peter,,,,,male,17 Apr 1904,"Rønne, Bornholm, Denmark",Birth Records,,,,29 Jan 1977,"San Francisco, San Francisco Co., CA",,5 Feb 1977,"San Francisco, San Francisco Co., CA",findagrave.com,
[I0021],Smith,Hjalmar,,,,,male,31 Jan 1893,"Rønne, Bornholm, Denmark",,,,,25 Sep 1894,"Rønne, Bornholm, Denmark",,,,,
[I0008],Smith,Hjalmar,,,,,male,7 Apr 1895,"Rønne, Bornholm, Denmark",,3 Jun 1895,"Rønne Bornholm, Denmark",,26 Jun 1975,"Reno, Washoe Co., NV",,,,,
[I0007],Smith,Ingar,,,,,female,after 1823,"Gladsax, Kristianstad Län, Sweden",,,,,,,,,,,
[I0027],Smith,Ingeman,,,,,male,about 1770,Sweden,,,,,,,,,,,
[I0004],Smith,Ingeman,,,,,male,29 Jan 1826,"Gladsax, Kristianstad Län, Sweden",,,,,,,,,,,
[I0018],Smith,John Hjalmar,,,,,male,30 Jan 1932,"San Francisco, San Francisco Co., CA",,,,,,,,,,,
[I0001],Smith,Keith Lloyd,,,,,male,11 Aug 1966,"San Francisco, San Francisco Co., CA",,,,,,,,,,,
[I0026],Smith,Kirsti Marie,,,,,female,15 Dec 1886,"Rønne, Bornholm, Denmark",,,,,18 Jul 1966,"San Francisco, San Francisco Co., CA",,,,,
[I0035],Smith,Lars Peter,,,,,male,16 Sep 1991,"Santa Rosa, Sonoma Co., CA",,,,,,,,,,,
[I0033],Smith,Lloyd,,,,,male,13 Mar 1935,"San Francisco, San Francisco Co., CA",,,,,,,,,,,
[I0003],Smith,Magnes,,,,,male,6 Oct 1858,"Simrishamn, Kristianstad Län, Sweden",,,,,20 Feb 1910,"Rønne, Bornholm, Denmark",,,,,
[I0040],Smith,Marjorie Alice,,,,,female,5 Feb 1960,"San Jose, Santa Clara Co., CA",,,,,,,,,,,
[I0014],Smith,Marjorie Lee,,,,,female,4 Nov 1934,"Reno, Washoe Co., NV",,,,,,,,,,,
[I0022],Smith,Martin,,,,,male,19 Nov 1830,"Gladsax, Kristianstad Län, Sweden",,23 Nov 1830,"Gladsax, Kristianstad Län, Sweden",,between 1899 and 1905,Sweden,,,,,
[I0039],Smith,Martin,,,,,male,between 1794 and 1796,"Tommarp, Kristianstad Län, Sweden",,,,,,Sweden,,,,,
[I0005],Smith,Mason Michael,,,,,male,26 Jun 1996,"Hayward, Alameda Co., CA",,,,,,,,,,,
[I0028],Streiffert,Anna,,,,,female,23 Sep 1860,"Hoya/Jona/Hoia, Sweden",,,,,2 Feb 1927,"Rønne, Bornholm, Denmark",,,,,
[I0012],Nielsen,Herman Julius,,,,,male,1889-08-31,[P0003],,,,,1945,,,,,,
[I0031],Ohman,Marjorie,,,,,female,1903-06-03,[P0014],,,,,1980-06-22,[P0005],,,,,
[I0034],Perkins,Alice Paula,,,,,female,1933-11-22,[P0001],,,,,,,,,,,
[I0002],Smith,Amber Marie,,,,,female,1998-04-12,[P0006],,,,,,,,,,,
[I0023],Smith,Astrid Shermanna Augusta,,,,,female,1889-01-31,[P0003],,,,,1963-12-21,[P0002],,,,,
[I0020],Smith,Carl Emil,,,,,male,1899-12-20,[P0003],,,,,1959-01-28,[P0005],,,,,
[I0029],Smith,Craig Peter,,,,,male,after 1966,[P0002],,,,,,,,,,,
[I0037],Smith,Edwin Michael,,,,,male,1961-05-24,[P0017],"Birth, Death and Marriage Records",,,,,,,,,,
[I0009],Smith,Emil,,,,,male,1860-09-27,[P0012],,,,,,,,,,,
[I0019],Smith,Eric Lloyd,,,,Dr.,male,1963-08-28,[P0002],,,,,,,,,,,
[I0015],Smith,Gus,,,,,male,1897-09-11,[P0003],,,,,1963-10-21,[P0002],,,,,
[I0024],Smith,Gustaf,,Sr.,,,male,1862-11-28,[P0009],,,,,before 1930-07-23,[P0001],,,,,
[I0011],Smith,Hanna,,,,,female,1821-01-29,[P0004],,,,,,,,,,,
[I0010],Smith,Hans Peter,,,,,male,1904-04-17,[P0003],Birth Records,,,,1977-01-29,[P0002],,1977-02-05,[P0002],findagrave.com,
[I0021],Smith,Hjalmar,,,,,male,1893-01-31,[P0003],,,,,1894-09-25,[P0003],,,,,
[I0008],Smith,Hjalmar,,,,,male,1895-04-07,[P0003],,1895-06-03,[P0021],,1975-06-26,[P0005],,,,,
[I0007],Smith,Ingar,,,,,female,after 1823,[P0004],,,,,,,,,,,
[I0027],Smith,Ingeman,,,,,male,about 1770,[P0008],,,,,,,,,,,
[I0004],Smith,Ingeman,,,,,male,1826-01-29,[P0004],,,,,,,,,,,
[I0018],Smith,John Hjalmar,,,,,male,1932-01-30,[P0002],,,,,,,,,,,
[I0001],Smith,Keith Lloyd,,,,,male,1966-08-11,[P0002],,,,,,,,,,,
[I0026],Smith,Kirsti Marie,,,,,female,1886-12-15,[P0003],,,,,1966-07-18,[P0002],,,,,
[I0035],Smith,Lars Peter,,,,,male,1991-09-16,[P0016],,,,,,,,,,,
[I0033],Smith,Lloyd,,,,,male,1935-03-13,[P0002],,,,,,,,,,,
[I0003],Smith,Magnes,,,,,male,1858-10-06,[P0012],,,,,1910-02-20,[P0003],,,,,
[I0040],Smith,Marjorie Alice,,,,,female,1960-02-05,[P0017],,,,,,,,,,,
[I0014],Smith,Marjorie Lee,,,,,female,1934-11-04,[P0005],,,,,,,,,,,
[I0022],Smith,Martin,,,,,male,1830-11-19,[P0004],,1830-11-23,[P0004],,between 1899 and 1905,[P0008],,,,,
[I0039],Smith,Martin,,,,,male,between 1794 and 1796,[P0020],,,,,,[P0008],,,,,
[I0005],Smith,Mason Michael,,,,,male,1996-06-26,[P0006],,,,,,,,,,,
[I0028],Streiffert,Anna,,,,,female,1860-09-23,[P0011],,,,,1927-02-02,[P0003],,,,,
[I0006],Willard,Edwin,,,,,male,about 1886,,,,,,,,,,,,
[I0043],リチミシキスイミ,ピーター,,,,,male,,,,,,,,,,,,,
Marriage,Husband,Wife,Date,Place,Source,Note
[F0000],[I0039],[I0036],about 1816,"Gladsax, Kristianstad Län, Sweden",,
[F0001],[I0027],[I0025],about 1790,Sweden,,
[F0000],[I0039],[I0036],about 1816,[P0004],,
[F0001],[I0027],[I0025],about 1790,[P0008],,
[F0002],[I0022],[I0038],about 1856,,,
[F0003],[I0024],[I0000],27 Nov 1885,"Rønne, Bornholm, Denmark",,
[F0003],[I0024],[I0000],1885-11-27,[P0003],,
[F0004],[I0006],[I0026],about 1910,,,
[F0005],[I0012],[I0023],30 Nov 1912,"Rønne, Bornholm, Denmark",,
[F0006],[I0008],[I0031],31 Oct 1927,"Reno, Washoe Co., NV",,
[F0005],[I0012],[I0023],1912-11-30,[P0003],,
[F0006],[I0008],[I0031],1927-10-31,[P0005],,
[F0007],[I0015],[I0013],about 1920,,,
[F0008],[I0033],[I0041],10 Aug 1958,"San Francisco, San Francisco Co., CA",,
[F0008],[I0033],[I0041],1958-08-10,[P0002],,
[F0009],[I0010],[I0017],,,,
[F0010],[I0019],[I0032],12 Jul 1986,"Woodland, Yolo Co., CA",,
[F0011],[I0003],[I0028],24 Aug 1884,"Rønne, Bornholm, Denmark",,
[F0012],[I0018],[I0034],4 Jun 1954,"Sparks, Washoe Co., NV",Marriage Certificae,
[F0013],[I0037],[I0030],27 May 1995,"San Ramon, Conta Costa Co., CA",,
[F0010],[I0019],[I0032],1986-07-12,[P0022],,
[F0011],[I0003],[I0028],1884-08-24,[P0003],,
[F0012],[I0018],[I0034],1954-06-04,[P0001],Marriage Certificae,
[F0013],[I0037],[I0030],1995-05-27,[P0023],,
[F0014],[I0010],[I0016],,,,
Family,Child
1 Place Title Name Type Latitude Longitude Code Enclosed_by Date
30 [P0014] Denver, Denver Co., CO Denver, Denver Co., CO City 39.7392 104.9903 W [P0024]
31 Person Surname Given Call Suffix Prefix Title Gender Birth date
32 [I0030] Adams Janice Ann female 26 Aug 1965 1965-08-26
33 [I0016] Anderson Jennifer female 5 Nov 1907 1907-11-05
34 [I0025] Ericsdotter Marta female about 1775
35 [I0041] Green Janis Elaine female 2 Dec 1935 1935-12-02
36 [I0000] Hansdotter Anna female 2 Oct 1864 1864-10-02
37 [I0038] Hansdotter Kerstina female 29 Nov 1832 1832-11-29
38 [I0032] Horne Darcy female 2 Jul 1966 1966-07-02
39 [I0036] Jefferson Elna female 14 Sep 1800 1800-09-14
40 [I0017] Jones Lillie Harriet female 2 May 1910 1910-05-02
41 [I0042] Ke 柯 male
42 [I0013] Michaels Evelyn female about 1897
43 [I0012] Nielsen Herman Julius male 31 Aug 1889 1889-08-31
44 [I0031] Ohman Marjorie female 3 Jun 1903 1903-06-03
45 [I0034] Perkins Alice Paula female 22 Nov 1933 1933-11-22
46 [I0002] Smith Amber Marie female 12 Apr 1998 1998-04-12
47 [I0023] Smith Astrid Shermanna Augusta female 31 Jan 1889 1889-01-31
48 [I0020] Smith Carl Emil male 20 Dec 1899 1899-12-20
49 [I0029] Smith Craig Peter male after 1966
50 [I0037] Smith Edwin Michael male 24 May 1961 1961-05-24
51 [I0009] Smith Emil male 27 Sep 1860 1860-09-27
52 [I0019] Smith Eric Lloyd Dr. male 28 Aug 1963 1963-08-28
53 [I0015] Smith Gus male 11 Sep 1897 1897-09-11
54 [I0024] Smith Gustaf Sr. male 28 Nov 1862 1862-11-28
55 [I0011] Smith Hanna female 29 Jan 1821 1821-01-29
56 [I0010] Smith Hans Peter male 17 Apr 1904 1904-04-17
57 [I0021] Smith Hjalmar male 31 Jan 1893 1893-01-31
58 [I0008] Smith Hjalmar male 7 Apr 1895 1895-04-07
59 [I0007] Smith Ingar female after 1823
60 [I0027] Smith Ingeman male about 1770
61 [I0004] Smith Ingeman male 29 Jan 1826 1826-01-29
62 [I0018] Smith John Hjalmar male 30 Jan 1932 1932-01-30
63 [I0001] Smith Keith Lloyd male 11 Aug 1966 1966-08-11
64 [I0026] Smith Kirsti Marie female 15 Dec 1886 1886-12-15
65 [I0035] Smith Lars Peter male 16 Sep 1991 1991-09-16
66 [I0033] Smith Lloyd male 13 Mar 1935 1935-03-13
67 [I0003] Smith Magnes male 6 Oct 1858 1858-10-06
68 [I0040] Smith Marjorie Alice female 5 Feb 1960 1960-02-05
69 [I0014] Smith Marjorie Lee female 4 Nov 1934 1934-11-04
70 [I0022] Smith Martin male 19 Nov 1830 1830-11-19
71 [I0039] Smith Martin male between 1794 and 1796
72 [I0005] Smith Mason Michael male 26 Jun 1996 1996-06-26
73 [I0028] Streiffert Anna female 23 Sep 1860 1860-09-23
74 [I0006] Willard Edwin male about 1886
75 [I0043] Marriage リチミシキスイミ Husband ピーター Wife Date Place Source Note
Marriage Husband Wife Date Place Source Note
76 [F0000] [I0039] [I0036] about 1816 Gladsax, Kristianstad Län, Sweden [P0004]
77 [F0001] [I0027] [I0025] about 1790 Sweden [P0008]
78 [F0002] [I0022] [I0038] about 1856
79 [F0003] [I0024] [I0000] 27 Nov 1885 1885-11-27 Rønne, Bornholm, Denmark [P0003]
80 [F0004] [I0006] [I0026] about 1910
81 [F0005] [I0012] [I0023] 30 Nov 1912 1912-11-30 Rønne, Bornholm, Denmark [P0003]
82 [F0006] [I0008] [I0031] 31 Oct 1927 1927-10-31 Reno, Washoe Co., NV [P0005]
83 [F0007] [I0015] [I0013] about 1920
84 [F0008] [I0033] [I0041] 10 Aug 1958 1958-08-10 San Francisco, San Francisco Co., CA [P0002]
85 [F0009] [I0010] [I0017]
86 [F0010] [I0019] [I0032] 12 Jul 1986 1986-07-12 Woodland, Yolo Co., CA [P0022]
87 [F0011] [I0003] [I0028] 24 Aug 1884 1884-08-24 Rønne, Bornholm, Denmark [P0003]
88 [F0012] [I0018] [I0034] 4 Jun 1954 1954-06-04 Sparks, Washoe Co., NV [P0001] Marriage Certificae
89 [F0013] [I0037] [I0030] 27 May 1995 1995-05-27 San Ramon, Conta Costa Co., CA [P0023]
90 [F0014] [I0010] [I0016]
91 Family Child
92 [F0000] [I0011]
93 [F0000] [I0007]
94 [F0000] [I0004]
+6 -6
View File
@@ -1,12 +1,12 @@
0 HEAD
1 SOUR Gramps
2 VERS 5.0.2
2 VERS 5.1.2
2 NAME Gramps
1 DATE 4 AUG 2019
2 TIME 15:26:44
1 DATE 7 JAN 2020
2 TIME 13:39:43
1 SUBM @SUBM@
1 FILE C:\Users\prc\AppData\Roaming\gramps\temp\exp_sample_ged.ged
1 COPR Copyright (c) 2019 Alex Roitman,,,.
1 COPR Copyright (c) 2020 Alex Roitman,,,.
1 GEDC
2 VERS 5.5.1
2 FORM LINEAGE-LINKED
@@ -911,7 +911,7 @@
2 DATE I think 1970 to 1971
2 PLAC San Francisco, San Francisco Co., CA
1 SLGC
2 DATE EST ABT 1999
2 DATE ABT 1999
2 FAMC @F0016@
2 TEMP DENVE
2 PLAC Denver, Denver Co., CO, Denver Co., Colorado, USA
@@ -1424,7 +1424,7 @@
0 @N0018@ NOTE Another Citation Note
0 @N0019@ NOTE A bad photo for sure
0 @O0000@ OBJE
1 FILE c:\users\prc\workspace\grampsm\main\data\tests\O0.jpg
1 FILE d:\users\prc\documents\gramps\data\tests\O0.jpg
2 FORM jpg
2 TITL Michael O'Toole 2015-11
1 NOTE @N0019@
+3 -3
View File
@@ -3,7 +3,7 @@
"http://gramps-project.org/xml/1.7.1/grampsxml.dtd">
<database xmlns="http://gramps-project.org/xml/1.7.1/">
<header>
<created date="2019-08-04" version="5.0.2"/>
<created date="1999-12-25" version="5.1.3"/>
<researcher>
<resname>Alex Roitman,,,</resname>
<resaddr>Not Provided</resaddr>
@@ -1302,7 +1302,7 @@
</reporef>
</source>
<source handle="_0000008500000085" change="1" id="S0000">
<stitle>@S0@</stitle>
<stitle>Marriage Certificae</stitle>
<noteref hlink="_000000e7000000e7"/>
<reporef hlink="_000000e6000000e6" callno="what-321-ever" medium="Photo"/>
</source>
@@ -1705,7 +1705,7 @@ Unknown tag Line 1111:
<range start="0" end="163"/>
</style>
</note>
<note handle="_000000f9000000f9" change="1564950708" id="N0036" type="General">
<note handle="_000000f9000000f9" change="1591544255" id="N0036" type="General">
<text>Objects referenced by this note were missing in a file imported on 12/25/1999 12:00:00 AM.</text>
</note>
</notes>
+37
View File
@@ -1,3 +1,40 @@
gramps (5.1.5-1) unstable; urgency=medium
* New release
* Update copyright file
* Drop patch, incorporated upstream
-- Ross Gammon <rossgammon@debian.org> Sat, 12 Feb 2022 17:01:21 +0100
gramps (5.1.4-1) unstable; urgency=medium
* New release
* Add new copyrights
* Update watch file
* Patch probably alive test to fix FTBFS
-- Ross Gammon <rossgammon@debian.org> Sun, 15 Aug 2021 18:31:56 +0200
gramps (5.1.3-1) focal; urgency=medium
* New release
* Update debian/copyright for Alex Roitman
-- Ross Gammon <rosco2@ubuntu.com> Sun, 16 Aug 2020 20:23:34 +0200
gramps (5.1.2-1) unstable; urgency=medium
* New release
-- Ross Gammon <rossgammon@debian.org> Sat, 11 Jan 2020 19:07:08 +0100
gramps (5.1.1-1) unstable; urgency=medium
* New release
* Add python3-fontconfig to recommends
-- Ross Gammon <rossgammon@debian.org> Tue, 17 Sep 2019 15:21:43 +0200
gramps (5.1.0-1) unstable; urgency=medium
* New release
+2 -1
View File
@@ -42,7 +42,8 @@ Recommends:
gir1.2-gexiv2-0.10,
gir1.2-osmgpsmap-1.0,
python3-icu,
gir1.2-geocodeglib-1.0
gir1.2-geocodeglib-1.0,
python3-fontconfig
Suggests:
fonts-freefont-ttf,
gir1.2-goocanvas-2.0,
+3 -1
View File
@@ -46,7 +46,7 @@ Copyright: 2000-2007, Alex Roitman
2009, Florian Heinle
2009, Gerald W. Britton
2009, Igal Shapira
2009-2018, Nick Hall
2009-2022, Nick Hall
2009, Pander Musubi
2009, Robert Ham
2009, Swoon on bug tracker
@@ -92,6 +92,8 @@ Copyright: 2000-2007, Alex Roitman
2018, Robin van der Vliet
2018, Theo van Rijn
2019, Matthias Kemmer
2020, Jan Sparreboom
2021, Mirko Leonhaeuser
License: GPL-2+
Files: debian/*
+3 -5
View File
@@ -1,8 +1,6 @@
version=3
version=4
opts=\
dversionmangle=s/(\~|\+)(debian|dfsg|ds|deb)(\.\d+)?$//,\
filenamemangle=s/.+\/v?(\d\S*)\.tar\.gz/$1\.tar\.gz/,\
filenamemangle=s/.+\/v?(\d\S+)\.tar\.gz/gramps-project-$1\.tar\.gz/,\
repacksuffix=~dfsg \
https://github.com/gramps-project/gramps/tags \
.*/archive/v?([\d\.]+).tar.gz
.*/v?(\d\S+)\.tar\.gz
+1 -1
View File
@@ -57,7 +57,7 @@ master_doc = 'index'
# General information about the project.
project = 'Gramps'
copyright = '2001-2019, The Gramps Project'
copyright = '2001-2023, The Gramps Project'
author = 'Donald N. Allingham'
# The version info for the project you're documenting, acts as replacement for
+1 -1
View File
@@ -280,7 +280,7 @@ class CLIManager:
# Attempt to figure out the database title
path = os.path.join(filename, "name.txt")
try:
with open(path) as ifile:
with open(path, encoding='utf8') as ifile:
title = ifile.readline().strip()
except:
title = filename
+4 -4
View File
@@ -88,9 +88,9 @@ def _convert_str_to_match_type(str_val, type_val):
return str(str_val)
elif ret_type == int:
if str_val.isdigit():
try:
return int(str_val)
else:
except ValueError:
print("'%s' is not an integer number" % str_val)
return 0
@@ -519,8 +519,8 @@ class CommandLineReport:
self.format = tree_format["class"]
if self.format is None:
# Pick the first one as the default.
self.format = tree_format.FORMATS[0]["class"]
_chosen_format = tree_format.FORMATS[0]["type"]
self.format = treedoc.FORMATS[0]["class"]
_chosen_format = treedoc.FORMATS[0]["type"]
else:
self.format = None
if _chosen_format and _format_str:
+2 -2
View File
@@ -145,7 +145,7 @@ sys.path.insert(0, ROOT_DIR)
git_revision = get_git_revision(ROOT_DIR).replace('\n', '')
if sys.platform == 'win32' and git_revision == "":
git_revision = get_git_revision(os.path.split(ROOT_DIR)[1])
#VERSION += git_revision
VERSION += git_revision
#VERSION += "-1"
#
@@ -225,7 +225,7 @@ GTK_GETTEXT_DOMAIN = 'gtk30'
#
#-------------------------------------------------------------------------
COPYRIGHT_MSG = "© 2001-2006 Donald N. Allingham\n" \
"© 2007-2019 The Gramps Developers"
"© 2007-2023 The Gramps Developers"
COMMENTS = _("Gramps\n (Genealogical Research and Analysis "
"Management Programming System)\n"
"is a personal genealogy program.")
+11 -6
View File
@@ -35,6 +35,7 @@ import logging
# Gramps modules
#
#-------------------------------------------------------------------------
from ..utils.grampslocale import GrampsLocale
from ..const import GRAMPS_LOCALE as glocale
_ = glocale.translation.sgettext
# import prerequisites for localized handlers
@@ -72,16 +73,20 @@ from . import _date_uk
from . import _date_zh_CN
from . import _date_zh_TW
# the following makes sure we use the LC_TIME value for date display & parsing
dlocale = GrampsLocale(lang=glocale.calendar)
# Initialize global parser
try:
if LANG in LANG_TO_PARSER:
parser = LANG_TO_PARSER[LANG](plocale=glocale)
parser = LANG_TO_PARSER[LANG](plocale=dlocale)
else:
parser = LANG_TO_PARSER[LANG_SHORT](plocale=glocale)
parser = LANG_TO_PARSER[LANG_SHORT](plocale=dlocale)
except:
logging.warning(
_("Date parser for '%s' not available, using default") % LANG)
parser = LANG_TO_PARSER["C"](plocale=glocale)
parser = LANG_TO_PARSER["C"](plocale=dlocale)
# Initialize global displayer
try:
@@ -92,13 +97,13 @@ except:
try:
if LANG in LANG_TO_DISPLAY:
displayer = LANG_TO_DISPLAY[LANG](val, blocale=glocale)
displayer = LANG_TO_DISPLAY[LANG](val, blocale=dlocale)
else:
displayer = LANG_TO_DISPLAY[LANG_SHORT](val, blocale=glocale)
displayer = LANG_TO_DISPLAY[LANG_SHORT](val, blocale=dlocale)
except:
logging.warning(
_("Date displayer for '%s' not available, using default") % LANG)
displayer = LANG_TO_DISPLAY["C"](val, blocale=glocale)
displayer = LANG_TO_DISPLAY["C"](val, blocale=dlocale)
# Import utility functions
+20
View File
@@ -50,6 +50,15 @@ class DateParserCZ(DateParser):
Converts a text string into a Date object
"""
quality_to_int = {
'přibližně' : Date.QUAL_ESTIMATED,
'odhadem' : Date.QUAL_ESTIMATED,
'odh.' : Date.QUAL_ESTIMATED,
'vypočteno' : Date.QUAL_CALCULATED,
'vypočtené' : Date.QUAL_CALCULATED,
'vyp.' : Date.QUAL_CALCULATED,
}
bce = ["před naším letopočtem", "před Kristem",
"př. n. l.", "př. Kr."] + DateParser.bce
@@ -58,6 +67,17 @@ class DateParserCZ(DateParser):
# bug 9739 grampslocale.py gets '%-d.%-m.%Y' -- makes it be '%/d.%/m.%Y'
self.dhformat = self.dhformat.replace('/', '') # so counteract that
def init_strings(self):
DateParser.init_strings(self)
self._text2 = re.compile(r'(\d+)?\.?\s+?%s\.?\s*((\d+)(/\d+)?)?\s*$'
% self._mon_str, re.IGNORECASE)
self._span = re.compile(
r"(od)\s+(?P<start>.+)\s+(do)\s+(?P<stop>.+)",
re.IGNORECASE)
self._range = re.compile(
r"(mezi)\s+(?P<start>.+)\s+(a)\s+(?P<stop>.+)",
re.IGNORECASE)
#-------------------------------------------------------------------------
#
# Czech display
+27 -25
View File
@@ -83,35 +83,37 @@ class DateParserNL(DateParser):
month_to_int["xbris"] = 12
modifier_to_int = {
'voor' : Date.MOD_BEFORE,
'na' : Date.MOD_AFTER,
'tegen' : Date.MOD_ABOUT,
'om' : Date.MOD_ABOUT,
'rond' : Date.MOD_ABOUT,
'circa' : Date.MOD_ABOUT,
'ca.' : Date.MOD_ABOUT,
'voor' : Date.MOD_BEFORE,
'na' : Date.MOD_AFTER,
'ca.' : Date.MOD_ABOUT,
'circa' : Date.MOD_ABOUT,
'om' : Date.MOD_ABOUT,
'omstreeks' : Date.MOD_ABOUT,
'ongeveer' : Date.MOD_ABOUT,
'rond' : Date.MOD_ABOUT,
'tegen' : Date.MOD_ABOUT,
}
calendar_to_int = {
'gregoriaans' : Date.CAL_GREGORIAN,
'greg.' : Date.CAL_GREGORIAN,
'juliaans' : Date.CAL_JULIAN,
'jul.' : Date.CAL_JULIAN,
'hebreeuws' : Date.CAL_HEBREW,
'hebr.' : Date.CAL_HEBREW,
'islamitisch' : Date.CAL_ISLAMIC,
'isl.' : Date.CAL_ISLAMIC,
'franse republiek': Date.CAL_FRENCH,
'fran.' : Date.CAL_FRENCH,
'persisch' : Date.CAL_PERSIAN,
'zweeds' : Date.CAL_SWEDISH,
'z' : Date.CAL_SWEDISH,
'gregoriaans' : Date.CAL_GREGORIAN,
'greg.' : Date.CAL_GREGORIAN,
'juliaans' : Date.CAL_JULIAN,
'jul.' : Date.CAL_JULIAN,
'hebreeuws' : Date.CAL_HEBREW,
'hebr.' : Date.CAL_HEBREW,
'islamitisch' : Date.CAL_ISLAMIC,
'isl.' : Date.CAL_ISLAMIC,
'frans republiekeins' : Date.CAL_FRENCH,
'fran.' : Date.CAL_FRENCH,
'persisch' : Date.CAL_PERSIAN,
'zweeds' : Date.CAL_SWEDISH,
'z' : Date.CAL_SWEDISH,
}
quality_to_int = {
'geschat' : Date.QUAL_ESTIMATED,
'geschat' : Date.QUAL_ESTIMATED,
'gesch.' : Date.QUAL_ESTIMATED,
'berekend' : Date.QUAL_CALCULATED,
'berekend' : Date.QUAL_CALCULATED,
'ber.' : Date.QUAL_CALCULATED,
}
@@ -147,17 +149,17 @@ class DateDisplayNL(DateDisplay):
calendar = (
"", "juliaans", "hebreeuws",
"franse republiek", "persisch", "islamitisch",
"frans republikeins", "persisch", "islamitisch",
"zweeds" )
_mod_str = ("", "voor ", "na ", "rond ", "", "", "")
_mod_str = ("", "voor ", "na ", "omstreeks ", "", "", "")
_qual_str = ("", "geschat ", "berekend ")
_bce_str = "%s v. Chr."
formats = (
"JJJJ-MM-DD (ISO)", "Numerisch DD/MM/JJ", "Maand Dag, Jaar",
"JJJJ-MM-DD (ISO)", "Numeriek DD/MM/JJJJ", "Maand Dag, Jaar",
"Mnd. Dag Jaar", "Dag Maand Jaar", "Dag Mnd. Jaar"
)
# this definition must agree with its "_display_gregorian" method
+5 -4
View File
@@ -52,7 +52,6 @@ methods should be changed to generate exceptions. Possibly by globally changing
#
#-------------------------------------------------------------------------
import logging
import os
import inspect
from abc import ABCMeta
from types import FunctionType
@@ -160,10 +159,12 @@ def wrapper(method):
"""
class_name = args[0].__class__.__name__
func_name = method.__name__
caller_frame = inspect.stack()[1]
frame = inspect.currentframe()
c_frame = frame.f_back
c_code = c_frame.f_code
LOG.debug('calling %s.%s()... from file %s, line %s in %s',
class_name, func_name, os.path.split(caller_frame[1])[1],
caller_frame[2], caller_frame[3])
class_name, func_name, c_code.co_filename, c_frame.f_lineno,
c_code.co_name)
return method(*args, **keywargs)
return wrapped
+9 -2
View File
@@ -47,6 +47,7 @@ from . import (DbReadBase, DbWriteBase, DbUndo, DBLOGNAME, DBUNDOFN,
REPOSITORY_KEY, NOTE_KEY, TAG_KEY, TXNADD, TXNUPD, TXNDEL,
KEY_TO_NAME_MAP, DBMODE_R, DBMODE_W)
from .utils import write_lock_file, clear_lock_file
from .exceptions import DbVersionError
from ..errors import HandleError
from ..utils.callback import Callback
from ..updatecallback import UpdateCallback
@@ -534,7 +535,7 @@ class DbGeneric(DbWriteBase, DbReadBase, UpdateCallback, Callback):
self.undo_history_callback = None
self.modified = 0
self.transaction = None
self.abort_possible = False
self.abort_possible = True
self._bm_changes = 0
self.has_changed = False
self.surname_list = []
@@ -659,6 +660,12 @@ class DbGeneric(DbWriteBase, DbReadBase, UpdateCallback, Callback):
self.db_is_open = True
# Check on db version to see if too new
dbversion = int(self._get_metadata('version', default='0'))
if dbversion > self.VERSION[0]:
self.close()
raise DbVersionError(dbversion, 18, self.VERSION[0])
def _close(self):
"""
Close database backend.
@@ -757,7 +764,7 @@ class DbGeneric(DbWriteBase, DbReadBase, UpdateCallback, Callback):
if self._directory:
filepath = os.path.join(self._directory, "name.txt")
try:
with open(filepath, "r") as name_file:
with open(filepath, "r", encoding='utf8') as name_file:
name = name_file.readline().strip()
except (OSError, IOError) as msg:
LOG.error(str(msg))
+6 -8
View File
@@ -78,15 +78,13 @@ class DbTxn(defaultdict):
elapsed_time = time.time() - self.start_time
if __debug__:
caller_frame = inspect.stack()[1]
frame = inspect.currentframe()
c_frame = frame.f_back
c_code = c_frame.f_code
_LOG.debug(" **** DbTxn %s exited. Called from file %s, "
"line %s, in %s **** %.2f seconds" %
((hex(id(self)),)+
(os.path.split(caller_frame[1])[1],)+
tuple(caller_frame[i] for i in range(2, 4))+
(elapsed_time,)
)
)
"line %s, in %s **** %.2f seconds",
hex(id(self)), c_code.co_filename, c_frame.f_lineno,
c_code.co_name, elapsed_time)
return False
+11 -7
View File
@@ -42,6 +42,8 @@ from ..const import PLUGINS_DIR, USER_PLUGINS
from ..constfunc import win, get_env_var
from ..config import config
from .dbconst import DBLOGNAME, DBLOCKFN, DBBACKEND
from ..const import GRAMPS_LOCALE as glocale
_ = glocale.translation.gettext
#-------------------------------------------------------------------------
#
@@ -70,12 +72,14 @@ def make_database(plugin_id):
database = getattr(mod, pdata.databaseclass)
db = database()
import inspect
caller_frame = inspect.stack()[1]
frame = inspect.currentframe()
c_frame = frame.f_back
c_code = c_frame.f_code
_LOG.debug("Database class instance created Class:%s instance:%s. "
"Called from File %s, line %s, in %s"
% ((db.__class__.__name__, hex(id(db)))
+ (os.path.split(caller_frame[1])[1],)
+ tuple(caller_frame[i] for i in range(2, 4))))
"Called from File %s, line %s, in %s",
db.__class__.__name__, hex(id(db)), c_code.co_filename,
c_frame.f_lineno, c_code.co_name)
return db
else:
raise Exception("can't load database backend: '%s'" % plugin_id)
@@ -209,8 +213,8 @@ def write_lock_file(name):
if win():
user = get_env_var('USERNAME')
host = get_env_var('USERDOMAIN')
if host is None:
host = ""
if not user:
user = _("Unknown")
else:
host = os.uname()[1]
# An ugly workaround for os.getlogin() issue with Konsole
+5 -4
View File
@@ -29,7 +29,6 @@ Provide the database state class
#
#------------------------------------------------------------------------
import sys
import os
import logging
import inspect
@@ -88,10 +87,12 @@ class DbState(Callback):
"""
class_name = self.__class__.__name__
func_name = "is_open"
caller_frame = inspect.stack()[1]
frame = inspect.currentframe()
c_frame = frame.f_back
c_code = c_frame.f_code
_LOG.debug('calling %s.%s()... from file %s, line %s in %s',
class_name, func_name, os.path.split(caller_frame[1])[1],
caller_frame[2], caller_frame[3])
class_name, func_name, c_code.co_filename, c_frame.f_lineno,
c_code.co_name)
return (self.db is not None) and self.db.is_open()
def change_database(self, database):
+21 -2
View File
@@ -999,6 +999,8 @@ class NameDisplay:
1. if group name is defined, use that
2. if group name is defined for the primary surname, use that
3. use primary surname itself otherwise
4. if no primary surname, do we have a ma/patronymic surname ?
in this case, group name will be the ma/patronymic name.
:param pn: raw unserialized data of name
:type pn: tuple
@@ -1007,8 +1009,25 @@ class NameDisplay:
"""
if pn[_GROUP]:
return pn[_GROUP]
return db.get_name_group_mapping(_raw_primary_surname_only(
pn[_SURNAME_LIST]))
name = pn[_GROUP]
if not name:
# if we have no primary surname, perhaps we have a
# patronymic/matronynic name ?
srnme = pn[_ORIGINPATRO]
surname = []
for _surname in srnme:
if (_surname[_TYPE_IN_LIST][0] == _ORIGINPATRO
or _surname[_TYPE_IN_LIST][0] == _ORIGINMATRO):
# Yes, we have one.
surname = [_surname]
# name1 is the ma/patronymic name.
name1 = _raw_patro_surname_only(surname)
if name1 and len(srnme) == 1:
name = db.get_name_group_mapping(name1)
if not name:
name = db.get_name_group_mapping(_raw_primary_surname_only(
pn[_SURNAME_LIST]))
return name
def _make_fn(self, format_str, d, args):
"""
@@ -51,6 +51,7 @@ editor_rule_list = [
MediaPrivate,
MatchesFilter,
MatchesSourceConfidence,
HasMedia,
HasAttribute,
ChangedSince,
HasTag,
@@ -41,9 +41,9 @@ from .. import Rule
class IsDefaultPerson(Rule):
"""Rule that checks for a default person in the database"""
name = _('Default person')
name = _('Home Person')
category = _('General filters')
description = _("Matches the default person")
description = _("Matches the Home Person")
def prepare(self, db, user):
p = db.get_default_person()
@@ -44,10 +44,10 @@ class IsLessThanNthGenerationAncestorOfDefaultPerson(Rule):
not more than N generations away"""
labels = [ _('Number of generations:') ]
name = _('Ancestors of the default person '
name = _('Ancestors of the Home Person '
'not more than <N> generations away')
category = _('Ancestral filters')
description = _("Matches ancestors of the default person "
description = _("Matches ancestors of the Home Person "
"not more than N generations away")
def prepare(self, db, user):
@@ -52,7 +52,7 @@ class MatchesEventFilter(MatchesEventFilterBase):
name = _('Persons with events matching the <event filter>')
description = _("Matches persons who have events that match a certain"
" event filter")
category = _('General filters')
category = _('Event filters')
# we want to have this filter show event filters
namespace = 'Event'
@@ -98,9 +98,10 @@ class BaseTest(unittest.TestCase):
filter_.set_invert(invert)
stime = perf_counter()
results = filter_.apply(self.db)
if __debug__:
rulename = inspect.stack()[1][3]
print("%s: %.2f\n" % (rulename, perf_counter() - stime))
# if __debug__:
# frame = inspect.currentframe()
# rulename = frame.f_back.f_code.co_name
# print("%s: %.2f\n" % (rulename, perf_counter() - stime))
return set(results)
def test_Complex_1(self):
@@ -346,7 +347,7 @@ class BaseTest(unittest.TestCase):
"""
rule = ProbablyAlive(['1900'])
res = self.filter_with_rule(rule)
self.assertEqual(len(res), 766)
self.assertEqual(len(res), 733)
def test_RegExpName(self):
"""
+4 -4
View File
@@ -77,14 +77,14 @@ class Span:
self.precision = 2
self.negative = False
if self.valid:
if self.date1.calendar != Date.CAL_GREGORIAN:
self.date1 = self.date1.to_calendar("gregorian")
if self.date2.calendar != Date.CAL_GREGORIAN:
self.date2 = self.date2.to_calendar("gregorian")
if self.date1.sortval < self.date2.sortval:
self.date1 = date2
self.date2 = date1
self.negative = True
if self.date1.calendar != Date.CAL_GREGORIAN:
self.date1 = self.date1.to_calendar("gregorian")
if self.date2.calendar != Date.CAL_GREGORIAN:
self.date2 = self.date2.to_calendar("gregorian")
if self.date1.get_modifier() == Date.MOD_NONE:
if self.date2.get_modifier() == Date.MOD_NONE:
val = self.date1.sortval - self.date2.sortval
+4 -2
View File
@@ -288,10 +288,12 @@ class GrampsType(object, metaclass=GrampsTypeMeta):
else:
return self.__value == value[0]
else:
if value.value == self._CUSTOM:
if value.value == self._CUSTOM and self.__value == self._CUSTOM:
return self.__string == value.string
else:
elif value.value != self._CUSTOM and self.__value != self._CUSTOM:
return self.__value == value.value
else:
return False
def __ne__(self, value):
return not self.__eq__(value)
+1
View File
@@ -299,6 +299,7 @@ class StyledText:
"""
if self._tags:
the_tags = [tag.serialize() for tag in self._tags]
the_tags.sort()
else:
the_tags = []
+31 -1
View File
@@ -38,7 +38,7 @@ from ...datehandler import get_date_formats, set_format
from ...datehandler import parser as _dp
from ...datehandler import displayer as _dd
from ...datehandler._datedisplay import DateDisplayEn
from ...lib.date import Date, DateError, Today, calendar_has_fixed_newyear
from ...lib.date import Date, DateError, Today, calendar_has_fixed_newyear, Span
date_tests = {}
@@ -432,6 +432,36 @@ class ArithmeticDateTest(BaseDateTest):
self.assertEqual(val1, val2,
"'%s' should be '%s' but was '%s'" % (exp1, val2, val1))
#-------------------------------------------------------------------------
#
# SpanTest
#
#-------------------------------------------------------------------------
class SpanTest(BaseDateTest):
"""
Test spans.
"""
tests = [((2000, 1, 31), (2000, 1, 1), 30),
((1799, 11, 19), (8, 2, 18, Date.CAL_FRENCH), 10),
((8, 2, 18, Date.CAL_FRENCH), (1799, 11, 4), 5),
((8, 2, 18, Date.CAL_FRENCH), (3, 2, 9, Date.CAL_FRENCH), 1836)]
def test_evaluate(self):
for value1, value2, duration in self.tests:
date1 = self._get_date(value1)
date2 = self._get_date(value2)
span1 = Span(date1, date2)
self.assertEqual(int(span1), duration)
span2 = Span(date2, date1)
self.assertEqual(int(span2), -duration)
def _get_date(self, value):
date = Date()
if len(value) == 4:
date.set_calendar(value[3])
date.set_yr_mon_day(value[0], value[1], value[2])
return date
#-------------------------------------------------------------------------
#
# SwedishDateTest
+3 -3
View File
@@ -64,11 +64,11 @@ class Test1(unittest.TestCase):
C = self.C.join([self.A, self.S, deepcopy(self.B)])
C = C.replace('X', StyledText('_', [self.T3]))
_C = ('123_456\ncleartext\nabc_def',
[((1, ''), 'v1', [(0, 2), (2, 3)]),
((0, ''), 'v3', [(3, 4)]),
[((0, ''), 'v3', [(3, 4)]),
((0, ''), 'v3', [(21, 22)]),
((1, ''), 'v1', [(0, 2), (2, 3)]),
((1, ''), 'v1', [(4, 6)]),
((2, ''), 'v2', [(19, 21), (18, 21)]),
((0, ''), 'v3', [(21, 22)]),
((2, ''), 'v2', [(22, 23), (22, 25)])])
self.assertEqual(C.serialize(), _C)
+14 -9
View File
@@ -31,8 +31,8 @@ Provide merge capabilities for persons.
#-------------------------------------------------------------------------
from ..db import DbTxn
from ..const import GRAMPS_LOCALE as glocale
_ = glocale.translation.sgettext
from ..errors import MergeError
_ = glocale.translation.sgettext
#-------------------------------------------------------------------------
#
@@ -49,11 +49,12 @@ class MergePersonQuery:
self.titanic = titanic
if self.check_for_spouse(self.phoenix, self.titanic):
raise MergeError(_("Spouses cannot be merged. To merge these "
"people, you must first break the relationship between them."))
"people, you must first break the relationship"
" between them."))
if self.check_for_child(self.phoenix, self.titanic):
raise MergeError(_("A parent and child cannot be merged. To merge "
"these people, you must first break the relationship between "
"them."))
"these people, you must first break the relatio"
"nship between them."))
def check_for_spouse(self, person1, person2):
"""Return if person1 and person2 are spouses of eachother."""
@@ -80,12 +81,12 @@ class MergePersonQuery:
main_family.merge(family)
for childref in family.get_child_ref_list():
child = self.database.get_person_from_handle(
childref.get_reference_handle())
childref.get_reference_handle())
if main_family_handle in child.parent_family_list:
child.remove_handle_references('Family', [family_handle])
else:
child.replace_handle_reference('Family', family_handle,
main_family_handle)
main_family_handle)
self.database.commit_person(child, trans)
if self.phoenix:
self.phoenix.remove_family_handle(family_handle)
@@ -143,7 +144,8 @@ class MergePersonQuery:
for family_handle in self.phoenix.get_parent_family_handle_list():
family = self.database.get_family_from_handle(family_handle)
if family.has_handle_reference('Person', old_handle):
family.replace_handle_reference('Person', old_handle,new_handle)
family.replace_handle_reference('Person', old_handle,
new_handle)
self.database.commit_family(family, trans)
family_merge_guard = False
@@ -182,7 +184,10 @@ class MergePersonQuery:
self.database.commit_family(family, trans)
parent_list.append(parents)
if self.database.get_default_handle() == old_handle:
self.database.set_default_person_handle(None)
hp_hdl = self.database.get_default_handle()
if (hp_hdl in (self.phoenix.get_handle(), self.titanic.get_handle())
and hp_hdl != self.phoenix.get_handle()):
self.database.set_default_person_handle(self.phoenix.get_handle())
self.database.remove_person(old_handle, trans)
return family_merge_ok
+1 -1
View File
@@ -83,7 +83,7 @@ class BasePluginManager:
def __init__(self):
""" This function should only be run once by get_instance() """
if BasePluginManager.__instance is not 1:
if BasePluginManager.__instance != 1:
raise Exception("This class is a singleton. "
"Use the get_instance() method")
+1 -1
View File
@@ -1135,7 +1135,7 @@ class PluginRegister:
def __init__(self):
""" This function should only be run once by get_instance() """
if PluginRegister.__instance is not 1:
if PluginRegister.__instance != 1:
raise Exception("This class is a singleton. "
"Use the get_instance() method")
self.stable_only = True
+8 -4
View File
@@ -113,6 +113,10 @@ else:
_GS_CMD = where_is("gs")
def esc(id_txt):
return id_txt.replace('"', '\\"')
#------------------------------------------------------------------------------
#
# GVOptions
@@ -575,7 +579,7 @@ class GVDocBase(BaseDoc, GVDoc):
text += ' URL="%s"' % url
text += " ]"
self.write(' "%s" %s;\n' % (node_id, text))
self.write(' "%s" %s;\n' % (esc(node_id), text))
def add_link(self, id1, id2, style="", head="", tail="", comment=""):
"""
@@ -583,7 +587,7 @@ class GVDocBase(BaseDoc, GVDoc):
Implements GVDocBase.add_link().
"""
self.write(' "%s" -> "%s"' % (id1, id2))
self.write(' "%s" -> "%s"' % (esc(id1), esc(id2)))
if style or head or tail:
self.write(' [')
@@ -635,7 +639,7 @@ class GVDocBase(BaseDoc, GVDoc):
Implements GVDocBase.add_samerank().
"""
self.write(' {rank=same "%s" "%s"}\n' % (id1, id2))
self.write(' {rank=same "%s" "%s"}\n' % (esc(id1), esc(id2)))
def rewrite_label(self, id, label):
"""
@@ -643,7 +647,7 @@ class GVDocBase(BaseDoc, GVDoc):
Implements GVDocBase.rewrite_label().
"""
self.write(' "%s" [label = "%s"]\n' % (id, label))
self.write(' "%s" [label = "%s"]\n' % (esc(id), label))
def start_subgraph(self, graph_id):
""" Implement GVDocBase.start_subgraph() """
+3 -3
View File
@@ -302,7 +302,7 @@ class TreeDocBase(BaseDoc, TreeDoc):
name = paper_size.get_name().lower()
if name == 'custom size':
width = str(paper_size.get_width())
height = str(paper_size.get_width())
height = str(paper_size.get_height())
paper = 'papersize={%scm,%scm}' % (width, height)
elif name in ('a', 'b', 'c', 'd', 'e'):
paper = 'ansi' + name + 'paper'
@@ -460,8 +460,7 @@ class TreeDocBase(BaseDoc, TreeDoc):
if os.path.isfile(path):
if win():
path = path.replace('\\', '/')
self.write(level+1, 'image = {{%s}%s},\n' %
os.path.splitext(path))
self.write(level+1, 'image = {%s},\n' % path)
break # first image only
self.write(level, '}\n')
@@ -519,6 +518,7 @@ class TreeDocBase(BaseDoc, TreeDoc):
date_str = date_str + '/' + stop_date
place = escape(_pd.display_event(db, event))
place = place.replace("-", "\--")
if modifier:
event_type += '+'
+3
View File
@@ -62,6 +62,7 @@ class EnumeratedListOption(Option):
:type value: int
:return: nothing
"""
self.ini_value = value
Option.__init__(self, label, value)
self.__items = []
self.__xml_items = []
@@ -138,6 +139,8 @@ class EnumeratedListOption(Option):
"""
if value in (v for v, d in self.__items):
Option.set_value(self, value)
elif value == self.ini_value:
return
else:
logging.warning(_("Value '%(val)s' not found for option '%(opt)s'") %
{'val' : str(value), 'opt' : self.get_label()})
+5
View File
@@ -769,6 +769,7 @@ def sanitize_citation(db, citation):
new_citation.set_gramps_id(citation.get_gramps_id())
new_citation.set_handle(citation.get_handle())
new_citation.set_change_time(citation.get_change_time())
new_citation.set_tag_list(citation.get_tag_list())
copy_srcattributes(db, citation, new_citation)
copy_notes(db, citation, new_citation)
copy_media_ref_list(db, citation, new_citation)
@@ -914,6 +915,7 @@ def sanitize_source(db, source):
new_source.set_gramps_id(source.get_gramps_id())
new_source.set_handle(source.get_handle())
new_source.set_change_time(source.get_change_time())
new_source.set_tag_list(source.get_tag_list())
for repo_ref in source.get_reporef_list():
if repo_ref and not repo_ref.get_privacy():
@@ -987,6 +989,7 @@ def sanitize_place(db, place):
new_place.set_type(place.get_type())
new_place.set_code(place.get_code())
new_place.set_placeref_list(place.get_placeref_list())
new_place.set_tag_list(place.get_tag_list())
copy_citation_ref_list(db, place, new_place)
copy_notes(db, place, new_place)
@@ -1017,6 +1020,7 @@ def sanitize_event(db, event):
new_event.set_handle(event.get_handle())
new_event.set_date_object(event.get_date_object())
new_event.set_change_time(event.get_change_time())
new_event.set_tag_list(event.get_tag_list())
copy_citation_ref_list(db, event, new_event)
copy_notes(db, event, new_event)
@@ -1120,6 +1124,7 @@ def sanitize_repository(db, repository):
new_repository.set_gramps_id(repository.get_gramps_id())
new_repository.set_handle(repository.get_handle())
new_repository.set_change_time(repository.get_change_time())
new_repository.set_tag_list(repository.get_tag_list())
copy_notes(db, repository, new_repository)
copy_addresses(db, repository, new_repository)
+1 -1
View File
@@ -346,7 +346,7 @@ class ReferencedBySelectionProxyDb(ProxyDbBase):
for tag in note.text.get_tags():
if tag.name == 'Link':
if tag.value.startswith("gramps://"):
obj_class, prop, value = tag.value[9:].split("/")
obj_class, prop, value = tag.value[9:].split("/", 2)
if obj_class == "Media": # bug6493
obj_class = "Media"
if prop == "handle":
+2
View File
@@ -142,6 +142,8 @@ class ProbablyAlive:
# person died more than MAX after current year
if death_date.is_valid():
birth_date = death_date.copy_offset_ymd(year=-self.MAX_AGE_PROB_ALIVE)
else:
birth_date = death_date
explain = _("death date")
if not death_date and birth_date:
+10 -6
View File
@@ -324,12 +324,16 @@ class Callback:
return
# Check signal exists
frame = inspect.currentframe()
c_frame = frame.f_back
c_code = c_frame.f_code
frame_info = (c_code.co_filename, c_frame.f_lineno, c_code.co_name)
if signal_name not in self.__signal_map:
self._warn("Attempt to emit to unknown signal: %s\n"
" from: file: %s\n"
" line: %d\n"
" func: %s\n"
% ((str(signal_name), ) + inspect.stack()[1][1:4]))
% ((str(signal_name), ) + frame_info))
return
# check that the signal is not already being emitted. This prevents
@@ -340,7 +344,7 @@ class Callback:
" from: file: %s\n"
" line: %d\n"
" func: %s\n"
% ((str(signal_name), ) + inspect.stack()[1][1:4]))
% ((str(signal_name), ) + frame_info))
return
try:
@@ -358,7 +362,7 @@ class Callback:
" from: file: %s\n"
" line: %d\n"
" func: %s\n"
% ((str(signal_name), ) + inspect.stack()[1][1:4]))
% ((str(signal_name), ) + frame_info))
return
# type check arguments
@@ -369,7 +373,7 @@ class Callback:
" from: file: %s\n"
" line: %d\n"
" func: %s\n"
% ((str(signal_name), ) + inspect.stack()[1][1:4]))
% ((str(signal_name), ) + frame_info))
return
if len(args) > 0:
@@ -379,7 +383,7 @@ class Callback:
" from: file: %s\n"
" line: %d\n"
" func: %s\n"
% ((str(signal_name), ) + inspect.stack()[1][1:4]))
% ((str(signal_name), ) + frame_info))
return
if arg_types is not None:
@@ -391,7 +395,7 @@ class Callback:
" line: %d\n"
" func: %s\n"
" arg passed was: %s, type of arg passed %s, type should be: %s\n"
% ((str(signal_name), ) + inspect.stack()[1][1:4] +\
% ((str(signal_name), ) + frame_info +\
(args[i], repr(type(args[i])), repr(arg_types[i]))))
return
if signal_name in self.__callback_map:
+1 -1
View File
@@ -49,7 +49,7 @@ class CSVTab(TabbedDoc):
else:
self.filename = filename
self.f = open(self.filename, "w",
self.f = open(self.filename, "w", newline='',
encoding='utf_8_sig' if win() else 'utf_8')
self.writer = csv.writer(self.f)
+3 -1
View File
@@ -117,7 +117,7 @@ _LOCALE_NAMES = {
_RTL_LOCALES = ('ar', 'he')
# locales with less than 70% currently translated
INCOMPLETE_TRANSLATIONS = ('ar', 'bg', 'he', 'ja', 'sq', 'ta', 'tr')
INCOMPLETE_TRANSLATIONS = ('ar', 'bg', 'sq', 'ta', 'tr', 'zh_HK', 'zh_TW')
def _check_mswin_locale(locale):
msloc = None
@@ -525,6 +525,8 @@ class GrampsLocale:
# with locale instead of gettext. Win32 doesn't support bindtextdomain.
if self.localedir:
if not sys.platform == 'win32':
# bug12278, _build_popup_ui() under linux and macOS
locale.textdomain(self.localedomain)
locale.bindtextdomain(self.localedomain, self.localedir)
else:
self._win_bindtextdomain(self.localedomain.encode('utf-8'),
+37 -13
View File
@@ -126,16 +126,33 @@ if win():
pass # ok
elif not os.path.isdir(HOME_DIR):
os.makedirs(HOME_DIR)
sys.stdout = sys.stderr = open(logfile, "w")
stderrh = logging.StreamHandler(sys.stderr)
stderrh.setFormatter(form)
stderrh.setLevel(logging.DEBUG)
sys.stdout = sys.stderr = open(logfile, "w", encoding='utf-8')
# macOS sets stderr to /dev/null when running without a terminal,
# e.g. if Gramps.app is lauched by double-clicking on it in
# finder. Write to a file instead.
if mac() and not sys.stdin.isatty():
from tempfile import gettempdir
# Setup the base level logger, this one gets
# everything.
l = logging.getLogger()
l.setLevel(logging.WARNING)
l.addHandler(stderrh)
log_file_name = 'gramps-' + str(os.getpid()) + '.log'
log_file_path = os.path.join(gettempdir(), log_file_name)
log_file_handler = logging.FileHandler(log_file_path, mode='a',
encoding='utf-8')
log_file_handler.setFormatter(form)
log_file_handler.setLevel(logging.DEBUG)
logger = logging.getLogger()
logger.setLevel(logging.WARNING)
logger.addHandler(log_file_handler)
else:
stderrh = logging.StreamHandler(sys.stderr)
stderrh.setFormatter(form)
stderrh.setLevel(logging.DEBUG)
# Setup the base level logger, this one gets
# everything.
l = logging.getLogger()
l.setLevel(logging.WARNING)
l.addHandler(stderrh)
def exc_hook(err_type, value, t_b):
@@ -212,7 +229,7 @@ def show_settings():
Gtk.get_minor_version(), Gtk.get_micro_version())
except: # any failure to 'get' the version
gtkver_str = 'unknown version'
except ImportError:
except (ImportError, ValueError):
gtkver_str = 'not found'
# no DISPLAY is a RuntimeError in an older pygtk (e.g. 2.17 in Fedora 14)
except RuntimeError:
@@ -308,9 +325,16 @@ def show_settings():
.replace('(', '').replace(')', '')
bsddb_location_str = bsddb.__file__
except:
bsddb_str = 'not found'
bsddb_db_str = 'not found'
bsddb_location_str = 'not found'
try:
import berkeleydb as bsddb
bsddb_str = bsddb.__version__
bsddb_db_str = str(bsddb.db.version()).replace(', ', '.')\
.replace('(', '').replace(')', '')
bsddb_location_str = bsddb.__file__
except:
bsddb_str = 'not found'
bsddb_db_str = 'not found'
bsddb_location_str = 'not found'
try:
import sqlite3
+5 -1
View File
@@ -68,7 +68,11 @@ try:
import bsddb3 as bsddb ## ok, in try/except
BSDDB_STR = ellipses(str(bsddb.__version__) + " " + str(bsddb.db.version()))
except:
BSDDB_STR = 'not found'
try:
import berkeleydb as bsddb
BSDDB_STR = ellipses(str(bsddb.__version__) + " " + str(bsddb.db.version()))
except:
BSDDB_STR = 'not found'
try:
import sqlite3
+38 -21
View File
@@ -471,27 +471,36 @@ class ClipCitation(ClipHandleWrapper):
def refresh(self):
if self._handle:
citation = clipdb.get_citation_from_handle(self._handle)
if citation:
self._title = citation.get_gramps_id()
notelist = list(map(clipdb.get_note_from_handle,
citation.get_note_list()))
srctxtlist = [note for note in notelist
if note.get_type() == NoteType.SOURCE_TEXT]
page = citation.get_page()
if not page:
page = _('not available|NA')
text = ""
if srctxtlist:
text = " ".join(srctxtlist[0].get().split())
#String must be unicode for truncation to work for non
#ascii characters
text = str(text)
if len(text) > 60:
text = text[:60] + "..."
self._value = _("Volume/Page: %(pag)s -- %(sourcetext)s") % {
'pag' : page,
'sourcetext' : text}
try:
citation = clipdb.get_citation_from_handle(self._handle)
if citation:
self._title = citation.get_gramps_id()
notelist = list(map(clipdb.get_note_from_handle,
citation.get_note_list()))
srctxtlist = [note for note in notelist
if note.get_type() == NoteType.SOURCE_TEXT]
page = citation.get_page()
if not page:
page = _('not available|NA')
text = ""
if srctxtlist:
text = " ".join(srctxtlist[0].get().split())
#String must be unicode for truncation to work for non
#ascii characters
text = str(text)
if len(text) > 60:
text = text[:60] + "..."
self._value = _("Volume/Page: %(pag)s -- %(sourcetext)s"
) % { 'pag' : page,
'sourcetext' : text}
except:
# We are in the Source tree view. The shortcuts only
# work for citations.
print("We cannot copy the source from this view."
" Use drag and drop.")
self._title = self._value = ''
self._pickle = self._type = self._objclass = None
self._handle = self._dbid = self._dbname = None
class ClipRepoRef(ClipObjWrapper):
@@ -1281,6 +1290,14 @@ class ClipboardListView:
model.insert_before(node, data)
else:
model.insert_after(node, data)
elif isinstance(data[1], ClipCitation):
if data[3]:
# we have a real citation
model.append(data)
#else:
# We are in a Source treeview and trying
# to copy a source with a shortcut.
# Use drag and drop to do that.
else:
model.append(data)
+32 -31
View File
@@ -1241,7 +1241,7 @@ class GrampsPreferences(ConfigureDialog):
row, 'preferences.place-auto', start=0, stop=1,
extra_callback=self.auto_title_changed,
tooltip=_("Enables automatic place title generation "
"using specifed format."))
"using specified format."))
self.auto_title_changed(cb_widget)
hbox.pack_start(self.pformat, True, True, 0)
hbox.pack_start(self.fmt_btn, False, False, 0)
@@ -1256,14 +1256,15 @@ class GrampsPreferences(ConfigureDialog):
_("Years, Months, Days")]
list(map(obox.append_text, age_precision))
# Combo_box active index is from 0 to 2, we need values from 1 to 3
constant = 'preferences.age-display-precision'
active = config.get(constant) - 1
active = config.get('preferences.age-display-precision') - 1
if active >= 0 and active <= 2:
obox.set_active(active)
else:
obox.set_active(0)
obox.connect('changed',
lambda obj: config.set(constant, obj.get_active() + 1))
obox.connect(
'changed',
lambda obj: config.set('preferences.age-display-precision',
obj.get_active() + 1))
lwidget = BasicLabel(_("%s: ")
% _('Age display precision (requires restart)'))
grid.attach(lwidget, 0, row, 1, 1)
@@ -1300,10 +1301,10 @@ class GrampsPreferences(ConfigureDialog):
obox = Gtk.ComboBoxText()
formats = FamilyRelType().get_standard_names()
list(map(obox.append_text, formats))
constant = 'preferences.family-relation-type'
obox.set_active(config.get(constant))
obox.set_active(config.get('preferences.family-relation-type'))
obox.connect('changed',
lambda obj: config.set(constant, obj.get_active()))
lambda obj: config.set('preferences.family-relation-type',
obj.get_active()))
lwidget = BasicLabel(_("%s: ") % _('Default family relationship'))
grid.attach(lwidget, 0, row, 1, 1)
grid.attach(obox, 1, row, 2, 1)
@@ -1489,6 +1490,26 @@ class GrampsPreferences(ConfigureDialog):
align=Gtk.Align.CENTER, bold=True)
row = 1
self.add_pos_int_entry(
grid, _('Markup for invalid date format'),
row, 'preferences.invalid-date-format',
self.update_markup_entry,
helptext=_(
'Convenience markups are:\n'
'<b>&lt;b&gt;Bold&lt;/b&gt;</b>\n'
'<big>&lt;big&gt;'
'Makes font relatively larger&lt;/big&gt;</big>\n'
'<i>&lt;i&gt;Italic&lt;/i&gt;</i>\n'
'<s>&lt;s&gt;Strikethrough&lt;/s&gt;</s>\n'
'<sub>&lt;sub&gt;Subscript&lt;/sub&gt;</sub>\n'
'<sup>&lt;sup&gt;Superscript&lt;/sup&gt;</sup>\n'
'<small>&lt;small&gt;'
'Makes font relatively smaller&lt;/small&gt;</small>\n'
'<tt>&lt;tt&gt;Monospace font&lt;/tt&gt;</tt>\n'
'<u>&lt;u&gt;Underline&lt;/u&gt;</u>\n\n'
'For example: &lt;u&gt;&lt;b&gt;%s&lt;/b&gt;&lt;/u&gt;\n'
'will display <u><b>Underlined bold date</b></u>.\n'))
row += 1
self.add_spinner(
grid, _('Date about range'),
row, 'behavior.date-about-range', (1, 9999))
@@ -1516,26 +1537,6 @@ class GrampsPreferences(ConfigureDialog):
self.add_spinner(
grid, _('Average years between generations'),
row, 'behavior.avg-generation-gap', (10, 30))
row += 1
self.add_pos_int_entry(
grid, _('Markup for invalid date format'),
row, 'preferences.invalid-date-format',
self.update_markup_entry,
helptext=_(
'Convenience markups are:\n'
'<b>&lt;b&gt;Bold&lt;/b&gt;</b>\n'
'<big>&lt;big&gt;'
'Makes font relatively larger&lt;/big&gt;</big>\n'
'<i>&lt;i&gt;Italic&lt;/i&gt;</i>\n'
'<s>&lt;s&gt;Strikethrough&lt;/s&gt;</s>\n'
'<sub>&lt;sub&gt;Subscript&lt;/sub&gt;</sub>\n'
'<sup>&lt;sup&gt;Superscript&lt;/sup&gt;</sup>\n'
'<small>&lt;small&gt;'
'Makes font relatively smaller&lt;/small&gt;</small>\n'
'<tt>&lt;tt&gt;Monospace font&lt;/tt&gt;</tt>\n'
'<u>&lt;u&gt;Underline&lt;/u&gt;</u>\n\n'
'For example: &lt;u&gt;&lt;b&gt;%s&lt;/b&gt;&lt;/u&gt;\n'
'will display <u><b>Underlined bold date</b></u>.\n'))
return _('Dates'), grid
@@ -1572,7 +1573,7 @@ class GrampsPreferences(ConfigureDialog):
self.add_checkbox(grid, _('Add tag on import'), current_line,
cb_const, stop=2,
extra_callback=self.toggle_tag_on_import,
tooltip=_("Specifed tag will be added on import.\n"
tooltip=_("Specified tag will be added on import.\n"
"Clear to set default value."))
grid.attach(self.tag_format_entry, 2, current_line, 1, 1)
@@ -2093,9 +2094,9 @@ class GrampsPreferences(ConfigureDialog):
self.all_avail_fonts, callback=self.utf8_update_font,
valueactive=True, setactive=active_val)
if len(available_fonts) == 1:
single_font = self.all_avail_fonts[choosefont.get_active()][1]
single_font = self.all_avail_fonts[choosefont.get_active()][0]
config.set('utf8.selected-font',
self.all_avail_fonts[single_font])
self.all_avail_fonts[single_font][1])
self.utf8_show_example()
symbols = Symbols()
all_sbls = symbols.get_death_symbols()
+9 -5
View File
@@ -317,6 +317,13 @@ def add_all_files_filter(chooser):
mime_filter.add_pattern('*')
chooser.add_filter(mime_filter)
def icase(ext):
"""
Return a glob reresenting a case insensitive file extension.
"""
return ''.join(['[{}{}]'.format(s.lower(), s.upper()) for s in ext])
#-------------------------------------------------------------------------
#
# Format selectors: explictly set the format of the file
@@ -446,8 +453,7 @@ class GrampsImportFileDialog(ManagedWindow):
file_filter = Gtk.FileFilter()
name = "%s (.%s)" % (plugin.get_name(), plugin.get_extension())
file_filter.set_name(name)
file_filter.add_pattern("*.%s" % plugin.get_extension())
file_filter.add_pattern(plugin.get_extension().capitalize())
file_filter.add_pattern("*.%s" % icase(plugin.get_extension()))
import_dialog.add_filter(file_filter)
(box, type_selector) = format_maker()
@@ -526,7 +532,7 @@ class GrampsImportFileDialog(ManagedWindow):
return True
else:
try:
f = file(filename,'w')
f = open(filename, 'w')
f.close()
os.remove(filename)
except IOError:
@@ -542,7 +548,6 @@ class GrampsImportFileDialog(ManagedWindow):
self.import_info = None
self._begin_progress()
self.uistate.set_sensitive(False)
self.uistate.viewmanager.enable_menu(False)
try:
#an importer can return an object with info, object.info_text()
@@ -563,7 +568,6 @@ class GrampsImportFileDialog(ManagedWindow):
except Exception:
_LOG.error("Failed to import database.", exc_info=True)
self.uistate.set_sensitive(True)
self.uistate.viewmanager.enable_menu(True)
self._end_progress()
def build_menu_names(self, obj): # this is meaningless since it's modal
+1 -1
View File
@@ -1013,7 +1013,7 @@ class DbManager(CLIDbManager, ManagedWindow):
"""
Handle the reception of drag data
"""
drag_value = selection.get_data().decode()
drag_value = selection.get_data().decode().strip(' \r\n\x00')
fname = None
type = None
title = None
+4 -1
View File
@@ -520,7 +520,10 @@ class DisplayState(Callback):
history.push(handle)
def set_sensitive(self, state):
self.window.set_sensitive(state)
tbar = self.uimanager.get_widget('ToolBar')
tbar.set_sensitive(state)
self.viewmanager.hpane.set_sensitive(state)
self.uimanager.enable_all_actions(state)
def db_changed(self, db):
db.connect('long-op-start', self.progress_monitor.add_op)
@@ -46,7 +46,7 @@ from html import escape
#
#-------------------------------------------------------------------------
from ...widgets.undoablebuffer import UndoableBuffer
from gramps.gen.lib import EventRoleType
from gramps.gen.lib import (EventRoleType, EventType, Date)
from gramps.gen.datehandler import get_date, get_date_valid
from gramps.gen.config import config
from gramps.gen.utils.db import get_participant_from_event
@@ -175,7 +175,12 @@ class EventRefModel(Gtk.TreeStore):
"""
date = event.get_date_object()
if date and self.start_date:
return (date - self.start_date).format(precision=age_precision)
if (date == self.start_date and date.modifier == Date.MOD_NONE
and not (event.get_type().is_death_fallback() or
event.get_type() == EventType.DEATH)):
return ""
else:
return (date - self.start_date).format(precision=age_precision)
else:
return ""
+10 -9
View File
@@ -38,7 +38,7 @@ from gramps.gen.lib import EventType, NoteType
from gramps.gen.db import DbTxn
from ..glade import Glade
from .displaytabs import (CitationEmbedList, NoteTab, GalleryTab,
EventBackRefList, AttrEmbedList)
EventBackRefList, EventAttrEmbedList)
from ..widgets import (PrivacyButton, MonitoredEntry,
MonitoredDate, MonitoredDataType, MonitoredTagList)
from .editreference import RefTab, EditReference
@@ -209,10 +209,10 @@ class EditEventRef(EditReference):
self._add_tab(notebook, self.srcref_list)
self.track_ref_for_deletion("srcref_list")
self.attr_list = AttrEmbedList(self.dbstate,
self.uistate,
self.track,
self.source.get_attribute_list())
self.attr_list = EventAttrEmbedList(self.dbstate,
self.uistate,
self.track,
self.source.get_attribute_list())
self._add_tab(notebook, self.attr_list)
self.track_ref_for_deletion("attr_list")
@@ -247,10 +247,11 @@ class EditEventRef(EditReference):
self._add_tab(notebook, self.backref_tab)
self.track_ref_for_deletion("backref_tab")
self.attr_ref_list = AttrEmbedList(self.dbstate,
self.uistate,
self.track,
self.source_ref.get_attribute_list())
self.attr_ref_list = EventAttrEmbedList(
self.dbstate,
self.uistate,
self.track,
self.source_ref.get_attribute_list())
self._add_tab(notebook_ref, self.attr_ref_list)
self.track_ref_for_deletion("attr_ref_list")
+9 -3
View File
@@ -366,6 +366,7 @@ class EditName(EditSecondary):
5/ local set, not global set --> set (change local)
6/ local set, global set --> set (set to global if possible)
"""
ngm = False # name group mapping setting
closeit = True
surname = self.obj.get_primary_surname().get_surname()
group_as= self.obj.get_group_as()
@@ -388,7 +389,7 @@ class EditName(EditSecondary):
val = q.run()
if val:
#delete the grouping link on database
self.db.set_name_group_mapping(surname, None)
ngm = None # delay setting until dialog closes
self.obj.set_group_as("")
else :
closeit = False
@@ -421,9 +422,9 @@ class EditName(EditSecondary):
val = q.run()
if val:
if group_as == surname :
self.db.set_name_group_mapping(surname, None)
ngm = None # delay setting until dialog closes
else:
self.db.set_name_group_mapping(surname, group_as)
ngm = group_as # delay setting until dialog closes
self.obj.set_group_as("")
else:
if self.global_group_set :
@@ -455,10 +456,15 @@ class EditName(EditSecondary):
pass
if closeit:
db = self.db # close cleanup loses self.db, so save for later
if self.callback:
self.callback(self.obj)
self.callback = None
self.close()
# bug 12328 to avoid gui interaction during view rebuild, delay
# the rebuild until closeing this dialog
if ngm is not False:
db.set_name_group_mapping(surname, ngm)
def _cleanup_on_exit(self):
"""
+47 -8
View File
@@ -158,32 +158,71 @@ class EditPlace(EditPrimary):
self.obj.set_code, self.obj.get_code,
self.db.readonly)
entry = self.top.get_object("lon_entry")
entry.set_ltr_mode()
self.longitude = MonitoredEntry(
self.top.get_object("lon_entry"),
entry,
self.obj.set_longitude, self.obj.get_longitude,
self.db.readonly)
self.longitude.connect("validate", self._validate_coordinate, "lon")
#force validation now with initial entry
self.top.get_object("lon_entry").validate(force=True)
entry.validate(force=True)
entry = self.top.get_object("lat_entry")
entry.set_ltr_mode()
self.latitude = MonitoredEntry(
self.top.get_object("lat_entry"),
entry,
self.obj.set_latitude, self.obj.get_latitude,
self.db.readonly)
self.latitude.connect("validate", self._validate_coordinate, "lat")
#force validation now with initial entry
self.top.get_object("lat_entry").validate(force=True)
entry.validate(force=True)
entry = self.top.get_object("latlon_entry")
entry.set_ltr_mode()
self.latlon = MonitoredEntry(
self.top.get_object("latlon_entry"),
entry,
self.set_latlongitude, self.get_latlongitude,
self.db.readonly)
def set_latlongitude(self, value):
"""
This method is useful for directly copying the coordinates
of openstreetmap, googlemaps, and perhaps other if they
provide coordinates like it is define in conv_lat_lon
(see gramps/gen/utils/place.py)
To copy the coordinates:
- openstreetmap:
1 - choose the place where you want to save the coordinates.
2 - right click on this place
3 - select "show address"
4 - On the left side of the map, copy the coordinates of
"Result from internal"
5 - In the latlon field of the edit place window of gramps,
type <CTRL> V
- googlemap:
1 - choose the place where you want to save the coordinates.
2 - right click on this place
3 - select the coordinates at the top of the popup window.
They are automaticaly copied.
4 - In the latlon field of the edit place window of gramps,
type <CTRL> V
"""
try:
coma = value.index(',')
self.longitude.set_text(value[coma+1:].strip())
self.latitude.set_text(value[:coma].strip())
# Bug 12349, 12374
parts = value.split(', ')
if len(parts) == 2:
latitude = parts[0].strip().replace(',', '.')
longitude = parts[1].strip().replace(',', '.')
else:
latitude, longitude = value.split(',')
self.longitude.set_text(longitude)
self.latitude.set_text(latitude)
self.top.get_object("lat_entry").validate(force=True)
self.top.get_object("lon_entry").validate(force=True)
self.obj.set_latitude(self.latitude.get_value())
+21 -8
View File
@@ -151,32 +151,45 @@ class EditPlaceRef(EditReference):
self.source.set_code, self.source.get_code,
self.db.readonly)
entry = self.top.get_object("lon_entry")
entry.set_ltr_mode()
self.longitude = MonitoredEntry(
self.top.get_object("lon_entry"),
entry,
self.source.set_longitude, self.source.get_longitude,
self.db.readonly)
self.longitude.connect("validate", self._validate_coordinate, "lon")
#force validation now with initial entry
self.top.get_object("lon_entry").validate(force=True)
entry.validate(force=True)
entry = self.top.get_object("lat_entry")
entry.set_ltr_mode()
self.latitude = MonitoredEntry(
self.top.get_object("lat_entry"),
entry,
self.source.set_latitude, self.source.get_latitude,
self.db.readonly)
self.latitude.connect("validate", self._validate_coordinate, "lat")
#force validation now with initial entry
self.top.get_object("lat_entry").validate(force=True)
entry.validate(force=True)
entry = self.top.get_object("latlon_entry")
entry.set_ltr_mode()
self.latlon = MonitoredEntry(
self.top.get_object("latlon_entry"),
entry,
self.set_latlongitude, self.get_latlongitude,
self.db.readonly)
def set_latlongitude(self, value):
try:
coma = value.index(',')
self.longitude.set_text(value[coma+1:].strip())
self.latitude.set_text(value[:coma].strip())
# Bug 12349, 12374
parts = value.split(', ')
if len(parts) == 2:
latitude = parts[0].strip().replace(',', '.')
longitude = parts[1].strip().replace(',', '.')
else:
latitude, longitude = value.split(',')
self.longitude.set_text(longitude)
self.latitude.set_text(latitude)
self.top.get_object("lat_entry").validate(force=True)
self.top.get_object("lon_entry").validate(force=True)
self.source.set_latitude(self.latitude.get_value())
+8 -4
View File
@@ -311,7 +311,10 @@ class PlaceEntry(ObjEntry):
def get_label(self, place):
place_title = place_displayer.display(self.db, place)
return "%s [%s]" % (place_title, place.gramps_id)
# When part of the place title contains RTL text, the gramps_id gets
# messed up; so use Unicode FSI/PDI and LRM chars to isolate it.
# see bug 10124 and PR924
return "%s \u2068[%s]\u200e\u2069" % (place_title, place.gramps_id)
def call_editor(self, obj=None):
if obj is None:
@@ -356,7 +359,7 @@ class SourceEntry(ObjEntry):
return self.db.get_source_from_handle(handle)
def get_label(self, source):
return "%s [%s]" % (source.get_title(), source.gramps_id)
return "%s \u2068[%s]\u200e\u2069" % (source.get_title(), source.gramps_id)
def call_editor(self, obj=None):
if obj is None:
@@ -402,7 +405,8 @@ class MediaEntry(ObjEntry):
return self.db.get_media_from_handle(handle)
def get_label(self, object):
return "%s [%s]" % (object.get_description(), object.gramps_id)
return "%s \u2068[%s]\u200e\u2069" % (object.get_description(),
object.gramps_id)
def call_editor(self, obj=None):
if obj is None:
@@ -462,7 +466,7 @@ class NoteEntry(ObjEntry):
txt = " ".join(note.get().split())
if len(txt) > 35:
txt = txt[:35] + "..."
return "%s [%s]" % (txt, note.gramps_id)
return "%s \u2068[%s]\u200e\u2069" % (txt, note.gramps_id)
def call_editor(self, obj=None):
if obj is None:
+5 -3
View File
@@ -1,11 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.18.3 -->
<!-- Generated with glade 3.22.2 -->
<interface>
<requires lib="gtk+" version="3.10"/>
<requires lib="grampswidgets" version="0.0"/>
<object class="GtkDialog" id="editplace">
<property name="can_focus">False</property>
<property name="type_hint">dialog</property>
<child type="titlebar">
<placeholder/>
</child>
<child internal-child="vbox">
<object class="GtkBox" id="dialog-vbox19">
<property name="visible">True</property>
@@ -101,7 +103,7 @@
<child>
<object class="GtkLabel" id="comment1">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="label" translatable="yes">Either use the two fields below to enter coordinates (latitude and longitude),</property>
<property name="hexpand">True</property>
+2 -2
View File
@@ -233,7 +233,7 @@ class ListModel:
new_value = not self.model[path][col]
self.model[path][col] = new_value
if col in self.function:
self.function[col](int(path), new_value)
self.function[col](path, new_value)
def __edited_cb(self, cell, path, new_text, col):
"""
@@ -241,7 +241,7 @@ class ListModel:
"""
self.model[path][col] = new_text
if col in self.function:
self.function[col](int(path), new_text)
self.function[col](path, new_text)
def unselect(self):
"""
+5 -1
View File
@@ -37,7 +37,11 @@ try:
import bsddb3 as bsddb # ok, in try/except
BSDDB_STR = str(bsddb.__version__) + " " + str(bsddb.db.version())
except:
BSDDB_STR = 'not found'
try:
import berkeleydb as bsddb
BSDDB_STR = str(bsddb.__version__) + " " + str(bsddb.db.version())
except:
BSDDB_STR = 'not found'
try:
import sqlite3
+22
View File
@@ -32,6 +32,14 @@ the create/deletion of dialog windows.
import os
from io import StringIO
import html
import logging
#-------------------------------------------------------------------------
#
# Set up logging
#
#-------------------------------------------------------------------------
_LOG = logging.getLogger(".")
#-------------------------------------------------------------------------
#
# GNOME/GTK
@@ -575,6 +583,9 @@ class ManagedWindow:
Takes care of closing children and removing itself from menu.
"""
if hasattr(self, 'opened') and not self.opened:
_LOG.warning("Tried to close a ManagedWindow more than once.")
return # in case close somehow gets called again
self.opened = False
self._save_position(save_config=False) # the next line will save it
self._save_size()
@@ -622,6 +633,17 @@ class ManagedWindow:
if self.horiz_position_key is not None:
horiz_position = config.get(self.horiz_position_key)
vert_position = config.get(self.vert_position_key)
# make sure some of left side shows on screen
# for part time multi monitor setups
screen = Gtk.Window().get_screen()
s_width = screen.get_width()
s_height = screen.get_height()
if horiz_position > s_width - 50 or vert_position > s_height - 50:
(p_width, p_height) = self.parent_window.get_size()
(p_horiz, p_vert) = self.parent_window.get_position()
(w_width, w_height) = self.window.get_size()
horiz_position = p_horiz + ((p_width - w_width) // 2)
vert_position = p_vert + ((p_height - w_height) // 2)
self.window.move(horiz_position, vert_position)
def _save_position(self, save_config=True):
+2 -1
View File
@@ -1756,7 +1756,8 @@ class GuiDestinationOption(Gtk.Box):
name = get_curr_dir
fcd.set_current_folder(name)
else:
fcd.set_current_name(name)
fcd.set_current_name(os.path.basename(name))
fcd.set_current_folder(os.path.dirname(name))
status = fcd.run()
if status == Gtk.ResponseType.OK:
+10 -5
View File
@@ -768,7 +768,7 @@ class ToolManagedWindowBase(ManagedWindow):
self.notebook = Gtk.Notebook()
self.notebook.set_border_width(6)
self.window.get_content_area().add(self.notebook)
self.window.get_content_area().pack_start(self.notebook, True, True, 0)
self.results_text = Gtk.TextView()
self.results_text.connect('button-press-event',
@@ -814,9 +814,12 @@ class ToolManagedWindowBase(ManagedWindow):
buffer_location = view.window_to_buffer_coords(Gtk.TextWindowType.TEXT,
int(event.x),
int(event.y))
iter = view.get_iter_at_location(*buffer_location)
_iter = view.get_iter_at_location(*buffer_location)
if isinstance(_iter, tuple): # Gtk changed api in recent versions
_iter = _iter[1]
for (tag, person_handle) in self.tags:
if iter.has_tag(tag):
if _iter.has_tag(tag):
_window = view.get_window(Gtk.TextWindowType.TEXT)
_window.set_cursor(self.link_cursor)
return False # handle event further, if necessary
@@ -827,9 +830,11 @@ class ToolManagedWindowBase(ManagedWindow):
buffer_location = view.window_to_buffer_coords(Gtk.TextWindowType.TEXT,
int(event.x),
int(event.y))
iter = view.get_iter_at_location(*buffer_location)
_iter = view.get_iter_at_location(*buffer_location)
if isinstance(_iter, tuple): # Gtk changed api in recent versions
_iter = _iter[1]
for (tag, person_handle) in self.tags:
if iter.has_tag(tag):
if _iter.has_tag(tag):
person = self.db.get_person_from_handle(person_handle)
if event.button == 1:
if event.type == Gdk.EventType.DOUBLE_BUTTON_PRESS:
+5 -5
View File
@@ -586,11 +586,11 @@ class ExportAssistant(ManagedWindow, Gtk.Assistant):
ix = self.get_selected_format_index()
config.set('behavior.recent-export-type', ix)
export_function = self.map_exporters[ix].get_export_function()
success = export_function(self.dbstate.db,
filename,
User(error=ErrorDialog, parent=self.uistate.window,
callback=self.callback),
self.option_box_instance)
success = export_function(
self.dbstate.db, filename,
User(error=ErrorDialog, parent=self.window,
callback=self.callback),
self.option_box_instance)
except:
#an error not catched in the export_function itself
success = False
+1 -1
View File
@@ -71,7 +71,7 @@ class GuiPluginManager(Callback):
def __init__(self):
""" This function should only be run once by get_instance() """
if GuiPluginManager.__instance is not 1:
if GuiPluginManager.__instance != 1:
raise Exception("This class is a singleton. "
"Use the get_instance() method")
-1
View File
@@ -325,7 +325,6 @@ class BaseSelector(ManagedWindow):
self.sortorder = Gtk.SortType.ASCENDING
else:
self.sortorder = Gtk.SortType.DESCENDING
self.model.reverse_order()
self.build_tree()
return True
+10
View File
@@ -496,6 +496,16 @@ class UIManager():
"""
return group.act_group.lookup_action(actionname)
def enable_all_actions(self, state):
for group in self.action_groups:
if group.act_group:
for item in group.actionlist:
action = group.act_group.lookup_action(item[ACTION_NAME])
if action:
# We check in case the group has not been inserted into
# UIManager yet
action.set_enabled(group.sensitive if state else False)
def dump_all_accels(self):
''' A function used diagnostically to see what accels are present.
This will only dump the current accel set, if other non-open windows
+22 -5
View File
@@ -450,7 +450,7 @@ def open_file_with_default_application(path, uistate):
GLib.timeout_add_seconds(1, poll_external, (proc, errstrings, uistate))
return
def process_pending_events(max_count=10):
def process_pending_events(max_count=20):
"""
Process pending events, but don't get into an infinite loop.
"""
@@ -549,19 +549,36 @@ def color_graph_box(alive=False, gender=Person.MALE):
# color functions. For hsv and hls values, use import colorsys !
def name_to_hex(value):
"""
Convert a named color to a 6 digit hexadecimal value to rgb.
"""
if value[:1] != "#":
# We have color names like "green", "orange", "yellow",...
# We need to convert them to hex format
Color = Gdk.RGBA()
Color.parse(value)
value = "#%02x%02x%02x" % (int(Color.red * 255),
int(Color.green * 255),
int(Color.blue * 255))
return value
def hex_to_rgb_float(value):
"""
Convert a hexademical value #FF00FF to rgb. Returns tuple of float between
0 and 1
Convert a 6 or 12 digit hexademical value to rgb. Returns tuple of floats
between 0 and 1.
"""
value = name_to_hex(value)
value = value.lstrip('#')
lenv = len(value)
return tuple(int(value[i:i+lenv//3], 16)/256.0 for i in range(0, lenv, lenv//3))
return tuple(int(value[i:i+lenv//3], 16)/16.0**(lenv//3)
for i in range(0, lenv, lenv//3))
def hex_to_rgb(value):
"""
Convert a hexadecimal value #FF00FF to rgb. Returns tuple of integers
Convert a 6 or 12 digit hexadecimal value to rgb. Returns tuple of integers.
"""
value = name_to_hex(value)
value = value.lstrip('#')
lenv = len(value)
return tuple(int(value[i:i+lenv//3], 16) for i in range(0, lenv, lenv//3))
+44 -68
View File
@@ -56,6 +56,7 @@ LOG = logging.getLogger(".")
#-------------------------------------------------------------------------
from gi.repository import Gtk
from gi.repository import Gdk
from gi.repository import GLib
#-------------------------------------------------------------------------
#
@@ -273,13 +274,13 @@ class ViewManager(CLIManager):
Gdk.ModifierType.CONTROL_MASK | Gdk.ModifierType.MOD1_MASK)
vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
self.window.add(vbox)
hpane = Gtk.Paned()
self.hpane = Gtk.Paned()
self.ebox = Gtk.EventBox()
self.navigator = Navigator(self)
self.ebox.add(self.navigator.get_top())
hpane.pack1(self.ebox, False, False)
hpane.show()
self.hpane.pack1(self.ebox, False, False)
self.hpane.show()
self.notebook = Gtk.Notebook()
self.notebook.set_scrollable(True)
@@ -288,13 +289,14 @@ class ViewManager(CLIManager):
self.__init_lists()
self.__build_ui_manager()
hpane.add2(self.notebook)
self.hpane.add2(self.notebook)
toolbar = self.uimanager.get_widget('ToolBar')
toolbar.show_all()
self.statusbar = Statusbar()
self.statusbar.show()
vbox.pack_end(self.statusbar, False, True, 0)
vbox.pack_start(toolbar, False, True, 0)
vbox.pack_end(hpane, True, True, 0)
vbox.pack_end(self.hpane, True, True, 0)
vbox.show()
self.uistate = DisplayState(self.window, self.statusbar,
@@ -784,7 +786,12 @@ class ViewManager(CLIManager):
self.__create_page(page_def[0], page_def[1])
self.notebook.set_current_page(page_num)
return self.pages[page_num]
try:
return self.pages[page_num]
except IndexError:
# The following is to avoid 'IndexError: list index out of range'
# Should solve bug 12636
return self.pages[0]
def get_category(self, cat_name):
"""
@@ -835,6 +842,8 @@ class ViewManager(CLIManager):
hbox.add(Gtk.Label(label=pdata.name))
hbox.show_all()
page_num = self.notebook.append_page(page.get_display(), hbox)
if self.active_page:
self.active_page.post_create()
if not self.file_loaded:
self.uimanager.set_actions_visible(self.actiongroup, False)
self.uimanager.set_actions_visible(self.readonlygroup, False)
@@ -875,23 +884,30 @@ class ViewManager(CLIManager):
"""
Perform necessary actions when a page is changed.
"""
if not self.dbstate.is_open():
return
self.__disconnect_previous_page()
self.active_page = self.pages[page_num]
# The following is to avoid 'IndexError: list index out of range'
# Bugs: 12304, 12429, 12623, 12695
try:
self.active_page = self.pages[page_num]
except IndexError:
self.active_page = self.pages[0]
self.__connect_active_page(page_num)
self.active_page.set_active()
while Gtk.events_pending():
Gtk.main_iteration()
self.uimanager.update_menu()
# bug 12048 this avoids crash if part of toolbar in view is not shown
# because of a small screen when changing views. Part of the Gtk code
# was deleting a toolbar object too soon; and another part of Gtk still
# had a reference.
def page_changer(self):
self.uimanager.update_menu()
self.active_page.change_page()
return False
while Gtk.events_pending():
Gtk.main_iteration()
self.active_page.change_page()
GLib.idle_add(page_changer, self,
priority=GLib.PRIORITY_DEFAULT_IDLE - 10)
def __delete_pages(self):
"""
@@ -961,8 +977,7 @@ class ViewManager(CLIManager):
self.dbstate.db.close(user=self.user)
(filename, title) = value
self.db_loader.read_file(filename)
if self.dbstate.db.is_open():
self._post_load_newdb(filename, 'x-directory/normal', title)
self._post_load_newdb(filename, 'x-directory/normal', title)
else:
if dialog.after_change != "":
# We change the title of the main window.
@@ -997,7 +1012,8 @@ class ViewManager(CLIManager):
The method called after load of a new database.
Inherit CLI method to add GUI part
"""
self._post_load_newdb_nongui(filename, title)
if self.dbstate.db.is_open():
self._post_load_newdb_nongui(filename, title)
self._post_load_newdb_gui(filename, filetype, title)
def _post_load_newdb_gui(self, filename, filetype, title=None):
@@ -1012,11 +1028,16 @@ class ViewManager(CLIManager):
if title:
name = title
rw = not self.dbstate.db.readonly
if rw:
msg = "%s - Gramps" % name
isopen = self.dbstate.is_open()
if not isopen:
rw = False
msg = "Gramps"
else:
msg = "%s (%s) - Gramps" % (name, _('Read Only'))
rw = not self.dbstate.db.readonly
if rw:
msg = "%s - Gramps" % name
else:
msg = "%s (%s) - Gramps" % (name, _('Read Only'))
self.uistate.window.set_title(msg)
if(bool(config.get('behavior.runcheck')) and QuestionDialog2(
@@ -1035,7 +1056,7 @@ class ViewManager(CLIManager):
config.set('behavior.runcheck', False)
self.__change_page(self.notebook.get_current_page())
self.uimanager.set_actions_visible(self.actiongroup, rw)
self.uimanager.set_actions_visible(self.readonlygroup, True)
self.uimanager.set_actions_visible(self.readonlygroup, isopen)
self.uimanager.set_actions_visible(self.undoactions, rw)
self.uimanager.set_actions_visible(self.redoactions, rw)
@@ -1060,51 +1081,6 @@ class ViewManager(CLIManager):
config.set('paths.recent-file', '')
config.save()
def enable_menu(self, enable):
""" Enable/disable the menues. Used by the dbloader for import to
prevent other operations during import. Needed because simpler methods
don't work under Gnome with application menus at top of screen (instead
of Gramps window).
Note: enable must be set to False on first call.
"""
if not enable:
self.action_st = (
self.uimanager.get_actions_sensitive(self.actiongroup),
self.uimanager.get_actions_sensitive(self.readonlygroup),
self.uimanager.get_actions_sensitive(self.undoactions),
self.uimanager.get_actions_sensitive(self.redoactions),
self.uimanager.get_actions_sensitive(self.fileactions),
self.uimanager.get_actions_sensitive(self.toolactions),
self.uimanager.get_actions_sensitive(self.reportactions),
self.uimanager.get_actions_sensitive(
self.recent_manager.action_group))
self.uimanager.set_actions_sensitive(self.actiongroup, enable)
self.uimanager.set_actions_sensitive(self.readonlygroup, enable)
self.uimanager.set_actions_sensitive(self.undoactions, enable)
self.uimanager.set_actions_sensitive(self.redoactions, enable)
self.uimanager.set_actions_sensitive(self.fileactions, enable)
self.uimanager.set_actions_sensitive(self.toolactions, enable)
self.uimanager.set_actions_sensitive(self.reportactions, enable)
self.uimanager.set_actions_sensitive(
self.recent_manager.action_group, enable)
else:
self.uimanager.set_actions_sensitive(
self.actiongroup, self.action_st[0])
self.uimanager.set_actions_sensitive(
self.readonlygroup, self.action_st[1])
self.uimanager.set_actions_sensitive(
self.undoactions, self.action_st[2])
self.uimanager.set_actions_sensitive(
self.redoactions, self.action_st[3])
self.uimanager.set_actions_sensitive(
self.fileactions, self.action_st[4])
self.uimanager.set_actions_sensitive(
self.toolactions, self.action_st[5])
self.uimanager.set_actions_sensitive(
self.reportactions, self.action_st[6])
self.uimanager.set_actions_sensitive(
self.recent_manager.action_group, self.action_st[7])
def __change_undo_label(self, label, update_menu=True):
"""
Change the UNDO label
+9 -13
View File
@@ -321,7 +321,7 @@ class NavigationView(PageView):
else:
from ..dialog import WarningDialog
WarningDialog(_("No Home Person"),
_("You need to set a 'default person' to go to. "
_("You need to set a 'Home Person' to go to. "
"Select the People View, select the person you want as "
"'Home Person', then confirm your choice "
"via the menu Edit -> Set Home Person."),
@@ -434,19 +434,15 @@ class NavigationView(PageView):
hobj = self.get_history()
menu_len = min(len(items) - 1, MRU_SIZE)
for index in range(0, menu_len):
name, obj = navigation_label(self.dbstate.db, nav_type,
items[index])
menus += menuitem % (nav_type, index, html.escape(name))
self.mru_ui = [MRU_TOP + menus + MRU_BTM]
mitems = items[-MRU_SIZE - 1:-1] # Ignore current handle
mitems.reverse()
data = []
for index, handle in enumerate(mitems):
data.append(('%s%02d'%(nav_type, index),
make_callback(hobj.push, handle),
"%s%d" % (mod_key(), index)))
for index in range(menu_len - 1, -1, -1):
name, _obj = navigation_label(self.dbstate.db, nav_type,
items[index])
menus += menuitem % (nav_type, index, html.escape(name))
data.append(('%s%02d' % (nav_type, index),
make_callback(hobj.push, items[index]),
"%s%d" % (mod_key(), menu_len - 1 - index)))
self.mru_ui = [MRU_TOP + menus + MRU_BTM]
self.mru_action = ActionGroup(name=self.title + '/MRU')
self.mru_action.add_actions(data)
+14 -6
View File
@@ -138,6 +138,7 @@ class PageView(DbGUIElement, metaclass=ABCMeta):
self.sidebar = None
self.bottombar = None
self.widget = None
self.vpane = None
DbGUIElement.__init__(self, dbstate.db)
@@ -154,18 +155,20 @@ class PageView(DbGUIElement, metaclass=ABCMeta):
self.ident + "_bottombar",
defaults[1])
hpane = Gtk.Paned()
vpane = Gtk.Paned(orientation=Gtk.Orientation.VERTICAL)
hpane.pack1(vpane, resize=True, shrink=False)
self.vpane = Gtk.Paned(orientation=Gtk.Orientation.VERTICAL)
hpane.pack1(self.vpane, resize=True, shrink=False)
hpane.pack2(self.sidebar, resize=False, shrink=False)
hpane.show()
vpane.show()
self.vpane.show()
self.widget = self.build_widget()
self.widget.show_all()
self.widget.set_name('view')
vpane.pack1(self.widget, resize=True, shrink=False)
vpane.pack2(self.bottombar, resize=False, shrink=True)
self._setup_slider_config(vpane, 'vpane.slider-position')
self.vpane.pack1(self.widget, resize=True, shrink=False)
self.vpane.pack2(self.bottombar, resize=False, shrink=False)
self.vpane.show()
self._config.register('vpane.slider-position', -1)
self.vpane.set_position(self._config.get('vpane.slider-position'))
self.sidebar_toggled(self.sidebar.get_property('visible'))
self.hpane_sig = hpane.connect("draw", self.set_page_slider)
@@ -343,6 +346,11 @@ class PageView(DbGUIElement, metaclass=ABCMeta):
self.bottombar.set_inactive()
self.active = False
def post_create(self):
if self.vpane:
self._setup_slider_config(self.vpane, 'vpane.slider-position')
self.vpane = None
@abstractmethod
def build_tree(self):
"""
+4 -1
View File
@@ -130,7 +130,8 @@ class EventModel(FlatBaseModel):
handle = data[0]
cached, value = self.get_cached_value(handle, "PARTICIPANT")
if not cached:
value = get_participant_from_event(self.db, data[COLUMN_HANDLE])
value = get_participant_from_event(self.db, data[COLUMN_HANDLE],
all_=True) # all participants
self.set_cached_value(handle, "PARTICIPANT", value)
return value
@@ -159,6 +160,8 @@ class EventModel(FlatBaseModel):
date_str = get_date(event)
if date_str != "":
retval = escape(date_str)
else:
retval = ""
if not get_date_valid(event):
return INVALID_DATE_FORMAT % retval
else:

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