From 7e0262e4fe3418f744a4d1e608ffe11e714db190 Mon Sep 17 00:00:00 2001 From: Ad5001 Date: Mon, 16 Sep 2024 23:33:08 +0200 Subject: [PATCH] Making Objects List Latex render async --- .../ObjectLists/ObjectRow.qml | 24 +++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/LogarithmPlotter/qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectRow.qml b/LogarithmPlotter/qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectRow.qml index f1292cd..f846490 100644 --- a/LogarithmPlotter/qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectRow.qml +++ b/LogarithmPlotter/qml/eu/ad5001/LogarithmPlotter/ObjectLists/ObjectRow.qml @@ -100,10 +100,26 @@ Item { anchors.left: parent.left visible: Modules.Latex.enabled property double depth: Screen.devicePixelRatio - property var ltxInfo: visible ? Modules.Latex.renderSync(obj.getLatexString(), depth*(parent.font.pixelSize+2), parent.color) : { source: "", width: 0, height: 0 } - source: visible ? ltxInfo.source : "" - width: ltxInfo.width/depth - height: ltxInfo.height/depth + source: "" + width: 0/depth + height: 0/depth + + Component.onCompleted: function() { + if(Modules.Latex.enabled) { + const args = [obj.getLatexString(), depth*(parent.font.pixelSize+2), parent.color] + const prerendered = Modules.Latex.findPrerendered(...args) + if(prerendered !== null) { + source = prerendered.source + width = prerendered.width/depth + height = prerendered.height/depth + } else + Modules.Latex.requestAsyncRender(...args).then(info => { + source = info.source + width = info.width/depth + height = info.height/depth + }) + } + } } MouseArea {