From f02dfc30bf1ba295d01721a47428f851a6667a5a Mon Sep 17 00:00:00 2001 From: Don Allingham Date: Tue, 13 Feb 2007 17:56:31 +0000 Subject: [PATCH] svn: r8109 --- src/DataViews/_NoteView.py | 238 ++++++++++++++++++++++++++++++++ src/DisplayModels/_NoteModel.py | 93 +++++++++++++ 2 files changed, 331 insertions(+) create mode 100644 src/DataViews/_NoteView.py create mode 100644 src/DisplayModels/_NoteModel.py diff --git a/src/DataViews/_NoteView.py b/src/DataViews/_NoteView.py new file mode 100644 index 000000000..031533990 --- /dev/null +++ b/src/DataViews/_NoteView.py @@ -0,0 +1,238 @@ +# Gramps - a GTK+/GNOME based genealogy program +# +# Copyright (C) 2001-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: _PlaceView.py 8060 2007-02-06 05:19:16Z dallingham $ + +""" +Place View +""" + +__author__ = "Don Allingham" +__revision__ = "$Revision: 8060 $" + +#------------------------------------------------------------------------- +# +# GTK/Gnome modules +# +#------------------------------------------------------------------------- +import gtk + +#------------------------------------------------------------------------- +# +# gramps modules +# +#------------------------------------------------------------------------- +import RelLib +import PageView +import DisplayModels +import Utils +import Errors +import Bookmarks +import Config +from DdTargets import DdTargets +from QuestionDialog import QuestionDialog, ErrorDialog +from Filters.SideBar import PlaceSidebarFilter + +#------------------------------------------------------------------------- +# +# internationalization +# +#------------------------------------------------------------------------- +from gettext import gettext as _ + +column_names = [ + _('ID'), + _('Preview'), + ] + +#------------------------------------------------------------------------- +# +# NoteView +# +#------------------------------------------------------------------------- +class NoteView(PageView.ListView): + + ADD_MSG = _("Add a new note") + EDIT_MSG = _("Edit the selected note") + DEL_MSG = _("Delete the selected note") + FILTER_TYPE = "Note" + + def __init__(self, dbstate, uistate): + + signal_map = { +# 'place-add' : self.row_add, +# 'place-update' : self.row_update, +# 'place-delete' : self.row_delete, +# 'place-rebuild' : self.build_tree, + } + + self.func_list = { +# 'J' : self.jump, +# 'BackSpace' : self.key_delete, + } + + PageView.ListView.__init__( + self, _('Notes'), dbstate, uistate, column_names, + len(column_names), DisplayModels.NoteModel, signal_map, + dbstate.db.get_place_bookmarks(), + Bookmarks.NoteBookmarks, + multiple=False) + + Config.client.notify_add("/apps/gramps/interface/filter", + self.filter_toggle) + + def get_bookmarks(self): + return self.dbstate.db.get_place_bookmarks() + + def define_actions(self): + PageView.ListView.define_actions(self) +# self.add_action('ColumnEdit', gtk.STOCK_PROPERTIES, +# _('_Column Editor'), callback=self.column_editor) +# self.add_action('FilterEdit', None, _('Place Filter Editor'), +# callback=self.filter_editor,) + +# def drag_info(self): +# return DdTargets.PLACE_LINK + + def column_editor(self, obj): + pass +# import ColumnOrder + +# ColumnOrder.ColumnOrder( +# _('Select Place Columns'), +# self.uistate, +# self.dbstate.db.get_place_column_order(), +# column_names, +# self.set_column_order) + + def set_column_order(self, clist): + #self.dbstate.db.set_place_column_order(clist) + print "build_columns" + self.build_columns() + + def column_order(self): + return [(1, 0, 100), (1, 1, 100)] + + def get_stock(self): + return 'gramps-notes' + + def ui_definition(self): + return ''' + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ''' + + def on_double_click(self, obj, event): + handle = self.first_selected() + #place = self.dbstate.db.get_place_from_handle(handle) + try: + #EditPlace(self.dbstate, self.uistate, [], place) + print handle + except Errors.WindowActiveError: + pass + + def add(self, obj): + try: + #EditPlace(self.dbstate, self.uistate, [], RelLib.Place()) + pass + except Errors.WindowActiveError: + pass + + def remove(self, obj): + for handle in self.selected_handles(): + db = self.dbstate.db +# person_list = [ +# item[1] for item in +# self.dbstate.db.find_backlink_handles(place_handle,['Person'])] + +# family_list = [ +# item[1] for item in +# self.dbstate.db.find_backlink_handles(place_handle,['Family'])] + +# event_list = [ +# item[1] for item in +# self.dbstate.db.find_backlink_handles(place_handle,['Event'])] + +# place = db.get_place_from_handle(place_handle) + +# ans = DeletePlaceQuery(self.dbstate,self.uistate, +# place,person_list,family_list,event_list) + +# if len(person_list) + len(family_list) > 0: +# msg = _('This place is currently being used. Deleting it ' +# 'will remove it from the database and from all ' +# 'people and families that reference it.') +# else: +# msg = _('Deleting place will remove it from the database.') + +# msg = "%s %s" % (msg, Utils.data_recover_msg) +# descr = place.get_title() +# if descr == "": +# descr = place.get_gramps_id() + +# self.uistate.set_busy_cursor(1) +# QuestionDialog(_('Delete %s?') % descr, msg, +# _('_Delete Place'), ans.query_response) + self.uistate.set_busy_cursor(0) + + def edit(self, obj): + mlist = [] + self.selection.selected_foreach(self.blist, mlist) + + for handle in mlist: + #place = self.dbstate.db.get_place_from_handle(handle) + try: + #EditPlace(self.dbstate, self.uistate, [], place) + print handle + except Errors.WindowActiveError: + pass + + def get_handle_from_gramps_id(self, gid): + print None +# obj = self.dbstate.db.get_place_from_gramps_id(gid) +# if obj: +# return obj.get_handle() +# else: +# return None diff --git a/src/DisplayModels/_NoteModel.py b/src/DisplayModels/_NoteModel.py new file mode 100644 index 000000000..1f27ac938 --- /dev/null +++ b/src/DisplayModels/_NoteModel.py @@ -0,0 +1,93 @@ +# +# 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: _PlaceModel.py 8011 2007-01-29 19:13:15Z dallingham $ + +#------------------------------------------------------------------------- +# +# python modules +# +#------------------------------------------------------------------------- +import time +import logging +log = logging.getLogger(".") + +#------------------------------------------------------------------------- +# +# GNOME/GTK modules +# +#------------------------------------------------------------------------- +import gtk + +#------------------------------------------------------------------------- +# +# GRAMPS modules +# +#------------------------------------------------------------------------- +import const +import ToolTips +import GrampsLocale +from _BaseModel import BaseModel + +#------------------------------------------------------------------------- +# +# PlaceModel +# +#------------------------------------------------------------------------- +class NoteModel(BaseModel): + + HANDLE_COL = 2 + + def __init__(self,db,scol=0,order=gtk.SORT_ASCENDING,search=None, + skip=set(), sort_map=None): + self.gen_cursor = db.get_place_cursor + self.map = db.get_raw_place_data + self.fmap = [ + self.column_id, + self.column_preview, + self.column_handle, + ] + self.smap = [ + self.column_id, + self.column_preview, + self.column_handle, + ] + BaseModel.__init__(self, db, scol, order, + search=search, skip=skip, sort_map=sort_map) + + def on_get_n_columns(self): + return len(self.fmap)+1 + + def column_handle(self,data): + return "" + + def column_id(self,data): + return "" + + def column_preview(self,data): + return "" + + def sort_change(self,data): + return "" + + def column_change(self,data): + return "" + + def column_tooltip(self,data): + return ''