2007-04-21 Benny Malengier <bm@cage.ugent.be>
* src/Editors/_EditFamily.py : add up down arraw on children list * src/DisplayTabs/_EmbeddedList.py : generalize select method for up/down movement in list svn: r8414
This commit is contained in:
parent
dc2afe8f55
commit
eeda8e68fe
@ -1,3 +1,7 @@
|
|||||||
|
2007-04-21 Benny Malengier <bm@cage.ugent.be>
|
||||||
|
* src/Editors/_EditFamily.py : add up down arraw on children list
|
||||||
|
* src/DisplayTabs/_EmbeddedList.py : generalize select method for
|
||||||
|
up/down movement in list
|
||||||
2007-04-20 Don Allingham <don@gramps-project.org>
|
2007-04-20 Don Allingham <don@gramps-project.org>
|
||||||
* src/DisplayModels/_BaseModel.py (BaseModel.add_row_by_handle):
|
* src/DisplayModels/_BaseModel.py (BaseModel.add_row_by_handle):
|
||||||
if search not defined, do an insert
|
if search not defined, do an insert
|
||||||
|
@ -233,12 +233,15 @@ class EmbeddedList(ButtonTab):
|
|||||||
self.changed = True
|
self.changed = True
|
||||||
self.rebuild()
|
self.rebuild()
|
||||||
|
|
||||||
def _move_up(self, row_from, obj):
|
def _move_up(self, row_from, obj,selmethod=None):
|
||||||
'''
|
'''
|
||||||
Move the item a position up in the EmbeddedList.
|
Move the item a position up in the EmbeddedList.
|
||||||
Eg: 0,1,2,3 needs to become 0,2,1,3, here row_from = 2
|
Eg: 0,1,2,3 needs to become 0,2,1,3, here row_from = 2
|
||||||
'''
|
'''
|
||||||
dlist = self.get_data()
|
if selmethod :
|
||||||
|
dlist = selmethod()
|
||||||
|
else :
|
||||||
|
dlist = self.get_data()
|
||||||
del dlist[row_from]
|
del dlist[row_from]
|
||||||
dlist.insert(row_from-1, obj)
|
dlist.insert(row_from-1, obj)
|
||||||
self.changed = True
|
self.changed = True
|
||||||
@ -247,12 +250,15 @@ class EmbeddedList(ButtonTab):
|
|||||||
path = '%d' % (row_from-1)
|
path = '%d' % (row_from-1)
|
||||||
self.tree.get_selection().select_path(path)
|
self.tree.get_selection().select_path(path)
|
||||||
|
|
||||||
def _move_down(self, row_from, obj):
|
def _move_down(self, row_from, obj,selmethod=None):
|
||||||
'''
|
'''
|
||||||
Move the item a position down in the EmbeddedList.
|
Move the item a position down in the EmbeddedList.
|
||||||
Eg: 0,1,2,3 needs to become 0,2,1,3, here row_from = 1
|
Eg: 0,1,2,3 needs to become 0,2,1,3, here row_from = 1
|
||||||
'''
|
'''
|
||||||
dlist = self.get_data()
|
if selmethod :
|
||||||
|
dlist = selmethod()
|
||||||
|
else :
|
||||||
|
dlist = self.get_data()
|
||||||
del dlist[row_from]
|
del dlist[row_from]
|
||||||
dlist.insert(row_from+1, obj)
|
dlist.insert(row_from+1, obj)
|
||||||
self.changed = True
|
self.changed = True
|
||||||
@ -289,7 +295,7 @@ class EmbeddedList(ButtonTab):
|
|||||||
ref = self.get_selected()
|
ref = self.get_selected()
|
||||||
if ref:
|
if ref:
|
||||||
pos = self.find_index(ref)
|
pos = self.find_index(ref)
|
||||||
if pos < len(self.get_data())-1:
|
if pos >=0 and pos < len(self.get_data())-1:
|
||||||
self._move_down(pos,ref)
|
self._move_down(pos,ref)
|
||||||
|
|
||||||
def build_interface(self):
|
def build_interface(self):
|
||||||
|
@ -83,6 +83,8 @@ class ChildEmbedList(EmbeddedList):
|
|||||||
'del' : _('Remove the child from the family'),
|
'del' : _('Remove the child from the family'),
|
||||||
'edit' : _('Edit the child/family relationship'),
|
'edit' : _('Edit the child/family relationship'),
|
||||||
'share' : _('Add an existing person as a child of the family'),
|
'share' : _('Add an existing person as a child of the family'),
|
||||||
|
'up' : _('Move the child up in the childrens list'),
|
||||||
|
'down' : _('Move the child down in the childrens list'),
|
||||||
}
|
}
|
||||||
|
|
||||||
_column_names = [
|
_column_names = [
|
||||||
@ -104,7 +106,7 @@ class ChildEmbedList(EmbeddedList):
|
|||||||
"""
|
"""
|
||||||
self.family = family
|
self.family = family
|
||||||
EmbeddedList.__init__(self, dbstate, uistate, track,
|
EmbeddedList.__init__(self, dbstate, uistate, track,
|
||||||
_('Children'), ChildModel, True)
|
_('Children'), ChildModel, True, True)
|
||||||
|
|
||||||
def get_popup_menu_items(self):
|
def get_popup_menu_items(self):
|
||||||
return [
|
return [
|
||||||
@ -119,7 +121,7 @@ class ChildEmbedList(EmbeddedList):
|
|||||||
"""
|
"""
|
||||||
returns the index of the object within the associated data
|
returns the index of the object within the associated data
|
||||||
"""
|
"""
|
||||||
reflist = [ref.ref for ref in self.family.get_child_ref_list()]
|
reflist = [ref.ref for ref in self.family.get_child_ref_list()]
|
||||||
return reflist.index(obj)
|
return reflist.index(obj)
|
||||||
|
|
||||||
def _find_row(self,x,y):
|
def _find_row(self,x,y):
|
||||||
@ -268,6 +270,23 @@ class ChildEmbedList(EmbeddedList):
|
|||||||
EditPerson(self.dbstate, self.uistate, self.track,
|
EditPerson(self.dbstate, self.uistate, self.track,
|
||||||
p, self.child_ref_edited)
|
p, self.child_ref_edited)
|
||||||
break
|
break
|
||||||
|
|
||||||
|
def up_button_clicked(self, obj):
|
||||||
|
handle = self.get_selected()
|
||||||
|
if handle:
|
||||||
|
pos = self.find_index(handle)
|
||||||
|
if pos > 0 :
|
||||||
|
self._move_up(pos,self.family.get_child_ref_list()[pos]
|
||||||
|
,selmethod=self.family.get_child_ref_list)
|
||||||
|
|
||||||
|
def down_button_clicked(self, obj):
|
||||||
|
ref = self.get_selected()
|
||||||
|
if ref:
|
||||||
|
pos = self.find_index(ref)
|
||||||
|
if pos >=0 and pos < len(self.family.get_child_ref_list())-1:
|
||||||
|
self._move_down(pos,self.family.get_child_ref_list()[pos]
|
||||||
|
,selmethod=self.family.get_child_ref_list)
|
||||||
|
|
||||||
|
|
||||||
def drag_data_received(self, widget, context, x, y, sel_data, info, time):
|
def drag_data_received(self, widget, context, x, y, sel_data, info, time):
|
||||||
"""
|
"""
|
||||||
@ -289,12 +308,12 @@ class ChildEmbedList(EmbeddedList):
|
|||||||
# it is a standard drag-n-drop
|
# it is a standard drag-n-drop
|
||||||
|
|
||||||
if id(self) == selfid:
|
if id(self) == selfid:
|
||||||
obj = self.get_data().get_child_ref_list()[row_from]
|
obj = self.get_data().get_child_ref_list()[row_from]
|
||||||
self._move(row_from, row, obj)
|
self._move(row_from, row, obj)
|
||||||
else:
|
else:
|
||||||
handle = obj
|
handle = obj
|
||||||
obj = RelLib.ChildRef()
|
obj = RelLib.ChildRef()
|
||||||
obj.ref = handle
|
obj.ref = handle
|
||||||
self._handle_drag(row, obj)
|
self._handle_drag(row, obj)
|
||||||
self.rebuild()
|
self.rebuild()
|
||||||
elif self._DND_EXTRA and mytype == self._DND_EXTRA.drag_type:
|
elif self._DND_EXTRA and mytype == self._DND_EXTRA.drag_type:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user