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);