Move STYLE_TYPE and STYLE_DEFAULT constants from StyledTextBuffer to StyledTextTagType.
svn: r10629
This commit is contained in:
parent
40884d66f6
commit
9bf1c718f6
@ -57,28 +57,6 @@ from gen.lib import (StyledText, StyledTextTag, StyledTextTagType)
|
||||
# FIXME
|
||||
ALLOWED_STYLES = [i for (i, s, e) in StyledTextTagType._DATAMAP]
|
||||
|
||||
STYLE_TYPE = {
|
||||
StyledTextTagType.BOLD: bool,
|
||||
StyledTextTagType.ITALIC: bool,
|
||||
StyledTextTagType.UNDERLINE: bool,
|
||||
StyledTextTagType.FONTCOLOR: str,
|
||||
StyledTextTagType.HIGHLIGHT: str,
|
||||
StyledTextTagType.FONTFACE: str,
|
||||
StyledTextTagType.FONTSIZE: int,
|
||||
StyledTextTagType.SUPERSCRIPT: bool,
|
||||
}
|
||||
|
||||
STYLE_DEFAULT = {
|
||||
StyledTextTagType.BOLD: False,
|
||||
StyledTextTagType.ITALIC: False,
|
||||
StyledTextTagType.UNDERLINE: False,
|
||||
StyledTextTagType.FONTCOLOR: '#000000',
|
||||
StyledTextTagType.HIGHLIGHT: '#FFFFFF',
|
||||
StyledTextTagType.FONTFACE: 'Sans',
|
||||
StyledTextTagType.FONTSIZE: 10,
|
||||
StyledTextTagType.SUPERSCRIPT: False,
|
||||
}
|
||||
|
||||
STYLE_TO_PROPERTY = {
|
||||
StyledTextTagType.BOLD: 'weight', # permanent tag is used instead
|
||||
StyledTextTagType.ITALIC: 'style', # permanent tag is used instead
|
||||
@ -90,7 +68,6 @@ STYLE_TO_PROPERTY = {
|
||||
StyledTextTagType.SUPERSCRIPT: 'rise',
|
||||
}
|
||||
|
||||
|
||||
(MATCH_START,
|
||||
MATCH_END,
|
||||
MATCH_FLAVOR,
|
||||
@ -265,7 +242,7 @@ class StyledTextBuffer(gtk.TextBuffer):
|
||||
## 1. are used to format inserted characters (self.after_insert_text)
|
||||
## 2. are set each time the Insert marker is set (self.do_mark_set)
|
||||
## 3. are set when a style is set (self._apply_style_to_selection)
|
||||
self.style_state = STYLE_DEFAULT.copy()
|
||||
self.style_state = StyledTextTagType.STYLE_DEFAULT.copy()
|
||||
|
||||
# internally used attribute
|
||||
self._insert = self.get_insert()
|
||||
@ -308,7 +285,7 @@ class StyledTextBuffer(gtk.TextBuffer):
|
||||
# apply active formats for the inserted text
|
||||
for style in ALLOWED_STYLES:
|
||||
value = self.style_state[style]
|
||||
if value and (value != STYLE_DEFAULT[style]):
|
||||
if value and (value != StyledTextTagType.STYLE_DEFAULT[style]):
|
||||
self.apply_tag(self._find_tag_by_name(style, value),
|
||||
insert_start, iter)
|
||||
|
||||
@ -353,14 +330,14 @@ class StyledTextBuffer(gtk.TextBuffer):
|
||||
changed_styles = {}
|
||||
|
||||
for style in ALLOWED_STYLES:
|
||||
if STYLE_TYPE[style] == bool:
|
||||
if StyledTextTagType.STYLE_TYPE[style] == bool:
|
||||
value = str(style) in tag_names
|
||||
else:
|
||||
value = STYLE_DEFAULT[style]
|
||||
value = StyledTextTagType.STYLE_DEFAULT[style]
|
||||
for tname in tag_names:
|
||||
if tname.startswith(str(style)):
|
||||
value = tname.split(' ', 1)[1]
|
||||
value = STYLE_TYPE[style](value)
|
||||
value = StyledTextTagType.STYLE_TYPE[style](value)
|
||||
|
||||
if self.style_state[style] != value:
|
||||
changed_styles[style] = value
|
||||
@ -416,18 +393,18 @@ class StyledTextBuffer(gtk.TextBuffer):
|
||||
|
||||
def _apply_style_to_selection(self, style, value):
|
||||
# FIXME can this be unified?
|
||||
if STYLE_TYPE[style] == bool:
|
||||
if StyledTextTagType.STYLE_TYPE[style] == bool:
|
||||
start, end = self._get_selection()
|
||||
|
||||
if value:
|
||||
self.apply_tag_by_name(str(style), start, end)
|
||||
else:
|
||||
self.remove_tag_by_name(str(style), start, end)
|
||||
elif STYLE_TYPE[style] == str:
|
||||
elif StyledTextTagType.STYLE_TYPE[style] == str:
|
||||
tag = self._find_tag_by_name(style, value)
|
||||
self._remove_style_from_selection(style)
|
||||
self._apply_tag_to_selection(tag)
|
||||
elif STYLE_TYPE[style] == int:
|
||||
elif StyledTextTagType.STYLE_TYPE[style] == int:
|
||||
tag = self._find_tag_by_name(style, value)
|
||||
self._remove_style_from_selection(style)
|
||||
self._apply_tag_to_selection(tag)
|
||||
@ -488,11 +465,11 @@ class StyledTextBuffer(gtk.TextBuffer):
|
||||
If TextTag does not exist yet, it is created.
|
||||
|
||||
"""
|
||||
if STYLE_TYPE[style] == bool:
|
||||
if StyledTextTagType.STYLE_TYPE[style] == bool:
|
||||
tag_name = str(style)
|
||||
elif STYLE_TYPE[style] == str:
|
||||
elif StyledTextTagType.STYLE_TYPE[style] == str:
|
||||
tag_name = "%d %s" % (style, value)
|
||||
elif STYLE_TYPE[style] == int:
|
||||
elif StyledTextTagType.STYLE_TYPE[style] == int:
|
||||
tag_name = "%d %d" % (style, value)
|
||||
else:
|
||||
raise ValueError("Unknown style (%s) value type: %s" %
|
||||
@ -501,7 +478,7 @@ class StyledTextBuffer(gtk.TextBuffer):
|
||||
tag = self.get_tag_table().lookup(tag_name)
|
||||
|
||||
if not tag:
|
||||
if STYLE_TYPE[style] != bool:
|
||||
if StyledTextTagType.STYLE_TYPE[style] != bool:
|
||||
# bool style tags are not created here, but in constuctor
|
||||
tag = self.create_tag(tag_name)
|
||||
tag.set_property(STYLE_TO_PROPERTY[style], value)
|
||||
@ -554,7 +531,8 @@ class StyledTextBuffer(gtk.TextBuffer):
|
||||
if len(style_and_value) == 1:
|
||||
s_value = None
|
||||
else:
|
||||
s_value = STYLE_TYPE[style](style_and_value[1])
|
||||
s_value = StyledTextTagType.STYLE_TYPE[style]\
|
||||
(style_and_value[1])
|
||||
|
||||
if style in ALLOWED_STYLES:
|
||||
s_ranges = [(start, end+1) for (start, end) in g_ranges]
|
||||
@ -575,9 +553,10 @@ class StyledTextBuffer(gtk.TextBuffer):
|
||||
@type value: depends on the I{style} type
|
||||
|
||||
"""
|
||||
if not isinstance(value, STYLE_TYPE[style]):
|
||||
if not isinstance(value, StyledTextTagType.STYLE_TYPE[style]):
|
||||
raise TypeError("Style (%d) value must be %s and not %s" %
|
||||
(style, STYLE_TYPE[style], value.__class__))
|
||||
(style, StyledTextTagType.STYLE_TYPE[style],
|
||||
value.__class__))
|
||||
|
||||
self._apply_style_to_selection(style, value)
|
||||
|
||||
|
@ -48,7 +48,6 @@ from pango import UNDERLINE_SINGLE
|
||||
#-------------------------------------------------------------------------
|
||||
from gen.lib import StyledTextTagType
|
||||
from Editors._StyledTextBuffer import (StyledTextBuffer, ALLOWED_STYLES,
|
||||
STYLE_TYPE, STYLE_DEFAULT,
|
||||
MATCH_START, MATCH_END,
|
||||
MATCH_FLAVOR, MATCH_STRING)
|
||||
from Spell import Spell
|
||||
@ -482,7 +481,7 @@ class StyledTextEditor(gtk.TextView):
|
||||
if self._internal_style_change:
|
||||
return
|
||||
|
||||
value = STYLE_TYPE[style](combobox.get_active_text())
|
||||
value = StyledTextTagType.STYLE_TYPE[style](combobox.get_active_text())
|
||||
_LOG.debug("applying style '%d' with value '%s'" % (style, str(value)))
|
||||
self.textbuffer.apply_style(style, value)
|
||||
|
||||
@ -513,8 +512,8 @@ class StyledTextEditor(gtk.TextView):
|
||||
model = combo.get_model()
|
||||
iter = model.get_iter_first()
|
||||
while iter:
|
||||
if (STYLE_TYPE[style](model.get_value(iter, 0)) ==
|
||||
changed_styles[style]):
|
||||
if (StyledTextTagType.STYLE_TYPE[style](
|
||||
model.get_value(iter, 0)) == changed_styles[style]):
|
||||
break
|
||||
iter = model.iter_next(iter)
|
||||
|
||||
@ -685,7 +684,8 @@ def set_fontface_toolitem(combotoolitem, callback):
|
||||
fontface.append_text(family)
|
||||
|
||||
try:
|
||||
default = families.index(STYLE_DEFAULT[StyledTextTagType.FONTFACE])
|
||||
def_fam = StyledTextTagType.STYLE_DEFAULT[StyledTextTagType.FONTFACE]
|
||||
default = families.index(def_fam)
|
||||
except ValueError:
|
||||
default = 0
|
||||
fontface.set_active(default)
|
||||
@ -702,7 +702,8 @@ def set_fontsize_toolitem(combotoolitem, callback):
|
||||
fontsize.append_text(str(size))
|
||||
|
||||
try:
|
||||
default = FONT_SIZES.index(STYLE_DEFAULT[StyledTextTagType.FONTSIZE])
|
||||
def_size = StyledTextTagType.STYLE_DEFAULT[StyledTextTagType.FONTSIZE]
|
||||
default = FONT_SIZES.index(def_size)
|
||||
except ValueError:
|
||||
default = 0
|
||||
fontsize.set_active(default)
|
||||
|
@ -70,6 +70,28 @@ class StyledTextTagType(GrampsType):
|
||||
(HIGHLIGHT, _("Highlight"), "highlight"),
|
||||
(SUPERSCRIPT, _("Superscript"), "superscript"),
|
||||
]
|
||||
|
||||
STYLE_TYPE = {
|
||||
BOLD: bool,
|
||||
ITALIC: bool,
|
||||
UNDERLINE: bool,
|
||||
FONTCOLOR: str,
|
||||
HIGHLIGHT: str,
|
||||
FONTFACE: str,
|
||||
FONTSIZE: int,
|
||||
SUPERSCRIPT: bool,
|
||||
}
|
||||
|
||||
STYLE_DEFAULT = {
|
||||
BOLD: False,
|
||||
ITALIC: False,
|
||||
UNDERLINE: False,
|
||||
FONTCOLOR: '#000000',
|
||||
HIGHLIGHT: '#FFFFFF',
|
||||
FONTFACE: 'Sans',
|
||||
FONTSIZE: 10,
|
||||
SUPERSCRIPT: False,
|
||||
}
|
||||
|
||||
def __init__(self, value=None):
|
||||
GrampsType.__init__(self, value)
|
||||
|
Loading…
Reference in New Issue
Block a user