Add option to disable ascii emoticons

This commit is contained in:
Philipp Hörist 2017-09-15 23:22:21 +02:00
parent 5c0538a202
commit 41b977b914
3 changed files with 10 additions and 2 deletions

View File

@ -124,6 +124,7 @@ class Config:
'print_time': [ opt_str, 'always', _('\'always\' - print time for every message.\n\'sometimes\' - print time every print_ichat_every_foo_minutes minute.\n\'never\' - never print time.')],
'print_time_fuzzy': [ opt_int, 0, _('Print time in chats using Fuzzy Clock. Value of fuzziness from 1 to 4, or 0 to disable fuzzyclock. 1 is the most precise clock, 4 the least precise one. This is used only if print_time is \'sometimes\'.') ],
'emoticons_theme': [opt_str, 'noto-emoticons', '', True ],
'ascii_emoticons': [opt_bool, True, _('Enable ASCII emoticons'), True],
'ascii_formatting': [ opt_bool, True,
_('Treat * / _ pairs as possible formatting characters.'), True],
'show_ascii_formatting_chars': [ opt_bool, True, _('If True, do not '

View File

@ -59,7 +59,7 @@ class SubPixbuf:
return subpixbuf
def load(path):
def load(path, ascii_emoticons):
module_name = 'emoticons_theme.py'
theme_path = os.path.join(path, module_name)
if sys.platform == 'win32' and not os.path.exists(theme_path):
@ -87,6 +87,12 @@ def load(path):
def add_emoticon(codepoint_, sub, mod_list=None):
pix = sub.get_pixbuf()
for alternate in codepoint_:
if not ascii_emoticons:
try:
alternate.encode('ascii')
continue
except UnicodeEncodeError:
pass
codepoints[alternate] = pix
if pix not in pixbufs:
pixbufs[pix] = alternate

View File

@ -1925,6 +1925,7 @@ class Interface:
def init_emoticons(self):
emot_theme = app.config.get('emoticons_theme')
ascii_emoticons = app.config.get('ascii_emoticons')
if not emot_theme:
return
@ -1944,7 +1945,7 @@ class Interface:
transient_for=transient_for)
app.config.set('emoticons_theme', '')
return
if not emoticons.load(path):
if not emoticons.load(path, ascii_emoticons):
dialogs.WarningDialog(
_('Emoticons disabled'),
_('Your configured emoticons theme could not be loaded.'