diff --git a/gramps2/ChangeLog b/gramps2/ChangeLog index b5b35f36b..3d3b855cd 100644 --- a/gramps2/ChangeLog +++ b/gramps2/ChangeLog @@ -1,3 +1,9 @@ +2005-09-19 Don Allingham + * src/ReportUtils.py: better string handling + * doc/gramps-manual/C/getstart.xml: updates from editors + * doc/gramps-manual/C/mainwin.xml: updates from editors + * doc/gramps-manual/C/usage.xml: updates from editors + 2005-09-15 Don Allingham * src/DescendReport.py: fix indentation diff --git a/gramps2/doc/gramps-manual/C/getstart.xml b/gramps2/doc/gramps-manual/C/getstart.xml index 6005d02fd..e99850649 100644 --- a/gramps2/doc/gramps-manual/C/getstart.xml +++ b/gramps2/doc/gramps-manual/C/getstart.xml @@ -64,7 +64,7 @@ filename as a command line argument: - gramps filename.grdb + gramps filename.grdb where filename.grdb is the name of @@ -83,7 +83,7 @@ Running GRAMPS for the first time - The first time you run the program, GRAMPS will display its + The first time you run the program, GRAMPS will display the Getting Started dialogs. Follow the directions that guide you through Researcher information, Numerical date formats, Alternate calendar support, diff --git a/gramps2/doc/gramps-manual/C/mainwin.xml b/gramps2/doc/gramps-manual/C/mainwin.xml index 83664d068..a43220872 100644 --- a/gramps2/doc/gramps-manual/C/mainwin.xml +++ b/gramps2/doc/gramps-manual/C/mainwin.xml @@ -621,7 +621,7 @@ Spouses, Siblings, Children, and Parents of that person. Insensitive - (grayed out) submenus indicate the absence of the data in + (grayed out) sub-menus indicate the absence of the data in the appropriate category. Similarly to the children menu above, children's and parents' menus distinguish continuing lines from dead ends. diff --git a/gramps2/doc/gramps-manual/C/usage.xml b/gramps2/doc/gramps-manual/C/usage.xml index b7e010238..18f2a141e 100644 --- a/gramps2/doc/gramps-manual/C/usage.xml +++ b/gramps2/doc/gramps-manual/C/usage.xml @@ -17,153 +17,197 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA --> - - - - Usage + + Usage - As commonly encountered in everyday life, in &app; there is - usually more than one way to accomplish something. The - alternatives to some actions will therefore be listed as - appropriate. - + + As commonly encountered in everyday life, there is usually more + than one way to accomplish something in &app;. The alternatives to + some actions will therefore be listed as appropriate. + + - - Starting a New Database + + Starting a New Database - To start a new database, choose - File - New. You will then be - prompted with the Create GRAMPS database - dialog asking to specify the name under which the new database - will be stored. The new database will be created in the BSDDB - format, with .grdb as the default - extension. - + To start a new database, choose + + + File + New + . + + You will then be prompted with the Create GRAMPS + database dialog asking to specify the name under + which the new database will be stored. The new database will be + created in the BSDDB format, with .grdb as + the default extension. + + Selecting file - Unlike the version 1.0.X of &app;, this version does not - require selecting directory for the database. Please select - filename, as you would in any other application. + + This version does not require selecting a directory for the + database. Please select filename, as you would in any other + application. + - - Opening a Database + + Opening a Database - To open a database, either choose - FileOpen + + To open a database, either choose + + + File + Open + + or click the Open button on the Toolbar. The Open database dialog will appear. - + + + + The filetype filter in the Open database dialog allows you to display files of a certain type. If the All files filter is selected (the default), all the files will be shown. The type will be determined by the extension of the selected filename. + Selecting file + Unlike the version 1.0.X of &app;, this version does not require selecting directory for the database. Please select filename, as you would in any other application. + + If you do not have write permissions for the selected database, it will be opened in a Read Only mode. In this mode, the data may be viewed, but no changes will be made to the database. To indicate this mode, the title of the main window will be appended with (Read Only) text. + Opening XML and GEDCOM databases + This version allows direct opening and editing of &app; XML and GEDCOM databases. Please keep in mind that, unlike using the native grdb format, these formats require holding all data in memory. This leads to performance and memory consumption problems which grdb was designed to solve. - + + + + While direct opening of a &app; XML or GEDCOM file is convenient for a small database, it may prove burdensome for large databases. If you experience this, please consider creating a new native (grdb) database and importing your XML or GEDCOM data into it. This will make accessing your data much more efficient and quick. + - GEDCOM Editing - Please keep in mind that some information in GEDCOM file may + + Please keep in mind that some information in a GEDCOM file may be lost during import into &app;. Simply opening and viewing the file will not change it. However, if any changes were made and they were not abandoned upon exit, exiting &app; will - save the data, with the possible data loss. - - + save the data, with possible data loss. + + - To open a recently opened database, choose - FileOpen - Recent and select the filename from - the list. You can also use - Actions Recent - Documents from the GNOME - Actions menu. + To open a recently opened database, choose + + + File + Open Recent + + + and select the filename from the list. You can also use + + + Actions + Recent Documents + + + from the GNOME Actions menu. - + Saving a Database + A consequence of the new database backend is that the changes, - once approved by the user, are applied immediately. In short, - once you click OK in the Person, Family, - Source, Place, Media object, or Event editor, all the changes - made to this object are recorded in the database. No saving is + once approved by the user, are applied immediately. Once you + click OK in the Person, Family, Source, + Place, Media object, or Event editor, all the changes made to + this object are recorded in the database. No saving is necessary, or even possible. - - Choosing - EditUndo - allows you to undo the changes you made, one step - at a time. + - + + Choosing + + Edit + Undo + + allows you to undo the changes you made, one step at a time. + + Reverting the whole session + If you would like to revert the whole editing session, choose FileAbandon changes and quit. This will be analogous to quitting without saving any changes in other applications. + + If you would like to save your database under a different name, - you can do so by choosing File - Save as... and - specifying the name (and, optionally, format) of your new + you can do so by choosing + + File + Save as... + + and specifying the name (and, optionally, format) of your new database. + - - "Save as" continues editing + "Save as" continues editing If you use the Save as... function, the editing in the main window is performed on the newly made @@ -171,13 +215,12 @@ using Export... instead. - - - Importing Data + + Importing Data Importing allows you to incorporate the data from other @@ -185,10 +228,16 @@ &app; can import data from the following formats: &app; database (grdb), GEDCOM, &app; XML, &app; package, and GeneWeb. All of these are available by choosing - File - Import and selecting an - appropriate file. - + + + File + Import + + and selecting an appropriate file. + + + + &app; database (grdb), &app; XML, and &app; package are all native &app; formats in that there is no information loss resulting from reading from and writing into these formats. @@ -205,7 +254,7 @@ but not generally portable across computers with different binary architecture (e.g. i386 vs alpha). - + &app; XML @@ -218,59 +267,62 @@ human-readable. The database may also have references to non-local (external) media objects, therefore it is not guaranteed to be completely portable. The &app; XML - database is created by saving - (FileSave - As...) or exporting - ( - FileExport... - ) data in that format + database is created by saving ( + + File + Save As... + + ) or exporting ( + + File + Export... + + ) data in that format - &app; package - + The package is a compressed archive containing the &app; XML file and all media objects (images, sound files, etc.) to which the database refers. The &app; package is - created by exporting ( - File - Export...) data in that - format. + created by exporting ( + + File + Export... + + ) data in that format. - Opening vs importing - The difference between opening &app; database (in any format) and importing from &app; or GEDCOM database is that importing incorporates all the data into your currently open database, if any. In contrast, opening the database will switch from editing your current data to editing another file. - + After choosing an import format, you will be prompted with the Import database dialog asking you to specify the file name from which to import. - + - Selecting file + + Selecting file - - Unlike the version 1.0.X of &app;, this version does not - require selecting directory for the database. Please select - filename, as you would in any other application. - + This version does not require selecting a directory for the + database. Please select filename, as you would in any other + application. @@ -282,54 +334,52 @@ - -
- GEDCOM Import +
+ GEDCOM Import - + - - Shows GEDCOM Import Window. - + + Shows GEDCOM Import Window. +
+ + Upon starting the &app; database or &app; package import, &app; + will display the progress in the progress bar of its main window. + - - Upon starting the &app; database or &app; package import, &app; - will display the progress in the progressbar of its main window. - - - If a media file is not found during import, the following dialog will prompt you for the possible actions: - -
- Missing Media dialog +
+ Missing Media dialog - + - - Shows Missing Media dialog. - + + Shows Missing Media dialog. +
- - + To remove the object corresponding to the missing file as @@ -374,12 +424,11 @@ files and want to deal with all of them in the same manner. - - - + + - - Exporting Data + + Exporting Data Exporting allows you to share any portion of your &app; database with other researchers as well as to make your database @@ -387,7 +436,6 @@ export data to the following formats: &app; database (grdb), &app; XML, GEDCOM, &app; package, Web Family Tree, and GeneWeb. - Export is saving a copy @@ -398,12 +446,14 @@ export. - - To export data, choose File - Export. This will bring - up the Export druid. Its pages will guide - you through the format selection (see + File + Export + . + This will bring up the Export druid. Its + pages will guide you through the format selection (see ), file selection, and format specific export options (see ). After a final confirmation @@ -415,22 +465,22 @@ -
- Export druid: format selection +
+ Export druid: format selection - + - - Shows format selection page of an Export druid - + + Shows format selection page of an Export druid +
- - - GEDCOM export + + GEDCOM export GEDCOM export options allow you to fine tune your export (see ). Choose the desired @@ -452,25 +502,24 @@ to tell &app; to use the specific path for your images when writing image references in GEDCOM. - -
- Export druid: GEDCOM options - +
+ Export druid: GEDCOM options + - + - - Shows GEDCOM options page of an Export druid - + + Shows GEDCOM options page of an Export druid +
- - + Export into &app; formats @@ -484,7 +533,6 @@ - &app; XML database export @@ -496,7 +544,6 @@ - &app; package export @@ -510,7 +557,6 @@ - Export to CD @@ -520,19 +566,24 @@ is done through the burn:/// location in Nautilus. After exporting to CD, go to the burn:/// location by selecting - Go CD - Creator in Nautilus menu - (unless this location is already displayed by - &app;). Your database directory will show up. To record - it on to the CD, click the CD icon on the Nautilus - toolbar, or select File - Write to CD in - Nautilus menu. + + Go + CD Creator + + + in Nautilus menu (unless this location is already + displayed by &app;). Your database directory will show + up. To record it on to the CD, click the CD icon on the + Nautilus toolbar, or select + + File + Write to CD + + in Nautilus menu. - If a media file is not found during export, the following dialog will prompt you for the possible actions: @@ -540,23 +591,24 @@ -
- Missing Media dialog - - +
+ Missing Media dialog + + - + - - Shows Missing Media dialog. - + + Shows Missing Media dialog. +
- + To remove the object corresponding to the missing file @@ -603,10 +655,9 @@ all of them in the same manner. - + - - + Export into other formats @@ -621,20 +672,18 @@ - GeneWeb Exporting to GeneWeb will save a copy of your data into a popular web genealogy format. To find out more about - GeneWeb and its format, visit this site. + GeneWeb and its format, visit + this site. - vCalendar and vCard @@ -648,13 +697,11 @@ - - - - - Editing Data: Quick Start - + + + Editing Data: Quick Start + Editing any portion of data allows you to amend and/or modify information stored in the database. The available editing options include editing personal data, relationship data, data @@ -663,28 +710,29 @@ data stored in the database can be edited! Adding a new piece of information is the process of creating an appropriate empty data structure and subsequently editing that empty structure. - + + This section refers mainly to the menu items and buttons as the main way of interacting with &app;. In addition to this, - &app; provides an extensive set of keybindings. The detailed - reference to the keybindings is found in the . + &app; provides an extensive set of key bindings. The detailed + reference to the key bindings is found in the + . - - - To Add a Person + + To Add a Person To add a person to the database, switch to the People View () and then click the - Add on the toolbar. Enter any data - you know about this person into the Edit - Person Dialog (see for details). To edit information - about a person already present in the database, select an - entry you would like to view/modify, and then click the - Edit icon on the toolbar. - + Add on the toolbar. Enter any data you + know about this person into the Edit + Person Dialog (see + for details). To edit information about a person already + present in the database, select an entry you would like to + view/modify, and then click the Edit + icon on the toolbar. + + You can also use Add... and Edit... menu items available under the Edit. Or you can right-click on the @@ -692,11 +740,10 @@ Edit... from the invoked context menu. - - - - To Specify a Relationship - + + + To Specify a Relationship + To specify a relationship, first switch to the Family View (). Then click one of the two top @@ -704,18 +751,20 @@ adds a new person to the database and to the relationship, while the second top button adds a person that is already in a database to the relationship. - + + If using the second button, select the spouse/partner from the list and specify the relationship using the menu at the bottom. If necessary, you can add a person to the list by clicking the + button. &app; will filter the displayed list of people based on the apparent - relation possibility. Specifically, shown are the people who + relationship possibility. Specifically, shown are the people who could possibly be in relationship with the active person, as judged by the available birth and death information. To override this and display all people from the database, check the Show all box. - + + To edit information about a relationship already present in the database, move the mouse over the Spouse box and double-click. If the @@ -726,11 +775,9 @@ from the items of this context menu. - - - - To Specify Parents + + To Specify Parents To specify parents of an active person, first switch to the Family View (). Then click the @@ -741,13 +788,15 @@ relationship to each other. If necessary, you can add a person to the list by clicking the Add... button. - + + The top and bottom lists contain males and females, respectively. By default, &app; will limit both lists to people who could possibly be the parents (judged by the date of birth) of the active person. To override this, check the Show all box for each list. - + + To specify parents of the active person's spouse, switch to the Family View and then click the + button on the right of the spouse's parents list box. To edit @@ -758,11 +807,9 @@ appropriate item from the context menu. - - - - To Specify Children + + To Specify Children To specify children of an active person, switch to the Family View () and then click either the @@ -770,7 +817,8 @@ children list box. The second button adds a child to the database and to the family, while the third button adds a child already present in the database to the family. - + + If using the third button, select a child from the list and specify the child's relationship with father and mother using menus at the bottom. If necessary, you can add a person to the @@ -779,7 +827,8 @@ possibly be the child (judged by the date of birth) of the active person. To override this, check the Show all box. - + + The relationship of the child to the parents can be modified by selecting an appropriate item from the context menu available upon right-clicking into the children box. Also, @@ -787,34 +836,35 @@ this context menu. - - - - To Add Images + + To Add Images You can add images (as well as other media objects) to individual people, events, sources, places, as well as images generally related to the database (e.g. group family photos). - + + To add images related to a single person, switch to the People View (), select a person, and then click the Edit icon on the toolbar - to invoke the Edit Person Dialog (). Then, select the + to invoke the Edit Person Dialog + (). Then, select the Gallery tab, and click the + button to invoke the Select a media object dialog. Type the filename or select a file with the image, then provide a title for that image. Keep adding images until you are done. - + + To add images related to a relationship (e.g. marriage), switch to the Family View () and then double-click on the Spouse box invoke the Marriage/Relationship editor dialog. Select the Gallery tab and click the + button to add an image. - + + To add images related to a source or a place, first switch to the Sources View () or Places View (), respectively. Then select @@ -824,7 +874,8 @@ Place Editor) dialog. Select the Gallery tab and click the + button to add an image. - + + Finally, to add images that are generally related to the database but not limited to any person, relationship, source, or place in particular, switch to the Media View (Add icon on the toolbar to add an image. If you have already added any images to any individual galleries, you will also find them listed in the Media View. - + + In any gallery, you can also use the Edit and - buttons to edit image information and to remove the image @@ -847,8 +899,8 @@ - - To Edit Sources and Places + + To Edit Sources and Places To add a source or a place to the database, switch to the appropriate Sources View () or @@ -857,7 +909,8 @@ source/place. Enter the information into the Source Editor (or Place Editor) dialog. - + + To edit information about sources and places already present in the database, switch to the appropriate view, select an entry you would like to view/modify, and then click the @@ -870,8 +923,8 @@ - - Editing Data: Complete Description + + Editing Data: Complete Description This section provides a complete description of all editing options for all pieces of data in the &app; database. It refers @@ -880,7 +933,6 @@ extensive set of keybindings. The detailed reference to the keybindings is found in the . - Add, Remove, and Edit buttons @@ -891,8 +943,9 @@ + and - icons, and the third uses the icon depicting a pen on top of a paper sheet. - - We will continue referring to the latter as the + + + Reference the latter as the Edit button, while using + and - to denote the former two buttons. @@ -901,212 +954,210 @@ - - Personal Information - + + Personal Information + Editing of personal data can be performed in the following ways: - - - From the People View: - - - Double-click the name of the person whose data you - would like to edit, or select the name by single click - and then click the Edit icon on - the toolbar. You may also select the name and then - press Enter. Finally, you may select - Edit... from the - Edit menu of &app; or choose - Edit from the context menu - that appears upon right-click on the name. - - - - - - From the Family View: - - - To edit active person's data, move the mouse into the - Active person box, then - double-click, or use any of the menu items described - above. To edit Spouse's data, Shift-click desired - spouse entry. Also, from Spouse - and Children boxes you may select - the desired person, right-click, and then select the - menu item from the context menu to edit the selected - person's data. - - - - - - From the Pedigree View: - - - Move the mouse into the box bearing the name of the - person whose data you would like to edit, then - double-click. - - - - - - + + + From the People View: + + + Double-click the name of the person whose data you would + like to edit, or select the name by single click and + then click the Edit icon on the + toolbar. You may also select the name and then press + Enter. Finally, you may select + Edit... from the + Edit menu of &app; or choose + Edit from the context menu + that appears upon right-click on the name. + + + + + From the Family View: + + + To edit active person's data, move the mouse into the + Active person box, then + double-click, or use any of the menu items described + above. To edit Spouse's data, Shift-click desired + spouse entry. Also, from Spouse and + Children boxes you may select the + desired person, right-click, and then select the menu + item from the context menu to edit the selected person's + data. + + + + + From the Pedigree View: + + + Move the mouse into the box bearing the name of the + person whose data you would like to edit, then + double-click. + + + + + With either method, the following Edit Person dialog will appear: - + -
- Edit Person dialog - - - - - - - Shows Edit Person dialog. - - - -
+
+ Edit Person dialog + + + + + + + Shows Edit Person dialog. + + + +
- - - The top of the window shows the name of the person whose - data is being edited. The main part of the window displays - ten notebook tabs containing different categories of - available information. You can bring any tab to the top for - viewing or editing by clicking on the appropriate tab - heading. The bottom part has OK and - Cancel buttons. Clicking the - OK button at any time will apply all - the changes made in all tabs and close the dialog - window. Clicking the Cancel button at - any time will close the window without applying any - changes. If any of the data in any tab were modified, the - alert window will appear with the choices of closing the - dialog without saving changes, canceling the initial cancel - request, or saving the changes. - - - - Clicking OK will immediately save - changes to the database (write on disk). Unlike previous - versions, this version of &app; does not have a separate - saving function, all changes are immediate. - - - - - - The tab labels reflect the presence of corresponding - information: if the tab contains any data, its label - appears boldface; if the tab has no data then its label - appears regular (not bold). - - - + + The top of the window shows the name of the person whose + data is being edited. The main part of the window displays + ten notebook tabs containing different categories of + available information. You can bring any tab to the top for + viewing or editing by clicking on the appropriate tab + heading. The bottom part has OK and + Cancel buttons. Clicking the + OK button at any time will apply all + the changes made in all tabs and close the dialog + window. Clicking the Cancel button at + any time will close the window without applying any + changes. If any of the data in any tab were modified, the + alert window will appear with the choices of closing the + dialog without saving changes, canceling the initial cancel + request, or saving the changes. + + - The tabs provide the following information categories of - personal data: - - - - - General - - - The General tab allows editing of - general information about the person. This includes - the text entry fields of Given - name, Family name, - Family prefix (such as de or - van), Suffix (e.g. Jr. or III), - Title (e.g. Dr. or Rev.), - Nickname (Bob for Robert), - Type of the name (birth name, - married name, etc.) and Date and - Place of birth and death. Some of - these (Family name, - Type, and both - Place fields), also provide - autocompletion feature: as you type in these fields, - the menu is displayed below the field with the - available entries from the database that are - compatible with your partial input. This allows for a - quick selection of an available entry by selecting in - from the menu, either using the mouse or arrows and - Enter key. - - The Edit button located by the - Family name entry allows editing - the preferred name in complete detail, by invoking - the Name Editor dialog (see - ). - - The Gender radio buttons offer - the choice of person's gender between - male, - female, and - unknown. Clicking the colored - circle buttons (green, yellow, or red, also called - LED buttons) located next to the birth and death Date - fields will bring up the Date - Selection dialog allowing detailed - modification of the date, see . Clicking either - Edit button located next to - the birth and death LED buttons will bring up a - dialog allowing you to edit the corresponding event - (birth or death) details, see . The field - ID displays an internal &app; ID - number which identifies the user in the database. The - Image area shows the first image - available in the Gallery of this - person (if any exist). - - Finally, the Information is - complete and Information is - private check buttons provides the way to - mark whether this person's record is complete or not - and whether it is a private record. - - - - - - - - Names - + Clicking OK will immediately save + changes to the database (write on disk). This version of + &app; does not have a separate saving function, all + changes are immediate. +
+
+ + + The tab labels reflect the presence of corresponding + information: if the tab contains any data, its label + appears boldface; if the tab has no data then its label + appears regular (not bold). + + + + The tabs provide the following information categories of + personal data: + + + + + General + + + + The General tab allows editing of + general information about the person. This includes + the text entry fields of Given + name, Family name, + Family prefix (such as de or + van), Suffix (e.g. Jr. or III), + Title (e.g. Dr. or Rev.), + Nickname (Bob for Robert), + Type of the name (birth name, + married name, etc.) and Date and + Place of birth and death. Some of + these (Family name, + Type, and both + Place fields), also provide + autocompletion feature: as you type in these fields, + the menu is displayed below the field with the + available entries from the database that are + compatible with your partial input. This allows for a + quick selection of an available entry by selecting it + from the menu, either using the mouse or arrows and + Enter key. + + + The Edit button located by the + Family name entry allows editing + the preferred name in complete detail, by invoking + the Name Editor dialog (see + ). + + + The Gender radio buttons offer the + choice of person's gender between + male, female, + and unknown. Clicking the colored + circle buttons (green, yellow, or red, also called LED + buttons) located next to the birth and death Date fields + will bring up the Date Selection + dialog allowing detailed modification of the date, see + . Clicking either + Edit button located next to the + birth and death LED buttons will bring up a dialog + allowing you to edit the corresponding event (birth or + death) details, see . The field + ID displays an internal &app; ID + number which identifies the user in the database. The + Image area shows the first image + available in the Gallery of this + person (if any exist). + + + Finally, the Information is + complete and Information is + private check buttons provides the way to + mark whether this person's record is complete or not and + whether it is a private record. + + + + + + + + Names + + -
- Edit Person dialog - Names - +
+ Edit Person dialog - Names + - + - - Shows Names Tab of Edit Person dialog. - + + Shows Names Tab of Edit Person dialog. +
- + The Names tab displays information concerning alternate names of the person and the controls allowing their modification. The bottom part @@ -1122,34 +1173,32 @@ buttons become available only when an alternate name is selected from the list. - + - - - Events - - + + + Events + + - -
- Edit Person dialog - Events - +
+ Edit Person dialog - Events + - + - - Shows Events Tab of Edit Person dialog. - + + Shows Events Tab of Edit Person dialog. +
- - - + The Events tab displays information about the events relevant to the person and controls allowing its modification. The bottom part displays the @@ -1164,34 +1213,33 @@ buttons become available only when an event is selected from the list. - + - - - Attributes - - + + + Attributes + + - -
- Edit Person dialog - Attributes - +
+ Edit Person dialog - Attributes + - + - - Shows Attributes Tab of Edit Person dialog. + + Shows Attributes Tab of Edit Person dialog.
- - - + The Attributes tab displays information about the attributes of the person and controls allowing their modification. These could be any @@ -1210,2710 +1258,4065 @@ - buttons become available only when an attribute is selected from the list. - + - - - Addresses - - + + + Addresses + + - -
- Edit Person dialog - Addresses - +
+ Edit Person dialog - Addresses + - + - - Shows Addresses Tab of Edit Person dialog. - - - -
+ + Shows Addresses Tab of Edit Person dialog. + + +
+
+ + + The Addresses tab displays + information about the addresses of the person and the + controls allowing their modification. The bottom part + displays the list of all addresses stored in the + database. The top part shows the details of the + currently selected address in the list (if any). The + buttons +, + Edit, and + - allow you to correspondingly + add, modify, and remove an address record from the + database. Note that the Edit and + - buttons become available only + when an address is selected from the list. + + + Some reports allow you to restrict data on living + people. In particular, that option will omit the + addresses of people who are currently alive. + +
+
+
+ + + + Notes + + + +
+ Edit Person dialog - Notes + + + + + + + Shows Notes Tab of Edit Person dialog. + + + +
+ + + + The Notes tab displays information + about the notes concerning the person. These could be + any notes which do not naturally fit into the + Parameter-Value pairs available to Attributes. To add + a note or modify existing notes simply edit the text in + the text entry field. + + + The Format option allows you to set + the appearance of the note in the output (i.e. in + reports and web pages). Selecting + Flowed will replace all multiple + spaces, tabs, and single end-of-line characters with + single space in the output. The two consecutive new + lines (i.e. an empty line) denote a new paragraph. + Selecting Preformatted will honor + all multiple spaces tabs, and new lines, so that the + output will appear as it is entered into the text entry + field. + +
+
+
+ + + + Sources + + + + + +
+ Edit Person dialog - Sources + + + + + + + Shows Sources Tab of Edit Person dialog. + + + + +
+ + + + The Sources tab displays + information about the sources related to the person and + controls allowing its modification. These could be any + general sources which refer to the person but do not + describe specifically any event. For example, Aunt + Martha's memoirs may mention her great grandson Paul, so + the researcher may assume that this person (Paul) + existed and cite the memoirs as the source for this + assumption. + + + + Sources documenting specific events are better + recorded in relation to those events, under the + Events tab. The person's + Sources tab is best used for + general source references. + + + + The central part displays the list of all source + references stored in the database in relation to the + person. The buttons +, + Edit, and + - allow you to correspondingly + add, modify, and remove a source reference to this + person. Note that the Edit and + - buttons become available only + when a source reference is selected from the list. + +
+
+
+ + + + Gallery + + + + + + - The Addresses tab displays information about - the addresses of the person and the controls allowing their - modification. The bottom part displays the list of all - addresses stored in the database. The top part shows the details - of the currently selected address in the list (if any). The buttons - +, Edit, - and - allow you to correspondingly add, - modify, and remove an address record from the database. - Note that the Edit and - - buttons become available only when - an address is selected from the list. - + + The Gallery tab displays + information about media objects associated with the + person and controls allowing subsequent + modification. The central part shows the list of all + such media objects. For media object which are valid + image files, previews of images are displayed. For other + objects such as audio files, movie files, etc., a + corresponding file type icon is displayed instead. + + + + The first available image in the gallery will be also + displayed in the Image area in + the General tab. + + + + The buttons +, + Select, + Edit, and + - allow you to correspondingly + add a new image, add a reference to an image already + stored in the database, modify, and remove a media + object reference to this person. Note that the + Edit and - + buttons become available only when a media object is + selected from the list. + + + + Removing a media object from a person's gallery does + not remove it from the database. It only removes the + reference to that object from this person's record. + + + + + + + + + Internet + + - Some reports allow you to restrict data on living people. - In particular, that option will omit the addresses of people who - are currently alive. - - + - - Notes - +
+ Edit Person dialog - Internet + + + + + + + Shows Internet Tab of Edit Person dialog. + + + +
- -
- Edit Person dialog - Notes - - - Shows Notes Tab of Edit Person dialog. -
- + - The Notes tab displays information about - the notes concerning the person. These could be any notes which do not - naturally fit into the Parameter-Value pairs available to Attributes. - To add a note or modify existing notes simply edit the text in the - text entry field. - - - The Format option allows you to set the - appearance of the note in the output (i.e. in reports and web pages). - Selecting - Flowed will replace all multiple spaces, tabs, - and single end-of-line characters with single space in the output. - The two consecutive new lines (i.e. an empty line) denote a new paragraph. - Selecting Preformatted will honor all multiple spaces - tabs, and new lines, so that the output will appear as it is entered - into the text entry field. - -
-
+ + The Internet tab displays + information about Internet addresses relevant to the + person and the controls allowing data modification. The + bottom part displays the list of all such Internet + addresses stored in the database. The top part shows the + details of the currently selected addresses in the list + (if any). The buttons +, + Edit, and + - allow you to correspondingly + add, modify, and remove an Internet address record from + the database. The button Go + allows opening a web-page with the corresponding address + with your default browser. Note that the + Edit, -, + and Go buttons become available + only when an address is selected from the list. + + + + + + + + LDS + + - - Sources - + - -
- Edit Person dialog - Sources - - - Shows Sources Tab of Edit Person dialog. -
- +
+ Edit Person dialog - LDS + + + + + + + Shows LDS Tab of Edit Person dialog. + + + +
+ + + The LDS tab displays information + about LDS ordinances of the person and controls allowing + modification. These are LDS + baptism, Endowment, and + Sealed to parents ordinances, as + labeled inside the tab. Each ordinance is described by + its date, LDS temple, and Place where it happened. An + additional pop-up menu Parents is + available for the Sealed to parents + ordinance. Each ordinance can further be described by + its status through the selections available in the + Status pop-up menu and can also be + referenced by sources and notes via corresponding + Sources... and + Note buttons. + +
+
+
+ - The Sources tab displays information about - the sources related to the person and controls allowing its modification. - These could be any general sources which refer to the person but do not - describe specifically any event. - For example, Aunt Martha's memoirs may mention her great grandson Paul, - so the researcher may assume that this person (Paul) existed and cite - the memoirs as the source for this assumption. - - - Sources documenting - specific events are better recorded in relation to those events, under the - Events tab. The person's Sources - tab is best used for general source references. - - The central part displays the list of all source references stored - in the database in relation to the person. The - buttons +, - Edit, and - - allow you to correspondingly add, modify, and remove a source reference - to this person. Note that the Edit and - - buttons become available only when - a source reference is selected from the list. - -
-
- - - - Gallery - - - - - - - The Gallery tab displays information about - media objects associated with the person and controls allowing subsequent - modification. The central part shows the list of all such media objects. - For media object which are valid image files, previews of images are - displayed. For other objects such as audio files, movie files, etc., a - corresponding file type icon is displayed instead. - - The first available - image in the gallery will be also displayed in the - Image area in the General - tab. - - - The buttons +, - Select, - Edit, and - allow - you to correspondingly add a new image, add a reference to an image already - stored in the database, modify, and remove a media object reference - to this person. Note that the Edit and - - buttons become available only when - a media object is selected from the list. - - - Removing a media object from a person's gallery does not - remove it from the database. It only removes the reference to that - object from this person's record. - - - - - - Internet - - - -
- Edit Person dialog - Internet - - - Shows Internet Tab of Edit Person dialog. -
- - - The Internet tab displays information about - Internet addresses relevant to the person and the controls - allowing data modification. The bottom part displays the list of all - such Internet addresses stored in the database. The top part shows the - details of the currently selected addresses in the list (if any). - The buttons +, - Edit, and - - allow you to correspondingly add, modify, and remove an Internet address - record from the database. The button Go allows - opening a web-page with the corresponding address with your default - browser. Note that the Edit, - -, and Go buttons - become available only when an address is selected from the list. - -
-
- - - LDS - - - -
- Edit Person dialog - LDS - - - Shows LDS Tab of Edit Person dialog. -
- - - The LDS tab displays information - about LDS ordinances of the person and controls allowing - modification. These are LDS baptism, - Endowment, and Sealed to - parents ordinances, as labeled inside the tab. - Each ordinance is described by its date, LDS temple, and Place where - it happened. An additional pop-up menu Parents is - available for the Sealed to parents ordinance. - Each ordinance can further be described by its status through the - selections available in the Status pop-up - menu and can also be referenced by sources and notes via corresponding - Sources... and Note - buttons. - -
-
- - - - - - Dates - This section describes the details of entering and modifying dates. - Dates are important in genealogical research, so &app; goes a long - way to preserve and use any date information available. + + + Dates + + This section describes the details of entering and modifying + dates. Dates are important in genealogical research, so &app; + goes a long way to preserve and use any date information + available. + - Date types and validity indicators -&app; uses color circles to indicate the validity of the entered date. - -Date LED buttons -The color circles are also referred to as the LED buttons. -Clicking on an LED button will invoke the Date selection -dialog described in detail below, see - - - - Green circle means that the date is valid and - complete regular date (e.g. May 24, 1961). In simple terms, green - means that the date is uniquely defined up to a day. - - Yellow circle means that the date is valid but is - not a regular date. This could be the date of an alternative type: - a before date (before May 25, 1962), an after date (after May, 1960), - an about date (about May 23, 1961), a range (between May 1, 1961 and May 31, 1961), - or a span (from May 1, 1961 to May 31, 1961). It can also be a complete - single date, but with quality of Estimated or Calculated. Finally, it could - be a partial date, i.e. a regular quality single date missing some - portion, e.g. May 1961 or 1961. - - While partial dates do - not uniquely define the day, they allow at least for some type of - comparisons between the dates. - - Red circle means that the date is not recognized as - a valid date (e.g. "Christmas week of 61", or "the summer when I had surgery"). - n that case the date will be stored as a text string. Therefore, no comparison - with other dates will be available. It is best to avoid such date entries. Same - information can be entered as a note for the event of interest instead - of a date. In the example considered, a better things to do is to - enter December 1961 as a date and "Christmas week of 61" as a note. - - - - - - - Acceptable date entries - - &app; recognizes many - formats of exact dates. The numeric formats are determined - by the default environment &app; is running under. Most European - countries use DD.MM.YYYY, the US commonly uses MM/DD/YYYY, - and so on. - -Besides exact dates, &app; - recognizes many dates that are not regular: before, after, about, ranges - and spans. It also understands the quality: estimated or calculated. - Finally, it supports partial dates and many alternative calendars. - Below is the list of date entry rules to allow precise date parsing. - - Date parsing rules - The list below is only valid for English. If you are using localized version - of &app;, your version may or may not provide a localized date parser. - At the time of this writing, localized parsers exist for French, Russian, and - Spanish languages. - - If the localized parser is available for your version, chances are - that other rules are in effect. If there's no manual in your language yet, - you may try following your instinct and go with the common ways - of denoting dates in your language. If all else fails, use the Date - selection dialog described below. - - - - Regular single dates can be entered just as you would - write them in the letter: May 24, 1961 or January 1, 2004. - - Dates that are not regular should start with the quality: - estimated or calculated, if applicable. Regular quality does not need to be - specified, as it is the default. Example: est. 1961, or calc 2005. - - - Next should appear the type: before, after, or about. - Ranges are denoted with "between DATE and DATE" and spans use "from DATE - to DATE" patterns, where DATE stands for a single date. - - Examples: est from 2001 to 2003, before June 1975, est about 2000, - calc between May 1900 and January 1, 1990. - - - Partial dates are entered simply by omitting unknown - information: May 1961, 2004. - - - Alternate calendars are calendars other than Gregorian - calendar. Currently, &app; supports Hebrew, - French Republican, Julian, Islamic, and Persian alternate calendars. - To specify the calendar other than the default Gregorian, - append the name of the calendar to the date string, e.g. - "January 9, 1905 (julian)". - - - - - - Graphical User Interface for entering dates - While the above rules provide a quick and easy way for entering most - common dates, sometimes there is a need to either build a complex date or simply - check the date using graphical user interface. The Date selection - dialog can be invoked by clicking the color circle button (also known as the LED - button) next to the date entry field. - - -
- Date selection dialog - - - Shows Date selection dialog. -
- - - The Calendar menu allows the choice - of any supported calendar. The Quality menu - provides choices of Regular, Estimated, or Calculated quality. The - Type menu allows to adjust the exact date type: - Regular, Before, After, About, Range, Span, and Text only. - A set of controls labeled Date allows setting - the day, the month, and the year for a date. The second set of controls, - Second date, is disabled for all dates except - for those of Range and Span type. For ranges and spans, the - Second date controls allow setting the details - of the second date. Finally, the Text comment - text entry field allows storing an arbitrary text string along with the date. + Date types and validity indicators + + &app; uses color circles to indicate the validity of the + entered date. + + + Date LED buttons + + The color circles are also referred to as the LED buttons. + Clicking on an LED button will invoke the Date + selection dialog described in detail below, see + + + + + + + Green circle means that the date is valid and complete + regular date (e.g. May 24, 1961). In simple terms, green + means that the date is uniquely defined up to a day. + + + + + Yellow circle means that the date is valid but is not a + regular date. This could be the date of an alternative + type: a before date (before May 25, 1962), an after date + (after May, 1960), an about date (about May 23, 1961), a + range (between May 1, 1961 and May 31, 1961), or a span + (from May 1, 1961 to May 31, 1961). It can also be a + complete single date, but with quality of Estimated or + Calculated. Finally, it could be a partial date, i.e. a + regular quality single date missing some portion, + e.g. May 1961 or 1961. + + + While partial dates do not uniquely define the day, they + allow at least for some type of comparisons between the + dates. + + + + + Red circle means that the date is not recognized as a + valid date (e.g. "Christmas week of 61", or "the summer + when I had surgery"). n that case the date will be + stored as a text string. Therefore, no comparison with + other dates will be available. It is best to avoid such + date entries. Same information can be entered as a note + for the event of interest instead of a date. In the + example considered, a better things to do is to enter + December 1961 as a date and "Christmas week of 61" as a + note. + + + +
+ + Acceptable date entries + + &app; recognizes many formats of exact dates. The numeric + formats are determined by the default environment &app; is + running under. Most European countries use DD.MM.YYYY, the + US commonly uses MM/DD/YYYY, and so on. + + + Besides exact dates, &app; recognizes many dates that are + not regular: before, after, about, ranges and spans. It also + understands the quality: estimated or calculated. Finally, + it supports partial dates and many alternative calendars. + Below is the list of date entry rules to allow precise date + parsing. + + + Date parsing rules + + The list below is only valid for English. If you are using + localized version of &app;, your version may or may not + provide a localized date parser. At the time of this + writing, localized parsers exist for French, Russian, and + Spanish languages. + + + If the localized parser is available for your version, + chances are that other rules are in effect. If there's no + manual in your language yet, you may try following your + instinct and go with the common ways of denoting dates in + your language. If all else fails, use the Date + selection dialog described below. + + + + + + Regular single dates can be entered just as you would + write them in the letter: May 24, 1961 or January 1, + 2004. + + + + + Dates that are not regular should start with the + quality: estimated or calculated, if applicable. Regular + quality does not need to be specified, as it is the + default. Example: est. 1961, or calc 2005. + + + + + Next should appear the type: before, after, or about. + Ranges are denoted with "between DATE and DATE" and + spans use "from DATE to DATE" patterns, where DATE + stands for a single date. + + + Examples: est from 2001 to 2003, before June 1975, est + about 2000, calc between May 1900 and January 1, 1990. + + + + + Partial dates are entered simply by omitting unknown + information: May 1961, 2004. + + + + + Alternate calendars are calendars other than Gregorian + calendar. Currently, &app; supports Hebrew, French + Republican, Julian, Islamic, and Persian alternate + calendars. To specify the calendar other than the + default Gregorian, append the name of the calendar to + the date string, e.g. "January 9, 1905 (julian)". + + + + + + Graphical User Interface for entering dates + + While the above rules provide a quick and easy way for + entering most common dates, sometimes there is a need to + either build a complex date or simply check the date using + graphical user interface. The Date + selection dialog can be invoked by clicking the + color circle button (also known as the LED button) next to + the date entry field. - - If you enter the date outside this dialog, i.e. as a text - in any date entry field, that text will be copied and stored as the text - comment string during parsing of entered text. - - Therefore, the comment only lives until the next parsing. - If you have some important text corresponding to the date, you - are probably better off by saving that text as a Note for the - corresponding event. - -
- - - Relationship Data - Editing of relationship data is performed in the following - Marriage/Relationship Editor dialog which appears - after double-clicking on the spouse box in the Family View. Alternatively, - you may invoke this dialog by right-clicking into the spouse box - and selecting Edit relationship item from - the context menu. + - -
- Marriage/Relationship Editor dialog - - - Shows Marriage/Relationship Editor dialog. -
- - - The top of the window shows the names of the people whose - relationship is being edited. The main part of the window displays - seven notebook tabs containing different categories of available - information. You can bring any tab to the top for viewing - or editing by clicking on the appropriate tab heading. + +
+ Date selection dialog + + + + + + + Shows Date selection dialog. + + + +
+
+ + + + + The Calendar menu allows the choice of + any supported calendar. The Quality + menu provides choices of Regular, Estimated, or Calculated + quality. The Type menu allows to adjust + the exact date type: Regular, Before, After, About, Range, + Span, and Text only. A set of controls labeled + Date allows setting the day, the month, + and the year for a date. The second set of controls, + Second date, is disabled for all dates + except for those of Range and Span type. For ranges and + spans, the Second date controls allow + setting the details of the second date. Finally, the + Text comment text entry field allows + storing an arbitrary text string along with the date. + + + + If you enter the date outside this dialog, i.e. as a text + in any date entry field, that text will be copied and + stored as the text comment string during parsing of + entered text. + + + Therefore, the comment only lives until the next parsing. + If you have some important text corresponding to the date, + you are probably better off by saving that text as a Note + for the corresponding event. + + + +
+ + + + + Relationship Data + + Editing of relationship data is performed in the following + Marriage/Relationship Editor dialog which + appears after double-clicking on the spouse box in the Family + View. Alternatively, you may invoke this dialog by + right-clicking into the spouse box and selecting + Edit relationship item from the context + menu. + + +
+ Marriage/Relationship Editor dialog + + + + + + + Shows Marriage/Relationship Editor dialog. + + + +
+ + + The top of the window shows the names of the people whose + relationship is being edited. The main part of the window + displays seven notebook tabs containing different categories + of available information. You can bring any tab to the top for + viewing or editing by clicking on the appropriate tab heading. The bottom part has OK and - Cancel buttons. Clicking the - OK button - at any time will apply all the changes made in all tabs and close the - dialog window. Clicking the Cancel button at any time will - close the window without applying any changes. If any of the data - in any tab were modified, the alert window will appear with the - choices of closing the dialog without saving changes, canceling the - initial cancel request, or saving the changes. - -Clicking OK will immediately -save changes to the database (write on disk). Unlike previous versions, -this version of &app; does not have a separate saving function, -all changes are immediate. - - - The tab labels reflect the presence of corresponding information: if the - tab contains any data, its label appears boldface; if the tab has no data - then its label appears regular (not bold). - - The tabs provide the following information categories of + Cancel buttons. Clicking the + OK button at any time will apply all + the changes made in all tabs and close the dialog + window. Clicking the Cancel button at + any time will close the window without applying any + changes. If any of the data in any tab were modified, the + alert window will appear with the choices of closing the + dialog without saving changes, canceling the initial cancel + request, or saving the changes. + + + + Clicking OK will immediately save + changes to the database (write on disk). This version of + &app; does not have a separate saving function, all changes + are immediate. + + + + + The tab labels reflect the presence of corresponding + information: if the tab contains any data, its label + appears boldface; if the tab has no data then its label + appears regular (not bold). + + + + The tabs provide the following information categories of relationship data: - +
+ + + + General + + + + The General tab allows editing of + the most general information about the relationship: the + relationship type. The available types (such as + married, partners, etc.) can be chosen from the + drop-down Relationship type menu. + The ID field displays &app; ID + number which labels this relationship in the + database. The Last changed label + shows the last modification time for this relationship. + Finally, the Information is + complete check button provides the way to + mark whether this relationship's record is complete or + not. + + + + + + + + Events + + + + The Events tab displays information + about the events relevant to the relationship and the + controls allowing modification. The bottom part displays + the list of all such events stored in the database. The + top part shows the details of the currently selected + event in the list (if any). The buttons + +, Edit, + and - allow you to + correspondingly add, modify, and remove an event record + from the database. Note that the + Edit and - + buttons become available only when an event is selected + from the list. + + + + + + + + Attributes + + + + The Attributes tab displays + information about the attributes of the relationship and + the controls allowing modification. The bottom part + displays the list of all such attributes stored in the + database. The top part shows the details of the + currently selected attribute in the list (if any). The + buttons +, + Edit, and + - allow you to correspondingly + add, modify, and remove an attribute record from the + database. Note that the Edit and + - buttons become available only + when an attribute is selected from the list. + + + + + + + + Notes + + + + The Notes tab displays information + about the otes concerning the relationship. These could + be any notes which do not naturally fit into the + Parameter-Value pairs available to Attributes. To add a + note or modify existing notes simply edit the text in + the text entry field. + + + The Format option allows you to set + the appearance of the note in the output (i.e. in + reports and web pages). Selecting + Flowed will replace all multiple + spaces, tabs, and single end-of-line characters with + single space in the output. The two consecutive new + lines (i.e. an empty line) denote a new paragraph. + Selecting Preformatted will honor + all multiple spaces tabs, and new lines, so that the + output will appear as it is entered into the text entry + field. + + + + + + + + Sources + + + + The Sources tab displays + information about he sources related to the relationship + and controls allowing its modification. These could be + any general sources which refer to the relationship but + do not describe specifically any event. For example, + Aunt Martha's memoirs may mention that her great + grandson Paul was married, so the researcher may assume + that this relationship (between Paul and his wife) + existed and cite the memoirs as the source for this + assumption. + + + + Sources documenting specific events such as marriages + or divorces are better filed in relation to those + events, under the Events tab. + + + + The central part displays the list of all source + references stored in the database for this + relationship. The buttons +, + Edit, and + - allow you to correspondingly + add, modify, and remove a source reference to this + relationship. Note that the Edit + and - buttons become available + only when a source reference is selected from the list. + + + + + + + + Gallery + + + + The Gallery tab displays + information about edia objects associated with the + relationship and the controls allowing modification of + such. The central part shows the list of all such media + objects. For media object which are valid image files + previews of images are displayed. For other objects such + as audio files, movie files, etc., a generic &app; icon + is displayed instead. The buttons + +, Select, + Edit, and + - allow you to correspondingly + add a new image, add a reference to an image already + stored in the database, modify, and remove a media + object reference to this relationship. Note that the + Edit and - + buttons become available only when a media object is + selected from the list. + + + + + + + + LDS + + + + The LDS tab displays information + about the LDS Sealed to spouse + ordinance of the person and the controls allowing + modification. The data can include date, LDS temple, and + Place where it happened. The ordinance can further be + described by its status through the selections available + in the Status pop-up menu and can + also be referenced by sources and notes via + corresponding Sources... and + Note buttons. + + + + + + + + Source Data + + To edit source data, switch to the Sources View and select the + desired entry in the list of sources. Double-click on that + entry or click the Edit icon on the + toolbar to invoke the following Source + Editor dialog: + - - General - - The General tab allows editing of the most general - information about the relationship: the relationship type. - The available types (such as married, partners, etc.) can be chosen - from the drop-down Relationship type menu. - The ID field displays &app; ID number - which labels this relationship in the database. The Last - changed label shows the last modification time for this - relationship. - Finally, the Information is complete check - button provides the way to mark whether this relationship's record is - complete or not. - - - - - Events - - The Events tab displays information about - the events relevant to the relationship and the controls allowing - modification. The bottom part displays the list of all such events - stored in the database. The top part shows the details - of the currently selected event in the list (if any). The buttons - +, Edit, - and - allow you to correspondingly add, - modify, and remove an event record from the database. - Note that the Edit and - - buttons become available only when - an event is selected from the list. - - - + - - Attributes - - The Attributes tab displays information about - the attributes of the relationship and the controls allowing - modification. The bottom part displays the list of all such - attributes stored in the database. The top part shows the details - of the currently selected attribute in the list (if any). The buttons - +, Edit, - and - allow you to correspondingly add, - modify, and remove an attribute record from the database. - Note that the Edit and - - buttons become available only when - an attribute is selected from the list. - - - +
+ Source Editor dialog + + + + + + + Shows Source Editor dialog. + + + +
+ - - Notes - - The Notes tab displays information about the - notes concerning the relationship. These could be any notes which do - not naturally fit into the Parameter-Value pairs available to - Attributes. To add a note or modify existing notes simply edit the - text in the text entry field. - - - The Format option allows you to set the - appearance of the note in the output (i.e. in reports and web pages). - Selecting - Flowed will replace all multiple spaces, tabs, - and single end-of-line characters with single space in the output. - The two consecutive new lines (i.e. an empty line) denote a new paragraph. - Selecting Preformatted will honor all multiple spaces - tabs, and new lines, so that the output will appear as it is entered - into the text entry field. - - - - - - - Sources - - The Sources tab displays information about - the sources related to the relationship and controls allowing its - modification. These could be any general sources which refer to the - relationship but do not describe specifically any event. - For example, Aunt Martha's memoirs may mention that her great grandson Paul - was married, so the researcher may assume that this relationship (between - Paul and his wife) existed and cite the memoirs as the source for this - assumption. - - - Sources documenting specific events such as marriages - or divorces are better filed in relation to those events, under the - Events tab. - - The central part displays the list of all source references stored - in the database for this relationship. The - buttons +, - Edit, and - - allow you to correspondingly add, modify, and remove a source reference - to this relationship. Note that the Edit and - - buttons become available only when - a source reference is selected from the list. - - - - - - Gallery - - The Gallery tab displays information about - media objects associated with the relationship and the controls allowing - modification of such. The central part shows the list of all such media objects. - For media object which are valid image files previews of images are - displayed. For other objects such as audio files, movie files, etc., a - generic &app; icon is displayed instead. - The buttons +, - Select, - Edit, and - allow - you to correspondingly add a new image, add a reference to an image already - stored in the database, modify, and remove a media object reference - to this relationship. - Note that the Edit and - - buttons become available only when - a media object is selected from the list. - - - - - - LDS - - The LDS tab displays information - about the LDS Sealed to spouse ordinance - of the person and the controls allowing - modification. The data can include date, LDS temple, and Place where - it happened. The ordinance can further be described by its status - through the selections available in the Status - pop-up menu and can also be referenced by sources and notes via - corresponding Sources... and - Note buttons. - - - -
- - - - Source Data - To edit source data, switch to the Sources View and select the - desired entry in the list of sources. Double-click on that entry or - click the Edit icon on the toolbar to invoke the - following Source Editor dialog: - - -
- Source Editor dialog - - - Shows Source Editor dialog. -
- - - The top of the window shows the Source - Editor - title of the dialog. The main part of the window displays four notebook - tabs containing different categories of available information. You can - bring any tab to the top for viewing or editing by clicking on the - appropriate tab heading. - The bottom part has OK - and Cancel buttons. Clicking the - OK button at any time will apply all the changes made - in all tabs and close the dialog window. Clicking the - Cancel button at any time will close the window without - applying any changes. - -Clicking OK will immediately -save changes to the database (write on disk). Unlike previous versions, -this version of &app; does not have a separate saving function, -all changes are immediate. - - - The tab labels reflect the presence of corresponding information: if the - tab contains any data, its label appears boldface; if the tab has no data - then its label appears regular (not bold). - - + + The top of the window shows the Source + Editor title of the dialog. The main part of the + window displays four notebook tabs containing different + categories of available information. You can bring any tab to + the top for viewing or editing by clicking on the appropriate + tab heading. The bottom part has OK + and Cancel buttons. Clicking the + OK button at any time will apply all + the changes made in all tabs and close the dialog + window. Clicking the Cancel button at + any time will close the window without applying any changes. + + + + Clicking OK will immediately save + changes to the database (write on disk). This version of + &app; does not have a separate saving function, all + changes are immediate. + + + + + The tab labels reflect the presence of corresponding + information: if the tab contains any data, its label + appears boldface; if the tab has no data then its label + appears regular (not bold). + + + The tabs provide the following information categories of - source data: + source data: + + + + + General + + + + The General tab allows editing of + the most general information about the source: its + title, author, abbreviated title, and publication + information. This information can be typed in the + appropriate text entry fields. + + + + + + + + Note + + + + The Note tab displays any notes + concerning the source. To add a note or modify existing + notes simply edit the text in the text entry field. + + + The Format option allows you to set + the appearance of the note in the output (i.e. in + reports and web pages). Selecting + Flowed will replace all multiple + spaces, tabs, and single end-of-line characters with + single space in the output. The two consecutive new + lines (i.e. an empty line) denote a new paragraph. + Selecting Preformatted will honor + all multiple spaces tabs, and new lines, so that the + output will appear as it is entered into the text entry + field. + + + + + + + + Data + + + + The Data tab displays Key/Value + pairs that may be associated with the source. These are + similar to the attributes used for other record + types. The difference from these Key/Value pairs and the + attributes is that the attributes may have source + references and notes, while the Key/Value data may + not. + + + The central part shows the list of all Key/Value pairs, + if any. The buttons + and + - allow you to correspondingly + add and remove pairs. To modify the text of Key or + Value, first select the desired entry (may be an empty + entry when new pair has just been added). Then click + into either Key or Value cell inside that entry and edit + the text in place. When you are done, click outside the + cell to exit editing mode. + + + + + + + + Gallery + + + + The Gallery tab displays + information about media objects associated with the + given source and controls allowing its modification. The + central part shows the list of all such media + objects. For media object which are valid image files + previews of images are displayed. For other objects such + as audio files, movie files, etc., a generic &app; icon + is displayed instead. The buttons + +, Select, + Edit, and + - allow you to correspondingly + add a new image, add a reference to an image already + stored in the database, modify, and remove a media + object reference to this source. Note that the + Edit and - + buttons become available only when a media object is + selected from the list. + + + + + + + + References + + + + The References tab displays + information about atabase records that refer to this + source. If the source is not referenced from any + database record, the tab shows an empty list. If the + source is referenced from many records, the tab will + list all of them. The list can be ordered by any of its + column headers: Type, + ID, or + Name. Double-clicking on the list + entry opens up an editor for a corresponding record + allowing to view or modify the record. + + + + Only primary objects can be shown in the + References tab: Person, Family, + Event, Place, or Media object. The secondary objects + such as Names and Attributes, although may refer the + source, will only show up through their primary + objects they belong to. + + + + + +
- - General - The - General tab allows editing of the most general - information about the source: its title, author, abbreviated title, - and publication information. - This information can be typed in the appropriate text entry fields. + + + + Place Data + + To edit place data, switch to the Places View and select the + desired entry in the list of places. Double-click on that + entry or click the Edit icon on the + toolbar to invoke the following Place + Editor dialog: + + + + +
+ Place Editor dialog + + + + + + + Shows Place Editor dialog. + + + +
+ + + + + The top of the window shows the Place + Editor title of the dialog. The main part of the + window displays seven notebook tabs containing different + categories of available information. You can bring any tab to + the top for viewing or editing by clicking on the appropriate + tab heading. The bottom part has OK + and Cancel buttons. Clicking the + OK button at any time will apply all + the changes made in all tabs and close the dialog + window. Clicking the Cancel button at + any time will close the window without applying any changes. + + + + Clicking OK will immediately save + changes to the database (write on disk). This version of + &app; does not have a separate saving function, all + changes are immediate. + + + + + The tab labels reflect the presence of corresponding + information: if the tab contains any data, its label + appears boldface; if the tab has no data then its label + appears regular (not bold). -
-
+ + + The tabs provide the following information categories of + place data: + + + + + General + + + + The General tab allows editing of + the most general information about the place: the title + which labels it in the database, city, church parish, + county, state, country, longitude, and latitude. This + information can be typed in the appropriate text entry + fields. + + + + + + + + Other names + + + + The Other names tab displays + information concerning ther names by which the place + might be known and the controls allowing their + modification. The bottom part displays the list of all + other names of the place stored in the database. The top + part shows the details of the currently selected name in + the list (if any). The buttons + +, Edit, + and - allow you to + correspondingly add, modify, and remove a name record + from the database. Note that the + Edit and - + buttons become available only when a name is selected + from the list. + + + + + + + + Note + + + + The Note tab displays any notes + concerning the place. To add a note or modify existing + notes simply edit the text in the text entry field. + + + The Format option allows you to set + the appearance of the note in the output (i.e. in + reports and web pages). Selecting + Flowed will replace all multiple + spaces, tabs, and single end-of-line characters with + single space in the output. The two consecutive new + lines (i.e. an empty line) denote a new paragraph. + Selecting Preformatted will honor + all multiple spaces tabs, and new lines, so that the + output will appear as it is entered into the text entry + field. + + + + + + + + Sources + + + + The Sources tab displays + information about sources relevant to this place and + controls allowing its modification. The central part + displays the list of all such source references stored + in the database. The buttons +, + Edit, and + - allow you to correspondingly + add, modify, and remove a source reference to this + place. Note that the Edit and + - buttons become available only + when a source reference is selected from the + list. + + + + + + + + Gallery + + + + The Gallery tab displays + information about media objects associated with the + given place and the controls allowing its + modification. The central part shows the list of all + such media objects. For media objects which are valid + image files previews of images are displayed. For other + objects such as audio files, movie files, etc., a + generic &app; icon is displayed instead. The buttons + +, Select, + Edit., and + - allow you to correspondingly + add a new image, add a reference to an image already + stored in the database, modify, and remove a media + object reference to this place. Note that the + Edit and - + buttons become available only when a media object is + selected from the list. + + + + + + + + Internet + + + + The Internet tab displays + information about Internet addresses relevant to the + place and controls allowing its modification. The bottom + part displays the list of all such Internet addresses + stored in the database. The top part shows the details + of the currently selected addresses in the list (if + any). The buttons +, + Edit, and + - allow you to correspondingly + add, modify, and remove an Internet address record from + the database. The button Go + allows you to open a web-page with the corresponding + address with your default browser. Note that the + Edit, -, + and Go buttons become available + only when an address is selected from the list. + + + + + + + + References + + + + The References tab displays + information about database records (events or LDS + ordinances) that refer to this place. If the place is + not referenced from any database record, the tab shows + an empty list. If the place is referenced from many + records, the tab will list all of them. This + information cannot be modified from the Place + Editor dialog. Instead, the corresponding + database record (e.g. birth event) has to be brought up + and its place reference edited. + + + + + - - Note - - The Note tab displays any notes concerning - the source. To add a note or modify existing notes simply edit the - text in the text entry field. - + - The Format option allows you to set the - appearance of the note in the output (i.e. in reports and web pages). - Selecting - Flowed will replace all multiple spaces, tabs, - and single end-of-line characters with single space in the output. - The two consecutive new lines (i.e. an empty line) denote a new paragraph. - Selecting Preformatted will honor all multiple spaces - tabs, and new lines, so that the output will appear as it is entered - into the text entry field. - - - + + Media Data + + To edit media data, switch to the Media View and select the + desired entry in the list of sources. Double-click on that + entry or click Edit on the toolbar to + invoke the following Media Properties + Editor dialog: + - - Data - - The Data tab displays Key/Value - pairs that may be associated with the source. These are similar - to the attributes used for other record types. The difference - from these Key/Value paris and the attributes is that the attributes - may have source references and notes, while the Key/Value - data may not. + - The central part shows the list of all Key/Value pairs, if any. - The buttons + and - - allow you to correspondingly add and remove pairs. To modify the - text of Key or Value, first select the desired entry (may be an - empty entry when new pair has just been added). Then click into - either Key or Value cell inside that entry and edit the text in place. - When you are done, click outside the cell to exit editing mode. - - - +
+ Media Properties Editor dialog + + + + + + + Shows Media Properties Editor dialog. + + + +
+ - - Gallery - - The Gallery tab displays information about - media objects associated with the given source and controls - allowing its modification. The central part shows the list of all - such media objects. For media object which are valid image files - previews of images are displayed. For other objects such as audio - files, movie files, etc., a generic &app; icon is displayed instead. - The buttons +, - Select, - Edit, and - allow - you to correspondingly add a new image, add a reference to an image already - stored in the database, modify, and remove a media object reference - to this source. - Note that the Edit and - - buttons become available only when - a media object is selected from the list. - - - - - - References - - The References tab displays information about - database records that refer to this source. If the source is not - referenced from any database record, the tab shows an empty list. - If the source is referenced from many records, the tab will list - all of them. The list can be ordered by any of its column headers: - Type, ID, or - Name. Double-clicking on the list entry - opens up an editor for a corresponding record allowing - to view or modify the record. - - Only primary objects can be shown in the - References tab: Person, Family, Event, Place, or Media - object. The secondary objects such as Names and Attributes, although - may refer the source, will only show up through their primary - objects they belong to. - - - - -
- - - - - Place Data - To edit place data, switch to the Places View and select the - desired entry in the list of places. Double-click on that entry or - click the Edit icon on the toolbar to invoke the - following Place Editor dialog: - - -
- Place Editor dialog - - - Shows Place Editor dialog. -
- - - The top of the window shows the Place Editor - title of the dialog. The main part of the window displays seven - notebook tabs containing different categories of available information. - You can bring any tab to the top for viewing or editing by clicking on - the appropriate tab heading. - The bottom part has - OK and Cancel buttons. - Clicking the OK button at any time will apply all the - changes made in all tabs and close the dialog window. Clicking the - Cancel button at any time will close the window without - applying any changes. - -Clicking OK will immediately -save changes to the database (write on disk). Unlike previous versions, -this version of &app; does not have a separate saving function, -all changes are immediate. - - - The tab labels reflect the presence of corresponding information: if the - tab contains any data, its label appears boldface; if the tab has no data - then its label appears regular (not bold). - - - The tabs provide the following information categories of - place data: - - - General - The - General tab allows editing of the most general - information about the place: the title which labels it in the database, - city, church parish, county, state, country, longitude, and latitude. - This information can be typed in the appropriate text entry fields. - - - - - - Other names - - The Other names tab displays information concerning - other names by which the place might be known and the controls - allowing their modification. The bottom part displays the list of all - other names of the place stored in the database. The top part shows - the details of the currently selected name in the list (if any). - The buttons +, - Edit, and - allow - you to correspondingly add, modify, and remove a name record - from the database. Note that the Edit and - - buttons become available only when - a name is selected from the list. - - - - - Note - - The Note tab displays any notes concerning - the place. To add a note or modify existing notes simply edit the - text in the text entry field. - - - The Format option allows you to set the - appearance of the note in the output (i.e. in reports and web pages). - Selecting - Flowed will replace all multiple spaces, tabs, - and single end-of-line characters with single space in the output. - The two consecutive new lines (i.e. an empty line) denote a new paragraph. - Selecting Preformatted will honor all multiple spaces - tabs, and new lines, so that the output will appear as it is entered - into the text entry field. - - - - - - Sources - - The Sources tab displays information about sources - relevant to this place and controls allowing its modification. - The central part displays the list of all such source references - stored in the database. The buttons +, - Edit, and - allow - you to correspondingly add, modify, and remove a source reference - to this place. Note that the Edit and - - buttons become available only when - a source reference is selected from the list. - - - - - Gallery - - The Gallery tab displays information about - media objects associated with the given place and the controls - allowing its modification. The central part shows the list of all - such media objects. For media objects which are valid image files - previews of images are displayed. For other objects such as audio - files, movie files, etc., a generic &app; icon is displayed instead. - The buttons +, - Select, Edit., - and - allow - you to correspondingly add a new image, add a reference to an image already - stored in the database, modify, and remove a media object reference - to this place. - Note that the Edit and - - buttons become available only when - a media object is selected from the list. - - - - - - Internet - - The Internet tab displays information about - Internet addresses relevant to the place and controls - allowing its modification. The bottom part displays the list of all - such Internet addresses stored in the database. The top part shows the - details of the currently selected addresses in the list (if any). - The buttons +, - Edit, and - - allow you to correspondingly add, modify, and remove an Internet address - record from the database. The button Go allows - you to open a web-page with the corresponding address with your default - browser. Note that the Edit, - -, and Go buttons - become available only when an address is selected from the list. - - - - - - References - - The References tab displays information about - database records (events or LDS ordinances) that refer to this place. If the place is not - referenced from any database record, the tab shows an empty list. - If the place is referenced from many records, the tab will list - all of them. This information cannot be modified from - the Place Editor dialog. Instead, the - corresponding database record (e.g. birth event) has to be brought - up and its place reference edited. - - - -
- - - - Media Data - To edit media data, switch to the Media View and select the - desired entry in the list of sources. Double-click on that entry or - click Edit on the toolbar to invoke the - following Media Properties Editor dialog: - - -
- Media Properties Editor dialog - - - Shows Media Properties Editor dialog. -
- - - The top of the window shows the dialog title. Below the title - is the preview of an object and the summary of its properties (ID, - path, and object type). The central part of the window displays four - notebook tabs containing different categories of available information. - You can bring any tab to the top for viewing or editing by clicking on - the appropriate tab heading. The bottom part has - OK and Cancel buttons. - Clicking the OK button at any time will apply all the - changes made in all tabs and close the dialog window. Clicking the - Cancel button at any time will close the window without - applying any changes. - -Clicking OK will immediately -save changes to the database (write on disk). Unlike previous versions, -this version of &app; does not have a separate saving function, -all changes are immediate. - - - The tab labels reflect the presence of corresponding information: if the - tab contains any data, its label appears boldface; if the tab has no data - then its label appears regular (not bold). - - + + The top of the window shows the dialog title. Below the title + is the preview of an object and the summary of its properties + (ID, path, and object type). The central part of the window + displays four notebook tabs containing different categories of + available information. You can bring any tab to the top for + viewing or editing by clicking on the appropriate tab + heading. The bottom part has OK and + Cancel buttons. Clicking the + OK button at any time will apply all + the changes made in all tabs and close the dialog + window. Clicking the Cancel button at + any time will close the window without applying any changes. + + + + Clicking OK will immediately save + changes to the database (write on disk). This version of + &app; does not have a separate saving function, all changes + are immediate. + + + + + The tab labels reflect the presence of corresponding + information: if the tab contains any data, its label appears + boldface; if the tab has no data then its label appears + regular (not bold). + + + The tabs provide the following information categories of media object data: - + + + + + General + + + + The General tab allows editing the + title which labels this object in the database. The + title can be typed in the appropriate text entry + field. The Date field allows + entering the date by typing, while the LED button beside + it will invoke a Date selection + dialog for setting the date graphically. + + + + &app; no longer has a concept of local media objects. + Every media object is referred to by its path. The + users are responsible for keeping track of the object + files. &app; will only reference and display the + contents, not manage the files themselves. + + + + + + + + + Attributes + + + + The Attributes tab displays + information about the attributes of the media object and + controls allowing its modification. The bottom part + displays the list of all such attributes stored in the + database. The top part shows the details of the + currently selected attribute in the list (if any). The + buttons +, + Edit, and + - allow you to correspondingly + add, modify, and remove an attribute record from the + database. Note that the Edit and + - buttons become available only + when an attribute is selected from the list. + + + + + + + + Notes + + + + The Notes tab displays information + about the notes concerning the media object. These could + be any notes which do not naturally fit into the + Parameter-Value pairs available to Attributes. To add a + note or modify existing notes simply edit the text in + the text entry field. + + + The Format option allows you to set + the appearance of the note in the output (i.e. in + reports and web pages). Selecting + Flowed will replace all multiple + spaces, tabs, and single end-of-line characters with + single space in the output. The two consecutive new + lines (i.e. an empty line) denote a new paragraph. + Selecting Preformatted will honor + all multiple spaces tabs, and new lines, so that the + output will appear as it is entered into the text entry + field. + + + + + + + + References + + + + The References tab displays + information about database records that refer to this + media object. If the object is not referenced from any + database record, the tab shows an empty list. If the + object is referenced from many records, the tab will + list all of them. The list can be ordered by any of its + column headers: Type, + ID, or + Name. Double-clicking on the list + entry opens up an editor for a corresponding record + allowing to view or modify the record. + + + + Only primary objects can be shown in the + References tab: Person, Family, + Event, Source, or Place. The secondary objects such + as Names and Attributes, although able to refer the + media object, will only show up through their primary + objects they belong to. + + + + + +
- - General - The - General tab allows editing the title which labels - this object in the database. The title can be typed in the appropriate - text entry field. The Date field allows entering - the date by typing, while the LED button beside it will invoke a - Date selection dialog for setting the date - graphically. - - &app; no longer has a concept of local media objects. - Every media object is referred to by its path. The users are responsible - for keeping track of the object files. &app; will only reference - and display the contents, not manage the files themselves. - - + - - Attributes - - The Attributes tab displays information about - the attributes of the media object and controls allowing its - modification. The bottom part displays the list of all such - attributes stored in the database. The top part shows the details - of the currently selected attribute in the list (if any). The buttons - +, Edit, - and - allow you to correspondingly add, - modify, and remove an attribute record from the database. - Note that the Edit and - - buttons become available only when - an attribute is selected from the list. - - + + Events + + Events are edited through the following Event + Editor dialog: + + + - - Notes - - The Notes tab displays information about the - notes concerning the media object. These could be any notes which do - not naturally fit into the Parameter-Value pairs available to - Attributes. To add a note or modify existing notes simply edit the - text in the text entry field. +
+ Event Editor dialog + + + + + + + Shows Event Editor dialog. + + + +
- The Format option allows you to set the - appearance of the note in the output (i.e. in reports and web pages). - Selecting - Flowed will replace all multiple spaces, tabs, - and single end-of-line characters with single space in the output. - The two consecutive new lines (i.e. an empty line) denote a new paragraph. - Selecting Preformatted will honor all multiple spaces - tabs, and new lines, so that the output will appear as it is entered - into the text entry field. - -
-
+ - - References - - The References tab displays information about - database records that refer to this media object. If the object is not - referenced from any database record, the tab shows an empty list. - If the object is referenced from many records, the tab will list - all of them. The list can be ordered by any of its column headers: - Type, ID, or - Name. Double-clicking on the list entry - opens up an editor for a corresponding record allowing - to view or modify the record. - - Only primary objects can be shown in the - References tab: Person, Family, Event, Source, or Place. - The secondary objects such as Names and Attributes, although - able to refer the media object, will only show up through their primary - objects they belong to. - - - + + The top of the window shows the dialog title including the + name of the persons whose event is being edited. The central + part of the window displays four notebook tabs containing + different categories of available information. You can bring + any tab to the top for viewing or editing by clicking on the + appropriate tab heading. The bottom part has + OK and Cancel + buttons. Clicking the OK button at any + time will apply all the changes made in all tabs and close the + dialog window. Clicking the Cancel + button at any time will close the window without applying any + changes. + + + + The tab labels reflect the presence of corresponding + information: if the tab contains any data, its label appears + boldface; if the tab has no data then its label appears + regular (not bold). + + + + The tabs provide the following information categories of + the event data: + + + + + General + + + + The General tab allows editing of + the most general information about the event: its type, + date, place, cause, and description. The type can be + selected from available types listed in the + Event type drop-down menu. The + rest of the information can be typed in the appropriate + text entry fields. Check the Private + record box to mark this event record as + private. This will give you a chance to omit this event + from being included in reports, if you choose so among + the report generation options. + + + + + + + + Sources + + + + The Sources tab displays + information about sources relevant to this event and + controls allowing its modification. The central part + displays the list of all such sources references stored + in the database. The buttons +, + Edit, and + - allow you to correspondingly + add, modify, and remove a source reference to this + event. Note that the Edit and + - buttons become available only + when a source reference is selected from the list. + + + + + + + + Note + + + + The Note tab displays any notes + concerning the event. To add a note or modify existing + notes simply edit the text in the text entry field. + + + The Format option allows you to set + the appearance of the note in the output (i.e. in + reports and web pages). Selecting + Flowed will replace all multiple + spaces, tabs, and single end-of-line characters with + single space in the output. The two consecutive new + lines (i.e. an empty line) denote a new paragraph. + Selecting Preformatted will honor + all multiple spaces tabs, and new lines, so that the + output will appear as it is entered into the text entry + field. + + + + + + + + Witnesses + + + + The Witnesses tab displays + information about witnesses relevant to this event and + controls allowing its modification. The central part + displays the list of all such witnesses stored in the + database. The buttons +, + Edit, and + - allow you to correspondingly + add, modify, and remove a witness reference to this + event, see . Note that the + Edit and - + buttons become available only when a witness reference + is selected from the list. + + + + +
- + - - - Events - Events are edited through the following Event - Editor dialog: + + Source Information + + When adding source references to events, places, etc., the + following dialog appears: + - -
- Event Editor dialog - - - Shows Event Editor dialog. -
- + - The top of the window shows the dialog title including the name - of the persons whose event is being edited. The central part of the - window displays four notebook tabs containing different categories of - available information. You can bring any tab to the top for viewing or - editing by clicking on the appropriate tab heading. The bottom part has - OK and Cancel buttons. - Clicking the OK button at any time will apply all the - changes made in all tabs and close the dialog window. Clicking the - Cancel button at any time will close the window without - applying any changes. - - - The tab labels reflect the presence of corresponding information: if the - tab contains any data, its label appears boldface; if the tab has no data - then its label appears regular (not bold). +
+ Source Information dialog + + + + + + + Shows Source Information dialog. + + + +
+ - - The tabs provide the following information categories of - the event data: + - - General - The - General tab allows editing of the most general - information about the event: its type, date, place, cause, and - description. The type can be selected from available types listed - in the Event type drop-down menu. The rest - of the information can be typed in the appropriate text entry fields. - Check the Private record box to mark this event - record as private. This will give you a chance to omit this event from - being included in reports, if you choose so among the report - generation options. - - + The top of the window shows the dialog title. The central part + displays the source information. The bottom part has + OK and Cancel + buttons. Clicking the OK button at any + time will apply all the changes made and close the dialog + window. Clicking the Cancel button at + any time will close the window without applying any changes. - - Sources - The - Sources tab displays information about sources - relevant to this event and controls allowing its modification. - The central part displays the list of all such sources references - stored in the database. The buttons +, - Edit, and - - allow you to correspondingly add, modify, and remove a source reference - to this event. Note that the Edit and - - buttons become available only when - a source reference is selected from the list. - - + + - - Note - - The Note tab displays any notes concerning - the event. To add a note or modify existing notes simply edit the - text in the text entry field. - + The source can be selected from available sources listed in + the Title drop-down menu. If the source + you are referencing is not present in the database yet, you + can enter it into the database. To do this, click the + New... button and enter source + information into the invoked Source + Editor dialog. You can also set the details + specific for this particular reference: confidence, + volume/file/page, date, text, and comments. Choose the + confidence level from the Confidence + drop-down menu. The rest of the details can be typed in the + appropriate text entry fields. - The Format option allows you to set the - appearance of the note in the output (i.e. in reports and web pages). - Selecting - Flowed will replace all multiple spaces, tabs, - and single end-of-line characters with single space in the output. - The two consecutive new lines (i.e. an empty line) denote a new paragraph. - Selecting Preformatted will honor all multiple spaces - tabs, and new lines, so that the output will appear as it is entered - into the text entry field. - - - + + + - - Witnesses - The - Witnesses tab displays information about witnesses - relevant to this event and controls allowing its modification. - The central part displays the list of all such witnesses - stored in the database. The buttons +, - Edit, and - - allow you to correspondingly add, modify, and remove a witness reference - to this event, see . Note that the Edit and - - buttons become available only when - a witness reference is selected from the list. - - + Information in this dialog is specific to the particular + reference. A single source can be referenced many times, + and all such references will have in common the overall + source information. This dialog lets you provide + reference-specific data, such as relevant quotes, comments, + confidence, page numbers, etc, to further specify and + document the reference. -
+ + +
- - - Source Information - When adding source references to events, places, etc., - the following dialog appears: + - -
- Source Information dialog - - - Shows Source Information dialog. -
- - - The top of the window shows the dialog title. The central part - displays the source information. The bottom part has - OK and Cancel buttons. - Clicking the OK button at any time will apply all the - changes made and close the dialog window. Clicking the - Cancel button at any time will close the window without - applying any changes. - - The source can be selected from available sources listed in the - Title drop-down menu. If the source you are - referencing is not present in the database yet, you can enter it into - the database. To do this, click the New... button - and enter source information into the invoked Source - Editor dialog. You can also set the details specific for - this particular reference: confidence, volume/file/page, date, text, - and comments. Choose the confidence - level from the Confidence drop-down menu. - The rest of the details can be typed in the appropriate text entry - fields. - - Information in this dialog is specific to the particular reference. - A single source can be referenced many times, and all such references will - have in common the overall source information. This dialog lets you provide - reference-specific data, such as relevant quotes, comments, confidence, - page numbers, etc, to further specify and document the reference. - -
- - - - Names - Names are edited through the following + + Names + Names are edited through the following Name Editor dialog: - -
- Name Editor dialog - - - Shows Name Editor dialog. -
- - - The top of the window shows the dialog title including the name - of the person whose name is being edited. The central part - of the window displays three notebook tabs containing different - categories of available information. You can bring any tab to the - top for viewing or editing by clicking on the appropriate tab heading. - The bottom part has OK and - Cancel buttons. Clicking the - OK button at any time will apply all the - changes made in all tabs and close the dialog window. Clicking the - Cancel button at any time will close the window without - applying any changes. - - - The tab labels reflect the presence of corresponding information: if the - tab contains any data, its label appears boldface; if the tab has no data - then its label appears regular (not bold). - - - The tabs provide the following information categories of - the name data: + - - General - The - General tab allows editing of general - information about the name: given name, family name, - patronymic (a form of father's name used in some languages, e.g. Russian), - family prefix, suffix, title, and type of the name. The information can be - typed in the appropriate text entry fields. The family name and the - type can be also selected from available choices listed in the - appropriate drop-down menus. - - Options allow you to adjust specific - grouping, sorting, and displaying properties of this name, as well - as to provide the date corresponding to the name. The - Grouping field provides an alternative - grouping node for a given name, overriding the default grouping - based on the family name. This may be necessary with similar - family names that need to be grouped together -- for example Russian - names Ivanov and Ivanova are considered the same, but difference - in gender is reflected in different spelling. To enable - typing into this field, check the Override - check button. The Sort as and - Display as determine the manner - in which the name appears in the People View and in the reports. - The Date can provide information on - the validity of this name -- use spans as necessary. - Check the Private record box to mark this name - record as private. This will give you a chance to omit this name from - being included in reports, if you choose so among the report - generation options. - - +
+ Name Editor dialog + + + + + + + Shows Name Editor dialog. + + + +
- - Sources - The - Sources tab displays information about sources - relevant to this name and controls allowing its modification. - The central part displays the list of all such sources' references - stored in the database. The buttons +, - Edit, and - - allow you to correspondingly add, modify, and remove a source reference - to this name. Note that the Edit and - - buttons become available only when - a source reference is selected from the list. - - + - - Note - - The Note tab displays any notes concerning - the name. To add a note or modify existing notes simply edit the - text in the text entry field. - + - The Format option allows you to set the - appearance of the note in the output (i.e. in reports and web pages). - Selecting - Flowed will replace all multiple spaces, tabs, - and single end-of-line characters with single space in the output. - The two consecutive new lines (i.e. an empty line) denote a new paragraph. - Selecting Preformatted will honor all multiple spaces - tabs, and new lines, so that the output will appear as it is entered - into the text entry field. - - - + The top of the window shows the dialog title including the + name of the person whose name is being edited. The central + part of the window displays three notebook tabs containing + different categories of available information. You can bring + any tab to the top for viewing or editing by clicking on the + appropriate tab heading. The bottom part has + OK and Cancel + buttons. Clicking the OK button at any + time will apply all the changes made in all tabs and close the + dialog window. Clicking the Cancel + button at any time will close the window without applying any + changes. -
- - - - Attributes - Attributes are edited through the following + + + + + The tab labels reflect the presence of corresponding + information: if the tab contains any data, its label appears + boldface; if the tab has no data then its label appears + regular (not bold). + + + + + + The tabs provide the following information categories of the + name data: + + + + + + General + + + + + The General tab allows editing of + general information about the name: given name, family + name, patronymic (a form of father's name used in some + languages, e.g. Russian), family prefix, suffix, title, + and type of the name. The information can be typed in + the appropriate text entry fields. The family name and + the type can be also selected from available choices + listed in the appropriate drop-down menus. + Options allow you to adjust + specific grouping, sorting, and displaying properties of + this name, as well as to provide the date corresponding + to the name. The Grouping field + provides an alternative grouping node for a given name, + overriding the default grouping based on the family + name. This may be necessary with similar family names + that need to be grouped together -- for example Russian + names Ivanov and Ivanova are considered the same, but + difference in gender is reflected in different + spelling. To enable typing into this field, check the + Override check button. The + Sort as and Display + as determine the manner in which the name + appears in the People View and in the reports. The + Date can provide information on the + validity of this name -- use spans as necessary. Check + the Private record box to mark this + name record as private. This will give you a chance to + omit this name from being included in reports, if you + choose so among the report generation options. + + + + + + + + + Sources + + + + + The Sources tab displays + information about sources relevant to this name and + controls allowing its modification. The central part + displays the list of all such sources' references stored + in the database. The buttons +, + Edit, and + - allow you to correspondingly + add, modify, and remove a source reference to this + name. Note that the Edit and + - buttons become available only + when a source reference is selected from the list. + + + + + + + + + Note + + + + + The Note tab displays any notes + concerning the name. To add a note or modify existing + notes simply edit the text in the text entry field. + + + + + The Format option allows you to set + the appearance of the note in the output (i.e. in + reports and web pages). Selecting + Flowed will replace all multiple + spaces, tabs, and single end-of-line characters with + single space in the output. The two consecutive new + lines (i.e. an empty line) denote a new paragraph. + Selecting Preformatted will honor + all multiple spaces tabs, and new lines, so that the + output will appear as it is entered into the text entry + field. + + + + + + + + + + + Attributes + Attributes are edited through the following Attribute Editor dialog: - -
- Attribute Editor dialog - - - Shows Attribute Editor dialog. -
- + - The top of the window shows the dialog title including the name - of the person whose attribute is being edited. The central part - of the window displays three notebook tabs containing different - categories of available information. You can bring any tab to the - top for viewing or editing by clicking on the appropriate tab heading. - The bottom part has OK and - Cancel buttons. Clicking the - OK button at any time will apply all the - changes made in all tabs and close the dialog window. Clicking the - Cancel button at any time will close the window without - applying any changes. - - - The tab labels reflect the presence of corresponding information: if the - tab contains any data, its label appears boldface; if the tab has no data - then its label appears regular (not bold). - - The tabs provide the following information categories of +
+ Attribute Editor dialog + + + + + + + Shows Attribute Editor dialog. + + + +
+ + + + + + The top of the window shows the dialog title including the + name of the person whose attribute is being edited. The + central part of the window displays three notebook tabs + containing different categories of available information. You + can bring any tab to the top for viewing or editing by + clicking on the appropriate tab heading. The bottom part has + OK and Cancel + buttons. Clicking the OK button at any + time will apply all the changes made in all tabs and close the + dialog window. Clicking the Cancel + button at any time will close the window without applying any + changes. + + + + + + The tab labels reflect the presence of corresponding + information: if the tab contains any data, its label appears + boldface; if the tab has no data then its label appears + regular (not bold). + + + + The tabs provide the following information categories of the attribute data: + + + + General + + + - - General - The - General tab allows editing of the most general - information about the attribute: name of the attribute and its value. - The information can be typed in the appropriate text entry fields. - The attribute name can also be selected from available choices (if any) - listed in the Attribute drop-down menu. - Check the Private record box to mark this - attribute record as private. This will give you a chance to omit - this attribute from being included in the reports, if you choose - so among the report generation options. - - + The General tab allows editing of + the most general information about the attribute: name + of the attribute and its value. The information can be + typed in the appropriate text entry fields. The + attribute name can also be selected from available + choices (if any) listed in the Attribute + drop-down menu. Check the Private + record box to mark this attribute record as + private. This will give you a chance to omit this + attribute from being included in the reports, if you + choose so among the report generation options. - - Sources - The - Sources tab displays information about sources - relevant to this attribute and controls allowing its modification. - The central part displays the list of all such sources references - stored in the database. The buttons +, - Edit, and - - allow you to correspondingly add, modify, and remove a source reference - to this attribute. Note that the Edit and - - buttons become available only when - a source reference is selected from the list. - - + + + + + + + + Sources + + + + + The Sources tab displays + information about sources relevant to this attribute and + controls allowing its modification. The central part + displays the list of all such sources references stored + in the database. The buttons +, + Edit, and + - allow you to correspondingly + add, modify, and remove a source reference to this + attribute. Note that the Edit and + - buttons become available only + when a source reference is selected from the list. + + + + + + + + + Note + + + + + The Note tab displays any notes + concerning the attribute. To add a note or modify + existing notes simply edit the text in the text entry + field. + + + + + The Format option allows you to set + the appearance of the note in the output (i.e. in + reports and web pages). Selecting + Flowed will replace all multiple + spaces, tabs, and single end-of-line characters with + single space in the output. The two consecutive new + lines (i.e. an empty line) denote a new paragraph. + Selecting Preformatted will honor + all multiple spaces tabs, and new lines, so that the + output will appear as it is entered into the text entry + field. + + + + + +
+ + + + + Addresses + Addresses are edited through the following + Address Editor dialog: + + + + +
+ Address Editor dialog + + + + + + + Shows Address Editor dialog. + + + +
+ + + + + + The top of the window shows the dialog title including the + name of the person whose address is being edited. The central + part of the window displays three notebook tabs containing + different categories of available information. You can bring + any tab to the top for viewing or editing by clicking on the + appropriate tab heading. The bottom part has + OK and Cancel + buttons. Clicking the OK button at any + time will apply all the changes made in all tabs and close the + dialog window. Clicking the Cancel + button at any time will close the window without applying any + changes. + + + + + + The tab labels reflect the presence of corresponding + information: if the tab contains any data, its label appears + boldface; if the tab has no data then its label appears + regular (not bold). + + + + + + The tabs provide the following information categories of the + address data: + + + + + + General + + + + + The General tab allows editing of + the most general information about the address: date, + street address, city or county, state or province, + country, the postal code, and the phone number. The + information can be typed in the appropriate text entry + fields. Check the Private record + box to mark this address record as private. This will + give you a chance to omit this address from being + included in reports, if you choose so among the report + generation options. + + + + + + + + + Sources + + + + + The Sources tab displays + information about sources relevant to this address and + controls allowing its modification. The central part + displays the list of all such sources references stored + in the database. The buttons +, + Edit, and + - allow you to correspondingly + add, modify, and remove a source reference to this + address. Note that the Edit and + - buttons become available only + when a source reference is selected from the list. + + + + + + + + + Note + + + + + The Note tab displays any notes + concerning the address. To add a note or modify existing + notes simply edit the text in the text entry field. + + + + + The Format option allows you to set + the appearance of the note in the output (i.e. in + reports and web pages). Selecting + Flowed will replace all multiple + spaces, tabs, and single end-of-line characters with + single space in the output. The two consecutive new + lines (i.e. an empty line) denote a new paragraph. + Selecting Preformatted will honor + all multiple spaces tabs, and new lines, so that the + output will appear as it is entered into the text entry + field. + + + + + +
+ + + + + Witnesses + + Witnesses are edited through the following Witness + Editor dialog: + + + + +
+ Witness Editor dialog + + + + + + + Shows Witness Editor dialog. + + + +
+ + + + + + The top of the window shows the dialog title. The central part + of the window displays information about the witness. The + bottom part has OK and + Cancel buttons. Clicking the + OK button at any time will apply all + the changes made and close the dialog window. Clicking the + Cancel button at any time will close + the window without applying any changes. + + + + + The witness name can be entered in two ways, depending upon + whether the witness is a person already stored in the database + or not (unrelated person). + + + + + + If the person you would like to add as a wittness is in fact + a member of the database, it is better to use the first + method below. + + + + + + Person from the database + + + + If the person's data are stored in a database, check + Person is in the database box. Then + click the Select button to invoke + Select Person dialog. Choose the + person from that dialog and click the + OK button. The + Person text field will display the + name of the person you selected. + + + + + + Even though the person's name is displayed in the + Person field, it is not available + for direct editing. + + + + + + + + + Unrelated person + + + + If the person is not in the database, make sure that + Person is in the database box is + unchecked. Then enter the name or any description of a + person into the Person text entry + field. This information is stored as entered, and this + is the only place it is stored. In other words, there + is no reference to that person in the entire database + except for this witness reference. If the person is in + fact a member of the database, it is advised to use the + former method. + + + + + + + + The Comment text area allows you to enter + any comments concerning the witness. To add a comment or to + modify existing comments simply edit the text in the text + area. + + +
+ + + + Merging records + + + Sometime several records in the database turn out to be + describing the same object: same person, same place, or same + source. It could happen either when the data is entered twice + by mistake, or when new information reveals that the two + entries refer to the same person. It can also happen after + importing GEDCOM obtained from a relative, whose database + overlaps with your existing data. + + + + + Whenever you detect duplicate records, merging them a useful + way of correcting the situation. + + + + + + To make a merge, exactly two records have to be selected in + the appropriate view (People View, Sources View, or Places + View). This is accomplished by selecting one entry and then + selecting another person while holding down + Ctrl key. + + + + + Merge People + + + There are two ways of merging personal records: + Compare and Merge and Fast + Merge, both available from the + Edit menu. - - Note - - The Note tab displays any notes concerning - the attribute. To add a note or modify existing notes simply edit the - text in the text entry field. + + - The Format option allows you to set the - appearance of the note in the output (i.e. in reports and web pages). - Selecting - Flowed will replace all multiple spaces, tabs, - and single end-of-line characters with single space in the output. - The two consecutive new lines (i.e. an empty line) denote a new paragraph. - Selecting Preformatted will honor all multiple spaces - tabs, and new lines, so that the output will appear as it is entered - into the text entry field. - - - - - - - - Addresses - Addresses are edited through the following - Address Editor dialog: + Merging people does not discard any information with + either method. The decisions you make during the merge + only affect which data will become primary and which will + become secondary for the resulting merged record. - -
- Address Editor dialog - - - Shows Address Editor dialog. -
- - - The top of the window shows the dialog title including the name - of the person whose address is being edited. The central part - of the window displays three notebook tabs containing different - categories of available information. You can bring any tab to the - top for viewing or editing by clicking on the appropriate tab heading. - The bottom part has OK and - Cancel buttons. Clicking the - OK button at any time will apply all the - changes made in all tabs and close the dialog window. Clicking the - Cancel button at any time will close the window without - applying any changes. - - - The tab labels reflect the presence of corresponding information: if the - tab contains any data, its label appears boldface; if the tab has no data - then its label appears regular (not bold). - - The tabs provide the following information categories of - the address data: +
+ + + + + Compare and Merge + + + - - General - The - General tab allows editing of the most general - information about the address: date, street address, city or county, - state or province, country, the postal code, and the phone number. - The information can - be typed in the appropriate text entry fields. - Check the Private record box to mark this address - record as private. This will give you a chance to omit this address - from being included in reports, if you choose so among the report - generation options. - - + When exactly two people are selected, choose + EditCompare + and Merge... to invoke + Compare People dialog. - - Sources - The - Sources tab displays information about sources - relevant to this address and controls allowing its modification. - The central part displays the list of all such sources references - stored in the database. The buttons +, - Edit, and - - allow you to correspondingly add, modify, and remove a source reference - to this address. Note that the Edit and - - buttons become available only when - a source reference is selected from the list. - - + - - Note - - The Note tab displays any notes concerning - the address. To add a note or modify existing notes simply edit the - text in the text entry field. - + - The Format option allows you to set the - appearance of the note in the output (i.e. in reports and web pages). - Selecting - Flowed will replace all multiple spaces, tabs, - and single end-of-line characters with single space in the output. - The two consecutive new lines (i.e. an empty line) denote a new paragraph. - Selecting Preformatted will honor all multiple spaces - tabs, and new lines, so that the output will appear as it is entered - into the text entry field. - - - +
+ Compare People dialog + + + + + + + Shows Compare People dialog. + + + +
+ -
- - - - Witnesses - Witnesses are edited through the following - Witness Editor dialog: + - -
- Witness Editor dialog - - - Shows Witness Editor dialog. -
- - - The top of the window shows the dialog title. The central part - of the window displays information about the witness. The bottom part - has OK and Cancel buttons. - Clicking the OK button at any time will apply all the - changes made and close the dialog window. Clicking the - Cancel button at any time will close the window - without applying any changes. - - The witness name can be entered in two ways, depending upon - whether the witness is a person already stored in the database or - not (unrelated person). + The dialog allows you to make a decision on whether or + not the selected records should be merged. If you + decide that the records should not be merged, despite + similar names, you may click + Cancel to close the dialog + without making any changes. If you decide to proceed + with merging, select the appropriate + Select radio button to specify + the record to be used as the source of primary data, + then click Merge and close. - If the person you would like to add as a wittness is in fact - a member of the database, it is better to use the first method below. - - - - Person from the database - - If the person's data are stored in a database, check Person - is in the database box. Then click the - Select button to invoke Select - Person dialog. Choose the person from that dialog and - click the OK button. The Person - text field will display the name of the person you selected. - - - Even though the person's name is displayed in the - Person field, it is not available for direct - editing. - - - - - Unrelated person - - If the person is not in the database, make sure that - Person is in the database box is unchecked. - Then enter the name or any description of a person into the - Person text entry field. This information - is stored as entered, and this is the only place it is stored. - In other words, there is no reference to that person in the entire - database except for this witness reference. If the person is in fact - a member of the database, it is advised to use the former method. - - - - - The Comment text area allows you to enter - any comments concerning the witness. To add a comment or to modify - existing comments simply edit the text in the text area. - +
+ -
- - - Merging records + The data from the other record will be kept as + alternate data. Specifically, all names from the other + record will become alternate names of the merged + record. Similarly, parents, spouses, and children of + the other record will become alternate parents, + spouses, and children of the merged record, and so on. - Sometime several records in the database turn out to be - describing the same object: same person, same place, or same source. - It could happen either when the data is entered twice by mistake, - or when new information reveals that the two entries refer to the same - person. It can also happen after importing GEDCOM obtained from a - relative, whose database overlaps with your existing data. - - Whenever you detect duplicate records, merging them - a useful way of correcting the situation. - - To make a merge, exactly two records have to be selected - in the appropriate view (People View, Sources View, or Places View). - This is accomplished by selecting one entry and then - selecting another person while holding down Ctrl key. - + + + + + + + + Fast Merge + + + - Merge People - There are two ways of merging personal records: - Compare and Merge and - Fast Merge, both available from the - Edit menu. - - - - Merging people does not discard any information with either method. - The decisions you make during the merge only affect which data will - become primary and which will become secondary for the resulting - merged record. - + When exactly two people are selected, choose + EditFast + Merge to invoke + Merge People dialog. + + +
+ Merge People dialog + + + + + + + Shows Merge People dialog. + + + +
+ + - - Compare and Merge - - When exactly two people are selected, choose - EditCompare and - Merge... to invoke Compare - People dialog. - - -
- Compare People dialog - - - Shows Compare People dialog. -
- + The dialog allows you to quickly merge two records, + specifying the record to be used as the source of + primary data. The data from the other record will be + kept as alternate data. Specifically, all names from + the other record will become alternate names of the + merged record. Similarly, parents, spouses, and + children of the other record will become alternate + parents, spouses, and children of the merged record, + and so on. - The dialog allows you to make a decision on whether or not - the selected records should be merged. If you decide that the records - should not be merged, despite similar names, you may click - Cancel to close the dialog without making - any changes. If you decide to proceed with merging, select the - appropriate Select radio button to specify - the record to be used as the source of primary data, - then click Merge and close. - - The data from the other record will be kept as alternate - data. Specifically, all names from the other record will become - alternate names of the merged record. Similarly, parents, spouses, - and children of the other record will become alternate parents, - spouses, and children of the merged record, and so on. -
-
+
+ + - - Fast Merge - - When exactly two people are selected, choose - EditFast - Merge to invoke Merge - People dialog. - - -
- Merge People dialog - - - Shows Merge People dialog. -
- - - The dialog allows you to quickly merge two records, specifying - the record to be used as the source of primary data. - The data from the other record will be kept as alternate - data. Specifically, all names from the other record will become - alternate names of the merged record. Similarly, parents, spouses, - and children of the other record will become alternate parents, - spouses, and children of the merged record, and so on. - - - If you are not certain whether or not you need - to merge the records, or which record to specify as the source - of primary data, use Compare and Merge method - described above.. - - -
-
+ If you are not certain whether or not you need to + merge the records, or which record to specify as the + source of primary data, use Compare and + Merge method described above.. + +
+
+
+
+
- - - Merge Sources - When exactly two sources are selected, choose - EditCompare and - Merge... to invoke Merge - Sources dialog. - - -
- Merge Sources dialog - - - Shows Merge Sources dialog. -
- + - The dialog allows you to make a decision on whether or not - the selected records should be merged. If you decide that the records - should not be merged, despite similar titles, you may click - Cancel to close the dialog without making - any changes. If you decide to proceed with merging, choose the - appropriate radio button to specify the title, author, abbreviated - title, publication information, and the ID to be used for the - merged record, then click OK. + + Merge Sources + + + When exactly two sources are selected, choose + + Edit + Compare and Merge... + to invoke Merge + Sources dialog. + + + + + +
+ Merge Sources dialog + + + + + + + Shows Merge Sources dialog. + + + +
+ + + + + + The dialog allows you to make a decision on whether or not + the selected records should be merged. If you decide that + the records should not be merged, despite similar titles, + you may click Cancel to close the + dialog without making any changes. If you decide to proceed + with merging, choose the appropriate radio button to specify + the title, author, abbreviated title, publication + information, and the ID to be used for the merged record, + then click OK. + +
+ + Merge Places + - - Merge Places + When exactly two places are selected, choose + + Edit + Compare and Merge... + - When exactly two places are selected, choose - EditCompare and - Merge... to invoke Select - title dialog. - - -
- Merge Places dialog - - - Shows Select title dialog. -
- + to invoke Select title dialog. +
- The dialog allows you to make a decision on whether or not - the selected records should be merged. If you decide that the records - should not be merged, despite similar titles, you may click - Cancel to close the dialog without making - any changes. If you decide to proceed with merging, choose the - appropriate radio button to specify the title of the merged record, - or specify Other and enter new text, - then click OK. + + +
+ Merge Places dialog + + + + + + + Shows Select title dialog. + + + +
+ + + + + + The dialog allows you to make a decision on whether or not + the selected records should be merged. If you decide that + the records should not be merged, despite similar titles, + you may click Cancel to close the + dialog without making any changes. If you decide to proceed + with merging, choose the appropriate radio button to specify + the title of the merged record, or specify + Other and enter new text, then click + OK. + +
+
+ - + - + + Navigation + + + As long as any database is open, &app; is focused on a single + person usually referred to as an Active person. This allows + you to view or modify the data concerning this person, his or + her immediate family, etc. Navigating in the database (i.e. + moving from person to person) is in fact nothing else but + changing the Active person. This section describes many + alternative ways to navigate through the database using both + the complex and the convenient interfaces &app; provides. All + these ways eventually accomplish the same thing, but some are + more convenient than others, depending what you are doing in + &app; at the moment. + + + - - - Navigation - As long as any database is open, &app; is focused on a - single person usually referred to as an Active person. This - allows you to view or modify the data concerning this person, - his or her immediate family, etc. Navigating in the database (i.e. - moving from person to person) is in fact nothing else but changing - the Active person. This section describes many alternative ways - to navigate through the database using both the complex and the - convenient interfaces &app; provides. All these ways eventually - accomplish the same thing, but some are more convenient than others, - depending what you are doing in &app; at the moment. - - - - Using the People View - The most intuitive way to select an active person is - to use the People View (see ). - When in the People View, just select the - name of the desired person from the list by clicking that list - entry. The person you have selected becomes active. The statusbar - updates to reflect the change of the active person. - + + Using the People View + - - - Using the Family View - When in the Family View (see ), - you can easily navigate between the members of the displayed family - as follows: + The most intuitive way to select an active person is to use + the People View (see ). When in + the People View, just select the name of the desired person + from the list by clicking that list entry. The person you have + selected becomes active. The statusbar updates to reflect the + change of the active person. - - To make the currently selected spouse the active person, - click the double-arrow button to the right of the active person box. - Alternatively, right-click into the spouse box and select - Make the selected spouse an active person item - from the context menu. - - - To make the currently selected parents the active family - (thereby making father the active person and mother the selected - spouse), click the right-arrow button to the right of the active person's - parents box. Alternatively, right-click into the active person's parents - box and select - Make the selected parents the active family item - from the context menu. - - - To make the currently selected spouse's parents - the active family (thereby making father the active person and mother - the selected spouse), click the right-arrow button to the right of the - spouse's parents box. Alternatively, right-click into the spouse's parents - box and select - Make the selected parents the active family item - from the context menu. - - To make the currently selected child the active person, - click the left-arrow button to the right of the children box. - Alternatively, right-click into the children box and select - Make the selected child an active person item - from the context menu. - + + - + + + Using the Family View + - In addition to this, &app; provides an extensive set of keyboard - navigation options. The detailed reference to the keybindings - is found in the . + When in the Family View (see ), + you can easily navigate between the members of the displayed + family as follows: - + + + + - - - Using the Pedigree View - The Pedigree View (see ) also - allows you to move along the family tree. - The benefit of this method is that you can see more than one - generation of the family tree. Also, you can jump directly from a - great-grandson to a great-grandfather without going through the - intermediate generations. + To make the currently selected spouse the active person, + click the double-arrow button to the right of the active + person box. Alternatively, right-click into the spouse + box and select Make the selected spouse an + active person item from the context menu. - Note that after changing the active person in the Pedigree - View, the display is re-adjusted to show four generations, starting - from the newly selected Active person. When in the Pedigree View, you - can easily navigate between the members of the displayed family tree - as follows: + + + + - - To make any displayed person the active person, - double-click the line that connects to the left side of the - corresponding box. + To make the currently selected parents the active family + (thereby making father the active person and mother the + selected spouse), click the right-arrow button to the + right of the active person's parents box. Alternatively, + right-click into the active person's parents box and + select Make the selected parents the active + family item from the context menu. - To make a child of the currently active person (if any) - the active person, click the left arrow button to the left of the - corresponding box. If there is more than one child, the button expands - to the menu listing the children to choose from. - - To move the whole family tree one generation back, - click on the corresponding right arrow button on the right-hand side - of the display area. Clicking the upper button will move the tree - along the paternal line. Clicking the lower button will move the - tree along the maternal line. - - Clicking either of these buttons is completely equivalent to - double-clicking the lines connecting to the left of the corresponding - boxes for father and mother. - - - You can also quickly access any of the spouses, siblings, - children, or parents of any displayed person. To do this, move the - mouse over the desired person's box and right-click to invoke - a context menu. The appropriate menu items will contain submenus - listing all spouses, siblings, children, and parents of the - corresponding person. - - - Advantages of using right-click menus - - Direct access to spouse and siblings - Complete lists of all member of all categories, - not only the preferred members. - - - - - - - - - Setting the Home Person - One and only one person in the database can be selected as the - Home person. Once the Home person is selected, moving to that - person becomes a matter of a single click, regardless of which view - you are using at the moment. - - To set the Home person, first navigate to that person using - any method you like. Then choose - Edit - Set Home person. Once this is - done, you can move to the Home person from anywhere in the - database by simply clicking the Home icon - on the toolbar. You can also choose Go - Home from the menu or select - Home item from any context menu available on the - right click. - - - - - - - - Using history-based tools - &app; also features a powerful set of history-based navigation - tools. These tools are similar to those commonly used in web browsers. - They include Back and Forward - items available from the Go - menu, context menus (available in People, Family, and Pedigree views), - and the toolbar buttons. They also include the list of the recent - selections available under the - Go menu that allows you - to jump directly to any of the recent selections. - Finally, right-clicking on the Back - and Forward toolbar buttons invokes the - popup menu with corresponding portion of the history. Select any item - from the menu to jump directly to it. - - - - - - Bookmarking People - Similar to setting the Home person, you can bookmark other - people from the database to simplify further navigation. To bookmark - a person, first navigate to that person, then choose - Bookmarks - Add bookmark. To move to that - person from anywhere in the database, choose - Bookmarks - Go to bookmark - Person's name - . - - You can manage your bookmarks by choosing - Bookmarks - Edit bookmarks.... This opens - the following Edit Bookmarks dialog with the - list of bookmarks and the controls to modify this list. - - -
- Edit Bookmarks dialog - - - Shows Edit Bookmarks dialog. -
- - -
- - - - Finding records - - To find a record in a database, first switch to the appripriate - View that provides the list of the desired records: People, Sources, - Places, or Media. Then start typing the name of a person or the title - of a Source, Place, or Media object that you are looking for, - respectively. - You may also press Ctrl+F to turn on the search - mode, but simply staring to type is also enough. - - -
- Type-ahead find - - - Shows type-ahead find. -
- - - As you type, the first record in the list that is compatible - with your input will be selected. - - - Finding People - For more complex people searches you may want to use filters. - Enable filter controls by choosing View - Filter , select the desired - filter, and click Apply. - For details, see - -
- -
- - - - Generating Reports - Reports are the most common form of the output produced by - genealogical research. The majority of genealogical software puts a lot - of emphasis on developing nice looking reports. &app; is no - exception in this regard, offering a choice of a variety of reports. - &app; can generate reports in a multitude of open formats, both - text based and graphical. &app; can also produce screen based reports - that are convenient for viewing a summary of your database. - Finally, &app; can generate a web site suitable for immediate - posting on the Internet. All of these are almost infinitely flexible. - If you wish to modify or extend the default format of &app; report, - you can design and choose the style for each of your reports. - - All reports can be accessed through the menu by choosing - Reports - Report Type - Particular - Report. Alternatively, - you can browse the complete selection of available reports along - with their brief descriptions in a Report - Selection dialog invoked by clicking the - Reports icon on the toolbar. - - - - - - Books - Currently, the only available report under this category - is the Book Report. - - The Book Report creates a single document (i.e. a Book) - containing a collection of graphical and textual reports. - Consequently, this allows for a very rich set of documents - that &app; can produce. - - - When Book Report is selected, the following book configuration - dialog appears: - - -
- Book Report dialog - - - Shows Book Report dialog. -
- - - The Book name text entry field is used to - save the book (a set of configured selections) for future use. - The top pane lists the items available for inclusion in the - book. The bottom pane lists the currently selected items in - the order they will appear in the book. - - The horizontal set of buttons by the Book - name field operates on the whole book. Click - the Clear button to clear all items from - the current book. Click the Save button to - save the current book (under the name typed in - the Book name text entry field) for future - use. - - - Saving the book also saves the configuration for each item. - - - Click the Open button to load - the book from the list of previously saved books. Finally, click the - Edit books button to invoke the editable list of - available books. - - The vertical set of buttons to the right of the bottom pane - operates on the - selected book item. Click the Add button to - add selected item from the available list to the current book. Click - the Remove button to remove an item from the - current book. Use Up and - Down to change the items order in the current - book. Click the Setup button to configure the - options of the selected item of the current book. - - - The configuration dialogs invoked by Setup - are item-specific. If you choose not to configure the item, sane - defaults will be used for all needed options. The common option for - almost all book items is the center person: the person on whom the - item is centered. Thanks to this option, you can create a book with - items centered on different people (e.g. your mom's and dad's - ancestors as separate chapters). By default, the center person is - set to the active person. - - Almost all items available for inclusion in the book are textual - or graphical reports, and are therefore available in the form of standalone - reports. The exception is the following items which are only available as - book items: - - - - Title Page - This item produces a customized Title page. You can - configure the text of title, subtitle, and the footer of the page. - An image can be optionally placed between the subtitle and the footer. - Because of its configurability, this item can be used to create - title pages for the whole book, its chapter, or even a single item. - + + - Custom Text - This item produces a page with three paragraphs, each - containing custom text. The appearance of the text can be adjusted by - using custom styles. This item was meant to be used for epigraphs, - dedications, explanations, notes, and so forth. - - + To make the currently selected spouse's parents the active + family (thereby making father the active person and mother + the selected spouse), click the right-arrow button to the + right of the spouse's parents box. Alternatively, + right-click into the spouse's parents box and select + Make the selected parents the active + family item from the context menu. - + + + + -
+ To make the currently selected child the active person, + click the left-arrow button to the right of the children + box. Alternatively, right-click into the children box and + select Make the selected child an active + person item from the context menu. - - - Code Generators - This category contains reports that produce code intended - to be run through the computer, rather than the usual formatted + + + + + + In addition to this, &app; provides an extensive set of + keyboard navigation options. The detailed reference to the key + bindings is found in the . + + + + + + + + Using the Pedigree View + + + The Pedigree View (see ) also + allows you to move along the family tree. The benefit of this + method is that you can see more than one generation of the + family tree. Also, you can jump directly from a great-grandson + to a great-grandfather without going through the intermediate + generations. + + + + + Note that after changing the active person in the Pedigree + View, the display is re-adjusted to show four generations, + starting from the newly selected Active person. When in the + Pedigree View, you can easily navigate between the members of + the displayed family tree as follows: + + + + + + + To make any displayed person the active person, + double-click the line that connects to the left side of + the corresponding box. + + + + + + + To make a child of the currently active person (if any) + the active person, click the left arrow button to the left + of the corresponding box. If there is more than one child, + the button expands to the menu listing the children to + choose from. + + + + + + + To move the whole family tree one generation back, click + on the corresponding right arrow button on the right-hand + side of the display area. Clicking the upper button will + move the tree along the paternal line. Clicking the lower + button will move the tree along the maternal line. + + + + + Clicking either of these buttons is completely equivalent + to double-clicking the lines connecting to the left of the + corresponding boxes for father and mother. + + + + + + + You can also quickly access any of the spouses, siblings, + children, or parents of any displayed person. To do this, move + the mouse over the desired person's box and right-click to + invoke a context menu. The appropriate menu items will contain + submenus listing all spouses, siblings, children, and parents + of the corresponding person. + + + + Advantages of using right-click menus + + + Direct access to spouse and siblings + + + + + Complete lists of all member of all categories, not only + the preferred members. + + + + + + + + + + + Setting the Home Person + + + One and only one person in the database can be selected as the + Home person. Once the Home person is selected, moving to that + person becomes a matter of a single click, regardless of which + view you are using at the moment. + + + + + To set the Home person, first navigate to that person using + any method you like. Then choose + + + Edit + Set Home person + . + + Once this is done, you can move to the Home person from + anywhere in the database by simply clicking the + Home icon on the toolbar. You can also + choose + + + Go + Home + + + from the menu or select Home item from + any context menu available on the right click. + + + + + + + + Using history-based tools + + + &app; also features a powerful set of history-based navigation + tools. These tools are similar to those commonly used in web + browsers. They include Back and + Forward items available from the + + + Go + + + menu, context menus (available in People, Family, and Pedigree + views), and the toolbar buttons. They also include the list of + the recent selections available under the + + + Go + + + menu that allows you to jump directly to any of the recent + selections. Finally, right-clicking on the + Back and Forward + toolbar buttons invokes the popup menu with corresponding + portion of the history. Select any item from the menu to jump + directly to it. + + + + + + + + Bookmarking People + + + Similar to setting the Home person, you can bookmark other + people from the database to simplify further navigation. To bookmark + a person, first navigate to that person, then choose + + + Bookmarks + Add bookmark + . + + To move to that person from anywhere in the database, choose + + + Bookmarks + Go to bookmark + + Person's name + + . + + + + + You can manage your bookmarks by choosing + + + Bookmarks + Edit bookmarks... + . + + This opens the following Edit Bookmarks + dialog with the list of bookmarks and the controls to modify + this list. + + + + + +
+ Edit Bookmarks dialog + + + + + + + Shows Edit Bookmarks dialog. + + + +
+ + +
+ + + + + Finding records + + + To find a record in a database, first switch to the + appropriate View that provides the list of the desired + records: People, Sources, Places, or Media. Then start typing + the name of a person or the title of a Source, Place, or Media + object that you are looking for, respectively. You may also + press Ctrl+F to turn on the search mode, but + simply staring to type is also enough. + + + + + +
+ Type-ahead find + + + + + + + Shows type-ahead find. + + + +
+ + + + + As you type, the first record in the list that is compatible + with your input will be selected. + + + Finding People + + + For more complex people searches you may want to use + filters. Enable filter controls by choosing + + + View + Filter + , + + select the desired filter, and click Apply. + For details, see + + + +
+
+ + + + + Generating Reports + + + Reports are the most common form of the output produced by + genealogical research. The majority of genealogical software + puts a lot of emphasis on developing nice looking + reports. &app; is no exception in this regard, offering a + choice of a variety of reports. &app; can generate reports in + a multitude of open formats, both text based and + graphical. &app; can also produce screen based reports that + are convenient for viewing a summary of your database. + Finally, &app; can generate a web site suitable for immediate + posting on the Internet. All of these are almost infinitely + flexible. If you wish to modify or extend the default format + of &app; report, you can design and choose the style for each + of your reports. + + + + + All reports can be accessed through the menu by choosing + + + Reports + + Report Type + + + Particular Report + + . + + Alternatively, you can browse the complete selection of + available reports along with their brief descriptions in a + Report Selection dialog invoked by + clicking the Reports icon on the + toolbar. + + + + + + + Books + + + Currently, the only available report under this category is + the Book Report. + + + + + The Book Report creates a single document (i.e. a Book) + containing a collection of graphical and textual reports. + Consequently, this allows for a very rich set of documents + that &app; can produce. + + + + + When Book Report is selected, the following book configuration + dialog appears: + + + + + +
+ Book Report dialog + + + + + + + Shows Book Report dialog. + + + +
+ + + + + + The Book name text entry field is used to + save the book (a set of configured selections) for future use. + The top pane lists the items available for inclusion in the + book. The bottom pane lists the currently selected items in + the order they will appear in the book. + + + + + The horizontal set of buttons by the Book + name field operates on the whole book. Click the + Clear button to clear all items from + the current book. Click the Save button + to save the current book (under the name typed in the + Book name text entry field) for future + use. + + + + + Saving the book also saves the configuration for each item. + + + + + Click the Open button to load the book + from the list of previously saved books. Finally, click the + Edit books button to invoke the + editable list of available books. + + + + + The vertical set of buttons to the right of the bottom pane + operates on the selected book item. Click the + Add button to add selected item from + the available list to the current book. Click the + Remove button to remove an item from + the current book. Use Up and + Down to change the items order in the + current book. Click the Setup button to + configure the options of the selected item of the current + book. + + + + + The configuration dialogs invoked by + Setup are item-specific. If you choose + not to configure the item, same defaults will be used for all + needed options. The common option for almost all book items is + the center person: the person on whom the item is + centered. Thanks to this option, you can create a book with + items centered on different people (e.g. your mom's and dad's + ancestors as separate chapters). By default, the center person + is set to the active person. + + + + + Almost all items available for inclusion in the book are + textual or graphical reports, and are therefore available in + the form of standalone reports. The exception is the following + items which are only available as book items: + + + + + Title Page + + + + This item produces a customized Title page. You can + configure the text of title, subtitle, and the footer of + the page. An image can be optionally placed between the + subtitle and the footer. Because of its + configurability, this item can be used to create title + pages for the whole book, its chapter, or even a single + item. + + + + + + Custom Text + + + + This item produces a page with three paragraphs, each + containing custom text. The appearance of the text can + be adjusted by using custom styles. This item was meant + to be used for epigraphs, dedications, explanations, + notes, and so forth. + + + + + +
+ + + + + Code Generators + + + This category contains reports that produce code intended to + be run through the computer, rather than the usual formatted output for human reading. The only code generator currently available in &app; is the Relationship Graph producing the - GraphViz description of the graph. - - The Relationship Graph creates a complex relationship graph in - GraphViz format. The GraphViz dot tool can - transform the graph into postscript, jpeg, png, vrml, svg, and - other formats. GraphViz tools are freely available from the - GraphViz - site. Specific options for this report - include filter and number of generations considered, as well as - several GraphViz-specific options related to pagination, color, - and details of the graph. - - If you are not interested in GraphViz code itself - and just want to generate graphical output, &app; can do it for you - under the hood. Look for Relationship Graph - in the Graphical Reports category, - + GraphViz description of the graph. - + + - - - Graphical Reports - Graphical reports represent information in forms of charts - and graphs. Most of the options are common among graphical reports, - therefore they will be described only once, at the end of this - section. The few options which are specific to a given report will be - described directly in that report's entry. + The Relationship Graph creates a complex relationship graph in + GraphViz format. The GraphViz dot tool can + transform the graph into postscript, jpeg, png, vrml, svg, and + other formats. GraphViz tools are freely available from the + GraphViz + site. Specific options for this report include filter + and number of generations considered, as well as several + GraphViz-specific options related to pagination, color, and + details of the graph. - The following graphical reports are currently - available in &app;: - - + + + - Ancestor Chart - This report generates the chart of people who are - ancestors of the Active person. Specific options include - the number of generations considered and the format of the displayed - entries. - + If you are not interested in GraphViz code itself and just + want to generate graphical output, &app; can do it for you + under the hood. Look for Relationship + Graph in the Graphical Reports category, - Ancestor Chart (Wall Chart) - This report is similar to the Ancestor Chart report. - It provides more options which make it useful for generating huge charts - suitable for a poster or a wall chart. These options include the ability - to compress the report (getting rid of an empty space) and the option - to fit the whole chart on to a single page. In the latter case, the - contents of the chart is scaled down appropriately. - + + + - Descendant Graph - This report generates a graph of people who are - descendants of the Active person. Specific options include - the format of the displayed entries. - + - Fan Chart - This report produces a chart resembling a fan, with - Active person in the center, parents the the semicircle next to it, - grandparents in the next semicircle, and so on, for a total of five - generations. - + + Graphical Reports + - Relationship Graph - This report creates a complex relationship graph in - GraphViz format and then converts into graphical output - running it through the the GraphViz dot tool - behind the scene. Specific options for this report - include filter, options for dates and places for the events, and - whether to include URLs and IDs for individuals and families. - There are also - several GraphViz-specific options related to pagination, color, - and details of the graph. - + Graphical reports represent information in forms of charts and + graphs. Most of the options are common among graphical + reports, therefore they will be described only once, at the + end of this section. The few options which are specific to a + given report will be described directly in that report's + entry. - Statistics Chart - This report can collect and display a wealth of - statistical data about your database. - Specific options include filter, sorting methods, and additional - birth- and gender-based limit for inclusion into statistics. - You can also set the minimum number of items to qualify for the - bar chart, so that the charts with fewer items will generate - a pice chart instead. - The Chart Selection tab - allows you to check which charts you want to include in your report. - - + + - Timeline Graph - This report outputs the list of people with their - lifetimes represented by intervals on a common chronological scale. - Specific options include filter, sorting method, and the title of - the report. - + The following graphical reports are currently available in + &app;: - + + + + Ancestor Chart + + - Common options for graphical reports are the filename of the - output, the format of the output, selected style, page size and - orientation. Optionally, the reports can be immediately opened - with the default application. - - The options used in reports are persistent: each report + This report generates the chart of people who are + ancestors of the Active person. Specific options include + the number of generations considered and the format of + the displayed entries. + + + + + + Ancestor Chart (Wall Chart) + + + + This report is similar to the Ancestor Chart report. It + provides more options which make it useful for + generating huge charts suitable for a poster or a wall + chart. These options include the ability to compress the + report (getting rid of an empty space) and the option to + fit the whole chart on to a single page. In the latter + case, the contents of the chart is scaled down + appropriately. + + + + + + Descendant Graph + + + + This report generates a graph of people who are + escendants of the Active person. Specific options + include the format of the displayed entries. + + + + + + Fan Chart + + + + This report produces a chart resembling a fan, with Active + person in the center, parents the the semicircle next to + it, grandparents in the next semicircle, and so on, for a + total of five generations. + + + + + + Relationship Graph + + + + This report creates a complex relationship graph in + GraphViz format and then converts into graphical output + running it through the the GraphViz + dot tool behind the scene. Specific + options for this report include filter, options for + dates and places for the events, and whether to include + URLs and IDs for individuals and families. There are + also several GraphViz-specific options related to + pagination, color, and details of the graph. + + + + + + Statistics Chart + + + + This report can collect and display a wealth of + statistical data about your database. Specific options + include filter, sorting methods, and additional birth- + and gender-based limit for inclusion into statistics. + You can also set the minimum number of items to qualify + for the bar chart, so that the charts with fewer items + will generate a pice chart instead. The Chart + Selection tab allows you to check which + charts you want to include in your report. + + + + + + Timeline Graph + + + + This report outputs the list of people with their + lifetimes represented by intervals on a common + chronological scale. Specific options include filter, + sorting method, and the title of the report. + + + + + + + + Common options for graphical reports are the filename of the + output, the format of the output, selected style, page size + and orientation. Optionally, the reports can be immediately + opened with the default application. + + + + + + The options used in reports are persistent: each report + remembers its options used last time. + + + + + + + Text Reports + + + Text reports represent the desired information as formatted + text. Most of the options are common among text reports, + therefore they will be described only once, at the end of this + section. The options which are specific to a given report will + be described directly in that report's entry. + + + + + The following text reports are currently available in &app;: + + + + + Ahnentafel Report + + + + This report lists the active person and his or her + ancestors along with their vital data. The people are + numbered in a special way which is an established + standard called Ahnentafel. The active person is given + number 1. His or her father and mother have numbers 2 + and 3, respectively. This rule holds for every person + while going back in generations: father's parents are + numbered 4 and 5, and mother's parents are numbered 6 + and 7, fathers always numbered with even and mothers + with odd numbers. Therefore, for any person having + number N in this tree, the numbers of father and mother + are 2N and 2N+1, respectively. + + + + + + Complete Individual Report + + + + This report provides individual summaries similar to + that of the Individual Summary report. The advantage of + this report is the specific filter option. Depending on + the filter choice (active person only, his or her + descendants, his or her ancestors, or entire database), + the report may contain from one to many individual + summaries. Another option for this report is the + inclusion of source information when listing events. + + + + + + Comprehensive Ancestors Report + + + + This report produces a comprehensive description of + ancestors of the active person. The highlights of this + report include elaborate layout, images of children, + present and former spouses, and source + citations. Specific options: number of backward + generations to consider, whether to cite sources, and + whether to break pages between generations. + + + + + + Descendant Report + + + + This report produces a brief description of descendants + of the active person. Specific options: number of + forward generations to consider. + + + + + + Detailed Ancestral Report + + + + This report covers in detail the ancestors of the active + person. It includes vital data (birth and death) as well + as marriages. Specific options: number of backward + generations to consider, as well as a variety of options + regarding the exact contents to include. + + + + + + Detailed Descendant Report + + + + This report covers in detail the descendants of the + active person. It includes vital (birth and death) + information as well as marriages. Specific options: + number of forward generations to consider. + + + + + + FTM Style Ancestral Report + + + + This report creates an ancestral report similar to that + produced by the Family Tree Maker (tm) program. It + covers in detail the active person and his/her ancestors + It includes vital information as well as marriages, + children, and notes. Specific options: number of + backward generations to consider. + + + + + + FTM Style Descendant Report + + + + This report creates a descendant report similar to that + produced by the Family Tree Maker (tm) program. It + covers in detail the active person and his/her + descendants. It includes vital information as well as + marriages, children, and notes. Specific options: number + of forward generations to consider. + + + + + + Family Group Report + + + + This creates a family group report, showing information + on a set of parents and their children. Specific + options: the spouse (available only if the active person + has more than one spouse). + + + + + + Individual Summary + + + + This report produces a detailed summary on the active + person. The report includes all the facts known to the + database about that person. + + + + + + + + Common options for text reports are the filename of the + output, the format of the output, selected style, page size + and orientation. For HTML reports, there is no page + information. Instead, HTML options include the choice of the + HTML template, either available in &app; or a custom template + defined by you. Optionally, the reports can be immediately + opened with the default application. + + + + The options used in reports are persistent: each report remembers its options used last time. - + + + - + - - - Text Reports - Text reports represent the desired information as formatted - text. Most of the options are common among text reports, - therefore they will be described only once, at the end of this - section. The options which are specific to a given report will be - described directly in that report's entry. - - The following text reports are currently - available in &app;: + + View Reports + - + View reports are representing overall summaries of the + database information available immediately for on-screen + viewing. The following view reports are currently available + in &app;: - Ahnentafel Report - This report lists the active person and his or her - ancestors along with their vital data. The people are numbered in a - special way which is an established standard called Ahnentafel. - The active person is given number 1. His or her father and mother - have numbers 2 and 3, respectively. This rule holds for every person - while going back in generations: father's parents are numbered 4 and 5, - and mother's parents are numbered 6 and 7, fathers always numbered - with even and mothers with odd numbers. Therefore, for any person - having number N in this tree, the numbers of father and mother - are 2N and 2N+1, respectively. - - + + + + Number of ancestors + + - Complete Individual Report - This report provides individual summaries similar to - that of the Individual Summary report. The advantage of this report - is the specific filter option. Depending on the filter choice (active - person only, his or her descendants, his or her ancestors, or entire - database), the report may contain from one to many individual - summaries. Another option for this report is the inclusion of - source information when listing events. - + This report displays the number of ancestors of the + active person. - Comprehensive Ancestors Report - This report produces a comprehensive description - of ancestors of the active person. The highlights of this report - include elaborate layout, images of children, present and former - spouses, and source citations. Specific options: number - of backward generations to consider, whether to cite sources, - and whether to break pages between generations. - + + + + + Summary of the database + + - Descendant Report - This report produces a brief description - of descendants of the active person. Specific options: number - of forward generations to consider. - + This report displays the overall statistics concerning + number of individuals of each gender, various incomplete + entries statistics, as well as family and media + statistics. - Detailed Ancestral Report - This report covers in detail the ancestors of the - active person. It includes vital data (birth and death) as well as - marriages. Specific options: number of backward generations - to consider, as well as a variety of options regarding the exact - contents to include. - + + + + + - Detailed Descendant Report - This report covers in detail the descendants of the - active person. It includes vital (birth and death) information as well as - marriages. Specific options: number of forward generations - to consider. - + - FTM Style Ancestral Report - This report creates an ancestral report similar to - that produced by the Family Tree Maker (tm) program. It covers in detail the - active person and his/her ancestors It includes vital information - as well as marriages, children, and notes. Specific options: number - of backward generations to consider. - + + Web Page + - FTM Style Descendant Report - This report creates a descendant report similar to - that produced by the Family Tree Maker (tm) program. It covers in detail the - active person and his/her descendants. It includes vital information - as well as marriages, children, and notes. Specific options: - number of forward generations to consider. - + This category includes reports producing web sites based on + your data. - Family Group Report - This creates a family group report, showing - information on a set of parents and their children. Specific - options: the spouse (available only if the active person has more - than one spouse). - + + + + Generate Web Site + + - Individual Summary - This report produces a detailed summary on the - active person. The report includes all the facts known to the - database about that person. - + This report generates web pages, either for a selected + individual (active person) or a set of individuals. The + options for this report are broken down into contents, + privacy, and advanced options. The contents options + include the filter (determine the scope of the database + to consider), destination directory for the images, an + optional short ancestor tree, and a link to the index + page. Privacy options allow you to omit private + records, restrict information on living people, skip + images (either all or only those of living people), and + omit comments and text in source information. Finally, + the advanced options allow you to include the optional + &app; ID, create a GENDEX index, and specify the + extension of the resulting files. - + + + + + Narrative Web Site + + - Common options for text reports are the filename of the - output, the format of the output, selected style, page size and - orientation. For HTML reports, there is no page information. - Instead, HTML options include the choice of the HTML template, - either available in &app; or a custom template defined by you. - Optionally, the reports can be immediately opened - with the default application. + This report is an alternative web site generator, + producing the narrative set of web pages. It is still in + development, with the goal of producing a more complete, + better looking, and easily adjustable web site. - The options used in reports are persistent: each report - remembers its options used last time. - + + + + + +
+ + + Running Tools + - + &app; tools allow you to perform various types of analysis of + your genealogical data. Typically, the tools do not produce + output in form of printouts or files. Instead, they produce + screen output immediately available for the + researcher. However, when appropriate, you can save the + results of running a tool into a file. Tools present one of + the major strengths of &app; compared to the most genealogical + software. + + - - - View Reports - View reports are representing overall summaries of the database - information available immediately for on-screen viewing. - The following view reports are currently available in &app;: + The tools can be accessed through the menu by choosing - + + Tools + + Tool Section + + + Particular Tool + + . - Number of ancestors - This report displays the number of ancestors of the - active person. - + Alternatively, you can browse the complete selection of + available tools along with their brief descriptions in a + Tool Selection dialog invoked by clicking + the Tools icon on the toolbar. - Summary of the database - This report displays the overall statistics concerning - number of individuals of each gender, various incomplete entries - statistics, as well as family and media statistics. - + - - + - - - Web Page - - This category includes reports producing web sites - based on your data. + + Analysis and Exploration + - - - Generate Web Site - - This report generates web pages, either for a selected - individual (active person) or a set of individuals. The options - for this report are broken down into contents, privacy, and advanced - options. The contents options include the filter (determine the - scope of the database to consider), - destination directory for the images, an optional short ancestor tree, - and a link to the index page. - Privacy options allow you to omit private records, restrict - information on living people, skip images (either all or only - those of living people), and omit comments and text in source - information. Finally, the advanced options allow you to include - the optional &app; ID, create a GENDEX index, and specify the - extension of the resulting files. - - - - Narrative Web Site - This report is an alternative web site generator, - producing the narrative set of web pages. It is still in development, - with the goal of producing a more complete, better looking, and easily - adjustable web site. - - - - - - - - - - - Running Tools - &app; tools allow you to perform various types of analyses - of your genealogical data. Typically, the tools do not produce - output in form of printouts or files. Instead, they produce screen - output immediately available for the researcher. However, when - appropriate, you can save the results of running a tool into a file. - Tools present one of the major strengths of &app; compared to the most - genealogical software. - - The tools can be accessed through the menu by choosing - Tools - Tool Section - Particular - Tool. Alternatively, - you can browse the complete selection of available tools along - with their brief descriptions in a Tool - Selection dialog invoked by clicking the - Tools icon on the toolbar. - - - - Analysis and Exploration - This section contains tools which analyze and explore the + This section contains tools which analyze and explore the database, but do not alter it. The following analysis and exploration - tools are currently available in &app;: + tools are currently available in &app;: - + + + + Compare individual events + + - Compare individual events - This tool compares events across the selected group of - people. The people for this comparison are chosen with the use of - custom filters. The custom filters can be created in the Custom Filter - Editor (see ) that can be invoked by clicking - the Custom Filter Editor button. The resulting - table produced by this tool can be saved as a spreadsheet. - - + This tool compares events across the selected group of + people. The people for this comparison are chosen with + the use of custom filters. The custom filters can be + created in the Custom Filter Editor (see ) that can be invoked by + clicking the Custom Filter Editor + button. The resulting table produced by this tool can be + saved as a spreadsheet. + + + + + + Interactive descendant browser + + + + This tool builds a tree with the active person being the + root. Children branch from their parents in the usual + manner. Use this tool for a quick glance of a person's + descendants. + + + + + Double-clicking on tree node will bring up the + Edit Person dialog allowing to + view or modify the personal data. + + + + + + + + + + Database Processing + + + This section contains tools which may modify your database. + The tools from this section are used mostly for finding and + correcting errors in the data. The following database + processing tools are currently available in &app;: + + + + + + The modifications will only be performed upon your explicit + consent, except for the automatic fixes performed by + Check and repair database tool. + + + + + + Check and repair database + + + + This tool checks the database for integrity problems, + fixing the problems it can. Specifically, the tool is + checking for: + + + + + + + Broken family links. These are the cases when a + person's record refers to a family while the + family's record does not refer to that person, and + vice versa. + + + + + + + Missing media objects. The missing media object is + the object whose file is referenced in the database + but does not exist. This can happen when the file is + accidentally deleted, renamed, or moved to another + location. + + + + + + + Empty families. These are the family entries which + have no reference to any person as their member. + + + + + + + Parent relationship. This checks all families to + ensure that father and mother are not mixed up. The + check is also made that parents have different + gender. If they have common gender then their + relationship is renamed to "Partners". + + + + + + + + Extract information from names + + + + This tool searches the entire database and attempts to + extract titles and nicknames that may be embedded in a + person's Given name field. If any + information could be extracted, the candidates for + fixing will be presented in the table. You may then + decide which to repair as suggested and which not to. + + + + + + Find possible duplicate people + + + + This tool searches the entire database, looking for the + entries that may represent the same person. + + + + + + Fix capitalization of family names + + + + This tool searches the entire database and attempts to + fix the capitalization of family names. The aim is to + have conventional capitalization: capital first letter + and lower case for the rest of the family name. If + deviations from this rule are detected, the candidates + for fixing will be presented in the table. You may then + decide which to repair as suggested and which not to. + + + + + + Rename personal event types + + + + This tool allows all the events of a certain name + to be renamed to a new name. + + + + + + Reorder &app; IDs + + + This tool reorders the &app; IDs according to the + defaults of &app;. + + + + + + + + + + Debug + + + This section contains debugging tools that are not of general + interest for many of the users of &app;. If you're not + interested in debugging or developing &app; you may safely + skip this section. + + + + + Python evaluation window + + + + Enter expression into the Evaluation + Window, get the output in Output + Window. Any errors should end up in the + Error Window. - Interactive descendant browser - This tool builds a tree with the active person being - the root. Children branch from their parents in the usual manner. - Use this tool for a quick glance of a person's descendants. - - Double-clicking on tree node will bring up the Edit - Person dialog allowing to view or modify the personal data. - - - - + + + + Reload plugins + + + Makes an attempt to reload all plugins. + + + + This tool is itself a plugin, but it will not reload itself! + + + + + + Show uncollected objects + + - - + Provides the window listing all uncollected objects. + Depending on the system settings, recently abandoned GUI + objects may still be uncollected. - - - Database Processing - This section contains tools which may modify your database. - The tools from this section are used mostly for finding and correcting - errors in the data. The following database processing tools are - currently available in &app;: - - - The modifications will only be performed upon your explicit consent, - except for the automatic fixes performed by Check and repair - database tool. - - - - Check and repair database - This tool checks the database for integrity problems, - fixing the problems it can. Specifically, the tool is checking for: - - Broken family links. These are the cases when - a person's record refers to a family while the family's record - does not refer to that person, and vice versa. - - - Missing media objects. The missing media - object is the object whose file is referenced in the database - but does not exist. This can happen when the file is - accidentally deleted, renamed, or moved to another location. - - - Empty families. These are the family entries - which have no reference to any person as their member. - - - Parent relationship. This checks all families - to ensure that father and mother are not mixed up. The check - is also made that parents have different gender. If they have - common gender then their relationship is renamed to "Partners". - - - - - - - Extract information from names - This tool searches the entire database and attempts - to extract titles and nicknames that may be embedded in a person's - Given name field. If any information could be - extracted, the candidates for fixing will be presented in the table. - You may then decide which to repair as suggested and which not to. - - - - Find possible duplicate people - This tool searches the entire database, looking - for the entries that may represent the same person. - - - - Fix capitalization of family names - This tool searches the entire database and attempts - to fix the capitalization of family names. The aim is to have - conventional capitalization: capital first letter and lower case - for the rest of the family name. If deviations from this rule - are detected, the candidates for fixing will be presented in the table. - You may then decide which to repair as suggested and which not to. - - - - Rename personal event types - This tool allows all the events of a certain name - to be renamed to a new name. - - - - Reorder &app; IDs - This tool reorders the &app; IDs according to the - defaults of &app;. - - - - - - - - - - Debug - This section contains debugging tools that are not of general - interest for many of the users of &app;. If you're not interested in - debugging or developing &app; you may safely skip this section. - - - - Python evaluation window - Enter expression into the Evaluation - Window, get the output in Output Window. - Any errors should end up in the Error Window. - - - - Reload plugins - Makes an attempt to reload all plugins. - - This tool is itself a plugin, but it will not reload itself! - - - - + + + + - Show uncollected objects - Provides the window listing all uncollected objects. - Depending on the system settings, recently abandoned GUI objects - may still be uncollected. - - + - - + + Utilities + - - - Utilities - + This section contains tools allowing you to perform a simple + operation on a portion of data. The results can be saved in + your database, but they will not modify your existing data. + The following utilities are currently available in &app;: - This section contains tools allowing you to perform a simple - operation on a portion of data. The results can be saved in your - database, but they will not modify your existing data. - The following utilities are currently available in &app;: + + + Custom Filter Editor + - - Custom Filter Editor - The Custom Filter Editor builds custom filters - that can be used to select people included in reports, exports, - and other tools and utilities. This is in fact a very powerful tool - in genealogical analysis. - - When you launch it, the User defined filters - dialog appears that lists all the filters (if any) previously defined - by you. Click the Add... button to define a new filter. - Once you have designed your filters, you can edit, test, and delete - selected filters using the Edit..., - Test..., and Delete - buttons, respectively. All the filters displayed in the list will be - automatically saved along with your database and will be available - with subsequent sessions of &app;. - - The changes made to the filters only take effect when you - click the Apply and close button. - - - Clicking the Add... button invokes the - following Define filter dialog: - - -
- Define filter dialog - - - Shows Define filter dialog. -
- + The Custom Filter Editor builds custom filters that can be + used to select people included in reports, exports, and + other tools and utilities. This is in fact a very powerful + tool in genealogical analysis. - Type the name for your new filter into the - Name field. Enter any comment that would help you - identify this filter in the future into the Comment - field. Add as many rules to the Rule list as you - would like to your filter using Add... button. - If the filter has more than one rule, - select one of the Rule operations. This allows you - to choose whether all rules must apply, only one (either) rule must - apply, or exactly one (either) rule must apply, in order for the filter - to generate a match. If your filter has only one rule, this selection - has no effect. +
+ + + When you launch it, the User defined + filters dialog appears that lists all the filters + (if any) previously defined by you. Click the + Add... button to define a new filter. + Once you have designed your filters, you can edit, test, and + delete selected filters using the + Edit..., + Test..., and + Delete buttons, respectively. All the + filters displayed in the list will be automatically saved + along with your database and will be available with + subsequent sessions of &app;. - - Check Return values that do not match the filter - rules to invert the filter rule. For example, inverting - "has a common ancestor with I1" rule will match everyone who does not - have a common ancestor with that person). - - Clicking the Add... button invokes the - following Add Rule dialog: + + - -
- Add Rule dialog - - - Shows Add Rule dialog. -
- - - The pane on the left-hand side displays available filter rules - arranged by their categories in an expandable tree. For detailed filter - rule reference, see . Click on the - arrows to fold/unfold the appropriate category. Select the rule - from the tree by clicking on its name. The right-hand side displays - the name, the description, and the values for the currently selected - rule. Once you are satisfied with your rule selection and its values, - click OK to add this rule to the rule list - of the currently edited filter. Clicking Cancel - will abort adding the rule to the filter. - - A filter you have already designed may be used as a rule - for another filter. This gives you nearly infinite flexibility in - custom-tailoring your selection criteria that can be later used in - most of the exports, reports, and some of the tools (such as comparing - individual events). -
+ The changes made to the filters only take effect when you + click the Apply and close button. + + + + + + Clicking the Add... button invokes the + following Define filter dialog: - Scratch Pad - - This tool provides a temporary note pad to store - database records for easy reuse. In short, this is a sort of the - copy-and-paste functionality extended from textual objects to - other types of records used in &app;. - - Scratch Pad makes extensive use of drag-and-drop technique. - - - To invoke Scratch Pad, either choose Tools - UtilitiesScratch - Pad or click the Scratch - Padbutton on the toolbar. The following window will - appear: - - -
- Scratch Pad tool - - - Shows Add Scratch Pad tool. -
- - - Scratch Pad supports addresses, attributes (both personal and - family), events (both personal and family), names, media objects - references, source references, URLs, and of course textual information - of notes and comments. To store any type of these records, simply drag - the existing record on to the Scratch Pad from the corresponding - editor dialog. To reuse the record, drag it from the Scratch Pad - onlto the corresponding place in the editor, e.g. Address tab, - Attribute tab, etc. + + +
+ Define filter dialog + + + + + + + Shows Define filter dialog. + + + +
+ + + + + + Type the name for your new filter into the + Name field. Enter any comment that + would help you identify this filter in the future into the + Comment field. Add as many rules to the + Rule list as you would like to your + filter using Add... button. If the + filter has more than one rule, select one of the + Rule operations. This allows you to + choose whether all rules must apply, only one (either) rule + must apply, or exactly one (either) rule must apply, in + order for the filter to generate a match. If your filter has + only one rule, this selection has no effect. + + + + + Check Return values that do not match the filter + rules to invert the filter rule. For example, + inverting "has a common ancestor with I1" rule will match + everyone who does not have a common ancestor with that + person). + - - Some objects are showing the link icon on the left. This - indicates that dragging such selection will produce a reference - to an existing object, not copy the object itself. + - For example, the media object file will not be duplicated. - Instead, the reference will be made to an existing media object, - which will result in the local gallery entry. - + Clicking the Add... button invokes + the following Add Rule dialog: - Scratch Pad storage is persistent within a single &app; - session. Closing the window will not lose the stored records. However, - exiting &app; will. - +
-
+ - Other tools - - - Generate SoundEx codes - This utility generates SoundEx codes for the names of - people in the database. Please visit the NARA Soundex Indexing page to learn more about - Soudex Indexing System. - - +
+ Add Rule dialog + + + + + + + Shows Add Rule dialog. + + + +
- Relationship calculator - This utility calculates and displays the relationship - of any person to the active person. - - + - Verify the database - This utility allows you to verify the database based - on the set of criteria specified by you. - - Difference between Verify tool and previously described - Check tool - The Check tool - detects inconsistencies in the database structure. The Verify tool, - however, is detecting the records that do not satisfy your particular - criteria. + - For example, you may want to make sure that nobody in your - database had children at the age of 98. Based on common sense, such - a record would indicate an error. However, it is not a consistency - error in the database. Besides, someone might have a child at the age of - 98 (although this rarely happens). The Verify tool will display - everything that violates your criteria so that you can check whether - the record is erroneous or not. The ultimate decision is yours. - - + The pane on the left-hand side displays available filter + rules arranged by their categories in an expandable + tree. For detailed filter rule reference, see . Click on the arrows to + fold/unfold the appropriate category. Select the rule from + the tree by clicking on its name. The right-hand side + displays the name, the description, and the values for the + currently selected rule. Once you are satisfied with your + rule selection and its values, click + OK to add this rule to the rule list + of the currently edited filter. Clicking + Cancel will abort adding the rule to + the filter. -
+
+ + - -
+ A filter you have already designed may be used as a rule + for another filter. This gives you nearly infinite + flexibility in custom-tailoring your selection criteria + that can be later used in most of the exports, reports, + and some of the tools (such as comparing individual + events). -
+ + + + + Scratch Pad + + This tool provides a temporary note pad to store database + records for easy reuse. In short, this is a sort of the + copy-and-paste functionality extended from textual objects + to other types of records used in &app;. + + + + + Scratch Pad makes extensive use of drag-and-drop technique. + + + + To invoke Scratch Pad, either choose + + + Tools + Utilities + Scratch Pad + + + or click the ScratchPad button on the + toolbar. The following window will appear: + + + + + +
+ Scratch Pad tool + + + + + + + Shows Add Scratch Pad tool. + + + +
+ + + + + + Scratch Pad supports addresses, attributes (both personal + and family), events (both personal and family), names, media + objects references, source references, URLs, and of course + textual information of notes and comments. To store any type + of these records, simply drag the existing record on to the + Scratch Pad from the corresponding editor dialog. To reuse + the record, drag it from the Scratch Pad onlto the + corresponding place in the editor, e.g. Address tab, + Attribute tab, etc. + + + + + + Some objects are showing the link icon on the left. This + indicates that dragging such selection will produce a + reference to an existing object, not copy the object + itself. + + + + + For example, the media object file will not be duplicated. + Instead, the reference will be made to an existing media + object, which will result in the local gallery entry. + + + + + + + Scratch Pad storage is persistent within a single &app; + session. Closing the window will not lose the stored + records. However, exiting &app; will. + + + +
+ + Other tools + + + Generate SoundEx codes + + + + This utility generates SoundEx codes for the names of + people in the database. Please visit the NARA Soundex Indexing page to + learn more about Soudex Indexing System. + + + + + + Relationship calculator + + + + This utility calculates and displays the relationship + of any person to the active person. + + + + + + Verify the database + + + + This utility allows you to verify the database based + on the set of criteria specified by you. + + + + + + Difference between Verify tool and previously + described Check tool + + + + + The Check tool detects inconsistencies in the + database structure. The Verify tool, however, is + detecting the records that do not satisfy your + particular criteria. + + + + + + For example, you may want to make sure that nobody in + your database had children at the age of 98. Based on + common sense, such a record would indicate an + error. However, it is not a consistency error in the + database. Besides, someone might have a child at the + age of 98 (although this rarely happens). The Verify + tool will display everything that violates your + criteria so that you can check whether the record is + erroneous or not. The ultimate decision is yours. + + + + + + + +
diff --git a/gramps2/src/ReportUtils.py b/gramps2/src/ReportUtils.py index ad1216a4d..865e14d97 100644 --- a/gramps2/src/ReportUtils.py +++ b/gramps2/src/ReportUtils.py @@ -35,6 +35,457 @@ import time import os from gettext import gettext as _ +#------------------------------------------------------------------------ +# +# Born strings +# +#------------------------------------------------------------------------ + +born_full_date_with_place = [ + { + RelLib.Person.MALE : _("He was born on %(birth_date)s in %(birth_place)s."), + RelLib.Person.FEMALE : _("She was born on %(birth_date)s in %(birth_place)s."), + }, + { + RelLib.Person.MALE : _("%(male_name)s was born on %(birth_date)s in %(birth_place)s."), + RelLib.Person.FEMALE : _("%(female_name)s was born on %(birth_date)s in %(birth_place)s."), + }, +] + +born_modified_date_with_place = [ + { + RelLib.Person.MALE : _("He was born %(modified_date)s in %(birth_place)s."), + RelLib.Person.FEMALE : _("She was born %(modified_date)s in %(birth_place)s."), + }, + { + RelLib.Person.MALE : _("%(male_name)s was born %(modified_date)s in %(birth_place)s."), + RelLib.Person.FEMALE : _("%(female_name)s was born %(modified_date)s in %(birth_place)s."), + }, +] + +born_full_date_no_place = [ + { + RelLib.Person.MALE : _("He was born on %(birth_date)s."), + RelLib.Person.FEMALE : _("She was born on %(birth_date)s."), + }, + { + RelLib.Person.MALE : _("%(male_name)s was born on %(birth_date)s."), + RelLib.Person.FEMALE : _("%(female_name)s was born on %(birth_date)s."), + }, +] + +born_modified_date_no_place = [ + { + RelLib.Person.MALE : _("He was born %(modified_date)s."), + RelLib.Person.FEMALE : _("She was born %(modified_date)s."), + }, + { + RelLib.Person.MALE : _("%(male_name)s was born on %(modified_date)s."), + RelLib.Person.FEMALE : _("%(female_name)s was born on %(modified_date)s."), + }, +] + +born_partial_date_with_place = [ + { + RelLib.Person.MALE : _("He was born in %(month_year)s in %(birth_place)s."), + RelLib.Person.FEMALE : _("She was born in %(month_year)s in %(birth_place)s."), + }, + { + RelLib.Person.MALE : _("%(male_name)s was born in %(month_year)s in %(birth_place)s."), + RelLib.Person.FEMALE : _("%(female_name)s was born in %(month_year)s in %(birth_place)s."), + }, +] + +born_partial_date_no_place = [ + { + RelLib.Person.MALE : _("He was born in %(month_year)s."), + RelLib.Person.FEMALE : _("She was born in %(month_year)s."), + }, + { + RelLib.Person.MALE : _("%(male_name)s was born in %(month_year)s."), + RelLib.Person.FEMALE : _("%(female_name)s was born in %(month_year)s."), + } +] + +born_no_date_with_place = [ + { + RelLib.Person.MALE : _("He was born in %(birth_place)s."), + RelLib.Person.FEMALE : _("She was born in %(birth_place)s."), + }, + { + RelLib.Person.MALE : _("%(male_name)s was born in %(birth_place)s."), + RelLib.Person.FEMALE : _("%(female_name)s was born in %(birth_place)s."), + } +] + +#------------------------------------------------------------------------ +# +# Died strings +# +#------------------------------------------------------------------------ + +died_full_date_with_place = [ + { RelLib.Person.MALE : [ + _("He died on %(death_date)s in %(death_place)s."), + _("He died on %(death_date)s in %(death_place)s at the age of %(age)d years."), + _("He died on %(death_date)s in %(death_place)s at the age of %(age)d months."), + _("He died on %(death_date)s in %(death_place)s at the age of %(age)d days."), + ], + RelLib.Person.FEMALE : [ + _("She died on %(death_date)s in %(death_place)s."), + _("She died on %(death_date)s in %(death_place)s at the age of %(age)d years."), + _("She died on %(death_date)s in %(death_place)s at the age of %(age)d months."), + _("She died on %(death_date)s in %(death_place)s at the age of %(age)d days."), + ], + }, + { RelLib.Person.MALE : [ + _("%(male_name)s died on %(death_date)s in %(death_place)s."), + _("%(male_name)s died on %(death_date)s in %(death_place)s at the age of %(age)d years."), + _("%(male_name)s died on %(death_date)s in %(death_place)s at the age of %(age)d months."), + _("%(male_name)s died on %(death_date)s in %(death_place)s at the age of %(age)d days."), + ], + RelLib.Person.FEMALE : [ + _("%(female_name)s died on %(death_date)s in %(death_place)s."), + _("%(female_name)s died on %(death_date)s in %(death_place)s at the age of %(age)d years."), + _("%(female_name)s died on %(death_date)s in %(death_place)s at the age of %(age)d months."), + _("%(female_name)s died on %(death_date)s in %(death_place)s at the age of %(age)d days."), + ], + }, +] + +died_modified_date_with_place = [ + { RelLib.Person.MALE : [ + _("He died %(death_date)s in %(death_place)s."), + _("He died %(death_date)s in %(death_place)s at the age of %(age)d years."), + _("He died %(death_date)s in %(death_place)s at the age of %(age)d months."), + _("He died %(death_date)s in %(death_place)s at the age of %(age)d days."), + ], + RelLib.Person.FEMALE : [ + _("She died %(death_date)s in %(death_place)s."), + _("She died %(death_date)s in %(death_place)s at the age of %(age)d years."), + _("She died %(death_date)s in %(death_place)s at the age of %(age)d months."), + _("She died %(death_date)s in %(death_place)s at the age of %(age)d days."), + ], + }, + { RelLib.Person.MALE : [ + _("%(male_name)s died %(death_date)s in %(death_place)s."), + _("%(male_name)s died %(death_date)s in %(death_place)s at the age of %(age)d years."), + _("%(male_name)s died %(death_date)s in %(death_place)s at the age of %(age)d months."), + _("%(male_name)s died %(death_date)s in %(death_place)s at the age of %(age)d days."), + ], + RelLib.Person.FEMALE : [ + _("%(female_name)s died %(death_date)s in %(death_place)s."), + _("%(female_name)s died %(death_date)s in %(death_place)s at the age of %(age)d years."), + _("%(female_name)s died %(death_date)s in %(death_place)s at the age of %(age)d months."), + _("%(female_name)s died %(death_date)s in %(death_place)s at the age of %(age)d days."), + ], + }, +] + +died_full_date_no_place = [ + { RelLib.Person.MALE : [ + _("He died on %(death_date)s."), + _("He died on %(death_date)s at the age of %(age)d years."), + _("He died on %(death_date)s at the age of %(age)d months."), + _("He died on %(death_date)s at the age of %(age)d days."), + ], + RelLib.Person.FEMALE : [ + _("She died on %(death_date)s."), + _("She died on %(death_date)s at the age of %(age)d years."), + _("She died on %(death_date)s at the age of %(age)d months."), + _("She died on %(death_date)s at the age of %(age)d days."), + ], + }, + { RelLib.Person.MALE : [ + _("%(male_name)s died on %(death_date)s."), + _("%(male_name)s died on %(death_date)s at the age of %(age)d years."), + _("%(male_name)s died on %(death_date)s at the age of %(age)d months."), + _("%(male_name)s died on %(death_date)s at the age of %(age)d days."), + ], + RelLib.Person.FEMALE : [ + _("%(female_name)s died on %(death_date)s."), + _("%(female_name)s died on %(death_date)s at the age of %(age)d years."), + _("%(female_name)s died on %(death_date)s at the age of %(age)d months."), + _("%(female_name)s died on %(death_date)s at the age of %(age)d days."), + ], + }, +] + +died_modified_date_no_place = [ + { RelLib.Person.MALE : [ + _("He died %(death_date)s."), + _("He died %(death_date)s at the age of %(age)d years."), + _("He died %(death_date)s at the age of %(age)d months."), + _("He died %(death_date)s at the age of %(age)d days."), + ], + RelLib.Person.FEMALE : [ + _("She died %(death_date)s."), + _("She died %(death_date)s at the age of %(age)d years."), + _("She died %(death_date)s at the age of %(age)d months."), + _("She died %(death_date)s at the age of %(age)d days."), + ], + }, + { RelLib.Person.MALE : [ + _("%(male_name)s died %(death_date)s."), + _("%(male_name)s died %(death_date)s at the age of %(age)d years."), + _("%(male_name)s died %(death_date)s at the age of %(age)d months."), + _("%(male_name)s died %(death_date)s at the age of %(age)d days."), + ], + RelLib.Person.FEMALE : [ + _("%(female_name)s died %(death_date)s."), + _("%(female_name)s died %(death_date)s at the age of %(age)d years."), + _("%(female_name)s died %(death_date)s at the age of %(age)d months."), + _("%(female_name)s died %(death_date)s at the age of %(age)d days."), + ], + }, +] + +died_partial_date_with_place = [ + { RelLib.Person.MALE : [ + _("He died in %(month_year)s in %(death_place)s."), + _("He died in %(month_year)s in %(death_place)s at the age of %(age)d years."), + _("He died in %(month_year)s in %(death_place)s at the age of %(age)d months."), + _("He died in %(month_year)s in %(death_place)s at the age of %(age)d days."), + ], + RelLib.Person.FEMALE : [ + _("She died in %(month_year)s in %(death_place)s."), + _("She died in %(month_year)s in %(death_place)s at the age of %(age)d years."), + _("She died in %(month_year)s in %(death_place)s at the age of %(age)d months."), + _("She died in %(month_year)s in %(death_place)s at the age of %(age)d days."), + ] + }, + { RelLib.Person.MALE : [ + _("%(male_name)s died in %(month_year)s in %(death_place)s."), + _("%(male_name)s died in %(month_year)s in %(death_place)s at the age of %(age)d years."), + _("%(male_name)s died in %(month_year)s in %(death_place)s at the age of %(age)d months."), + _("%(male_name)s died in %(month_year)s in %(death_place)s at the age of %(age)d days."), + ], + RelLib.Person.FEMALE : [ + _("%(female_name)s died in %(month_year)s in %(death_place)s."), + _("%(female_name)s died in %(month_year)s in %(death_place)s at the age of %(age)d years."), + _("%(female_name)s died in %(month_year)s in %(death_place)s at the age of %(age)d months."), + _("%(female_name)s died in %(month_year)s in %(death_place)s at the age of %(age)d days."), + ], + }, +] + +died_partial_date_no_place = [ + { RelLib.Person.MALE : [ + _("He died in %(month_year)s."), + _("He died in %(month_year)s at the age of %(age)d years."), + _("He died in %(month_year)s at the age of %(age)d months."), + _("He died in %(month_year)s at the age of %(age)d days."), + ], + RelLib.Person.FEMALE : [ + _("She died in %(month_year)s."), + _("She died in %(month_year)s at the age of %(age)d years."), + _("She died in %(month_year)s at the age of %(age)d months."), + _("She died in %(month_year)s at the age of %(age)d days."), + ], + }, + { RelLib.Person.MALE : [ + _("%(male_name)s died in %(month_year)s."), + _("%(male_name)s died in %(month_year)s at the age of %(age)d years."), + _("%(male_name)s died in %(month_year)s at the age of %(age)d months."), + _("%(male_name)s died in %(month_year)s at the age of %(age)d days."), + ], + RelLib.Person.FEMALE : [ + _("%(female_name)s died in %(month_year)s."), + _("%(female_name)s died in %(month_year)s at the age of %(age)d years."), + _("%(female_name)s died in %(month_year)s at the age of %(age)d months."), + _("%(female_name)s died in %(month_year)s at the age of %(age)d days."), + ], + } +] + +died_no_date_with_place = [ + { + RelLib.Person.MALE : [ + _("He died in %(death_place)s."), + _("He died in %(death_place)s at the age of %(age)d years."), + _("He died in %(death_place)s at the age of %(age)d months."), + _("He died in %(death_place)s at the age of %(age)d days."), + ], + RelLib.Person.FEMALE : [ + _("She died in %(death_place)s."), + _("She died in %(death_place)s at the age of %(age)d years."), + _("She died in %(death_place)s at the age of %(age)d months."), + _("She died in %(death_place)s at the age of %(age)d days."), + ], + }, + { RelLib.Person.MALE : [ + _("%(male_name)s died in %(death_place)s."), + _("%(male_name)s died in %(death_place)s at the age of %(age)d years."), + _("%(male_name)s died in %(death_place)s at the age of %(age)d months."), + _("%(male_name)s died in %(death_place)s at the age of %(age)d days."), + ], + RelLib.Person.FEMALE : [ + _("%(female_name)s died in %(death_place)s."), + _("%(female_name)s died in %(death_place)s at the age of %(age)d years."), + _("%(female_name)s died in %(death_place)s at the age of %(age)d months."), + _("%(female_name)s died in %(death_place)s at the age of %(age)d days."), + ], + } +] + +died_no_date_no_place = [ + { RelLib.Person.MALE : [ + "", + _("He died at the age of %(age)d years."), + _("He died at the age of %(age)d months."), + _("He died at the age of %(age)d days."), + ], + RelLib.Person.FEMALE : [ + "", + _("She died at the age of %(age)d years."), + _("She died at the age of %(age)d months."), + _("She died at the age of %(age)d days."), + ], + }, + { RelLib.Person.MALE : [ + "", + _("%(male_name)s died at the age of %(age)d years."), + _("%(male_name)s died at the age of %(age)d months."), + _("%(male_name)s died at the age of %(age)d days."), + ], + RelLib.Person.FEMALE : [ + "", + _("%(female_name)s died at the age of %(age)d years."), + _("%(female_name)s died at the age of %(age)d months."), + _("%(female_name)s died at the age of %(age)d days."), + ], + }, +] + +#------------------------------------------------------------------------ +# +# Marriage strings +# +#------------------------------------------------------------------------ + +marriage_first_date_place = { + RelLib.Person.MALE : [ + _('He married %(spouse)s in %(partial_date)s in %(place)s%(endnotes)s.'), + _('He married %(spouse)s on %(full_date)s in %(place)s%(endnotes)s.'), + _('He married %(spouse)s %(modified_date)s in %(place)s%(endnotes)s.'), + ], + RelLib.Person.FEMALE : [ + _('She married %(spouse)s in %(partial_date)s in %(place)s%(endnotes)s.'), + _('She married %(spouse)s on %(full_date)s in %(place)s%(endnotes)s.'), + _('She married %(spouse)s %(modified_date)s in %(place)s%(endnotes)s.'), + ], + } + +marriage_also_date_place = { + RelLib.Person.MALE : [ + _('He also married %(spouse)s in %(partial_date)s in %(place)s%(endnotes)s.'), + _('He also married %(spouse)s on %(full_date)s in %(place)s%(endnotes)s.'), + _('He also married %(spouse)s %(modified_date)s in %(place)s%(endnotes)s.'), + ], + RelLib.Person.FEMALE : [ + _('She also married %(spouse)s in %(partial_date)s in %(place)s%(endnotes)s.'), + _('She also married %(spouse)s on %(full_date)s in %(place)s%(endnotes)s.'), + _('She also married %(spouse)s %(modified_date)s in %(place)s%(endnotes)s.'), + ], + } + +marriage_first_date = { + RelLib.Person.MALE : [ + _('He married %(spouse)s in %(partial_date)s%(endnotes)s.'), + _('He married %(spouse)s on %(full_date)s%(endnotes)s.'), + _('He married %(spouse)s %(modified_date)s%(endnotes)s.'), + ], + RelLib.Person.FEMALE : [ + _('She married %(spouse)s in %(partial_date)s%(endnotes)s.'), + _('She married %(spouse)s on %(full_date)s%(endnotes)s.'), + _('She married %(spouse)s %(modified_date)s%(endnotes)s.'), + ], + } + +marriage_also_date = { + RelLib.Person.MALE : [ + _('He also married %(spouse)s in %(partial_date)s%(endnotes)s.'), + _('He also married %(spouse)s on %(full_date)s%(endnotes)s.'), + _('He also married %(spouse)s %(modified_date)s%(endnotes)s.'), + ], + RelLib.Person.FEMALE : [ + _('She also married %(spouse)s in %(partial_date)s%(endnotes)s.'), + _('She also married %(spouse)s on %(full_date)s%(endnotes)s.'), + _('She also married %(spouse)s %(modified_date)s%(endnotes)s.'), + ], + } + +marriage_first_place = { + RelLib.Person.MALE : _('He married %(spouse)s in %(place)s%(endnotes)s.'), + RelLib.Person.FEMALE : _('She married %(spouse)s in %(place)s%(endnotes)s.'), + } + +marriage_also_place = { + RelLib.Person.MALE : _('He also married %(spouse)s in %(place)s%(endnotes)s.'), + RelLib.Person.FEMALE : _('She also married %(spouse)s in %(place)s%(endnotes)s.'), + } + +marriage_first_only = { + RelLib.Person.MALE : _('He married %(spouse)s%(endnotes)s.'), + RelLib.Person.FEMALE : _('She married %(spouse)s%(endnotes)s.'), + } + +marriage_also_only = { + RelLib.Person.MALE : _('He also married %(spouse)s%(endnotes)s.'), + RelLib.Person.FEMALE : _('She also married %(spouse)s%(endnotes)s.'), + } + +#------------------------------------------------------------------------- +# +# child to parent relationships +# +#------------------------------------------------------------------------- + +child_father_mother = { + RelLib.Person.MALE : [ + _("He was the son of %(father)s and %(mother)s."), + _("He is the son of %(father)s and %(mother)s."), + ], + RelLib.Person.FEMALE : [ + _("She was the daughter of %(father)s and %(mother)s."), + _("She is the daughter of %(father)s and %(mother)s."), + ] +} + +child_father = { + RelLib.Person.MALE : [ + _("He was the son of %(father)s."), + _("He is the son of %(father)s."), + ], + RelLib.Person.FEMALE : [ + _("She was the daughter of %(father)s."), + _("She is the daughter of %(father)s."), + ], +} + +child_mother = { + RelLib.Person.MALE : [ + _("He was the son of %(mother)s."), + _("He is the son of %(mother)s."), + ], + RelLib.Person.FEMALE : [ + _("She was the daughter of %(mother)s."), + _("She is the daughter of %(mother)s."), + ], +} + +#------------------------------------------------------------------------- +# +# relationship types +# +#------------------------------------------------------------------------- +_rtype = { + RelLib.Family.UNMARRIED : _("unmarried"), + RelLib.Family.CIVIL_UNION : _("civil union"), + RelLib.Family.UNKNOWN : _("Unknown"), + RelLib.Family.OTHER : _("Other"), + } + #------------------------------------------------------------------------- # # Convert points to cm and back @@ -281,7 +732,6 @@ def sanitize_list(obj_list,exclude_private): else: return obj_list - def sanitize_person(db,person): """ Creates a new Person instance based off the passed Person @@ -511,6 +961,8 @@ def get_birth_death_strings(database,person,empty_date="",empty_place=""): bplace = dplace = empty_place bdate = ddate = empty_date bdate_full = ddate_full = False + bdate_mod = False + ddate_mod = False birth_handle = person.get_birth_handle() if birth_handle: @@ -521,6 +973,7 @@ def get_birth_death_strings(database,person,empty_date="",empty_place=""): bplace = database.get_place_from_handle(bplace_handle).get_title() bdate_obj = birth.get_date_object() bdate_full = bdate_obj and bdate_obj.get_day_valid() + bdate_mod = bdate_obj and bdate_obj.get_modifier() != Date.MOD_NONE death_handle = person.get_death_handle() if death_handle: @@ -531,8 +984,9 @@ def get_birth_death_strings(database,person,empty_date="",empty_place=""): dplace = database.get_place_from_handle(dplace_handle).get_title() ddate_obj = death.get_date_object() ddate_full = ddate_obj and ddate_obj.get_day_valid() + ddate_mod = ddate_obj and ddate_obj.get_modifier() != Date.MOD_NONE - return (bdate,bplace,bdate_full,ddate,dplace,ddate_full) + return (bdate,bplace,bdate_full,bdate_mod,ddate,dplace,ddate_full,ddate_mod) def born_died_str(database,person,endnotes=None,name_object=None,person_name=None): """ @@ -577,12 +1031,24 @@ def born_died_str(database,person,endnotes=None,name_object=None,person_name=Non else: person_name = _('She') - bdate,bplace,bdate_full,ddate,dplace,ddate_full = \ + bdate,bplace,bdate_full,bdate_mod,ddate,dplace,ddate_full,ddate_mod = \ get_birth_death_strings(database,person) birth = database.get_event_from_handle(person.get_birth_handle()) death = database.get_event_from_handle(person.get_death_handle()) + values = { + 'male_name' : person_name, + 'female_name' : person_name, + 'endnotes' : endnotes(name_object), + 'birth_date' : bdate, + 'birth_place' : bplace, + 'birth_endnotes' : endnotes(birth), + 'death_date' : ddate, + 'death_place' : dplace, + 'death_endnotes' : endnotes(death), + } + if person.get_gender() == RelLib.Person.MALE: if bdate: if bplace: @@ -590,127 +1056,70 @@ def born_died_str(database,person,endnotes=None,name_object=None,person_name=Non if dplace: text = _("%(male_name)s%(endnotes)s " "was born %(birth_date)s in %(birth_place)s%(birth_endnotes)s, " - "and died %(death_date)s in %(death_place)s%(death_endnotes)s.") % { - 'male_name' : person_name, 'endnotes' : endnotes(name_object), - 'birth_date' : bdate, 'birth_place' : bplace, - 'death_date' : ddate,'death_place' : dplace, - 'birth_endnotes' : endnotes(birth), - 'death_endnotes' : endnotes(death) } + "and died %(death_date)s in %(death_place)s%(death_endnotes)s.") % values else: text = _("%(male_name)s%(endnotes)s " "was born %(birth_date)s in %(birth_place)s%(birth_endnotes)s, " - "and died %(death_date)s%(death_endnotes)s.") % { - 'male_name' : person_name, 'endnotes' : endnotes(name_object), - 'birth_date' : bdate, 'birth_place' : bplace, 'death_date' : ddate, - 'birth_endnotes' : endnotes(birth), - 'death_endnotes' : endnotes(death) } + "and died %(death_date)s%(death_endnotes)s.") % values else: if dplace: text = _("%(male_name)s%(endnotes)s " "was born %(birth_date)s in %(birth_place)s%(birth_endnotes)s, " - "and died in %(death_place)s%(death_endnotes)s.") % { - 'male_name' : person_name, 'endnotes' : endnotes(name_object), - 'birth_date' : bdate, 'birth_place' : bplace, 'death_place' : dplace, - 'birth_endnotes' : endnotes(birth), - 'death_endnotes' : endnotes(death) } + "and died in %(death_place)s%(death_endnotes)s.") % values else: text = _("%(male_name)s%(endnotes)s " - "was born %(birth_date)s in %(birth_place)s%(birth_endnotes)s.") % { - 'male_name' : person_name, 'endnotes' : endnotes(name_object), - 'birth_date' : bdate, 'birth_place' : bplace, - 'birth_endnotes' : endnotes(birth) } + "was born %(birth_date)s in %(birth_place)s%(birth_endnotes)s.") % values else: if ddate: if dplace: text = _("%(male_name)s%(endnotes)s " "was born %(birth_date)s%(birth_endnotes)s, " - "and died %(death_date)s in %(death_place)s%(death_endnotes)s.") % { - 'male_name' : person_name, 'endnotes' : endnotes(name_object), - 'birth_date' : bdate, - 'death_date' : ddate,'death_place' : dplace, - 'birth_endnotes' : endnotes(birth), - 'death_endnotes' : endnotes(death) } + "and died %(death_date)s in %(death_place)s%(death_endnotes)s.") % values else: text = _("%(male_name)s%(endnotes)s " "was born %(birth_date)s%(birth_endnotes)s, " - "and died %(death_date)s%(death_endnotes)s.") % { - 'male_name' : person_name, 'endnotes' : endnotes(name_object), - 'birth_date' : bdate, 'death_date' : ddate, - 'birth_endnotes' : endnotes(birth), - 'death_endnotes' : endnotes(death) } + "and died %(death_date)s%(death_endnotes)s.") % values else: if dplace: text = _("%(male_name)s%(endnotes)s " "was born %(birth_date)s%(birth_endnotes)s, " - "and died in %(death_place)s%(death_endnotes)s.") % { - 'male_name' : person_name, 'endnotes' : endnotes(name_object), - 'birth_date' : bdate, 'death_place' : dplace, - 'birth_endnotes' : endnotes(birth), - 'death_endnotes' : endnotes(death) } + "and died in %(death_place)s%(death_endnotes)s.") % values else: text = _("%(male_name)s%(endnotes)s " - "was born %(birth_date)s%(birth_endnotes)s.") % { - 'male_name' : person_name, 'endnotes' : endnotes(name_object), - 'birth_date' : bdate, 'birth_endnotes' : endnotes(birth) } + "was born %(birth_date)s%(birth_endnotes)s.") % values else: if bplace: if ddate: if dplace: text = _("%(male_name)s%(endnotes)s " "was born in %(birth_place)s%(birth_endnotes)s, " - "and died %(death_date)s in %(death_place)s%(death_endnotes)s.") % { - 'male_name' : person_name, 'endnotes' : endnotes(name_object), - 'birth_place' : bplace, - 'death_date' : ddate,'death_place' : dplace, - 'birth_endnotes' : endnotes(birth), - 'death_endnotes' : endnotes(death) } + "and died %(death_date)s in %(death_place)s%(death_endnotes)s.") % values else: text = _("%(male_name)s%(endnotes)s " "was born in %(birth_place)s%(birth_endnotes)s, " - "and died %(death_date)s%(death_endnotes)s.") % { - 'male_name' : person_name, 'endnotes' : endnotes(name_object), - 'birth_place' : bplace, 'death_date' : ddate, - 'birth_endnotes' : endnotes(birth), - 'death_endnotes' : endnotes(death) } + "and died %(death_date)s%(death_endnotes)s.") % values else: if dplace: text = _("%(male_name)s%(endnotes)s " "was born in %(birth_place)s%(birth_endnotes)s, " - "and died in %(death_place)s%(death_endnotes)s.") % { - 'male_name' : person_name, 'endnotes' : endnotes(name_object), - 'birth_place' : bplace, 'death_place' : dplace, - 'birth_endnotes' : endnotes(birth), - 'death_endnotes' : endnotes(death) } + "and died in %(death_place)s%(death_endnotes)s.") % values else: text = _("%(male_name)s%(endnotes)s " - "was born in %(birth_place)s%(birth_endnotes)s.") % { - 'male_name' : person_name, 'endnotes' : endnotes(name_object), - 'birth_place' : bplace, - 'birth_endnotes' : endnotes(birth) } + "was born in %(birth_place)s%(birth_endnotes)s.") % values else: if ddate: if dplace: text = _("%(male_name)s%(endnotes)s " - "died %(death_date)s in %(death_place)s%(death_endnotes)s.") % { - 'male_name' : person_name, 'endnotes' : endnotes(name_object), - 'death_date' : ddate, 'death_place' : dplace, - 'death_endnotes' : endnotes(death) } + "died %(death_date)s in %(death_place)s%(death_endnotes)s.") % values else: text = _("%(male_name)s%(endnotes)s " - "died %(death_date)s%(death_endnotes)s.") % { - 'male_name' : person_name, 'endnotes' : endnotes(name_object), - 'death_date' : ddate, - 'death_endnotes' : endnotes(death) } + "died %(death_date)s%(death_endnotes)s.") % values else: if dplace: text = _("%(male_name)s%(endnotes)s " - "died in %(death_place)s%(death_endnotes)s.") % { - 'male_name' : person_name, 'endnotes' : endnotes(name_object), - 'death_place' : dplace, - 'death_endnotes' : endnotes(death) } + "died in %(death_place)s%(death_endnotes)s.") % values else: - text = _("%(male_name)s%(endnotes)s.") % { - 'male_name' : person_name, 'endnotes' : endnotes(name_object) } + text = _("%(male_name)s%(endnotes)s.") % values else: if bdate: if bplace: @@ -718,133 +1127,81 @@ def born_died_str(database,person,endnotes=None,name_object=None,person_name=Non if dplace: text = _("%(female_name)s%(endnotes)s " "was born %(birth_date)s in %(birth_place)s%(birth_endnotes)s, " - "and died %(death_date)s in %(death_place)s%(death_endnotes)s.") % { - 'female_name' : person_name, 'endnotes' : endnotes(name_object), - 'birth_date' : bdate, 'birth_place' : bplace, - 'death_date' : ddate,'death_place' : dplace, - 'birth_endnotes' : endnotes(birth), - 'death_endnotes' : endnotes(death) } + "and died %(death_date)s in %(death_place)s%(death_endnotes)s.") % values else: text = _("%(female_name)s%(endnotes)s " "was born %(birth_date)s in %(birth_place)s%(birth_endnotes)s, " - "and died %(death_date)s%(death_endnotes)s.") % { - 'female_name' : person_name, 'endnotes' : endnotes(name_object), - 'birth_date' : bdate, 'birth_place' : bplace, 'death_date' : ddate, - 'birth_endnotes' : endnotes(birth), - 'death_endnotes' : endnotes(death) } + "and died %(death_date)s%(death_endnotes)s.") % values else: if dplace: text = _("%(female_name)s%(endnotes)s " "was born %(birth_date)s in %(birth_place)s%(birth_endnotes)s, " - "and died in %(death_place)s%(death_endnotes)s.") % { - 'female_name' : person_name, 'endnotes' : endnotes(name_object), - 'birth_date' : bdate, 'birth_place' : bplace, 'death_place' : dplace, - 'birth_endnotes' : endnotes(birth), - 'death_endnotes' : endnotes(death) } + "and died in %(death_place)s%(death_endnotes)s.") % values else: text = _("%(female_name)s%(endnotes)s " - "was born %(birth_date)s in %(birth_place)s%(birth_endnotes)s.") % { - 'female_name' : person_name, 'endnotes' : endnotes(name_object), - 'birth_date' : bdate, 'birth_place' : bplace, - 'birth_endnotes' : endnotes(birth) } + "was born %(birth_date)s in %(birth_place)s%(birth_endnotes)s.") % values else: if ddate: if dplace: text = _("%(female_name)s%(endnotes)s " "was born %(birth_date)s%(birth_endnotes)s, " - "and died %(death_date)s in %(death_place)s%(death_endnotes)s.") % { - 'female_name' : person_name, 'endnotes' : endnotes(name_object), - 'birth_date' : bdate, - 'death_date' : ddate,'death_place' : dplace, - 'birth_endnotes' : endnotes(birth), - 'death_endnotes' : endnotes(death) } + "and died %(death_date)s in %(death_place)s%(death_endnotes)s.") % values else: text = _("%(female_name)s%(endnotes)s " "was born %(birth_date)s%(birth_endnotes)s, " - "and died %(death_date)s%(death_endnotes)s.") % { - 'female_name' : person_name, 'endnotes' : endnotes(name_object), - 'birth_date' : bdate, 'death_date' : ddate, - 'birth_endnotes' : endnotes(birth), - 'death_endnotes' : endnotes(death) } + "and died %(death_date)s%(death_endnotes)s.") % values else: if dplace: text = _("%(female_name)s%(endnotes)s " "was born %(birth_date)s%(birth_endnotes)s, " - "and died in %(death_place)s%(death_endnotes)s.") % { - 'female_name' : person_name, 'endnotes' : endnotes(name_object), - 'birth_date' : bdate, 'death_place' : dplace, - 'birth_endnotes' : endnotes(birth), - 'death_endnotes' : endnotes(death) } + "and died in %(death_place)s%(death_endnotes)s.") % values else: text = _("%(female_name)s%(endnotes)s " - "was born %(birth_date)s%(birth_endnotes)s.") % { - 'female_name' : person_name, 'endnotes' : endnotes(name_object), - 'birth_date' : bdate, 'birth_endnotes' : endnotes(birth) } + "was born %(birth_date)s%(birth_endnotes)s.") % values else: if bplace: if ddate: if dplace: text = _("%(female_name)s%(endnotes)s " "was born in %(birth_place)s%(birth_endnotes)s, " - "and died %(death_date)s in %(death_place)s%(death_endnotes)s.") % { - 'female_name' : person_name, 'endnotes' : endnotes(name_object), - 'birth_place' : bplace, - 'death_date' : ddate,'death_place' : dplace, - 'birth_endnotes' : endnotes(birth), - 'death_endnotes' : endnotes(death) } + "and died %(death_date)s in %(death_place)s%(death_endnotes)s.") % values else: text = _("%(female_name)s%(endnotes)s " "was born in %(birth_place)s%(birth_endnotes)s, " - "and died %(death_date)s%(death_endnotes)s.") % { - 'female_name' : person_name, 'endnotes' : endnotes(name_object), - 'birth_place' : bplace, 'death_date' : ddate, - 'birth_endnotes' : endnotes(birth), - 'death_endnotes' : endnotes(death) } + "and died %(death_date)s%(death_endnotes)s.") % values else: if dplace: text = _("%(female_name)s%(endnotes)s " "was born in %(birth_place)s%(birth_endnotes)s, " - "and died in %(death_place)s%(death_endnotes)s.") % { - 'female_name' : person_name, 'endnotes' : endnotes(name_object), - 'birth_place' : bplace, 'death_place' : dplace, - 'birth_endnotes' : endnotes(birth), - 'death_endnotes' : endnotes(death) } + "and died in %(death_place)s%(death_endnotes)s.") % values else: text = _("%(female_name)s%(endnotes)s " - "was born in %(birth_place)s%(birth_endnotes)s.") % { - 'female_name' : person_name, 'endnotes' : endnotes(name_object), - 'birth_place' : bplace, - 'birth_endnotes' : endnotes(birth) } + "was born in %(birth_place)s%(birth_endnotes)s.") % values else: if ddate: if dplace: text = _("%(female_name)s%(endnotes)s " - "died %(death_date)s in %(death_place)s%(death_endnotes)s.") % { - 'female_name' : person_name, 'endnotes' : endnotes(name_object), - 'death_date' : ddate, 'death_place' : dplace, - 'death_endnotes' : endnotes(death) } + "died %(death_date)s in %(death_place)s%(death_endnotes)s.") % values else: text = _("%(female_name)s%(endnotes)s " - "died %(death_date)s%(death_endnotes)s.") % { - 'female_name' : person_name, 'endnotes' : endnotes(name_object), - 'death_date' : ddate, - 'death_endnotes' : endnotes(death) } + "died %(death_date)s%(death_endnotes)s.") % values else: if dplace: text = _("%(female_name)s%(endnotes)s " - "died in %(death_place)s%(death_endnotes)s.") % { - 'female_name' : person_name, 'endnotes' : endnotes(name_object), - 'death_place' : dplace, - 'death_endnotes' : endnotes(death) } + "died in %(death_place)s%(death_endnotes)s.") % values else: - text = _("%(female_name)s%(endnotes)s.") % { - 'female_name' : person_name, 'endnotes' : endnotes(name_object) } + text = _("%(female_name)s%(endnotes)s.") % values if text: text = text + " " return text +#------------------------------------------------------------------------- +# +# married_str +# +#------------------------------------------------------------------------- def married_str(database,person,spouse,event,endnotes=None, - empty_date="",empty_place="",is_first=True): + empty_date="",empty_place="",is_first=True): """ Composes a string describing marriage of a person. @@ -887,102 +1244,54 @@ def married_str(database,person,spouse,event,endnotes=None, if place_handle: place = database.get_place_from_handle(place_handle).get_title() - text = "" + values = { + 'spouse' : spouse_name, + 'endnotes' : endnotes(event), + 'full_date' : date, + 'modified_date' : date, + 'partial_date' : date, + 'place' : place, + } + + dobj = event.get_date_object() + + if dobj.get_modifier() != Date.MOD_NONE: + date_full = 2 + elif dobj and dobj.get_day_valid(): + date_full = 1 + else: + date_full = 0 + + gender = person.get_gender() + if is_first: if date and place: - if person.get_gender() == RelLib.Person.MALE: - text = _('He married %(spouse)s %(date)s in %(place)s%(endnotes)s.') % { - 'spouse' : spouse_name, - 'endnotes' : endnotes(event), - 'date' : date, - 'place' : place} - else: - text = _('She married %(spouse)s %(date)s in %(place)s%(endnotes)s.') % { - 'spouse' : spouse_name, - 'date' : date, - 'endnotes' : endnotes(event), - 'place' : place} + text = marriage_first_date_place[gender][date_full] % values elif date: - if person.get_gender() == RelLib.Person.MALE: - text = _('He married %(spouse)s %(date)s%(endnotes)s.') % { - 'spouse' : spouse_name, - 'endnotes' : endnotes(event), - 'date' : date,} - else: - text = _('She married %(spouse)s in %(place)s%(endnotes)s.') % { - 'spouse' : spouse_name, - 'endnotes' : endnotes(event), - 'place' : place,} + text = marriage_first_date[gender][date_full] % values elif place: - if person.get_gender() == RelLib.Person.MALE: - text = _('He married %(spouse)s in %(place)s%(endnotes)s.') % { - 'spouse' : spouse_name, - 'endnotes' : endnotes(event), - 'place' : place} - else: - text = _('She married %(spouse)s in %(place)s%(endnotes)s.') % { - 'spouse' : spouse_name, - 'endnotes' : endnotes(event), - 'place' : place} + text = marriage_first_place[gender] % values else: - if person.get_gender() == RelLib.Person.MALE: - text = _('He married %(spouse)s%(endnotes)s.') % { - 'spouse' : spouse_name, - 'endnotes' : endnotes(event) } - else: - text = _('She married %(spouse)s%(endnotes)s.') % { - 'spouse' : spouse_name, - 'endnotes' : endnotes(event)} + text = marriage_first_only[gender] % values else: if date and place: - if person.get_gender() == RelLib.Person.MALE: - text = _('He also married %(spouse)s %(date)s in %(place)s%(endnotes)s.') % { - 'spouse' : spouse_name, - 'endnotes' : endnotes(event), - 'date' : date, - 'place' : place} - else: - text = _('She also married %(spouse)s %(date)s in %(place)s%(endnotes)s.') % { - 'spouse' : spouse_name, - 'date' : date, - 'endnotes' : endnotes(event), - 'place' : place} + text = marriage_also_date_place[gender][date_full] % values elif date: - if person.get_gender() == RelLib.Person.MALE: - text = _('He also married %(spouse)s %(date)s%(endnotes)s.') % { - 'spouse' : spouse_name, - 'endnotes' : endnotes(event), - 'date' : date,} - else: - text = _('She also married %(spouse)s in %(place)s%(endnotes)s.') % { - 'spouse' : spouse_name, - 'endnotes' : endnotes(event), - 'place' : place,} + text = marriage_also_date[gender][date_full] % values elif place: - if person.get_gender() == RelLib.Person.MALE: - text = _('He also married %(spouse)s in %(place)s%(endnotes)s.') % { - 'spouse' : spouse_name, - 'endnotes' : endnotes(event), - 'place' : place} - else: - text = _('She also married %(spouse)s in %(place)s%(endnotes)s.') % { - 'spouse' : spouse_name, - 'endnotes' : endnotes(event), - 'place' : place} + text = marriage_also_place[gender] % values else: - if person.get_gender() == RelLib.Person.MALE: - text = _('He also married %(spouse)s%(endnotes)s.') % { - 'spouse' : spouse_name, - 'endnotes' : endnotes(event) } - else: - text = _('She also married %(spouse)s%(endnotes)s.') % { - 'spouse' : spouse_name, - 'endnotes' : endnotes(event)} + text = marriage_also_only[gender] % values if text: text = text + " " return text +#------------------------------------------------------------------------- +# +# relationship types +# +#------------------------------------------------------------------------- def married_rel_str(database,person,family,is_first=True): spouse_handle = find_spouse(person,family) spouse = database.get_person_from_handle(spouse_handle) @@ -991,44 +1300,57 @@ def married_rel_str(database,person,family,is_first=True): if not spouse_handle or not spouse: return u"" - spouse_name = _nd.display(spouse) - + values = { + 'spouse' :_nd.display(spouse) + } + if is_first: if family.get_relationship() == RelLib.Family.MARRIED: if person.get_gender() == RelLib.Person.MALE: - text = _('He married %(spouse)s.') % { 'spouse' : spouse_name } + text = _('He married %(spouse)s.') % values else: - text = _('She married %(spouse)s.') % { 'spouse' : spouse_name } + text = _('She married %(spouse)s.') % values + elif family.get_relationship() == RelLib.Family.UNMARRIED: + if person.get_gender() == RelLib.Person.MALE: + text = _('He had an unmarried relationship with %(spouse)s.') % values + else: + text = _('She hand an unmarried relationship with %(spouse)s.') % values else: if person.get_gender() == RelLib.Person.MALE: - text = _('He had relationship with %(spouse)s.') % { - 'spouse' : spouse_name } + text = _('He had relationship with %(spouse)s.') % values else: - text = _('She had relationship with %(spouse)s.') % { - 'spouse' : spouse_name } + text = _('She had relationship with %(spouse)s.') % values else: if family.get_relationship() == RelLib.Family.MARRIED: if person.get_gender() == RelLib.Person.MALE: - text = _('He also married %(spouse)s.') % { 'spouse' : spouse_name } + text = _('He also married %(spouse)s.') % values else: - text = _('She also married %(spouse)s.') % { 'spouse' : spouse_name } + text = _('She also married %(spouse)s.') % values + elif family.get_relationship() == RelLib.Family.UNMARRIED: + if person.get_gender() == RelLib.Person.MALE: + text = _('He had an unmarried relationship with %(spouse)s.') % values + else: + text = _('She hand an unmarried relationship with %(spouse)s.') % values else: if person.get_gender() == RelLib.Person.MALE: - text = _('He also had relationship with %(spouse)s.') % { - 'spouse' : spouse_name } + text = _('He also had relationship with %(spouse)s.') % values else: - text = _('She also had relationship with %(spouse)s.') % { - 'spouse' : spouse_name } + text = _('She also had relationship with %(spouse)s.') % values if text: text = text + " " return text +#------------------------------------------------------------------------- +# +# child_str +# +#------------------------------------------------------------------------- def child_str(person,father_name="",mother_name="",dead=0): """ Composes a string describing person being a child. The string is composed in the following form: - "He/She is/was the son/daughter of father_name and mother_name" + 'He/She is/was the son/daughter of father_name and mother_name' Missing information will be omitted without loss of readability. @param person_gender: Person.MALE, Person.FEMALE, or Person.UNKNOWN @@ -1043,60 +1365,28 @@ def child_str(person,father_name="",mother_name="",dead=0): @rtype: unicode """ - text = "" + values = { + 'father' : father_name, + 'mother' : mother_name, + } - if person.get_gender() == RelLib.Person.MALE: - if mother_name and father_name: - if dead: - text = _("He was the son of %(father)s and %(mother)s.") % { - 'father' : father_name, - 'mother' : mother_name, } - else: - text = _("He is the son of %(father)s and %(mother)s.") % { - 'father' : father_name, - 'mother' : mother_name, } - elif mother_name: - if dead: - text = _("He was the son of %(mother)s.") % { - 'mother' : mother_name, } - else: - text = _("He is the son of %(mother)s.") % { - 'mother' : mother_name, } - elif father_name: - if dead: - text = _("He was the son of %(father)s.") % { - 'father' : father_name, } - else: - text = _("He is the son of %(father)s.") % { - 'father' : father_name, } - else: - if mother_name and father_name: - if dead: - text = _("She was the daughter of %(father)s and %(mother)s.") % { - 'father' : father_name, - 'mother' : mother_name, } - else: - text = _("She is the daughter of %(father)s and %(mother)s.") % { - 'father' : father_name, - 'mother' : mother_name, } - elif mother_name: - if dead: - text = _("She was the daughter of %(mother)s.") % { - 'mother' : mother_name, } - else: - text = _("She is the daughter of %(mother)s.") % { - 'mother' : mother_name, } - elif father_name: - if dead: - text = _("She was the daughter of %(father)s.") % { - 'father' : father_name, } - else: - text = _("She is the daughter of %(father)s.") % { - 'father' : father_name, } + gender = person.get_gender() + + if mother_name and father_name: + text = child_father_mother[gender][dead] % values + elif mother_name: + text = child_mother[gender][dead] % values + elif father_name: + text = child_father[gender][dead] % values if text: text = text + " " return text +#------------------------------------------------------------------------- +# +# find_spouse +# +#------------------------------------------------------------------------- def find_spouse(person,family): if person.get_handle() == family.get_father_handle(): spouse_handle = family.get_mother_handle() @@ -1104,6 +1394,11 @@ def find_spouse(person,family): spouse_handle = family.get_father_handle() return spouse_handle +#------------------------------------------------------------------------- +# +# find_marriage +# +#------------------------------------------------------------------------- def find_marriage(database,family): for event_handle in family.get_event_list(): event = database.get_event_from_handle(event_handle) @@ -1111,6 +1406,11 @@ def find_marriage(database,family): return event return None +#------------------------------------------------------------------------- +# +# born_str +# +#------------------------------------------------------------------------- def born_str(database,person,person_name=None,empty_date="",empty_place=""): """ Check birth record. @@ -1123,76 +1423,60 @@ def born_str(database,person,person_name=None,empty_date="",empty_place=""): '' """ + name_index = 1 if person_name == None: - person_name = _nd.display_name(person.get_primary_name()) + person_name = _nd.display(person) elif person_name == 0: - if person.get_gender() == RelLib.Person.MALE: - person_name = _('He') - else: - person_name = _('She') + name_index = 0 text = "" - bdate,bplace,bdate_full,ddate,dplace,ddate_full = \ + bdate,bplace,bdate_full,bdate_mod,ddate,dplace,ddate_full,ddate_mod = \ get_birth_death_strings(database,person,empty_date,empty_place) - if person.get_gender() == RelLib.Person.MALE: - if bdate and bdate_full: - if bplace: #male, date, place - text = _("%(male_name)s " - "was born on %(birth_date)s in %(birth_place)s.") % { - 'male_name' : person_name, - 'birth_date' : bdate, 'birth_place' : bplace } - else: #male, date, no place - text = _("%(male_name)s was born on %(birth_date)s.") % { - 'male_name' : person_name, 'birth_date' : bdate } - elif bdate: - if bplace: #male, month_year, place - text = _("%(male_name)s " - "was born in %(month_year)s in %(birth_place)s.") % { - 'male_name' : person_name, - 'month_year' : bdate, 'birth_place' : bplace } - else: #male, month_year, no place - text = _("%(male_name)s was born in %(month_year)s.") % { - 'male_name' : person_name, 'month_year' : bdate } - else: - if bplace: #male, no date, place - text = _("%(male_name)s was born in %(birth_place)s.") % { - 'male_name' : person_name, 'birth_place' : bplace } - else: #male, no date, no place - text = person_name - else: - if bdate and bdate_full: - if bplace: #female, date, place - text = _("%(female_name)s " - "was born on %(birth_date)s in %(birth_place)s.") % { - 'female_name' : person_name, - 'birth_date' : bdate, 'birth_place' : bplace } - else: #female, date, no place - text = _("%(female_name)s was born on %(birth_date)s.") % { - 'female_name' : person_name, 'birth_date' : bdate } - elif bdate: - if bplace: #female, month_year, place - text = _("%(female_name)s " - "was born in %(month_year)s in %(birth_place)s.") % { - 'female_name' : person_name, - 'month_year' : bdate, 'birth_place' : bplace } - else: #female, month_year, no place - text = _("%(female_name)s was born in %(month_year)s.") % { - 'female_name' : person_name, 'month_year' : bdate } - else: - if bplace: #female, no date, place - text = _("%(female_name)s was born in %(birth_place)s.") % { - 'female_name' : person_name, 'birth_place' : bplace } - else: #female, no date, no place - text = person_name + value_map = { + 'male_name' : person_name, + 'female_name' : person_name, + 'birth_date' : bdate, + 'birth_place' : bplace, + 'month_year' : bdate, + 'modified_date' : bdate, + } + gender = person.get_gender() + + if ddate: + if ddate_mod: + if dplace: + text = born_modified_date_with_place[name_index][gender] % value_map + else: + text = born_modified_date_no_place[name_index][gender] % value_map + elif ddate_full: + if dplace: + text = born_full_date_with_place[name_index][gender] % value_map + else: + text = born_full_date_no_place[name_index][gender] % value_map + else: + if dplace: + text = born_partial_date_with_place[name_index][gender] % value_map + else: + text = born_partial_date_no_place[name_index][gender] % value_map + else: + if dplace: + text = born_no_date_with_place[name_index][gender] % value_map + else: + text = "" if text: text = text + " " return text +#------------------------------------------------------------------------- +# +# died_str +# +#------------------------------------------------------------------------- def died_str(database,person,person_name=None,empty_date="",empty_place="", - age=None,age_units=0): + age=None,age_units=0): """ Write obit sentence. FIRSTNAME died on Date @@ -1221,285 +1505,59 @@ def died_str(database,person,person_name=None,empty_date="",empty_place="", FIRSTNAME died at the age of N Days """ + name_index = 1 if person_name == None: - person_name = _nd.display_name(person.get_primary_name()) + person_name = _nd.display(person) elif person_name == 0: - if person.get_gender() == RelLib.Person.MALE: - person_name = _('He') - else: - person_name = _('She') + name_index = 0 text = "" - bdate,bplace,bdate_full,ddate,dplace,ddate_full = \ + bdate,bplace,bdate_full,bdate_mod,ddate,dplace,ddate_full,ddate_mod = \ get_birth_death_strings(database,person,empty_date,empty_place) - if person.get_gender() == RelLib.Person.MALE: - if ddate and ddate_full: - if dplace: - if not age_units: #male, date, place, no age - text = _("%(male_name)s " - "died on %(death_date)s in %(death_place)s.") % { - 'male_name' : person_name, - 'death_date' : ddate, 'death_place' : dplace } - elif age_units == 1: #male, date, place, years - text = _("%(male_name)s " - "died on %(death_date)s in %(death_place)s " - "at the age of %(age)d years.") % { - 'male_name' : person_name, - 'death_date' : ddate, 'death_place' : dplace, - 'age' : age } - elif age_units == 2: #male, date, place, months - text = _("%(male_name)s " - "died on %(death_date)s in %(death_place)s " - "at the age of %(age)d months.") % { - 'male_name' : person_name, - 'death_date' : ddate, 'death_place' : dplace, - 'age' : age } - elif age_units == 3: #male, date, place, days - text = _("%(male_name)s " - "died on %(death_date)s in %(death_place)s " - "at the age of %(age)d days.") % { - 'male_name' : person_name, - 'death_date' : ddate, 'death_place' : dplace, - 'age' : age } + value_map = { + 'male_name' : person_name, + 'female_name' : person_name, + 'death_date' : ddate, + 'modified_date' : ddate, + 'death_place' : dplace, + 'age' : age , + 'month_year' : ddate, + } + + gender = person.get_gender() + + if ddate: + if ddate_mod: + if dplace: + text = died_modified_date_with_place[name_index][gender][age_units] % value_map else: - if not age_units: #male, date, no place, no age - text = _("%(male_name)s died on %(death_date)s.") % { - 'male_name' : person_name, 'death_date' : ddate } - elif age_units == 1: #male, date, no place, years - text = _("%(male_name)s died on %(death_date)s " - "at the age of %(age)d years.") % { - 'male_name' : person_name, - 'death_date' : ddate, 'age' : age } - elif age_units == 2: #male, date, no place, months - text = _("%(male_name)s died on %(death_date)s " - "at the age of %(age)d months.") % { - 'male_name' : person_name, - 'death_date' : ddate, 'age' : age } - elif age_units == 3: #male, date, no place, days - text = _("%(male_name)s died on %(death_date)s " - "at the age of %(age)d days.") % { - 'male_name' : person_name, - 'death_date' : ddate, 'age' : age } - elif ddate: - if dplace: - if not age_units: #male, month_year, place, no age - text = _("%(male_name)s " - "died in %(month_year)s in %(death_place)s.") % { - 'male_name' : person_name, - 'month_year' : ddate, 'death_place' : dplace } - elif age_units == 1: #male, month_year, place, years - text = _("%(male_name)s " - "died in %(month_year)s in %(death_place)s " - "at the age of %(age)d years.") % { - 'male_name' : person_name, - 'month_year' : ddate, 'death_place' : dplace, - 'age' : age } - elif age_units == 2: #male, month_year, place, months - text = _("%(male_name)s " - "died in %(month_year)s in %(death_place)s " - "at the age of %(age)d months.") % { - 'male_name' : person_name, - 'month_year' : ddate, 'death_place' : dplace, - 'age' : age } - elif age_units == 3: #male, month_year, place, days - text = _("%(male_name)s " - "died in %(month_year)s in %(death_place)s " - "at the age of %(age)d days.") % { - 'male_name' : person_name, - 'month_year' : ddate, 'death_place' : dplace, - 'age' : age } + text = died_modified_date_no_place[name_index][gender][age_units] % value_map + elif ddate_full: + if dplace: + text = died_full_date_with_place[name_index][gender][age_units] % value_map else: - if not age_units: #male, month_year, no place, no age - text = _("%(male_name)s died in %(month_year)s.") % { - 'male_name' : person_name, 'month_year' : ddate } - elif age_units == 1: #male, month_year, no place, years - text = _("%(male_name)s died in %(month_year)s " - "at the age of %(age)d years.") % { - 'male_name' : person_name, - 'month_year' : ddate, 'age' : age } - elif age_units == 2: #male, month_year, no place, months - text = _("%(male_name)s died in %(month_year)s " - "at the age of %(age)d months.") % { - 'male_name' : person_name, - 'month_year' : ddate, 'age' : age } - elif age_units == 3: #male, month_year, no place, days - text = _("%(male_name)s died in %(month_year)s " - "at the age of %(age)d days.") % { - 'male_name' : person_name, - 'month_year' : ddate, 'age' : age } + text = died_full_date_no_place[name_index][gender][age_units] % value_map else: - if dplace: - if not age_units: #male, no date, place, no age - text = _("%(male_name)s died in %(death_place)s.") % { - 'male_name' : person_name, 'death_place' : dplace } - elif age_units == 1: #male, no date, place, years - text = _("%(male_name)s died in %(death_place)s " - "at the age of %(age)d years.") % { - 'male_name' : person_name, 'death_place' : dplace, - 'age' : age } - elif age_units == 2: #male, no date, place, months - text = _("%(male_name)s died in %(death_place)s " - "at the age of %(age)d months.") % { - 'male_name' : person_name, 'death_place' : dplace, - 'age' : age } - elif age_units == 3: #male, no date, place, days - text = _("%(male_name)s died in %(death_place)s " - "at the age of %(age)d days.") % { - 'male_name' : person_name, 'death_place' : dplace, - 'age' : age } + if dplace: + text = died_partial_date_with_place[name_index][gender][age_units] % value_map else: - if not age_units: #male, no date, no place, no age - pass #text = _("%(male_name)s died.") % { - #'male_name' : person_name } - elif age_units == 1: #male, no date, no place, years - text = _("%(male_name)s died " - "at the age of %(age)d years.") % { - 'male_name' : person_name, 'age' : age } - elif age_units == 2: #male, no date, no place, months - passtext = _("%(male_name)s died " - "at the age of %(age)d months.") % { - 'male_name' : person_name, 'age' : age } - elif age_units == 3: #male, no date, no place, days - text = _("%(male_name)s died " - "at the age of %(age)d days.") % { - 'male_name' : person_name, 'age' : age } + text = died_partial_date_no_place[name_index][gender][age_units] % value_map else: - if ddate and ddate_full: - if dplace: - if not age_units: #female, date, place, no age - text = _("%(female_name)s " - "died on %(death_date)s in %(death_place)s.") % { - 'female_name' : person_name, - 'death_date' : ddate, 'death_place' : dplace } - elif age_units == 1: #female, date, place, years - text = _("%(female_name)s " - "died on %(death_date)s in %(death_place)s " - "at the age of %(age)d years.") % { - 'female_name' : person_name, - 'death_date' : ddate, 'death_place' : dplace, - 'age' : age } - elif age_units == 2: #female, date, place, months - text = _("%(female_name)s " - "died on %(death_date)s in %(death_place)s " - "at the age of %(age)d months.") % { - 'female_name' : person_name, - 'death_date' : ddate, 'death_place' : dplace, - 'age' : age } - elif age_units == 3: #female, date, place, days - text = _("%(female_name)s " - "died on %(death_date)s in %(death_place)s " - "at the age of %(age)d days.") % { - 'female_name' : person_name, - 'death_date' : ddate, 'death_place' : dplace, - 'age' : age } - else: - if not age_units: #female, date, no place, no age - text = _("%(female_name)s died on %(death_date)s.") % { - 'female_name' : person_name, 'death_date' : ddate } - elif age_units == 1: #female, date, no place, years - text = _("%(female_name)s died on %(death_date)s " - "at the age of %(age)d years.") % { - 'female_name' : person_name, - 'death_date' : ddate, 'age' : age } - elif age_units == 2: #female, date, no place, months - text = _("%(female_name)s died on %(death_date)s " - "at the age of %(age)d months.") % { - 'female_name' : person_name, - 'death_date' : ddate, 'age' : age } - elif age_units == 3: #female, date, no place, days - text = _("%(female_name)s died on %(death_date)s " - "at the age of %(age)d days.") % { - 'female_name' : person_name, - 'death_date' : ddate, 'age' : age } - elif ddate: - if dplace: - if not age_units: #female, month_year, place, no age - text = _("%(female_name)s " - "died in %(month_year)s in %(death_place)s.") % { - 'female_name' : person_name, - 'month_year' : ddate, 'death_place' : dplace } - elif age_units == 1: #female, month_year, place, years - text = _("%(female_name)s " - "died in %(month_year)s in %(death_place)s " - "at the age of %(age)d years.") % { - 'female_name' : person_name, - 'month_year' : ddate, 'death_place' : dplace, - 'age' : age } - elif age_units == 2: #female, month_year, place, months - text = _("%(female_name)s " - "died in %(month_year)s in %(death_place)s " - "at the age of %(age)d months.") % { - 'female_name' : person_name, - 'month_year' : ddate, 'death_place' : dplace, - 'age' : age } - elif age_units == 3: #female, month_year, place, days - text = _("%(female_name)s " - "died in %(month_year)s in %(death_place)s " - "at the age of %(age)d days.") % { - 'female_name' : person_name, - 'month_year' : ddate, 'death_place' : dplace, - 'age' : age } - else: - if not age_units: #female, month_year, no place, no age - text = _("%(female_name)s died in %(month_year)s.") % { - 'female_name' : person_name, 'month_year' : ddate } - elif age_units == 1: #female, month_year, no place, years - text = _("%(female_name)s died in %(month_year)s " - "at the age of %(age)d years.") % { - 'female_name' : person_name, - 'month_year' : ddate, 'age' : age } - elif age_units == 2: #female, month_year, no place, months - text = _("%(female_name)s died in %(month_year)s " - "at the age of %(age)d months.") % { - 'female_name' : person_name, - 'month_year' : ddate, 'age' : age } - elif age_units == 3: #female, month_year, no place, days - text = _("%(female_name)s died in %(month_year)s " - "at the age of %(age)d days.") % { - 'female_name' : person_name, - 'month_year' : ddate, 'age' : age } + if dplace: + text = died_no_date_with_place[name_index][gender][age_units] % value_map else: - if dplace: - if not age_units: #female, no date, place, no age - text = _("%(female_name)s died in %(death_place)s.") % { - 'female_name' : person_name, 'death_place' : dplace } - elif age_units == 1: #female, no date, place, years - text = _("%(female_name)s died in %(death_place)s " - "at the age of %(age)d years.") % { - 'female_name' : person_name, 'death_place' : dplace, - 'age' : age } - elif age_units == 2: #female, no date, place, months - text = _("%(female_name)s died in %(death_place)s " - "at the age of %(age)d months.") % { - 'female_name' : person_name, 'death_place' : dplace, - 'age' : age } - elif age_units == 3: #female, no date, place, days - text = _("%(female_name)s died in %(death_place)s " - "at the age of %(age)d days.") % { - 'female_name' : person_name, 'death_place' : dplace, - 'age' : age } - else: - if not age_units: #female, no date, no place, no age - pass #text = _("%(female_name)s died.") % { - #'female_name' : person_name } - elif age_units == 1: #female, no date, no place, years - text = _("%(female_name)s died " - "at the age of %(age)d years.") % { - 'female_name' : person_name, 'age' : age } - elif age_units == 2: #female, no date, no place, months - text = _("%(female_name)s died " - "at the age of %(age)d months.") % { - 'female_name' : person_name, 'age' : age } - elif age_units == 3: #female, no date, no place, days - text = _("%(female_name)s died " - "at the age of %(age)d days.") % { - 'female_name' : person_name, 'age' : age } + text = died_no_date_no_place[name_index][gender][age_units] % value_map if text: text = text + " " return text +#------------------------------------------------------------------------- +# +# buried_str +# +#------------------------------------------------------------------------- def buried_str(database,person,person_name=None,empty_date="",empty_place=""): """ Check burial record. @@ -1513,19 +1571,15 @@ def buried_str(database,person,person_name=None,empty_date="",empty_place=""): """ if person_name == None: - person_name = _nd.display_name(person.get_primary_name()) - elif person_name == 0: - if person.get_gender() == RelLib.Person.MALE: - person_name = _('He') - else: - person_name = _('She') + person_name = _nd.display(person) text = "" bplace = dplace = empty_place bdate = ddate = empty_date bdate_full = False - + bdate_mod = False + burial = None for event_handle in person.get_event_list(): event = database.get_event_from_handle(event_handle) @@ -1540,66 +1594,69 @@ def buried_str(database,person,person_name=None,empty_date="",empty_place=""): bplace = database.get_place_from_handle(bplace_handle).get_title() bdate_obj = burial.get_date_object() bdate_full = bdate_obj and bdate_obj.get_day_valid() + bdate_mod = bdate_obj and bdate_obj.get_modifier() != Date.MOD_NONE else: return text + values = { + 'male_name' : person_name, + 'female_name' : person_name, + 'burial_date' : bdate, + 'burial_place' : bplace + 'month_year' : bdate, + 'modified_date' : bdate, + } + if person.get_gender() == RelLib.Person.MALE: if bdate and bdate_full: if bplace: #male, date, place - text = _("%(male_name)s " - "was buried on %(burial_date)s in %(burial_place)s.") % { - 'male_name' : person_name, - 'burial_date' : bdate, 'burial_place' : bplace } + text = _("%(male_name)s was buried on %(burial_date)s in %(burial_place)s.") % values else: #male, date, no place - text = _("%(male_name)s was buried on %(burial_date)s.") % { - 'male_name' : person_name, 'burial_date' : bdate } + text = _("%(male_name)s was buried on %(burial_date)s.") % values + elif bdate and bdate_mod: + if bplace: #male, date, place + text = _("%(male_name)s was buried %(modified_date)s in %(burial_place)s.") % values + else: #male, date, no place + text = _("%(male_name)s was buried %(modified_date)s.") % values elif bdate: if bplace: #male, month_year, place - text = _("%(male_name)s " - "was buried in %(month_year)s in %(burial_place)s.") % { - 'male_name' : person_name, - 'month_year' : bdate, 'burial_place' : bplace } + text = _("%(male_name)s was buried in %(month_year)s in %(burial_place)s.") % values else: #male, month_year, no place - text = _("%(male_name)s was buried in %(month_year)s.") % { - 'male_name' : person_name, 'month_year' : bdate } - else: - if bplace: #male, no date, place - text = _("%(male_name)s was buried in %(burial_place)s.") % { - 'male_name' : person_name, 'burial_place' : bplace } - else: #male, no date, no place - text = _("%(male_name)s was buried.") % { - 'male_name' : person_name } + text = _("%(male_name)s was buried in %(month_year)s.") % values + elif bplace: #male, no date, place + text = _("%(male_name)s was buried in %(burial_place)s.") % values + else: #male, no date, no place + text = _("%(male_name)s was buried.") % values else: if bdate and bdate_full: if bplace: #female, date, place - text = _("%(female_name)s " - "was buried on %(burial_date)s in %(burial_place)s.") % { - 'female_name' : person_name, - 'burial_date' : bdate, 'burial_place' : bplace } + text = _("%(female_name)s was buried on %(burial_date)s in %(burial_place)s.") % values else: #female, date, no place - text = _("%(female_name)s was buried on %(burial_date)s.") % { - 'female_name' : person_name, 'burial_date' : bdate } + text = _("%(female_name)s was buried on %(burial_date)s.") % values + elif bdate and bdate_mod: + if bplace: #female, date, place + text = _("%(female_name)s was buried %(modified_date)s in %(burial_place)s.") % values + else: #female, date, no place + text = _("%(female_name)s was buried %(modified_date)s.") % values elif bdate: if bplace: #female, month_year, place - text = _("%(female_name)s " - "was buried in %(month_year)s in %(burial_place)s.") % { - 'female_name' : person_name, - 'month_year' : bdate, 'burial_place' : bplace } + text = _("%(female_name)s was buried in %(month_year)s in %(burial_place)s.") % values else: #female, month_year, no place - text = _("%(female_name)s was buried in %(month_year)s.") % { - 'female_name' : person_name, 'month_year' : bdate } - else: - if bplace: #female, no date, place - text = _("%(female_name)s was buried in %(burial_place)s.") % { - 'female_name' : person_name, 'burial_place' : bplace } - else: #female, no date, no place - text = _("%(female_name)s was buried.") % { - 'female_name' : person_name } + text = _("%(female_name)s was buried in %(month_year)s.") % values + elif bplace: #female, no date, place + text = _("%(female_name)s was buried in %(burial_place)s.") % values + else: #female, no date, no place + text = _("%(female_name)s was buried.") % values if text: text = text + " " return text +#------------------------------------------------------------------------- +# +# list_person_str +# +#------------------------------------------------------------------------- def list_person_str(database,person,person_name=None,empty_date="",empty_place=""): """ Briefly list person and birth/death events. @@ -1613,10 +1670,19 @@ def list_person_str(database,person,person_name=None,empty_date="",empty_place=" else: person_name = _('She') - bdate,bplace,bdate_full,ddate,dplace,ddate_full = \ + bdate,bplace,bdate_full,bdate_mod,ddate,dplace,ddate_full,ddate_mod = \ get_birth_death_strings(database,person) text = "" + + values = { + 'male_name' : person_name, + 'female_name' : person_name, + 'birth_date' : bdate, + 'birth_place' : bplace, + 'death_date' : ddate, + 'death_place' : dplace, + } if person.get_gender() == RelLib.Person.MALE: if bdate: @@ -1625,98 +1691,65 @@ def list_person_str(database,person,person_name=None,empty_date="",empty_place=" if dplace: text = _("%(male_name)s " "Born: %(birth_date)s %(birth_place)s " - "Died: %(death_date)s %(death_place)s.") % { - 'male_name' : person_name, - 'birth_date' : bdate, 'birth_place' : bplace, - 'death_date' : ddate,'death_place' : dplace } + "Died: %(death_date)s %(death_place)s.") % values else: text = _("%(male_name)s " "Born: %(birth_date)s %(birth_place)s " - "Died: %(death_date)s.") % { - 'male_name' : person_name, - 'birth_date' : bdate, 'birth_place' : bplace, - 'death_date' : ddate } + "Died: %(death_date)s.") % values else: if dplace: text = _("%(male_name)s " "Born: %(birth_date)s %(birth_place)s " - "Died: %(death_place)s.") % { - 'male_name' : person_name, - 'birth_date' : bdate, 'birth_place' : bplace, - 'death_place' : dplace } + "Died: %(death_place)s.") % values else: text = _("%(male_name)s " - "Born: %(birth_date)s %(birth_place)s.") % { - 'male_name' : person_name, - 'birth_date' : bdate, 'birth_place' : bplace } + "Born: %(birth_date)s %(birth_place)s.") % values else: if ddate: if dplace: text = _("%(male_name)s Born: %(birth_date)s " - "Died: %(death_date)s %(death_place)s.") % { - 'male_name' : person_name, 'birth_date' : bdate, - 'death_date' : ddate,'death_place' : dplace } + "Died: %(death_date)s %(death_place)s.") % values else: text = _("%(male_name)s " - "Born: %(birth_date)s Died: %(death_date)s.") % { - 'male_name' : person_name, 'birth_date' : bdate, - 'death_date' : ddate } + "Born: %(birth_date)s Died: %(death_date)s.") % values else: if dplace: text = _("%(male_name)s " - "Born: %(birth_date)s Died: %(death_place)s.") % { - 'male_name' : person_name, - 'birth_date' : bdate, 'death_place' : dplace } + "Born: %(birth_date)s Died: %(death_place)s.") % values else: - text = _("%(male_name)s Born: %(birth_date)s.") % { - 'male_name' : person_name, 'birth_date' : bdate } + text = _("%(male_name)s Born: %(birth_date)s.") % values else: if bplace: if ddate: if dplace: text = _("%(male_name)s " "Born: %(birth_place)s " - "Died: %(death_date)s %(death_place)s.") % { - 'male_name' : person_name, - 'birth_place' : bplace, - 'death_date' : ddate,'death_place' : dplace } + "Died: %(death_date)s %(death_place)s.") % values else: text = _("%(male_name)s " "Born: %(birth_place)s " - "Died: %(death_date)s.") % { - 'male_name' : person_name, - 'birth_place' : bplace, - 'death_date' : ddate } + "Died: %(death_date)s.") % values else: if dplace: text = _("%(male_name)s " "Born: %(birth_place)s " - "Died: %(death_place)s.") % { - 'male_name' : person_name, - 'birth_place' : bplace, - 'death_place' : dplace } + "Died: %(death_place)s.") % values else: text = _("%(male_name)s " - "Born: %(birth_place)s.") % { - 'male_name' : person_name, 'birth_place' : bplace } + "Born: %(birth_place)s.") % values else: if ddate: if dplace: text = _("%(male_name)s " - "Died: %(death_date)s %(death_place)s.") % { - 'male_name' : person_name, - 'death_date' : ddate,'death_place' : dplace } + "Died: %(death_date)s %(death_place)s.") % values else: text = _("%(male_name)s " - "Died: %(death_date)s.") % { - 'male_name' : person_name, 'death_date' : ddate } + "Died: %(death_date)s.") % values else: if dplace: - text = _("%(male_name)s Died: %(death_place)s.") % { - 'male_name' : person_name, 'death_place' : dplace } + text = _("%(male_name)s Died: %(death_place)s.") % values else: - text = _("%(male_name)s.") % { - 'male_name' : person_name } + text = _("%(male_name)s.") % values else: if bdate: if bplace: @@ -1724,104 +1757,65 @@ def list_person_str(database,person,person_name=None,empty_date="",empty_place=" if dplace: text = _("%(female_name)s " "Born: %(birth_date)s %(birth_place)s " - "Died: %(death_date)s %(death_place)s.") % { - 'female_name' : person_name, - 'birth_date' : bdate, 'birth_place' : bplace, - 'death_date' : ddate,'death_place' : dplace } + "Died: %(death_date)s %(death_place)s.") % values else: text = _("%(female_name)s " "Born: %(birth_date)s %(birth_place)s " - "Died: %(death_date)s.") % { - 'female_name' : person_name, - 'birth_date' : bdate, 'birth_place' : bplace, - 'death_date' : ddate } + "Died: %(death_date)s.") % values else: if dplace: text = _("%(female_name)s " "Born: %(birth_date)s %(birth_place)s " - "Died: %(death_place)s.") % { - 'female_name' : person_name, - 'birth_date' : bdate, 'birth_place' : bplace, - 'death_place' : dplace } + "Died: %(death_place)s.") % values else: text = _("%(female_name)s " - "Born: %(birth_date)s %(birth_place)s.") % { - 'female_name' : person_name, - 'birth_date' : bdate, 'birth_place' : bplace } + "Born: %(birth_date)s %(birth_place)s.") % values else: if ddate: if dplace: text = _("%(female_name)s Born: %(birth_date)s " - "Died: %(death_date)s %(death_place)s.") % { - 'female_name' : person_name, 'birth_date' : bdate, - 'death_date' : ddate,'death_place' : dplace } + "Died: %(death_date)s %(death_place)s.") % values else: - text = _("%(female_name)s " - "Born: %(birth_date)s Died: %(death_date)s.") % { - 'female_name' : person_name, 'birth_date' : bdate, - 'death_date' : ddate } + text = _("%(female_name)s Born: %(birth_date)s Died: %(death_date)s.") % values else: if dplace: - text = _("%(female_name)s " - "Born: %(birth_date)s Died: %(death_place)s.") % { - 'female_name' : person_name, - 'birth_date' : bdate, 'death_place' : dplace } + text = _("%(female_name)s Born: %(birth_date)s Died: %(death_place)s.") % values else: - text = _("%(female_name)s Born: %(birth_date)s.") % { - 'female_name' : person_name, 'birth_date' : bdate } + text = _("%(female_name)s Born: %(birth_date)s.") % values else: if bplace: if ddate: if dplace: - text = _("%(female_name)s " - "Born: %(birth_place)s " - "Died: %(death_date)s %(death_place)s.") % { - 'female_name' : person_name, - 'birth_place' : bplace, - 'death_date' : ddate,'death_place' : dplace } + text = _("%(female_name)s Born: %(birth_place)s Died: %(death_date)s %(death_place)s.") % values else: - text = _("%(female_name)s " - "Born: %(birth_place)s " - "Died: %(death_date)s.") % { - 'female_name' : person_name, - 'birth_place' : bplace, - 'death_date' : ddate } + text = _("%(female_name)s Born: %(birth_place)s Died: %(death_date)s.") % values else: if dplace: - text = _("%(female_name)s " - "Born: %(birth_place)s " - "Died: %(death_place)s.") % { - 'female_name' : person_name, - 'birth_place' : bplace, - 'death_place' : dplace } + text = _("%(female_name)s Born: %(birth_place)s Died: %(death_place)s.") % values else: - text = _("%(female_name)s " - "Born: %(birth_place)s.") % { - 'female_name' : person_name, 'birth_place' : bplace } + text = _("%(female_name)s Born: %(birth_place)s.") % values else: if ddate: if dplace: - text = _("%(female_name)s " - "Died: %(death_date)s %(death_place)s.") % { - 'female_name' : person_name, - 'death_date' : ddate,'death_place' : dplace } + text = _("%(female_name)s Died: %(death_date)s %(death_place)s.") % values else: - text = _("%(female_name)s " - "Died: %(death_date)s.") % { - 'female_name' : person_name, 'death_date' : ddate } + text = _("%(female_name)s Died: %(death_date)s.") % values else: if dplace: - text = _("%(female_name)s Died: %(death_place)s.") % { - 'female_name' : person_name, 'death_place' : dplace } + text = _("%(female_name)s Died: %(death_place)s.") % values else: - text = _("%(female_name)s.") % { - 'female_name' : person_name } + text = _("%(female_name)s.") % values if text: text = "- %s " % text return text +#------------------------------------------------------------------------- +# +# relationship_name +# +#------------------------------------------------------------------------- _rtype = { RelLib.Family.MARRIED : _("Married"), RelLib.Family.UNMARRIED : _("Unmarried"), @@ -1882,3 +1876,5 @@ def old_calc_age(database,person): age = death.get_day() + 31 - birth.get_day() # calc age in days units = 3 # day return (age,units) + +