gramps/src/DisplayTabs/_AddrEmbedList.py
Raphael Ackermann 20426f36e3 2008-02-24 Raphael Ackermann <raphael.ackermann@gmail.com>
* Editors/_EditRepository.py
	* Editors/_EditFamily.py
	* DisplayTabs/_SourceEmbedList.py
	* DisplayTabs/_PersonRefEmbedList.py
	* DisplayTabs/_RepoEmbedList.py
	* DisplayTabs/_AddrEmbedList.py
	* DisplayTabs/_WebEmbedList.py
	* DisplayTabs/_NameEmbedList.py
	* DisplayTabs/_EventEmbedList.py
	* DisplayTabs/_EmbeddedList.py
	* DisplayTabs/_NoteTab.py
	* DisplayTabs/_LocationEmbedList.py
	* DisplayTabs/_ButtonTab.py
	* DisplayTabs/_DataEmbedList.py
	* DisplayTabs/_AttrEmbedList.py
	* DisplayTabs/_LdsEmbedList.py
	* DisplayTabs/_GrampsTab.py
	add Up and Down buttons to the tabs. Added individual tooltips for buttons
	0001807: Missing buttons MoveUp, MoveDown on a Events list in a person...

svn: r10108
2008-02-24 18:58:45 +00:00

144 lines
4.5 KiB
Python

#
# 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$
"""
Address List display tab.
"""
#-------------------------------------------------------------------------
#
# Python classes
#
#-------------------------------------------------------------------------
from gettext import gettext as _
#-------------------------------------------------------------------------
#
# GRAMPS classes
#
#-------------------------------------------------------------------------
import gen.lib
import Errors
from DdTargets import DdTargets
from DisplayTabs._AddressModel import AddressModel
from DisplayTabs._EmbeddedList import EmbeddedList
#-------------------------------------------------------------------------
#
#
#
#-------------------------------------------------------------------------
class AddrEmbedList(EmbeddedList):
"""
Address List display tab for edit dialogs.
Derives from the EmbeddedList class.
"""
_HANDLE_COL = 5
_DND_TYPE = DdTargets.ADDRESS
_MSG = {
'add' : _('Create and add a new address'),
'del' : _('Remove the existing address'),
'edit' : _('Edit the selected address'),
'up' : _('Move the selected address upwards'),
'down' : _('Move the selected address downwards'),
}
_column_names = [
(_('Date'), 0, 150),
(_('Address'), 1, 225),
(_('City'), 2, 100),
(_('State'), 3, 100),
(_('Country'), 4, 75),
]
def __init__(self, dbstate, uistate, track, data):
self.data = data
EmbeddedList.__init__(self, dbstate, uistate, track, _('_Addresses'),
AddressModel, move_buttons=True)
def get_icon_name(self):
"""
Return the stock-id icon name associated with the display tab
"""
return 'gramps-address'
def get_data(self):
"""
Return the data associated with display tab
"""
return self.data
def column_order(self):
"""
Return the column order of the columns in the display tab.
"""
return ((1, 0), (1, 1), (1, 2), (1, 3), (1, 4))
def add_button_clicked(self, obj):
"""
Called when the Add button is clicked. Creates a new Address instance
and calls the EditAddress editor with the new address. If the window
already exists (Errors.WindowActiveError), we ignore it. This prevents
the dialog from coming up twice on the same object.
"""
addr = gen.lib.Address()
try:
from Editors import EditAddress
EditAddress(self.dbstate, self.uistate, self.track,
addr, self.add_callback)
except Errors.WindowActiveError:
return
def add_callback(self, name):
"""
Called to update the screen when a new address is added
"""
self.get_data().append(name)
self.rebuild()
def edit_button_clicked(self, obj):
"""
Called with the Edit button is clicked. Gets the selected Address instance
and calls the EditAddress editor with the address. If the window
already exists (Errors.WindowActiveError), we ignore it. This prevents
the dialog from coming up twice on the same object.
"""
addr = self.get_selected()
if addr:
try:
from Editors import EditAddress
EditAddress(self.dbstate, self.uistate, self.track,
addr, self.edit_callback)
except Errors.WindowActiveError:
return
def edit_callback(self, name):
"""
Called to update the screen when the address changes
"""
self.rebuild()