diff --git a/CMakeLists.txt b/CMakeLists.txt index c2bdad1..298afa3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,66 +1,3 @@ -cmake_minimum_required(VERSION 3.16) - -project(ClientChat VERSION 0.1 LANGUAGES CXX) - -set(CMAKE_AUTOUIC ON) -set(CMAKE_AUTOMOC ON) -set(CMAKE_AUTORCC ON) - -set(CMAKE_CXX_STANDARD 17) -set(CMAKE_CXX_STANDARD_REQUIRED ON) - -# 查找模块 -find_package(Qt6 COMPONENTS -Core -Protobuf -Widgets -Network -WebSockets -Multimedia -QUIET) - -set(QT_VERSION_MAJOR 6) - -# proto文件 -file(GLOB PB_FILES - proto/*.proto -) - -# 源文件 -file(GLOB PROJECT_SOURCES - model/*.h model/*.cpp - network/*.h network/*.cpp - *.h *.cpp - *.ui - *.qrc -) - -if(ANDROID) - # Android 平台:附加 Android 可部署资源 - qt_add_executable(ClientChat - MANUAL_FINALIZATION - ${PROJECT_SOURCES} - ) - - # 指定自定义的 Android 部署目录 - # set_property(TARGET ClientChat APPEND PROPERTY QT_ANDROID_PACKAGE_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/android") -else() - if(${QT_VERSION_MAJOR} GREATER_EQUAL 6) - - qt_add_executable(ClientChat - MANUAL_FINALIZATION - ${PROJECT_SOURCES} - ) - - qt_add_protobuf(ClientChat PROTO_FILES ${PB_FILES}) - endif() -endif() - -# 链接动态库 -target_link_libraries(ClientChat PRIVATE -Qt6::Core -Qt${QT_VERSION_MAJOR}::Widgets -Qt6::Network -Qt6::WebSockets -Qt6::Multimedia -) \ No newline at end of file +cmake_minimum_required(VERSION 3.1.3) +project(ChatClient) +add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/ChatClient) diff --git a/CMakePresets.json b/CMakePresets.json deleted file mode 100644 index 56c4ce3..0000000 --- a/CMakePresets.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "version": 3, - "configurePresets": [ - { - "hidden": true, - "name": "Qt", - "cacheVariables": { - "CMAKE_PREFIX_PATH": "$env{QTDIR}" - }, - "vendor": { - "qt-project.org/Qt": { - "checksum": "wVa86FgEkvdCTVp1/nxvrkaemJc=" - } - } - } - ], - "vendor": { - "qt-project.org/Presets": { - "checksum": "67SmY24ZeVbebyKD0fGfIzb/bGI=" - } - } -} \ No newline at end of file diff --git a/CMakeUserPresets.json b/CMakeUserPresets.json deleted file mode 100644 index 20b3da0..0000000 --- a/CMakeUserPresets.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "version": 3, - "configurePresets": [ - { - "name": "Qt-Debug", - "inherits": "Qt-Default", - "binaryDir": "${sourceDir}/out/build/debug", - "cacheVariables": { - "CMAKE_BUILD_TYPE": "Debug", - "CMAKE_CXX_FLAGS": "-DQT_QML_DEBUG" - }, - "environment": { - "QML_DEBUG_ARGS": "-qmljsdebugger=file:{74e0e0b6-0fbf-4a0d-93e9-c8349734743b},block" - } - }, - { - "name": "Qt-Release", - "inherits": "Qt-Default", - "binaryDir": "${sourceDir}/out/build/release", - "cacheVariables": { - "CMAKE_BUILD_TYPE": "Release" - } - }, - { - "hidden": true, - "name": "Qt-Default", - "inherits": "6.9.0", - "vendor": { - "qt-project.org/Default": { - "checksum": "ogzyvXATpX3FyMqBErb6IpyYPKI=" - } - } - }, - { - "hidden": true, - "name": "5.14.0", - "inherits": "Qt", - "environment": { - "QTDIR": "E:/Qt/Qt5.14.0/5.14.0/msvc2017_64" - }, - "architecture": { - "strategy": "external", - "value": "x64" - }, - "generator": "Ninja", - "vendor": { - "qt-project.org/Version": { - "checksum": "3cWOu5Lvdo5oEp6qU2AAXDl3CO8=" - } - } - }, - { - "hidden": true, - "name": "6.9.0", - "inherits": "Qt", - "environment": { - "QTDIR": "E:/Qt/Qt6.9.0/6.9.0/msvc2022_64" - }, - "architecture": { - "strategy": "external", - "value": "x64" - }, - "generator": "Ninja", - "vendor": { - "qt-project.org/Version": { - "checksum": "5GMO6/002JUUngppM/iaIHJADvk=" - } - } - } - ], - "vendor": { - "qt-project.org/Presets": { - "checksum": "Dlc1I+gqV2Q029C9SawBnzSygCA=" - } - } -} \ No newline at end of file diff --git a/ChatClient/CMakeLists.txt b/ChatClient/CMakeLists.txt new file mode 100644 index 0000000..31b1663 --- /dev/null +++ b/ChatClient/CMakeLists.txt @@ -0,0 +1,141 @@ +cmake_minimum_required(VERSION 3.16) + +project(ClientChat VERSION 0.1 LANGUAGES CXX) + +set(CMAKE_AUTOUIC ON) +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) + +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +# 查找模块 +find_package(Qt6 COMPONENTS +Core +Protobuf +Widgets +Network +WebSockets +Multimedia +QUIET) + +set(QT_VERSION_MAJOR 6) + +# 设置 UI 文件的搜索路径 +set(CMAKE_AUTOUIC_SEARCH_PATHS ${CMAKE_CURRENT_SOURCE_DIR}/ui) + +# proto文件 +file(GLOB PB_FILES + proto/*.proto +) + +# 源文件 +# file(GLOB PROJECT_SOURCES +# include/model/*.h src/model/*.cpp +# include/network/*.h src/network/*.cpp +# include/*.h src/*.cpp +# ui/*.ui +# resource/qrc/*.qrc +# ) + +# 显式列出源文件 +set(PROJECT_SOURCES + src/model/datacenter.cpp + src/network/netclient.cpp + src/addfrienddialog.cpp + src/choosefrienddialog.cpp + src/groupsessiondetailwidget.cpp + src/historymessagewidget.cpp + src/loginwidget.cpp + src/main.cpp + src/mainwidget.cpp + src/messageeditarea.cpp + src/messageshowarea.cpp + src/phoneloginwidget.cpp + src/selfinfowidget.cpp + src/sessiondetailwidget.cpp + src/sessionfriendarea.cpp + src/soundrecorder.cpp + src/toast.cpp + src/userinfowidget.cpp + src/verifycodewidget.cpp +) + +# 显式列出头文件 +set(PROJECT_HEADERS + include/model/data.h + include/model/datacenter.h + include/network/netclient.h + include/addfrienddialog.h + include/choosefrienddialog.h + include/debug.h + include/groupsessiondetailwidget.h + include/historymessagewidget.h + include/loginwidget.h + include/mainwidget.h + include/messageeditarea.h + include/messageshowarea.h + include/phoneloginwidget.h + include/selfinfowidget.h + include/sessiondetailwidget.h + include/sessionfriendarea.h + include/soundrecorder.h + include/toast.h + include/userinfowidget.h + include/verifycodewidget.h +) + +# 显式列出 UI 文件 +set(PROJECT_FORMS + ui/mainwidget.ui +) + +# 显式列出资源文件 +set(PROJECT_RESOURCES + resource.qrc +) + +if(ANDROID) + # Android 平台:附加 Android 可部署资源 + qt_add_executable(ClientChat + MANUAL_FINALIZATION + # ${PROJECT_SOURCES} + ${PROJECT_SOURCES} + ${PROJECT_HEADERS} + ${PROJECT_FORMS} + ${PROJECT_RESOURCES} + ) + + # 指定自定义的 Android 部署目录 + # set_property(TARGET ClientChat APPEND PROPERTY QT_ANDROID_PACKAGE_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/android") +else() + if(${QT_VERSION_MAJOR} GREATER_EQUAL 6) + + qt_add_executable(ClientChat + MANUAL_FINALIZATION + # ${PROJECT_SOURCES} + ${PROJECT_SOURCES} + ${PROJECT_HEADERS} + ${PROJECT_FORMS} + ${PROJECT_RESOURCES} + ) + + qt_add_protobuf(ClientChat PROTO_FILES ${PB_FILES}) + endif() +endif() + +# 添加包含目录 +target_include_directories(ClientChat PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR}/include + ${CMAKE_CURRENT_SOURCE_DIR}/include/model + ${CMAKE_CURRENT_SOURCE_DIR}/include/network +) + +# 链接动态库 +target_link_libraries(ClientChat PRIVATE +Qt6::Core +Qt${QT_VERSION_MAJOR}::Widgets +Qt6::Network +Qt6::WebSockets +Qt6::Multimedia +) \ No newline at end of file diff --git a/addfrienddialog.h b/ChatClient/include/addfrienddialog.h similarity index 100% rename from addfrienddialog.h rename to ChatClient/include/addfrienddialog.h diff --git a/choosefrienddialog.h b/ChatClient/include/choosefrienddialog.h similarity index 100% rename from choosefrienddialog.h rename to ChatClient/include/choosefrienddialog.h diff --git a/debug.h b/ChatClient/include/debug.h similarity index 82% rename from debug.h rename to ChatClient/include/debug.h index 6bb6ba0..9734def 100644 --- a/debug.h +++ b/ChatClient/include/debug.h @@ -3,14 +3,12 @@ #define TEST_UI 0 -#define TEST_GROUP_SESSION_DETAIL 1 +#define TEST_GROUP_SESSION_DETAIL 0 #define TEST_SKIP_LOGIN 0 #define TEST_NETWORK 0 -#define TEST_GROUP_SESSION_DETAIL 0 - #define DEPOLY 1 #endif // DEBUG_H diff --git a/groupsessiondetailwidget.h b/ChatClient/include/groupsessiondetailwidget.h similarity index 100% rename from groupsessiondetailwidget.h rename to ChatClient/include/groupsessiondetailwidget.h diff --git a/historymessagewidget.h b/ChatClient/include/historymessagewidget.h similarity index 100% rename from historymessagewidget.h rename to ChatClient/include/historymessagewidget.h diff --git a/loginwidget.h b/ChatClient/include/loginwidget.h similarity index 100% rename from loginwidget.h rename to ChatClient/include/loginwidget.h diff --git a/mainwidget.h b/ChatClient/include/mainwidget.h similarity index 100% rename from mainwidget.h rename to ChatClient/include/mainwidget.h diff --git a/messageeditarea.h b/ChatClient/include/messageeditarea.h similarity index 100% rename from messageeditarea.h rename to ChatClient/include/messageeditarea.h diff --git a/messageshowarea.h b/ChatClient/include/messageshowarea.h similarity index 100% rename from messageshowarea.h rename to ChatClient/include/messageshowarea.h diff --git a/model/data.h b/ChatClient/include/model/data.h similarity index 100% rename from model/data.h rename to ChatClient/include/model/data.h diff --git a/model/datacenter.h b/ChatClient/include/model/datacenter.h similarity index 100% rename from model/datacenter.h rename to ChatClient/include/model/datacenter.h diff --git a/network/netclient.h b/ChatClient/include/network/netclient.h similarity index 100% rename from network/netclient.h rename to ChatClient/include/network/netclient.h diff --git a/phoneloginwidget.h b/ChatClient/include/phoneloginwidget.h similarity index 100% rename from phoneloginwidget.h rename to ChatClient/include/phoneloginwidget.h diff --git a/SelfInfoWidget.h b/ChatClient/include/selfinfowidget.h similarity index 100% rename from SelfInfoWidget.h rename to ChatClient/include/selfinfowidget.h diff --git a/sessiondetailwidget.h b/ChatClient/include/sessiondetailwidget.h similarity index 100% rename from sessiondetailwidget.h rename to ChatClient/include/sessiondetailwidget.h diff --git a/sessionfriendarea.h b/ChatClient/include/sessionfriendarea.h similarity index 100% rename from sessionfriendarea.h rename to ChatClient/include/sessionfriendarea.h diff --git a/soundrecorder.h b/ChatClient/include/soundrecorder.h similarity index 100% rename from soundrecorder.h rename to ChatClient/include/soundrecorder.h diff --git a/toast.h b/ChatClient/include/toast.h similarity index 100% rename from toast.h rename to ChatClient/include/toast.h diff --git a/userinfowidget.h b/ChatClient/include/userinfowidget.h similarity index 100% rename from userinfowidget.h rename to ChatClient/include/userinfowidget.h diff --git a/verifycodewidget.h b/ChatClient/include/verifycodewidget.h similarity index 100% rename from verifycodewidget.h rename to ChatClient/include/verifycodewidget.h diff --git a/proto/base.proto b/ChatClient/proto/base.proto similarity index 100% rename from proto/base.proto rename to ChatClient/proto/base.proto diff --git a/proto/file.proto b/ChatClient/proto/file.proto similarity index 100% rename from proto/file.proto rename to ChatClient/proto/file.proto diff --git a/proto/friend.proto b/ChatClient/proto/friend.proto similarity index 100% rename from proto/friend.proto rename to ChatClient/proto/friend.proto diff --git a/proto/gateway.proto b/ChatClient/proto/gateway.proto similarity index 100% rename from proto/gateway.proto rename to ChatClient/proto/gateway.proto diff --git a/proto/message_storage.proto b/ChatClient/proto/message_storage.proto similarity index 100% rename from proto/message_storage.proto rename to ChatClient/proto/message_storage.proto diff --git a/proto/message_transmit.proto b/ChatClient/proto/message_transmit.proto similarity index 100% rename from proto/message_transmit.proto rename to ChatClient/proto/message_transmit.proto diff --git a/proto/notify.proto b/ChatClient/proto/notify.proto similarity index 100% rename from proto/notify.proto rename to ChatClient/proto/notify.proto diff --git a/proto/speech_recognition.proto b/ChatClient/proto/speech_recognition.proto similarity index 100% rename from proto/speech_recognition.proto rename to ChatClient/proto/speech_recognition.proto diff --git a/proto/user.proto b/ChatClient/proto/user.proto similarity index 100% rename from proto/user.proto rename to ChatClient/proto/user.proto diff --git a/resource.qrc b/ChatClient/resource.qrc similarity index 100% rename from resource.qrc rename to ChatClient/resource.qrc index 0eacad7..b7c56fc 100644 --- a/resource.qrc +++ b/ChatClient/resource.qrc @@ -4,6 +4,7 @@ resource/image/apply_inactive.png resource/image/checked.png resource/image/cross.png + resource/image/defaultAv.png resource/image/defaultAvatar.png resource/image/file.png resource/image/friend_active.png @@ -21,6 +22,5 @@ resource/image/sound_active.png resource/image/submit.png resource/image/unchecked.png - resource/image/defaultAv.png diff --git a/resource/image/apply_active.png b/ChatClient/resource/image/apply_active.png similarity index 100% rename from resource/image/apply_active.png rename to ChatClient/resource/image/apply_active.png diff --git a/resource/image/apply_inactive.png b/ChatClient/resource/image/apply_inactive.png similarity index 100% rename from resource/image/apply_inactive.png rename to ChatClient/resource/image/apply_inactive.png diff --git a/resource/image/checked.png b/ChatClient/resource/image/checked.png similarity index 100% rename from resource/image/checked.png rename to ChatClient/resource/image/checked.png diff --git a/resource/image/cross.png b/ChatClient/resource/image/cross.png similarity index 100% rename from resource/image/cross.png rename to ChatClient/resource/image/cross.png diff --git a/resource/image/defaultAv.png b/ChatClient/resource/image/defaultAv.png similarity index 100% rename from resource/image/defaultAv.png rename to ChatClient/resource/image/defaultAv.png diff --git a/resource/image/defaultAvatar.png b/ChatClient/resource/image/defaultAvatar.png similarity index 100% rename from resource/image/defaultAvatar.png rename to ChatClient/resource/image/defaultAvatar.png diff --git a/resource/image/file.png b/ChatClient/resource/image/file.png similarity index 100% rename from resource/image/file.png rename to ChatClient/resource/image/file.png diff --git a/resource/image/friend_active.png b/ChatClient/resource/image/friend_active.png similarity index 100% rename from resource/image/friend_active.png rename to ChatClient/resource/image/friend_active.png diff --git a/resource/image/friend_inactive.png b/ChatClient/resource/image/friend_inactive.png similarity index 100% rename from resource/image/friend_inactive.png rename to ChatClient/resource/image/friend_inactive.png diff --git a/resource/image/groupAvatar.png b/ChatClient/resource/image/groupAvatar.png similarity index 100% rename from resource/image/groupAvatar.png rename to ChatClient/resource/image/groupAvatar.png diff --git a/resource/image/history.png b/ChatClient/resource/image/history.png similarity index 100% rename from resource/image/history.png rename to ChatClient/resource/image/history.png diff --git a/resource/image/image.png b/ChatClient/resource/image/image.png similarity index 100% rename from resource/image/image.png rename to ChatClient/resource/image/image.png diff --git a/resource/image/logo.png b/ChatClient/resource/image/logo.png similarity index 100% rename from resource/image/logo.png rename to ChatClient/resource/image/logo.png diff --git a/resource/image/modify.png b/ChatClient/resource/image/modify.png similarity index 100% rename from resource/image/modify.png rename to ChatClient/resource/image/modify.png diff --git a/resource/image/more.png b/ChatClient/resource/image/more.png similarity index 100% rename from resource/image/more.png rename to ChatClient/resource/image/more.png diff --git a/resource/image/search.png b/ChatClient/resource/image/search.png similarity index 100% rename from resource/image/search.png rename to ChatClient/resource/image/search.png diff --git a/resource/image/session_active.png b/ChatClient/resource/image/session_active.png similarity index 100% rename from resource/image/session_active.png rename to ChatClient/resource/image/session_active.png diff --git a/resource/image/session_inactive.png b/ChatClient/resource/image/session_inactive.png similarity index 100% rename from resource/image/session_inactive.png rename to ChatClient/resource/image/session_inactive.png diff --git a/resource/image/sound.png b/ChatClient/resource/image/sound.png similarity index 100% rename from resource/image/sound.png rename to ChatClient/resource/image/sound.png diff --git a/resource/image/sound_active.png b/ChatClient/resource/image/sound_active.png similarity index 100% rename from resource/image/sound_active.png rename to ChatClient/resource/image/sound_active.png diff --git a/resource/image/submit.png b/ChatClient/resource/image/submit.png similarity index 100% rename from resource/image/submit.png rename to ChatClient/resource/image/submit.png diff --git a/resource/image/unchecked.png b/ChatClient/resource/image/unchecked.png similarity index 100% rename from resource/image/unchecked.png rename to ChatClient/resource/image/unchecked.png diff --git a/addfrienddialog.cpp b/ChatClient/src/addfrienddialog.cpp similarity index 100% rename from addfrienddialog.cpp rename to ChatClient/src/addfrienddialog.cpp diff --git a/choosefrienddialog.cpp b/ChatClient/src/choosefrienddialog.cpp similarity index 100% rename from choosefrienddialog.cpp rename to ChatClient/src/choosefrienddialog.cpp diff --git a/groupsessiondetailwidget.cpp b/ChatClient/src/groupsessiondetailwidget.cpp similarity index 100% rename from groupsessiondetailwidget.cpp rename to ChatClient/src/groupsessiondetailwidget.cpp diff --git a/historymessagewidget.cpp b/ChatClient/src/historymessagewidget.cpp similarity index 100% rename from historymessagewidget.cpp rename to ChatClient/src/historymessagewidget.cpp diff --git a/loginwidget.cpp b/ChatClient/src/loginwidget.cpp similarity index 100% rename from loginwidget.cpp rename to ChatClient/src/loginwidget.cpp diff --git a/main.cpp b/ChatClient/src/main.cpp similarity index 100% rename from main.cpp rename to ChatClient/src/main.cpp diff --git a/mainwidget.cpp b/ChatClient/src/mainwidget.cpp similarity index 100% rename from mainwidget.cpp rename to ChatClient/src/mainwidget.cpp diff --git a/messageeditarea.cpp b/ChatClient/src/messageeditarea.cpp similarity index 100% rename from messageeditarea.cpp rename to ChatClient/src/messageeditarea.cpp diff --git a/messageshowarea.cpp b/ChatClient/src/messageshowarea.cpp similarity index 100% rename from messageshowarea.cpp rename to ChatClient/src/messageshowarea.cpp diff --git a/model/datacenter.cpp b/ChatClient/src/model/datacenter.cpp similarity index 100% rename from model/datacenter.cpp rename to ChatClient/src/model/datacenter.cpp diff --git a/network/netclient.cpp b/ChatClient/src/network/netclient.cpp similarity index 100% rename from network/netclient.cpp rename to ChatClient/src/network/netclient.cpp diff --git a/phoneloginwidget.cpp b/ChatClient/src/phoneloginwidget.cpp similarity index 100% rename from phoneloginwidget.cpp rename to ChatClient/src/phoneloginwidget.cpp diff --git a/SelfInfoWidget.cpp b/ChatClient/src/selfinfowidget.cpp similarity index 100% rename from SelfInfoWidget.cpp rename to ChatClient/src/selfinfowidget.cpp diff --git a/sessiondetailwidget.cpp b/ChatClient/src/sessiondetailwidget.cpp similarity index 100% rename from sessiondetailwidget.cpp rename to ChatClient/src/sessiondetailwidget.cpp diff --git a/sessionfriendarea.cpp b/ChatClient/src/sessionfriendarea.cpp similarity index 100% rename from sessionfriendarea.cpp rename to ChatClient/src/sessionfriendarea.cpp diff --git a/soundrecorder.cpp b/ChatClient/src/soundrecorder.cpp similarity index 100% rename from soundrecorder.cpp rename to ChatClient/src/soundrecorder.cpp diff --git a/toast.cpp b/ChatClient/src/toast.cpp similarity index 100% rename from toast.cpp rename to ChatClient/src/toast.cpp diff --git a/userinfowidget.cpp b/ChatClient/src/userinfowidget.cpp similarity index 100% rename from userinfowidget.cpp rename to ChatClient/src/userinfowidget.cpp diff --git a/verifycodewidget.cpp b/ChatClient/src/verifycodewidget.cpp similarity index 100% rename from verifycodewidget.cpp rename to ChatClient/src/verifycodewidget.cpp diff --git a/mainwidget.ui b/ChatClient/ui/mainwidget.ui similarity index 100% rename from mainwidget.ui rename to ChatClient/ui/mainwidget.ui diff --git a/docs/C++ 聊天室 - 客户端代码开发.pdf b/docs/C++ 聊天室 - 客户端代码开发.pdf new file mode 100644 index 0000000..d7d905b Binary files /dev/null and b/docs/C++ 聊天室 - 客户端代码开发.pdf differ