From 412ad7056ff459be1fc3d22a5eff38b37af715ec Mon Sep 17 00:00:00 2001 From: Mauricio Baeza Date: Sun, 1 Nov 2020 23:30:58 -0600 Subject: [PATCH] Insert with dialog --- README.md | 1 + files/ZAZLaTex2SVG_v0.1.0.oxt | Bin 57650 -> 57891 bytes source/ZAZLaTex2SVG.py | 51 +++++++++++++++++++++++++++----- source/pythonpath/easymacro2.py | 21 ++++++++++++- 4 files changed, 65 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index c755fb2..831e26e 100644 --- a/README.md +++ b/README.md @@ -42,6 +42,7 @@ sudo apt install texlive-extra-utils sudo apt install pdf2svg ``` + * For OSx ``` diff --git a/files/ZAZLaTex2SVG_v0.1.0.oxt b/files/ZAZLaTex2SVG_v0.1.0.oxt index bfda184c574f9b93274e8d56aa3c5a32b31a71ef..1fb7e3d0124232107e2670ea59dbc34ebbebf342 100644 GIT binary patch delta 9570 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�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 Ofyj2S5WP13L;pVzvpu%} delta 9323 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 PIII6ycDQeA|7rg}j!Nxw diff --git a/source/ZAZLaTex2SVG.py b/source/ZAZLaTex2SVG.py index 5a49d49..5a26e6b 100644 --- a/source/ZAZLaTex2SVG.py +++ b/source/ZAZLaTex2SVG.py @@ -19,9 +19,12 @@ TEMPLATE = """\documentclass{{article}} \\usepackage{{amsmath}} \pagestyle{{empty}} \\begin{{document}} +\\begingroup +\huge \[ {} \] +\endgroup \end{{document}} """ # ~ TEMPLATE = """\documentclass{{standalone}} @@ -51,19 +54,22 @@ class Controllers(object): def __init__(self, dlg): self.d = dlg + self._path = '' def cmd_close_action(self, event): self.d.close() return + @app.catch_exception def cmd_preview_action(self, event): - data = self.d.text.value - if not data: + code = self.d.text.value + if not code: msg = _('Write some code') app.errorbox(msg) return - app.msgbox(data) + self._path = _latex_to_svg(code) + self.d.image.value = self._path return def cmd_insert_action(self, event): @@ -77,10 +83,33 @@ class Controllers(object): if not app.question(msg): return + app.selection.insert_image(self._path, {}) self.d.close() return +def _latex_to_svg(code): + NAME = 'temp' + data = TEMPLATE.format(code) + dt = app.paths.dir_tmp() + path_tex = app._P.join(dt.name, f'{NAME}.tex') + path_pdf = app._P.join(dt.name, f'{NAME}.pdf') + path_svg = app._P.join(app._P.temp_dir, f'{NAME}.svg') + + app.paths.save(path_tex, data) + cmd = f'pdflatex --interaction=batchmode -output-directory="{dt.name}" "{path_tex}"' + app.run(cmd) + cmd = f'pdfcrop "{path_pdf}" "{path_pdf}"' + app.run(cmd) + cmd = f'pdf2svg "{path_pdf}" "{path_svg}"' + app.run(cmd) + + if not app.paths.exists(path_svg): + path_svg = '' + dt.cleanup() + return path_svg + + class ZAZLaTex2SVG(unohelper.Base, XJobExecutor): NAME = 'temp' _msg1 = _('Not found') @@ -122,7 +151,6 @@ class ZAZLaTex2SVG(unohelper.Base, XJobExecutor): app.msgbox(msg) return - @app.catch_exception def _dlg(self): dlg = self._create_dialog() dlg.open() @@ -144,7 +172,7 @@ class ZAZLaTex2SVG(unohelper.Base, XJobExecutor): 'Name': 'lbl_code', 'Label': _('Latex code'), 'Width': 70, - 'Height': 15, + 'Height': 10, 'X': 10, 'Y': 5, 'VerticalAlign': 1, @@ -172,6 +200,14 @@ class ZAZLaTex2SVG(unohelper.Base, XJobExecutor): } dlg.add_control(args) + args = { + 'Type': 'Image', + 'Name': 'image', + 'Width': 250, + 'Height': 100, + } + dlg.add_control(args) + args = { 'Type': 'Button', 'Name': 'cmd_insert', @@ -195,8 +231,9 @@ class ZAZLaTex2SVG(unohelper.Base, XJobExecutor): dlg.text.move(dlg.lbl_code) dlg.cmd_preview.move(dlg.text, center=True) - dlg.cmd_insert.move(dlg.cmd_preview) - dlg.cmd_close.move(dlg.cmd_preview) + dlg.image.move(dlg.cmd_preview, center=True) + dlg.cmd_insert.move(dlg.image) + dlg.cmd_close.move(dlg.image) controls = (dlg.cmd_insert, dlg.cmd_close) dlg.center(controls) diff --git a/source/pythonpath/easymacro2.py b/source/pythonpath/easymacro2.py index 580bca5..52d5dad 100644 --- a/source/pythonpath/easymacro2.py +++ b/source/pythonpath/easymacro2.py @@ -2633,6 +2633,24 @@ class UnoText(UnoBaseObject): self.model.Text = value +class UnoImage(UnoBaseObject): + + def __init__(self, obj): + super().__init__(obj) + + @property + def type(self): + return 'image' + + @property + def value(self): + return self.m.ImageURL + @value.setter + def value(self, value): + self.m.ImageURL = None + self.m.ImageURL = _P.to_url(value) + + UNO_CLASSES = { 'label': UnoLabel, 'link': UnoLabelLink, @@ -2640,6 +2658,7 @@ UNO_CLASSES = { 'radio': UnoRadio, 'check': UnoCheck, 'text': UnoText, + 'image': UnoImage, } @@ -2652,13 +2671,13 @@ class LODialog(object): 'radio': 'com.sun.star.awt.UnoControlRadioButtonModel', 'check': 'com.sun.star.awt.UnoControlCheckBoxModel', 'text': 'com.sun.star.awt.UnoControlEditModel', + 'image': 'com.sun.star.awt.UnoControlImageControlModel', # ~ 'grid': 'com.sun.star.awt.grid.UnoControlGridModel', # ~ 'groupbox': 'com.sun.star.awt.UnoControlGroupBoxModel', # ~ 'listbox': 'com.sun.star.awt.UnoControlListBoxModel', # ~ 'roadmap': 'com.sun.star.awt.UnoControlRoadmapModel', # ~ 'tree': 'com.sun.star.awt.tree.TreeControlModel', # ~ 'groupbox': 'com.sun.star.awt.UnoControlGroupBoxModel', - # ~ 'image': 'com.sun.star.awt.UnoControlImageControlModel', # ~ 'pages': 'com.sun.star.awt.UnoMultiPageModel', }