* doc/gramps-manual/C/usage.xml: Update.

* doc/gramps-manual/C/figures/*.png: Add new figures.
* src/MergePeople.py: Minor cleanups; Help buttons.
* src/MergeData.py: Minor cleanups; Help buttons.
* src/mergedata.glade: Minor cleanups; Help buttons.


svn: r4472
This commit is contained in:
Alex Roitman 2005-05-03 17:17:17 +00:00
parent 06ca7b40fd
commit 0774bb6e19
9 changed files with 281 additions and 42 deletions

View File

@ -1,3 +1,10 @@
2005-05-03 Alex Roitman <shura@gramps-project.org>
* doc/gramps-manual/C/usage.xml: Update.
* doc/gramps-manual/C/figures/*.png: Add new figures.
* src/MergePeople.py: Minor cleanups; Help buttons.
* src/MergeData.py: Minor cleanups; Help buttons.
* src/mergedata.glade: Minor cleanups; Help buttons.
2005-05-03 Don Allingham <don@gramps-project.org>
* src/ReportUtils.py: fixed type (get-day() -> get_day())

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -1567,6 +1567,28 @@ all changes are immediate.</para></note>
</listitem></varlistentry>
</variablelist>
<variablelist>
<varlistentry><term><guilabel>Data</guilabel></term>
<listitem>
<para>The <guilabel>Data</guilabel> 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.</para>
<para> The central part shows the list of all Key/Value pairs, if any.
The buttons <guibutton>+</guibutton> and <guibutton>-</guibutton>
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.
</para>
</listitem></varlistentry>
</variablelist>
<variablelist>
<varlistentry><term><guilabel>Gallery</guilabel></term>
<listitem>
@ -2408,46 +2430,168 @@ all changes are immediate.</para></note>
</sect2>
<!-- ================ Usage Sub-subsection ================ -->
<sect2 id="adv-merge">
<title>Merge People</title>
<para> Sometime two people entries in the database turn out to be
describing the same person. When this happens, merging people is
<sect2 id="adv-merge"><title>Merging records</title>
<para> 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.</para>
<para>Whenever you detect duplicate records, merging them
a useful way of correcting the situation. </para>
<para> To make a merge, exactly two people have to be selected in the
People View. This is accomplished by selecting one person and then
<tip><para> 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 <keycap>Ctrl</keycap> key.
</para>
</para></tip>
<sect3 id="adv-merge-people"><title>Merge People</title>
<para> There are two ways of merging personal records:
<guilabel>Compare and Merge</guilabel> and
<guilabel>Fast Merge</guilabel>, both available from the
<guimenu>Edit</guimenu> menu.
</para>
<para> When exactly two people are selected, choose
<menuchoice><guimenu>Edit</guimenu><guimenuitem>Merge...</guimenuitem></menuchoice>
to evoke <guilabel>Merge People</guilabel> dialog. The dialog allows you to
retain the data from either person as the primary data for the new
(merged) person. The data from the other person can be kept as alternate
data if you so choose. If you would like to continue editing data of
a newly merged person, click the <guibutton>Merge and edit</guibutton>
button. </para>
</sect2>
<note><para>
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.
</para></note>
<variablelist>
<varlistentry><term><guilabel>Compare and Merge</guilabel></term>
<listitem><para>
When exactly two people are selected, choose
<menuchoice><guimenu>Edit</guimenu><guimenuitem>Compare and
Merge...</guimenuitem></menuchoice> to evoke <guilabel>Compare
People</guilabel> dialog.</para>
<!-- ==== Figure: Compare People dialog ==== -->
<figure id="comp-people-fig">
<title>Compare People dialog</title>
<screenshot><mediaobject><imageobject><imagedata
fileref="figures/comp-people.png" format="PNG"/></imageobject>
<textobject>
<phrase>Shows Compare People dialog. </phrase>
</textobject></mediaobject></screenshot></figure>
<!-- ==== End of Figure ==== -->
<para>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
<guibutton>Cancel</guibutton> to close the dialog without making
any changes. If you decide to proceed with merging, select the
appropriate <guilabel>Select</guilabel> radio button to specify
the record to be used as the source of primary data,
then click <guibutton>Merge and close</guibutton>. </para>
<para>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.
</para></listitem></varlistentry>
</variablelist>
<variablelist>
<varlistentry><term><guilabel>Fast Merge</guilabel></term>
<listitem><para>
When exactly two people are selected, choose
<menuchoice><guimenu>Edit</guimenu><guimenuitem>Fast
Merge</guimenuitem></menuchoice> to evoke <guilabel>Merge
People</guilabel> dialog.</para>
<!-- ==== Figure: Compare People dialog ==== -->
<figure id="merge-people-fig">
<title>Merge People dialog</title>
<screenshot><mediaobject><imageobject><imagedata
fileref="figures/merge-people.png" format="PNG"/></imageobject>
<textobject>
<phrase>Shows Merge People dialog. </phrase>
</textobject></mediaobject></screenshot></figure>
<!-- ==== End of Figure ==== -->
<para>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.
</para>
<tip><para>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 <guilabel>Compare and Merge</guilabel> method
described above..
</para></tip>
</listitem></varlistentry>
</variablelist>
</sect3>
<!-- ================ Usage Sub-subsection ================ -->
<sect2 id="adv-merge-places">
<sect3 id="adv-merge-sources">
<title>Merge Sources</title>
<para>When exactly two sources are selected, choose
<menuchoice><guimenu>Edit</guimenu><guimenuitem>Compare and
Merge...</guimenuitem></menuchoice> to evoke <guilabel>Merge
Sources</guilabel> dialog.</para>
<!-- ==== Figure: Merge Sources dialog ==== -->
<figure id="merge-src-fig">
<title>Merge Sources dialog</title>
<screenshot><mediaobject><imageobject><imagedata
fileref="figures/merge-src.png" format="PNG"/></imageobject>
<textobject>
<phrase>Shows Merge Sources dialog. </phrase>
</textobject></mediaobject></screenshot></figure>
<!-- ==== End of Figure ==== -->
<para>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
<guibutton>Cancel</guibutton> 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 <guibutton>OK</guibutton>. </para>
</sect3>
<sect3 id="adv-merge-places">
<title>Merge Places</title>
<para> Sometime two place entries in the database turn out to be
describing the same place. When this happens, merging places is
a useful way of correcting the situation. </para>
<para> To make a merge, exactly two places have to be selected in the
Places View. This is accomplished by selecting one place and then
selecting another place while holding down <keycap>Ctrl</keycap> key.
</para>
<para> When exactly two places are selected, choose
<menuchoice><guimenu>Edit</guimenu><guimenuitem>Merge...</guimenuitem></menuchoice>
to evoke <guilabel>Merge Places</guilabel> dialog. The dialog allows
you to retain the data from either place as the primary data for
the new (merged) place. Alternatively, you may type in other data
for the new place, if you click <guilabel>Other</guilabel> radio
button.</para>
<para>When exactly two places are selected, choose
<menuchoice><guimenu>Edit</guimenu><guimenuitem>Compare and
Merge...</guimenuitem></menuchoice> to evoke <guilabel>Select
title</guilabel> dialog.</para>
<!-- ==== Figure: Select title dialog ==== -->
<figure id="merge-plc-fig">
<title>Merge Places dialog</title>
<screenshot><mediaobject><imageobject><imagedata
fileref="figures/merge-plc.png" format="PNG"/></imageobject>
<textobject>
<phrase>Shows Select title dialog. </phrase>
</textobject></mediaobject></screenshot></figure>
<!-- ==== End of Figure ==== -->
<para>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
<guibutton>Cancel</guibutton> 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 <guilabel>Other</guilabel> and enter new text,
then click <guibutton>OK</guibutton>. </para>
</sect3>
</sect2>
</sect1>

View File

@ -33,6 +33,7 @@ from gettext import gettext as _
#
#-------------------------------------------------------------------------
import gtk
from gnome import help_display
#-------------------------------------------------------------------------
#
@ -73,9 +74,14 @@ class MergePlaces:
self.glade.signal_autoconnect({
"destroy_passed_object" : Utils.destroy_passed_object,
"on_merge_places_clicked" : self.on_merge_places_clicked,
"on_help_places_clicked" : self.help,
})
self.top.show()
def help(self,obj):
"""Display the relevant portion of GRAMPS manual"""
help_display('gramps-manual','adv-merge-places')
def on_merge_places_clicked(self,obj):
"""
Performs the merge of the places when the merge button is clicked.
@ -175,6 +181,8 @@ class MergeSources:
self.glade = gtk.glade.XML(const.mergeFile,"merge_sources","gramps")
self.top = self.glade.get_widget("merge_sources")
Utils.set_titles(self.top,self.glade.get_widget('title'),
_("Merge Sources"))
self.title1 = self.glade.get_widget("title1")
self.title2 = self.glade.get_widget("title2")
@ -203,12 +211,17 @@ class MergeSources:
self.glade.get_widget('ok').connect('clicked',self.merge)
self.glade.get_widget('cancel').connect('clicked',self.close)
self.glade.get_widget('help').connect('clicked',self.help)
self.trans = self.db.transaction_begin()
self.top.show()
def close(self,obj):
self.top.destroy()
def help(self,obj):
"""Display the relevant portion of GRAMPS manual"""
help_display('gramps-manual','adv-merge-sources')
def merge(self,obj):
"""
Performs the merge of the sources when the merge button is clicked.

View File

@ -27,6 +27,15 @@
#-------------------------------------------------------------------------
from gettext import gettext as _
#-------------------------------------------------------------------------
#
# GTK/Gnome modules
#
#-------------------------------------------------------------------------
import gtk
import pango
from gnome import help_display
#-------------------------------------------------------------------------
#
# GRAMPS modules
@ -37,8 +46,6 @@ import ReportUtils
import Utils
import NameDisplay
import const
import gtk
import pango
sex = ( _("female"), _("male"), _("unknown"))
@ -62,10 +69,15 @@ class Compare:
self.glade.get_widget('cancel').connect('clicked',self.cancel)
self.glade.get_widget('close').connect('clicked',self.merge)
self.glade.get_widget('help').connect('clicked',self.help)
def cancel(self,obj):
self.top.destroy()
def help(self,obj):
"""Display the relevant portion of GRAMPS manual"""
help_display('gramps-manual','adv-merge-people')
def merge(self,obj):
if self.glade.get_widget('select1').get_active():
merge = MergePeople(self.db,self.p1,self.p2)
@ -219,8 +231,11 @@ class MergePeopleUI:
p1.set_label(n1)
p2.set_label(n2)
Utils.set_titles(top,glade.get_widget('title'),_("Merge People"))
glade.get_widget('help').connect('clicked',self.help)
ret = top.run()
ret = gtk.RESPONSE_HELP
while ret == gtk.RESPONSE_HELP:
ret = top.run()
if ret == gtk.RESPONSE_OK:
if p1.get_active():
@ -231,6 +246,11 @@ class MergePeopleUI:
update()
top.destroy()
def help(self,obj):
"""Display the relevant portion of GRAMPS manual"""
help_display('gramps-manual','adv-merge-people')
def name_of(p):
if not p:
return ""

View File

@ -58,6 +58,20 @@
<signal name="clicked" handler="on_merge_places_clicked" object="merge_places"/>
</widget>
</child>
<child>
<widget class="GtkButton" id="help">
<property name="visible">True</property>
<property name="can_default">True</property>
<property name="can_focus">True</property>
<property name="label">gtk-help</property>
<property name="use_stock">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<property name="response_id">-11</property>
<signal name="clicked" handler="on_help_places_clicked" last_modification_time="Tue, 03 May 2005 16:20:19 GMT"/>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>
@ -100,12 +114,13 @@
<child>
<widget class="GtkTable" id="table5">
<property name="border_width">6</property>
<property name="visible">True</property>
<property name="n_rows">3</property>
<property name="n_columns">2</property>
<property name="homogeneous">False</property>
<property name="row_spacing">0</property>
<property name="column_spacing">0</property>
<property name="column_spacing">6</property>
<child>
<widget class="GtkEntry" id="title3_text">
@ -347,6 +362,20 @@
<signal name="clicked" handler="on_merge_clicked" object="merge"/>
</widget>
</child>
<child>
<widget class="GtkButton" id="help">
<property name="visible">True</property>
<property name="can_default">True</property>
<property name="can_focus">True</property>
<property name="label">gtk-help</property>
<property name="use_stock">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<property name="response_id">-11</property>
<signal name="clicked" handler="on_help_clicked" last_modification_time="Tue, 03 May 2005 15:36:08 GMT"/>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>
@ -482,7 +511,6 @@
<property name="active">False</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
<property name="group">select1</property>
</widget>
<packing>
<property name="left_attach">1</property>
@ -505,6 +533,7 @@
<property name="active">True</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
<property name="group">select2</property>
</widget>
<packing>
<property name="left_attach">0</property>
@ -539,9 +568,9 @@
<property name="type">GTK_WINDOW_TOPLEVEL</property>
<property name="window_position">GTK_WIN_POS_NONE</property>
<property name="modal">False</property>
<property name="default_width">620</property>
<property name="resizable">True</property>
<property name="destroy_with_parent">False</property>
<property name="icon">gramps.png</property>
<property name="decorated">True</property>
<property name="skip_taskbar_hint">False</property>
<property name="skip_pager_hint">False</property>
@ -586,6 +615,19 @@
<property name="response_id">-5</property>
</widget>
</child>
<child>
<widget class="GtkButton" id="help">
<property name="visible">True</property>
<property name="can_default">True</property>
<property name="can_focus">True</property>
<property name="label">gtk-help</property>
<property name="use_stock">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<property name="response_id">-11</property>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>
@ -606,9 +648,9 @@
<property name="column_spacing">6</property>
<child>
<widget class="GtkLabel" id="label80">
<widget class="GtkLabel" id="title">
<property name="visible">True</property>
<property name="label" translatable="yes">&lt;span weight=&quot;bold&quot; size=&quot;larger&quot;&gt;Merge Sources&lt;/span&gt;</property>
<property name="label" translatable="yes"></property>
<property name="use_underline">False</property>
<property name="use_markup">True</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
@ -1189,6 +1231,19 @@
<signal name="clicked" handler="on_merge_places_clicked" object="merge_places"/>
</widget>
</child>
<child>
<widget class="GtkButton" id="help">
<property name="visible">True</property>
<property name="can_default">True</property>
<property name="can_focus">True</property>
<property name="label">gtk-help</property>
<property name="use_stock">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<property name="response_id">-11</property>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>