diff --git a/src/Utils.py b/src/Utils.py index d01b619ee..3e45858b4 100644 --- a/src/Utils.py +++ b/src/Utils.py @@ -89,11 +89,11 @@ def format_gender( type): return gender.get(type[0], _("Invalid")) confidence = { - gen.lib.SourceRef.CONF_VERY_HIGH : _("Very High"), - gen.lib.SourceRef.CONF_HIGH : _("High"), - gen.lib.SourceRef.CONF_NORMAL : _("Normal"), - gen.lib.SourceRef.CONF_LOW : _("Low"), - gen.lib.SourceRef.CONF_VERY_LOW : _("Very Low"), + gen.lib.Citation.CONF_VERY_HIGH : _("Very High"), + gen.lib.Citation.CONF_HIGH : _("High"), + gen.lib.Citation.CONF_NORMAL : _("Normal"), + gen.lib.Citation.CONF_LOW : _("Low"), + gen.lib.Citation.CONF_VERY_LOW : _("Very Low"), } family_rel_descriptions = { diff --git a/src/gen/lib/Makefile.am b/src/gen/lib/Makefile.am index 01804bd6e..e93115a7f 100644 --- a/src/gen/lib/Makefile.am +++ b/src/gen/lib/Makefile.am @@ -56,11 +56,9 @@ pkgdata_PYTHON = \ repotype.py \ researcher.py \ secondaryobj.py \ - srcbase.py \ srcmediatype.py \ srcnote.py \ src.py \ - srcref.py \ surname.py \ surnamebase.py \ styledtext.py \ diff --git a/src/gen/lib/__init__.py b/src/gen/lib/__init__.py index 354da33f1..b01fd9a74 100644 --- a/src/gen/lib/__init__.py +++ b/src/gen/lib/__init__.py @@ -36,7 +36,6 @@ from gen.lib.ldsord import LdsOrd from gen.lib.mediaref import MediaRef from gen.lib.name import Name from gen.lib.reporef import RepoRef -from gen.lib.srcref import SourceRef from gen.lib.surname import Surname from gen.lib.url import Url from gen.lib.witness import Witness diff --git a/src/gen/lib/srcbase.py b/src/gen/lib/srcbase.py deleted file mode 100644 index 9a882c929..000000000 --- a/src/gen/lib/srcbase.py +++ /dev/null @@ -1,196 +0,0 @@ -# -# Gramps - a GTK+/GNOME based genealogy program -# -# Copyright (C) 2006 Donald N. Allingham -# Copyright (C) 2010 Michiel D. Nauta -# Copyright (C) 2011 Tim G L Lyons -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# - -# $Id$ - -""" -SourceBase class for GRAMPS. -""" - -#------------------------------------------------------------------------- -# -# GRAMPS modules -# -#------------------------------------------------------------------------- -from gen.lib.srcref import SourceRef -from gen.lib.const import IDENTICAL, EQUAL, DIFFERENT - -#------------------------------------------------------------------------- -# -# SourceBase classes -# FIXME: CITATION: As of Gramps 3.4, SourceBase is no longer used so this module -# needs to be removed -# -#------------------------------------------------------------------------- -class SourceBase(object): - """ - Base class for storing source references. - """ - def __init__(self, source=None): - """ - Create a new SourceBase, copying from source if not None. - - :param source: Object used to initialize the new object - :type source: SourceBase - """ - - self.source_list = map(SourceRef, source.source_list) if source else [] - - def serialize(self): - """ - Convert the object to a serialized tuple of data. - """ - return [sref.serialize() for sref in self.source_list] - - def unserialize(self, data): - """ - Convert a serialized tuple of data to an object. - """ - self.source_list = [SourceRef().unserialize(item) for item in data] - - def add_source_reference(self, src_ref) : - """ - Add a source reference to this object. - - :param src_ref: The source reference to be added to the - SourceNote's list of source references. - :type src_ref: :class:`~gen.lib.srcref.SourceRef` - """ - self.source_list.append(src_ref) - - def get_source_references(self) : - """ - Return the list of source references associated with the object. - - :returns: Returns the list of :class:`~gen.lib.srcref.SourceRef` objects associated with - the object. - :rtype: list - """ - return self.source_list - - def get_sourcref_child_list(self): - """ - Return the list of child secondary objects that may refer sources. - - :returns: Returns the list of child secondary child objects that may - refer sources. - :rtype: list - """ - return [] - - def has_source_reference(self, src_handle) : - """ - Return True if the object or any of it's child objects has reference - to this source handle. - - :param src_handle: The source handle to be checked. - :type src_handle: str - :returns: Returns whether the object or any of it's child objects has - reference to this source handle. - :rtype: bool - """ - for src_ref in self.source_list: - # Using direct access here, not the getter method -- efficiency! - if src_ref.ref == src_handle: - return True - - for item in self.get_sourcref_child_list(): - if item.has_source_reference(src_handle): - return True - - return False - - def remove_source_references(self, src_handle_list): - """ - Remove references to all source handles in the list in this object - and all child objects. - - :param src_handle_list: The list of source handles to be removed. - :type src_handle_list: list - """ - new_source_list = [src_ref for src_ref in self.source_list - if src_ref.ref not in src_handle_list] - self.source_list = new_source_list - - for item in self.get_sourcref_child_list(): - item.remove_source_references(src_handle_list) - - def replace_source_references(self, old_handle, new_handle): - """ - Replace references to source handles in the list in this object and - all child objects and merge equivalent entries. - - :param old_handle: The source handle to be replaced. - :type old_handle: str - :param new_handle: The source handle to replace the old one with. - :type new_handle: str - """ - refs_list = [ src_ref.ref for src_ref in self.source_list ] - new_ref = None - if new_handle in refs_list: - new_ref = self.source_list[refs_list.index(new_handle)] - n_replace = refs_list.count(old_handle) - for ix_replace in xrange(n_replace): - idx = refs_list.index(old_handle) - self.source_list[idx].ref = new_handle - refs_list[idx] = new_handle - if new_ref: - src_ref = self.source_list[idx] - equi = new_ref.is_equivalent(src_ref) - if equi != DIFFERENT: - if equi == EQUAL: - new_ref.merge(src_ref) - self.source_list.pop(idx) - refs_list.pop(idx) - - for item in self.get_sourcref_child_list(): - item.replace_source_references(old_handle, new_handle) - - def set_source_reference_list(self, src_ref_list) : - """ - Assign the passed list to the object's list of source references. - - :param src_ref_list: List of source references to ba associated - with the object - :type src_ref_list: list of :class:`~gen.lib.srcref.SourceRef` instances - """ - self.source_list = src_ref_list - - def _merge_source_reference_list(self, acquisition): - """ - Merge the list of source references from acquisition with our own. - - :param acquisition: the source references list of this object will be - merged with the current source references list. - :rtype acquisition: SourceRef - """ - srcref_list = self.source_list[:] - for addendum in acquisition.get_source_references(): - for srcref in srcref_list: - equi = srcref.is_equivalent(addendum) - if equi == IDENTICAL: - break - elif equi == EQUAL: - srcref.merge(addendum) - break - else: - self.source_list.append(addendum) diff --git a/src/gen/lib/srcref.py b/src/gen/lib/srcref.py deleted file mode 100644 index a9d8e7256..000000000 --- a/src/gen/lib/srcref.py +++ /dev/null @@ -1,176 +0,0 @@ -# -# Gramps - a GTK+/GNOME based genealogy program -# -# Copyright (C) 2000-2007 Donald N. Allingham -# Copyright (C) 2010 Michiel D. Nauta -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# - -# $Id$ - -""" -Source Reference class for GRAMPS. -""" - -#------------------------------------------------------------------------- -# -# Python modules -# -#------------------------------------------------------------------------- -from warnings import warn - -#------------------------------------------------------------------------- -# -# GRAMPS modules -# -#------------------------------------------------------------------------- -from gen.lib.secondaryobj import SecondaryObject -from gen.lib.datebase import DateBase -from gen.lib.privacybase import PrivacyBase -from gen.lib.notebase import NoteBase -from gen.lib.refbase import RefBase -from gen.lib.const import IDENTICAL, EQUAL, DIFFERENT - -#------------------------------------------------------------------------- -# -# Source References for all primary objects -# -#------------------------------------------------------------------------- -class SourceRef(SecondaryObject, DateBase, PrivacyBase, NoteBase, RefBase): - """ - Source reference, containing detailed information about how a referenced - source relates to it. - """ - - CONF_VERY_HIGH = 4 - CONF_HIGH = 3 - CONF_NORMAL = 2 - CONF_LOW = 1 - CONF_VERY_LOW = 0 - - def __init__(self, source=None): - """Create a new SourceRef, copying from the source if present.""" - DateBase.__init__(self, source) - PrivacyBase.__init__(self, source) - NoteBase.__init__(self, source) - RefBase.__init__(self, source) - if source: - self.confidence = source.confidence - self.page = source.page - else: - self.confidence = SourceRef.CONF_NORMAL - self.page = "" - - def serialize(self): - """ - Convert the object to a serialized tuple of data. - """ - return (DateBase.serialize(self), - PrivacyBase.serialize(self), - NoteBase.serialize(self), - self.confidence, - RefBase.serialize(self), - self.page) - - def unserialize(self, data): - """ - Convert a serialized tuple of data to an object. - """ - (date, privacy, note_list, - self.confidence, ref, self.page) = data - DateBase.unserialize(self, date) - PrivacyBase.unserialize(self, privacy) - NoteBase.unserialize(self, note_list) - RefBase.unserialize(self, ref) - return self - - def get_text_data_list(self): - """ - Return the list of all textual attributes of the object. - - :returns: Returns the list of all textual attributes of the object. - :rtype: list - """ - return [self.page] - - def get_referenced_handles(self): - """ - Return the list of (classname, handle) tuples for all directly - referenced primary objects. - - :returns: List of (classname, handle) tuples for referenced objects. - :rtype: list - """ - ret = self.get_referenced_note_handles() - if self.ref: - ret += [('Source', self.ref)] - return ret - - def is_equivalent(self, other): - """ - Return if this source reference is equivalent, that is agreees in - reference, source page and date, to other. - - :param other: The source reference to compare this one to. - :rtype other: SourceRef - ;returns: Constant indicating degree of equivalence. - :rtype: int - """ - if self.ref != other.ref or \ - self.page != other.page or \ - self.get_date_object() != other.get_date_object(): - return DIFFERENT - else: - if self.is_equal(other): - return IDENTICAL - else: - return EQUAL - - def merge(self, acquisition): - """ - Merge the content of acquisition into this source reference. - - :param acquisition: The source reference to merge with the present one. - :rtype acquisition: SourceRef - """ - self._merge_privacy(acquisition) - self._merge_note_list(acquisition) - # merge confidence - level_priority = [0, 4, 1, 3, 2] - idx = min(level_priority.index(self.confidence), - level_priority.index(acquisition.confidence)) - self.confidence = level_priority[idx] - - def set_confidence_level(self, val): - """Set the confidence level.""" - self.confidence = val - - def get_confidence_level(self): - """Return the confidence level.""" - return self.confidence - - def set_page(self, page): - """Set the page indicator of the SourceRef.""" - self.page = page - - def get_page(self): - """Get the page indicator of the SourceRef.""" - return self.page - - def are_equal(self, other): - """Deprecated function - use is_equal instead.""" - warn( "Use is_equal instead of are_equal", DeprecationWarning, 2) - return self.is_equal(other) diff --git a/src/gen/plug/report/_bibliography.py b/src/gen/plug/report/_bibliography.py index 42a5ffc52..9a2a394b6 100644 --- a/src/gen/plug/report/_bibliography.py +++ b/src/gen/plug/report/_bibliography.py @@ -26,7 +26,7 @@ Contain and organize bibliographic information. """ import string import math -from gen.lib import SourceRef +import gen.lib class Citation(object): """ @@ -212,7 +212,8 @@ class Bibliography(object): return True if ( self.mode & self.MODE_CONF ) == self.MODE_CONF: confidence = source_ref.get_confidence_level() - if confidence is not None and confidence != SourceRef.CONF_NORMAL: + if confidence is not None and confidence != \ + gen.lib.Citation.CONF_NORMAL: return True if ( self.mode & self.MODE_NOTE ) == self.MODE_NOTE: if len(source_ref.get_note_list()) != 0: diff --git a/src/gen/plug/report/endnotes.py b/src/gen/plug/report/endnotes.py index 20e15e181..a6271bb55 100644 --- a/src/gen/plug/report/endnotes.py +++ b/src/gen/plug/report/endnotes.py @@ -27,7 +27,7 @@ Provide utilities for printing endnotes in text reports. """ from gen.plug.docgen import FontStyle, ParagraphStyle, FONT_SANS_SERIF -from gen.lib import NoteType, SourceRef +from gen.lib import NoteType, Citation from gen.ggettext import gettext as _ from Utils import confidence from DateHandler import displayer @@ -84,7 +84,7 @@ def cite_source(bibliography, database, obj): @param bibliography: The bibliography to contain the citations. @type bibliography: L{Bibliography} @param obj: An object with source references. - @type obj: L{gen.lib.srcbase} + @type obj: L{gen.lib.CitationBase} """ txt = "" slist = obj.get_citation_list() @@ -188,7 +188,7 @@ def _format_ref_text(ref, key): ref_txt = ref.get_page() # Print only confidence level if it is not Normal - if ref.get_confidence_level() != SourceRef.CONF_NORMAL: + if ref.get_confidence_level() != Citation.CONF_NORMAL: ref_txt += " [" + confidence[ref.get_confidence_level()] + "]" return ref_txt diff --git a/src/gui/editors/Makefile.am b/src/gui/editors/Makefile.am index 2a79e2b6e..fb3175a3f 100644 --- a/src/gui/editors/Makefile.am +++ b/src/gui/editors/Makefile.am @@ -34,7 +34,6 @@ pkgdata_PYTHON = \ editreporef.py \ editsecondary.py \ editsource.py \ - editsourceref.py \ editurl.py \ objectentries.py diff --git a/src/gui/editors/__init__.py b/src/gui/editors/__init__.py index 426b07dbc..475671cd5 100644 --- a/src/gui/editors/__init__.py +++ b/src/gui/editors/__init__.py @@ -41,7 +41,6 @@ from editplace import EditPlace, DeletePlaceQuery from editrepository import EditRepository, DeleteRepositoryQuery from editreporef import EditRepoRef from editsource import EditSource, DeleteSrcQuery -from editsourceref import EditSourceRef from editurl import EditUrl from editlink import EditLink diff --git a/src/gui/editors/displaytabs/Makefile.am b/src/gui/editors/displaytabs/Makefile.am index 15a77f716..c71d81eab 100644 --- a/src/gui/editors/displaytabs/Makefile.am +++ b/src/gui/editors/displaytabs/Makefile.am @@ -43,8 +43,6 @@ pkgdata_PYTHON = \ repoembedlist.py \ reporefmodel.py \ sourcebackreflist.py \ - sourceembedlist.py \ - sourcerefmodel.py \ surnamemodel.py \ surnametab.py \ webembedlist.py \ diff --git a/src/gui/editors/displaytabs/__init__.py b/src/gui/editors/displaytabs/__init__.py index 9b2c02047..9cfe0b3e2 100644 --- a/src/gui/editors/displaytabs/__init__.py +++ b/src/gui/editors/displaytabs/__init__.py @@ -60,5 +60,4 @@ from placebackreflist import PlaceBackRefList from repoembedlist import RepoEmbedList from surnametab import SurnameTab from sourcebackreflist import SourceBackRefList -from sourceembedlist import SourceEmbedList from webembedlist import WebEmbedList diff --git a/src/gui/editors/displaytabs/sourceembedlist.py b/src/gui/editors/displaytabs/sourceembedlist.py deleted file mode 100644 index 2c327b97b..000000000 --- a/src/gui/editors/displaytabs/sourceembedlist.py +++ /dev/null @@ -1,230 +0,0 @@ -# -# Gramps - a GTK+/GNOME based genealogy program -# -# Copyright (C) 2000-2006 Donald N. Allingham -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# - -# $Id$ - -#------------------------------------------------------------------------- -# -# Python classes -# -#------------------------------------------------------------------------- -from gen.ggettext import gettext as _ - -#------------------------------------------------------------------------- -# -# GRAMPS classes -# -#------------------------------------------------------------------------- -import gen.lib -from gui.dbguielement import DbGUIElement -from gui.selectors import SelectorFactory -import Errors -from DdTargets import DdTargets -from sourcerefmodel import SourceRefModel -from embeddedlist import EmbeddedList - -#------------------------------------------------------------------------- -# -# SourceEmbedList -# -#------------------------------------------------------------------------- -class SourceEmbedList(EmbeddedList, DbGUIElement): - - _HANDLE_COL = 4 - _DND_TYPE = DdTargets.SOURCEREF - _DND_EXTRA = DdTargets.SOURCE_LINK - - _MSG = { - 'add' : _('Create and add a new source'), - 'del' : _('Remove the existing source'), - 'edit' : _('Edit the selected source'), - 'share' : _('Add an existing source'), - 'up' : _('Move the selected source upwards'), - 'down' : _('Move the selected source downwards'), - } - - #index = column in model. Value = - # (name, sortcol in model, width, markup/text, weigth_col - _column_names = [ - (_('ID'), 0, 75, 0, -1), - (_('Title'), 1, 200, 0, -1), - (_('Author'), 2, 125, 0, -1), - (_('Page'), 3, 100, 0, -1), - ] - - def __init__(self, dbstate, uistate, track, obj): - self.obj = obj - EmbeddedList.__init__(self, dbstate, uistate, track, _('_Sources'), - SourceRefModel, share_button=True, - move_buttons=True) - DbGUIElement.__init__(self, dbstate.db) - self.callman.register_handles({'source': [sref.ref for sref - in self.obj.get_source_references()]}) - - def _connect_db_signals(self): - """ - Implement base class DbGUIElement method - """ - #note: source-rebuild closes the editors, so no need to connect to it - self.callman.register_callbacks( - {'source-delete': self.source_delete, # delete a source we track - 'source-update': self.source_update, # change a source we track - }) - self.callman.connect_all(keys=['source']) - - def get_icon_name(self): - return 'gramps-source' - - def get_data(self): - return self.obj.get_source_references() - - def column_order(self): - return ((1, 0), (1, 1), (1, 2), (1, 3)) - - def add_button_clicked(self, obj): - from gui.editors import EditSourceRef - try: - sref = gen.lib.SourceRef() - src = gen.lib.Source() - EditSourceRef( - self.dbstate, - self.uistate, - self.track, - src, - sref, - self.object_added) - except Errors.WindowActiveError: - pass - - def __blocked_text(self): - """ - Return the common text used when sourceref cannot be edited - """ - return _("This source reference cannot be edited at this time. " - "Either the associated source is already being edited " - "or another source reference that is associated with " - "the same source is being edited.\n\nTo edit this " - "source reference, you need to close the source.") - - def share_button_clicked(self, obj): - from gui.editors import EditSourceRef - SelectSource = SelectorFactory('Source') - - sel = SelectSource(self.dbstate,self.uistate,self.track) - src = sel.run() - if src: - try: - ref = gen.lib.SourceRef() - EditSourceRef(self.dbstate, - self.uistate, - self.track, - src, - ref, - self.object_added) - - except Errors.WindowActiveError: - from QuestionDialog import WarningDialog - WarningDialog(_("Cannot share this reference"), - self.__blocked_text()) - - def edit_button_clicked(self, obj): - from gui.editors import EditSourceRef - sref = self.get_selected() - if sref: - src = self.dbstate.db.get_source_from_handle(sref.ref) - - try: - EditSourceRef(self.dbstate, self.uistate, self.track, - src, sref, self.object_edited) - except Errors.WindowActiveError: - from QuestionDialog import WarningDialog - WarningDialog(_("Cannot edit this reference"), - self.__blocked_text()) - - def object_added(self, reference, primary): - """ - Callback from sourceref editor after adding a new reference (to a new - or an existing source). - Note that if it was to an existing source already present in the - sourcelist, then the source-update signal will also cause a rebuild - at that time. - """ - reference.ref = primary.handle - self.get_data().append(reference) - self.callman.register_handles({'source': [primary.handle]}) - self.changed = True - self.rebuild() - - def object_edited(self, refererence, primary): - """ - Callback from sourceref editor. If the source changes itself, also - the source-change signal will cause a rebuild. - This could be solved in the source editor if it only calls this - method in the case the sourceref part only changes. - """ - self.changed = True - self.rebuild() - - def handle_extra_type(self, objtype, obj): - from gui.editors import EditSourceRef - sref = gen.lib.SourceRef() - src = self.dbstate.db.get_source_from_handle(obj) - try: - EditSourceRef(self.dbstate, self.uistate, self.track, - src, sref, self.object_added) - except Errors.WindowActiveError: - pass - - def source_delete(self, del_src_handle_list): - """ - Outside of this tab source objects have been deleted. Check if tab - and object must be changed. - Note: delete of object will cause reference on database to be removed, - so this method need not do this - """ - rebuild = False - sourceref_list = self.get_data() - ref_handles = [sref.ref for sref in sourceref_list] - for handle in del_src_handle_list : - while 1: - pos = None - try : - pos = ref_handles.index(handle) - except ValueError : - break - - if pos is not None: - #oeps, we need to remove this reference, and rebuild tab - del sourceref_list[pos] - del ref_handles[pos] - rebuild = True - if rebuild: - self.rebuild() - - def source_update(self, upd_src_handle_list): - """ - Outside of this tab media objects have been changed. Check if tab - and object must be changed. - """ - ref_handles = [sref.ref for sref in self.get_data()] - for handle in upd_src_handle_list : - if handle in ref_handles: - self.rebuild() - break diff --git a/src/gui/editors/displaytabs/sourcerefmodel.py b/src/gui/editors/displaytabs/sourcerefmodel.py deleted file mode 100644 index 1360d7e5f..000000000 --- a/src/gui/editors/displaytabs/sourcerefmodel.py +++ /dev/null @@ -1,50 +0,0 @@ -# -# Gramps - a GTK+/GNOME based genealogy program -# -# Copyright (C) 2000-2006 Donald N. Allingham -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# - -# $Id$ - -#------------------------------------------------------------------------- -# -# GTK libraries -# -#------------------------------------------------------------------------- -import gtk - -#------------------------------------------------------------------------- -# -# GRAMPS classes -# -#------------------------------------------------------------------------- - - -#------------------------------------------------------------------------- -# -# SourceRefModel -# -#------------------------------------------------------------------------- -class SourceRefModel(gtk.ListStore): - - def __init__(self, sref_list, db): - gtk.ListStore.__init__(self, str, str, str, str, object) - self.db = db - for sref in sref_list: - src = self.db.get_source_from_handle(sref.get_reference_handle()) - self.append(row=[src.gramps_id, src.title, src.author, - sref.page, sref, ]) diff --git a/src/gui/editors/editsourceref.py b/src/gui/editors/editsourceref.py deleted file mode 100644 index 855ffa6f5..000000000 --- a/src/gui/editors/editsourceref.py +++ /dev/null @@ -1,228 +0,0 @@ -# -# Gramps - a GTK+/GNOME based genealogy program -# -# Copyright (C) 2000-2006 Donald N. Allingham -# 2009 Gary Burton -# 2011 Michiel D. Nauta / MathieuMD -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# - -# $Id$ - -#------------------------------------------------------------------------- -# -# Python modules -# -#------------------------------------------------------------------------- -from gen.ggettext import gettext as _ - -#------------------------------------------------------------------------- -# -# gramps modules -# -#------------------------------------------------------------------------- -import gen.lib -from gen.db import DbTxn -from glade import Glade -from displaytabs import (NoteTab, GalleryTab, SourceBackRefList, - DataEmbedList, RepoEmbedList) -from gui.widgets import (PrivacyButton, MonitoredEntry, MonitoredMenu, - MonitoredDate) -from editreference import RefTab, EditReference - -#------------------------------------------------------------------------- -# -# EditSourceRef class -# -#------------------------------------------------------------------------- -class EditSourceRef(EditReference): - - def __init__(self, state, uistate, track, source, source_ref, update): - - EditReference.__init__(self, state, uistate, track, source, - source_ref, update) - - def _local_init(self): - self.width_key = 'interface.event-ref-width' - self.height_key = 'interface.event-ref-height' - - self.top = Glade() - - self.set_window(self.top.toplevel, - self.top.get_object('source_title'), - _('Source Reference Editor')) - - self.define_warn_box(self.top.get_object("warn_box")) - self.define_expander(self.top.get_object("src_expander")) - - tblref = self.top.get_object('table67') - notebook = self.top.get_object('notebook_ref') - #recreate start page as GrampsTab - notebook.remove_page(0) - self.reftab = RefTab(self.dbstate, self.uistate, self.track, - _('General'), tblref) - tblref = self.top.get_object('table68') - notebook = self.top.get_object('notebook_src') - #recreate start page as GrampsTab - notebook.remove_page(0) - self.primtab = RefTab(self.dbstate, self.uistate, self.track, - _('General'), tblref) - - def _post_init(self): - title = self.top.get_object('title') - volume = self.top.get_object('volume') - if not title.get_text_length(): - title.grab_focus(); - elif not volume.get_text_length(): - volume.grab_focus(); - - def _connect_signals(self): - self.define_ok_button(self.top.get_object('ok'),self.ok_clicked) - self.define_cancel_button(self.top.get_object('cancel')) - self.define_help_button(self.top.get_object("help")) - - def _connect_db_signals(self): - """ - Connect any signals that need to be connected. - Called by the init routine of the base class (_EditPrimary). - """ - self._add_db_signal('source-rebuild', self.close) - self._add_db_signal('source-delete', self.check_for_close) - #note: at the moment, a source cannot be updated while an editor with - # that source shown is open. So no need to connect to source-update - - def _setup_fields(self): - self.ref_privacy = PrivacyButton( - self.top.get_object('privacy'), self.source_ref, self.db.readonly) - - self.volume = MonitoredEntry( - self.top.get_object("volume"), self.source_ref.set_page, - self.source_ref.get_page, self.db.readonly) - - self.gid = MonitoredEntry( - self.top.get_object('gid'), self.source.set_gramps_id, - self.source.get_gramps_id,self.db.readonly) - - self.source_privacy = PrivacyButton( - self.top.get_object("private"), - self.source, self.db.readonly) - - self.title = MonitoredEntry( - self.top.get_object('title'), - self.source.set_title, - self.source.get_title, - self.db.readonly) - - self.abbrev = MonitoredEntry( - self.top.get_object('abbrev'), self.source.set_abbreviation, - self.source.get_abbreviation,self.db.readonly) - - self.author = MonitoredEntry( - self.top.get_object('author'), self.source.set_author, - self.source.get_author,self.db.readonly) - - self.pubinfo = MonitoredEntry( - self.top.get_object('pub_info'), self.source.set_publication_info, - self.source.get_publication_info,self.db.readonly) - - self.type_mon = MonitoredMenu( - self.top.get_object('confidence'), - self.source_ref.set_confidence_level, - self.source_ref.get_confidence_level, [ - (_('Very Low'), gen.lib.SourceRef.CONF_VERY_LOW), - (_('Low'), gen.lib.SourceRef.CONF_LOW), - (_('Normal'), gen.lib.SourceRef.CONF_NORMAL), - (_('High'), gen.lib.SourceRef.CONF_HIGH), - (_('Very High'), gen.lib.SourceRef.CONF_VERY_HIGH)], - self.db.readonly) - - self.date = MonitoredDate( - self.top.get_object("date_entry"), - self.top.get_object("date_stat"), - self.source_ref.get_date_object(), - self.uistate, - self.track, - self.db.readonly) - - def _create_tabbed_pages(self): - """ - Create the notebook tabs and inserts them into the main - window. - """ - notebook_src = self.top.get_object('notebook_src') - notebook_ref = self.top.get_object('notebook_ref') - - self._add_tab(notebook_src, self.primtab) - self._add_tab(notebook_ref, self.reftab) - - self.note_tab = NoteTab(self.dbstate, self.uistate, self.track, - self.source.get_note_list(), - notetype=gen.lib.NoteType.SOURCE) - self._add_tab(notebook_src, self.note_tab) - self.track_ref_for_deletion("note_tab") - - self.gallery_tab = GalleryTab(self.dbstate, self.uistate, self.track, - self.source.get_media_list()) - self._add_tab(notebook_src, self.gallery_tab) - self.track_ref_for_deletion("gallery_tab") - - self.data_tab = DataEmbedList(self.dbstate, self.uistate, self.track, - self.source) - self._add_tab(notebook_src, self.data_tab) - self.track_ref_for_deletion("data_tab") - - self.repo_tab = RepoEmbedList(self.dbstate, self.uistate, self.track, - self.source.get_reporef_list()) - self._add_tab(notebook_src, self.repo_tab) - self.track_ref_for_deletion("repo_tab") - - self.srcref_list = SourceBackRefList(self.dbstate,self.uistate, self.track, - self.db.find_backlink_handles(self.source.handle), - self.enable_warnbox - ) - self._add_tab(notebook_src, self.srcref_list) - self.track_ref_for_deletion("srcref_list") - - self.comment_tab = NoteTab(self.dbstate, self.uistate, self.track, - self.source_ref.get_note_list(), - notetype=gen.lib.NoteType.SOURCEREF) - self._add_tab(notebook_ref, self.comment_tab) - self.track_ref_for_deletion("comment_tab") - - self._setup_notebook_tabs( notebook_src) - self._setup_notebook_tabs( notebook_ref) - - def build_menu_names(self,sourceref): - if self.source: - source_name = self.source.get_title() - submenu_label = _('Source: %s') % source_name - else: - submenu_label = _('New Source') - return (_('Source Reference Editor'),submenu_label) - - def ok_clicked(self, obj): - - if self.source.handle: - with DbTxn(_("Modify Source"), self.db) as trans: - self.db.commit_source(self.source,trans) - else: - with DbTxn(_("Add Source"), self.db) as trans: - self.db.add_source(self.source,trans) - - if self.update: - self.update(self.source_ref,self.source) - - self.close() diff --git a/src/plugins/export/ExportGedcom.py b/src/plugins/export/ExportGedcom.py index 8cfa71d2a..7e2b92681 100644 --- a/src/plugins/export/ExportGedcom.py +++ b/src/plugins/export/ExportGedcom.py @@ -110,10 +110,10 @@ MIME2GED = { } QUALITY_MAP = { - gen.lib.SourceRef.CONF_VERY_HIGH : "3", - gen.lib.SourceRef.CONF_HIGH : "2", - gen.lib.SourceRef.CONF_LOW : "1", - gen.lib.SourceRef.CONF_VERY_LOW : "0", + gen.lib.Citation.CONF_VERY_HIGH : "3", + gen.lib.Citation.CONF_HIGH : "2", + gen.lib.Citation.CONF_LOW : "1", + gen.lib.Citation.CONF_VERY_LOW : "0", } #------------------------------------------------------------------------- @@ -1310,8 +1310,8 @@ class GedcomWriter(UpdateCallback): conf = min(citation.get_confidence_level(), - gen.lib.SourceRef.CONF_VERY_HIGH) - if conf != gen.lib.SourceRef.CONF_NORMAL and conf != -1: + gen.lib.Citation.CONF_VERY_HIGH) + if conf != gen.lib.Citation.CONF_NORMAL and conf != -1: self.__writeln(level+1, "QUAY", QUALITY_MAP[conf]) if not citation.get_date_object().is_empty(): diff --git a/src/plugins/lib/libnarrate.py b/src/plugins/lib/libnarrate.py index 2a15e508b..bb16910d2 100644 --- a/src/plugins/lib/libnarrate.py +++ b/src/plugins/lib/libnarrate.py @@ -1366,11 +1366,11 @@ class Narrator(object): :type translate_text: callable(str) :param get_endnote_numbers: A callable to use for getting a string representing endnote numbers. - The function takes a :class:`~gen.lib.srcbase,SourceBase` instance. + The function takes a :class:`~gen.lib.CitationBase` instance. A typical return value from get_endnote_numbers() would be "2a" and would represent a reference to an endnote in a document. :type get_endnote_numbers: - callable( :class:`~gen.lib.srcbase,SourceBase` ) + callable( :class:`~gen.lib.CitationBase` ) """ self.__db = dbase self.__verbose = verbose