Fix Fan Chart(s) so they don't crash when opened as last view (#571)
Fixes #10440
This commit is contained in:
parent
7180806afd
commit
51df2c188d
@ -93,6 +93,11 @@ from gramps.gen.const import (
|
|||||||
_ = glocale.translation.gettext
|
_ = glocale.translation.gettext
|
||||||
from ..utilscairo import warpPath
|
from ..utilscairo import warpPath
|
||||||
|
|
||||||
|
# following are used in name_displayer format def
|
||||||
|
# (must not conflict with standard defs)
|
||||||
|
TWO_LINE_FORMAT_1 = 100
|
||||||
|
TWO_LINE_FORMAT_2 = 101
|
||||||
|
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
# FanChartBaseWidget
|
# FanChartBaseWidget
|
||||||
@ -120,8 +125,12 @@ class FanChartBaseWidget(Gtk.DrawingArea):
|
|||||||
self.last_x, self.last_y = None, None
|
self.last_x, self.last_y = None, None
|
||||||
self.fontdescr = "Sans"
|
self.fontdescr = "Sans"
|
||||||
self.fontsize = 8
|
self.fontsize = 8
|
||||||
self.twolineformat_nums=(name_displayer.add_name_format('fanchart_name_line1', '%l'),
|
# add parts of a two line name format to the displayer. We add them
|
||||||
name_displayer.add_name_format('fanchart_name_line2', '%f %s'))
|
# as standard names, but set them inactive so they don't show up in
|
||||||
|
# name editor or selector.
|
||||||
|
name_displayer.set_name_format(
|
||||||
|
[(TWO_LINE_FORMAT_1, 'fanchart_name_line1', '%l', False),
|
||||||
|
(TWO_LINE_FORMAT_2, 'fanchart_name_line2', '%f %s', False)])
|
||||||
self.connect("button_release_event", self.on_mouse_up)
|
self.connect("button_release_event", self.on_mouse_up)
|
||||||
self.connect("motion_notify_event", self.on_mouse_move)
|
self.connect("motion_notify_event", self.on_mouse_move)
|
||||||
self.connect("button-press-event", self.on_mouse_down)
|
self.connect("button-press-event", self.on_mouse_down)
|
||||||
@ -171,10 +180,6 @@ class FanChartBaseWidget(Gtk.DrawingArea):
|
|||||||
self.reset()
|
self.reset()
|
||||||
self.set_size_request(120, 120)
|
self.set_size_request(120, 120)
|
||||||
|
|
||||||
def __del__(self):
|
|
||||||
for num in self.twolineformat_nums:
|
|
||||||
name_displayer.del_name_format(num)
|
|
||||||
|
|
||||||
def reset(self):
|
def reset(self):
|
||||||
"""
|
"""
|
||||||
Reset the fan chart. This should trigger computation of all data
|
Reset the fan chart. This should trigger computation of all data
|
||||||
@ -578,8 +583,8 @@ class FanChartBaseWidget(Gtk.DrawingArea):
|
|||||||
fontcolor, bold)
|
fontcolor, bold)
|
||||||
else:
|
else:
|
||||||
text=name_displayer.display(person)
|
text=name_displayer.display(person)
|
||||||
text_line1=name_displayer.display_format(person,self.twolineformat_nums[0])
|
text_line1=name_displayer.display_format(person, TWO_LINE_FORMAT_1)
|
||||||
text_line2=name_displayer.display_format(person,self.twolineformat_nums[1])
|
text_line2=name_displayer.display_format(person, TWO_LINE_FORMAT_2)
|
||||||
if draw_radial:
|
if draw_radial:
|
||||||
split_frac_line1=0.5
|
split_frac_line1=0.5
|
||||||
flipped = can_flip and ((math.degrees((start+stop)/2.0) + self.rotate_value - 90) % 360 < 179 and self.flipupsidedownname)
|
flipped = can_flip and ((math.degrees((start+stop)/2.0) + self.rotate_value - 90) % 360 < 179 and self.flipupsidedownname)
|
||||||
|
Loading…
Reference in New Issue
Block a user