From d71f5b963cbd14a79afef241aaf402c9603110f7 Mon Sep 17 00:00:00 2001 From: Mentalflow <312902918@qq.com> Date: Thu, 4 Apr 2024 23:52:26 +0800 Subject: [PATCH] 3rdparty/RibbonUI: Update. --- 3rdparty/RibbonUI | 2 +- app_source/.cmake/MacOSXBundleInfo.plist.in | 45 +++++++++++++++ app_source/.cmake/win_app.rc.in | 37 +++++++++++++ app_source/CMakeLists.txt | 55 ++++++++++--------- app_source/qml/Main.qml | 3 +- app_source/qml/components/DeviceList.qml | 12 ---- .../qml/components/EventsHistoryList.qml | 12 ---- app_source/qml/components/FrameChooser.qml | 12 ---- app_source/qml/components/HelpView.qml | 13 +---- app_source/qml/components/KeysList.qml | 12 ---- .../qml/components/RibbonMarkDownViewer.qml | 5 +- app_source/qml/components/TabBar.qml | 12 ++-- app_source/resources/icon.rc | 42 -------------- app_source/source/main.cpp | 3 +- 14 files changed, 124 insertions(+), 141 deletions(-) create mode 100644 app_source/.cmake/MacOSXBundleInfo.plist.in create mode 100644 app_source/.cmake/win_app.rc.in delete mode 100644 app_source/resources/icon.rc diff --git a/3rdparty/RibbonUI b/3rdparty/RibbonUI index 79a17c3..b48cbe6 160000 --- a/3rdparty/RibbonUI +++ b/3rdparty/RibbonUI @@ -1 +1 @@ -Subproject commit 79a17c3fb191dfa10a8822d61e907daef7630dcf +Subproject commit b48cbe6719f8ba98f61a1473811cb44a0f234a56 diff --git a/app_source/.cmake/MacOSXBundleInfo.plist.in b/app_source/.cmake/MacOSXBundleInfo.plist.in new file mode 100644 index 0000000..ff787e4 --- /dev/null +++ b/app_source/.cmake/MacOSXBundleInfo.plist.in @@ -0,0 +1,45 @@ + + + + + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + APPL + + CFBundleName + ${MACOSX_BUNDLE_BUNDLE_NAME} + CFBundleIdentifier + ${MACOSX_BUNDLE_GUI_IDENTIFIER} + CFBundleExecutable + ${MACOSX_BUNDLE_EXECUTABLE_NAME} + + CFBundleVersion + ${MACOSX_BUNDLE_BUNDLE_VERSION} + CFBundleShortVersionString + ${MACOSX_BUNDLE_SHORT_VERSION_STRING} + + LSMinimumSystemVersion + ${CMAKE_OSX_DEPLOYMENT_TARGET} + + NSHumanReadableCopyright + ${MACOSX_BUNDLE_COPYRIGHT} + + CFBundleIconFile + ${MACOSX_BUNDLE_ICON_FILE} + + CFBundleDevelopmentRegion + ${MACOSX_BUNDLE_DEVELOPMENT_REGION} + CFBundleAllowMixedLocalizations + + + NSHighResolutionCapable + + + NSPrincipalClass + NSApplication + + NSSupportsAutomaticGraphicsSwitching + + + \ No newline at end of file diff --git a/app_source/.cmake/win_app.rc.in b/app_source/.cmake/win_app.rc.in new file mode 100644 index 0000000..781b323 --- /dev/null +++ b/app_source/.cmake/win_app.rc.in @@ -0,0 +1,37 @@ +#include + +IDI_ICON1 ICON "${PROJECT_SOURCE_DIR}/resources/imgs/icon.ico" + +VS_VERSION_INFO VERSIONINFO +FILEVERSION ${version_str} +PRODUCTVERSION ${version_str} +FILEFLAGSMASK 0x3fL +#ifdef _DEBUG +FILEFLAGS VS_FF_DEBUG +#else +FILEFLAGS 0x0L +#endif +FILEOS VOS_NT_WINDOWS32 +FILETYPE VFT_APP +FILESUBTYPE VFT2_UNKNOWN +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904b0" + BEGIN + VALUE "Comments", "Made by Mentalflow." + VALUE "CompanyName", "${PROJECT_COMPANY}" + VALUE "FileDescription", "${PROJECT_COPYRIGHT}" + VALUE "FileVersion", "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}" + VALUE "InternalName", "${PROJECT_BUNDLE_NAME}.exe" + VALUE "LegalCopyright", "${PROJECT_COPYRIGHT}" + VALUE "OriginalFilename", "${PROJECT_BUNDLE_NAME}.exe" + VALUE "ProductName", "${PROJECT_BUNDLE_NAME}" + VALUE "ProductVersion", "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END \ No newline at end of file diff --git a/app_source/CMakeLists.txt b/app_source/CMakeLists.txt index 7f739c5..f96b3bc 100644 --- a/app_source/CMakeLists.txt +++ b/app_source/CMakeLists.txt @@ -20,8 +20,9 @@ endif() set(QML_IMPORT_PATH ${CMAKE_BINARY_DIR}/app_source CACHE STRING "Qt Creator extra QML import paths" FORCE) +string(TIMESTAMP TIME_YEAR %Y) set(PROJECT_COMPANY "Mentalflow's Lab") -set(PROJECT_COPYRIGHT "Copyright (c) 2023 Mentalflow's Lab. All rights reserved.") +set(PROJECT_COPYRIGHT "Copyright (c) ${TIME_YEAR} Mentalflow's Lab. All rights reserved.") set(PROJECT_DOMAIN "dev.ourdocs.cn.protocolparser") set(PROJECT_BUNDLE_NAME ${PROJECT_NAME}) set(version_str "${CMAKE_PROJECT_VERSION_MAJOR},${CMAKE_PROJECT_VERSION_MINOR},${CMAKE_PROJECT_VERSION_PATCH}") @@ -63,7 +64,7 @@ set(doc_files ${CMAKE_SOURCE_DIR}/README.md ${CMAKE_SOURCE_DIR}/documents/protoc ${CMAKE_SOURCE_DIR}/documents/pictures/home-light.png ${CMAKE_SOURCE_DIR}/app_source/resources/imgs/icon.png ) -INCLUDE_DIRECTORIES(dlln3x include) +include_directories(dlln3x include) add_subdirectory(sm_crypto) if(CMAKE_BUILD_TYPE STREQUAL "Debug") @@ -73,27 +74,37 @@ else() endif() if (WIN32) - set(app_icon_resource_windows resources/icon.rc) + configure_file(.cmake/win_app.rc.in ${CMAKE_BINARY_DIR}/win_app.rc) + set(app_icon_resource_windows ${CMAKE_BINARY_DIR}/win_app.rc) qt_add_executable(${PROJECT_NAME} ${sources_files} - resources/icon.rc + ${app_icon_resource_windows} + ) + file(TO_CMAKE_PATH "/" PATH_SEPARATOR) + if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") + set(DLLPATH ${CMAKE_SOURCE_DIR}/3rdparty/msvc/*.dll) + else() + set(DLLPATH ${CMAKE_SOURCE_DIR}/3rdparty/mingw/*.dll) + endif() + string(REPLACE "/" ${PATH_SEPARATOR} DLLPATH "${DLLPATH}") + file(GLOB DLL_FILES ${DLLPATH}) + add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy + ${DLL_FILES} + ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} ) -file(TO_CMAKE_PATH "/" PATH_SEPARATOR) -if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") - set(DLLPATH ../3rdparty/msvc/*.dll) -else() - set(DLLPATH ../3rdparty/mingw/*.dll) -endif() -string(REPLACE "/" ${PATH_SEPARATOR} DLLPATH "${DLLPATH}") -file(GLOB DLL_FILES ${DLLPATH}) -add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy - ${DLL_FILES} - ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} -) elseif(APPLE) + set(MACOSX_BUNDLE_GUI_IDENTIFIER ${PROJECT_DOMAIN}) + set(MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}) + set(MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}) + set(MACOSX_BUNDLE_BUNDLE_NAME ${PROJECT_BUNDLE_NAME}) + set(MACOSX_BUNDLE_COPYRIGHT ${PROJECT_COPYRIGHT}) + set(MACOSX_BUNDLE_DEVELOPMENT_REGION "Chinese") + set(CMAKE_OSX_DEPLOYMENT_TARGET "11.0" CACHE STRING "Minimum OS X deployment version" FORCE) + set(MACOSX_BUNDLE_EXECUTABLE_NAME ${PROJECT_BUNDLE_NAME}) set(MACOSX_BUNDLE_ICON_FILE AppIcon) - set(App_ICON "resources/imgs/AppIcon.icns") + configure_file(.cmake/MacOSXBundleInfo.plist.in ${CMAKE_BINARY_DIR}/Info.plist) + set(App_ICON "${PROJECT_SOURCE_DIR}/resources/imgs/AppIcon.icns") set_source_files_properties(${App_ICON} PROPERTIES MACOSX_PACKAGE_LOCATION "Resources") qt_add_executable(${PROJECT_NAME} ${sources_files} @@ -130,11 +141,7 @@ qt_add_qml_module(${PROJECT_NAME} ) set_target_properties(${PROJECT_NAME} PROPERTIES - MACOSX_BUNDLE_GUI_IDENTIFIER ${PROJECT_DOMAIN} - MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION} - MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} - MACOSX_BUNDLE_BUNDLE_NAME ${PROJECT_BUNDLE_NAME} - MACOSX_BUNDLE_COPYRIGHT ${PROJECT_COPYRIGHT} + MACOSX_BUNDLE_INFO_PLIST ${CMAKE_BINARY_DIR}/Info.plist MACOSX_BUNDLE TRUE WIN32_EXECUTABLE TRUE OUTPUT_NAME ${PROJECT_BUNDLE_NAME} @@ -180,8 +187,6 @@ target_link_libraries(${PROJECT_NAME} PRIVATE Qt::Core5Compat RibbonUI sm_crypto - FramelessHelper::Core - FramelessHelper::Quick ) add_dependencies(${PROJECT_NAME} ${PROJECT_NAME}_lupdate) diff --git a/app_source/qml/Main.qml b/app_source/qml/Main.qml index 942dac6..4540991 100644 --- a/app_source/qml/Main.qml +++ b/app_source/qml/Main.qml @@ -27,10 +27,9 @@ RibbonWindow { text_color: title_bar.title_text_color text_color_reverse: false onClicked: { - show_popup("qrc:/qt/qml/ProtocolParser/components/HelpView.qml") + Window.window.popup.show_content("qrc:/qt/qml/ProtocolParser/components/HelpView.qml") } } - } CenterView{ diff --git a/app_source/qml/components/DeviceList.qml b/app_source/qml/components/DeviceList.qml index 5d5fcab..e8de5bf 100644 --- a/app_source/qml/components/DeviceList.qml +++ b/app_source/qml/components/DeviceList.qml @@ -86,18 +86,6 @@ Item{ } } - RibbonButton{ - anchors{ - top:parent.top - margins: 4 - right:parent.right - } - show_bg: false - show_hovered_bg: false - icon_source: RibbonIcons.Dismiss - onClicked: popup.close() - } - ColumnLayout{ id:list_layout anchors{ diff --git a/app_source/qml/components/EventsHistoryList.qml b/app_source/qml/components/EventsHistoryList.qml index 117e225..132ff71 100644 --- a/app_source/qml/components/EventsHistoryList.qml +++ b/app_source/qml/components/EventsHistoryList.qml @@ -38,18 +38,6 @@ Item { } } - RibbonButton{ - anchors{ - top:parent.top - margins: 4 - right:parent.right - } - show_bg: false - show_hovered_bg: false - icon_source: RibbonIcons.Dismiss - onClicked: popup.close() - } - ColumnLayout{ id:list_layout anchors{ diff --git a/app_source/qml/components/FrameChooser.qml b/app_source/qml/components/FrameChooser.qml index f5744ba..1c35e7a 100644 --- a/app_source/qml/components/FrameChooser.qml +++ b/app_source/qml/components/FrameChooser.qml @@ -61,18 +61,6 @@ Item { } } - RibbonButton{ - anchors{ - top:parent.top - margins: 4 - right:parent.right - } - show_bg: false - show_hovered_bg: false - icon_source: RibbonIcons.Dismiss - onClicked: popup.close() - } - ColumnLayout{ id:layout anchors{ diff --git a/app_source/qml/components/HelpView.qml b/app_source/qml/components/HelpView.qml index 1a5ce3f..3fc4d44 100644 --- a/app_source/qml/components/HelpView.qml +++ b/app_source/qml/components/HelpView.qml @@ -12,18 +12,6 @@ Item { property string title: qsTr("帮助") Component.onCompleted: Tools.writeDirtoTempDir(":/qt/qml/ProtocolParser/") - RibbonButton{ - anchors{ - top:parent.top - margins: 4 - right:parent.right - } - show_bg: false - show_hovered_bg: false - icon_source: RibbonIcons.Dismiss - onClicked: popup.close() - } - RibbonText{ anchors{ top:parent.top @@ -36,6 +24,7 @@ Item { RibbonMarkDownViewer{ id: viewer anchors.fill: parent + anchors.margins: 35 file_name: 'qrc:/qt/qml/ProtocolParser/README.md' base_url: 'qrc:/qt/qml/ProtocolParser/' resource_dir: Tools.baseDir diff --git a/app_source/qml/components/KeysList.qml b/app_source/qml/components/KeysList.qml index 27c18fa..a63b64e 100644 --- a/app_source/qml/components/KeysList.qml +++ b/app_source/qml/components/KeysList.qml @@ -38,18 +38,6 @@ Item { } } - RibbonButton{ - anchors{ - top:parent.top - margins: 4 - right:parent.right - } - show_bg: false - show_hovered_bg: false - icon_source: RibbonIcons.Dismiss - onClicked: popup.close() - } - ColumnLayout{ id:list_layout anchors{ diff --git a/app_source/qml/components/RibbonMarkDownViewer.qml b/app_source/qml/components/RibbonMarkDownViewer.qml index eda1cf1..13767f7 100644 --- a/app_source/qml/components/RibbonMarkDownViewer.qml +++ b/app_source/qml/components/RibbonMarkDownViewer.qml @@ -30,7 +30,6 @@ Item { anchors{ top: parent.top left: parent.left - margins: 30 } width: parent.width height: parent.height @@ -54,8 +53,8 @@ Item { } else if (request.status === WebView.LoadSucceededStatus) { - viewer.width = parent.width - (anchors.margins * 2) - viewer.height = parent.height - (anchors.margins * 2) + viewer.width += 1 // This is a trick for making the viewer's width and height shows correct. + viewer.width -= 1 viewer.runJavaScript(`document.body.scrollTop = ${viewer.pre_height};`) get_height() } diff --git a/app_source/qml/components/TabBar.qml b/app_source/qml/components/TabBar.qml index 11cbe52..1af6426 100644 --- a/app_source/qml/components/TabBar.qml +++ b/app_source/qml/components/TabBar.qml @@ -242,7 +242,7 @@ RibbonTabBar { text: qsTr("等待队列") show_tooltip: false onClicked: { - show_popup("qrc:/qt/qml/ProtocolParser/components/DeviceList.qml",{list_type:0}) + Window.window.popup.show_content("qrc:/qt/qml/ProtocolParser/components/DeviceList.qml",{list_type:0}) } } RibbonButton{ @@ -251,7 +251,7 @@ RibbonTabBar { text: qsTr("认证列表") show_tooltip: false onClicked: { - show_popup("qrc:/qt/qml/ProtocolParser/components/DeviceList.qml",{list_type:1}) + Window.window.popup.show_content("qrc:/qt/qml/ProtocolParser/components/DeviceList.qml",{list_type:1}) } } RibbonButton{ @@ -260,7 +260,7 @@ RibbonTabBar { text: qsTr("黑名单列表") show_tooltip: false onClicked: { - show_popup("qrc:/qt/qml/ProtocolParser/components/DeviceList.qml",{list_type:2}) + Window.window.popup.show_content("qrc:/qt/qml/ProtocolParser/components/DeviceList.qml",{list_type:2}) } } } @@ -321,7 +321,7 @@ RibbonTabBar { text: qsTr("历史密钥列表") show_tooltip: false onClicked: { - show_popup("qrc:/qt/qml/ProtocolParser/components/KeysList.qml") + Window.window.popup.show_content("qrc:/qt/qml/ProtocolParser/components/KeysList.qml") } } function key_format_validate(str) { @@ -393,7 +393,7 @@ RibbonTabBar { text: qsTr("事件历史信息") tip_text: qsTr("查看所有事件历史信息(包含调试信息)") onClicked: { - show_popup("qrc:/qt/qml/ProtocolParser/components/EventsHistoryList.qml") + Window.window.popup.show_content("qrc:/qt/qml/ProtocolParser/components/EventsHistoryList.qml") } } } @@ -474,7 +474,7 @@ RibbonTabBar { text: qsTr("自定义数据帧") tip_text: qsTr("自定义传感器数据帧结构") onClicked: { - show_popup("qrc:/qt/qml/ProtocolParser/components/FrameChooser.qml") + Window.window.popup.show_content("qrc:/qt/qml/ProtocolParser/components/FrameChooser.qml") } } } diff --git a/app_source/resources/icon.rc b/app_source/resources/icon.rc deleted file mode 100644 index 06874e8..0000000 --- a/app_source/resources/icon.rc +++ /dev/null @@ -1,42 +0,0 @@ -#include - -IDI_ICON1 ICON "imgs/icon.ico" - -#define STR(x) #x -#define VER_JOIN(a,b,c) STR(a.b.c) -#define VER_JOIN_(x) VER_JOIN x -#define VER_STR VER_JOIN_((PROTOCOLPARSER_VERSION)) - -VS_VERSION_INFO VERSIONINFO -FILEVERSION PROTOCOLPARSER_VERSION -PRODUCTVERSION PROTOCOLPARSER_VERSION -FILEFLAGSMASK 0x3fL -#ifdef _DEBUG -FILEFLAGS VS_FF_DEBUG -#else -FILEFLAGS 0x0L -#endif -FILEOS VOS_NT_WINDOWS32 -FILETYPE VFT_APP -FILESUBTYPE VFT2_UNKNOWN -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904b0" - BEGIN - VALUE "Comments", "Made by Mentalflow." - VALUE "CompanyName", "Mentalflow" - VALUE "FileDescription", "Protocol Parser" - VALUE "FileVersion", VER_STR - VALUE "InternalName", "" - VALUE "LegalCopyright", "Copyright (C) 2023" - VALUE "OriginalFilename", "" - VALUE "ProductName", "Protocol Parser" - VALUE "ProductVersion", VER_STR - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x409, 1200 - END -END \ No newline at end of file diff --git a/app_source/source/main.cpp b/app_source/source/main.cpp index 6a7cc6a..77f685e 100644 --- a/app_source/source/main.cpp +++ b/app_source/source/main.cpp @@ -11,9 +11,8 @@ Q_IMPORT_QML_PLUGIN(RibbonUIPlugin) #endif int main(int argc, char *argv[]) { - RibbonUI::init(); QtWebView::initialize(); - FramelessHelper::Quick::initialize(); + RibbonUI::init(); QGuiApplication app(argc, argv); QTranslator translator; bool result = translator.load(QLocale::system(), u""_qs, u""_qs, u":/translations"_qs);