2007-07-11 Don Allingham <don@gramps-project.org>

* src/DbManager.py (DbManager.__button_press): check for node == None



svn: r8713
This commit is contained in:
Don Allingham
2007-07-12 04:24:44 +00:00
parent 5984415471
commit 576c4b705f
5 changed files with 292 additions and 261 deletions

@@ -60,7 +60,7 @@ class _DdType:
_APP_ID_OFFSET = 40 # Starting value of app_ids
def __init__(self,container,drag_type,target_flags=0,app_id=None):
def __init__(self, container, drag_type, target_flags=0, app_id=None):
"""Create a new DdType:
drag_type: string holding the name of the type.
@@ -83,7 +83,7 @@ class _DdType:
def target(self):
"""return the full target information in the format
required by the Gtk functions."""
return (self.drag_type,self.target_flags,self.app_id)
return (self.drag_type, self.target_flags, self.app_id)
@@ -106,87 +106,87 @@ class _DdTargets(object):
self._type_map = {}
self._app_id_map = {}
self.URL = _DdType(self,'url')
self.EVENT = _DdType(self,'pevent')
self.EVENTREF = _DdType(self,'eventref')
self.ATTRIBUTE = _DdType(self,'pattr')
self.ADDRESS = _DdType(self,'paddr')
self.LOCATION = _DdType(self,'location')
self.SOURCEREF = _DdType(self,'srcref')
self.REPOREF = _DdType(self,'reporef')
self.REPO_LINK = _DdType(self,'repo-link')
self.PLACE_LINK= _DdType(self,'place-link')
self.NAME = _DdType(self,'name')
self.MEDIAOBJ = _DdType(self,'mediaobj')
self.MEDIAREF = _DdType(self,'mediaref')
self.DATA = _DdType(self,'data_tuple')
self.NOTE_LINK = _DdType(self,'note-link')
self.URL = _DdType(self, 'url')
self.EVENT = _DdType(self, 'pevent')
self.EVENTREF = _DdType(self, 'eventref')
self.ATTRIBUTE = _DdType(self, 'pattr')
self.ADDRESS = _DdType(self, 'paddr')
self.LOCATION = _DdType(self, 'location')
self.SOURCEREF = _DdType(self, 'srcref')
self.REPOREF = _DdType(self, 'reporef')
self.REPO_LINK = _DdType(self, 'repo-link')
self.PLACE_LINK = _DdType(self, 'place-link')
self.NAME = _DdType(self, 'name')
self.MEDIAOBJ = _DdType(self, 'mediaobj')
self.MEDIAREF = _DdType(self, 'mediaref')
self.DATA = _DdType(self, 'data_tuple')
self.NOTE_LINK = _DdType(self, 'note-link')
self.PERSON_LINK = _DdType(self,'person-link')
self.PERSON_LINK_LIST = _DdType(self,'person-link-list')
self.PERSONREF = _DdType(self,'personref')
self.PERSON_LINK = _DdType(self, 'person-link')
self.PERSON_LINK_LIST = _DdType(self, 'person-link-list')
self.PERSONREF = _DdType(self, 'personref')
self.SOURCE_LINK = _DdType(self,'source-link')
self.SOURCE_LINK = _DdType(self, 'source-link')
self.FAMILY_EVENT = _DdType(self,'fevent')
self.FAMILY_ATTRIBUTE = _DdType(self,'fattr')
self.FAMILY_EVENT = _DdType(self, 'fevent')
self.FAMILY_ATTRIBUTE = _DdType(self, 'fattr')
# List of all types that are used between
# gramps widgets but should not be exported
# to non gramps widgets.
self._all_gramps_types = [
self.URL,
self.EVENT,
self.ATTRIBUTE,
self.ADDRESS,
self.LOCATION,
self.SOURCEREF,
self.EVENTREF,
self.NAME,
self.REPOREF,
self.MEDIAOBJ,
self.MEDIAREF,
self.REPO_LINK,
self.PLACE_LINK,
self.SOURCE_LINK,
self.PERSON_LINK,
self.PERSON_LINK_LIST,
self.PERSONREF,
self.NOTE_LINK,
self.URL,
self.EVENT,
self.ATTRIBUTE,
self.ADDRESS,
self.LOCATION,
self.SOURCEREF,
self.EVENTREF,
self.NAME,
self.REPOREF,
self.MEDIAOBJ,
self.MEDIAREF,
self.REPO_LINK,
self.PLACE_LINK,
self.SOURCE_LINK,
self.PERSON_LINK,
self.PERSON_LINK_LIST,
self.PERSONREF,
self.NOTE_LINK,
]
self.CHILD = _DdType(self,'child')
self.SPOUSE = _DdType(self,'spouse')
self.TEXT = _DdType(self,'TEXT',0,1)
self.TEXT_MIME = _DdType(self,'text/plain',0,0)
self.STRING = _DdType(self,'STRING', 0, 2)
self.COMPOUND_TEXT = _DdType(self,'COMPOUND_TEXT', 0, 3)
self.UTF8_STRING = _DdType(self,'UTF8_STRING', 0, 4)
self.URI_LIST = _DdType(self,'text/uri-list', 0, 5)
self.APP_ROOT = _DdType(self,'application/x-rootwin-drop', 0, 6)
self.CHILD = _DdType(self, 'child')
self.SPOUSE = _DdType(self, 'spouse')
self.TEXT = _DdType(self, 'TEXT', 0, 1)
self.TEXT_MIME = _DdType(self, 'text/plain', 0, 0)
self.STRING = _DdType(self, 'STRING', 0, 2)
self.COMPOUND_TEXT = _DdType(self, 'COMPOUND_TEXT', 0, 3)
self.UTF8_STRING = _DdType(self, 'UTF8_STRING', 0, 4)
self.URI_LIST = _DdType(self, 'text/uri-list', 0, 5)
self.APP_ROOT = _DdType(self, 'application/x-rootwin-drop', 0, 6)
# List of all the test types. These are types
# that can be interpreted as text.
self._all_text_types = (self.UTF8_STRING,
self.TEXT,
self.TEXT_MIME,
self.STRING,
self._all_text_types = (self.UTF8_STRING,
self.TEXT,
self.TEXT_MIME,
self.STRING,
self.COMPOUND_TEXT)
def insert(self,dd_type):
def insert(self, dd_type):
"""Add a target to the lookup lists. These lists are
used purely for performance reasons."""
self._type_map[dd_type.drag_type] = dd_type
self._app_id_map[dd_type.app_id] = dd_type
def get_dd_type_from_type_name(self,type_name):
return self._type_map.get(type_name,None)
def get_dd_type_from_type_name(self, type_name):
return self._type_map.get(type_name, None)
def get_dd_type_from_app_id(self,app_id):
return self._app_id_map.get(app_id,None)
def get_dd_type_from_app_id(self, app_id):
return self._app_id_map.get(app_id, None)
def is_text_type(self,type_name):
def is_text_type(self, type_name):
return type_name in self.all_text_types()
def all_text(self):
@@ -198,7 +198,7 @@ class _DdTargets(object):
return tuple([t.drag_type for t in self._all_text_types])
def is_gramps_type(self,type_name):
def is_gramps_type(self, type_name):
return type_name in self.all_gramps_types()
def all_gramps_types(self):