Gallery drag/drop functionality
svn: r1169
This commit is contained in:
parent
2f9f1660ee
commit
9b2933bee0
Binary file not shown.
@ -1426,7 +1426,6 @@ def disp_url(url):
|
|||||||
#
|
#
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
def disp_attr(attr):
|
def disp_attr(attr):
|
||||||
detail = Utils.get_detail_flags(attr)
|
|
||||||
return [const.display_pattr(attr.getType()),attr.getValue()]
|
return [const.display_pattr(attr.getType()),attr.getValue()]
|
||||||
|
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
@ -1444,7 +1443,6 @@ def disp_addr(addr):
|
|||||||
#
|
#
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
def disp_event(event):
|
def disp_event(event):
|
||||||
attr = Utils.get_detail_flags(event)
|
|
||||||
return [const.display_pevent(event.getName()),event.getDescription(),
|
return [const.display_pevent(event.getName()),event.getDescription(),
|
||||||
event.getQuoteDate(),event.getPlaceName()]
|
event.getQuoteDate(),event.getPlaceName()]
|
||||||
|
|
||||||
|
@ -62,6 +62,7 @@ from intl import gettext as _
|
|||||||
|
|
||||||
_IMAGEX = 140
|
_IMAGEX = 140
|
||||||
_IMAGEY = 150
|
_IMAGEY = 150
|
||||||
|
_PAD = 5
|
||||||
|
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
@ -78,7 +79,10 @@ class ImageSelect:
|
|||||||
self.db = db
|
self.db = db
|
||||||
self.dataobj = None
|
self.dataobj = None
|
||||||
self.parent = parent
|
self.parent = parent
|
||||||
self.canvas_list = []
|
self.canvas_list = {}
|
||||||
|
self.item_map = {}
|
||||||
|
self.item_map = {}
|
||||||
|
self.p_map = {}
|
||||||
|
|
||||||
def add_thumbnail(self, photo):
|
def add_thumbnail(self, photo):
|
||||||
"should be overrridden"
|
"should be overrridden"
|
||||||
@ -189,6 +193,13 @@ class ImageSelect:
|
|||||||
"""Save the photo in the dataobj object - must be overridden"""
|
"""Save the photo in the dataobj object - must be overridden"""
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
_drag_targets = [
|
||||||
|
('STRING', 0, 0),
|
||||||
|
('text/plain',0,0),
|
||||||
|
('text/uri-list',0,2),
|
||||||
|
('application/x-rootwin-drop',0,1)]
|
||||||
|
|
||||||
|
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
# Gallery class - This class handles all the logic underlying a
|
# Gallery class - This class handles all the logic underlying a
|
||||||
@ -200,19 +211,12 @@ class Gallery(ImageSelect):
|
|||||||
def __init__(self, dataobj, path, icon_list, db, parent):
|
def __init__(self, dataobj, path, icon_list, db, parent):
|
||||||
ImageSelect.__init__(self, path, db, parent)
|
ImageSelect.__init__(self, path, db, parent)
|
||||||
|
|
||||||
t = [
|
|
||||||
('STRING', 0, 0),
|
|
||||||
('text/plain',0,0),
|
|
||||||
('text/uri-list',0,2),
|
|
||||||
('application/x-rootwin-drop',0,1)]
|
|
||||||
|
|
||||||
if path:
|
if path:
|
||||||
icon_list.drag_dest_set(gtk.DEST_DEFAULT_ALL, t,
|
icon_list.drag_dest_set(gtk.DEST_DEFAULT_ALL, _drag_targets,
|
||||||
gtk.gdk.ACTION_COPY | gtk.gdk.ACTION_MOVE)
|
gtk.gdk.ACTION_COPY | gtk.gdk.ACTION_MOVE)
|
||||||
|
icon_list.connect('event',self.item_event)
|
||||||
icon_list.connect("drag_data_received",
|
icon_list.connect("drag_data_received",
|
||||||
self.on_photolist_drag_data_received)
|
self.on_photolist_drag_data_received)
|
||||||
icon_list.drag_source_set(gtk.gdk.BUTTON1_MASK|gtk.gdk.BUTTON3_MASK,t,
|
|
||||||
gtk.gdk.ACTION_COPY | gtk.gdk.ACTION_MOVE)
|
|
||||||
icon_list.connect("drag_data_get",
|
icon_list.connect("drag_data_get",
|
||||||
self.on_photolist_drag_data_get)
|
self.on_photolist_drag_data_get)
|
||||||
|
|
||||||
@ -226,24 +230,60 @@ class Gallery(ImageSelect):
|
|||||||
self.selectedIcon = -1
|
self.selectedIcon = -1
|
||||||
self.x = 0
|
self.x = 0
|
||||||
self.y = 0
|
self.y = 0
|
||||||
|
self.remember_x = -1
|
||||||
|
self.remember_y = -1
|
||||||
|
self.button = None
|
||||||
|
self.drag_item = None
|
||||||
|
self.sel = None
|
||||||
|
self.photo = None
|
||||||
|
|
||||||
|
def on_canvas1_event(self,obj,event):
|
||||||
|
"""Handle resize events over the canvas, redrawing if the size changes"""
|
||||||
|
|
||||||
def item_event(self, widget, event=None):
|
def item_event(self, widget, event=None):
|
||||||
|
|
||||||
|
if self.button and event.type == gtk.gdk.MOTION_NOTIFY :
|
||||||
|
if widget.drag_check_threshold(self.remember_x,self.remember_y,event.x,event.y):
|
||||||
|
self.drag_item = widget.get_item_at(self.remember_x,self.remember_y)
|
||||||
|
if self.drag_item:
|
||||||
|
context = widget.drag_begin(_drag_targets,
|
||||||
|
gtk.gdk.ACTION_COPY|gtk.gdk.ACTION_MOVE,
|
||||||
|
self.button, event)
|
||||||
|
return gtk.TRUE
|
||||||
photo = widget.get_data('obj')
|
photo = widget.get_data('obj')
|
||||||
|
|
||||||
if event.type == gtk.gdk.BUTTON_PRESS:
|
if event.type == gtk.gdk.BUTTON_PRESS:
|
||||||
if event.button == 1:
|
if event.button == 1:
|
||||||
# Remember starting position.
|
# Remember starting position.
|
||||||
|
|
||||||
|
item = widget.get_item_at(event.x,event.y)
|
||||||
|
if item:
|
||||||
|
(i,t,b,self.photo) = self.p_map[item]
|
||||||
|
style = self.iconlist.get_style()
|
||||||
|
t.set(fill_color_gdk=style.fg[gtk.STATE_SELECTED])
|
||||||
|
b.set(fill_color_gdk=style.bg[gtk.STATE_SELECTED])
|
||||||
|
if self.sel:
|
||||||
|
(i,t,b,photo) = self.p_map[self.sel]
|
||||||
|
t.set(fill_color_gdk=style.fg[gtk.STATE_NORMAL])
|
||||||
|
b.set(fill_color_gdk=style.bg[gtk.STATE_NORMAL])
|
||||||
|
|
||||||
|
self.sel = item
|
||||||
|
|
||||||
self.remember_x = event.x
|
self.remember_x = event.x
|
||||||
self.remember_y = event.y
|
self.remember_y = event.y
|
||||||
|
self.button = event.button
|
||||||
return gtk.TRUE
|
return gtk.TRUE
|
||||||
|
|
||||||
elif event.button == 3:
|
elif event.button == 3:
|
||||||
self.show_popup(photo)
|
item = widget.get_item_at(event.x,event.y)
|
||||||
|
if item:
|
||||||
|
(i,t,b,self.photo) = self.p_map[item]
|
||||||
|
self.show_popup(self.photo)
|
||||||
return gtk.TRUE
|
return gtk.TRUE
|
||||||
|
elif event.type == gtk.gdk.BUTTON_RELEASE:
|
||||||
|
self.button = 0
|
||||||
elif event.type == gtk.gdk._2BUTTON_PRESS and event.button == 1:
|
elif event.type == gtk.gdk._2BUTTON_PRESS and event.button == 1:
|
||||||
#Change the item's color.
|
#Change the item's color.
|
||||||
print photo,self.path,self
|
|
||||||
LocalMediaProperties(photo,self.path,self)
|
LocalMediaProperties(photo,self.path,self)
|
||||||
return gtk.TRUE
|
return gtk.TRUE
|
||||||
|
|
||||||
@ -258,13 +298,8 @@ class Gallery(ImageSelect):
|
|||||||
|
|
||||||
return gtk.TRUE
|
return gtk.TRUE
|
||||||
|
|
||||||
elif event.type == gtk.gdk.ENTER_NOTIFY:
|
if event.type == gtk.gdk.EXPOSE:
|
||||||
# Make the outline wide.
|
self.load_images()
|
||||||
return gtk.TRUE
|
|
||||||
|
|
||||||
elif event.type == gtk.gdk.LEAVE_NOTIFY:
|
|
||||||
# Make the outline thin.
|
|
||||||
return gtk.TRUE
|
|
||||||
|
|
||||||
return gtk.FALSE
|
return gtk.FALSE
|
||||||
|
|
||||||
@ -279,6 +314,13 @@ class Gallery(ImageSelect):
|
|||||||
def add_thumbnail(self, photo):
|
def add_thumbnail(self, photo):
|
||||||
"""Scale the image and add it to the IconList."""
|
"""Scale the image and add it to the IconList."""
|
||||||
object = photo.getReference()
|
object = photo.getReference()
|
||||||
|
oid = object.getId()
|
||||||
|
|
||||||
|
if self.canvas_list.has_key(oid):
|
||||||
|
(grp,item,text,bg,x,y) = self.canvas_list[oid]
|
||||||
|
if x != self.cx or y != self.cy:
|
||||||
|
grp.move(self.cx-x,self.cy-y)
|
||||||
|
else:
|
||||||
name = Utils.thumb_path(self.db.getSavePath(),object)
|
name = Utils.thumb_path(self.db.getSavePath(),object)
|
||||||
description = object.getDescription()
|
description = object.getDescription()
|
||||||
if len(description) > 20:
|
if len(description) > 20:
|
||||||
@ -289,48 +331,62 @@ class Gallery(ImageSelect):
|
|||||||
y = image.get_height()
|
y = image.get_height()
|
||||||
|
|
||||||
grp = self.root.add(gnome.canvas.CanvasGroup,x=self.cx,y=self.cy)
|
grp = self.root.add(gnome.canvas.CanvasGroup,x=self.cx,y=self.cy)
|
||||||
grp.connect('event',self.item_event)
|
|
||||||
grp.set_data('obj',photo)
|
|
||||||
|
|
||||||
xloc = (_IMAGEX-x)/2
|
xloc = (_IMAGEX-x)/2
|
||||||
yloc = (_IMAGEX-y)/2
|
yloc = (_IMAGEY-y)/2
|
||||||
|
|
||||||
|
bg = grp.add(gnome.canvas.CanvasRect,
|
||||||
|
x1=0,
|
||||||
|
x2=_IMAGEX,
|
||||||
|
y2=_IMAGEY,
|
||||||
|
y1=_IMAGEY-20)
|
||||||
|
|
||||||
item = grp.add(gnome.canvas.CanvasPixbuf,
|
item = grp.add(gnome.canvas.CanvasPixbuf,
|
||||||
pixbuf=image,
|
pixbuf=image,
|
||||||
x=xloc,
|
x=xloc,
|
||||||
y=yloc)
|
y=yloc)
|
||||||
|
|
||||||
text = grp.add(gnome.canvas.CanvasText,
|
text = grp.add(gnome.canvas.CanvasText,
|
||||||
x=_IMAGEX/2,
|
x=_IMAGEX/2,
|
||||||
y=_IMAGEX,
|
y=_IMAGEX,
|
||||||
anchor=gtk.ANCHOR_CENTER,
|
anchor=gtk.ANCHOR_CENTER,
|
||||||
text=description)
|
text=description)
|
||||||
|
|
||||||
self.cx = 10 + _IMAGEX + self.cx
|
|
||||||
if self.cx + 10 + _IMAGEX > self.x:
|
self.item_map[item] = oid
|
||||||
self.cx = 10
|
self.item_map[text] = oid
|
||||||
self.cy = self.cy + 10 + _IMAGEY
|
self.item_map[grp] = oid
|
||||||
|
self.item_map[bg] = oid
|
||||||
|
|
||||||
|
self.p_map[item] = (item,text,bg,photo)
|
||||||
|
self.p_map[text] = (item,text,bg,photo)
|
||||||
|
self.p_map[grp] = (item,text,bg,photo)
|
||||||
|
self.p_map[bg] = (item,text,bg,photo)
|
||||||
|
|
||||||
item.show()
|
item.show()
|
||||||
text.show()
|
text.show()
|
||||||
self.canvas_list.append(grp)
|
bg.show()
|
||||||
self.canvas_list.append(item)
|
|
||||||
self.canvas_list.append(text)
|
self.canvas_list[oid] = (grp,item,text,bg,self.cx,self.cy)
|
||||||
|
|
||||||
|
if self.cx + _PAD + _IMAGEX > self.x:
|
||||||
|
self.cx = _PAD
|
||||||
|
self.cy = self.cy + _PAD + _IMAGEY
|
||||||
|
else:
|
||||||
|
self.cx = _PAD + self.cx + _IMAGEX
|
||||||
|
|
||||||
def load_images(self):
|
def load_images(self):
|
||||||
"""clears the currentImages list to free up any cached
|
"""clears the currentImages list to free up any cached
|
||||||
Imlibs. Then add each photo in the place's list of photos to the
|
Imlibs. Then add each photo in the place's list of photos to the
|
||||||
photolist window."""
|
photolist window."""
|
||||||
|
|
||||||
for item in self.canvas_list:
|
|
||||||
item.destroy()
|
|
||||||
|
|
||||||
self.pos = 0
|
self.pos = 0
|
||||||
self.cx = 10
|
self.cx = _PAD
|
||||||
self.cy = 10
|
self.cy = _PAD
|
||||||
|
|
||||||
(self.x,self.y) = self.iconlist.get_size()
|
(self.x,self.y) = self.iconlist.get_size()
|
||||||
|
|
||||||
self.max = (self.x)/(_IMAGEX+10)
|
self.max = (self.x)/(_IMAGEX+_PAD)
|
||||||
|
|
||||||
for photo in self.dataobj.getPhotoList():
|
for photo in self.dataobj.getPhotoList():
|
||||||
self.add_thumbnail(photo)
|
self.add_thumbnail(photo)
|
||||||
@ -345,13 +401,12 @@ class Gallery(ImageSelect):
|
|||||||
self.selectedIcon = iconNumber
|
self.selectedIcon = iconNumber
|
||||||
|
|
||||||
def get_index(self,obj,x,y):
|
def get_index(self,obj,x,y):
|
||||||
x_offset = x/(_IMAGEX+10)
|
x_offset = x/(_IMAGEX+_PAD)
|
||||||
y_offset = y/(_IMAGEY+10)
|
y_offset = y/(_IMAGEY+_PAD)
|
||||||
index = (y_offset*self.max)+x_offset
|
index = (y_offset*(1+self.max))+x_offset
|
||||||
return min(index,len(self.dataobj.getPhotoList()))
|
return min(index,len(self.dataobj.getPhotoList()))
|
||||||
|
|
||||||
def on_photolist_drag_data_received(self,w, context, x, y, data, info, time):
|
def on_photolist_drag_data_received(self,w, context, x, y, data, info, time):
|
||||||
print "receive",w
|
|
||||||
if data and data.format == 8:
|
if data and data.format == 8:
|
||||||
icon_index = self.get_index(w,x,y)
|
icon_index = self.get_index(w,x,y)
|
||||||
d = string.strip(string.replace(data.data,'\0',' '))
|
d = string.strip(string.replace(data.data,'\0',' '))
|
||||||
@ -441,19 +496,13 @@ class Gallery(ImageSelect):
|
|||||||
if GrampsCfg.globalprop:
|
if GrampsCfg.globalprop:
|
||||||
LocalMediaProperties(oref,self.path,self)
|
LocalMediaProperties(oref,self.path,self)
|
||||||
Utils.modified()
|
Utils.modified()
|
||||||
#w.drag_finish(context, 1, 0, time)
|
|
||||||
else:
|
|
||||||
pass
|
|
||||||
#w.drag_finish(context, 0, 0, time)
|
|
||||||
|
|
||||||
def on_photolist_drag_data_get(self,w, context, selection_data, info, time):
|
def on_photolist_drag_data_get(self,w, context, selection_data, info, time):
|
||||||
print "drag data get",w
|
|
||||||
if info == 1:
|
if info == 1:
|
||||||
return
|
return
|
||||||
if self.selectedIcon != -1:
|
id = self.item_map[self.drag_item]
|
||||||
ref = self.dataobj.getPhotoList()[self.selectedIcon]
|
|
||||||
id = ref.getReference().getId()
|
|
||||||
selection_data.set(selection_data.target, 8, id)
|
selection_data.set(selection_data.target, 8, id)
|
||||||
|
self.drag_item = None
|
||||||
|
|
||||||
def on_add_photo_clicked(self, obj):
|
def on_add_photo_clicked(self, obj):
|
||||||
"""User wants to add a new photo. Create a dialog to find out
|
"""User wants to add a new photo. Create a dialog to find out
|
||||||
@ -480,7 +529,6 @@ class Gallery(ImageSelect):
|
|||||||
"""Look for right-clicks on a picture and create a popup
|
"""Look for right-clicks on a picture and create a popup
|
||||||
menu of the available actions."""
|
menu of the available actions."""
|
||||||
|
|
||||||
|
|
||||||
menu = gtk.Menu()
|
menu = gtk.Menu()
|
||||||
item = gtk.TearoffMenuItem()
|
item = gtk.TearoffMenuItem()
|
||||||
item.show()
|
item.show()
|
||||||
|
@ -25,29 +25,7 @@ class ListModel:
|
|||||||
def __init__(self,tree,dlist):
|
def __init__(self,tree,dlist):
|
||||||
self.tree = tree
|
self.tree = tree
|
||||||
l = len(dlist)
|
l = len(dlist)
|
||||||
if l == 1:
|
self.model = gtk.ListStore(*[TYPE_STRING]*l)
|
||||||
self.model = gtk.ListStore(TYPE_STRING)
|
|
||||||
elif l == 2:
|
|
||||||
self.model = gtk.ListStore(TYPE_STRING, TYPE_STRING)
|
|
||||||
elif l == 3:
|
|
||||||
self.model = gtk.ListStore(TYPE_STRING, TYPE_STRING, TYPE_STRING)
|
|
||||||
elif l == 4:
|
|
||||||
self.model = gtk.ListStore(TYPE_STRING, TYPE_STRING, TYPE_STRING,
|
|
||||||
TYPE_STRING)
|
|
||||||
elif l == 5:
|
|
||||||
self.model = gtk.ListStore(TYPE_STRING, TYPE_STRING, TYPE_STRING,
|
|
||||||
TYPE_STRING, TYPE_STRING)
|
|
||||||
elif l == 6:
|
|
||||||
self.model = gtk.ListStore(TYPE_STRING, TYPE_STRING, TYPE_STRING,
|
|
||||||
TYPE_STRING, TYPE_STRING, TYPE_STRING)
|
|
||||||
elif l == 7:
|
|
||||||
self.model = gtk.ListStore(TYPE_STRING, TYPE_STRING, TYPE_STRING,
|
|
||||||
TYPE_STRING, TYPE_STRING, TYPE_STRING,
|
|
||||||
TYPE_STRING)
|
|
||||||
elif l == 8:
|
|
||||||
self.model = gtk.ListStore(TYPE_STRING, TYPE_STRING, TYPE_STRING,
|
|
||||||
TYPE_STRING, TYPE_STRING, TYPE_STRING,
|
|
||||||
TYPE_STRING, TYPE_STRING)
|
|
||||||
|
|
||||||
self.selection = self.tree.get_selection()
|
self.selection = self.tree.get_selection()
|
||||||
self.tree.set_model(self.model)
|
self.tree.set_model(self.model)
|
||||||
|
@ -121,21 +121,21 @@ class SelectChild:
|
|||||||
bday = self.person.getBirth().getDateObj()
|
bday = self.person.getBirth().getDateObj()
|
||||||
dday = self.person.getDeath().getDateObj()
|
dday = self.person.getDeath().getDateObj()
|
||||||
|
|
||||||
slist = []
|
slist = {}
|
||||||
for f in self.person.getParentList():
|
for f in self.person.getParentList():
|
||||||
if f:
|
if f:
|
||||||
if f[0].getFather():
|
if f[0].getFather():
|
||||||
slist.append(f[0].getFather())
|
slist[f[0].getFather().getId()] = 1
|
||||||
elif f[0].getMother():
|
elif f[0].getMother():
|
||||||
slist.append(f[0].getMother())
|
slist[f[0].getMother().getId()] = 1
|
||||||
for c in f[0].getChildList():
|
for c in f[0].getChildList():
|
||||||
slist.append(c)
|
slist[c.getId()] = 1
|
||||||
|
|
||||||
person_list = []
|
person_list = []
|
||||||
for key in self.db.getPersonKeys():
|
for key in self.db.getPersonKeys():
|
||||||
person = self.db.getPerson(key)
|
person = self.db.getPerson(key)
|
||||||
if filter:
|
if filter:
|
||||||
if person in slist or person.getMainParents():
|
if slist.has_key(key) or person.getMainParents():
|
||||||
continue
|
continue
|
||||||
|
|
||||||
pdday = person.getDeath().getDateObj()
|
pdday = person.getDeath().getDateObj()
|
||||||
@ -167,10 +167,10 @@ class SelectChild:
|
|||||||
if pdday.getLowYear() > dday.getHighYear() + 150:
|
if pdday.getLowYear() > dday.getHighYear() + 150:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
person_list.append(person)
|
person_list.append(person.getId())
|
||||||
|
|
||||||
for person in person_list:
|
for idval in person_list:
|
||||||
dinfo = self.db.getPersonDisplay(id)
|
dinfo = self.db.getPersonDisplay(idval)
|
||||||
rdata = [dinfo[0],dinfo[1],dinfo[3],dinfo[5],dinfo[6]]
|
rdata = [dinfo[0],dinfo[1],dinfo[3],dinfo[5],dinfo[6]]
|
||||||
self.refmodel.add(rdata)
|
self.refmodel.add(rdata)
|
||||||
|
|
||||||
|
@ -4274,8 +4274,8 @@
|
|||||||
<widget class="GtkScrolledWindow" id="scrolledwindow22">
|
<widget class="GtkScrolledWindow" id="scrolledwindow22">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="hscrollbar_policy">GTK_POLICY_ALWAYS</property>
|
<property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
|
||||||
<property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
|
<property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
|
||||||
<property name="shadow_type">GTK_SHADOW_NONE</property>
|
<property name="shadow_type">GTK_SHADOW_NONE</property>
|
||||||
<property name="window_placement">GTK_CORNER_TOP_LEFT</property>
|
<property name="window_placement">GTK_CORNER_TOP_LEFT</property>
|
||||||
|
|
||||||
|
@ -5450,6 +5450,7 @@
|
|||||||
<property name="type">GTK_WINDOW_TOPLEVEL</property>
|
<property name="type">GTK_WINDOW_TOPLEVEL</property>
|
||||||
<property name="window_position">GTK_WIN_POS_NONE</property>
|
<property name="window_position">GTK_WIN_POS_NONE</property>
|
||||||
<property name="modal">False</property>
|
<property name="modal">False</property>
|
||||||
|
<property name="default_width">300</property>
|
||||||
<property name="resizable">True</property>
|
<property name="resizable">True</property>
|
||||||
<property name="destroy_with_parent">False</property>
|
<property name="destroy_with_parent">False</property>
|
||||||
<property name="has_separator">True</property>
|
<property name="has_separator">True</property>
|
||||||
|
3641
src/mergedata.glade
3641
src/mergedata.glade
File diff suppressed because it is too large
Load Diff
@ -31,10 +31,10 @@ import Utils
|
|||||||
import string
|
import string
|
||||||
import const
|
import const
|
||||||
import GenericFilter
|
import GenericFilter
|
||||||
|
import ListModel
|
||||||
from TextDoc import *
|
from TextDoc import *
|
||||||
from OpenSpreadSheet import *
|
from OpenSpreadSheet import *
|
||||||
import intl
|
from intl import gettext as _
|
||||||
_ = intl.gettext
|
|
||||||
|
|
||||||
import gnome.ui
|
import gnome.ui
|
||||||
import gtk
|
import gtk
|
||||||
@ -167,11 +167,8 @@ def by_value(first,second):
|
|||||||
#
|
#
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
def fix(line):
|
def fix(line):
|
||||||
l = string.strip(line)
|
l = line.strip().replace('&','&').replace(l,'>','>')
|
||||||
l = string.replace(l,'&','&')
|
return l.replace(l,'<','<').replace(l,'"','"')
|
||||||
l = string.replace(l,'>','>')
|
|
||||||
l = string.replace(l,'<','<')
|
|
||||||
return string.replace(l,'"','"')
|
|
||||||
|
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
@ -193,7 +190,7 @@ class DisplayChart:
|
|||||||
})
|
})
|
||||||
|
|
||||||
self.top = self.topDialog.get_widget("view")
|
self.top = self.topDialog.get_widget("view")
|
||||||
self.table = self.topDialog.get_widget("addarea")
|
self.eventlist = self.topDialog.get_widget('treeview')
|
||||||
|
|
||||||
self.my_list.sort(sort.by_last_name)
|
self.my_list.sort(sort.by_last_name)
|
||||||
|
|
||||||
@ -204,17 +201,19 @@ class DisplayChart:
|
|||||||
|
|
||||||
def draw_clist_display(self):
|
def draw_clist_display(self):
|
||||||
|
|
||||||
eventlist = gtk.CList(len(self.event_titles),self.event_titles)
|
titles = []
|
||||||
self.table.add(eventlist)
|
index = 0
|
||||||
eventlist.show()
|
for v in self.event_titles:
|
||||||
|
titles.append((v,150,index))
|
||||||
|
index = index + 1
|
||||||
|
|
||||||
for (top,bottom) in self.row_data:
|
self.list = ListModel.ListModel(self.eventlist,titles)
|
||||||
eventlist.append(top)
|
for data in self.row_data:
|
||||||
eventlist.append(bottom)
|
self.list.add(data)
|
||||||
|
|
||||||
for index in range(0,len(self.event_titles)):
|
# for index in range(0,len(self.event_titles)):
|
||||||
width = min(150,eventlist.optimal_column_width(index))
|
# width = min(150,eventlist.optimal_column_width(index))
|
||||||
eventlist.set_column_width(index,width)
|
# self.eventlist.set_column_width(index,width)
|
||||||
|
|
||||||
def build_row_data(self):
|
def build_row_data(self):
|
||||||
for individual in self.my_list:
|
for individual in self.my_list:
|
||||||
@ -235,29 +234,26 @@ class DisplayChart:
|
|||||||
while done == 0:
|
while done == 0:
|
||||||
added = 0
|
added = 0
|
||||||
if first:
|
if first:
|
||||||
tlist = [name,birth.getDate(),death.getDate()]
|
tlist = [name,"%s\n%s" % (birth.getDate(),birth.getPlaceName()),
|
||||||
blist = ["",birth.getPlaceName(),death.getPlaceName()]
|
"%s\n%s" % (death.getDate(),death.getPlaceName())]
|
||||||
else:
|
else:
|
||||||
tlist = ["","",""]
|
tlist = ["","",""]
|
||||||
blist = ["","",""]
|
|
||||||
for ename in self.event_titles[3:]:
|
for ename in self.event_titles[3:]:
|
||||||
if map.has_key(ename) and len(map[ename]) > 0:
|
if map.has_key(ename) and len(map[ename]) > 0:
|
||||||
event = map[ename][0]
|
event = map[ename][0]
|
||||||
del map[ename][0]
|
del map[ename][0]
|
||||||
tlist.append(event.getDate())
|
tlist.append("%s\n%s" % (event.getDate(), event.getPlaceName()))
|
||||||
blist.append(event.getPlaceName())
|
|
||||||
added = 1
|
added = 1
|
||||||
else:
|
else:
|
||||||
tlist.append("")
|
tlist.append("")
|
||||||
blist.append("")
|
|
||||||
|
|
||||||
if first:
|
if first:
|
||||||
first = 0
|
first = 0
|
||||||
self.row_data.append((tlist,blist))
|
self.row_data.append(tlist)
|
||||||
elif added == 0:
|
elif added == 0:
|
||||||
done = 1
|
done = 1
|
||||||
else:
|
else:
|
||||||
self.row_data.append((tlist,blist))
|
self.row_data.append(tlist)
|
||||||
|
|
||||||
def make_event_titles(self):
|
def make_event_titles(self):
|
||||||
"""Creates the list of unique event types, along with the person's
|
"""Creates the list of unique event types, along with the person's
|
||||||
@ -330,6 +326,8 @@ register_tool(
|
|||||||
runTool,
|
runTool,
|
||||||
_("Compare individual events"),
|
_("Compare individual events"),
|
||||||
category=_("Analysis and Exploration"),
|
category=_("Analysis and Exploration"),
|
||||||
description=_("Aids in the analysis of data by allowing the development of custom filters that can be applied to the database to find similar events")
|
description=_("Aids in the analysis of data by allowing the "
|
||||||
|
"development of custom filters that can be applied "
|
||||||
|
"to the database to find similar events")
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -24,6 +24,7 @@ import RelLib
|
|||||||
import Utils
|
import Utils
|
||||||
import soundex
|
import soundex
|
||||||
import GrampsCfg
|
import GrampsCfg
|
||||||
|
import ListModel
|
||||||
from intl import gettext as _
|
from intl import gettext as _
|
||||||
|
|
||||||
import string
|
import string
|
||||||
@ -43,11 +44,16 @@ def is_initial(name):
|
|||||||
if len(name) > 2:
|
if len(name) > 2:
|
||||||
return 0
|
return 0
|
||||||
elif len(name) == 2:
|
elif len(name) == 2:
|
||||||
if name[0] in string.uppercase and name[1] == '.':
|
if name[0] == name[0].upper() and name[1] == '.':
|
||||||
return 1
|
return 1
|
||||||
else:
|
else:
|
||||||
return name[0] in string.uppercase
|
return name[0] == name[0].upper()
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
#
|
||||||
|
#
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
def ancestors_of(p1,list):
|
def ancestors_of(p1,list):
|
||||||
if p1 == None or p1 in list:
|
if p1 == None or p1 in list:
|
||||||
return
|
return
|
||||||
@ -113,9 +119,11 @@ class Merge:
|
|||||||
self.show()
|
self.show()
|
||||||
|
|
||||||
def progress_update(self,val):
|
def progress_update(self,val):
|
||||||
self.progress.set_value(val)
|
pass
|
||||||
while gtk.events_pending():
|
# self.progress.set_value(val)
|
||||||
gtk.mainiteration()
|
# while gtk.events_pending():
|
||||||
|
# gtk.mainiteration()
|
||||||
|
|
||||||
|
|
||||||
def find_potentials(self,thresh):
|
def find_potentials(self,thresh):
|
||||||
top = gtk.glade.XML(self.glade_file,"message")
|
top = gtk.glade.XML(self.glade_file,"message")
|
||||||
@ -131,19 +139,20 @@ class Merge:
|
|||||||
key = self.gen_key(p1.getPrimaryName().getSurname())
|
key = self.gen_key(p1.getPrimaryName().getSurname())
|
||||||
if p1.getGender() == RelLib.Person.male:
|
if p1.getGender() == RelLib.Person.male:
|
||||||
if males.has_key(key):
|
if males.has_key(key):
|
||||||
males[key].append(p1)
|
males[key].append(p1.getId())
|
||||||
else:
|
else:
|
||||||
males[key] = [p1]
|
males[key] = [p1.getId()]
|
||||||
else:
|
else:
|
||||||
if females.has_key(key):
|
if females.has_key(key):
|
||||||
females[key].append(p1)
|
females[key].append(p1.getId())
|
||||||
else:
|
else:
|
||||||
females[key] = [p1]
|
females[key] = [p1.getId()]
|
||||||
|
|
||||||
length = len(self.person_list)
|
length = len(self.person_list)
|
||||||
|
|
||||||
num = 0
|
num = 0
|
||||||
for p1 in self.person_list:
|
for p1 in self.person_list:
|
||||||
|
p1key = p1.getId()
|
||||||
if num % 25 == 0:
|
if num % 25 == 0:
|
||||||
self.progress_update((float(num)/float(length))*100)
|
self.progress_update((float(num)/float(length))*100)
|
||||||
num = num + 1
|
num = num + 1
|
||||||
@ -155,26 +164,27 @@ class Merge:
|
|||||||
remaining = females[key]
|
remaining = females[key]
|
||||||
|
|
||||||
index = 0
|
index = 0
|
||||||
for p2 in remaining:
|
for p2key in remaining:
|
||||||
index = index + 1
|
index = index + 1
|
||||||
if p1 == p2:
|
if p1key == p2key:
|
||||||
continue
|
continue
|
||||||
if self.map.has_key(p2):
|
p2 = self.db.getPerson(p2key)
|
||||||
(v,c) = self.map[p2]
|
if self.map.has_key(p2key):
|
||||||
|
(v,c) = self.map[p2key]
|
||||||
if v == p1:
|
if v == p1:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
chance = self.compare_people(p1,p2)
|
chance = self.compare_people(p1,p2)
|
||||||
if chance >= thresh:
|
if chance >= thresh:
|
||||||
if self.map.has_key(p1):
|
if self.map.has_key(p1key):
|
||||||
val = self.map[p1]
|
val = self.map[p1key]
|
||||||
if val[1] > chance:
|
if val[1] > chance:
|
||||||
self.map[p1] = (p2,chance)
|
self.map[p1key] = (p2,chance)
|
||||||
else:
|
else:
|
||||||
self.map[p1] = (p2,chance)
|
self.map[p1key] = (p2,chance)
|
||||||
|
|
||||||
self.list = self.map.keys()[:]
|
self.list = self.map.keys()
|
||||||
self.list.sort(by_id)
|
self.list.sort()
|
||||||
self.length = len(self.list)
|
self.length = len(self.list)
|
||||||
self.topWin.destroy()
|
self.topWin.destroy()
|
||||||
self.dellist = {}
|
self.dellist = {}
|
||||||
@ -188,6 +198,12 @@ class Merge:
|
|||||||
"on_do_merge_clicked" : self.on_do_merge_clicked,
|
"on_do_merge_clicked" : self.on_do_merge_clicked,
|
||||||
})
|
})
|
||||||
self.mlist.connect('button-press-event',self.button_press_event)
|
self.mlist.connect('button-press-event',self.button_press_event)
|
||||||
|
|
||||||
|
self.list = ListModel.ListModel(self.mlist,
|
||||||
|
[(_('Rating'),75,0),
|
||||||
|
(_('First Person'),200,1),
|
||||||
|
(_('Second Person'),200,2)])
|
||||||
|
|
||||||
self.redraw()
|
self.redraw()
|
||||||
|
|
||||||
def redraw(self):
|
def redraw(self):
|
||||||
@ -196,39 +212,41 @@ class Merge:
|
|||||||
if self.dellist.has_key(p1):
|
if self.dellist.has_key(p1):
|
||||||
continue
|
continue
|
||||||
(p2,c) = self.map[p1]
|
(p2,c) = self.map[p1]
|
||||||
if self.dellist.has_key(p2):
|
p2key = p2.getId()
|
||||||
p2 = self.dellist[p2]
|
if self.dellist.has_key(p2key):
|
||||||
|
p2 = self.dellist[p2key]
|
||||||
if p1 == p2:
|
if p1 == p2:
|
||||||
continue
|
continue
|
||||||
list.append((c,p1,p2))
|
list.append((c,p1,p2.getId()))
|
||||||
list.sort()
|
list.sort()
|
||||||
list.reverse()
|
list.reverse()
|
||||||
|
|
||||||
index = 0
|
index = 0
|
||||||
self.mlist.freeze()
|
self.match_map = {}
|
||||||
self.mlist.clear()
|
self.list.clear()
|
||||||
for (c,p1,p2) in list:
|
for (c,p1,p2) in list:
|
||||||
c = "%5.2f" % c
|
c = "%5.2f" % c
|
||||||
self.mlist.append([c, name_of(p1), name_of(p2)])
|
pn1 = self.db.getPerson(p1)
|
||||||
self.mlist.set_row_data(index,(p1,p2))
|
pn2 = self.db.getPerson(p2)
|
||||||
|
self.list.add([c, name_of(pn1), name_of(pn2)])
|
||||||
|
self.match_map[index] = (p1,p2)
|
||||||
index = index + 1
|
index = index + 1
|
||||||
self.mlist.thaw()
|
|
||||||
|
|
||||||
def button_press_event(self,obj,event):
|
def button_press_event(self,obj,event):
|
||||||
if event.button != 1 or event.type != GDK._2BUTTON_PRESS:
|
if event.button != 1 or event.type != gtk.gdk._2BUTTON_PRESS:
|
||||||
return
|
return
|
||||||
if len(self.mlist.selection) <= 0:
|
self.on_do_merge_clicked(obj)
|
||||||
return
|
|
||||||
row = self.mlist.selection[0]
|
|
||||||
(p1,p2) = self.mlist.get_row_data(row)
|
|
||||||
MergeData.MergePeople(self.db,p1,p2,self.on_update)
|
|
||||||
|
|
||||||
def on_do_merge_clicked(self,obj):
|
def on_do_merge_clicked(self,obj):
|
||||||
if len(self.mlist.selection) != 1:
|
store,iter = self.list.selection.get_selected()
|
||||||
|
if not iter:
|
||||||
return
|
return
|
||||||
row = self.mlist.selection[0]
|
|
||||||
(p1,p2) = self.mlist.get_row_data(row)
|
row = self.list.model.get_path(iter)
|
||||||
MergeData.MergePeople(self.db,p1,p2,self.on_update)
|
(p1,p2) = self.match_map[row[0]]
|
||||||
|
pn1 = self.db.getPerson(p1)
|
||||||
|
pn2 = self.db.getPerson(p2)
|
||||||
|
MergeData.MergePeople(self.db,pn1,pn2,self.on_update)
|
||||||
|
|
||||||
def on_update(self,p1,p2):
|
def on_update(self,p1,p2):
|
||||||
self.dellist[p2] = p1
|
self.dellist[p2] = p1
|
||||||
@ -524,6 +542,7 @@ register_tool(
|
|||||||
runTool,
|
runTool,
|
||||||
_("Find possible duplicate people"),
|
_("Find possible duplicate people"),
|
||||||
category=_("Database Processing"),
|
category=_("Database Processing"),
|
||||||
description=_("Searches the entire database, looking for individual entries that may represent the same person.")
|
description=_("Searches the entire database, looking for "
|
||||||
|
"individual entries that may represent the same person.")
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -1,188 +1,200 @@
|
|||||||
<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
|
<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
|
||||||
<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd" >
|
<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
|
||||||
|
|
||||||
<glade-interface>
|
<glade-interface>
|
||||||
<requires lib="gnome" />
|
<requires lib="gnome"/>
|
||||||
|
|
||||||
<widget class="GtkDialog" id="dialog1">
|
<widget class="GtkDialog" id="dialog1">
|
||||||
|
<property name="visible">True</property>
|
||||||
<property name="title" translatable="yes">Save as a Spreadsheet - GRAMPS</property>
|
<property name="title" translatable="yes">Save as a Spreadsheet - GRAMPS</property>
|
||||||
<property name="type">GTK_WINDOW_DIALOG</property>
|
<property name="type">GTK_WINDOW_TOPLEVEL</property>
|
||||||
<property name="modal">no</property>
|
<property name="window_position">GTK_WIN_POS_NONE</property>
|
||||||
<property name="allow_shrink">no</property>
|
<property name="modal">False</property>
|
||||||
<property name="allow_grow">no</property>
|
<property name="resizable">True</property>
|
||||||
<property name="visible">yes</property>
|
<property name="destroy_with_parent">False</property>
|
||||||
<property name="window-position">GTK_WIN_POS_NONE</property>
|
<property name="has_separator">True</property>
|
||||||
|
|
||||||
<child internal-child="vbox">
|
<child internal-child="vbox">
|
||||||
<widget class="GtkVBox" id="dialog-vbox2">
|
<widget class="GtkVBox" id="dialog-vbox2">
|
||||||
<property name="homogeneous">no</property>
|
<property name="visible">True</property>
|
||||||
|
<property name="homogeneous">False</property>
|
||||||
<property name="spacing">8</property>
|
<property name="spacing">8</property>
|
||||||
<property name="visible">yes</property>
|
|
||||||
|
|
||||||
<child internal-child="action_area">
|
<child internal-child="action_area">
|
||||||
<widget class="GtkHButtonBox" id="dialog-action_area2">
|
<widget class="GtkHButtonBox" id="dialog-action_area2">
|
||||||
|
<property name="visible">True</property>
|
||||||
<property name="layout_style">GTK_BUTTONBOX_END</property>
|
<property name="layout_style">GTK_BUTTONBOX_END</property>
|
||||||
<property name="spacing">8</property>
|
|
||||||
<property name="visible">yes</property>
|
|
||||||
|
|
||||||
<child>
|
<child>
|
||||||
<widget class="GtkButton" id="button14">
|
<widget class="GtkButton" id="button14">
|
||||||
<property name="can_default">yes</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">yes</property>
|
<property name="can_default">True</property>
|
||||||
<property name="visible">yes</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="label">gtk-ok</property>
|
<property name="label">gtk-ok</property>
|
||||||
<property name="use_stock">yes</property>
|
<property name="use_stock">True</property>
|
||||||
<property name="use_underline">yes</property>
|
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||||
|
<property name="response_id">0</property>
|
||||||
<signal name="clicked" handler="on_save_clicked" object="dialog1" />
|
<signal name="clicked" handler="on_save_clicked" object="dialog1"/>
|
||||||
</widget>
|
</widget>
|
||||||
</child>
|
</child>
|
||||||
|
|
||||||
<child>
|
<child>
|
||||||
<widget class="GtkButton" id="button16">
|
<widget class="GtkButton" id="button16">
|
||||||
<property name="can_default">yes</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">yes</property>
|
<property name="can_default">True</property>
|
||||||
<property name="visible">yes</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="label">gtk-cancel</property>
|
<property name="label">gtk-cancel</property>
|
||||||
<property name="use_stock">yes</property>
|
<property name="use_stock">True</property>
|
||||||
<property name="use_underline">yes</property>
|
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||||
|
<property name="response_id">0</property>
|
||||||
<signal name="clicked" handler="destroy_passed_object" object="dialog1" />
|
<signal name="clicked" handler="destroy_passed_object" object="dialog1"/>
|
||||||
</widget>
|
</widget>
|
||||||
</child>
|
</child>
|
||||||
</widget>
|
</widget>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="padding">0</property>
|
<property name="padding">0</property>
|
||||||
<property name="expand">no</property>
|
<property name="expand">False</property>
|
||||||
<property name="fill">yes</property>
|
<property name="fill">True</property>
|
||||||
<property name="pack_type">GTK_PACK_END</property>
|
<property name="pack_type">GTK_PACK_END</property>
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
|
|
||||||
<child>
|
<child>
|
||||||
<widget class="GtkVBox" id="vbox3">
|
<widget class="GtkVBox" id="vbox3">
|
||||||
<property name="homogeneous">no</property>
|
<property name="visible">True</property>
|
||||||
|
<property name="homogeneous">False</property>
|
||||||
<property name="spacing">0</property>
|
<property name="spacing">0</property>
|
||||||
<property name="visible">yes</property>
|
|
||||||
|
|
||||||
<child>
|
<child>
|
||||||
<widget class="GtkLabel" id="labelTitle">
|
<widget class="GtkLabel" id="labelTitle">
|
||||||
|
<property name="visible">True</property>
|
||||||
<property name="label" translatable="yes">Save data as a spreadsheet</property>
|
<property name="label" translatable="yes">Save data as a spreadsheet</property>
|
||||||
|
<property name="use_underline">False</property>
|
||||||
|
<property name="use_markup">False</property>
|
||||||
<property name="justify">GTK_JUSTIFY_CENTER</property>
|
<property name="justify">GTK_JUSTIFY_CENTER</property>
|
||||||
<property name="wrap">no</property>
|
<property name="wrap">False</property>
|
||||||
|
<property name="selectable">False</property>
|
||||||
<property name="xalign">0.5</property>
|
<property name="xalign">0.5</property>
|
||||||
<property name="yalign">0.5</property>
|
<property name="yalign">0.5</property>
|
||||||
<property name="xpad">0</property>
|
<property name="xpad">0</property>
|
||||||
<property name="ypad">0</property>
|
<property name="ypad">0</property>
|
||||||
<property name="visible">yes</property>
|
|
||||||
</widget>
|
</widget>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="padding">0</property>
|
<property name="padding">0</property>
|
||||||
<property name="expand">no</property>
|
<property name="expand">False</property>
|
||||||
<property name="fill">no</property>
|
<property name="fill">False</property>
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
|
|
||||||
<child>
|
<child>
|
||||||
<widget class="GtkHSeparator" id="hseparator1">
|
<widget class="GtkHSeparator" id="hseparator1">
|
||||||
<property name="visible">yes</property>
|
<property name="visible">True</property>
|
||||||
</widget>
|
</widget>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="padding">5</property>
|
<property name="padding">5</property>
|
||||||
<property name="expand">yes</property>
|
<property name="expand">True</property>
|
||||||
<property name="fill">yes</property>
|
<property name="fill">True</property>
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
|
|
||||||
<child>
|
<child>
|
||||||
<widget class="GnomeFileEntry" id="fileentry1">
|
<widget class="GnomeFileEntry" id="fileentry1">
|
||||||
|
<property name="visible">True</property>
|
||||||
<property name="history_id">table_data</property>
|
<property name="history_id">table_data</property>
|
||||||
<property name="modal">no</property>
|
<property name="max_saved">10</property>
|
||||||
<property name="width-request">350</property>
|
<property name="browse_dialog_title" translatable="yes">Save Data</property>
|
||||||
<property name="directory_entry">no</property>
|
<property name="directory_entry">False</property>
|
||||||
<property name="browse_dialog_title">Save Data</property>
|
<property name="modal">False</property>
|
||||||
<property name="visible">yes</property>
|
|
||||||
|
|
||||||
<child internal-child="entry">
|
<child internal-child="entry">
|
||||||
<widget class="GtkEntry" id="filename">
|
<widget class="GtkEntry" id="filename">
|
||||||
<property name="can_focus">yes</property>
|
<property name="visible">True</property>
|
||||||
<property name="editable">yes</property>
|
<property name="can_focus">True</property>
|
||||||
|
<property name="editable">True</property>
|
||||||
|
<property name="visibility">True</property>
|
||||||
|
<property name="max_length">0</property>
|
||||||
<property name="text" translatable="yes"></property>
|
<property name="text" translatable="yes"></property>
|
||||||
<property name="max-length">0</property>
|
<property name="has_frame">True</property>
|
||||||
<property name="visibility">yes</property>
|
<property name="invisible_char" translatable="yes">*</property>
|
||||||
<property name="visible">yes</property>
|
<property name="activates_default">False</property>
|
||||||
</widget>
|
</widget>
|
||||||
</child>
|
</child>
|
||||||
</widget>
|
</widget>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="padding">5</property>
|
<property name="padding">5</property>
|
||||||
<property name="expand">no</property>
|
<property name="expand">False</property>
|
||||||
<property name="fill">no</property>
|
<property name="fill">False</property>
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
|
|
||||||
<child>
|
<child>
|
||||||
<widget class="GtkFrame" id="frame1">
|
<widget class="GtkFrame" id="frame1">
|
||||||
<property name="label" translatable="yes">Format</property>
|
<property name="visible">True</property>
|
||||||
<property name="label_xalign">0</property>
|
<property name="label_xalign">0</property>
|
||||||
<property name="shadow">GTK_SHADOW_ETCHED_IN</property>
|
<property name="label_yalign">0.5</property>
|
||||||
<property name="visible">yes</property>
|
<property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
|
||||||
|
|
||||||
<child>
|
<child>
|
||||||
<widget class="GtkVBox" id="vbox4">
|
<widget class="GtkVBox" id="vbox4">
|
||||||
<property name="homogeneous">no</property>
|
<property name="visible">True</property>
|
||||||
|
<property name="homogeneous">False</property>
|
||||||
<property name="spacing">0</property>
|
<property name="spacing">0</property>
|
||||||
<property name="visible">yes</property>
|
|
||||||
|
|
||||||
<child>
|
<child>
|
||||||
<widget class="GtkRadioButton" id="openoffice">
|
<widget class="GtkRadioButton" id="openoffice">
|
||||||
<property name="can_focus">yes</property>
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">True</property>
|
||||||
<property name="label" translatable="yes">OpenOffice Spreadsheet</property>
|
<property name="label" translatable="yes">OpenOffice Spreadsheet</property>
|
||||||
<property name="active">yes</property>
|
<property name="use_underline">True</property>
|
||||||
<property name="draw_indicator">yes</property>
|
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||||
<property name="visible">yes</property>
|
<property name="active">True</property>
|
||||||
|
<property name="inconsistent">False</property>
|
||||||
|
<property name="draw_indicator">True</property>
|
||||||
</widget>
|
</widget>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="padding">0</property>
|
<property name="padding">0</property>
|
||||||
<property name="expand">no</property>
|
<property name="expand">False</property>
|
||||||
<property name="fill">no</property>
|
<property name="fill">False</property>
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
|
|
||||||
<child>
|
<child>
|
||||||
<widget class="GtkRadioButton" id="html">
|
<widget class="GtkRadioButton" id="html">
|
||||||
<property name="visible">no</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="can_focus">yes</property>
|
|
||||||
<property name="label" translatable="yes">HTML</property>
|
<property name="label" translatable="yes">HTML</property>
|
||||||
<property name="active">no</property>
|
<property name="use_underline">True</property>
|
||||||
<property name="draw_indicator">yes</property>
|
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||||
|
<property name="active">False</property>
|
||||||
|
<property name="inconsistent">False</property>
|
||||||
|
<property name="draw_indicator">True</property>
|
||||||
<property name="group">openoffice</property>
|
<property name="group">openoffice</property>
|
||||||
|
<signal name="toggled" handler="on_html_toggled" object="dialog1"/>
|
||||||
<signal name="toggled" handler="on_html_toggled" object="dialog1" />
|
|
||||||
</widget>
|
</widget>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="padding">0</property>
|
<property name="padding">0</property>
|
||||||
<property name="expand">no</property>
|
<property name="expand">False</property>
|
||||||
<property name="fill">no</property>
|
<property name="fill">False</property>
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
|
|
||||||
<child>
|
<child>
|
||||||
<widget class="GtkHBox" id="hbox1">
|
<widget class="GtkHBox" id="hbox1">
|
||||||
<property name="homogeneous">no</property>
|
<property name="visible">True</property>
|
||||||
|
<property name="homogeneous">False</property>
|
||||||
<property name="spacing">0</property>
|
<property name="spacing">0</property>
|
||||||
<property name="visible">yes</property>
|
|
||||||
|
|
||||||
<child>
|
<child>
|
||||||
<placeholder />
|
<placeholder/>
|
||||||
</child>
|
</child>
|
||||||
|
|
||||||
<child>
|
<child>
|
||||||
<widget class="GtkLabel" id="label11">
|
<widget class="GtkLabel" id="label11">
|
||||||
<property name="visible">no</property>
|
|
||||||
<property name="label" translatable="yes">Template</property>
|
<property name="label" translatable="yes">Template</property>
|
||||||
|
<property name="use_underline">False</property>
|
||||||
|
<property name="use_markup">False</property>
|
||||||
<property name="justify">GTK_JUSTIFY_CENTER</property>
|
<property name="justify">GTK_JUSTIFY_CENTER</property>
|
||||||
<property name="wrap">no</property>
|
<property name="wrap">False</property>
|
||||||
|
<property name="selectable">False</property>
|
||||||
<property name="xalign">1</property>
|
<property name="xalign">1</property>
|
||||||
<property name="yalign">0.5</property>
|
<property name="yalign">0.5</property>
|
||||||
<property name="xpad">5</property>
|
<property name="xpad">5</property>
|
||||||
@ -190,149 +202,171 @@
|
|||||||
</widget>
|
</widget>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="padding">0</property>
|
<property name="padding">0</property>
|
||||||
<property name="expand">yes</property>
|
<property name="expand">True</property>
|
||||||
<property name="fill">yes</property>
|
<property name="fill">True</property>
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
|
|
||||||
<child>
|
<child>
|
||||||
<widget class="GnomeFileEntry" id="htmltemplate">
|
<widget class="GnomeFileEntry" id="htmltemplate">
|
||||||
<property name="visible">no</property>
|
<property name="sensitive">False</property>
|
||||||
<property name="sensitive">no</property>
|
|
||||||
<property name="history_id">HtmlTemplate</property>
|
<property name="history_id">HtmlTemplate</property>
|
||||||
<property name="modal">no</property>
|
<property name="max_saved">10</property>
|
||||||
<property name="directory_entry">no</property>
|
<property name="browse_dialog_title" translatable="yes">Choose the HTML template</property>
|
||||||
<property name="browse_dialog_title">Choose the HTML template</property>
|
<property name="directory_entry">False</property>
|
||||||
|
<property name="modal">False</property>
|
||||||
|
|
||||||
<child internal-child="entry">
|
<child internal-child="entry">
|
||||||
<widget class="GtkEntry" id="htmlfile">
|
<widget class="GtkEntry" id="htmlfile">
|
||||||
<property name="can_focus">yes</property>
|
<property name="visible">True</property>
|
||||||
<property name="editable">yes</property>
|
<property name="can_focus">True</property>
|
||||||
|
<property name="editable">True</property>
|
||||||
|
<property name="visibility">True</property>
|
||||||
|
<property name="max_length">0</property>
|
||||||
<property name="text" translatable="yes"></property>
|
<property name="text" translatable="yes"></property>
|
||||||
<property name="max-length">0</property>
|
<property name="has_frame">True</property>
|
||||||
<property name="visibility">yes</property>
|
<property name="invisible_char" translatable="yes">*</property>
|
||||||
<property name="visible">yes</property>
|
<property name="activates_default">False</property>
|
||||||
</widget>
|
</widget>
|
||||||
</child>
|
</child>
|
||||||
</widget>
|
</widget>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="padding">0</property>
|
<property name="padding">0</property>
|
||||||
<property name="expand">yes</property>
|
<property name="expand">True</property>
|
||||||
<property name="fill">yes</property>
|
<property name="fill">True</property>
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
</widget>
|
</widget>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="padding">0</property>
|
<property name="padding">0</property>
|
||||||
<property name="expand">yes</property>
|
<property name="expand">True</property>
|
||||||
<property name="fill">yes</property>
|
<property name="fill">True</property>
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
</widget>
|
</widget>
|
||||||
</child>
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<widget class="GtkLabel" id="label1">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="label" translatable="yes">Format</property>
|
||||||
|
<property name="use_underline">False</property>
|
||||||
|
<property name="use_markup">False</property>
|
||||||
|
<property name="justify">GTK_JUSTIFY_LEFT</property>
|
||||||
|
<property name="wrap">False</property>
|
||||||
|
<property name="selectable">False</property>
|
||||||
|
<property name="xalign">0.5</property>
|
||||||
|
<property name="yalign">0.5</property>
|
||||||
|
<property name="xpad">0</property>
|
||||||
|
<property name="ypad">0</property>
|
||||||
</widget>
|
</widget>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="padding">0</property>
|
<property name="type">label_item</property>
|
||||||
<property name="expand">yes</property>
|
|
||||||
<property name="fill">yes</property>
|
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
</widget>
|
</widget>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="padding">0</property>
|
<property name="padding">0</property>
|
||||||
<property name="expand">yes</property>
|
<property name="expand">True</property>
|
||||||
<property name="fill">yes</property>
|
<property name="fill">True</property>
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
</widget>
|
</widget>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="padding">4</property>
|
<property name="padding">0</property>
|
||||||
<property name="expand">yes</property>
|
<property name="expand">True</property>
|
||||||
<property name="fill">yes</property>
|
<property name="fill">True</property>
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="GtkDialog" id="view">
|
</child>
|
||||||
|
</widget>
|
||||||
|
|
||||||
|
<widget class="GtkDialog" id="view">
|
||||||
|
<property name="visible">True</property>
|
||||||
<property name="title" translatable="yes">Event Comparison - GRAMPS</property>
|
<property name="title" translatable="yes">Event Comparison - GRAMPS</property>
|
||||||
<property name="type">GTK_WINDOW_TOPLEVEL</property>
|
<property name="type">GTK_WINDOW_TOPLEVEL</property>
|
||||||
<property name="modal">no</property>
|
<property name="window_position">GTK_WIN_POS_NONE</property>
|
||||||
<property name="allow_shrink">no</property>
|
<property name="modal">False</property>
|
||||||
<property name="allow_grow">yes</property>
|
<property name="default_width">500</property>
|
||||||
<property name="height-request">350</property>
|
<property name="default_height">400</property>
|
||||||
<property name="visible">yes</property>
|
<property name="resizable">True</property>
|
||||||
<property name="window-position">GTK_WIN_POS_NONE</property>
|
<property name="destroy_with_parent">False</property>
|
||||||
|
<property name="has_separator">True</property>
|
||||||
|
|
||||||
<child internal-child="vbox">
|
<child internal-child="vbox">
|
||||||
<widget class="GtkVBox" id="dialog-vbox3">
|
<widget class="GtkVBox" id="dialog-vbox3">
|
||||||
<property name="homogeneous">no</property>
|
<property name="visible">True</property>
|
||||||
|
<property name="homogeneous">False</property>
|
||||||
<property name="spacing">8</property>
|
<property name="spacing">8</property>
|
||||||
<property name="visible">yes</property>
|
|
||||||
|
|
||||||
<child internal-child="action_area">
|
<child internal-child="action_area">
|
||||||
<widget class="GtkHButtonBox" id="dialog-action_area3">
|
<widget class="GtkHButtonBox" id="dialog-action_area3">
|
||||||
|
<property name="visible">True</property>
|
||||||
<property name="layout_style">GTK_BUTTONBOX_END</property>
|
<property name="layout_style">GTK_BUTTONBOX_END</property>
|
||||||
<property name="spacing">8</property>
|
|
||||||
<property name="visible">yes</property>
|
|
||||||
|
|
||||||
<child>
|
<child>
|
||||||
<widget class="GtkButton" id="button19">
|
<widget class="GtkButton" id="button19">
|
||||||
<property name="can_default">yes</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">yes</property>
|
<property name="can_default">True</property>
|
||||||
<property name="label" translatable="yes">Save As...</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="visible">yes</property>
|
<property name="label">gtk-save-as</property>
|
||||||
|
<property name="use_stock">True</property>
|
||||||
<signal name="clicked" handler="on_write_table" object="view" />
|
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||||
|
<property name="response_id">0</property>
|
||||||
|
<signal name="clicked" handler="on_write_table" object="view"/>
|
||||||
</widget>
|
</widget>
|
||||||
</child>
|
</child>
|
||||||
|
|
||||||
<child>
|
<child>
|
||||||
<widget class="GtkButton" id="button21">
|
<widget class="GtkButton" id="button21">
|
||||||
<property name="can_default">yes</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">yes</property>
|
<property name="can_default">True</property>
|
||||||
<property name="visible">yes</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="label">gtk-close</property>
|
<property name="label">gtk-close</property>
|
||||||
<property name="use_stock">yes</property>
|
<property name="use_stock">True</property>
|
||||||
<property name="use_underline">yes</property>
|
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||||
|
<property name="response_id">0</property>
|
||||||
<signal name="clicked" handler="destroy_passed_object" object="view" />
|
<signal name="clicked" handler="destroy_passed_object" object="view"/>
|
||||||
</widget>
|
</widget>
|
||||||
</child>
|
</child>
|
||||||
</widget>
|
</widget>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="padding">0</property>
|
<property name="padding">0</property>
|
||||||
<property name="expand">no</property>
|
<property name="expand">False</property>
|
||||||
<property name="fill">yes</property>
|
<property name="fill">True</property>
|
||||||
<property name="pack_type">GTK_PACK_END</property>
|
<property name="pack_type">GTK_PACK_END</property>
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
|
|
||||||
<child>
|
<child>
|
||||||
<widget class="GtkTable" id="mytable">
|
<widget class="GtkTable" id="mytable">
|
||||||
<property name="homogeneous">no</property>
|
<property name="visible">True</property>
|
||||||
|
<property name="n_rows">2</property>
|
||||||
|
<property name="n_columns">1</property>
|
||||||
|
<property name="homogeneous">False</property>
|
||||||
<property name="row_spacing">0</property>
|
<property name="row_spacing">0</property>
|
||||||
<property name="column_spacing">0</property>
|
<property name="column_spacing">0</property>
|
||||||
<property name="n-rows">2</property>
|
|
||||||
<property name="n-columns">1</property>
|
|
||||||
<property name="visible">yes</property>
|
|
||||||
|
|
||||||
<child>
|
<child>
|
||||||
<widget class="GtkLabel" id="label10">
|
<widget class="GtkLabel" id="label10">
|
||||||
|
<property name="visible">True</property>
|
||||||
<property name="label" translatable="yes">Event Comparison</property>
|
<property name="label" translatable="yes">Event Comparison</property>
|
||||||
|
<property name="use_underline">False</property>
|
||||||
|
<property name="use_markup">False</property>
|
||||||
<property name="justify">GTK_JUSTIFY_CENTER</property>
|
<property name="justify">GTK_JUSTIFY_CENTER</property>
|
||||||
<property name="wrap">no</property>
|
<property name="wrap">False</property>
|
||||||
|
<property name="selectable">False</property>
|
||||||
<property name="xalign">0.5</property>
|
<property name="xalign">0.5</property>
|
||||||
<property name="yalign">0.5</property>
|
<property name="yalign">0.5</property>
|
||||||
<property name="xpad">0</property>
|
<property name="xpad">0</property>
|
||||||
<property name="ypad">0</property>
|
<property name="ypad">0</property>
|
||||||
<property name="width-request">400</property>
|
|
||||||
<property name="visible">yes</property>
|
|
||||||
</widget>
|
</widget>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="left_attach">0</property>
|
<property name="left_attach">0</property>
|
||||||
<property name="right_attach">1</property>
|
<property name="right_attach">1</property>
|
||||||
<property name="top_attach">0</property>
|
<property name="top_attach">0</property>
|
||||||
<property name="bottom_attach">1</property>
|
<property name="bottom_attach">1</property>
|
||||||
<property name="x_padding">0</property>
|
|
||||||
<property name="y_padding">10</property>
|
<property name="y_padding">10</property>
|
||||||
<property name="x_options">fill</property>
|
<property name="x_options">fill</property>
|
||||||
<property name="y_options"></property>
|
<property name="y_options"></property>
|
||||||
@ -341,25 +375,20 @@
|
|||||||
|
|
||||||
<child>
|
<child>
|
||||||
<widget class="GtkScrolledWindow" id="addarea">
|
<widget class="GtkScrolledWindow" id="addarea">
|
||||||
|
<property name="visible">True</property>
|
||||||
<property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
|
<property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
|
||||||
<property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
|
<property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
|
||||||
<property name="visible">yes</property>
|
<property name="shadow_type">GTK_SHADOW_NONE</property>
|
||||||
|
<property name="window_placement">GTK_CORNER_TOP_LEFT</property>
|
||||||
|
|
||||||
<child>
|
<child>
|
||||||
<placeholder />
|
<widget class="GtkTreeView" id="treeview">
|
||||||
</child>
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">True</property>
|
||||||
<child internal-child="hscrollbar">
|
<property name="headers_visible">True</property>
|
||||||
<widget class="GtkHScrollbar" id="convertwidget1">
|
<property name="rules_hint">True</property>
|
||||||
<property name="update_policy">GTK_UPDATE_CONTINUOUS</property>
|
<property name="reorderable">False</property>
|
||||||
<property name="visible">yes</property>
|
<property name="enable_search">True</property>
|
||||||
</widget>
|
|
||||||
</child>
|
|
||||||
|
|
||||||
<child internal-child="vscrollbar">
|
|
||||||
<widget class="GtkVScrollbar" id="convertwidget2">
|
|
||||||
<property name="update_policy">GTK_UPDATE_CONTINUOUS</property>
|
|
||||||
<property name="visible">yes</property>
|
|
||||||
</widget>
|
</widget>
|
||||||
</child>
|
</child>
|
||||||
</widget>
|
</widget>
|
||||||
@ -368,180 +397,173 @@
|
|||||||
<property name="right_attach">1</property>
|
<property name="right_attach">1</property>
|
||||||
<property name="top_attach">1</property>
|
<property name="top_attach">1</property>
|
||||||
<property name="bottom_attach">2</property>
|
<property name="bottom_attach">2</property>
|
||||||
<property name="x_padding">0</property>
|
|
||||||
<property name="y_padding">0</property>
|
|
||||||
<property name="x_options">expand|fill</property>
|
|
||||||
<property name="y_options">expand|fill</property>
|
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
</widget>
|
</widget>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="padding">0</property>
|
<property name="padding">0</property>
|
||||||
<property name="expand">yes</property>
|
<property name="expand">True</property>
|
||||||
<property name="fill">yes</property>
|
<property name="fill">True</property>
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
</widget>
|
</widget>
|
||||||
<packing>
|
|
||||||
<property name="padding">4</property>
|
|
||||||
<property name="expand">yes</property>
|
|
||||||
<property name="fill">yes</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
</child>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="GtkDialog" id="filters">
|
|
||||||
|
<widget class="GtkDialog" id="filters">
|
||||||
|
<property name="visible">True</property>
|
||||||
<property name="title" translatable="yes">Event Comparison - GRAMPS</property>
|
<property name="title" translatable="yes">Event Comparison - GRAMPS</property>
|
||||||
<property name="type">GTK_WINDOW_TOPLEVEL</property>
|
<property name="type">GTK_WINDOW_TOPLEVEL</property>
|
||||||
<property name="modal">no</property>
|
<property name="window_position">GTK_WIN_POS_NONE</property>
|
||||||
<property name="allow_shrink">no</property>
|
<property name="modal">False</property>
|
||||||
<property name="allow_grow">no</property>
|
<property name="resizable">True</property>
|
||||||
<property name="width-request">350</property>
|
<property name="destroy_with_parent">False</property>
|
||||||
<property name="visible">yes</property>
|
<property name="has_separator">True</property>
|
||||||
<property name="window-position">GTK_WIN_POS_NONE</property>
|
|
||||||
|
|
||||||
<child internal-child="vbox">
|
<child internal-child="vbox">
|
||||||
<widget class="GtkVBox" id="dialog-vbox5">
|
<widget class="GtkVBox" id="dialog-vbox5">
|
||||||
<property name="homogeneous">no</property>
|
<property name="visible">True</property>
|
||||||
|
<property name="homogeneous">False</property>
|
||||||
<property name="spacing">8</property>
|
<property name="spacing">8</property>
|
||||||
<property name="visible">yes</property>
|
|
||||||
|
|
||||||
<child internal-child="action_area">
|
<child internal-child="action_area">
|
||||||
<widget class="GtkHButtonBox" id="dialog-action_area5">
|
<widget class="GtkHButtonBox" id="dialog-action_area5">
|
||||||
|
<property name="visible">True</property>
|
||||||
<property name="layout_style">GTK_BUTTONBOX_END</property>
|
<property name="layout_style">GTK_BUTTONBOX_END</property>
|
||||||
<property name="spacing">8</property>
|
|
||||||
<property name="visible">yes</property>
|
|
||||||
|
|
||||||
<child>
|
<child>
|
||||||
<widget class="GtkButton" id="button26">
|
<widget class="GtkButton" id="button26">
|
||||||
<property name="can_default">yes</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">yes</property>
|
<property name="can_default">True</property>
|
||||||
<property name="visible">yes</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="label">gtk-apply</property>
|
<property name="label">gtk-apply</property>
|
||||||
<property name="use_stock">yes</property>
|
<property name="use_stock">True</property>
|
||||||
<property name="use_underline">yes</property>
|
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||||
|
<property name="response_id">0</property>
|
||||||
<signal name="clicked" handler="on_apply_clicked" object="filters" />
|
<signal name="clicked" handler="on_apply_clicked" object="filters"/>
|
||||||
</widget>
|
</widget>
|
||||||
</child>
|
</child>
|
||||||
|
|
||||||
<child>
|
<child>
|
||||||
<widget class="GtkButton" id="button27">
|
<widget class="GtkButton" id="button27">
|
||||||
<property name="can_default">yes</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">yes</property>
|
<property name="can_default">True</property>
|
||||||
<property name="visible">yes</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="label">gtk-cancel</property>
|
<property name="label">gtk-cancel</property>
|
||||||
<property name="use_stock">yes</property>
|
<property name="use_stock">True</property>
|
||||||
<property name="use_underline">yes</property>
|
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||||
|
<property name="response_id">0</property>
|
||||||
<signal name="clicked" handler="destroy_passed_object" object="filters" />
|
<signal name="clicked" handler="destroy_passed_object" object="filters"/>
|
||||||
</widget>
|
</widget>
|
||||||
</child>
|
</child>
|
||||||
</widget>
|
</widget>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="padding">0</property>
|
<property name="padding">0</property>
|
||||||
<property name="expand">no</property>
|
<property name="expand">False</property>
|
||||||
<property name="fill">yes</property>
|
<property name="fill">True</property>
|
||||||
<property name="pack_type">GTK_PACK_END</property>
|
<property name="pack_type">GTK_PACK_END</property>
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
|
|
||||||
<child>
|
<child>
|
||||||
<widget class="GtkVBox" id="vbox2">
|
<widget class="GtkVBox" id="vbox2">
|
||||||
<property name="homogeneous">no</property>
|
<property name="visible">True</property>
|
||||||
|
<property name="homogeneous">False</property>
|
||||||
<property name="spacing">0</property>
|
<property name="spacing">0</property>
|
||||||
<property name="visible">yes</property>
|
|
||||||
|
|
||||||
<child>
|
<child>
|
||||||
<widget class="GtkLabel" id="title">
|
<widget class="GtkLabel" id="title">
|
||||||
|
<property name="visible">True</property>
|
||||||
<property name="label" translatable="yes">Event Comparison</property>
|
<property name="label" translatable="yes">Event Comparison</property>
|
||||||
|
<property name="use_underline">False</property>
|
||||||
|
<property name="use_markup">False</property>
|
||||||
<property name="justify">GTK_JUSTIFY_CENTER</property>
|
<property name="justify">GTK_JUSTIFY_CENTER</property>
|
||||||
<property name="wrap">no</property>
|
<property name="wrap">False</property>
|
||||||
|
<property name="selectable">False</property>
|
||||||
<property name="xalign">0.5</property>
|
<property name="xalign">0.5</property>
|
||||||
<property name="yalign">0.5</property>
|
<property name="yalign">0.5</property>
|
||||||
<property name="xpad">0</property>
|
<property name="xpad">0</property>
|
||||||
<property name="ypad">0</property>
|
<property name="ypad">0</property>
|
||||||
<property name="visible">yes</property>
|
|
||||||
</widget>
|
</widget>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="padding">0</property>
|
<property name="padding">0</property>
|
||||||
<property name="expand">no</property>
|
<property name="expand">False</property>
|
||||||
<property name="fill">no</property>
|
<property name="fill">False</property>
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
|
|
||||||
<child>
|
<child>
|
||||||
<widget class="GtkHSeparator" id="hseparator3">
|
<widget class="GtkHSeparator" id="hseparator3">
|
||||||
<property name="visible">yes</property>
|
<property name="visible">True</property>
|
||||||
</widget>
|
</widget>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="padding">5</property>
|
<property name="padding">5</property>
|
||||||
<property name="expand">no</property>
|
<property name="expand">False</property>
|
||||||
<property name="fill">yes</property>
|
<property name="fill">True</property>
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
</widget>
|
</widget>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="padding">0</property>
|
<property name="padding">0</property>
|
||||||
<property name="expand">no</property>
|
<property name="expand">False</property>
|
||||||
<property name="fill">yes</property>
|
<property name="fill">True</property>
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
|
|
||||||
<child>
|
<child>
|
||||||
<widget class="GtkHBox" id="hbox2">
|
<widget class="GtkHBox" id="hbox2">
|
||||||
<property name="homogeneous">no</property>
|
<property name="visible">True</property>
|
||||||
|
<property name="homogeneous">False</property>
|
||||||
<property name="spacing">0</property>
|
<property name="spacing">0</property>
|
||||||
<property name="visible">yes</property>
|
|
||||||
|
|
||||||
<child>
|
<child>
|
||||||
<widget class="GtkLabel" id="label8">
|
<widget class="GtkLabel" id="label8">
|
||||||
|
<property name="visible">True</property>
|
||||||
<property name="label" translatable="yes">Filter</property>
|
<property name="label" translatable="yes">Filter</property>
|
||||||
|
<property name="use_underline">False</property>
|
||||||
|
<property name="use_markup">False</property>
|
||||||
<property name="justify">GTK_JUSTIFY_CENTER</property>
|
<property name="justify">GTK_JUSTIFY_CENTER</property>
|
||||||
<property name="wrap">no</property>
|
<property name="wrap">False</property>
|
||||||
|
<property name="selectable">False</property>
|
||||||
<property name="xalign">1</property>
|
<property name="xalign">1</property>
|
||||||
<property name="yalign">0.5</property>
|
<property name="yalign">0.5</property>
|
||||||
<property name="xpad">5</property>
|
<property name="xpad">5</property>
|
||||||
<property name="ypad">0</property>
|
<property name="ypad">0</property>
|
||||||
<property name="visible">yes</property>
|
|
||||||
</widget>
|
</widget>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="padding">0</property>
|
<property name="padding">0</property>
|
||||||
<property name="expand">no</property>
|
<property name="expand">False</property>
|
||||||
<property name="fill">no</property>
|
<property name="fill">False</property>
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
|
|
||||||
<child>
|
<child>
|
||||||
<widget class="GtkOptionMenu" id="filter_list">
|
<widget class="GtkOptionMenu" id="filter_list">
|
||||||
<property name="can_focus">yes</property>
|
<property name="visible">True</property>
|
||||||
<property name="history">0</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="visible">yes</property>
|
<property name="history">-1</property>
|
||||||
|
|
||||||
<child internal-child="menu">
|
<child internal-child="menu">
|
||||||
<widget class="GtkMenu" id="convertwidget3">
|
<widget class="GtkMenu" id="convertwidget3">
|
||||||
<property name="visible">yes</property>
|
<property name="visible">True</property>
|
||||||
</widget>
|
</widget>
|
||||||
</child>
|
</child>
|
||||||
</widget>
|
</widget>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="padding">0</property>
|
<property name="padding">0</property>
|
||||||
<property name="expand">yes</property>
|
<property name="expand">True</property>
|
||||||
<property name="fill">yes</property>
|
<property name="fill">True</property>
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
</widget>
|
</widget>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="padding">0</property>
|
<property name="padding">0</property>
|
||||||
<property name="expand">no</property>
|
<property name="expand">False</property>
|
||||||
<property name="fill">yes</property>
|
<property name="fill">True</property>
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
</widget>
|
</widget>
|
||||||
<packing>
|
|
||||||
<property name="padding">4</property>
|
|
||||||
<property name="expand">yes</property>
|
|
||||||
<property name="fill">yes</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
</child>
|
||||||
</widget>
|
</widget>
|
||||||
|
|
||||||
</glade-interface>
|
</glade-interface>
|
||||||
|
Loading…
Reference in New Issue
Block a user