Skip to content

Commit e0b80a1

Browse files
committed
Merge pull request #1135 from chaosphere2112/text_rot_workaround
Workaround for #1093
2 parents f084cab + 7042f6a commit e0b80a1

File tree

3 files changed

+20
-50
lines changed

3 files changed

+20
-50
lines changed

Packages/vcs/Lib/editors/font.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import vcs
2+
3+
class FontEditor(object):
4+
def __init__(self, toolbar, font_setter, current_font="default"):
5+
6+
self.toolbar = toolbar
7+
self.set_font = font_setter
8+
9+
self.fonts = sorted(vcs.elements["font"].keys())
10+
11+
self.font_button = self.toolbar.add_button(self.fonts, action=self.font_state)
12+
self.font_button.set_state(self.fonts.index(current_font))
13+
14+
def font_state(self, state):
15+
font = self.fonts[state]
16+
self.set_font(font)

Packages/vcs/Lib/editors/label.py

Lines changed: 2 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import text
44
#import vtk
55
import vcs.vcs2vtk
6-
from functools import partial
6+
from font import FontEditor
77

88
__valign_map__ = {
99
0: 0,
@@ -63,27 +63,8 @@ def __init__(self, interactor, label, dp, configurator):
6363
valign.set_state(__valign_map__[self.to.valign])
6464

6565
self.angle_button = self.toolbar.add_slider_button(self.to.angle, 0, 360, "Angle", update=self.update_angle)
66-
self.fonts = sorted(vcs.elements["font"].keys())
6766

68-
font_toolbar = self.toolbar.add_toolbar("Fonts")
69-
70-
self.font_buttons = {}
71-
72-
def font_setter(font):
73-
return partial(self.set_font, font)
74-
75-
deactivate = font_setter("default")
76-
77-
for ind, font in enumerate(self.fonts):
78-
79-
if font[:4] != "Math":
80-
button = font_toolbar.add_toggle_button(font, on=font_setter(font), off=deactivate, font=vcs.elements["font"][font])
81-
else:
82-
button = font_toolbar.add_toggle_button(font, on=font_setter(font), off=deactivate)
83-
84-
if vcs.elements["fontNumber"][self.tt.font] == font:
85-
button.set_state(1)
86-
self.font_buttons[font] = button
67+
font_editor = FontEditor(self.toolbar, self.set_font, vcs.elements["fontNumber"][self.tt.font])
8768

8869
self.picker = None
8970
self.toolbar.add_button(["Change Color"], action=self.change_color)
@@ -105,11 +86,7 @@ def sync_actor(self):
10586
vcs.vcs2vtk.prepTextProperty(p,winSize,to=self.to,tt=self.tt,cmap=None)
10687

10788
def set_font(self, font):
108-
current_font = vcs.getfontname(self.tt.font)
109-
if font != current_font:
110-
self.font_buttons[current_font].set_state(0)
11189
self.tt.font = font
112-
self.font_buttons[font].set_state(1)
11390
self.save()
11491

11592
def halign(self, state):

Packages/vcs/Lib/editors/text.py

Lines changed: 2 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import priority
77
import vcs
88
from vcs.vcs2vtk import genTextActor
9-
from functools import partial
9+
from font import FontEditor
1010

1111
__valign_map__ = {
1212
0: 0,
@@ -47,27 +47,8 @@ def __init__(self, interactor, text, index, dp, configurator):
4747
valign.set_state(__valign_map__[self.text.valign])
4848

4949
self.toolbar.add_slider_button(text.angle, 0, 360, "Angle", update=self.update_angle)
50-
self.fonts = sorted(vcs.elements["font"].keys())
5150

52-
font_toolbar = self.toolbar.add_toolbar("Fonts")
53-
54-
self.font_buttons = {}
55-
56-
def font_setter(font):
57-
return partial(self.set_font, font)
58-
59-
deactivate = font_setter("default")
60-
61-
for ind, font in enumerate(self.fonts):
62-
63-
if font[:4] != "Math":
64-
button = font_toolbar.add_toggle_button(font, on=font_setter(font), off=deactivate, font=vcs.elements["font"][font])
65-
else:
66-
button = font_toolbar.add_toggle_button(font, on=font_setter(font), off=deactivate)
67-
68-
if vcs.elements["fontNumber"][self.text.font] == font:
69-
button.set_state(1)
70-
self.font_buttons[font] = button
51+
font_editor = FontEditor(self.toolbar, self.set_font, vcs.elements["fontNumber"][self.text.font])
7152

7253
self.picker = None
7354
self.toolbar.add_button(["Change Color"], action=self.change_color)
@@ -86,11 +67,7 @@ def font_setter(font):
8667
self.update()
8768

8869
def set_font(self, font):
89-
current_font = vcs.getfontname(self.text.font)
90-
if font != current_font:
91-
self.font_buttons[current_font].set_state(0)
9270
self.text.font = font
93-
self.font_buttons[font].set_state(1)
9471
self.update()
9572

9673
def get_object(self):

0 commit comments

Comments
 (0)