Getting ready for surname double-clicks
svn: r9632
This commit is contained in:
parent
f7da658104
commit
bca91ffad0
@ -205,14 +205,14 @@ class Gadget(object):
|
|||||||
if debug: print "%s is connecting" % self.gui.title
|
if debug: print "%s is connecting" % self.gui.title
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def link(self, text, data):
|
def link(self, text, link_type, data):
|
||||||
buffer = self.gui.buffer
|
buffer = self.gui.buffer
|
||||||
iter = buffer.get_end_iter()
|
iter = buffer.get_end_iter()
|
||||||
offset = buffer.get_char_count()
|
offset = buffer.get_char_count()
|
||||||
self.append_text(text)
|
self.append_text(text)
|
||||||
start = buffer.get_iter_at_offset(offset)
|
start = buffer.get_iter_at_offset(offset)
|
||||||
end = buffer.get_end_iter()
|
end = buffer.get_end_iter()
|
||||||
self._tags.append((LinkTag(buffer),data))
|
self._tags.append((LinkTag(buffer), link_type, data))
|
||||||
buffer.apply_tag(self._tags[-1][0], start, end)
|
buffer.apply_tag(self._tags[-1][0], start, end)
|
||||||
|
|
||||||
def get_text(self):
|
def get_text(self):
|
||||||
@ -307,7 +307,7 @@ class Gadget(object):
|
|||||||
int(event.y))
|
int(event.y))
|
||||||
iter = view.get_iter_at_location(*buffer_location)
|
iter = view.get_iter_at_location(*buffer_location)
|
||||||
cursor = self.standard_cursor
|
cursor = self.standard_cursor
|
||||||
for (tag, person_handle) in self._tags:
|
for (tag, link_type, handle) in self._tags:
|
||||||
if iter.has_tag(tag):
|
if iter.has_tag(tag):
|
||||||
tag.set_property('underline', pango.UNDERLINE_SINGLE)
|
tag.set_property('underline', pango.UNDERLINE_SINGLE)
|
||||||
cursor = self.link_cursor
|
cursor = self.link_cursor
|
||||||
@ -322,20 +322,25 @@ class Gadget(object):
|
|||||||
int(event.x),
|
int(event.x),
|
||||||
int(event.y))
|
int(event.y))
|
||||||
iter = view.get_iter_at_location(*buffer_location)
|
iter = view.get_iter_at_location(*buffer_location)
|
||||||
for (tag, person_handle) in self._tags:
|
for (tag, link_type, handle) in self._tags:
|
||||||
if iter.has_tag(tag):
|
if iter.has_tag(tag):
|
||||||
person = self.dbstate.db.get_person_from_handle(person_handle)
|
if link_type == 'Person':
|
||||||
if person == None:
|
person = self.dbstate.db.get_person_from_handle(handle)
|
||||||
pass
|
if person != None:
|
||||||
elif event.button == 1:
|
if event.button == 1: # left mouse
|
||||||
if event.type == gtk.gdk._2BUTTON_PRESS:
|
if event.type == gtk.gdk._2BUTTON_PRESS: # double
|
||||||
try:
|
try:
|
||||||
EditPerson(self.gui.dbstate, self.gui.uistate, [], person)
|
EditPerson(self.gui.dbstate,
|
||||||
except Errors.WindowActiveError:
|
self.gui.uistate,
|
||||||
pass
|
[], person)
|
||||||
else:
|
return True # handled event
|
||||||
self.gui.dbstate.change_active_person(person)
|
except Errors.WindowActiveError:
|
||||||
return True # handled event
|
pass
|
||||||
|
else: # single click
|
||||||
|
self.gui.dbstate.change_active_person(person)
|
||||||
|
return True # handled event
|
||||||
|
elif link_type == 'Surname':
|
||||||
|
return True
|
||||||
return False # did not handle event
|
return False # did not handle event
|
||||||
|
|
||||||
def logical_true(value):
|
def logical_true(value):
|
||||||
|
@ -153,9 +153,10 @@ class LogGadget(Gadget):
|
|||||||
self.history[ltype + ": " + person_handle] = 1
|
self.history[ltype + ": " + person_handle] = 1
|
||||||
person = self.dbstate.db.get_person_from_handle(person_handle)
|
person = self.dbstate.db.get_person_from_handle(person_handle)
|
||||||
if person:
|
if person:
|
||||||
self.link(name_displayer.display(person), person_handle)
|
self.link(name_displayer.display(person), 'Person',
|
||||||
|
person_handle)
|
||||||
else:
|
else:
|
||||||
self.link("Unknown", person_handle)
|
self.link("Unknown", 'Person', person_handle)
|
||||||
self.append_text("\n")
|
self.append_text("\n")
|
||||||
|
|
||||||
class TopSurnamesGadget(Gadget):
|
class TopSurnamesGadget(Gadget):
|
||||||
@ -204,9 +205,10 @@ class TopSurnamesGadget(Gadget):
|
|||||||
### All done!
|
### All done!
|
||||||
self.set_text("")
|
self.set_text("")
|
||||||
for (count, surname) in surname_sort:
|
for (count, surname) in surname_sort:
|
||||||
self.append_text(" %d. %s, %d%% (%d)\n" %
|
self.append_text(" %d. " % (line + 1))
|
||||||
(line + 1, surname,
|
self.link(surname, 'Surname', surname)
|
||||||
int((float(count)/total) * 100), count))
|
self.append_text(", %d%% (%d)\n" %
|
||||||
|
(int((float(count)/total) * 100), count))
|
||||||
line += 1
|
line += 1
|
||||||
if line >= self.top_size:
|
if line >= self.top_size:
|
||||||
break
|
break
|
||||||
|
Loading…
x
Reference in New Issue
Block a user