From 0773ad19e6e59267941ef2e0160ea7addb82537e Mon Sep 17 00:00:00 2001 From: Oleg Korshul Date: Tue, 1 Feb 2022 20:14:30 +0300 Subject: [PATCH] Add statistics to viewer --- .../graphics/pro/js/wasm/js/drawingfile_base.js | 10 +++++++--- HtmlRenderer/src/HTMLRendererText.cpp | 14 ++++++++++++++ 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/DesktopEditor/graphics/pro/js/wasm/js/drawingfile_base.js b/DesktopEditor/graphics/pro/js/wasm/js/drawingfile_base.js index 6ae211f5f0..f85f259e7b 100644 --- a/DesktopEditor/graphics/pro/js/wasm/js/drawingfile_base.js +++ b/DesktopEditor/graphics/pro/js/wasm/js/drawingfile_base.js @@ -222,15 +222,19 @@ if (null == retValue) return null; - var lenArray = new Int32Array(Module["HEAP8"].buffer, retValue, 4); + var lenArray = new Int32Array(Module["HEAP8"].buffer, retValue, 5); var len = lenArray[0]; - len -= 4; + len -= 20; + + if (self.drawingFile.onUpdateStatistics) + self.drawingFile.onUpdateStatistics(lenArray[1], lenArray[2], lenArray[3], lenArray[4]); + if (len <= 0) { return []; } - var textCommandsSrc = new Uint8Array(Module["HEAP8"].buffer, retValue + 4, len); + var textCommandsSrc = new Uint8Array(Module["HEAP8"].buffer, retValue + 20, len); var textCommands = new Uint8Array(len); textCommands.set(textCommandsSrc); diff --git a/HtmlRenderer/src/HTMLRendererText.cpp b/HtmlRenderer/src/HTMLRendererText.cpp index 872b62f847..a6d92efb24 100644 --- a/HtmlRenderer/src/HTMLRendererText.cpp +++ b/HtmlRenderer/src/HTMLRendererText.cpp @@ -212,6 +212,13 @@ namespace NSHtmlRenderer m_pInternal->m_oPage.ClearNoAttack(); m_pInternal->m_oPage.WriteLONG(0); + + // статистика + m_pInternal->m_oPage.WriteLONG(0); + m_pInternal->m_oPage.WriteLONG(0); + m_pInternal->m_oPage.WriteLONG(0); + m_pInternal->m_oPage.WriteLONG(0); + } BYTE* CHTMLRendererText::GetBuffer() @@ -219,7 +226,14 @@ namespace NSHtmlRenderer m_pInternal->m_oSmartText.ClosePage(); LONG lPos = m_pInternal->m_oPage.GetPosition(); m_pInternal->m_oPage.Seek(0); + // len m_pInternal->m_oPage.WriteLONG(lPos); + // stat + m_pInternal->m_oPage.WriteLONG(m_pInternal->m_oSmartText.m_lCountParagraphs); + m_pInternal->m_oPage.WriteLONG(m_pInternal->m_oSmartText.m_lCountWords); + m_pInternal->m_oPage.WriteLONG(m_pInternal->m_oSmartText.m_lCountSymbols); + m_pInternal->m_oPage.WriteLONG(m_pInternal->m_oSmartText.m_lCountSpaces); + // seek to end m_pInternal->m_oPage.Seek(lPos); return m_pInternal->m_oPage.GetData(); }