Compare commits

..
1 Commits
Author SHA1 Message Date
SNoiraud f5e53e53bc FR10850 V2: freeze/unfreeze button per gramplet
Fixes #10850

This is the second method to avoid reloading gramplet automaticaly.
2018-10-31 20:36:45 +01:00
656 changed files with 92936 additions and 103321 deletions
+2 -2
View File
@@ -126,10 +126,10 @@ class-attribute-rgx=([A-Za-z_][A-Za-z0-9_]{2,30}|(__.*__))$
class-attribute-name-hint=([A-Za-z_][A-Za-z0-9_]{2,30}|(__.*__))$
# Regular expression matching correct function names
function-rgx=(([a-z_][a-z0-9_]{2,30})|(_T_))$
function-rgx=[a-z_][a-z0-9_]{2,30}$
# Naming hint for function names
function-name-hint=(([a-z_][a-z0-9_]{2,30})|(_T_))$
function-name-hint=[a-z_][a-z0-9_]{2,30}$
# Regular expression matching correct inline iteration names
inlinevar-rgx=[A-Za-z_][A-Za-z0-9_]*$
-2
View File
@@ -64,8 +64,6 @@ Martin Hawlisch martin.hawlisch@gmx.de
Nick Hall nick__hall@hotmail.com
Paul Culley paulr2787@gmail.com
Peter Landgren peter.talken@telia.com
Raphael Ackermann raphael.ackermann@gmail.com
+84 -1512
View File
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -133,7 +133,7 @@ Gramps is a [http://en.wikipedia.org/wiki/Gtk GTK] application. Gramps needs to
The Linux Genealogy CD can function as a live CD that you boot directly from. You can then run Linux and Gramps off the CD, even if your computer is entirely Windows.
An Windows installer is available for 32 and 64 bit versions of windows from Windows versions 7 through 10. As with all other support, we do do our best to solve windows related problems.
An experimental Windows installer is available, however we do not have the manpower to offer support for Windows. A windows mailing list is available however and we do do our best to solve windows related problems.
8. Does it work with the Mac?
@@ -145,7 +145,7 @@ This present version of Gramps (2.2.x) does not appear to have been ported by th
9. What are the Minimum Specs to run Gramps?
We would recommend at least an 800x600 video display. For Gramps 5.x, Gramps can run quite efficiently on a 3GB memory system. A system with that much RAM should be able to hold more than 200,000 people. Disk space requirements for databases are however considerably larger, with a typical database being several megabytes in size. For 120.000 people you must consider already 530Mb for the database. Pictures are stored on disk separately, so a large harddisk is necessary.
We would recommend at least an 800x600 video display. For Gramps 2.0, the memory requirements have been reduced, and Gramps can run quite efficiently on a 256MB system, holding considerably more people. A system with 512MB should be able to hold around 200,000 people. Disk space requirements for databases are however considerably larger, with a typical database being several megabytes in size. For 120.000 people you must consider already 530Mb for the database. Pictures are stored on disk separately, so a large harddisk is necessary.
==Preferences==
@@ -181,7 +181,7 @@ The nice thing about standards is that there never is a shortage of them. Gramps
15. How do I import data from another genealogy program into Gramps?
The best way is to create a new gramps database file, and select the import option in the file menu. Here you select the GEDCOM you generated with the other program, and import it.
The best way is to create a new gramps database file (.grdb), and select the import option in the file menu. Here you select the GEDCOM you generated with the other program, and import it.
16. Can I install Gramps on a Linux Web Server and use it via a web browser? This would enable my relations worldwide to access and update it.
@@ -315,7 +315,7 @@ gramps-devel@lists.sf.net :-)
The next best thing would be to submit a good bug report. This can be done in
one of the two ways: (1) send your report to gramps-bugs@lists.sf.net
or (2) file your report with the bug tracker system at
https://gramps-project.org/bugs/ (this function is also
http://bugs.gramps-project.org (this function is also
available by selecting "Help->Report a bug" from gramps main menu).
A good bug report would include:
-370
View File
@@ -1,373 +1,3 @@
2018-08-08
Version 5.0.2
* Bump required Python version to 3.3, Gtk version 3.12
* Update translations: ca, cs, da, de, en_GB, eo, fi, fr, hr, hu, is, it,
nb, nn, pl, po, pt_BR, ru, sl, sv, uk, vi
* Change default database backend to SQLite
* New feature to allow Filter Rules to be added via addons.
* New feature to use Genealogical symbols. Includes support for views and
reports. Edit/Preferences/Genealogical Symbols to enable.
* New: On restart after crash, offer to run Check & Repair
* New CLI commands; 'safe' mode and 'default' to help user with debugging
Gramps
* Narrative web fix:
- some strings not translated
- The confidence and the date are not translated in the family map page.
- The date doesn't use the specified date format.
- Markers incorrectly placed. In the map pages, the markers are not placed
where it should be. Reproducible when zoom in/zoom out.
- Background not correctly set. If you use the Web_Basic-Cypress.css,
the foreground and background use the same color, so you see nothing.
You must hover the fields to see the text
- Places list is not sorted depending on the selected language. If you
start gramps in english or another language then try to generate a
narrative web report in another language, the navigation alphabet is
incorrect. This is true for the place list and the person list.
- OSM forward all http resquest to https.
- When we are on a mobile phone or a small device, we suppress the
navigation tab. In place, we have a new icon on the upper left
which is used to show the dropdown menu.
- For Home, Introduction and Contact, If we have an image and this image
contains regions, show the regions. We can go directly to the person page
associated to this region. If we click on the image, we go directly to
the associated media page. This will be true only if we selected
"include images and media objects" and "create and only use thumbnail"
is unselected
- The first line identifying a family will be more legible.
The link is not useful in the parents and pedigree section for the
current person.
- Adapt some css files.
- sort the place references either by date or by name.
- Add extra page to narrativeweb.
- extrapage can now point to joomla, drupal, ...
- add enclosed by and encloses (place)
- Add compact Ancestry trees using Buchheim/Walker algorithm
This enhancement adds a new 'compact' field to the Narrated Web Report.
A compact tree is one that is not a simple binary layout but uses the
algorithm of Buchheim/Walker to create a layout that is sensible but also
compact. Creating a compact layout is slower than a simple binary tree
but the results are significantly improved and do not leave large areas
of whitespace where there are no nodes to be shown.
- Make relationships optional in narrative web
- Option to have Places and Sources pages
- Narrative should come first right after the name, gender and parent
information in individual page
- References section at the bottom of each place with people related to this
place have birth year behind it in parenthesis
- Sort "Surname" web page by given name and birth date.
- Surname list doesn't use default name format
- Display Lat/Lon optionally on places list page
* Update the uimanager to avoid deprecated Gtk warnings (changes things not
visible to the user):
- Add config option to use Toolbar Text
- Fix duplicated accelerators in charts <ctrl>P for print is now
<ctrl><shift>P
* Geography:
- fix pins very big when related to 2 places
- add color for custom places name
* fan charts view: Add option to show the Gramps ID in parenthesis in the fan
chart.
* Gramps 'Views' are now named in the window header
* Allow Home person to be set in Relationship and Charts/Pedigree view
* Filter Rule editor, save pane position
* Person Sidebarfilter:
- Fix Person Sidebarfilter when using 'Event' and Reg expressions
- In personsidebarfilter, search on each part of name Instead of requiring
that the entire search string matches a single one of the Person's names,
the function will require that each word in the search string matches any
of the Person's name fields.
* filters rule has attribute: Check all values of an attribute type and not
only the first one.
* filters rule have children person filter: Check all families of a person
for children and not only the first
* Graph reports:
- Better typography in graph reports Replace hyphen with en-dash.
- enable Graphviz node port selection, optionable. This enables the
headport and tailport attributes for all edges in the Graphviz file.
The default (off) value makes the arrows between persons and/or family
nodes attach their ends to the respective node at any position. When this
option is selected, the position facing the node on the other side of the
arrow is always chosen.
- Fix graphs on Windows for font selection not working
* relationship graph:
- Allow an option to not use hexagons for those of unknown gender
- Father and Mother are connected by an invisible line.
- Add an option to omit "irrelevant" family nodes
* Family lines graph: Replace rounded corners checkbox by dropdown
It now allows rounded corners to be set more explicitly for different
genders (None/Male/Female/Both).
* Hourglass graph:
- Add Ahnentafel option on hourglass
- Do not use hyphen for living persons in hourglass graph
* edit link: Add a mailto choice to Internet Address
* New Clean input data tool: New tool to suppress leading and trailing spaces.
This tool is looking for people and place names with leading or/and trailing
spaces. For each entry which contains leading or trailing spaces, a row is
added in a table. You can see where the spaces are for each row as the name
is underlined. If you double click on the row, you can edit the Place or
the Person.
* CSV import: Add occupation and residence events and attributes in the import
User can now add the following columns in the csv import file for a person:
- Occupation description
- Occupation date
- Occupation place
- Occupation source
- Residence date
- Residence place
- Residence source
- Attribute type
- Attribute value
- Attribute source
the corresponding events will be added to the person. The user can put
several lines for the same person if two occupations are known, one event
per line will be created.
- Fix CSV import for multiple place enclosed by on multiple imports
* Pro-Gen import: expanded functionality and fixed minor bugs.
* Enhance layout of the preferences dialog
* Webcal:
- better help msg for the after year option.
- Include only events after year
- add death event
* Edit Person/Family/etc. Gallery Tab: Add buttons for arrangement of
GalleryTab media order
* Add tooltip for Gramplet Bar To improve discoverability of the Gramplet Bar
Menu (Currently a nameless down arrow at end of each Gramplet bar title tab)
* Use theme settings for the error state of entry widgets. This avoids
problems with dark themes.
* vCalendar export: Convenient display on mobile devices.
* Add first class support for Occupation attribute
* Statistics chart:
- Add option to hide empty information on statistics chart
- the Statistics Chart report will show a year as an ordinal number in
Croatian.
* Detailed descendant report: Show death/burial information only if person
is probably dead
* Birthday report:
- Include death anniversaries as an option in the birthdays and anniversary
reports.
- Added an option to the birthday report that allows for the year of birth
(or in the case of a wedding it's year) to be printed in the report.
- Added symbols to the birthdays report showing the type of event
- Fixed the birthday report so the dead icon is able to be set within the
options window
- Added a text option to have a string that will show after a persons name
in the birthday and anniversary report. This works for both birthdays and
anniversaries.
* Selection Dialogs: fix to avoid long delay before display on large trees
* Geography Maps:
- Changed behavior of "Look up with Map Services" Removed the section that
looked up by city, and country from the Map Services lookup for Google and
Open Street Map.
- Geocoding: associate a lat/lon to a place name
* End of Line Report: sort generation during output
* update the German date handler: added some missing Latin month names and
some old German month names
* Relative Gramplet: Person Relatives Tab should use the type from the
relationship
* Fix crash when addon/plugin contains an id with space
* Fix Delete dialogs: to support canceling the multiple deletes operation
more easily
* Fix Find Duplicate People; exception when deleting someone shown outside
of the tool
* Fix CLI import so that different db types can be used
* MetaData Viewer Gramplet: Fix so that metadata is actually detected and
displayed
* Fix exception when merging with active sidebar filter
* Fix GEDCOM importer for SOUR/REFN combinations
* Add support for GEDCOM import _FREL/_MREL tags in INDI/FAMC
* Improve support for GEDCOM export of _FREL/_MREL in INDI/FAMC
2018-08-08
Version 5.0.2
Update translations: cs, da, de, fi, fr, hr, it, ru, sl, sv
* Fix some Gramplets not updating during tree changes after db change.
* Fix Events Grampslet for bad sort order on dates/ages
* Fix References Tab to update on Deletes of items when editor is open
* Fix GEDCOM import for better support of TMG
* Fix Edit Link 'New' button to work
* Fix GEDCOM importer to properly handle multiple surnames per 5.5.1
* Narrative web: Sort problem with places.
* Fix Navigator sidebar so can change view type with proper resize
* Fix crash when using sidebar filter and merging in another view
* Fix AncestorTree so add siblings to center person works
* Fix graphs on Windows for font selection not working
* Fix dbapi reindex_reference_maps tool to properly close transaction
* Fix zoom via mouse wheel in media event editor selectionwidget, also fixes
zooming with scroll bars always present
* Fix metadata viewer so that metadata is actually detected and displayed
* Avoid comma in a lat/lon entry field.
* Avoid invalid characters and leading or trailing spaces in the entry field
* Fix crash for multiple deletes in one transaction
* Adjust translation strings for unmarried partners to give correct text in English
* Fix failure after Gedcom import if missing objects were found
* Mac: Fix none type has no len() error.
Set correct font resolution when drawing text directly to cairo.
* Fix Gedcom import so it doesn't create completely empty Birth events
* Fix Relationship view so ages are according to Preferences
* Fix Person Editor Events to properly update during external changes like
Event delete or update.
* Gedcom import/export fixes for mime and finding media
* Fix Unhandled exception in Geography editor
* Fix relationship path between filter rule when parent is missing
* Fix Graphs that use graphdoc pdf via Ghostscript with multi-page for poor
font rendering of some characters
* Fix finddupes tool when run from Match Threshold screen again after merge.
* Fix Gedcom import for multiple notes on OBJE (MULTIMEDIA_LINK)
* Deal with SQLite db corrupted by None name mapping
* Fix XML import to add tags to Events, Sources, Places, Repos, Cits when
requested.
* Fix for delete of a referenced primary obj while editing an added obj.
Also fixed to update the referenced obj on changes from outside the editor.
* Fix Place Tree view when using enclosed by sidebar filter
* Fix EditFamily for adding a child to single parent family with Surname
guessing set to combination.
* Fix Descendent Tree report for crash when person has multiple families
and one of them doesn't have a spouse.
* Fix Name editor crash after clearing a group_as name on dbapi dbs
* When we merge two objects:
We should stay on the selected row in list views.
In case we select the first family and select the gramps_id of the second
family, the new gramps_id is ignored
* Fix Relationship Graph; extra people when using filters & subgraphs
* Fix Place Format Editor file save/load for difficult names
* Fix Not all place types appears on family lines Graph
* Remember location of Sort Events Tool
* Fix Media editor when using double click the preview of added media
* Avoid leading and trailing spaces when copy/paste coordinates from a
map provider.
2018-12-20
Version 5.0.1
* Media Manager: add help button and remove '...'
* Edit/Preferences: add Help button
* Style Editor, Document Styles dialog: add help buttons
* Fix Select Person dialog Help button URL
* Fix Select Repository dialog Help button URL
* Relationship Calculator: Add help button
* Reorder Relationships dialog; add Help button
* Generate Book Dialog; Fix Help URL
* Manage Book dialog; add help button
* Fix Detached Gramplets Help button URL when 'help_url' not in .gpr
* Fix help URLs when they contain illegal characters and to match
wiki section targetID algorithm Issue
* Update translations: hu, hr, de, ru, fi, pt_PT, fr, sv, sl
* Fix contents of enclosed_by secondary dbapi column
(fixes scrambled places in tree view)
* Google maps URL problem
* Fix ODT reports with links when run in non-English languages
* Allow addon Reports to specify a help button URL for options dialog
* Fix Rebuild Secondary Indexes tool for dbapi backends.
For dbapi backends, this tool will update the secondary columns that
are used for indexing.
* Fix dbapi set_name_group_mapping to properly close transaction
* Fix Russian date handler crash when Russian language isn't installed
* Fix Quickview for missing table data on some Gtk Versions
* Fix startup messages when command line contains a bad filename
* Restrict Place view Name col to the primary name while allowing searchbar
to find alt and primary names
* Fix Person Sidebarfilter when using 'Event' and Reg expressions
* Fix Find Duplicate People; exception when deleting someone shown outside
of the tool
* Gedcom export, upgrade OBJE handling to Gedcom 5.5.1 style
* Fix CSV import to set marriage event role to family
* Update gramps bugtracker URL in all po files
* Narrative Web:
- thumbnails bad alignment.
- thumbnails problems in some cases.
- use latest version from openlayers.
- fixes Space between place, description and the event note
when there are many sources.
- Change the css order between print and screen. The chosen theme can erase
prior values.
- Add a width for the source column in all themes.
- Events difficult to read (screen and mobile)
* Fix typo in CitationListModel for sort change
* Fix Adding "ToDo" note crash when no active object
* Fix Citation List view Source Last Changed Column to sort properly
* Fix for re-entrant main window close when user hits 'x' again
* Fix exception when closing early editor in tree of editors
* Fix 'Generate Book' dialog for crash on 'x' close
* Fix ToDo Gramplet for multiple attempts to edit a note
* Fix Dashboard for multiple copies of a Gramplet
* Fix Dashboard to recall minimized or undocked Gramplets
* Fix Statusbar update to avoid intermittent exception on closed db
* Fix FilterParser for much older 3.x custom_filters.xml files
* Fix IsDuplicatedAncestorOf filter rule to avoid crash on tree loop
* Fix StyledTextEditor EditLink for root text changed to zero length
in the background Fixes
* Fix AgeOnDate and some reports using SimpleAccess for missing surname
* Fix crash when a filter with loop in definition is defined
* Fix HandleErrors related to LDS
* Fix ReferencedBySelection proxy for 'None' LDS Parents
* Fix HandleError in Citations Gramplet for lds place missing
* Change PlaceView drag from whole row to just icon during drag
* Add drag Icon to drags from DisplayTabs Gramplet lists
* Fix dialogs for 'Help' button closes the dialog, and non-functional 'Help'
* Fix Family Tree manager for 'Help' button closes dialog
* Fix selectors for 'Help' button closes dialog
* Fix 'Generate Book' dialog for 'Help' button closes dialog
* Fix TestcaseGenerator for 'Help' button closes dialog
* Fix Selectors to enable the 'Help' buttons to actually work
* Avoid HandleError when dragging an Added Family from EditFamily
* Avoid HandleError when dragging an Added Person from EditPerson
* Fix Clipboard rows cannot be sorted via drag/drop
* Better default directory choices for import/export file dialogs
* Records Report: call name not underlined in HTML
* Fix InteractiveSearch for find before model is populated
* Fix Gedcom export for incorrect escaping with @#DFRENCH R@
* Fix reports for shared event attribute and note errors
* Fix Fan and Descendant Fan charts in Quadrant and Half Circle modes
The Descendant Fan chart had several bugs:
1) a bug that affected the centering of the chart for these modes
2) the chart was drawn in the wrong quadrant
3) the centering of the chart for printing was incorrect
(the legend was off the page some of the time).
4) the sizing of the chart for printing was incorrect
(for very small charts of one generation, the legend would overwrite the
chart).
The Fan Chart for the quadrant view:
1) the centering of the chart for printing was incorrect
(the legend was off the page some of the time).
* Fixed issues in the Dutch relationship calculator
- extended the ordinal and removed lists till 50, like the English lists.
- Fixed bug in which uncles/aunts, nephews/nieces (niblings), siblings and
cousins with an unknown gender show up as female.
- Fixed some misspellings
* Setting the year as an ordinal number in Croatian; two more reports now show
a year as an ordinal number in Croatian
* fix name-note is not being cleared in Complete Individual report
* Fix View Column sizing so last column size setting is maintained
* Fix view so column widths are preserved when using filters
* fix the place-format option in Detailed Descendant and Detailed Ancestor text
reports
* Fix bsddb for person sort with empty Surname list
* Webcal: link problems in some cases Year 2016 is highlighted by default
instead of current year.
* Webcal: Missing links when muliyear unselected
* Geoclose: exception when a family has no father
* Family Descendant Tree; fix HandleError
* fix unhandled exception parsing "future dates" in some locales
* fix Julian/Gregorian calendar issue when entering only year as date when
running gramps in Norwegian
* Fix and restore Statistics Gramplet to 4.2.x status
* Fix Check and Repair to deal with bad references empty handle string
* Speed up Check and Repair, backlinks check stage.
* Fix strings containing deprecated (Python 3.6+) illegal escape sequences
* Whatsnext: check if db is open, fixes error if not.
* Fix usage of posixpath; should be os.path for os independence
* Fix generate_checksum routine to avoid MemoryError crash
* Fix corrupted Bookmarks that can happen after Gramps crash
* Fix Merge Family when same parent is missing from both families
* Fix <ctrl>c in view to get selected item to clipboard
* Fix Quickview Gramplet so updates work when changing active
* Fix place reference editor for bad cut/paste on set_latlongitude
* Fix Find Database Loop Tool (bad import of _collections)
* mac/gramps.modules: Switch included moduleset to gitlab.gnome.org.
* mac/gramps.bundle: File copy doesn't work if the glob can match directories.
* mac/gramps.bundle: Install the docs/gramps directory in the bundle.
* debian/changelog: Update the Debian changelog after the 5.0.0 release
* mac/Info.plist, mac/gramps.modules: Release Gramps-5.0.0 on Mac.
2018-07-24
Version 5.0.0
* Correct binary test logic for primary mask.
+12 -198
View File
@@ -21,8 +21,6 @@ Copyright 2008 Jason M. Simanek
Copyright 2009 Stephane Charette
Copyright (C) 2008-2011 Rob G. Healey <robhealey1@gmail.com>
Copyright 2011 Michiel D. Nauta
Copyright 2018 Theo van Rijn
Copyright (C) 2019 Serge Noiraud
This file is part of the GRAMPS program.
@@ -61,7 +59,7 @@ the page.
body {
font-family: sans-serif;
font-size: 100%;
font-size: 90%;
color: black;
margin: 0px;
background-color: #EEE;
@@ -69,13 +67,6 @@ body {
body > div {
clear: both;
}
#outerwrapper {
margin: 5px auto;
width: 98%;
}
#outerwrapper > div {
clear: both;
}
.content {
background-color: white;
border-top: solid 1px #999;
@@ -84,19 +75,9 @@ body > div {
float: right;
margin: 2em;
}
#ThumbnailPreview div.snapshot {
float: right;
margin: 0;
}
.fullclear {
clear: both;
}
/* Less whitespace on smaller real estate. */
@media only screen and (max-width: 1080px) {
.content {
padding: 0em 0.5em;
}
}
/* General Text
----------------------------------------------------- */
@@ -128,7 +109,6 @@ p#description {
a {
color: black;
text-decoration: none;
word-wrap: break-word;
}
a[href]:hover, a[href]:active {
text-decoration: underline;
@@ -224,93 +204,6 @@ div#alphanav ul li a:hover {
color: white;
}
/* Responsive navigation */
a.navIcon {
display: none;
}
div#header::after {
content: "";
clear: both;
display: table;
}
div#nav::after {
content: "";
clear: both;
display: table;
}
@media only screen and (max-width: 1080px) {
/* Use less & all realestate on mobiles. */
div#outerwrapper {
margin: 5px auto;
width: 100%;
}
.nav {
background: none; /* Works in IE too. */
/*
width: 200px;
position: absolute;
z-index: 10;
*/
}
/* Undo some of the #nav styles - to enable the class .nav */
.nav ul, #subnavigation ul {
list-style: none;
min-width: unset;
width: 200px;
height: 32px;
margin: 0;
padding: 0;
}
.nav ul li, #subnavigation ul li {
float: unset;
display: unset
}
/* Start with hidden menu options */
/* .nav li:not(:first-child) {display: none;} */
.nav li {display: none;}
.nav ul {display: none;}
a.navIcon {
font-size:1.3em;
display: block;
margin: 0.1em 0.4em 0.4em 0.4em;
float: left;
}
.nav.responsive {position: absolute; display: block; z-index: 100;}
.nav.responsive a.icon {
position: absolute;
right: 0;
top: 0;
margin-right: 10px;
}
.nav.responsive li {
/* float: left; */
display: block;
text-align: left;
background-color: #EEE;
/* required by IE */
float: left;
clear: both;
width: 200px;
}
div#nav ul, #subnavigation ul {
padding-left: 0px;
}
.content {
padding: 0em 0.5em;
}
}
/* Main Table
----------------------------------------------------- */
table {
@@ -473,16 +366,7 @@ 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) {
#GalleryDisplay img {
max-width: 100%;
}
}
#GalleryDetail h3 {
text-align: center;
}
@@ -499,10 +383,13 @@ div#SourceDetail {
overflow: hidden;
}
#Contact #summaryarea {
width: 50em;
margin: 2em auto;
padding: 3em;
background-color: #EEE;
border: solid 1px #999;
}
#Contact #GalleryDisplay img {
#Contact img {
float: right;
border: solid 1px #999;
}
@@ -516,12 +403,6 @@ div#SourceDetail {
#Contact #city:after {
content: ",";
}
@media only screen and (max-width: 1080px) {
#Contact,
#Contact #GalleryDisplay img {
max-width: 100%;
}
}
/* Download
----------------------------------------------------- */
@@ -531,29 +412,20 @@ div#SourceDetail {
/* Subsection
----------------------------------------------------- */
#Home #GalleryDisplay, #Introduction #GalleryDisplay {
#Home, #Introduction {
overflow: hidden;
}
#Home img, #Introduction img {
float: right;
margin: 1em;
}
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img {
display: block;
max-width: 950px;
height: auto;
float: right;
}
@media only screen and (max-width: 1080px) {
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
#Contact #GalleryDisplay img {
margin: 0 auto;
max-width: 100%;
}
}
#Home p, #Introduction p {
padding-left: 15px;
}
.subsection {
clear: both;
overflow: hidden;
overflow: visible;
}
.subsection p {
margin: 0px;
@@ -576,33 +448,13 @@ div#families table.attrlist td.ColumnType {
/* Subsection : Gallery
----------------------------------------------------- */
#gallery {
background-color: green;
}
#indivgallery {
background-color: white;
}
#gallery .gallerycell {
float: left;
width: 130px;
height: 150px;
text-align: center;
margin: 0;
background-color: white;
border-top: solid 1px #999;
border-right: solid 1px #999;
}
#gallery .thumbnail {
font-size: smaller;
margin: 3em auto;
}
#indivgallery .thumbnail {
float: left;
width: 130px;
max-width: 130px;
max-height: 150px;
font-size: smaller;
text-align: center;
margin: 0.8em 0.5em;
background-color: white;
}
#indivgallery h4 + .thumbnail {
margin-left: 15px;
@@ -610,40 +462,6 @@ div#families table.attrlist td.ColumnType {
* first thumnail on each next row should also have a margin-left
* of 15 px. */
}
#gallery div.indexno {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
color: #555;
margin: 0;
}
#indivgallery div.date {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
color: #555;
}
#indivgallery .thumbnail ul {
font-size: smaller;
list-style: none;
padding: 0px;
}
#indivgallery .thumbnail ul li:first-child {
border-style: none;
}
#indivgallery .thumbnail ul li {
border-top: dashed 1px #CCC;
border-top-style: dashed;
padding-top: 0.5em;
padding-bottom: 0.5em;
}
#gallery img {
border: solid 1px #999;
}
#indivgallery img {
border: solid 1px #999;
}
@@ -651,9 +469,6 @@ div#families table.attrlist td.ColumnType {
/* ## remove this line and the comment markers from the line below to hide description in Indivifual Gallery
display: none; */
}
div.snapshot div.thumbnail {
text-align: center;
}
/* Subsection : Narrative
----------------------------------------------------- */
@@ -717,7 +532,6 @@ a.familymap {
}
#footer > * {
background-color: #EEE;
font-size: 80%;
}
#footer p#createdate {
float: left;
+22 -304
View File
@@ -3,8 +3,6 @@
# Gramps - a GTK+/GNOME based genealogy program
#
# Copyright (C) 2008-2011 Rob G. Healey <robhealey1@gmail.com>
# Copyright (C) 2018 Theo van Rijn
# Copyright (C) 2019 Serge Noiraud
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -74,13 +72,6 @@ img {
.thumbnail a:hover {
background: none;
}
#outerwrapper {
margin: 5px auto;
width: 98%;
}
#outerwrapper > div {
clear: both;
}
.content {
background-color: #FFF;
color: #000;
@@ -103,10 +94,6 @@ img {
width: 96px;
margin: 0 auto;
}
#ThumbnailPreview div.snapshot {
float: right;
margin: 0;
}
.fullclear {
width: 100%;
height: 1px;
@@ -114,12 +101,6 @@ img {
padding: 0;
clear: both;
}
/* Less whitespace on smaller real estate. */
@media only screen and (max-width: 1080px) {
.content {
padding: 0em 0.5em;
}
}
/* General Text
----------------------------------------------------- */
@@ -240,55 +221,6 @@ p#user_header {
margin-right: 10px;
}
/* Navigation
----------------------------------------------------- */
div#nav, #subnavigation {
border: solid 1px #EEE; /* needed by IE7 */
background-color: #13A926;
}
#subnavigation ul {
overflow: hidden;
}
div#nav ul, #subnavigation ul {
list-style: none;
margin: 0px;
padding-left: 15px;
}
#subnavigation ul {
border-bottom: solid 1px #999;
}
div#nav ul li, #subnavigation ul li {
float: left;
}
div#nav ul li a, #subnavigation ul li a {
display: block;
font-size: smaller;
font-weight: bold;
padding: 5px;
border-bottom: solid 1px #EEE;
}
div#nav ul li a:hover, #subnavigation ul li a:hover {
text-decoration: none;
background-color: #CCC;
border-bottom: solid 1px black;
}
div#nav ul li.CurrentSection a {
position: relative;
top: 1px;
border: solid 1px #999;
border-bottom-style: none;
background-color: white;
}
#nav ul li.CurrentSection a:hover {
background-color: #903;
}
/* Webcal
----------------------------------------------------- */
#subnavigation ul li.CurrentSection a {
background-color: white;
}
/* Footer
----------------------------------------------------- */
div#footer {
@@ -338,129 +270,6 @@ div#footer p#copyright img {
padding: 0;
}
/* Responsive navigation */
a.navIcon {
display: none;
}
div#header::after {
content: "";
clear: both;
display: table;
}
/* Alphabet Navigation
----------------------------------------------------- */
div#alphanav {
background-color: #EEE;
}
div#alphanav ul {
list-style: none;
border-width: 2px 0px 4px 0px;
border-style: solid;
border-color: black;
margin: 0px;
padding-left: 15px;
/* float container stretch, see www.quirksmode.org/css/clearing.html */
overflow: hidden;
}
div#alphanav ul li {
float: left;
font-size: larger;
font-weight: bold;
}
div#alphanav ul li:after {
content: " |";
}
div#alphanav ul li a {
display: block;
padding: 4px 8px;
line-height: 100%;
float: left;
}
div#alphanav ul li a:hover {
text-decoration: none;
background-color: black;
color: white;
}
div#nav::after {
content: "";
clear: both;
display: table;
}
@media only screen and (max-width: 1080px) {
/* Use less & all realestate on mobiles. */
div#outerwrapper {
margin: 5px auto;
width: 100%;
}
.nav {
background: none; /* Works in IE too. */
/*
width: 200px;
position: absolute;
z-index: 10;
*/
}
/* Undo some of the #nav styles - to enable the class .nav */
.nav ul, #subnavigation ul {
list-style: none;
min-width: unset;
width: 200px;
height: 32px;
margin: 0;
padding: 0;
}
.nav ul li, #subnavigation ul li {
float: unset;
display: unset
}
/* Start with hidden menu options */
/* .nav li:not(:first-child) {display: none;} */
.nav li {display: none;}
.nav ul {display: none;}
a.navIcon {
font-size:1.3em;
display: block;
margin: 0.1em 0.4em 0.4em 0.4em;
float: left;
}
.nav.responsive {position: absolute; display: block; z-index: 100;}
.nav.responsive a.icon {
/* position: absolute; */
right: 0;
top: 0;
margin-right: 10px;
}
.nav.responsive li {
/* float: left; */
display: block;
text-align: left;
background-color: #13A926;
/* required by IE */
float: left;
clear: both;
width: 200px;
}
div#nav ul, #subnavigation ul {
padding-left: 0px;
}
.content {
padding: 0em 0.5em;
}
}
/* Main Table
----------------------------------------------------- */
table.infolist {
@@ -769,26 +578,6 @@ div#EventDetail table.eventlist tbody tr td.ColumnDate {
margin: 0;
padding: 0;
}
#gallery {
background-color: green;
}
#indivgallery {
background-color: white;
}
#gallery .gallerycell {
float: left;
width: 130px;
height: 150px;
text-align: center;
margin: 0;
background-color: white;
border-top: solid 1px #999;
border-right: solid 1px #999;
}
#gallery .thumbnail {
font-size: smaller;
margin: 3em auto;
}
#Gallery table.infolist tbody tr td {
border-bottom: dashed 1px #000;
}
@@ -838,16 +627,7 @@ 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) {
#GalleryDisplay img {
max-width: 100%;
}
}
#GalleryDetail div#summaryarea{
margin: 0;
padding: 2em 0 0 0;
@@ -899,51 +679,48 @@ body#ThumbnailPreview div#references table.infolist tbody tr td.ColumnName {
/* Contact
------------------------------------------------- */
#Contact #summaryarea {
width: 500px;
margin: 0 auto;
padding: 3em;
border: double 4px #000;
background-color: #BCEAF6;
}
#Contact #summaryarea #GalleryDisplay img {
#Contact #summaryarea img {
float: right;
margin: 0;
}
@media only screen and (max-width: 1080px) {
#Contact, #Contact #summaryarea #researcher,
#Contact #summaryarea #GalleryDisplay img {
max-width: 100%;
}
}
#Contact #summaryarea #researcher {
#researcher {
font: normal 1.5em/1.4em serif;
margin-top: .3em;
}
#Contact #summaryarea #researcher h3 {
#researcher h3 {
font: normal 1.2em/1.4em serif;
padding: 0;
text-align: left;
}
#Contact #summaryarea #researcher span {
#researcher span {
float: left;
display: block;
font: normal .9em/1.4em serif;
margin-right: .4em;
}
#Contact #summaryarea #streetaddress {
#streetaddress {
width: 100%;
}
#Contact #summaryarea #locality, .locality {
#locality, .locality {
display: block;
width: 100%;
}
#Contact #summaryarea #city:after {
#city:after {
content: ",";
}
#Contact #summaryarea #country {
#country {
clear: left;
}
#Contact #summaryarea #email {
#email {
clear: left;
}
#Contact #summaryarea #email a {
#email a {
text-decoration: none;
}
@@ -1036,29 +813,17 @@ div#AddressBookList table.addressbook tbody tr td.ColumnWebLinks {
/* Subsections
----------------------------------------------------- */
#Home #GalleryDisplay, #Introduction #GalleryDisplay,
#Contact #GalleryDisplay {
float: right;
margin: 0;
border: 0px;
}
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
#Contact #GalleryDisplay img {
display: block;
max-width: 950px;
height: auto;
float: right;
}
@media only screen and (max-width: 1080px) {
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
#Contact #GalleryDisplay img {
margin: 0 auto;
max-width: 100%;
}
#Home, #Introduction, #Contact {
padding: 2em 0 3em 0;
}
#Home p, #Introduction p {
margin: 0 20px 1em 20px;
}
#Home img, #Introduction img {
float: right;
margin: 0;
padding: 0 20px 3em 2em;
}
#Home a, #Introduction a, #Contact a {
color: #000;
text-decoration: none;
@@ -1162,15 +927,6 @@ div#families {
margin: 0;
padding: 0;
}
div#families .infolist h4 {
font: bold 1.2em sans-serif;
color: #FFF;
padding: 0px 0px 0px 20px;
border-width: 4px 0px 4px 0px;
border-style: solid;
border-color: #00029D;
background-color: #13A926;
}
div#families table.infolist tbody tr.BeginFamily {
border-top: solid 1px #000;
}
@@ -1337,8 +1093,8 @@ div.Residence table.infolist tr td {
margin: 0;
float: left;
width: 130px;
height: 150px;
text-align: center;
background-color: white;
}
#indivgallery div.thumbnail a {
display: block;
@@ -1346,7 +1102,6 @@ div.Residence table.infolist tr td {
padding: 0;
text-decoration: none;
cursor: pointer;
word-wrap: break-word;
}
#indivgallery div.thumbnail a img {
padding: 0;
@@ -1362,43 +1117,6 @@ div.Residence table.infolist tr td {
margin: 0 auto;
padding: 0;
}
#gallery div.indexno {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
color: #555;
margin: 0;
}
#indivgallery div.date {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
color: #555;
}
#indivgallery .thumbnail ul {
font-size: smaller;
list-style: none;
padding: 0px;
}
#indivgallery .thumbnail ul li:first-child {
border-style: none;
}
#indivgallery .thumbnail ul li {
border-top: dashed 1px #CCC;
border-top-style: dashed;
padding-top: 0.5em;
padding-bottom: 0.5em;
}
#gallery img {
border: solid 1px #999;
}
div.snapshot div.thumbnail {
text-align: center;
}
/* Subsections : Narrative
----------------------------------------------------- */
+14 -201
View File
@@ -21,8 +21,6 @@ Copyright 2008 Jason M. Simanek
Copyright 2009 Stephane Charette
Copyright (C) 2008-2011 Rob G. Healey <robhealey1@gmail.com>
Copyright 2011 Michiel D. Nauta
Copyright 2018 Theo van Rijn
Copyright (C) 2019 Serge Noiraud
This file is part of the GRAMPS program.
@@ -61,7 +59,7 @@ the page.
body {
font-family: sans-serif;
font-size: 100%;
font-size: 90%;
color: black;
margin: 0px;
background-color: #454;
@@ -69,13 +67,6 @@ body {
body > div {
clear: both;
}
#outerwrapper {
margin: 5px auto;
width: 98%;
}
#outerwrapper > div {
clear: both;
}
.content {
background-color: white;
border-top: solid 1px #7C8F7C;
@@ -84,19 +75,9 @@ body > div {
float: right;
margin: 2em;
}
#ThumbnailPreview div.snapshot {
float: right;
margin: 0;
}
.fullclear {
clear: both;
}
/* Less whitespace on smaller real estate. */
@media only screen and (max-width: 1080px) {
.content {
padding: 0em 0.5em;
}
}
/* General Text
----------------------------------------------------- */
@@ -128,7 +109,6 @@ p#description {
a {
color: black;
text-decoration: none;
word-wrap: break-word;
}
a[href]:hover, a[href]:active {
background-color: #9DBF9D;
@@ -228,98 +208,6 @@ div#alphanav ul li a:hover {
color: white;
}
/* Responsive navigation */
a.navIcon {
display: none;
}
div#header::after {
content: "";
clear: both;
display: table;
}
div#nav::after {
content: "";
clear: both;
display: table;
}
@media only screen and (max-width: 1080px) {
/* Use less & all realestate on mobiles. */
div#outerwrapper {
margin: 5px auto;
width: 100%;
}
.nav {
background: none; /* Works in IE too. */
/*
width: 200px;
position: absolute;
z-index: 10;
*/
}
/* Undo some of the #nav styles - to enable the class .nav */
.nav ul, #subnavigation ul {
list-style: none;
min-width: unset;
width: 200px;
height: 32px;
margin: 0;
padding: 0;
}
.nav ul li, #subnavigation ul li {
float: unset;
display: unset
}
/* Start with hidden menu options */
/* .nav li:not(:first-child) {display: none;} */
.nav li {display: none;}
.nav ul {display: none;}
a.navIcon {
font-size:1.3em;
display: block;
margin: 0.1em 0.4em 0.4em 0.4em;
float: left;
}
.nav.responsive {position: absolute; display: block; z-index: 100;}
.nav.responsive a.icon {
position: absolute;
right: 0;
top: 0;
margin-right: 10px;
}
.nav.responsive li {
/* float: left; */
display: block;
text-align: left;
color: #454;
background-color: #E0E6E0;
/* required by IE */
float: left;
clear: both;
width: 200px;
}
.nav.responsive li#CurrentSection a {
color: #454;
background-color: white;
}
div#nav ul, #subnavigation ul {
padding-left: 0px;
}
.content {
padding: 0em 0.5em;
}
}
/* Main Table
----------------------------------------------------- */
table {
@@ -524,16 +412,7 @@ 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) {
#GalleryDisplay img {
max-width: 100%;
}
}
#GalleryDetail h3 {
text-align: center;
}
@@ -550,10 +429,13 @@ div#SourceDetail {
overflow: hidden;
}
#Contact #summaryarea {
width: 40em;
margin: 2em auto;
padding: 3em;
background-color: #E0E6E0;
border: solid 1px #7C8F7C;
}
#Contact #summaryarea #GalleryDisplay img {
#Contact img {
float: right;
border: solid 1px #7C8F7C;
}
@@ -580,31 +462,20 @@ div#SourceDetail {
/* Subsection
----------------------------------------------------- */
#Home #GalleryDisplay, #Introduction #GalleryDisplay, #Contact #GalleryDisplay {
float: right;
margin: 0;
border: 0px;
#Home, #Introduction {
overflow: hidden;
}
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
#Contact #GalleryDisplay img {
display: block;
#Home img, #Introduction img {
float: right;
margin: 1em;
max-width: 950px;
height: auto;
float: right;
}
@media only screen and (max-width: 1080px) {
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
#Contact #GalleryDisplay img {
margin: 0 auto;
max-width: 100%;
}
}
#Home p, #Introduction p {
padding-left: 15px;
}
.subsection {
clear: both;
overflow: hidden;
overflow: visible;
}
.subsection p {
margin: 0px;
@@ -627,33 +498,13 @@ div#families table.attrlist td.ColumnType {
/* Subsection : Gallery
----------------------------------------------------- */
#gallery {
background-color: green;
}
#indivgallery {
background-color: white;
}
#gallery .gallerycell {
float: left;
width: 130px;
height: 150px;
text-align: center;
margin: 0;
background-color: white;
border-top: solid 1px #999;
border-right: solid 1px #999;
}
#gallery .thumbnail {
font-size: smaller;
margin: 3em auto;
}
#indivgallery .thumbnail {
float: left;
width: 130px;
max-width: 130px;
max-height: 150px;
font-size: smaller;
text-align: center;
margin: 0.8em 0.5em;
background-color: white;
}
#indivgallery h4 + .thumbnail {
margin-left: 15px;
@@ -661,40 +512,6 @@ div#families table.attrlist td.ColumnType {
* first thumnail on each next row should also have a margin-left
* of 15 px. */
}
#gallery div.indexno {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
color: #555;
margin: 0;
}
#indivgallery div.date {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
color: #555;
}
#indivgallery .thumbnail ul {
font-size: smaller;
list-style: none;
padding: 0px;
}
#indivgallery .thumbnail ul li:first-child {
border-style: none;
}
#indivgallery .thumbnail ul li {
border-top: dashed 1px #CCC;
border-top-style: dashed;
padding-top: 0.5em;
padding-bottom: 0.5em;
}
#gallery img {
border: solid 1px #999;
}
#indivgallery img {
border: solid 1px #7C8F7C;
}
@@ -702,9 +519,6 @@ div#families table.attrlist td.ColumnType {
/* ## remove this line and the comment markers from the line below to hide description in Indivifual Gallery
display: none; */
}
div.snapshot div.thumbnail {
text-align: center;
}
/* Subsection : Narrative
----------------------------------------------------- */
@@ -763,7 +577,6 @@ a.familymap {
#footer {
clear: both;
color: #E0E6E0;
font-size: 80%;
padding-top: 1em;
background-color: #9DBF9D;
border-top: solid 1px #454;
@@ -791,7 +604,7 @@ a.familymap {
/* Overwritten
----------------------------------------------------- */
body#FamilyMap {
background-color: #454 ! important;
background-color: #E0E6E0 ! important;
}
/* Calendar Styles
+12 -193
View File
@@ -21,8 +21,6 @@ Copyright 2008 Jason M. Simanek
Copyright 2009 Stephane Charette
Copyright (C) 2008-2011 Rob G. Healey <robhealey1@gmail.com>
Copyright 2011 Michiel D. Nauta
Copyright 2018 Theo van Rijn
Copyright (C) 2019 Serge Noiraud
This file is part of the GRAMPS program.
@@ -69,13 +67,6 @@ body {
body > div {
clear: both;
}
#outerwrapper {
margin: 5px auto;
width: 98%;
}
#outerwrapper > div {
clear: both;
}
.content {
background-color: #FAFAFF;
border-top: solid 1px #669;
@@ -84,19 +75,9 @@ body > div {
float: right;
margin: 2em;
}
#ThumbnailPreview div.snapshot {
float: right;
margin: 0;
}
.fullclear {
clear: both;
}
/* Less whitespace on smaller real estate. */
@media only screen and (max-width: 1080px) {
.content {
padding: 0em 0.5em;
}
}
/* General Text
----------------------------------------------------- */
@@ -129,7 +110,6 @@ p#description {
a {
color: black;
text-decoration: none;
word-wrap: break-word;
}
a[href]:hover, a[href]:active {
background-color: #E0E0E9
@@ -226,93 +206,6 @@ div#alphanav ul li a:hover {
color: #FAFAFF;
}
/* Responsive navigation */
a.navIcon {
display: none;
}
div#header::after {
content: "";
clear: both;
display: table;
}
div#nav::after {
content: "";
clear: both;
display: table;
}
@media only screen and (max-width: 1080px) {
/* Use less & all realestate on mobiles. */
div#outerwrapper {
margin: 5px auto;
width: 100%;
}
.nav {
background: none; /* Works in IE too. */
/*
width: 200px;
position: absolute;
z-index: 10;
*/
}
/* Undo some of the #nav styles - to enable the class .nav */
.nav ul, #subnavigation ul {
list-style: none;
min-width: unset;
width: 200px;
height: 32px;
margin: 0;
padding: 0;
}
.nav ul li, #subnavigation ul li {
float: unset;
display: unset
}
/* Start with hidden menu options */
/* .nav li:not(:first-child) {display: none;} */
.nav li {display: none;}
.nav ul {display: none;}
a.navIcon {
font-size:1.3em;
display: block;
margin: 0.1em 0.4em 0.4em 0.4em;
float: left;
}
.nav.responsive {position: absolute; display: block; z-index: 100;}
.nav.responsive a.icon {
position: absolute;
right: 0;
top: 0;
margin-right: 10px;
}
.nav.responsive li {
/* float: left; */
display: block;
text-align: left;
background-color: #669;
/* required by IE */
float: left;
clear: both;
width: 200px;
}
div#nav ul, #subnavigation ul {
padding-left: 0px;
}
.content {
padding: 0em 0.5em;
}
}
/* Main Table
----------------------------------------------------- */
table {
@@ -512,14 +405,6 @@ 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) {
#GalleryDisplay img {
max-width: 100%;
}
}
#GalleryDetail h3 {
text-align: center;
@@ -537,10 +422,13 @@ div#SourceDetail {
overflow: hidden;
}
#Contact #summaryarea {
width: 40em;
margin: 2em auto;
padding: 3em;
background-color: #E0E0E9;
border: solid 1px #669;
}
#Contact #summaryarea #GalleryDisplay img {
#Contact img {
float: right;
border: solid 1px #669;
}
@@ -567,31 +455,20 @@ div#SourceDetail {
/* Subsection
----------------------------------------------------- */
#Home #GalleryDisplay, #Introduction #GalleryDisplay, #Contact #GalleryDisplay {
float: right;
margin: 0;
border: 0px;
#Home, #Introduction {
overflow: hidden;
}
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
#Contact #GalleryDisplay img {
display: block;
#Home img, #Introduction img {
float: right;
margin: 1em;
max-width: 950px;
height: auto;
float: right;
}
@media only screen and (max-width: 1080px) {
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
#Contact #GalleryDisplay img {
margin: 0 auto;
max-width: 100%;
}
}
#Home p, #Introduction p {
padding-left: 15px;
}
.subsection {
clear: both;
overflow: hidden;
overflow: visible;
}
.subsection p {
margin: 0px;
@@ -614,33 +491,13 @@ div#families table.attrlist td.ColumnType {
/* Subsection : Gallery
----------------------------------------------------- */
#gallery {
background-color: green;
}
#indivgallery {
background-color: white;
}
#gallery .gallerycell {
float: left;
width: 130px;
height: 150px;
text-align: center;
margin: 0;
background-color: white;
border-top: solid 1px #999;
border-right: solid 1px #999;
}
#gallery .thumbnail {
font-size: smaller;
margin: 3em auto;
}
#indivgallery .thumbnail {
float: left;
width: 130px;
max-width: 130px;
max-height: 150px;
font-size: smaller;
text-align: center;
margin: 0.8em 0.5em;
background-color: white;
}
#indivgallery h4 + .thumbnail {
margin-left: 15px;
@@ -648,40 +505,6 @@ div#families table.attrlist td.ColumnType {
* first thumnail on each next row should also have a margin-left
* of 15 px. */
}
#gallery div.indexno {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
color: #555;
margin: 0;
}
#indivgallery div.date {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
color: #555;
}
#indivgallery .thumbnail ul {
font-size: smaller;
list-style: none;
padding: 0px;
}
#indivgallery .thumbnail ul li:first-child {
border-style: none;
}
#indivgallery .thumbnail ul li {
border-top: dashed 1px #CCC;
border-top-style: dashed;
padding-top: 0.5em;
padding-bottom: 0.5em;
}
#gallery img {
border: solid 1px #999;
}
#indivgallery img {
border: solid 1px #669;
}
@@ -689,9 +512,6 @@ div#families table.attrlist td.ColumnType {
/* ## remove this line and the comment markers from the line below to hide description in Indivifual Gallery
display: none; */
}
div.snapshot div.thumbnail {
text-align: center;
}
/* Subsection : Narrative
----------------------------------------------------- */
@@ -755,7 +575,6 @@ a.familymap {
}
#footer > * {
background-color: #E0E0E9;
font-size: 80%;
}
#footer p#createdate {
float: left;
+12 -193
View File
@@ -21,8 +21,6 @@ Copyright 2008 Jason M. Simanek
Copyright 2009 Stephane Charette
Copyright (C) 2008-2011 Rob G. Healey <robhealey1@gmail.com>
Copyright 2011 Michiel D. Nauta
Copyright 2018 Theo van Rijn
Copyright (C) 2019 Serge Noiraud
This file is part of the GRAMPS program.
@@ -61,7 +59,7 @@ the page.
body {
font-family: sans-serif;
font-size: 100%;
font-size: 90%;
color: #36220B;
margin: 0px;
background-color: #FFE09F;
@@ -69,13 +67,6 @@ body {
body > div {
clear: both;
}
#outerwrapper {
margin: 5px auto;
width: 98%;
}
#outerwrapper > div {
clear: both;
}
.content {
background-color: #FFFBE7;
border-top: solid 1px #8C581C;
@@ -84,19 +75,9 @@ body > div {
float: right;
margin: 2em;
}
#ThumbnailPreview div.snapshot {
float: right;
margin: 0;
}
.fullclear {
clear: both;
}
/* Less whitespace on smaller real estate. */
@media only screen and (max-width: 1080px) {
.content {
padding: 0em 0.5em;
}
}
/* General Text
----------------------------------------------------- */
@@ -129,7 +110,6 @@ p#description {
a {
color: #36220B;
text-decoration: none;
word-wrap: break-word;
}
a[href]:hover, a[href]:active {
background-color: #FFE09F
@@ -226,93 +206,6 @@ div#alphanav ul li a:hover {
color: #FFFBE7;
}
/* Responsive navigation */
a.navIcon {
display: none;
}
div#header::after {
content: "";
clear: both;
display: table;
}
div#nav::after {
content: "";
clear: both;
display: table;
}
@media only screen and (max-width: 1080px) {
/* Use less & all realestate on mobiles. */
div#outerwrapper {
margin: 5px auto;
width: 100%;
}
.nav {
background: none; /* Works in IE too. */
/*
width: 200px;
position: absolute;
z-index: 10;
*/
}
/* Undo some of the #nav styles - to enable the class .nav */
.nav ul, #subnavigation ul {
list-style: none;
min-width: unset;
width: 200px;
height: 32px;
margin: 0;
padding: 0;
}
.nav ul li, #subnavigation ul li {
float: unset;
display: unset
}
/* Start with hidden menu options */
/* .nav li:not(:first-child) {display: none;} */
.nav li {display: none;}
.nav ul {display: none;}
a.navIcon {
font-size:1.3em;
display: block;
margin: 0.1em 0.4em 0.4em 0.4em;
float: left;
}
.nav.responsive {position: absolute; display: block; z-index: 100;}
.nav.responsive a.icon {
position: absolute;
right: 0;
top: 0;
margin-right: 10px;
}
.nav.responsive li {
/* float: left; */
display: block;
text-align: left;
background-color: #FFC35E;
/* required by IE */
float: left;
clear: both;
width: 200px;
}
div#nav ul, #subnavigation ul {
padding-left: 0px;
}
.content {
padding: 0em 0.5em;
}
}
/* Main Table
----------------------------------------------------- */
table {
@@ -512,14 +405,6 @@ 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) {
#GalleryDisplay img {
max-width: 100%;
}
}
#GalleryDetail h3 {
text-align: center;
@@ -537,10 +422,13 @@ div#SourceDetail {
overflow: hidden;
}
#Contact #summaryarea {
width: 40em;
margin: 2em auto;
padding: 3em;
background-color: #FFE09F;
border: solid 1px #EA8414;
}
#Contact #summaryarea #GalleryDisplay img {
#Contact img {
float: right;
border: solid 1px #EA8414;
}
@@ -567,24 +455,13 @@ div#SourceDetail {
/* Subsection
----------------------------------------------------- */
#Home #GalleryDisplay, #Introduction #GalleryDisplay, #Contact #GalleryDisplay {
float: right;
margin: 0;
border: 0px;
#Home, #Introduction {
overflow: hidden;
}
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
#Contact #GalleryDisplay img {
display: block;
#Home img, #Introduction img {
float: right;
margin: 1em;
max-width: 950px;
height: auto;
float: right;
}
@media only screen and (max-width: 1080px) {
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
#Contact #GalleryDisplay img {
margin: 0 auto;
max-width: 100%;
}
}
#Home p, #Introduction p {
padding-left: 15px;
@@ -614,33 +491,13 @@ div#families table.attrlist td.ColumnType {
/* Subsection : Gallery
----------------------------------------------------- */
#gallery {
background-color: green;
}
#indivgallery {
background-color: white;
}
#gallery .gallerycell {
float: left;
width: 130px;
height: 150px;
text-align: center;
margin: 0;
background-color: white;
border-top: solid 1px #999;
border-right: solid 1px #999;
}
#gallery .thumbnail {
font-size: smaller;
margin: 3em auto;
}
#indivgallery .thumbnail {
float: left;
width: 130px;
max-width: 130px;
max-height: 150px;
font-size: smaller;
text-align: center;
margin: 0.8em 0.5em;
background-color: white;
}
#indivgallery h4 + .thumbnail {
margin-left: 15px;
@@ -648,40 +505,6 @@ div#families table.attrlist td.ColumnType {
* first thumnail on each next row should also have a margin-left
* of 15 px. */
}
#gallery div.indexno {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
color: #555;
margin: 0;
}
#indivgallery div.date {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
color: #555;
}
#indivgallery .thumbnail ul {
font-size: smaller;
list-style: none;
padding: 0px;
}
#indivgallery .thumbnail ul li:first-child {
border-style: none;
}
#indivgallery .thumbnail ul li {
border-top: dashed 1px #CCC;
border-top-style: dashed;
padding-top: 0.5em;
padding-bottom: 0.5em;
}
#gallery img {
border: solid 1px #999;
}
#indivgallery img {
border: solid 1px #8C581C;
}
@@ -689,9 +512,6 @@ div#families table.attrlist td.ColumnType {
/* ## remove this line and the comment markers from the line below to hide description in Indivifual Gallery
display: none; */
}
div.snapshot div.thumbnail {
text-align: center;
}
/* Subsection : Narrative
----------------------------------------------------- */
@@ -755,7 +575,6 @@ a.familymap {
}
#footer > * {
background-color: #FFE09F;
font-size: 80%;
}
#footer p#createdate {
float: left;
+13 -195
View File
@@ -21,9 +21,6 @@ Copyright 2008 Jason M. Simanek
Copyright 2009 Stephane Charette
Copyright (C) 2008-2011 Rob G. Healey <robhealey1@gmail.com>
Copyright 2011 Michiel D. Nauta
Copyright 2018 Theo van Rijn
Copyright (C) 2019 Serge Noiraud
This file is part of the GRAMPS program.
@@ -62,7 +59,7 @@ the page.
body {
font-family: sans-serif;
font-size: 100%;
font-size: 90%;
color: black;
margin: 0px;
background-color: #EAEEF4;
@@ -70,13 +67,6 @@ body {
body > div {
clear: both;
}
#outerwrapper {
margin: 5px auto;
width: 98%;
}
#outerwrapper > div {
clear: both;
}
.content {
background-color: #FFF;
border-top: solid 1px #7CA3DD;
@@ -85,19 +75,9 @@ body > div {
float: right;
margin: 2em;
}
#ThumbnailPreview div.snapshot {
float: right;
margin: 0;
}
.fullclear {
clear: both;
}
/* Less whitespace on smaller real estate. */
@media only screen and (max-width: 1080px) {
.content {
padding: 0em 0.5em;
}
}
/* General Text
----------------------------------------------------- */
@@ -130,7 +110,6 @@ p#description {
a {
color: black;
text-decoration: none;
word-wrap: break-word;
}
a[href]:hover, a[href]:active {
background-color: #EAEEF4
@@ -227,93 +206,6 @@ div#alphanav ul li a:hover {
color: #FFF;
}
/* Responsive navigation */
a.navIcon {
display: none;
}
div#header::after {
content: "";
clear: both;
display: table;
}
div#nav::after {
content: "";
clear: both;
display: table;
}
@media only screen and (max-width: 1080px) {
/* Use less & all realestate on mobiles. */
div#outerwrapper {
margin: 5px auto;
width: 100%;
}
.nav {
background: none; /* Works in IE too. */
/*
width: 200px;
position: absolute;
z-index: 10;
*/
}
/* Undo some of the #nav styles - to enable the class .nav */
.nav ul, #subnavigation ul {
list-style: none;
min-width: unset;
width: 200px;
height: 32px;
margin: 0;
padding: 0;
}
.nav ul li, #subnavigation ul li {
float: unset;
display: unset
}
/* Start with hidden menu options */
/* .nav li:not(:first-child) {display: none;} */
.nav li {display: none;}
.nav ul {display: none;}
a.navIcon {
font-size:1.3em;
display: block;
margin: 0.1em 0.4em 0.4em 0.4em;
float: left;
}
.nav.responsive {position: absolute; display: block; z-index: 100;}
.nav.responsive a.icon {
position: absolute;
right: 0;
top: 0;
margin-right: 10px;
}
.nav.responsive li {
/* float: left; */
display: block;
text-align: left;
background-color: #EEE;
/* required by IE */
float: left;
clear: both;
width: 200px;
}
div#nav ul, #subnavigation ul {
padding-left: 0px;
}
.content {
padding: 0em 0.5em;
}
}
/* Main Table
----------------------------------------------------- */
table {
@@ -513,14 +405,6 @@ 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) {
#GalleryDisplay img {
max-width: 100%;
}
}
#GalleryDetail h3 {
text-align: center;
@@ -538,10 +422,13 @@ div#SourceDetail {
overflow: hidden;
}
#Contact #summaryarea {
width: 40em;
margin: 2em auto;
padding: 3em;
background-color: #EAEEF4;
border: solid 1px #7CA3DD;
}
#Contact #summaryarea #GalleryDisplay img {
#Contact img {
float: right;
border: solid 1px #7CA3DD;
}
@@ -568,31 +455,20 @@ div#SourceDetail {
/* Subsection
----------------------------------------------------- */
#Home #GalleryDisplay, #Introduction #GalleryDisplay, #Contact #GalleryDisplay {
float: right;
margin: 0;
border: 0px;
#Home, #Introduction {
overflow: hidden;
}
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
#Contact #GalleryDisplay img {
display: block;
#Home img, #Introduction img {
float: right;
margin: 1em;
max-width: 950px;
height: auto;
float: right;
}
@media only screen and (max-width: 1080px) {
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
#Contact #GalleryDisplay img {
margin: 0 auto;
max-width: 100%;
}
}
#Home p, #Introduction p {
padding-left: 15px;
}
.subsection {
clear: both;
overflow: hidden;
overflow: visible;
}
.subsection p {
margin: 0px;
@@ -615,33 +491,13 @@ div#families table.attrlist td.ColumnType {
/* Subsection : Gallery
----------------------------------------------------- */
#gallery {
background-color: green;
}
#indivgallery {
background-color: white;
}
#gallery .gallerycell {
float: left;
width: 130px;
height: 150px;
text-align: center;
margin: 0;
background-color: white;
border-top: solid 1px #999;
border-right: solid 1px #999;
}
#gallery .thumbnail {
font-size: smaller;
margin: 3em auto;
}
#indivgallery .thumbnail {
float: left;
width: 130px;
max-width: 130px;
max-height: 150px;
font-size: smaller;
text-align: center;
margin: 0.8em 0.5em;
background-color: white;
}
#indivgallery h4 + .thumbnail {
margin-left: 15px;
@@ -649,40 +505,6 @@ div#families table.attrlist td.ColumnType {
* first thumnail on each next row should also have a margin-left
* of 15 px. */
}
#gallery div.indexno {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
color: #555;
margin: 0;
}
#indivgallery div.date {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
color: #555;
}
#indivgallery .thumbnail ul {
font-size: smaller;
list-style: none;
padding: 0px;
}
#indivgallery .thumbnail ul li:first-child {
border-style: none;
}
#indivgallery .thumbnail ul li {
border-top: dashed 1px #CCC;
border-top-style: dashed;
padding-top: 0.5em;
padding-bottom: 0.5em;
}
#gallery img {
border: solid 1px #999;
}
#indivgallery img {
border: solid 1px #7CA3DD;
}
@@ -690,9 +512,6 @@ div#families table.attrlist td.ColumnType {
/* ## remove this line and the comment markers from the line below to hide description in Indivifual Gallery
display: none; */
}
div.snapshot div.thumbnail {
text-align: center;
}
/* Subsection : Narrative
----------------------------------------------------- */
@@ -756,7 +575,6 @@ a.familymap {
}
#footer > * {
background-color: #EAEEF4;
font-size: 80%;
}
#footer p#createdate {
float: left;
+7 -200
View File
@@ -19,8 +19,6 @@ Copyright 2008 Jason M. Simanek
Copyright 2009 Stephane Charette
Copyright (C) 2008-2011 Rob G. Healey <robhealey1@gmail.com>
Copyright 2011 Michiel D. Nauta
Copyright 2018 Theo van Rijn
Copyright (C) 2019 Serge Noiraud
This file is part of the GRAMPS program.
@@ -64,7 +62,7 @@ General Elements
-----------------------------------------------------------------*/
body {
font-family: Georgia, serif;
font-size: 100%;
font-size: 90%;
color: #7D5925;
background: url(../images/Web_Mainz_Bkgd.png) black repeat;
}
@@ -75,33 +73,15 @@ body > div {
overflow: hidden;
padding: 0px 1.5em;
}
#outerwrapper {
margin: 5px auto;
width: 98%;
}
#outerwrapper > div {
clear: both;
}
.content {
padding: 1.5em 1.5em;
}
#ThumbnailPreview div.snapshot {
float: right;
margin: 0;
}
div.snapshot div.thumbnail {
text-align: center;
}
div.snapshot a {
display: inline;
}
/* Less whitespace on smaller real estate. */
@media only screen and (max-width: 1080px) {
.content {
padding: 0em 0.5em;
}
}
/* General Text
-----------------------------------------------------------------*/
@@ -139,7 +119,6 @@ h4 {
a {
color: #7D5925;
text-decoration: none;
word-wrap: break-word;
}
a[href]:hover, a[href]:active {
background-color: #FFFFE7;
@@ -224,93 +203,6 @@ div#alphanav ul li a:hover {
color: white;
}
/* Responsive navigation */
a.navIcon {
display: none;
}
div#header::after {
content: "";
clear: both;
display: table;
}
div#nav::after {
content: "";
clear: both;
display: table;
}
@media only screen and (max-width: 1080px) {
/* Use less & all realestate on mobiles. */
div#outerwrapper {
margin: 5px auto;
width: 100%;
}
.nav {
background: none; /* Works in IE too. */
/*
width: 200px;
position: absolute;
z-index: 10;
*/
}
/* Undo some of the #nav styles - to enable the class .nav */
.nav ul, #subnavigation ul {
list-style: none;
min-width: unset;
width: 200px;
height: 32px;
margin: 0;
padding: 0;
}
.nav ul li, #subnavigation ul li {
float: unset;
display: unset
}
/* Start with hidden menu options */
/* .nav li:not(:first-child) {display: none;} */
.nav li {display: none;}
.nav ul {display: none;}
a.navIcon {
font-size:1.3em;
display: block;
margin: 0.1em 0.4em 0.4em 0.4em;
float: left;
}
.nav.responsive {position: absolute; display: block; z-index: 100;}
.nav.responsive a.icon {
position: absolute;
right: 0;
top: 0;
margin-right: 10px;
}
.nav.responsive li {
/* float: left; */
display: block;
text-align: left;
background-color: #D8C19F;
/* required by IE */
float: left;
clear: both;
width: 200px;
}
div#nav ul, #subnavigation ul {
padding-left: 0px;
}
.content {
padding: 0em 0.5em;
}
}
/* Main Table
-----------------------------------------------------------------*/
table {
@@ -468,14 +360,6 @@ 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) {
#GalleryDisplay img {
max-width: 100%;
}
}
/* Sources
@@ -491,7 +375,7 @@ div#SourceDetail {
padding-bottom: 0px;
margin: 0px;
}
#Contact #summaryarea #GalleryDisplay img {
#Contact img {
display: block;
margin: 0px auto 1em auto;
border: solid 1px #7D5925;
@@ -517,31 +401,16 @@ div#SourceDetail {
/* SubSection
-----------------------------------------------------------------*/
#Home #GalleryDisplay, #Introduction #GalleryDisplay, #Contact #GalleryDisplay {
float: right;
margin-left: 10px;
margin-right: 10px;
}
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
#Contact #GalleryDisplay {
#Home img, #Introduction img {
display: block;
margin: 1em auto;
max-width: 950px;
height: auto;
float: right;
}
@media only screen and (max-width: 1080px) {
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
#Contact #GalleryDisplay {
margin: 0 auto;
max-width: 100%;
}
}
#Home a, #Introduction a, #Contact a {
color: black;
}
.subsection {
clear: both;
overflow: hidden;
}
.subsection p {
margin: 0px;
@@ -558,43 +427,20 @@ div#families table.fixed_subtables table.eventlist th:first-child {
div#families table.fixed_subtables table.eventlist th:last-child {
width: 5em;
}
div#families .infolist h4 {
text-align: left;
}
/* SubSection : Gallery
-----------------------------------------------------------------*/
#gallery {
background-color: green;
}
#indivgallery {
background-color: white;
}
#gallery .gallerycell {
float: left;
width: 130px;
height: 150px;
text-align: center;
margin: 0;
background-color: white;
border-top: solid 1px #999;
border-right: solid 1px #999;
}
#gallery .thumbnail {
font-size: smaller;
margin: 3em auto;
}
#indivgallery {
/* float container stretch, see www.quirksmode.org/css/clearing.html */
overflow: hidden;
}
#indivgallery .thumbnail {
float: left;
width: 130px;
max-width: 130px;
max-height: 150px;
font-size: smaller;
text-align: center;
margin: 0.5em;
background-color: white;
}
#indivgallery img {
border: solid 1px #7D5925;
@@ -603,43 +449,6 @@ div#families .infolist h4 {
/* ## remove this line and the comment markers from the line below to hide the description in Individual Gallery
display: none; */
}
#gallery div.indexno {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
color: #555;
margin: 0;
}
#indivgallery div.date {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
color: #555;
}
#indivgallery .thumbnail ul {
font-size: smaller;
list-style: none;
padding: 0px;
}
#indivgallery .thumbnail ul li:first-child {
border-style: none;
}
#indivgallery .thumbnail ul li {
border-top: dashed 1px #CCC;
border-top-style: dashed;
padding-top: 0.5em;
padding-bottom: 0.5em;
}
#gallery img {
border: solid 1px #999;
}
div.snapshot div.thumbnail {
text-align: center;
}
/* SubSection : Narrative
-----------------------------------------------------------------*/
@@ -706,9 +515,6 @@ div.grampsstylednote p {
width: 40%;
text-align: right;
}
#footer > * {
font-size: 80%;
}
/* Overwritten
-----------------------------------------------------------------*/
@@ -727,6 +533,7 @@ div#map_canvas {
table.calendar {
table-layout: fixed;
empty-cells: show;
width: 950px;
margin: 0px auto;
background: url(../images/Web_Mainz_Mid.png) #FFF2C6 repeat;
}
+12 -204
View File
@@ -19,8 +19,6 @@ Go to <http://gramps-project.org/> to learn more!
Copyright 2008 Jason M. Simanek
Copyright 2009 Stephane Charette
Copyright (C) 2008-2011 Rob G. Healey <robhealey1@gmail.com>
Copyright 2018 Theo van Rijn
Copyright (C) 2019 Serge Noiraud
This file is part of the GRAMPS program.
@@ -84,21 +82,10 @@ img {
.thumbnail a:hover {
background:none;
}
#outerwrapper {
margin: 5px auto;
width: 98%;
}
#outerwrapper > div {
clear: both;
}
.content {
padding-top: 1cm;
background-color:#FFF;
}
#ThumbnailPreview div.snapshot {
float: right;
margin: 0;
}
.content div.snapshot {
float:right;
margin:1.6em;
@@ -113,12 +100,6 @@ img {
.content div.snapshot div.thumbnail span {
display:none;
}
/* Less whitespace on smaller real estate. */
@media only screen and (max-width: 1080px) {
.content {
padding: 0em 0.5em;
}
}
.fullclear {
width:100%;
height:1px;
@@ -273,100 +254,6 @@ div#subnavigation ul li.CurrentSection a {
border-width: 0 0 1px 0;
}
/* Responsive navigation */
a.navIcon {
display: none;
color: #FFF;
}
div#header::after {
content: "";
clear: both;
display: table;
}
div#nav::after {
content: "";
clear: both;
display: table;
}
@media only screen and (max-width: 1080px) {
/* Use less & all realestate on mobiles. */
div#outerwrapper {
margin: 5px auto;
width: 100%;
}
.nav {
background: none; /* Works in IE too. */
/*
width: 200px;
position: absolute;
z-index: 10;
*/
}
/* Undo some of the #nav styles - to enable the class .nav */
.nav ul, #subnavigation ul {
list-style: none;
min-width: unset;
width: 200px;
height: 32px;
margin: 0;
padding: 0;
}
.nav ul li, #subnavigation ul li {
float: unset;
display: unset
}
/* Start with hidden menu options */
/* .nav li:not(:first-child) {display: none;} */
.nav li {display: none;}
.nav ul {display: none;}
a.navIcon {
font-size:1.3em;
display: block;
margin: 0.1em 0.4em 0.4em 0.4em;
float: left;
color: #FFF;
}
.nav.responsive {position: absolute; display: block; z-index: 100;}
.nav.responsive a.icon {
position: absolute;
right: 0;
top: 0;
margin-right: 10px;
}
.nav.responsive ::after {
/* need to remove the "|" when we are in the dropdown menu. */
color: #A97;
background-color: #A97;
}
.nav.responsive li {
/* float: left; */
display: block;
text-align: left;
background-color: #A97;
/* required by IE */
float: left;
clear: both;
width: 200px;
}
div#nav ul, #subnavigation ul {
padding-left: 0px;
}
.content {
padding: 0em 0.5em;
}
}
/* Main Table
----------------------------------------------------- */
table.infolist {
@@ -747,14 +634,6 @@ table.eventlist tbody tr td.ColumnSources {
}
#GalleryDisplay img {
margin:0 auto;
max-width: 800px;
height: auto;
}
@media only screen and (max-width: 1080px) {
#GalleryDisplay img {
max-width: 100%;
}
}
#GalleryDetail div#summaryarea{
margin:0;
@@ -800,6 +679,7 @@ body#ThumbnailPreview div#references table.infolist tbody tr td.ColumnName {
/* Contact
----------------------------------------------------- */
#Contact #summaryarea {
width:500px;
margin:0 auto;
padding:3em;
background-color:#F1ECE2;
@@ -817,6 +697,7 @@ body#ThumbnailPreview div#references table.infolist tbody tr td.ColumnName {
padding:0;
}
#researcher span {
float:left;
display:block;
font:normal .9em/1.4em serif;
margin-right:.4em;
@@ -855,7 +736,7 @@ table.download {
width:100%;
}
table.download img {
float:none;
float:center;
}
table.download thead tr th {
text-align:center;
@@ -898,32 +779,20 @@ table.download td.Modified {
/* Subsections
----------------------------------------------------- */
#Home #GalleryDisplay, #Introduction #GalleryDisplay, #Contact #GalleryDisplay {
float: right;
margin-left: 10px;
margin-right: 10px;
#Home, #Introduction, #Contact {
padding:2em 0 3em 0;
}
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
#Contact #GalleryDisplay img {
display: block;
max-width: 950px;
height: auto;
float: right;
}
@media only screen and (max-width: 1080px) {
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
#Contact #GalleryDisplay img {
max-width: 100%;
}
}
#Home p, #Introduction p {
margin:0 20px 1em 20px;
}
#Home img, #Introduction img {
float:right;
margin:0;
padding:0 20px 3em 2em;
}
#Home a, #Introduction a, #Contact a {
color: #000;
text-decoration: none;
overflow: hidden;
}
div.subsection{
padding-bottom:.5em;
@@ -1057,26 +926,6 @@ div#Addresses table.infolist tr td a, div#Addresses table.infolist tr td p a {
/* Subsections : Gallery
----------------------------------------------------- */
#gallery {
background-color: green;
}
#indivgallery {
background-color: white;
}
#gallery .gallerycell {
float: left;
width: 130px;
height: 150px;
text-align: center;
margin: 0;
background-color: white;
border-top: solid 1px #999;
border-right: solid 1px #999;
}
#gallery .thumbnail {
font-size: smaller;
margin: 3em auto;
}
#indivgallery h4 {
margin-bottom:1em;
}
@@ -1084,49 +933,14 @@ div#Addresses table.infolist tr td a, div#Addresses table.infolist tr td p a {
margin:0;
float:left;
width:130px;
height:150px;
text-align:center;
background-color: white;
}
#gallery div.indexno {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
color: #555;
margin: 0;
}
#indivgallery div.date {
float: right;
width: 1.8em;
font-size: large;
text-align: center;
background-color: #CCC;
color: #555;
}
#indivgallery .thumbnail ul {
font-size: smaller;
list-style: none;
padding: 0px;
}
#indivgallery .thumbnail ul li:first-child {
border-style: none;
}
#indivgallery .thumbnail ul li {
border-top: dashed 1px #CCC;
border-top-style: dashed;
padding-top: 0.5em;
padding-bottom: 0.5em;
}
#gallery img {
border: solid 1px #999;
}
#indivgallery .thumbnail a {
display:block;
margin:0;
padding:0;
background:none;
word-wrap: break-word;
}
#indivgallery .thumbnail a img {
margin:0;
@@ -1143,9 +957,6 @@ div#Addresses table.infolist tr td a, div#Addresses table.infolist tr td p a {
margin:0 auto;
padding:0;
}
div.snapshot div.thumbnail {
text-align: center;
}
/* Subsections : Narrative
----------------------------------------------------- */
@@ -1259,9 +1070,6 @@ div#pedigree {
background-color: #542;
border-top: solid 8px #A97;
}
#footer > * {
font-size: 80%;
}
#footer a, #footer a:visited {
text-decoration: none;
color: #C1B398;
@@ -1289,7 +1097,7 @@ div#pedigree {
margin-right: 10px;
}
#footer p#copyright img {
margin-right: 10px;
margin-right: 10px[
}
#user_footer {
width: 70%;
+8 -19
View File
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop-application">
<id>org.gramps.gramps</id>
<metadata_license>CC0-1.0</metadata_license>
<component type="desktop">
<id>gramps.desktop</id>
<metadata_license>CC0</metadata_license>
<name>Gramps</name>
<summary>Genealogical research program</summary>
@@ -11,7 +11,6 @@
<_p>All of your research is kept organized, searchable and as precise as you need it to be.</_p>
</description>
<launchable type="desktop-id">gramps.desktop</launchable>
<url type="homepage">https://gramps-project.org/</url>
<url type="bugtracker">https://gramps-project.org/bugs/</url>
<url type="help">https://gramps-project.org/wiki/index.php?title=Main_page</url>
@@ -19,21 +18,11 @@
<developer_name>Gramps Development Team</developer_name>
<screenshots>
<screenshot>
<image width="1226" height="740">https://www.gramps-project.org/wiki/images/5/5f/AppData1.png</image>
</screenshot>
<screenshot>
<image width="1226" height="740">https://www.gramps-project.org/wiki/images/6/68/AppData2.png</image>
</screenshot>
<screenshot type="default">
<image width="1226" height="740">https://www.gramps-project.org/wiki/images/e/e9/AppData3.png</image>
</screenshot>
<screenshot>
<image width="1226" height="740">https://www.gramps-project.org/wiki/images/6/68/AppData4.png</image>
</screenshot>
<screenshot>
<image width="1226" height="740">https://www.gramps-project.org/wiki/images/5/50/AppData5.png</image>
</screenshot>
<screenshot width="1226" height="740">http://www.gramps-project.org/wiki/images/5/5f/AppData1.png</screenshot>
<screenshot width="1226" height="740">http://www.gramps-project.org/wiki/images/6/68/AppData2.png</screenshot>
<screenshot type="default" width="1226" height="740">http://www.gramps-project.org/wiki/images/e/e9/AppData3.png</screenshot>
<screenshot width="1226" height="740">http://www.gramps-project.org/wiki/images/6/68/AppData4.png</screenshot>
<screenshot width="1226" height="740">http://www.gramps-project.org/wiki/images/5/50/AppData5.png</screenshot>
</screenshots>
<provides>
+1 -1
View File
@@ -1278,7 +1278,7 @@
<rel type="Unknown"/>
<father hlink="_0000000b0000000b"/>
<mother hlink="_0000002600000026"/>
<childref hlink="_0000006f0000006f" frel="Adopted" mrel="Foster"/>
<childref hlink="_0000006f0000006f"/>
</family>
<family handle="_0000001000000010" change="1198222526" id="F0014">
<rel type="Unknown"/>
+12 -20
View File
@@ -1,12 +1,12 @@
0 HEAD
1 SOUR Gramps
2 VERS 5.0.2
2 VERS 5.0.0-alpha2
2 NAME Gramps
1 DATE 4 AUG 2019
2 TIME 15:26:44
1 DATE 1 SEP 2017
2 TIME 12:10:38
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) 2017 Alex Roitman,,,.
1 GEDC
2 VERS 5.5.1
2 FORM LINEAGE-LINKED
@@ -629,12 +629,8 @@
2 TYPE Birth of Lloyd Smith
2 DATE 13 MAR 1935
2 PLAC San Francisco, San Francisco Co., CA
1 ADOP Y
2 FAMC @F0009@
3 ADOP HUSB
1 FAMC @F0009@
2 _FREL Adopted
2 _MREL Foster
2 PEDI birth
1 FAMS @F0008@
1 CHAN
2 DATE 4 SEP 2016
@@ -790,7 +786,11 @@
3 ADOP BOTH
1 FAMC @F0005@
2 PEDI adopted
1 OBJE @O0000@
1 OBJE
2 FORM jpeg
2 TITL Michael O'Toole 2015-11
2 FILE c:\grampsaio64-5.0.0\share\gramps\tests\O0.jpg
2 NOTE @N0019@
1 NOTE @N0007@
1 CHAN
2 DATE 18 JUN 2016
@@ -889,7 +889,7 @@
0 @I0046@ INDI
1 NAME Tom /Von Tester y tested/
2 GIVN Tom
2 SPFX Von
2 SPFX Von,
2 SURN Tester y, tested
2 NICK TesterNickname
1 SEX M
@@ -1044,7 +1044,7 @@
2 SURN Tester
1 SEX M
1 FAMC @F0016@
2 PEDI Sponsored
2 PEDI Unknown
1 CHAN
2 DATE 29 OCT 2016
3 TIME 16:27:59
@@ -1423,12 +1423,4 @@
0 @N0017@ NOTE A citation Note Source text
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
2 FORM jpg
2 TITL Michael O'Toole 2015-11
1 NOTE @N0019@
1 CHAN
2 DATE 29 OCT 2016
3 TIME 15:23:37
0 TRLR
+27 -38
View File
@@ -3,41 +3,41 @@
"http://gramps-project.org/xml/1.7.1/grampsxml.dtd">
<database xmlns="http://gramps-project.org/xml/1.7.1/">
<header>
<created date="2019-03-13" version="5.0.2"/>
<created date="2016-08-29" version="5.0.0-alpha1"/>
<researcher>
</researcher>
</header>
<events>
<event handle="_0000000500000005" change="1" id="E0000">
<event handle="_0000000500000005" change="1472500305" id="E0000">
<type>Birth</type>
<dateval val="1816"/>
<place hlink="_0000000700000007"/>
<citationref hlink="_0000000600000006"/>
</event>
<event handle="_0000000800000008" change="1" id="E0001">
<event handle="_0000000800000008" change="1472500305" id="E0001">
<type>Residence</type>
<dateval val="1850"/>
<place hlink="_0000000a0000000a"/>
<citationref hlink="_0000000900000009"/>
</event>
<event handle="_0000000b0000000b" change="1" id="E0002">
<event handle="_0000000b0000000b" change="1472500305" id="E0002">
<type>Death</type>
<datestr val="1850/1860"/>
<place hlink="_0000000c0000000c"/>
</event>
<event handle="_0000000f0000000f" change="1" id="E0003">
<event handle="_0000000f0000000f" change="1472500305" id="E0003">
<type>Marriage</type>
<dateval val="1841" type="about"/>
<place hlink="_0000001000000010"/>
</event>
<event handle="_0000001100000011" change="1" id="E0004">
<event handle="_0000001100000011" change="1472500305" id="E0004">
<type>Marriage</type>
<dateval val="1847-08"/>
<place hlink="_0000001200000012"/>
</event>
</events>
<people>
<person handle="_0000000100000001" change="1" id="I0278">
<person handle="_0000000100000001" change="1472500305" id="I0278">
<gender>M</gender>
<name type="Birth Name">
<first>Andrew</first>
@@ -54,13 +54,13 @@
</person>
</people>
<families>
<family handle="_0000000d0000000d" change="1" id="F0073">
<family handle="_0000000d0000000d" change="1472500305" id="F0073">
<rel type="Married"/>
<father hlink="_0000000100000001"/>
<eventref hlink="_0000000f0000000f" role="Family"/>
<childref hlink="_0000000100000001"/>
</family>
<family handle="_0000000e0000000e" change="1" id="F0074">
<family handle="_0000000e0000000e" change="1472500305" id="F0074">
<rel type="Married"/>
<father hlink="_0000000100000001"/>
<eventref hlink="_0000001100000011" role="Family"/>
@@ -68,19 +68,19 @@
</family>
</families>
<citations>
<citation handle="_0000000400000004" change="1" id="C0000">
<citation handle="_0000000400000004" change="1472500305" id="C0000">
<page>Year: 1850; Census Place: District 14, Cape Girardeau, Missouri; Roll: M432_394; Page: 435B; Image: 248</page>
<confidence>2</confidence>
<objref hlink="_0000000300000003"/>
<sourceref hlink="_0000000200000002"/>
</citation>
<citation handle="_0000000600000006" change="1" id="C0001">
<citation handle="_0000000600000006" change="1472500305" id="C0001">
<page>Year: 1850; Census Place: District 14, Cape Girardeau, Missouri; Roll: M432_394; Page: 435B; Image: 248</page>
<confidence>2</confidence>
<objref hlink="_0000000300000003"/>
<sourceref hlink="_0000000200000002"/>
</citation>
<citation handle="_0000000900000009" change="1" id="C0002">
<citation handle="_0000000900000009" change="1472500305" id="C0002">
<page>Year: 1850; Census Place: District 14, Cape Girardeau, Missouri; Roll: M432_394; Page: 435B; Image: 248</page>
<confidence>2</confidence>
<objref hlink="_0000000300000003"/>
@@ -88,7 +88,7 @@
</citation>
</citations>
<sources>
<source handle="_0000000200000002" change="1" id="S0029">
<source handle="_0000000200000002" change="1472500305" id="S0029">
<stitle>1850 United States Federal Census</stitle>
<sauthor>Ancestry.com</sauthor>
<spubinfo>Name: Ancestry.com Operations, Inc.; Location: Provo, UT, USA; Date: 2009;</spubinfo>
@@ -96,43 +96,42 @@
</source>
</sources>
<places>
<placeobj handle="_0000000700000007" change="1" id="P0000" type="Unknown">
<placeobj handle="_0000000700000007" change="1472500305" id="P0000" type="Unknown">
<ptitle>Tennessee, USA</ptitle>
<pname value="Tennessee, USA"/>
</placeobj>
<placeobj handle="_0000000a0000000a" change="1" id="P0001" type="Unknown">
<placeobj handle="_0000000a0000000a" change="1472500305" id="P0001" type="Unknown">
<ptitle>District 14, Cape Girardeau, Missouri, USA</ptitle>
<pname value="District 14, Cape Girardeau, Missouri, USA"/>
</placeobj>
<placeobj handle="_0000000c0000000c" change="1" id="P0002" type="Unknown">
<placeobj handle="_0000000c0000000c" change="1472500305" id="P0002" type="Unknown">
<ptitle>Bollinger Co. MO</ptitle>
<pname value="Bollinger Co. MO"/>
</placeobj>
<placeobj handle="_0000001000000010" change="1" id="P0003" type="Unknown">
<placeobj handle="_0000001000000010" change="1472500305" id="P0003" type="Unknown">
<ptitle>Union Co.?, IL</ptitle>
<pname value="Union Co.?, IL"/>
</placeobj>
<placeobj handle="_0000001200000012" change="1" id="P0004" type="Unknown">
<placeobj handle="_0000001200000012" change="1472500305" id="P0004" type="Unknown">
<ptitle>Wayne, Missouri, United States</ptitle>
<pname value="Wayne, Missouri, United States"/>
</placeobj>
</places>
<objects>
<object handle="_0000000300000003" change="1" id="M159">
<object handle="_0000000300000003" change="1472500305" id="M159">
<file src="1850 United States Federal Census(11)-1.jpg" mime="image/jpeg" description="1850 United States Federal Census"/>
<noteref hlink="_0000001400000014"/>
<noteref hlink="_0000001500000015"/>
</object>
<object handle="_0000001600000016" change="1" id="M158">
<file src="/Users/PRC/Downloads/1850 United States Federal Census(11)-1.jpg" mime="image/jpeg" description="/Users/PRC/Downloads/1850 United States Federal Census(11)-1.jpg"/>
<noteref hlink="_0000001700000017"/>
<object handle="_0000001600000016" change="1472500305" id="M158">
<file src="D:/Users/PRC/Downloads/1850 United States Federal Census(11)-1.jpg" mime="image/jpeg" description="D:\Users\PRC\Downloads\1850 United States Federal Census(11)-1.jpg"/>
</object>
<object handle="_0000001800000018" change="1" id="M157">
<object handle="_0000001700000017" change="1472500305" id="M157">
<file src="http://1.gravatar.com/avatar/77e02a3c8c665155ad1acaac8c2742e0?s=120&amp;d=mm&amp;r=pg" mime="unknown" description="http://1.gravatar.com/avatar/77e02a3c8c665155ad1acaac8c2742e0?s=120&amp;d=mm&amp;r=pg"/>
</object>
</objects>
<repositories>
<repository handle="_0000001300000013" change="1" id="R0001">
<repository handle="_0000001300000013" change="1472500305" id="R0001">
<rname>Ancestry.com</rname>
<type>Library</type>
<address>
@@ -141,26 +140,16 @@
</repository>
</repositories>
<notes>
<note handle="_0000001400000014" change="1" id="N0000" type="Media Note">
<text>Year: 1850; Census Place: District 14, Cape Girardeau, Missouri; Roll: M432_394; Page: 435B; Image: 248 </text>
<note handle="_0000001400000014" change="1472500305" id="N0000" type="Media Note">
<text>Year: 1850; Census Place: District 14, Cape Girardeau, Missouri; Roll: M432_394; Page: 435B; Image: 248</text>
</note>
<note handle="_0000001500000015" change="1" id="N0001" type="GEDCOM import">
<note handle="_0000001500000015" change="1472500305" id="N0001" type="GEDCOM import">
<text>Records not imported into OBJE (multi-media object) Gramps ID M159:
Could not import 1850 United States Federal Census(11)-1.jpg Line 70: 1 FILE 1850 United States Federal Census(11)-1.jpg
</text>
Could not import 1850 United States Federal Census(11)-1.jpg Line 70: 1 FILE 1850 United States Federal Census(11)-1.jpg</text>
<style name="fontface" value="Monospace">
<range start="0" end="200"/>
</style>
</note>
<note handle="_0000001700000017" change="1" id="N0002" type="GEDCOM import">
<text>Records not imported into OBJE (multi-media object) Gramps ID M158:
Could not import D:\Users\PRC\Downloads\1850 United States Federa Line 75: 1 FILE D:\Users\PRC\Downloads\1850 United States Federal Census(11)-1.jpg
</text>
<style name="fontface" value="Monospace">
<range start="0" end="223"/>
</style>
</note>
</notes>
</database>
+4 -5
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-03-05" version="5.0.2"/>
<created date="2017-05-30" version="5.0.0-alpha1"/>
<researcher>
</researcher>
</header>
@@ -66,10 +66,9 @@
<object handle="_0000000300000003" change="1" id="O0000">
<file src="test_emb_55.jpg" mime="image/jpeg" description="Multimedia link embedded form v5.5"/>
<noteref hlink="_0000000200000002"/>
<noteref hlink="_0000000b0000000b"/>
</object>
<object handle="_0000000400000004" change="548708291" id="M1">
<file src="" mime="image/jpeg" description="Multimedia link to linked form v5.5 blob"/>
<file src="" mime="" description="Multimedia link to linked form v5.5 blob"/>
<attribute type="REFN" value="Ref12345M1">
<noteref hlink="_0000001200000012"/>
</attribute>
@@ -118,7 +117,7 @@
<citationref hlink="_0000002700000027"/>
</object>
<object handle="_0000000c0000000c" change="1" id="O0002">
<file src="http://www.geni.com/photo/view?photo_id=6000000001341319061" mime="text/html" description="Multimedia link embedded form v5.5 URL"/>
<file src="http://www.geni.com/photo/view?photo_id=6000000001341319061" mime="unknown" description="Multimedia link embedded form v5.5 URL"/>
<noteref hlink="_0000000b0000000b"/>
</object>
<object handle="_0000000d0000000d" change="1" id="M7">
@@ -130,7 +129,7 @@
<noteref hlink="_0000002900000029"/>
</object>
<object handle="_0000001500000015" change="1" id="M2">
<file src="" mime="image/jpeg" description="2nd blob Multimedia link to linked form v5.5 blob"/>
<file src="" mime="" description="2nd blob Multimedia link to linked form v5.5 blob"/>
<noteref hlink="_0000001600000016"/>
</object>
</objects>
+48 -61
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-07-30" version="5.0.2"/>
<created date="2016-10-23" version="5.0.0-alpha1"/>
<researcher>
<resname>John A. Tester</resname>
</researcher>
@@ -26,23 +26,27 @@
<type>Death</type>
<noteref hlink="_0000001600000016"/>
</event>
<event handle="_0000002700000027" change="1" id="E0003">
<event handle="_0000001e0000001e" change="1" id="E0003">
<type>Who knows OBJE REFN TYPE</type>
<description>REFN</description>
</event>
<event handle="_0000002700000027" change="1" id="E0004">
<type>Birth</type>
<dateval val="1901-06-15"/>
</event>
<event handle="_0000002800000028" change="1" id="E0004">
<event handle="_0000002800000028" change="1" id="E0005">
<type>Death</type>
<dateval val="1975-07-05"/>
</event>
<event handle="_0000002e0000002e" change="1" id="E0005">
<event handle="_0000002e0000002e" change="1" id="E0006">
<type>Birth</type>
<dateval val="1922-06-15"/>
</event>
<event handle="_0000002f0000002f" change="1" id="E0006">
<event handle="_0000002f0000002f" change="1" id="E0007">
<type>Death</type>
<dateval val="1994-07-05"/>
</event>
<event handle="_0000003b0000003b" change="1" id="E0007">
<event handle="_0000003b0000003b" change="1" id="E0008">
<type>TEST</type>
<description>family</description>
</event>
@@ -57,11 +61,10 @@
<eventref hlink="_0000000f0000000f" role="Primary"/>
<eventref hlink="_0000001000000010" role="Primary"/>
<eventref hlink="_0000001500000015" role="Primary"/>
<eventref hlink="_0000001e0000001e" role="Primary"/>
<objref hlink="_0000001f0000001f"/>
<attribute type="RIN" value="123456 Person"/>
<attribute type="REFN" value="98765 for PERSON">
<noteref hlink="_0000001e0000001e"/>
</attribute>
<attribute type="REFN" value="98765 for PERSON"/>
<url href="http://homepages.rootsweb.com/~pmcbride/gedcom/55gctoc.htm" type="Web Home" description="GEDCOM 5.5 documentation web site"/>
<parentin hlink="_0000001700000017"/>
<noteref hlink="_0000001800000018"/>
@@ -267,8 +270,7 @@
Line ignored as not understood Line 18: 2 TEST Header Note
Empty note ignored Line 19: 1 NOTE
Skipped subordinate line Line 20: 2 TEST Empty Note
</text>
Skipped subordinate line Line 20: 2 TEST Empty Note</text>
<style name="fontface" value="Monospace">
<range start="0" end="327"/>
</style>
@@ -286,8 +288,7 @@ Skipped subordinate line Line 20:
Line ignored as not understood Line 26: 2 TEST Submission Note
Empty note ignored Line 27: 1 NOTE
Skipped subordinate line Line 28: 2 TEST Empty Note
Line ignored as not understood Line 29: 1 TEST submission
</text>
Line ignored as not understood Line 29: 1 TEST submission</text>
<style name="fontface" value="Monospace">
<range start="0" end="425"/>
</style>
@@ -299,8 +300,7 @@ Tag recognized but not supported Line 32:
Tag recognized but not supported Line 33: 1 REFN Submission Note REFN
Skipped subordinate line Line 34: 2 TYPE Submission Note REFN TYPE
Tag recognized but not supported Line 35: 1 SOUR Submission note source
Line ignored as not understood Line 39: 1 TEST on XREF Note
</text>
Line ignored as not understood Line 39: 1 TEST on XREF Note</text>
<style name="fontface" value="Monospace">
<range start="0" end="586"/>
</style>
@@ -318,8 +318,7 @@ Line ignored as not understood Line 39:
Line ignored as not understood Line 43: 2 TEST Submitter Note
Empty note ignored Line 44: 1 NOTE
Skipped subordinate line Line 45: 2 TEST Empty Note
Line ignored as not understood Line 46: 1 TEST Submitter
</text>
Line ignored as not understood Line 46: 1 TEST Submitter</text>
<style name="fontface" value="Monospace">
<range start="0" end="460"/>
</style>
@@ -361,10 +360,7 @@ Line ignored as not understood Line 46:
<note handle="_0000001d0000001d" change="979250406" id="N0018" type="Media Note">
<text>Media xref note</text>
</note>
<note handle="_0000001e0000001e" change="1" id="N0019" type="REFN-TYPE">
<text>Who knows OBJE REFN TYPE</text>
</note>
<note handle="_0000002100000021" change="1" id="N0020" type="GEDCOM import">
<note handle="_0000002100000021" change="1" id="N0019" type="GEDCOM import">
<text>Records not imported into INDI (individual) Gramps ID I0001:
Empty note ignored Line 54: 2 NOTE
@@ -386,14 +382,12 @@ Empty note ignored Line 85:
Skipped subordinate line Line 86: 3 TEST Empty Note
Line ignored as not understood Line 88: 3 TEST 123456 Note
Empty note ignored Line 90: 2 NOTE
Skipped subordinate line Line 91: 3 TEST Empty Note
Line ignored as not understood Line 94: 2 TEST REFN
</text>
Skipped subordinate line Line 91: 3 TEST Empty Note</text>
<style name="fontface" value="Monospace">
<range start="0" end="2101"/>
<range start="0" end="2009"/>
</style>
</note>
<note handle="_0000002200000022" change="1" id="N0021" type="GEDCOM import">
<note handle="_0000002200000022" change="1" id="N0020" type="GEDCOM import">
<text>Records not imported into NOTE Gramps ID N0018:
Tag recognized but not supported Line 103: 1 RIN 123456
@@ -402,89 +396,85 @@ Skipped subordinate line Line 105:
Tag recognized but not supported Line 109: 2 NOTE Note on a change on a note!!!
Skipped subordinate line Line 110: 3 CHAN
Skipped subordinate line Line 111: 4 DATE 2001-01-11
Skipped subordinate line Line 112: 5 TIME 16:00:06
</text>
Skipped subordinate line Line 112: 5 TIME 16:00:06</text>
<style name="fontface" value="Monospace">
<range start="0" end="741"/>
</style>
</note>
<note handle="_0000002300000023" change="1" id="N0022" type="REFN-TYPE">
<note handle="_0000002300000023" change="1" id="N0021" type="REFN-TYPE">
<text>Who knows REFN TYPE</text>
</note>
<note handle="_0000002500000025" change="1" id="N0023" type="GEDCOM import">
<note handle="_0000002500000025" change="1" id="N0022" type="GEDCOM import">
<text>Records not imported into OBJE (multi-media object) Gramps ID M1:
Could not import photo.jpg Line 114: 1 FILE photo.jpg
</text>
Could not import photo.jpg Line 114: 1 FILE photo.jpg</text>
<style name="fontface" value="Monospace">
<range start="0" end="164"/>
</style>
</note>
<note handle="_0000002900000029" change="979250406" id="N0024" type="Person Note">
<note handle="_0000002900000029" change="979250406" id="N0023" type="Person Note">
<text>Family Spouse reference Note</text>
<tagref hlink="_0000000500000005"/>
</note>
<note handle="_0000002b0000002b" change="1" id="N0025" type="GEDCOM import">
<note handle="_0000002b0000002b" change="1" id="N0024" type="GEDCOM import">
<text>Records not imported into INDI (individual) Gramps ID I0002:
Empty note ignored Line 132: 2 NOTE
Skipped subordinate line Line 133: 3 TEST Empty Note
</text>
Skipped subordinate line Line 133: 3 TEST Empty Note</text>
<style name="fontface" value="Monospace">
<range start="0" end="248"/>
</style>
</note>
<note handle="_0000002d0000002d" change="979250406" id="N0026" type="General">
<note handle="_0000002d0000002d" change="979250406" id="N0025" type="General">
<text>Name note</text>
<tagref hlink="_0000000500000005"/>
</note>
<note handle="_0000003100000031" change="1" id="N0027" type="LDS Note">
<note handle="_0000003100000031" change="1" id="N0026" type="LDS Note">
<text>Place note</text>
<tagref hlink="_0000000500000005"/>
</note>
<note handle="_0000003400000034" change="1" id="N0028" type="LDS Note">
<note handle="_0000003400000034" change="1" id="N0027" type="LDS Note">
<text>LDS xref note</text>
</note>
<note handle="_0000003600000036" change="979250406" id="N0029" type="Association Note">
<note handle="_0000003600000036" change="979250406" id="N0028" type="Association Note">
<text>Association link note</text>
<tagref hlink="_0000000500000005"/>
</note>
<note handle="_0000003800000038" change="1" id="N0030" type="GEDCOM import">
<note handle="_0000003800000038" change="1" id="N0029" type="GEDCOM import">
<text>Records not imported into INDI (individual) Gramps ID I0003:
Empty note ignored Line 141: 2 NOTE
Skipped subordinate line Line 142: 3 TEST Empty Note
Line ignored as not understood Line 163: 3 TEST Accociation note
Empty note ignored Line 167: 2 NOTE
Skipped subordinate line Line 168: 3 TEST Empty Note
</text>
Skipped subordinate line Line 168: 3 TEST Empty Note</text>
<style name="fontface" value="Monospace">
<range start="0" end="538"/>
</style>
</note>
<note handle="_0000003900000039" change="979250406" id="N0031" type="General">
<note handle="_0000003900000039" change="979250406" id="N0030" type="General">
<text>Just for association</text>
<tagref hlink="_0000000500000005"/>
</note>
<note handle="_0000003e0000003e" change="1" id="N0032" type="Family Note">
<note handle="_0000003e0000003e" change="1" id="N0031" type="Family Note">
<text>Family xref note</text>
</note>
<note handle="_0000003f0000003f" change="979250406" id="N0033" type="Family Note">
<note handle="_0000003f0000003f" change="979250406" id="N0032" type="Family Note">
<text>Family note</text>
<tagref hlink="_0000000500000005"/>
</note>
<note handle="_0000004000000040" change="1" id="N0034" type="Citation">
<note handle="_0000004000000040" change="1" id="N0033" type="Citation">
<text>Citation Data Note</text>
<tagref hlink="_0000000500000005"/>
</note>
<note handle="_0000004100000041" change="1" id="N0035" type="Source text">
<note handle="_0000004100000041" change="1" id="N0034" type="Source text">
<text>A sample text from a source of this family</text>
</note>
<note handle="_0000004200000042" change="979250406" id="N0036" type="Citation">
<note handle="_0000004200000042" change="979250406" id="N0035" type="Citation">
<text>A note this citation is on the FAMILY record.</text>
<tagref hlink="_0000000500000005"/>
</note>
<note handle="_0000004400000044" change="1" id="N0037" type="GEDCOM import">
<note handle="_0000004400000044" change="1" id="N0036" type="GEDCOM import">
<text>Records not imported into FAM (family) Gramps ID F0001:
Line ignored as not understood Line 183: 2 TEST Family Note
@@ -492,44 +482,41 @@ Empty note ignored Line 187:
Skipped subordinate line Line 188: 2 TEST Empty Note
Line ignored as not understood Line 190: 2 TEST citation
Line ignored as not understood Line 194: 3 TEST Citation Data
Line ignored as not understood Line 196: 4 TEST Citation Data Note
</text>
Line ignored as not understood Line 196: 4 TEST Citation Data Note</text>
<style name="fontface" value="Monospace">
<range start="0" end="645"/>
</style>
</note>
<note handle="_0000004600000046" change="979250406" id="N0038" type="Repository Reference Note">
<note handle="_0000004600000046" change="979250406" id="N0037" type="Repository Reference Note">
<text>A short note about the repository link.</text>
<tagref hlink="_0000000500000005"/>
</note>
<note handle="_0000004700000047" change="979250406" id="N0039" type="Source Note">
<note handle="_0000004700000047" change="979250406" id="N0038" type="Source Note">
<text>note embedded in the SOURCE Record</text>
<tagref hlink="_0000000500000005"/>
</note>
<note handle="_0000004800000048" change="1" id="N0040" type="GEDCOM import">
<note handle="_0000004800000048" change="1" id="N0039" type="GEDCOM import">
<text>Records not imported into SOUR (source) Gramps ID S0001:
Line ignored as not understood Line 206: 1 TEST source
Empty note ignored Line 208: 2 NOTE
Skipped subordinate line Line 209: 3 TEST Empty Note
Empty note ignored Line 214: 1 NOTE
Skipped subordinate line Line 215: 2 TEST Empty Note
</text>
Skipped subordinate line Line 215: 2 TEST Empty Note</text>
<style name="fontface" value="Monospace">
<range start="0" end="524"/>
</style>
</note>
<note handle="_0000004900000049" change="1" id="N0041" type="Repository Note">
<note handle="_0000004900000049" change="1" id="N0040" type="Repository Note">
<text>Repository Note</text>
<tagref hlink="_0000000500000005"/>
</note>
<note handle="_0000004a0000004a" change="1" id="N0042" type="GEDCOM import">
<note handle="_0000004a0000004a" change="1" id="N0041" type="GEDCOM import">
<text>Records not imported into REPO (repository) Gramps ID R0002:
Line ignored as not understood Line 223: 1 TEST Repo
Empty note ignored Line 224: 1 NOTE
Skipped subordinate line Line 225: 2 TEST Empty Note
</text>
Skipped subordinate line Line 225: 2 TEST Empty Note</text>
<style name="fontface" value="Monospace">
<range start="0" end="340"/>
</style>
+2 -4
View File
@@ -50,9 +50,9 @@
0 @I0@ INDI
1 NAME Anna /Hansdotter/
2 GIVN Anna
2 SURN Hansdotter, Smith
2 SPFX Vrow, huh
2 SURN Hansdotter
2 SPFX Vrow
2 SURN Smith
2 _AKA Anna Smith
2 _AKA Hanna
2 NOTE Hans daughter? N0000
@@ -83,8 +83,6 @@
2 DATE 11 AUG 1966
2 PLAC San Francisco, San Francisco Co., CA
1 FAMC @F8@
2 _FREL Adopted
2 _MREL Foster
1 CHAN
2 DATE 21 DEC 2007
3 TIME 01:35:26
+25 -40
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="2016-10-24" version="5.0.0-alpha1"/>
<researcher>
<resname>Alex Roitman,,,</resname>
<resaddr>Not Provided</resaddr>
@@ -163,7 +163,6 @@
</event>
<event handle="_0000005500000055" change="1" id="E0026">
<type>Birth</type>
<description>No Date Information</description>
</event>
<event handle="_0000005600000056" change="1" id="E0027">
<type>Death</type>
@@ -617,8 +616,7 @@
<gender>F</gender>
<name type="Birth Name">
<first>Anna</first>
<surname prefix="Vrow">Hansdotter</surname>
<surname prim="0">Smith</surname>
<surname prefix="Vrow">Smith</surname>
<noteref hlink="_0000001100000011"/>
</name>
<name alt="1" type="Also Known As">
@@ -1134,7 +1132,7 @@
<mother hlink="_000000b6000000b6"/>
<eventref hlink="_000000e3000000e3" role="Family"/>
<childref hlink="_0000004800000048" mrel="Adopted" frel="Adopted"/>
<childref hlink="_0000001900000019" mrel="Foster" frel="Adopted"/>
<childref hlink="_0000001900000019"/>
<childref hlink="_0000007b0000007b" mrel="Adopted" frel="Adopted"/>
<noteref hlink="_000000e4000000e4"/>
</family>
@@ -1458,13 +1456,13 @@
<noteref hlink="_000000f9000000f9"/>
</object>
<object handle="_000000d1000000d1" change="1" id="O0001">
<file src="Magnes&amp;Anna_smiths_marr_cert.jpg" mime="image/jpeg" description="Magnes&amp;Anna_smiths_marr_cert.jpg"/>
<file src="Magnes&amp;Anna_smiths_marr_cert.jpg" mime="unknown" description="Magnes&amp;Anna_smiths_marr_cert.jpg"/>
</object>
<object handle="_000000d8000000d8" change="1" id="O0002">
<file src="John&amp;Alice_smiths_marr_cert.jpg" mime="image/jpeg" description="John&amp;Alice_smiths_marr_cert.jpg"/>
<file src="John&amp;Alice_smiths_marr_cert.jpg" mime="unknown" description="John&amp;Alice_smiths_marr_cert.jpg"/>
</object>
<object handle="_000000f1000000f1" change="1" id="O0003">
<file src="Attic_photo.jpg" mime="image/jpeg" description="Attic_photo.jpg"/>
<file src="Attic_photo.jpg" mime="unknown" description="Attic_photo.jpg"/>
</object>
</objects>
<repositories>
@@ -1508,8 +1506,7 @@
<note handle="_0000000100000001" change="1" id="N0000" type="GEDCOM import">
<text>Records not imported into HEAD (header):
GEDCOM FORM not supported Line 14: 2 FORM NOT LINEAGE-LINKED
</text>
GEDCOM FORM not supported Line 14: 2 FORM NOT LINEAGE-LINKED</text>
<style name="fontface" value="Monospace">
<range start="0" end="148"/>
</style>
@@ -1517,8 +1514,7 @@ GEDCOM FORM not supported Line 14:
<note handle="_0000000200000002" change="1" id="N0001" type="GEDCOM import">
<text>Records not imported into SUBM (Submitter): (@SUBM@) Alex Roitman,,,:
Line ignored as not understood Line 23: 2 NOTE No address provided (note not supported)
</text>
Line ignored as not understood Line 23: 2 NOTE No address provided (note not supported)</text>
<style name="fontface" value="Monospace">
<range start="0" end="199"/>
</style>
@@ -1527,8 +1523,7 @@ Line ignored as not understood Line 23:
<text>Records not imported into FAM (family) Gramps ID F0003:
Line ignored as not understood Line 46: 2 SOUR Not really allowed here
Filename omitted Line 48: 1 OBJE
</text>
Filename omitted Line 48: 1 OBJE</text>
<style name="fontface" value="Monospace">
<range start="0" end="256"/>
</style>
@@ -1566,9 +1561,8 @@ Filename omitted Line 48:
<note handle="_0000003d0000003d" change="1" id="N0012" type="GEDCOM import">
<text>Records not imported into INDI (individual) Gramps ID I0016:
Warn: ADDR overwritten Line 206: 3 ADR1 456 Main St again
ADDR element ignored '459 Main St.' Line 204: 2 ADDR 459 Main St., The Village, San Francisco, CA, USA
</text>
Warn: ADDR overwritten Line 204: 3 ADR1 456 Main St again
ADDR element ignored '459 Main St.' Line 202: 2 ADDR 459 Main St., The Village, San Francisco, CA, USA</text>
<style name="fontface" value="Monospace">
<range start="0" end="304"/>
</style>
@@ -1579,8 +1573,7 @@ ADDR element ignored '459 Main St.' Line 204:
<note handle="_0000004700000047" change="1" id="N0014" type="GEDCOM import">
<text>Records not imported into INDI (individual) Gramps ID I0018:
Tag recognized but not supported Line 247: 2 TYPE first generaton
</text>
Tag recognized but not supported Line 245: 2 TYPE first generaton</text>
<style name="fontface" value="Monospace">
<range start="0" end="165"/>
</style>
@@ -1611,8 +1604,7 @@ Company. He enlisted in the army at Sparks 7 December 1917 and served as a Corpo
<note handle="_000000cf000000cf" change="1" id="N0021" type="GEDCOM import">
<text>Records not imported into FAM (family) Gramps ID F0010:
Tag recognized but not supported Line 865: 2 _STAT
</text>
Tag recognized but not supported Line 863: 2 _STAT</text>
<style name="fontface" value="Monospace">
<range start="0" end="146"/>
</style>
@@ -1620,9 +1612,8 @@ Tag recognized but not supported Line 865:
<note handle="_000000d4000000d4" change="1" id="N0022" type="GEDCOM import">
<text>Records not imported into FAM (family) Gramps ID F0011:
Could not import Magnes&amp;Anna_smiths_marr_cert.jpg Line 880: 3 OBJE
Could not import Magnes&amp;Anna_smiths_marr_cert.jpg Line 883: 2 OBJE
</text>
Could not import Magnes&amp;Anna_smiths_marr_cert.jpg Line 878: 3 OBJE
Could not import Magnes&amp;Anna_smiths_marr_cert.jpg Line 881: 2 OBJE</text>
<style name="fontface" value="Monospace">
<range start="0" end="233"/>
</style>
@@ -1630,8 +1621,7 @@ Could not import Magnes&amp;Anna_smiths_marr_cert.jpg Line 8
<note handle="_000000d9000000d9" change="1" id="N0023" type="GEDCOM import">
<text>Records not imported into FAM (family) Gramps ID F0012:
Could not import John&amp;Alice_smiths_marr_cert.jpg Line 907: 1 OBJE
</text>
Could not import John&amp;Alice_smiths_marr_cert.jpg Line 905: 1 OBJE</text>
<style name="fontface" value="Monospace">
<range start="0" end="145"/>
</style>
@@ -1639,8 +1629,7 @@ Could not import John&amp;Alice_smiths_marr_cert.jpg Line 9
<note handle="_000000e4000000e4" change="1" id="N0024" type="GEDCOM import">
<text>Records not imported into FAM (family) Gramps ID F0008:
Tag recognized but not supported Line 1007: 1 ADDR 123 Main st, Grantville, Virginia, USA
</text>
Tag recognized but not supported Line 1005: 1 ADDR 123 Main st, Grantville, Virginia, USA</text>
<style name="fontface" value="Monospace">
<range start="0" end="183"/>
</style>
@@ -1663,9 +1652,8 @@ Tag recognized but not supported Line 1007:
<note handle="_000000ee000000ee" change="1" id="N0030" type="GEDCOM import">
<text>Records not imported into SOUR (source) Gramps ID S0003:
Tag recognized but not supported Line 1047: 1 DATA
Skipped subordinate line Line 1048: 2 AGNC NYC Public Library
</text>
Tag recognized but not supported Line 1045: 1 DATA
Skipped subordinate line Line 1046: 2 AGNC NYC Public Library</text>
<style name="fontface" value="Monospace">
<range start="0" end="252"/>
</style>
@@ -1679,10 +1667,9 @@ Skipped subordinate line Line 1048:
<note handle="_000000f5000000f5" change="1" id="N0033" type="GEDCOM import">
<text>Records not imported into REPO (repository) Gramps ID R0003:
REFN ignored Line 1077: 3 REFN blah blah
Skipped subordinate line Line 1078: 4 TYPE who knows
Could not import Attic_photo.jpg Line 1081: 3 OBJE
</text>
REFN ignored Line 1075: 3 REFN blah blah
Skipped subordinate line Line 1076: 4 TYPE who knows
Could not import Attic_photo.jpg Line 1079: 3 OBJE</text>
<style name="fontface" value="Monospace">
<range start="0" end="344"/>
</style>
@@ -1690,8 +1677,7 @@ Could not import Attic_photo.jpg Line 1081:
<note handle="_000000f6000000f6" change="1" id="N0034" type="GEDCOM import">
<text>Records not imported into Top Level:
Unknown tag Line 1108: 0 XXX an unknown token at level 0
</text>
Unknown tag Line 1106: 0 XXX an unknown token at level 0</text>
<style name="fontface" value="Monospace">
<range start="0" end="152"/>
</style>
@@ -1699,13 +1685,12 @@ Unknown tag Line 1108:
<note handle="_000000f8000000f8" change="1" id="N0035" type="GEDCOM import">
<text>Records not imported into Top Level:
Unknown tag Line 1111: 1 @X1@ XXX and unknown token xref definition
</text>
Unknown tag Line 1109: 1 @X1@ XXX and unknown token xref definition</text>
<style name="fontface" value="Monospace">
<range start="0" end="163"/>
</style>
</note>
<note handle="_000000f9000000f9" change="1564950708" id="N0036" type="General">
<note handle="_000000f9000000f9" change="1477325896" 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>
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -57,7 +57,7 @@
<_tip number="29"><b>Show All Checkbutton</b><br/>When adding an existing person as a spouse, the list of people shown is filtered to display only people who could realistically fit the role (based on dates in the database). In case Gramps is wrong in making this choice, you can override the filter by checking the Show All checkbutton.</_tip>
<_tip number="31"><b>Improving Gramps</b><br/>Users are encouraged to request enhancements to Gramps. Requesting an enhancement can be done either through the gramps-users or gramps-devel mailing lists, or by going to https://gramps-project.org/bugs/ and creating a Feature Request. Filing a Feature Request is preferred but it can be good to discuss your ideas on the email lists.</_tip>
<_tip number="31"><b>Improving Gramps</b><br/>Users are encouraged to request enhancements to Gramps. Requesting an enhancement can be done either through the gramps-users or gramps-devel mailing lists, or by going to http://bugs.gramps-project.org and creating a Feature Request. Filing a Feature Request is preferred but it can be good to discuss your ideas on the email lists.</_tip>
<_tip number="32"><b>Gramps Mailing Lists</b><br/>Want answers to your questions about Gramps? Check out the gramps-users email list. Many helpful people are on the list, so you're likely to get an answer quickly. If you have questions related to the development of Gramps, try the gramps-devel list. You can see the lists by selecting &quot;Help &gt; Gramps Mailing Lists&quot;.</_tip>
@@ -91,7 +91,7 @@
<_tip number="49"><b>Making a Genealogy Website</b><br/>You can easily export your family tree to a web page. Select the entire database, family lines or selected individuals to a collection of web pages ready for upload to the World Wide Web.</_tip>
<_tip number="50"><b>Reporting Bugs in Gramps</b><br/>The best way to report a bug in Gramps is to use the Gramps bug tracking system at https://gramps-project.org/bugs/</_tip>
<_tip number="50"><b>Reporting Bugs in Gramps</b><br/>The best way to report a bug in Gramps is to use the Gramps bug tracking system at http://bugs.gramps-project.org</_tip>
<_tip number="51"><b>The Gramps Homepage</b><br/>The Gramps homepage is at http://gramps-project.org/</_tip>
-7
View File
@@ -1,10 +1,3 @@
gramps (5.0.1-1) unstable; urgency=medium
* New release
* Update copyright file
-- Ross Gammon <rossgammon@debian.org> Thu, 20 Dec 2018 20:41:23 +0100
gramps (5.0.0-1) unstable; urgency=medium
* New Gramps release
+1 -2
View File
@@ -64,7 +64,7 @@ Copyright: 2000-2007, Alex Roitman
2011, Helge Herz
2011, 2013 John Ralls
2011, 2016 Matt Keenan
2011-2018, Paul Franklin
2011-2017, Paul Franklin
2012, lcc
2012, 2014, Mathieu MD
2012, Nicolas Adenis-Lamarre
@@ -86,7 +86,6 @@ Copyright: 2000-2007, Alex Roitman
2016, Tom Samstag
2017, Mindaugas Baranauskas
2017, Robert Carnell
2018, Robin van der Vliet
License: GPL-2+
Files: debian/*
+3 -3
View File
@@ -57,7 +57,7 @@ master_doc = 'index'
# General information about the project.
project = 'Gramps'
copyright = '2001-2019, The Gramps Project'
copyright = '2001-2018, The Gramps Project'
author = 'Donald N. Allingham'
# The version info for the project you're documenting, acts as replacement for
@@ -65,9 +65,9 @@ author = 'Donald N. Allingham'
# built documents.
#
# The short X.Y version.
version = '5.1.0'
version = '5.0.0'
# The full version, including alpha/beta/rc tags.
release = '5.1.0'
release = '5.0.0-master'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
+1 -1
View File
@@ -15,7 +15,7 @@
<resphone>(555)123-4567</resphone>
<resemail>anyone@someplace.com</resemail>
</researcher>
<mediapath>{GRAMPS_RESOURCES}/doc/gramps/example/gramps</mediapath>
<mediapath>{GRAMPS_RESOURCES}/example/gramps</mediapath>
</header>
<tags>
<tag handle="_c7642d9389b54417e8b" change="1370206720" name="tag1" color="#000000000000" priority="0"/>
+1 -1
View File
@@ -7,7 +7,7 @@
<researcher>
<resname>Alex Roitman,,,</resname>
</researcher>
<mediapath>{GRAMPS_RESOURCES}/doc/gramps/example/gramps</mediapath>
<mediapath>{GRAMPS_RESOURCES}/example/gramps</mediapath>
</header>
<name-formats>
<format number="-1" name="SURNAME, Given (Common)" fmt_str="SURNAME, given (common)" active="1"/>
+5 -9
View File
@@ -47,7 +47,6 @@ from gramps.gen.recentfiles import recent_files
from gramps.gen.utils.file import rm_tempdir, get_empty_tempdir
from .clidbman import CLIDbManager, NAME_FILE, find_locker_name
from gramps.gen.db.utils import make_database
from gramps.gen.db.dbconst import DBBACKEND
from gramps.gen.plug import BasePluginManager
from gramps.gen.plug.report import CATEGORY_BOOK, CATEGORY_CODE, BookList
from .plug import cl_report, cl_book
@@ -383,7 +382,7 @@ class ArgHandler:
self.open = db_path
self.__open_action()
else:
sys.exit(_("Error: cannot open '%s'") % self.open_gui)
sys.exit(1)
return db_path
# if not open_gui, parse any command line args. We can only have one
@@ -505,9 +504,6 @@ class ArgHandler:
self.imp_db_path = get_empty_tempdir("import_dbdir")
dbid = config.get('database.backend')
newdb = make_database(dbid)
versionpath = os.path.join(self.imp_db_path, str(DBBACKEND))
with open(versionpath, "w") as version_file:
version_file.write(dbid)
try:
self.smgr.open_activate(self.imp_db_path, self.username, self.password)
@@ -623,8 +619,8 @@ class ArgHandler:
#import of plugin failed
return
category = pdata.category
report_class = getattr(mod, pdata.reportclass)
options_class = getattr(mod, pdata.optionclass)
report_class = eval('mod.' + pdata.reportclass)
options_class = eval('mod.' + pdata.optionclass)
if category in (CATEGORY_BOOK, CATEGORY_CODE):
options_class(self.dbstate.db, name, category,
options_str_dict)
@@ -672,8 +668,8 @@ class ArgHandler:
#import of plugin failed
return
category = pdata.category
tool_class = getattr(mod, pdata.toolclass)
options_class = getattr(mod, pdata.optionclass)
tool_class = eval('mod.' + pdata.toolclass)
options_class = eval('mod.' + pdata.optionclass)
tool.cli_tool(dbstate=self.dbstate,
name=name,
category=category,
+3 -52
View File
@@ -39,16 +39,15 @@ import sys
import os
import getopt
import logging
import shutil
from glob import glob
#-------------------------------------------------------------------------
#
# gramps modules
#
#-------------------------------------------------------------------------
from gramps.gen.const import (LONGOPTS, SHORTOPTS, USER_PLUGINS, VERSION_DIR,
HOME_DIR, TEMP_DIR, THUMB_DIR, ENV_DIR, USER_CSS)
from gramps.gen.const import LONGOPTS, SHORTOPTS, PLUGINS_DIR, USER_PLUGINS
from gramps.gen.plug import BasePluginManager
from gramps.gen.config import config
from gramps.gen.utils.cast import get_type_converter
from gramps.gen.const import GRAMPS_LOCALE as glocale
_ = glocale.translation.gettext
@@ -82,14 +81,6 @@ Application options
-y, --yes Don't ask to confirm dangerous actions (non-GUI mode only)
-q, --quiet Suppress progress indication output (non-GUI mode only)
-v, --version Show versions
-S, --safe Start Gramps in 'Safe mode'
(temporarily use default settings)
-D, --default=[APXFE] Reset settings to default;
A - addons are cleared
P - Preferences to default
X - Books are cleared, reports and tool settings to default
F - filters are cleared
E - Everything is set to default or cleared
""")
_USAGE = _("""
@@ -351,7 +342,6 @@ class ArgParser:
elif option in ['-t']:
self.list_table = True
elif option in ['-s', '--show']:
from gramps.gen.config import config
print(_("Gramps config settings from %s:"
) % config.filename)
for sect in config.data:
@@ -361,7 +351,6 @@ class ArgParser:
print()
sys.exit(0)
elif option in ['-c', '--config']:
from gramps.gen.config import config
cfg_name = value
set_value = False
if cfg_name:
@@ -407,44 +396,6 @@ class ArgParser:
self.auto_accept = True
elif option in ['-q', '--quiet']:
self.quiet = True
elif option in ['-S', '--safe']:
cleandbg += [opt_ix]
elif option in ['-D', '--default']:
def rmtree(path):
if os.path.isdir(path):
shutil.rmtree(path, ignore_errors=True)
if 'E' in value or 'A' in value: # clear addons
rmtree(USER_PLUGINS)
if 'E' in value or 'P' in value: # clear ini preferences
for fil in glob(os.path.join(VERSION_DIR, "*.*")):
if "custom_filters.xml" in fil:
continue
os.remove(fil)
# create gramps.ini so config won't load the one from an
# older version of Gramps.
with open(os.path.join(VERSION_DIR, 'gramps.ini'), 'w'):
pass
if 'E' in value or 'F' in value: # clear filters
fil = os.path.join(VERSION_DIR, "custom_filters.xml")
if os.path.isfile(fil):
os.remove(fil)
if 'E' in value or 'X' in value: # clear xml reports/tools
for fil in glob(os.path.join(HOME_DIR, "*.xml")):
os.remove(fil)
if 'E' in value or 'Z' in value: # clear upgrade zips
for fil in glob(os.path.join(HOME_DIR, "*.zip")):
os.remove(fil)
if 'E' in value: # Everything else
rmtree(TEMP_DIR)
rmtree(THUMB_DIR)
rmtree(USER_CSS)
rmtree(ENV_DIR)
rmtree(os.path.join(HOME_DIR, "maps"))
for fil in glob(os.path.join(HOME_DIR, "*")):
if os.path.isfile(fil):
os.remove(fil)
sys.exit(0) # Done with Default
#clean options list
cleandbg.reverse()
+5 -14
View File
@@ -6,7 +6,6 @@
# Copyright (C) 2008-2009 Gary Burton
# Copyright (C) 2009-2012 Doug Blank <doug.blank@gmail.com>
# Copyright (C) 2011 Tim G L Lyons
# Copyright (C) 2015- Serge Noiraud
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -149,7 +148,6 @@ register('behavior.min-generation-years', 13)
register('behavior.owner-warn', False)
register('behavior.pop-plugin-status', False)
register('behavior.recent-export-type', 3)
register('behavior.runcheck', False)
register('behavior.spellcheck', False)
register('behavior.startup', 0)
register('behavior.surname-guessing', 0)
@@ -159,7 +157,7 @@ register('behavior.welcome', 100)
register('behavior.web-search-url', 'http://google.com/#&q=%(text)s')
register('behavior.addons-url', "https://raw.githubusercontent.com/gramps-project/addons/master/gramps51")
register('database.backend', 'sqlite')
register('database.backend', 'bsddb')
register('database.compress-backup', True)
register('database.backup-path', USER_HOME)
register('database.backup-on-exit', True)
@@ -198,6 +196,7 @@ register('interface.view-categories',
register('interface.filter', False)
register('interface.fullscreen', False)
register('interface.grampletbar-close', False)
register('interface.grampletbar-freeze', False)
register('interface.ignore-gexiv2', False)
register('interface.ignore-pil', False)
register('interface.ignore-osmgpsmap', False)
@@ -224,9 +223,9 @@ register('interface.view', True)
register('interface.surname-box-height', 150)
register('interface.treemodel-cache-size', 1000)
register('paths.recent-export-dir', USER_HOME)
register('paths.recent-export-dir', '')
register('paths.recent-file', '')
register('paths.recent-import-dir', USER_HOME)
register('paths.recent-import-dir', '')
register('paths.report-directory', USER_HOME)
register('paths.website-directory', USER_HOME)
register('paths.website-cms-uri', '')
@@ -241,6 +240,7 @@ register('preferences.quick-backup-include-mode', False)
register('preferences.date-format', 0)
register('preferences.calendar-format-report', 0)
register('preferences.cprefix', 'C%04d')
register('preferences.alternate-fonthandler', False)
register('preferences.default-source', False)
register('preferences.tag-on-import', False)
register('preferences.tag-on-import-format', _("Imported %Y/%m/%d %H:%M:%S"))
@@ -282,10 +282,6 @@ register('colors.female-dead', ['#feccf0', '#3a292b'])
register('colors.unknown-alive', ['#f3dbb6', '#75507B'])
register('colors.unknown-dead', ['#f3dbb6', '#35103b'])
register('colors.family', ['#eeeeee', '#454545'])
register('colors.family-married', ['#eeeeee', '#454545'])
register('colors.family-unmarried', ['#eeeeee', '#454545'])
register('colors.family-civil-union', ['#eeeeee', '#454545'])
register('colors.family-unknown', ['#eeeeee', '#454545'])
register('colors.family-divorced', ['#ffdede', '#5c3636'])
register('colors.home-person', ['#bbe68a', '#304918'])
register('colors.border-male-alive', ['#1f4986', '#171d26'])
@@ -310,11 +306,6 @@ register('researcher.researcher-state', '')
register('plugin.hiddenplugins', [])
register('plugin.addonplugins', [])
register('utf8.in-use', False)
register('utf8.available-fonts', [])
register('utf8.selected-font', "")
register('utf8.death-symbol', 13)
if __debug__: # enable a simple CLI test to see if the datestrings exist
register('test.january', _("localized lexeme inflections||January"))
+3 -12
View File
@@ -104,13 +104,6 @@ elif 'USERPROFILE' in os.environ:
else:
USER_HOME = get_env_var('HOME')
HOME_DIR = os.path.join(USER_HOME, '.gramps')
ORIG_HOME_DIR = HOME_DIR
if 'SAFEMODE' in os.environ:
if 'USERPROFILE' in os.environ:
USER_HOME = get_env_var('USERPROFILE')
else:
USER_HOME = get_env_var('HOME')
HOME_DIR = get_env_var('SAFEMODE')
VERSION_DIR = os.path.join(
@@ -145,7 +138,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 +218,7 @@ GTK_GETTEXT_DOMAIN = 'gtk30'
#
#-------------------------------------------------------------------------
COPYRIGHT_MSG = "© 2001-2006 Donald N. Allingham\n" \
"© 2007-2019 The Gramps Developers"
"© 2007-2018 The Gramps Developers"
COMMENTS = _("Gramps\n (Genealogical Research and Analysis "
"Management Programming System)\n"
"is a personal genealogy program.")
@@ -274,7 +267,6 @@ LONGOPTS = [
"class=",
"config=",
"debug=",
"default=",
"display=",
"disable-sound",
"disable-crash-dialog",
@@ -302,7 +294,6 @@ LONGOPTS = [
"password=",
"create=",
"options=",
"safe",
"screen=",
"show",
"sm-client-id=",
@@ -316,7 +307,7 @@ LONGOPTS = [
"quiet",
]
SHORTOPTS = "O:U:P:C:i:e:f:a:p:d:c:r:lLthuv?syqSD:"
SHORTOPTS = "O:U:P:C:i:e:f:a:p:d:c:r:lLthuv?syq"
GRAMPS_UUID = uuid.UUID('516cd010-5a41-470f-99f8-eb22f1098ad6')
+10 -10
View File
@@ -51,9 +51,9 @@ class DateParserDE(DateParser):
# Always add german and austrian name variants no matter what the current
# locale is
month_to_int["januar"] = 1
month_to_int["jan"] = 1
month_to_int["jan"] = 1
month_to_int["jänner"] = 1
month_to_int["jän"] = 1
month_to_int["jän"] = 1
# Add other common latin,
@@ -121,14 +121,14 @@ class DateParserDE(DateParser):
# local and historical variants
month_to_int["jenner"] = 1
month_to_int["feber"] = 2
month_to_int["merz"] = 3
month_to_int["augst"] = 8
month_to_int["7ber"] = 9
month_to_int["8ber"] = 10
month_to_int["9ber"] = 11
month_to_int["10ber"] = 12
month_to_int["xber"] = 12
month_to_int["feber"] = 2
month_to_int["merz"] = 3
month_to_int["augst"] = 8
month_to_int["7ber"] = 9
month_to_int["8ber"] = 10
month_to_int["9ber"] = 11
month_to_int["10ber"] = 12
month_to_int["xber"] = 12
# old german names
+11 -10
View File
@@ -22,7 +22,6 @@
#
# Croatian version 2008 by Josip
# Croatian version 2018 by Milo
"""
Croatian-specific classes for parsing and displaying dates.
@@ -52,15 +51,13 @@ from ._datehandler import register_datehandler
#-------------------------------------------------------------------------
class DateParserHR(DateParser):
modifier_to_int = {
'prije' : Date.MOD_BEFORE,
'prije' : Date.MOD_BEFORE,
'pr. ' : Date.MOD_BEFORE,
'poslije' : Date.MOD_AFTER,
'po. ' : Date.MOD_AFTER,
'nakon' : Date.MOD_AFTER,
'na. ' : Date.MOD_AFTER,
'oko' : Date.MOD_ABOUT,
'okolo' : Date.MOD_ABOUT,
'ok. ' : Date.MOD_ABOUT,
'poslije' : Date.MOD_AFTER,
'po. ' : Date.MOD_AFTER,
'okolo' : Date.MOD_ABOUT,
'ok. ' : Date.MOD_ABOUT,
}
quality_to_int = {
@@ -78,6 +75,10 @@ class DateParserHR(DateParser):
compiles regular expression strings for matching dates
"""
DateParser.init_strings(self)
#~ DateParser.calendar_to_int.update({
#~ 'персидский' : Date.CAL_PERSIAN,
#~ 'п' : Date.CAL_PERSIAN,
#~ })
# match 'Day. MONTH year.' format with or without dots
self._text2 = re.compile(r'(\d+)?\.?\s*?%s\.?\s*((\d+)(/\d+)?)?\s*\.?$'
@@ -146,5 +147,5 @@ class DateDisplayHR(DateDisplay):
#
#-------------------------------------------------------------------------
register_datehandler(
('hr_HR', 'hr', 'HR', 'croatian', 'Croatian', 'hrvatski', ('%d. %m. %Y.',)),
('hr_HR', 'hr', 'HR', 'croatian', 'Croatian', 'hrvatski', ('%d.%m.%Y.',)),
DateParserHR, DateDisplayHR)
+37 -37
View File
@@ -55,7 +55,7 @@ class DateParserHU(DateParser):
month_to_int["-"]=0 #to make the Zero month to work
month_to_int["január"] = 1
month_to_int["jan"] = 1
month_to_int["jan"] = 1
month_to_int["jan."] = 1
month_to_int["I"] = 1
# month_to_int["i"] = 1
@@ -64,67 +64,67 @@ class DateParserHU(DateParser):
month_to_int["feb"] = 2
month_to_int["feb."] = 2
month_to_int["II"] = 2
# month_to_int["ii"] = 2
# month_to_int["ii"] = 2
month_to_int["március"] = 3
month_to_int["márc"] = 3
month_to_int["márc."] = 3
month_to_int["III"] = 3
# month_to_int["iii"] = 3
# month_to_int["iii"] = 3
month_to_int["április"] = 4
month_to_int["ápr"] = 4
month_to_int["ápr."] = 4
month_to_int["IV"] = 4
# month_to_int["iv"] = 4
month_to_int["IV"] = 4
# month_to_int["iv"] = 4
month_to_int["május"] = 5
month_to_int["máj"] = 5
month_to_int["máj."] = 5
month_to_int["V"] = 5
# month_to_int["v"] = 5
month_to_int["V"] = 5
# month_to_int["v"] = 5
month_to_int["június"] = 6
month_to_int["jún"] = 6
month_to_int["jún."] = 6
month_to_int["VI"] = 6
# month_to_int["vi"] = 6
month_to_int["VI"] = 6
# month_to_int["vi"] = 6
month_to_int["július"] = 7
month_to_int["júl"] = 7
month_to_int["júl."] = 7
month_to_int["VII"] = 7
# month_to_int["vii"] = 7
month_to_int["július"] = 7
month_to_int["júl"] = 7
month_to_int["júl."] = 7
month_to_int["VII"] = 7
# month_to_int["vii"] = 7
month_to_int["augusztus"] = 8
month_to_int["aug"] = 8
month_to_int["aug."] = 8
month_to_int["VIII"] = 8
# month_to_int["viii"] = 8
month_to_int["augusztus"] = 8
month_to_int["aug"] = 8
month_to_int["aug."] = 8
month_to_int["VIII"] = 8
# month_to_int["viii"] = 8
month_to_int["szeptember"] = 9
month_to_int["szept"] = 9
month_to_int["szeptember"] = 9
month_to_int["szept"] = 9
month_to_int["szept."] = 9
month_to_int["IX"] = 9
# month_to_int["ix"] = 9
month_to_int["IX"] = 9
# month_to_int["ix"] = 9
month_to_int["október"] = 10
month_to_int["okt"] = 10
month_to_int["okt."] = 10
month_to_int["X"] = 10
# month_to_int["x"] = 10
month_to_int["október"] = 10
month_to_int["okt"] = 10
month_to_int["okt."] = 10
month_to_int["X"] = 10
# month_to_int["x"] = 10
month_to_int["november"] = 11
month_to_int["nov"] = 11
month_to_int["november"] = 11
month_to_int["nov"] = 11
month_to_int["nov."] = 11
month_to_int["XI"] = 11
# month_to_int["xi"] = 11
month_to_int["XI"] = 11
# month_to_int["xi"] = 11
month_to_int["december"] = 12
month_to_int["dec"] = 12
month_to_int["dec."] = 12
month_to_int["XII"] = 12
# month_to_int["xii"] = 12
month_to_int["december"] = 12
month_to_int["dec"] = 12
month_to_int["dec."] = 12
month_to_int["XII"] = 12
# month_to_int["xii"] = 12
#-----------------------------------------------------------------------
+21 -21
View File
@@ -57,30 +57,30 @@ class DateParserNL(DateParser):
# Always add dutch and flemish name variants
# no matter what the current locale is
month_to_int["januari"] = 1
month_to_int["jan"] = 1
month_to_int["jan"] = 1
# Add other common latin, local and historical variants
month_to_int["januaris"] = 1
month_to_int["feber"] = 2
month_to_int["februaris"] = 2
month_to_int["merz"] = 3
month_to_int["feber"] = 2
month_to_int["februaris"] = 2
month_to_int["merz"] = 3
#make sure on all distro mrt and maa are accepted
month_to_int["maa"] = 3
month_to_int["mrt"] = 3
month_to_int["aprilis"] = 4
month_to_int["maius"] = 5
month_to_int["junius"] = 6
month_to_int["julius"] = 7
month_to_int["augst"] = 8
month_to_int["7ber"] = 9
month_to_int["7bris"] = 9
month_to_int["8ber"] = 10
month_to_int["8bris"] = 10
month_to_int["9ber"] = 11
month_to_int["9bris"] = 11
month_to_int["10ber"] = 12
month_to_int["10bris"] = 12
month_to_int["xber"] = 12
month_to_int["xbris"] = 12
month_to_int["maa"] = 3
month_to_int["mrt"] = 3
month_to_int["aprilis"] = 4
month_to_int["maius"] = 5
month_to_int["junius"] = 6
month_to_int["julius"] = 7
month_to_int["augst"] = 8
month_to_int["7ber"] = 9
month_to_int["7bris"] = 9
month_to_int["8ber"] = 10
month_to_int["8bris"] = 10
month_to_int["9ber"] = 11
month_to_int["9bris"] = 11
month_to_int["10ber"] = 12
month_to_int["10bris"] = 12
month_to_int["xber"] = 12
month_to_int["xbris"] = 12
modifier_to_int = {
'voor' : Date.MOD_BEFORE,
+32 -32
View File
@@ -54,38 +54,38 @@ class DateParserPL(DateParser):
month_to_int["styczeń"] = 1
month_to_int["sty"] = 1
month_to_int["I"] = 1
month_to_int["luty"] = 2
month_to_int["lut"] = 2
month_to_int["II"] = 2
month_to_int["marzec"] = 3
month_to_int["mar"] = 3
month_to_int["III"] = 3
month_to_int["kwiecień"] = 4
month_to_int["kwi"] = 4
month_to_int["IV"] = 4
month_to_int["maj"] = 5
month_to_int["V"] = 5
month_to_int["czerwiec"] = 6
month_to_int["cze"] = 6
month_to_int["VI"] = 6
month_to_int["lipiec"] = 7
month_to_int["lip"] = 7
month_to_int["VII"] = 7
month_to_int["sierpień"] = 8
month_to_int["sie"] = 8
month_to_int["VIII"] = 8
month_to_int["wrzesień"] = 9
month_to_int["wrz"] = 9
month_to_int["IX"] = 9
month_to_int["październik"] = 10
month_to_int["paź"] = 10
month_to_int["X"] = 10
month_to_int["listopad"] = 11
month_to_int["lis"] = 11
month_to_int["XI"] = 11
month_to_int["grudzień"] = 12
month_to_int["gru"] = 12
month_to_int["XII"] = 12
month_to_int["luty"] = 2
month_to_int["lut"] = 2
month_to_int["II"] = 2
month_to_int["marzec"] = 3
month_to_int["mar"] = 3
month_to_int["III"] = 3
month_to_int["kwiecień"] = 4
month_to_int["kwi"] = 4
month_to_int["IV"] = 4
month_to_int["maj"] = 5
month_to_int["V"] = 5
month_to_int["czerwiec"] = 6
month_to_int["cze"] = 6
month_to_int["VI"] = 6
month_to_int["lipiec"] = 7
month_to_int["lip"] = 7
month_to_int["VII"] = 7
month_to_int["sierpień"] = 8
month_to_int["sie"] = 8
month_to_int["VIII"] = 8
month_to_int["wrzesień"] = 9
month_to_int["wrz"] = 9
month_to_int["IX"] = 9
month_to_int["październik"] = 10
month_to_int["paź"] = 10
month_to_int["X"] = 10
month_to_int["listopad"] = 11
month_to_int["lis"] = 11
month_to_int["XI"] = 11
month_to_int["grudzień"] = 12
month_to_int["gru"] = 12
month_to_int["XII"] = 12
# Alternative forms: declined nouns
month_to_int["stycznia"] = 1
month_to_int["lutego"] = 2
-10
View File
@@ -132,11 +132,6 @@ class DateDisplayRU(DateDisplay):
inflect, long_months)
elif date_val[1] == 0: # month is zero but day is not (see 8477)
return self.display_iso(date_val)
elif not hasattr(long_months[date_val[1]], 'f'): # not a Lexeme
return "{day:d} {long_month} {year}".format(
day = date_val[0],
long_month = long_months[date_val[1]],
year = year)
else:
return "{day:d} {long_month.f[Р]} {year}".format(
day = date_val[0],
@@ -156,11 +151,6 @@ class DateDisplayRU(DateDisplay):
inflect, short_months)
elif date_val[1] == 0: # month is zero but day is not (see 8477)
return self.display_iso(date_val)
elif not hasattr(short_months[date_val[1]], 'f'): # not a Lexeme
return "{day:d} {short_month} {year}".format(
day = date_val[0],
short_month = short_months[date_val[1]],
year = year)
else:
return "{day:d} {short_month.f[Р]} {year}".format(
day = date_val[0],
+58 -58
View File
@@ -54,95 +54,95 @@ class DateParserSR(DateParser):
"""
month_to_int = DateParser.month_to_int
month_to_int["januar"] = 1
month_to_int["januar"] = 1
month_to_int["januara"] = 1
month_to_int["jan"] = 1
month_to_int["јан"] = 1
month_to_int["jan"] = 1
month_to_int["јан"] = 1
month_to_int["јануара"] = 1
month_to_int["јануар"] = 1
month_to_int["i"] = 1
month_to_int["јануар"] = 1
month_to_int["i"] = 1
month_to_int["februar"] = 2
month_to_int["februar"] = 2
month_to_int["februara"] = 2
month_to_int["feb"] = 2
month_to_int["феб"] = 2
month_to_int["фебруар"] = 2
month_to_int["feb"] = 2
month_to_int["феб"] = 2
month_to_int["фебруар"] = 2
month_to_int["фебруара"] = 2
month_to_int["ii"] = 2
month_to_int["ii"] = 2
month_to_int["mart"] = 3
month_to_int["mart"] = 3
month_to_int["marta"] = 3
month_to_int["mar"] = 3
month_to_int["мар"] = 3
month_to_int["март"] = 3
month_to_int["mar"] = 3
month_to_int["мар"] = 3
month_to_int["март"] = 3
month_to_int["марта"] = 3
month_to_int["iii"] = 3
month_to_int["iii"] = 3
month_to_int["april"] = 4
month_to_int["april"] = 4
month_to_int["aprila"] = 4
month_to_int["apr"] = 4
month_to_int["апр"] = 4
month_to_int["април"] = 4
month_to_int["apr"] = 4
month_to_int["апр"] = 4
month_to_int["април"] = 4
month_to_int["априла"] = 4
month_to_int["iv"] = 4
month_to_int["iv"] = 4
month_to_int["maj"] = 5
month_to_int["maj"] = 5
month_to_int["maja"] = 5
month_to_int["мај"] = 5
month_to_int["мај"] = 5
month_to_int["маја"] = 5
month_to_int["v"] = 5
month_to_int["v"] = 5
month_to_int["jun"] = 6
month_to_int["jun"] = 6
month_to_int["juna"] = 6
month_to_int["јун"] = 6
month_to_int["јун"] = 6
month_to_int["јуна"] = 6
month_to_int["vi"] = 6
month_to_int["vi"] = 6
month_to_int["jul"] = 7
month_to_int["jul"] = 7
month_to_int["jula"] = 7
month_to_int["јул"] = 7
month_to_int["јул"] = 7
month_to_int["јула"] = 7
month_to_int["vii"] = 7
month_to_int["vii"] = 7
month_to_int["avgust"] = 8
month_to_int["avgust"] = 8
month_to_int["avgusta"] = 8
month_to_int["avg"] = 8
month_to_int["авг"] = 8
month_to_int["август"] = 8
month_to_int["avg"] = 8
month_to_int["авг"] = 8
month_to_int["август"] = 8
month_to_int["августа"] = 8
month_to_int["viii"] = 8
month_to_int["viii"] = 8
month_to_int["septembar"] = 9
month_to_int["septembra"] = 9
month_to_int["sep"] = 9
month_to_int["сеп"] = 9
month_to_int["sep"] = 9
month_to_int["сеп"] = 9
month_to_int["септембар"] = 9
month_to_int["септембра"] = 9
month_to_int["ix"] = 9
month_to_int["ix"] = 9
month_to_int["oktobar"] = 10
month_to_int["oktobra"] = 10
month_to_int["okt"] = 10
month_to_int["окт"] = 10
month_to_int["октобар"] = 10
month_to_int["октобра"] = 10
month_to_int["x"] = 10
month_to_int["oktobar"] = 10
month_to_int["oktobra"] = 10
month_to_int["okt"] = 10
month_to_int["окт"] = 10
month_to_int["октобар"] = 10
month_to_int["октобра"] = 10
month_to_int["x"] = 10
month_to_int["novembar"] = 11
month_to_int["novembra"] = 11
month_to_int["nov"] = 11
month_to_int["нов"] = 11
month_to_int["новембар"] = 11
month_to_int["новембра"] = 11
month_to_int["xi"] = 11
month_to_int["novembar"] = 11
month_to_int["novembra"] = 11
month_to_int["nov"] = 11
month_to_int["нов"] = 11
month_to_int["новембар"] = 11
month_to_int["новембра"] = 11
month_to_int["xi"] = 11
month_to_int["decembar"] = 12
month_to_int["decembra"] = 12
month_to_int["dec"] = 12
month_to_int["дец"] = 12
month_to_int["децембар"] = 12
month_to_int["децембра"] = 12
month_to_int["xii"] = 12
month_to_int["decembar"] = 12
month_to_int["decembra"] = 12
month_to_int["dec"] = 12
month_to_int["дец"] = 12
month_to_int["децембар"] = 12
month_to_int["децембра"] = 12
month_to_int["xii"] = 12
modifier_to_int = {
'pre' : Date.MOD_BEFORE,
+7 -7
View File
@@ -56,7 +56,7 @@ from ._datestrings import DateStrings
# Top-level module functions
#
#-------------------------------------------------------------------------
_max_days = [ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ]
_max_days = [ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ]
_leap_days = [ 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ]
def gregorian_valid(date_tuple):
@@ -400,8 +400,8 @@ class DateParser:
_ = self._locale.translation.gettext
self.__init_prefix_tables()
self._rfc_mon_str = '(' + '|'.join(list(self._rfc_mons_to_int.keys())) + ')'
self._rfc_day_str = '(' + '|'.join(self._rfc_days) + ')'
self._rfc_mon_str = '(' + '|'.join(list(self._rfc_mons_to_int.keys())) + ')'
self._rfc_day_str = '(' + '|'.join(self._rfc_days) + ')'
self._bce_str = self.re_longest_first(self.bce)
self._qual_str = self.re_longest_first(list(self.quality_to_int.keys()))
@@ -409,14 +409,14 @@ class DateParser:
self._mod_after_str = self.re_longest_first(
list(self.modifier_after_to_int.keys()))
self._mon_str = self.re_longest_first(list(self.month_to_int.keys()))
self._mon_str = self.re_longest_first(list(self.month_to_int.keys()))
self._jmon_str = self.re_longest_first(list(self.hebrew_to_int.keys()))
self._fmon_str = self.re_longest_first(list(self.french_to_int.keys()))
self._pmon_str = self.re_longest_first(list(self.persian_to_int.keys()))
self._imon_str = self.re_longest_first(list(self.islamic_to_int.keys()))
self._smon_str = self.re_longest_first(list(self.swedish_to_int.keys()))
self._cal_str = self.re_longest_first(list(self.calendar_to_int.keys()))
self._ny_str = self.re_longest_first(list(self.newyear_to_int.keys()))
self._cal_str = self.re_longest_first(list(self.calendar_to_int.keys()))
self._ny_str = self.re_longest_first(list(self.newyear_to_int.keys()))
self._today_str = self.re_longest_first(self.today + [_("today"),])
@@ -911,7 +911,7 @@ class DateParser:
text = text.strip() # otherwise spaces can make it a bad date
date.set_text_value(text)
qual = Date.QUAL_NONE
cal = Date.CAL_GREGORIAN
cal = Date.CAL_GREGORIAN
newyear = Date.NEWYEAR_JAN1
(text, cal, newyear) = self.match_calendar_newyear(text, cal, newyear)
+2 -2
View File
@@ -66,7 +66,7 @@ def set_format(value):
except:
pass
def set_date(date_base, text):
def set_date(date_base, text) :
"""
Set the date of the :class:`.DateBase` instance.
@@ -79,7 +79,7 @@ def set_date(date_base, text):
"""
parser.set_date(date_base.get_date_object(), text)
def get_date(date_base):
def get_date(date_base) :
"""
Return a string representation of the date of the :class:`.DateBase`
instance.
+20 -20
View File
@@ -39,36 +39,36 @@ __all__ = ( 'DBPAGE', 'DBMODE', 'DBCACHE', 'DBLOCKS', 'DBOBJECTS', 'DBUNDO',
"CLASS_TO_KEY_MAP", "KEY_TO_CLASS_MAP", "KEY_TO_NAME_MAP"
)
DBEXT = ".db" # File extension to be used for database files
DBUNDOFN = "undo.db" # File name of 'undo' database
DBLOCKFN = "lock" # File name of lock file
DBEXT = ".db" # File extension to be used for database files
DBUNDOFN = "undo.db" # File name of 'undo' database
DBLOCKFN = "lock" # File name of lock file
DBRECOVFN = "need_recover" # File name of recovery file
BDBVERSFN = "bdbversion.txt"# File name of Berkeley DB version file
DBBACKEND = "database.txt" # File name of Database backend file
SCHVERSFN = "schemaversion.txt"# File name of schema version file
PCKVERSFN = "pickleupgrade.txt" # Indicator that pickle has been upgrade t Python3
DBLOGNAME = ".Db" # Name of logger
DBMODE_R = "r" # Read-only access
DBMODE_W = "w" # Full Read/Write access
DBPAGE = 16384 # Size of the pages used to hold items in the database
DBMODE = 0o666 # Unix mode for database creation
DBCACHE = 0x4000000 # Size of the shared memory buffer pool
DBLOCKS = 100000 # Maximum number of locks supported
DBMODE_R = "r" # Read-only access
DBMODE_W = "w" # Full Read/Write access
DBPAGE = 16384 # Size of the pages used to hold items in the database
DBMODE = 0o666 # Unix mode for database creation
DBCACHE = 0x4000000 # Size of the shared memory buffer pool
DBLOCKS = 100000 # Maximum number of locks supported
DBOBJECTS = 100000 # Maximum number of simultaneously locked objects
DBUNDO = 1000 # Maximum size of undo buffer
DBUNDO = 1000 # Maximum size of undo buffer
ARRAYSIZE = 1000 # The arraysize for a SQL cursor
PERSON_KEY = 0
FAMILY_KEY = 1
SOURCE_KEY = 2
EVENT_KEY = 3
MEDIA_KEY = 4
PLACE_KEY = 5
PERSON_KEY = 0
FAMILY_KEY = 1
SOURCE_KEY = 2
EVENT_KEY = 3
MEDIA_KEY = 4
PLACE_KEY = 5
REPOSITORY_KEY = 6
REFERENCE_KEY = 7
NOTE_KEY = 8
TAG_KEY = 9
CITATION_KEY = 10
REFERENCE_KEY = 7
NOTE_KEY = 8
TAG_KEY = 9
CITATION_KEY = 10
TXNADD, TXNUPD, TXNDEL = 0, 1, 2
-1
View File
@@ -2461,5 +2461,4 @@ class DbGeneric(DbWriteBase, DbReadBase, UpdateCallback, Callback):
enclosed_by = ""
for placeref in place.get_placeref_list():
enclosed_by = placeref.ref
break
return enclosed_by
+1 -1
View File
@@ -120,7 +120,7 @@ class DbTxn(defaultdict):
data = Python list where:
list element = (handle, data) where:
handle = handle (database key) of the object in the transaction
data = pickled representation of the object
data = pickled representation of the object
"""
# Conditional on __debug__ because all that frame stuff may be slow
+36 -36
View File
@@ -83,21 +83,21 @@ except ImportError:
# Constants
#
#-------------------------------------------------------------------------
_FIRSTNAME = 4
_FIRSTNAME = 4
_SURNAME_LIST = 5
_SUFFIX = 6
_TITLE = 7
_TYPE = 8
_GROUP = 9
_SORT = 10
_DISPLAY = 11
_CALL = 12
_NICK = 13
_FAMNICK = 14
_SURNAME_IN_LIST = 0
_PREFIX_IN_LIST = 1
_PRIMARY_IN_LIST = 2
_TYPE_IN_LIST = 3
_SUFFIX = 6
_TITLE = 7
_TYPE = 8
_GROUP = 9
_SORT = 10
_DISPLAY = 11
_CALL = 12
_NICK = 13
_FAMNICK = 14
_SURNAME_IN_LIST = 0
_PREFIX_IN_LIST = 1
_PRIMARY_IN_LIST = 2
_TYPE_IN_LIST = 3
_CONNECTOR_IN_LIST = 4
_ORIGINPATRO = NameOriginType.PATRONYMIC
_ORIGINMATRO = NameOriginType.MATRONYMIC
@@ -570,13 +570,13 @@ class NameDisplay:
raw_data[_SUFFIX])
Specific symbols for parts of a name are defined (keywords given):
't' : title = title
'f' : given = given (first names)
'l' : surname = full surname (lastname)
'c' : call = callname
'x' : common = nick name, call, otherwise first first name (common name)
'i' : initials = initials of the first names
'm' : primary = primary surname (main)
't' : title = title
'f' : given = given (first names)
'l' : surname = full surname (lastname)
'c' : call = callname
'x' : common = nick name, call, otherwise first first name (common name)
'i' : initials = initials of the first names
'm' : primary = primary surname (main)
'0m': primary[pre]= prefix primary surname (main)
'1m': primary[sur]= surname primary surname (main)
'2m': primary[con]= connector primary surname (main)
@@ -585,11 +585,11 @@ class NameDisplay:
'1y': patronymic[sur] = surname "
'2y': patronymic[con] = connector "
'o' : notpatronymic = surnames without pa/matronymic and primary
'r' : rest = non primary surnames
'p' : prefix = list of all prefixes
'r' : rest = non primary surnames
'p' : prefix = list of all prefixes
'q' : rawsurnames = surnames without prefixes and connectors
's' : suffix = suffix
'n' : nickname = nick name
's' : suffix = suffix
'n' : nickname = nick name
'g' : familynick = family nick name
@@ -671,13 +671,13 @@ class NameDisplay:
return "%s %s" % (first,suffix)
Specific symbols for parts of a name are defined (keywords given):
't' : title = title
'f' : given = given (first names)
'l' : surname = full surname (lastname)
'c' : call = callname
'x' : common = nick name, call, or otherwise first first name (common name)
'i' : initials = initials of the first names
'm' : primary = primary surname (main)
't' : title = title
'f' : given = given (first names)
'l' : surname = full surname (lastname)
'c' : call = callname
'x' : common = nick name, call, or otherwise first first name (common name)
'i' : initials = initials of the first names
'm' : primary = primary surname (main)
'0m': primary[pre]= prefix primary surname (main)
'1m': primary[sur]= surname primary surname (main)
'2m': primary[con]= connector primary surname (main)
@@ -686,11 +686,11 @@ class NameDisplay:
'1y': patronymic[sur] = surname "
'2y': patronymic[con] = connector "
'o' : notpatronymic = surnames without pa/matronymic and primary
'r' : rest = non primary surnames
'p' : prefix = list of all prefixes
'r' : rest = non primary surnames
'p' : prefix = list of all prefixes
'q' : rawsurnames = surnames without prefixes and connectors
's' : suffix = suffix
'n' : nickname = nick name
's' : suffix = suffix
'n' : nickname = nick name
'g' : familynick = family nick name
"""
+15 -21
View File
@@ -54,6 +54,11 @@ class PlaceFormat:
self.street = street
self.reverse = reverse
def to_xml(self):
return (' <format name="%s" levels="%s" language="%s" '
'street="%s" reverse="%s"/>\n' %
(self.name, self.levels, self.language,
self.street, self.reverse))
#-------------------------------------------------------------------------
#
@@ -66,13 +71,10 @@ class PlaceDisplay:
self.place_formats = []
self.default_format = config.get('preferences.place-format')
if os.path.exists(PLACE_FORMATS):
try:
self.load_formats()
return
except BaseException:
print(_("Error in '%s' file: cannot load.") % PLACE_FORMATS)
pf = PlaceFormat(_('Full'), ':', '', 0, False)
self.place_formats.append(pf)
self.load_formats()
else:
pf = PlaceFormat(_('Full'), ':', '', 0, False)
self.place_formats.append(pf)
def display_event(self, db, event, fmt=-1):
if not event:
@@ -162,20 +164,12 @@ class PlaceDisplay:
dom.unlink()
def save_formats(self):
doc = xml.dom.minidom.Document()
place_formats = doc.createElement('place_formats')
doc.appendChild(place_formats)
for fmt in self.place_formats:
node = doc.createElement('format')
place_formats.appendChild(node)
node.setAttribute('name', fmt.name)
node.setAttribute('levels', fmt.levels)
node.setAttribute('language', fmt.language)
node.setAttribute('street', str(fmt.street))
node.setAttribute('reverse', str(fmt.reverse))
with open(PLACE_FORMATS, 'w', encoding='utf-8') as f_d:
doc.writexml(f_d, addindent=' ', newl='\n', encoding='utf-8')
with open(PLACE_FORMATS, 'w') as fd:
fd.write('<?xml version="1.0" encoding="utf-8"?>\n')
fd.write('<place_formats>\n')
for fmt in self.place_formats:
fd.write(fmt.to_xml())
fd.write('</place_formats>\n')
def _get_offset(value, index):
if index is not None and value.startswith('p'):
+11 -2
View File
@@ -22,6 +22,7 @@
Package providing filtering framework for Gramps.
"""
#SystemFilters = None
CustomFilters = None
from ..const import CUSTOM_FILTERS
@@ -31,10 +32,18 @@ from ._genericfilter import (GenericFilter, GenericFilterFactory,
from ._paramfilter import ParamFilter
from ._searchfilter import SearchFilter, ExactSearchFilter
#def reload_system_filters():
#global SystemFilters
#SystemFilters = FilterList(SYSTEM_FILTERS)
#SystemFilters.load()
def reload_custom_filters():
global CustomFilters
CustomFilters = FilterList(CUSTOM_FILTERS)
CustomFilters.load()
# if not CustomFilters: # moved to viewmanager
# reload_custom_filters()
#if not SystemFilters:
#reload_system_filters()
if not CustomFilters:
reload_custom_filters()
+2 -2
View File
@@ -27,7 +27,7 @@
#-------------------------------------------------------------------------
from xml.sax import make_parser, SAXParseException
import os
from collections import abc
import collections
#-------------------------------------------------------------------------
#
@@ -78,7 +78,7 @@ class FilterList:
plugin_filters = []
try:
for plug in plugins:
if isinstance(plug, abc.Callable):
if isinstance(plug, collections.Callable):
plug = plug(namespace)
if plug:
if isinstance(plug, (list, tuple)):
-3
View File
@@ -62,9 +62,6 @@ class FilterParser(handler.ContentHandler):
self.namespace = attrs['type']
else:
self.namespace = "generic"
if self.namespace == 'MediaObject':
# deals with older custom filters
self.namespace = 'Media'
elif tag == "filter":
self.f = GenericFilterFactory(self.namespace)()
self.f.set_name(attrs['name'])
+12 -27
View File
@@ -124,9 +124,6 @@ class GenericFilter:
def get_cursor(self, db):
return db.get_person_cursor()
def get_tree_cursor(self, db):
return db.get_person_cursor()
def make_obj(self):
return Person()
@@ -136,15 +133,13 @@ class GenericFilter:
def get_number(self, db):
return db.get_number_of_people()
def check_func(self, db, id_list, task, user=None, tupleind=None,
tree=False):
def check_func(self, db, id_list, task, user=None, tupleind=None):
final_list = []
if user:
user.begin_progress(_('Filter'), _('Applying ...'),
self.get_number(db))
if id_list is None:
with (self.get_tree_cursor(db) if tree else
self.get_cursor(db)) as cursor:
with self.get_cursor(db) as cursor:
for handle, data in cursor:
person = self.make_obj()
person.unserialize(data)
@@ -167,15 +162,14 @@ class GenericFilter:
user.end_progress()
return final_list
def check_and(self, db, id_list, user=None, tupleind=None, tree=False):
def check_and(self, db, id_list, user=None, tupleind=None):
final_list = []
flist = self.flist
if user:
user.begin_progress(_('Filter'), _('Applying ...'),
self.get_number(db))
if id_list is None:
with (self.get_tree_cursor(db) if tree else
self.get_cursor(db)) as cursor:
with self.get_cursor(db) as cursor:
for handle, data in cursor:
person = self.make_obj()
person.unserialize(data)
@@ -200,17 +194,14 @@ class GenericFilter:
user.end_progress()
return final_list
def check_or(self, db, id_list, user=None, tupleind=None, tree=False):
return self.check_func(db, id_list, self.or_test, user, tupleind,
tree=False)
def check_or(self, db, id_list, user=None, tupleind=None):
return self.check_func(db, id_list, self.or_test, user, tupleind)
def check_one(self, db, id_list, user=None, tupleind=None, tree=False):
return self.check_func(db, id_list, self.one_test, user, tupleind,
tree=False)
def check_one(self, db, id_list, user=None, tupleind=None):
return self.check_func(db, id_list, self.one_test, user, tupleind)
def check_xor(self, db, id_list, user=None, tupleind=None, tree=False):
return self.check_func(db, id_list, self.xor_test, user, tupleind,
tree=False)
def check_xor(self, db, id_list, user=None, tupleind=None):
return self.check_func(db, id_list, self.xor_test, user, tupleind)
def xor_test(self, db, person):
test = False
@@ -240,7 +231,7 @@ class GenericFilter:
def check(self, db, handle):
return self.get_check_func()(db, [handle])
def apply(self, db, id_list=None, tupleind=None, user=None, tree=False):
def apply(self, db, id_list=None, tupleind=None, user=None):
"""
Apply the filter using db.
If id_list given, the handles in id_list are used. If not given
@@ -260,7 +251,7 @@ class GenericFilter:
m = self.get_check_func()
for rule in self.flist:
rule.requestprepare(db, user)
res = m(db, id_list, user, tupleind, tree)
res = m(db, id_list, user, tupleind)
for rule in self.flist:
rule.requestreset()
return res
@@ -324,9 +315,6 @@ class GenericCitationFilter(GenericFilter):
def get_cursor(self, db):
return db.get_citation_cursor()
def get_tree_cursor(self, db):
return db.get_citation_cursor()
def make_obj(self):
return Citation()
@@ -344,9 +332,6 @@ class GenericPlaceFilter(GenericFilter):
def get_cursor(self, db):
return db.get_place_cursor()
def get_tree_cursor(self, db):
return db.get_place_tree_cursor()
def make_obj(self):
return Place()
@@ -48,12 +48,12 @@ class ChangedSinceBase(Rule):
Rule that checks for primary objects changed since a specific time.
"""
labels = [ 'Changed after:', 'but before:' ]
name = 'Objects changed after <date time>'
labels = [ 'Changed after:', 'but before:' ]
name = 'Objects changed after <date time>'
description = "Matches object records changed after a specified " \
"date/time (yyyy-mm-dd hh:mm:ss) or in range, if a second " \
"date/time is given."
category = _('General filters')
category = _('General filters')
def add_time(self, date):
if re.search(r"\d.*\s+\d{1,2}:\d{2}:\d{2}", date):
+2 -2
View File
@@ -41,8 +41,8 @@ from . import Rule
class Everything(Rule):
"""Match Everyone."""
name = 'Every object'
category = _('General filters')
name = 'Every object'
category = _('General filters')
description = 'Matches every object in the database'
def is_empty(self):
@@ -2,7 +2,6 @@
# Gramps - a GTK+/GNOME based genealogy program
#
# Copyright (C) 2002-2006 Donald N. Allingham
# Copyright (C) 2019 Matthias Kemmer
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -35,7 +34,6 @@ _ = glocale.translation.gettext
from ...lib.attrtype import AttributeType
from . import Rule
#-------------------------------------------------------------------------
#
# HasAttribute
@@ -46,11 +44,11 @@ class HasAttributeBase(Rule):
Rule that checks for an object with a particular attribute.
"""
labels = ['Attribute:', 'Value:']
name = 'Objects with the <attribute>'
labels = [ 'Attribute:', 'Value:' ]
name = 'Objects with the <attribute>'
description = "Matches objects with the given attribute " \
"of a particular value"
category = _('General filters')
"of a particular value"
category = _('General filters')
allow_regex = True
def apply(self, db, obj):
@@ -62,6 +60,5 @@ class HasAttributeBase(Rule):
name_match = attr.get_type() == specified_type
if name_match:
if self.match_substring(1, attr.get_value()):
return True
return self.match_substring(1, attr.get_value())
return False
+3 -3
View File
@@ -46,12 +46,12 @@ class HasCitationBase(Rule):
First parameter is [Volume/page, Date, Confidence]
"""
labels = [ _('Volume/Page:'),
labels = [ _('Volume/Page:'),
_('Date:'),
_('Confidence:') ]
name = _('Citations matching parameters')
name = _('Citations matching parameters')
description = _("Matches citations with particular parameters")
category = _('Citation/source filters')
category = _('Citation/source filters')
allow_regex = True
def prepare(self, db, user):
+4 -4
View File
@@ -46,14 +46,14 @@ class HasEventBase(Rule):
"""Rule that checks for an event with a particular value."""
labels = [ 'Event type:',
labels = [ 'Event type:',
'Date:',
'Place:',
'Description:',
'Main Participants:' ]
name = 'Events matching parameters'
description = "Matches events with particular parameters"
category = _('Event filters')
name = 'Events matching parameters'
description = "Matches events with particular parameters"
category = _('Event filters')
allow_regex = True
def prepare(self, db, user):
+3 -3
View File
@@ -42,10 +42,10 @@ from . import Rule
class HasGalleryBase(Rule):
"""Objects who have Media Object"""
labels = [ _('Number of instances:'), _('Number must be:')]
name = 'Object with <count> Media references'
labels = [ _('Number of instances:'), _('Number must be:')]
name = 'Object with <count> Media references'
description = "Matches objects with certain number of items in the gallery"
category = _('General filters')
category = _('General filters')
def prepare(self, db, user):
# things we want to do just once, not for every handle
+3 -3
View File
@@ -42,10 +42,10 @@ from . import Rule
class HasGrampsId(Rule):
"""Rule that checks for an object with a specific Gramps ID."""
labels = [ _('ID:') ]
name = 'Object with <Id>'
labels = [ _('ID:') ]
name = 'Object with <Id>'
description = "Matches objects with a specified Gramps ID"
category = _('General filters')
category = _('General filters')
def apply(self, db, obj):
"""
+3 -3
View File
@@ -45,10 +45,10 @@ from . import Rule
class HasLDSBase(Rule):
"""Rule that checks for object with a LDS event"""
labels = [ _('Number of instances:'), _('Number must be:')]
name = 'Objects with LDS events'
labels = [ _('Number of instances:'), _('Number must be:')]
name = 'Objects with LDS events'
description = "Matches objects with LDS events"
category = _('General filters')
category = _('General filters')
def prepare(self, db, user):
# things we want to do just once, not for every handle
+3 -3
View File
@@ -43,10 +43,10 @@ from . import Rule
class HasNoteBase(Rule):
"""Objects having notes"""
labels = [ _('Number of instances:'), _('Number must be:')]
name = 'Object with notes'
labels = [ _('Number of instances:'), _('Number must be:')]
name = 'Object with notes'
description = "Matches objects that have a certain number of notes"
category = _('General filters')
category = _('General filters')
def __init__(self, arg, use_regex=False):
# Upgrade from pre 3.1 HasNote filter, use defaults that correspond
@@ -40,11 +40,11 @@ from . import Rule
class HasNoteRegexBase(Rule):
"""Objects having notes containing <text>."""
labels = [ _('Text:')]
name = 'Objects having notes containing <text>'
labels = [ _('Text:')]
name = 'Objects having notes containing <text>'
description = ("Matches objects whose notes contain a substring "
"or match a regular expression")
category = _('General filters')
category = _('General filters')
allow_regex = True
def apply(self, db, person):
@@ -39,11 +39,11 @@ from . import Rule
class HasNoteSubstrBase(Rule):
"""People having notes containing <substring>."""
labels = [ _('Substring:')]
name = 'Objects having notes containing <substring>'
labels = [ _('Substring:')]
name = 'Objects having notes containing <substring>'
description = "Matches objects whose notes contain text matching a " \
"substring"
category = _('General filters')
category = _('General filters')
def apply(self, db, person):
notelist = person.get_note_list()
@@ -39,10 +39,10 @@ from . import Rule
class HasReferenceCountBase(Rule):
"""Objects with a reference count of <count>."""
labels = [ _('Reference count must be:'), _('Reference count:')]
name = 'Objects with a reference count of <count>'
labels = [ _('Reference count must be:'), _('Reference count:')]
name = 'Objects with a reference count of <count>'
description = "Matches objects with a certain reference count"
category = _('General filters')
category = _('General filters')
def prepare(self, db, user):
+3 -3
View File
@@ -43,13 +43,13 @@ class HasSourceBase(Rule):
"""Rule that checks for a source with a particular value"""
labels = [ 'Title:',
labels = [ 'Title:',
'Author:',
'Abbreviation:',
'Publication:' ]
name = 'Sources matching parameters'
name = 'Sources matching parameters'
description = "Matches sources with particular parameters"
category = _('Citation/source filters')
category = _('Citation/source filters')
allow_regex = True
def apply(self,db,source):
@@ -42,11 +42,11 @@ from . import Rule
class HasSourceCountBase(Rule):
"""Objects having sources"""
labels = [ _('Number of instances:'), _('Number must be:')]
name = 'Objects with <count> sources'
labels = [ _('Number of instances:'), _('Number must be:')]
name = 'Objects with <count> sources'
description = "Matches objects that have a certain number of sources " \
"connected to it (actually citations are counted)"
category = _('Citation/source filters')
category = _('Citation/source filters')
def prepare(self, db, user):
# things we want to do just once, not for every handle
+3 -3
View File
@@ -42,9 +42,9 @@ from . import Rule
class HasSourceOfBase(Rule):
"""Rule that checks for objects that have a particular source."""
labels = [ _('Source ID:') ]
name = 'Object with the <source>'
category = _('Citation/source filters')
labels = [ _('Source ID:') ]
name = 'Object with the <source>'
category = _('Citation/source filters')
description = 'Matches objects who have a particular source'
def prepare(self, db, user):
+3 -3
View File
@@ -46,10 +46,10 @@ class HasTagBase(Rule):
Rule that checks for an object with a particular tag.
"""
labels = [ 'Tag:' ]
name = 'Objects with the <tag>'
labels = [ 'Tag:' ]
name = 'Objects with the <tag>'
description = "Matches objects with the given tag"
category = _('General filters')
category = _('General filters')
def prepare(self, db, user):
"""
@@ -39,13 +39,13 @@ from . import Rule
class HasTextMatchingSubstringOf(Rule):
"""Rule that checks for string matches in any textual information."""
labels = [ 'Substring:',
labels = [ 'Substring:',
'Case sensitive:',
'Regular-Expression matching:']
name = 'Objects with records containing <substring>'
name = 'Objects with records containing <substring>'
description = "Matches objects whose records contain text " \
"matching a substring"
category = _('General filters')
category = _('General filters')
# FIXME: This needs to be written for an arbitrary object
# if possible
+2 -2
View File
@@ -37,9 +37,9 @@ from . import Rule
class IsPrivate(Rule):
"""Objects marked private."""
name = 'Objects marked private'
name = 'Objects marked private'
description = "Matches objects that are indicated as private"
category = _('General filters')
category = _('General filters')
def apply(self, db, obj):
return obj.get_privacy()
+2 -2
View File
@@ -34,9 +34,9 @@ _ = glocale.translation.gettext
class IsPublic(Rule):
"""Objects not marked private."""
name = 'Objects not marked private'
name = 'Objects not marked private'
description = "Matches objects that are not indicated as private"
category = _('General filters')
category = _('General filters')
def apply(self, db, obj):
return not obj.get_privacy()
@@ -47,14 +47,14 @@ class MatchesEventFilterBase(MatchesFilterBase):
"""
labels = ['Event filter name:']
name = 'Objects with events matching the <event filter>'
labels = ['Event filter name:']
name = 'Objects with events matching the <event filter>'
description = "Matches objects who have events that match a certain" \
" event filter"
category = _('General filters')
category = _('General filters')
# we want to have this filter show event filters
namespace = 'Event'
namespace = 'Event'
def prepare(self, db, user):
MatchesFilterBase.prepare(self, db, user)
@@ -51,10 +51,10 @@ class MatchesFilterBase(Rule):
Subclasses need to define the namespace class attribute.
"""
labels = [_('Filter name:')]
name = 'Objects matching the <filter>'
labels = [_('Filter name:')]
name = 'Objects matching the <filter>'
description = "Matches objects matched by the specified filter name"
category = _('General filters')
category = _('General filters')
def prepare(self, db, user):
if gramps.gen.filters.CustomFilters:
@@ -44,10 +44,10 @@ from . import Rule
class MatchesSourceConfidenceBase(Rule):
"""Objects with a specific confidence level on 'direct' Source references"""
labels = ['Confidence level:']
name = 'Object with at least one direct source >= <confidence level>'
labels = ['Confidence level:']
name = 'Object with at least one direct source >= <confidence level>'
description = "Matches objects with at least one direct source with confidence level(s)"
category = _('Citation/source filters')
category = _('Citation/source filters')
def apply(self, db, obj):
required_conf = int(self.list[0])
@@ -44,14 +44,14 @@ class MatchesSourceFilterBase(MatchesFilterBase):
Rule that checks against another filter.
"""
labels = [_('Source filter name:')]
name = 'Objects with source matching the <source filter>'
labels = [_('Source filter name:')]
name = 'Objects with source matching the <source filter>'
description = "Matches objects with sources that match the " \
"specified source filter name"
category = _('Citation/source filters')
category = _('Citation/source filters')
# we want to have this filter show source filters
namespace = 'Source'
namespace = 'Source'
def prepare(self, db, user):
MatchesFilterBase.prepare(self, db, user)
+3 -3
View File
@@ -45,11 +45,11 @@ class RegExpIdBase(Rule):
regular expression.
"""
labels = [ _('Text:') ]
name = 'Objects with <Id>'
labels = [ _('Text:') ]
name = 'Objects with <Id>'
description = "Matches objects whose Gramps ID contains a substring " \
"or matches a regular expression"
category = _('General filters')
category = _('General filters')
allow_regex = True
def apply(self, db, obj):
+6 -14
View File
@@ -28,11 +28,9 @@ Base class for filter rules.
# Standard Python modules
#
#-------------------------------------------------------------------------
import re
from ...errors import FilterError
from ...const import GRAMPS_LOCALE as glocale
_ = glocale.translation.gettext
import re
#-------------------------------------------------------------------------
#
@@ -50,9 +48,9 @@ LOG = logging.getLogger(".")
class Rule:
"""Base rule class."""
labels = []
name = ''
category = _('Miscellaneous filters')
labels = []
name = ''
category = _('Miscellaneous filters')
description = _('No description')
allow_regex = False
@@ -90,10 +88,6 @@ class Rule:
self.match_substring = self.match_regex
self.prepare(db, user)
self.nrprepare += 1
if self.nrprepare > 20: # more references to a filter than expected
raise FilterError(_("The filter definition contains a loop."),
_("One rule references another which eventually"
" references the first."))
def prepare(self, db, user):
"""prepare so the rule can be executed efficiently"""
@@ -141,10 +135,8 @@ class Rule:
def display_values(self):
"""Return the labels and values of this rule."""
l_v = ('%s="%s"' % (_(self.labels[ix][0] if
isinstance(self.labels[ix], tuple) else
self.labels[ix]), self.list[ix])
for ix in range(len(self.list)) if self.list[ix])
l_v = ( '%s="%s"' % (_(self.labels[ix]), self.list[ix])
for ix in range(len(self.list)) if self.list[ix] )
return ';'.join(l_v)
@@ -42,5 +42,5 @@ from .._everything import Everything
class AllCitations(Everything):
"""Matches every citation"""
name = _('Every citation')
name = _('Every citation')
description = _('Matches every citation in the database')
@@ -42,8 +42,8 @@ from .._changedsincebase import ChangedSinceBase
class ChangedSince(ChangedSinceBase):
"""Rule that checks for citations changed since a specific time."""
labels = [ _('Changed after:'), _('but before:') ]
name = _('Citations changed after <date time>')
labels = [ _('Changed after:'), _('but before:') ]
name = _('Citations changed after <date time>')
description = _("Matches citation records changed after a specified "
"date-time (yyyy-mm-dd hh:mm:ss) or in the range, if a second "
"date-time is given.")
@@ -40,5 +40,5 @@ from .._isprivate import IsPrivate
class CitationPrivate(IsPrivate):
"""Citation marked private"""
name = _('Citations marked private')
name = _('Citations marked private')
description = _("Matches citations that are indicated as private")
@@ -45,11 +45,11 @@ from ....datehandler import parser
class HasCitation(Rule):
"""Rule that checks for a citations with a particular value"""
labels = [ _('Volume/Page:'),
labels = [ _('Volume/Page:'),
_('Date:'),
_('Confidence level:')]
name = _('Citations matching parameters')
category = _('General filters')
name = _('Citations matching parameters')
category = _('General filters')
description = _("Matches citations with particular parameters")
allow_regex = True
@@ -42,5 +42,5 @@ from .._hasgallerybase import HasGalleryBase
class HasGallery(HasGalleryBase):
"""Rule that checks for citation who has media object reference"""
name = _('Citations with <count> media')
name = _('Citations with <count> media')
description = _("Matches citations with a certain number of items in the gallery")
@@ -42,5 +42,5 @@ from .. import HasGrampsId
class HasIdOf(HasGrampsId):
"""Rule that checks for a citation with a specific Gramps ID"""
name = _('Citation with <Id>')
name = _('Citation with <Id>')
description = _("Matches a citation with a specified Gramps ID")
@@ -43,5 +43,5 @@ from .._hasnotebase import HasNoteBase
class HasNote(HasNoteBase):
"""Citations having notes"""
name = _('Citations having <count> notes')
name = _('Citations having <count> notes')
description = _("Matches citations having a certain number of notes")
@@ -40,7 +40,7 @@ from .._hasnotesubstrbase import HasNoteSubstrBase
class HasNoteMatchingSubstringOf(HasNoteSubstrBase):
"""Citations having notes containing <substring>"""
name = _('Citations having notes containing <substring>')
name = _('Citations having notes containing <substring>')
description = _("Matches citations whose notes contain text "
"matching a substring")
@@ -39,6 +39,6 @@ from .._hasnoteregexbase import HasNoteRegexBase
#-------------------------------------------------------------------------
class HasNoteRegexp(HasNoteRegexBase):
name = _('Citations having notes containing <text>')
name = _('Citations having notes containing <text>')
description = _("Matches citations whose notes contain text "
"matching a regular expression")
@@ -40,6 +40,6 @@ from .._hasreferencecountbase import HasReferenceCountBase
class HasReferenceCountOf(HasReferenceCountBase):
"""Citation objects with a reference count of <count>"""
name = _('Citations with a reference count of <count>')
name = _('Citations with a reference count of <count>')
description = _("Matches citations with a certain reference count")
@@ -45,14 +45,14 @@ from .._hassourcebase import HasSourceBase
class HasSource(HasSourceBase):
"""Rule that checks for an citation with a particular value"""
labels = [ _('Title:'),
labels = [ _('Title:'),
_('Author:'),
_('Abbreviation:'),
_('Publication:') ]
name = _('Sources matching parameters')
name = _('Sources matching parameters')
description = _("Matches citations with a source of a particular "
"value")
category = _('Source filters')
category = _('Source filters')
def apply(self, dbase, citation):
source = dbase.get_source_from_handle(
@@ -43,10 +43,10 @@ class HasSourceIdOf(HasGrampsId):
"""Rule that checks for a citation with a source which has a specific
Gramps ID"""
name = _('Citation with Source <Id>')
name = _('Citation with Source <Id>')
description = _("Matches a citation with a source with a specified Gramps "
"ID")
category = _('Source filters')
category = _('Source filters')
def apply(self, dbase, citation):
source = dbase.get_source_from_handle(
@@ -49,10 +49,10 @@ class HasSourceNoteRegexp(HasNoteRegexBase):
substring or matches a regular expression.
"""
name = _('Citations having source notes containing <text>')
name = _('Citations having source notes containing <text>')
description = _("Matches citations whose source notes contain a substring "
"or match a regular expression")
category = _('Source filters')
category = _('Source filters')
def apply(self, db, citation):
source = db.get_source_from_handle(citation.get_reference_handle())
+2 -2
View File
@@ -45,6 +45,6 @@ class HasTag(HasTagBase):
"""
Rule that checks for a citation with a particular tag.
"""
labels = [ _('Tag:') ]
name = _('Citations with the <tag>')
labels = [ _('Tag:') ]
name = _('Citations with the <tag>')
description = _("Matches citations with the particular tag")
@@ -42,6 +42,6 @@ from .._matchesfilterbase import MatchesFilterBase
class MatchesFilter(MatchesFilterBase):
"""Rule that checks against another filter"""
name = _('Citations matching the <filter>')
name = _('Citations matching the <filter>')
description = _("Matches citations matched by the specified filter name")
namespace = 'Citation'
namespace = 'Citation'
@@ -39,11 +39,11 @@ from .. import Rule
class MatchesPageSubstringOf(Rule):
"""Citation Volume/Page title containing <substring>"""
labels = [ _('Text:')]
name = _('Citations with Volume/Page containing <text>')
labels = [ _('Text:')]
name = _('Citations with Volume/Page containing <text>')
description = _("Matches citations whose Volume/Page contains a "
"certain substring")
category = _('General filters')
category = _('General filters')
allow_regex = True
def apply(self, db, object):
@@ -42,12 +42,12 @@ from .. import MatchesFilterBase
class MatchesRepositoryFilter(MatchesFilterBase):
"""Citations which have a source which references the selected repository"""
labels = [ _('Repository filter name:') ]
name = _('Citations with a source with a repository reference '
labels = [ _('Repository filter name:') ]
name = _('Citations with a source with a repository reference '
'matching the <repository filter>')
description = _("Matches citations with sources with a repository "
"reference that match a certain repository filter")
category = _('General filters')
category = _('General filters')
# we want to have this filter show repository filters
namespace = 'Repository'
@@ -45,14 +45,14 @@ class MatchesSourceFilter(MatchesFilterBase):
Rule that checks against another filter.
"""
labels = [_('Source filter name:')]
name = _('Citations with source matching the <source filter>')
labels = [_('Source filter name:')]
name = _('Citations with source matching the <source filter>')
description = _("Matches citations with sources that match the "
"specified source filter name")
category = _('General filters')
category = _('General filters')
# we want to have this filter show source filters
namespace = 'Source'
namespace = 'Source'
def prepare(self, db, user):
MatchesFilterBase.prepare(self, db, user)
@@ -45,6 +45,6 @@ class RegExpIdOf(RegExpIdBase):
matches regular expression.
"""
name = _('Citations with Id containing <text>')
name = _('Citations with Id containing <text>')
description = _("Matches citations whose Gramps ID matches "
"the regular expression")
@@ -45,10 +45,10 @@ class RegExpSourceIdOf(RegExpIdBase):
matches regular expression.
"""
name = _('Citations with Source Id containing <text>')
name = _('Citations with Source Id containing <text>')
description = _("Matches citations whose source has a Gramps ID that "
"matches the regular expression")
category = _('Source filters')
category = _('Source filters')
def apply(self, dbase, citation):
source = dbase.get_source_from_handle(
+1 -1
View File
@@ -41,5 +41,5 @@ from .._everything import Everything
class AllEvents(Everything):
"""Matches Everyone"""
name = _('Every event')
name = _('Every event')
description = _('Matches every event in the database')
@@ -43,8 +43,8 @@ from .._changedsincebase import ChangedSinceBase
class ChangedSince(ChangedSinceBase):
"""Rule that checks for an event changed since a specific time."""
labels = [ _('Changed after:'), _('but before:') ]
name = _('Events changed after <date time>')
labels = [ _('Changed after:'), _('but before:') ]
name = _('Events changed after <date time>')
description = _("Matches event records changed after a specified "
"date/time (yyyy-mm-dd hh:mm:ss) or in the range, if a second "
"date/time is given.")
@@ -39,5 +39,5 @@ from .._isprivate import IsPrivate
class EventPrivate(IsPrivate):
"""Event marked private"""
name = _('Events marked private')
name = _('Events marked private')
description = _("Matches events that are indicated as private")
@@ -41,7 +41,7 @@ from .._hasattributebase import HasAttributeBase
class HasAttribute(HasAttributeBase):
"""Rule that checks for an event with a particular event attribute"""
labels = [ _('Event attribute:'), _('Value:') ]
name = _('Events with the attribute <attribute>')
labels = [ _('Event attribute:'), _('Value:') ]
name = _('Events with the attribute <attribute>')
description = _("Matches events with the event attribute "
"of a particular value")
@@ -45,9 +45,9 @@ from .._hascitationbase import HasCitationBase
class HasCitation(HasCitationBase):
"""Rule that checks for an event with a particular value"""
labels = [ _('Volume/Page:'),
labels = [ _('Volume/Page:'),
_('Date:'),
_('Confidence level:')]
name = _('Events with the <citation>')
name = _('Events with the <citation>')
description = _("Matches events with a citation of a particular "
"value")

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