From b16e902dbe513c8a8450d3d8c1034dc8fb9d2b4d Mon Sep 17 00:00:00 2001 From: Mentalflow <312902918@qq.com> Date: Sun, 17 Mar 2024 03:45:02 +0800 Subject: [PATCH] Tools: Add UTF-8, GB18030 auto convert. --- app_source/CMakeLists.txt | 4 ++- app_source/include/tools.h | 4 ++- .../qml/components/RibbonMarkDownViewer.qml | 6 ++-- app_source/source/tools.cpp | 28 +++++++++++++++++-- 4 files changed, 35 insertions(+), 7 deletions(-) diff --git a/app_source/CMakeLists.txt b/app_source/CMakeLists.txt index 2974504..8697142 100644 --- a/app_source/CMakeLists.txt +++ b/app_source/CMakeLists.txt @@ -27,7 +27,7 @@ set(PROJECT_BUNDLE_NAME ${PROJECT_NAME}) set(version_str "${CMAKE_PROJECT_VERSION_MAJOR},${CMAKE_PROJECT_VERSION_MINOR},${CMAKE_PROJECT_VERSION_PATCH}") add_definitions(-DPROTOCOLPARSER_VERSION=${version_str}) -find_package(Qt6 COMPONENTS Quick SerialPort LinguistTools WebView REQUIRED) +find_package(Qt6 COMPONENTS Quick SerialPort LinguistTools WebView Core5Compat REQUIRED) set( sources_files source/main.cpp include/serialportmanager.h source/serialportmanager.cpp include/eventsbus.h source/eventsbus.cpp @@ -152,6 +152,7 @@ if(RIBBONUI_BUILD_STATIC_LIB) Qt::Quick Qt::SerialPort Qt::WebView + Qt::Core5Compat RibbonUIplugin sm_crypto FramelessHelper::Core @@ -163,6 +164,7 @@ else() Qt::Quick Qt::SerialPort Qt::WebView + Qt::Core5Compat RibbonUI sm_crypto FramelessHelper::Core diff --git a/app_source/include/tools.h b/app_source/include/tools.h index f47d809..f345b12 100644 --- a/app_source/include/tools.h +++ b/app_source/include/tools.h @@ -22,7 +22,9 @@ public: Q_INVOKABLE QString fileSuffix(const QString &filePath); Q_INVOKABLE QString fileDir(const QString &filePath); Q_INVOKABLE void writeDirtoTempDir(QString path); - Q_INVOKABLE void writeFiletoDir(QString content, QString path, QString name); + Q_INVOKABLE void writeFiletoDir(QString content, QString path, QString name, QByteArray tcodec = "UTF-8"); + Q_INVOKABLE QString GetCorrectUnicode(const QByteArray &ba); + Q_INVOKABLE QString GetCorrectUnicode(const QString &ba); private: explicit Tools(QObject *parent = nullptr); diff --git a/app_source/qml/components/RibbonMarkDownViewer.qml b/app_source/qml/components/RibbonMarkDownViewer.qml index 42010ee..eda1cf1 100644 --- a/app_source/qml/components/RibbonMarkDownViewer.qml +++ b/app_source/qml/components/RibbonMarkDownViewer.qml @@ -111,7 +111,7 @@ Item { let base_url = '${base_url}'; var defaults = { html: true, - xhtmlOut: false, + xhtmlOut: true, breaks: false, linkify: true, typographer: true, @@ -185,8 +185,8 @@ Item { let file_name = full_file_name.split('.') let html_name = `${file_name[0]}.html` let prefix = `file:${Qt.platform.os === 'windows' ? '///' : '//'}` + Tools.baseDir - let html = `` + - '
' + + let html = `` + + `` + `