diff options
author | Reinier Heeres <reinier@heeres.eu> | 2010-07-26 22:20:09 (GMT) |
---|---|---|
committer | Reinier Heeres <reinier@heeres.eu> | 2010-07-26 22:20:09 (GMT) |
commit | 33be8fac1e1f1c4d653c74ba8ed9c3f2a03d4872 (patch) | |
tree | 63fb2a70f7356cdc69bbb20267426c0859342d56 /calculate.py | |
parent | 0abf24086c470dbaec6c837633ca152bf415e817 (diff) |
Make text smaller / don't insert as ans
Diffstat (limited to 'calculate.py')
-rw-r--r-- | calculate.py | 29 |
1 files changed, 22 insertions, 7 deletions
diff --git a/calculate.py b/calculate.py index 047c6a8..bda756c 100644 --- a/calculate.py +++ b/calculate.py @@ -187,7 +187,7 @@ class Equation: tagsmallnarrow, tagjustright) elif is_error: resstr = str(self.result) - buf.insert_with_tags(buf.get_end_iter(), resstr, tagbigger) + buf.insert_with_tags(buf.get_end_iter(), resstr, tagsmallnarrow) range = self.result.get_range() eqnstart = buf.get_iter_at_offset(eqnoffset + range[0]) eqnend = buf.get_iter_at_offset(eqnoffset + range[1]) @@ -227,8 +227,13 @@ class Equation: buf.insert_with_tags(buf.get_end_iter(), labelstr, tagsmallnarrow) eqnstr = '%s\n' % str(self.equation) self.append_with_superscript_tags(buf, eqnstr, tagsmall) + resstr = self.ml.format_number(self.result) - self.append_with_superscript_tags(buf, resstr, tagbig) + if len(resstr) > 30: + restag = tagsmall + else: + restag = tagbig + self.append_with_superscript_tags(buf, resstr, restag) buf.apply_tag(tagcolor, buf.get_start_iter(), buf.get_end_iter()) @@ -302,6 +307,14 @@ class Calculate(ShareableActivity): self.ml = MathLib() self.parser = AstParser(self.ml) + + # These will result in 'Ans <operator character>' being inserted + self._chars_ans_diadic = [op[0] for op in self.parser.get_diadic_operators()] + try: + self._chars_ans_diadic.remove('-') + except: + pass + self.KEYMAP['multiply'] = self.ml.mul_sym self.KEYMAP['divide'] = self.ml.div_sym @@ -348,7 +361,11 @@ class Calculate(ShareableActivity): if len(eqn.label) > 0: text = eqn.label else: - text = self.parser.ml.format_number(eqn.result) + # don't insert plain text + if type(eqn.result) in (types.StringType, types.UnicodeType): + text = '' + else: + text = self.parser.ml.format_number(eqn.result) self.button_pressed(self.TYPE_TEXT, text) return True @@ -794,10 +811,8 @@ class Calculate(ShareableActivity): if len(sel) == 2: tlen -= (end - start) - if tlen == 0 and (str in self.parser.get_diadic_operators() \ - or str in self.parser.get_post_operators()) and \ - self.parser.get_var('Ans') is not None: # and \ -# logic better? (str not in self.parser.get_pre_operators() or str == '+'): + if tlen == 0 and (str in self._chars_ans_diadic) and \ + self.parser.get_var('Ans') is not None: ans = self.format_insert_ans() self.text_entry.set_text(ans + str) self.text_entry.set_position(len(ans) + len(str)) |