repository drag-n-drop
svn: r6196
This commit is contained in:
parent
2a689f139f
commit
6a432cf0a1
@ -1,4 +1,6 @@
|
||||
2006-03-22 Don Allingham <don@gramps-project.org>
|
||||
* src/ScratchPad.py: handle repositories
|
||||
*
|
||||
* src/DataViews/_SourceView.py: handle drag and drop
|
||||
* src/DataViews/_PersonView.py: handle drag and drop
|
||||
* src/ViewManager.py: pychecker fixes
|
||||
|
@ -38,6 +38,7 @@ import DisplayModels
|
||||
import const
|
||||
import Utils
|
||||
from Editors import EditRepository, DelRepositoryQuery
|
||||
from DdTargets import DdTargets
|
||||
|
||||
from QuestionDialog import QuestionDialog, ErrorDialog
|
||||
|
||||
@ -83,6 +84,8 @@ class RepositoryView(PageView.ListView):
|
||||
DisplayModels.RepositoryModel,
|
||||
signal_map)
|
||||
|
||||
def drag_info(self):
|
||||
return DdTargets.REPO_LINK
|
||||
|
||||
def define_actions(self):
|
||||
PageView.ListView.define_actions(self)
|
||||
|
@ -113,6 +113,7 @@ class _DdTargets(object):
|
||||
self.ADDRESS = _DdType(self,'paddr')
|
||||
self.SOURCEREF = _DdType(self,'srcref')
|
||||
self.REPOREF = _DdType(self,'reporef')
|
||||
self.REPO_LINK = _DdType(self,'repo-link')
|
||||
self.NAME = _DdType(self,'name')
|
||||
self.MEDIAOBJ = _DdType(self,'mediaobj')
|
||||
self.DATA = _DdType(self,'data_tuple')
|
||||
@ -136,6 +137,8 @@ class _DdTargets(object):
|
||||
self.SOURCEREF,
|
||||
self.EVENTREF,
|
||||
self.NAME,
|
||||
self.REPO_LINK,
|
||||
self.REPOREF,
|
||||
self.MEDIAOBJ,
|
||||
self.PERSON_LINK,
|
||||
self.PERSON_LINK_LIST]
|
||||
|
@ -1482,6 +1482,7 @@ class RepoEmbedList(EmbeddedList):
|
||||
|
||||
_HANDLE_COL = 4
|
||||
_DND_TYPE = DdTargets.REPOREF
|
||||
_DND_EXTRA = DdTargets.REPO_LINK
|
||||
|
||||
_column_names = [
|
||||
(_('ID'), 0, 75),
|
||||
@ -1505,12 +1506,12 @@ class RepoEmbedList(EmbeddedList):
|
||||
return ((1,0),(1,1),(1,2),(1,3))
|
||||
|
||||
def add_button_clicked(self,obj):
|
||||
from Editors import EditRepositoryRef
|
||||
from Editors import EditRepoRef
|
||||
|
||||
ref = RelLib.RepoRef()
|
||||
repo = RelLib.Repository()
|
||||
try:
|
||||
EditRepositoryRef(
|
||||
EditRepoRef.EditRepoRef(
|
||||
self.dbstate, self.uistate, self.track,
|
||||
repo, ref, self.add_callback)
|
||||
except Errors.WindowActiveError:
|
||||
|
@ -198,7 +198,7 @@ class GrampsBSDDB(GrampsDbBase):
|
||||
return GrampsBSDDBCursor(self.media_map,self.txn)
|
||||
|
||||
def get_repository_cursor(self):
|
||||
return GrampsBSDDBAssocCursor(self.repository_map,self.txn)
|
||||
return GrampsBSDDBCursor(self.repository_map,self.txn)
|
||||
|
||||
def has_person_handle(self,handle):
|
||||
"""
|
||||
|
@ -183,7 +183,7 @@ class ScratchPadEvent(ScratchPadWrapper):
|
||||
|
||||
def __init__(self,dbstate,obj):
|
||||
ScratchPadWrapper.__init__(self,dbstate,obj)
|
||||
self._type = _("Event")
|
||||
self._type = _("Event Link")
|
||||
|
||||
(drag_type, idval, handle, val) = pickle.loads(obj)
|
||||
|
||||
@ -383,6 +383,28 @@ class ScratchPadSourceRef(ScratchPadGrampsTypeWrapper):
|
||||
|
||||
return s
|
||||
|
||||
class ScratchPadRepoRef(ScratchPadGrampsTypeWrapper):
|
||||
|
||||
DROP_TARGETS = [DdTargets.REPOREF]
|
||||
DRAG_TARGET = DdTargets.REPOREF
|
||||
ICON = BLANK_PIC
|
||||
|
||||
def __init__(self,dbstate,obj):
|
||||
ScratchPadGrampsTypeWrapper.__init__(self,dbstate,obj)
|
||||
self._type = _("Repository Reference")
|
||||
|
||||
base = self._db.get_repository_from_handle(self._obj.ref)
|
||||
self._title = base.get_name()
|
||||
|
||||
value = base.get_type()
|
||||
if value == RelLib.Repository.CUSTOM:
|
||||
self._value = value[1]
|
||||
else:
|
||||
self._value = Utils.repository_types[value[0]]
|
||||
|
||||
def tooltip(self):
|
||||
return ""
|
||||
|
||||
class ScratchPadEventRef(ScratchPadGrampsTypeWrapper):
|
||||
|
||||
DROP_TARGETS = [DdTargets.EVENTREF]
|
||||
@ -551,6 +573,29 @@ class ScratchSourceLink(ScratchPadWrapper):
|
||||
def tooltip(self):
|
||||
return ""
|
||||
|
||||
class ScratchRepositoryLink(ScratchPadWrapper):
|
||||
|
||||
DROP_TARGETS = [DdTargets.REPO_LINK]
|
||||
DRAG_TARGET = DdTargets.REPO_LINK
|
||||
ICON = LINK_PIC
|
||||
|
||||
def __init__(self,dbstate,obj):
|
||||
ScratchPadWrapper.__init__(self,dbstate,obj)
|
||||
self._type = _("Repository Link")
|
||||
|
||||
(drag_type, idval, handle, val) = pickle.loads(obj)
|
||||
|
||||
source = self._db.get_repository_from_handle(handle)
|
||||
self._title = source.get_name()
|
||||
value = source.get_type()
|
||||
if value == RelLib.Repository.CUSTOM:
|
||||
self._value = value[1]
|
||||
else:
|
||||
self._value = Utils.repository_types[value[0]]
|
||||
|
||||
def tooltip(self):
|
||||
return ""
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# Wrapper classes to deal with lists of objects
|
||||
@ -707,7 +752,8 @@ class ScratchPadListView:
|
||||
self.register_wrapper_class(ScratchPadAttribute)
|
||||
self.register_wrapper_class(ScratchPadFamilyAttribute)
|
||||
self.register_wrapper_class(ScratchPadName)
|
||||
self.register_wrapper_class(ScratchPadText)
|
||||
self.register_wrapper_class(ScratchPadRepoRef)
|
||||
self.register_wrapper_class(ScratchRepositoryLink)
|
||||
self.register_wrapper_class(ScratchMediaObj)
|
||||
self.register_wrapper_class(ScratchSourceLink)
|
||||
self.register_wrapper_class(ScratchPersonLink)
|
||||
|
Loading…
Reference in New Issue
Block a user