* src/EditPerson.py: add srcref as a drag and drop item
* src/EditPlace.py: add srcref as a drag and drop item * src/Marriage.py: add srcref as a drag and drop item * src/WriteGedcom.py: catch empty event * src/Sources.py: add drag-n-drop for source references svn: r4147
This commit is contained in:
parent
354f27f46a
commit
97a0add0a7
16
ChangeLog
16
ChangeLog
@ -1,10 +1,14 @@
|
||||
2005-03-09 Don Allingham <don@gramps-project.org>
|
||||
* src/EditPerson.py: add srcref as a drag and drop item
|
||||
* src/EditPlace.py: add srcref as a drag and drop item
|
||||
* src/Marriage.py: add srcref as a drag and drop item
|
||||
* src/WriteGedcom.py: catch empty event
|
||||
* src/Sources.py: add drag-n-drop for source references
|
||||
|
||||
2005-03-09 Martin Hawlisch <Martin.Hawlisch@gmx.de>
|
||||
* src/GenericFilter.py (IsDefaultPerson,IsSiblingOfFilterMatch):
|
||||
Add filter rules.
|
||||
|
||||
2005-03-09 Don Allingham <don@gramps-project.org>
|
||||
* srcNameEdit.py: assign date on close
|
||||
|
||||
2005-03-09 Alex Roitman <shura@alex.neuro.umn.edu>
|
||||
* src/PedView.py: Import RelLib for accessing relationship constants.
|
||||
* src/NameEdit.py: Use empty Date for newly created name.
|
||||
@ -12,6 +16,9 @@
|
||||
* src/data/gramps.schemas: Place dont-ask key into interface dir.
|
||||
* src/Marriage.py (did_data_change): Compare gramps_id, not handle.
|
||||
|
||||
2005-03-09 Don Allingham <don@gramps-project.org>
|
||||
* src/NameEdit.py: assign date on close
|
||||
|
||||
2005-03-08 Don Allingham <don@gramps-project.org>
|
||||
* src/ChooseParents.py: change _nsort to _model
|
||||
* src/GrampsBSDDB.py: fix event secondary index function to that
|
||||
@ -37,9 +44,6 @@
|
||||
Update filter ComboBox in the main window.
|
||||
* src/gramps_main.py (init_filters): Clear layout before rebuilding.
|
||||
|
||||
* src/ChooseParents.py: Stop parent selection window from being
|
||||
modal; fix child/parent relations from strings to integers.
|
||||
|
||||
2005-03-07 Alex Roitman <shura@alex.neuro.umn.edu>
|
||||
* src/AddrEdit.py: Typo.
|
||||
* src/EditPerson.py (on_add_addr_clicked): Typos.
|
||||
|
@ -79,7 +79,8 @@ _temple_names = [""] + _temple_names
|
||||
pycode_tgts = [('url', 0, 0),
|
||||
('pevent', 0, 1),
|
||||
('pattr', 0, 2),
|
||||
('paddr', 0, 3)]
|
||||
('paddr', 0, 3),
|
||||
('srcref', 0, 4)]
|
||||
|
||||
|
||||
_use_patronymic = [
|
||||
|
@ -54,7 +54,9 @@ import NameDisplay
|
||||
# Constants
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
pycode_tgts = [('url', 0, 0)]
|
||||
pycode_tgts = [
|
||||
('url' , 0, 0)
|
||||
('srcref', 0, 4)]
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
|
@ -66,7 +66,11 @@ _temple_names = const.lds_temple_codes.keys()
|
||||
_temple_names.sort()
|
||||
_temple_names = [""] + _temple_names
|
||||
|
||||
pycode_tgts = [('fevent', 0, 0), ('fattr', 0, 1)]
|
||||
pycode_tgts = [
|
||||
('fevent', 0, 0),
|
||||
('fattr', 0, 1),
|
||||
('srcref', 0, 4),
|
||||
]
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
|
@ -32,10 +32,12 @@ from gettext import gettext as _
|
||||
# GTK/Gnome modules
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
import gobject
|
||||
import gtk
|
||||
import gtk.glade
|
||||
import gnome
|
||||
from gtk.gdk import ACTION_COPY, BUTTON1_MASK, INTERP_BILINEAR, pixbuf_new_from_file
|
||||
from gobject import TYPE_PYOBJECT
|
||||
import pickle
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
@ -49,6 +51,12 @@ import Date
|
||||
import DateEdit
|
||||
import DateHandler
|
||||
|
||||
pycode_tgts = [('url', 0, 0),
|
||||
('pevent', 0, 1),
|
||||
('pattr', 0, 2),
|
||||
('paddr', 0, 3),
|
||||
('srcref', 0, 4)]
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# SourceSelector
|
||||
@ -94,7 +102,7 @@ class SourceSelector:
|
||||
self.delete = self.top.get_widget('delete')
|
||||
self.delete.set_sensitive(not self.db.readonly)
|
||||
self.selection = self.slist.get_selection()
|
||||
self.model = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING)
|
||||
self.model = gtk.ListStore(str,str)
|
||||
self.slist.set_model(self.model)
|
||||
self.top.get_widget('add').set_sensitive(not self.db.readonly)
|
||||
self.top.get_widget('ok').set_sensitive(not self.db.readonly)
|
||||
@ -229,7 +237,7 @@ class SourceTab:
|
||||
self.window = window
|
||||
self.slist = clist
|
||||
self.selection = clist.get_selection()
|
||||
self.model = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING)
|
||||
self.model = gtk.ListStore(str,str,TYPE_PYOBJECT)
|
||||
|
||||
add_btn.set_sensitive(not readonly)
|
||||
del_btn.set_sensitive(not readonly)
|
||||
@ -251,8 +259,43 @@ class SourceTab:
|
||||
edit_btn.connect('clicked', self.edit_src_clicked)
|
||||
del_btn.connect('clicked', self.del_src_clicked)
|
||||
self.slist.connect('button-press-event',self.double_click)
|
||||
self.setup_drag_n_drop()
|
||||
self.redraw()
|
||||
|
||||
def setup_drag_n_drop(self):
|
||||
self.slist.drag_dest_set(gtk.DEST_DEFAULT_ALL,pycode_tgts,ACTION_COPY)
|
||||
self.slist.drag_source_set(BUTTON1_MASK, pycode_tgts, ACTION_COPY)
|
||||
self.slist.connect('drag_data_get', self.drag_data_get)
|
||||
self.slist.connect('drag_begin', self.drag_begin)
|
||||
self.slist.connect('drag_data_received',self.drag_data_received)
|
||||
|
||||
def drag_data_received(self,widget,context,x,y,sel_data,info,time):
|
||||
if sel_data and sel_data.data:
|
||||
exec 'data = %s' % sel_data.data
|
||||
exec 'mytype = "%s"' % data[0]
|
||||
exec 'person = "%s"' % data[1]
|
||||
if mytype != 'srcref':
|
||||
return
|
||||
else:
|
||||
foo = pickle.loads(data[2]);
|
||||
self.list.append(foo)
|
||||
|
||||
self.lists_changed = True
|
||||
self.redraw()
|
||||
|
||||
def drag_data_get(self,widget, context, sel_data, info, time):
|
||||
|
||||
store,node = self.selection.get_selected()
|
||||
ev = store.get_value(node,2)
|
||||
|
||||
bits_per = 8; # we're going to pass a string
|
||||
pickled = pickle.dumps(ev);
|
||||
data = str(('srcref',None,pickled));
|
||||
sel_data.set(sel_data.target, bits_per, data)
|
||||
|
||||
def drag_begin(self, context, a):
|
||||
return
|
||||
|
||||
def double_click(self,obj,event):
|
||||
if event.type == gtk.gdk._2BUTTON_PRESS and event.button == 1:
|
||||
self.edit_src_clicked(obj)
|
||||
@ -263,7 +306,8 @@ class SourceTab:
|
||||
base_handle = s.get_base_handle()
|
||||
node = self.model.append()
|
||||
base = self.db.get_source_from_handle(base_handle)
|
||||
self.model.set(node,0,base.get_gramps_id(),1,base.get_title())
|
||||
self.model.set(node,0,base.get_gramps_id(),1,base.get_title(),
|
||||
2,s)
|
||||
if self.list:
|
||||
Utils.bold_label(self.parent.sources_label)
|
||||
else:
|
||||
|
@ -693,7 +693,7 @@ class GedcomWriter:
|
||||
|
||||
for event_handle in family.get_event_list():
|
||||
event = self.db.get_event_from_handle(event_handle)
|
||||
if self.private and event.get_privacy():
|
||||
if not event or self.private and event.get_privacy():
|
||||
continue
|
||||
name = event.get_name()
|
||||
val = ""
|
||||
|
Loading…
Reference in New Issue
Block a user