Skip to content

Commit 54253ef

Browse files
committed
v2.9
1.修复苹果下,英文和中文两者对话框、选项框位置会变动问题 。 2.修复脏区域算法缺陷所导致的绘制延迟现象。 3.增加JPEG绘制,但优化效果不明显,故暂不使用。 4.修复终端下,内容因数据压缩缺陷所导致的丢失问题。
1 parent a0b65be commit 54253ef

File tree

839 files changed

+70940
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

839 files changed

+70940
-0
lines changed

CMakeLists.txt

Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
cmake_minimum_required(VERSION 3.1)
2+
3+
project(FeiDeskAll)
4+
5+
macro(qt5_generate_myrepc outfiles infile outputtype)
6+
# get include dirs and flags
7+
get_filename_component(abs_infile ${infile} ABSOLUTE)
8+
get_filename_component(infile_name "${infile}" NAME)
9+
string(REPLACE ".rep" "" _infile_base ${infile_name})
10+
if(${outputtype} STREQUAL "SOURCE")
11+
set(_outfile_base "rep_${_infile_base}_source")
12+
set(_repc_args -o source)
13+
elseif(${outputtype} STREQUAL "MERGED")
14+
set(_outfile_base "rep_${_infile_base}_merged")
15+
set(_repc_args -o merged)
16+
else()
17+
set(_outfile_base "rep_${_infile_base}_replica")
18+
set(_repc_args -o replica)
19+
endif()
20+
set(_outfile_header "${CMAKE_CURRENT_BINARY_DIR}/${_outfile_base}.h")
21+
add_custom_command(OUTPUT ${_outfile_header}
22+
DEPENDS ${abs_infile}
23+
COMMAND ${Qt5RemoteObjects_REPC_EXECUTABLE} ${abs_infile} ${_repc_args} ${_outfile_header}
24+
VERBATIM)
25+
set_source_files_properties(${_outfile_header} PROPERTIES GENERATED TRUE)
26+
27+
qt5_get_moc_flags(_moc_flags)
28+
# Make sure we get the compiler flags from the Qt5::RemoteObjects target (for includes)
29+
# (code adapted from QT5_GET_MOC_FLAGS)
30+
foreach(_current ${Qt5RemoteObjects_INCLUDE_DIRS})
31+
if("${_current}" MATCHES "\\.framework/?$")
32+
string(REGEX REPLACE "/[^/]+\\.framework" "" framework_path "${_current}")
33+
set(_moc_flags ${_moc_flags} "-F${framework_path}")
34+
else()
35+
set(_moc_flags ${_moc_flags} "-I${_current}")
36+
endif()
37+
endforeach()
38+
39+
set(_moc_outfile "${CMAKE_CURRENT_BINARY_DIR}/moc_${_outfile_base}.cpp")
40+
qt5_create_moc_command(${_outfile_header} ${_moc_outfile} "${_moc_flags}" "" "" "")
41+
list(APPEND ${outfiles} "${_outfile_header}" ${_moc_outfile})
42+
endmacro()
43+
44+
#
45+
# repc timemodel.rep -o merged rep_timemodel_merged.h
46+
# qt5_generate_myrepc to fix qt5_generate_repc bug.
47+
# orignal source: xxx/remoteobjects/Qt5RemoteObjectsMacros.cmake
48+
# example: qt5_generate_myrepc(HEADER_FILES ${REPC_FILES} MERGED)
49+
50+
SET(CMAKE_EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
51+
SET(CMAKE_EXECUTABLE_OUTPUT_PATH_DEBUG ${PROJECT_SOURCE_DIR}/bin)
52+
SET(CMAKE_EXECUTABLE_OUTPUT_PATH_RELEASE ${PROJECT_SOURCE_DIR}/bin)
53+
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/bin)
54+
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${PROJECT_SOURCE_DIR}/bin)
55+
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${PROJECT_SOURCE_DIR}/bin)
56+
SET(CMAKE_LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
57+
SET(CMAKE_LIBRARY_OUTPUT_PATH_DEBUG ${PROJECT_SOURCE_DIR}/bin)
58+
SET(CMAKE_LIBRARY_OUTPUT_PATH_RELEASE ${PROJECT_SOURCE_DIR}/bin)
59+
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/bin)
60+
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${PROJECT_SOURCE_DIR}/bin)
61+
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${PROJECT_SOURCE_DIR}/bin)
62+
63+
set(CMAKE_DEBUG_POSTFIX "d")
64+
65+
set(SERVICE_ROOT_DIR ${PROJECT_SOURCE_DIR}/third/qtservice)
66+
set(AES_ROOT_DIR ${PROJECT_SOURCE_DIR}/third/qtaes)
67+
set(LIBEVENT_ROOT_DIR ${PROJECT_SOURCE_DIR}/third/libevent-2.1.12)
68+
set(QTDISPATCHER_ROOT_DIR ${PROJECT_SOURCE_DIR}/third/qtdispatcher)
69+
set(KXVNC_ROOT_DIR ${PROJECT_SOURCE_DIR}/kxvnc)
70+
set(KXNET_ROOT_DIR ${PROJECT_SOURCE_DIR}/kxnet)
71+
set(KXTERM_ROOT_DIR ${PROJECT_SOURCE_DIR}/kxterm)
72+
set(KXPTY_ROOT_DIR ${PROJECT_SOURCE_DIR}/kxpty)
73+
set(KXCAP_ROOT_DIR ${PROJECT_SOURCE_DIR}/kxcap)
74+
set(KXFTP_ROOT_DIR ${PROJECT_SOURCE_DIR}/kxftp)
75+
set(KXUTIL_ROOT_DIR ${PROJECT_SOURCE_DIR}/kxutil)
76+
set(MODEM_ROOT_DIR ${PROJECT_SOURCE_DIR}/modem)
77+
78+
79+
if(WIN32)
80+
set(OPENSSL_ROOT_DIR ${PROJECT_SOURCE_DIR}/third/openssl/winx)
81+
set(ZLIB_ROOT_DIR ${PROJECT_SOURCE_DIR}/third/zlib/winx)
82+
set(LIBOPENH264_ROOT_DIR ${PROJECT_SOURCE_DIR}/third/openh264/winx)
83+
set(LIBPORTAUDIO_ROOT_DIR ${PROJECT_SOURCE_DIR}/third/portaudio/winx)
84+
set(LIBOPUS_ROOT_DIR ${PROJECT_SOURCE_DIR}/third/opus/winx)
85+
set(LIBJPEG_ROOT_DIR ${PROJECT_SOURCE_DIR}/third/jpeg/winx)
86+
set(LIBYUV_ROOT_DIR ${PROJECT_SOURCE_DIR}/third/libyuv/winx)
87+
set(LIBQTSERVICE_ROOT_DIR ${PROJECT_SOURCE_DIR}/third/qtservice/winx)
88+
file(GLOB MY_COPY_FILES ${OPENSSL_ROOT_DIR}/bin/*.dll)
89+
file(GLOB MY_COPY_FILES ${MY_COPY_FILES} ${LIBQTSERVICE_ROOT_DIR}/bin/*.dll)
90+
else()
91+
set(OPENSSL_ROOT_DIR ${PROJECT_SOURCE_DIR}/third/openssl/unix)
92+
set(ZLIB_ROOT_DIR ${PROJECT_SOURCE_DIR}/third/zlib/unix)
93+
set(LIBOPENH264_ROOT_DIR ${PROJECT_SOURCE_DIR}/third/openh264/unix)
94+
set(LIBPORTAUDIO_ROOT_DIR ${PROJECT_SOURCE_DIR}/third/portaudio/unix)
95+
set(LIBOPUS_ROOT_DIR ${PROJECT_SOURCE_DIR}/third/opus/unix)
96+
set(LIBJPEG_ROOT_DIR ${PROJECT_SOURCE_DIR}/third/jpeg/unix)
97+
set(LIBYUV_ROOT_DIR ${PROJECT_SOURCE_DIR}/third/libyuv/unix)
98+
set(LIBQTSERVICE_ROOT_DIR ${PROJECT_SOURCE_DIR}/third/qtservice/unix)
99+
file(GLOB MY_COPY_FILES ${OPENSSL_ROOT_DIR}/lib/lib*.dylib)
100+
file(GLOB MY_COPY_FILES ${MY_COPY_FILES} ${OPENSSL_ROOT_DIR}/lib/lib*.so*)
101+
endif()
102+
file(COPY ${MY_COPY_FILES} DESTINATION ${PROJECT_SOURCE_DIR}/bin)
103+
104+
105+
message("copy file list:${MY_COPY_FILES}")
106+
message("root path:${PROJECT_SOURCE_DIR}")
107+
108+
add_subdirectory(kxutil)
109+
add_subdirectory(kxftp)
110+
add_subdirectory(kxcap)
111+
add_subdirectory(kxnet)
112+
add_subdirectory(kxvnc)
113+
add_subdirectory(kxterm)
114+
add_subdirectory(kxpty)
115+
add_subdirectory(feidesk)
116+
117+

feidesk/CMakeLists.txt

Lines changed: 224 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,224 @@
1+
cmake_minimum_required(VERSION 3.1)
2+
3+
project(feidesk LANGUAGES CXX)
4+
5+
set(CMAKE_INCLUDE_CURRENT_DIR ON)
6+
set(CMAKE_AUTOMOC ON)
7+
set(CMAKE_AUTORCC ON)
8+
set(CMAKE_AUTOUIC ON)
9+
set(CMAKE_CXX_STANDARD 11)
10+
set(CMAKE_CXX_STANDARD_REQUIRED ON)
11+
12+
if(WIN32)
13+
else()
14+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
15+
endif()
16+
17+
find_package(Qt5 COMPONENTS Core Widgets Network RemoteObjects REQUIRED)
18+
19+
set(SOURCE_FILES
20+
main.cpp
21+
richedit/qkxtextobject.cpp
22+
richedit/qkxtextcursor.cpp
23+
richedit/qkxmoviepool.cpp
24+
richedit/qkxtextbrowser.cpp
25+
qkxutils.cpp
26+
qkxfirewall.cpp
27+
qkxsettingex.cpp
28+
qkxmenu.cpp
29+
qkxbuttonassist.cpp
30+
qkxiconlabelbutton.cpp
31+
qkxpowerapplication.cpp
32+
qkxpowernetserver.cpp
33+
qkxoptionform.cpp
34+
qkxmydeviceform.cpp
35+
qkxconnectionform.cpp
36+
qkxpowermainwindow.cpp
37+
qkxsimplemainwindow.cpp
38+
qkxpushbutton.cpp
39+
qkxdesktoptoolform.cpp
40+
qkxdesktopplayform.cpp
41+
qkxdesktopplaystatusform.cpp
42+
qkxdesktopplaywindow.cpp
43+
qkxfiletransferwindow.cpp
44+
qkxfiletransferstatusform.cpp
45+
qkxloadingwidget.cpp
46+
qkxloadingbarwidget.cpp
47+
qkxdevicetreemodel.cpp
48+
qkxlocalabilitymodel.cpp
49+
qkxremoteabilitymodel.cpp
50+
qkxservicemanager.cpp
51+
qkxiconframepaint.cpp
52+
qkxtcpftprequest.cpp
53+
qkxserverdialog.cpp
54+
qkxminiworkspacewidget.cpp
55+
qkxlanguagedialog.cpp
56+
qkxauthorizeconfirmdialog.cpp
57+
qkxusercreatedialog.cpp
58+
qkxaboutdialog.cpp
59+
qkxminisessionitem.cpp
60+
qkxdesktopftprequest.cpp
61+
qkxdesktopftpwidget.cpp
62+
qkxtermwindow.cpp
63+
qkxtermwidgetex.cpp
64+
qkxtermstatusform.cpp
65+
qkxchatwindow.cpp
66+
qkxchatstatusform.cpp
67+
qkxchatinteraction.cpp
68+
qkxoptionsdialog.cpp
69+
)
70+
71+
set(HEADER_FILES
72+
richedit/qkxtextobject.h
73+
richedit/qkxtextcursor.h
74+
richedit/qkxmoviepool.h
75+
richedit/qkxtextbrowser.h
76+
version.h
77+
qkxdeskdef.h
78+
qkxutils.h
79+
qkxmodel_share.h
80+
qkxfirewall.h
81+
qkxsettingex.h
82+
qkxmenu.h
83+
qkxbuttonassist.h
84+
qkxiconlabelbutton.h
85+
qkxpowerapplication.h
86+
qkxpowernetserver.h
87+
qkxoptionform.h
88+
qkxmydeviceform.h
89+
qkxconnectionform.h
90+
qkxpowermainwindow.h
91+
qkxsimplemainwindow.h
92+
qkxpushbutton.h
93+
qkxdesktopplayform.h
94+
qkxdesktopplaystatusform.h
95+
qkxdesktoptoolform.h
96+
qkxdesktopplaywindow.h
97+
qkxfiletransferwindow.h
98+
qkxfiletransferstatusform.h
99+
qkxtcpftprequest.h
100+
qkxloadingwidget.h
101+
qkxloadingbarwidget.h
102+
qkxdevicetreemodel.h
103+
qkxlocalabilitymodel.h
104+
qkxremoteabilitymodel.h
105+
qkxservicemanager.h
106+
qkxiconframepaint.h
107+
qkxserverdialog.h
108+
qkxminiworkspacewidget.h
109+
qkxlanguagedialog.h
110+
qkxauthorizeconfirmdialog.h
111+
qkxusercreatedialog.h
112+
qkxaboutdialog.h
113+
qkxminisessionitem.h
114+
qkxdesktopftprequest.h
115+
qkxdesktopftpwidget.h
116+
qkxtermwindow.h
117+
qkxtermwidgetex.h
118+
qkxtermstatusform.h
119+
qkxchatwindow.h
120+
qkxchatstatusform.h
121+
qkxchatinteraction.h
122+
qkxoptionsdialog.h
123+
)
124+
125+
set(OTHER_FILES
126+
feidesk.qrc
127+
qkxoptionform.ui
128+
qkxmydeviceform.ui
129+
qkxconnectionform.ui
130+
qkxpowermainwindow.ui
131+
qkxsimplemainwindow.ui
132+
qkxdesktoptoolform.ui
133+
qkxdesktopplaywindow.ui
134+
qkxdesktopplaystatusform.ui
135+
qkxfiletransferstatusform.ui
136+
qkxserverdialog.ui
137+
qkxminiworkspacewidget.ui
138+
qkxlanguagedialog.ui
139+
qkxauthorizeconfirmdialog.ui
140+
qkxusercreatedialog.ui
141+
qkxaboutdialog.ui
142+
qkxminisessionitem.ui
143+
qkxdesktopftpwidget.ui
144+
qkxtermwindow.ui
145+
qkxtermstatusform.ui
146+
qkxchatwindow.ui
147+
qkxchatstatusform.ui
148+
qkxoptionsdialog.ui
149+
)
150+
151+
include_directories(${SERVICE_ROOT_DIR}
152+
${LIBQTSERVICE_ROOT_DIR}/include
153+
${ZLIB_ROOT_DIR}/include
154+
${LIBYUV_ROOT_DIR}/include
155+
${KXVNC_ROOT_DIR}
156+
${KXNET_ROOT_DIR}
157+
${KXFTP_ROOT_DIR}
158+
${KXCAP_ROOT_DIR}
159+
${KXTERM_ROOT_DIR}
160+
${KXPTY_ROOT_DIR}
161+
${AES_ROOT_DIR}
162+
${KXUTIL_ROOT_DIR}
163+
)
164+
165+
link_directories(${ZLIB_ROOT_DIR}/lib
166+
${LIBQTSERVICE_ROOT_DIR}/lib
167+
${LIBYUV_ROOT_DIR}/lib
168+
)
169+
170+
link_libraries(kxvnc kxnet kxcap kxterm kxpty kxftp kxutil)
171+
if(WIN32)
172+
set(SOURCE_FILES ${SOURCE_FILES}
173+
qkxutils_win.cpp
174+
)
175+
176+
set(OTHER_FILES ${OTHER_FILES}
177+
feidesk.rc
178+
)
179+
elseif(APPLE)
180+
message("APPLE Here")
181+
set(SOURCE_FILES ${SOURCE_FILES}
182+
qkxutils_unix.cpp
183+
)
184+
else()
185+
message("other")
186+
set(SOURCE_FILES ${SOURCE_FILES}
187+
qkxutils_unix.cpp
188+
)
189+
endif()
190+
191+
if(WIN32)
192+
message("window system.")
193+
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
194+
link_libraries(qtserviced)
195+
else()
196+
link_libraries(qtservice)
197+
endif()
198+
add_executable(${PROJECT_NAME} WIN32 ${SOURCE_FILES} ${HEADER_FILES} ${OTHER_FILES})
199+
elseif(APPLE)
200+
message("macosx system")
201+
# And this part tells CMake where to find and install the file itself
202+
set(PROGRAM_VERSION "1.0" CACHE STRINGS "you can modify this value by command : cmake -DPROGRAM_VERSION=\"xx\"")
203+
set(ICNS_NAME "feidesk128x128.icns")
204+
set(myApp_ICON ${CMAKE_CURRENT_SOURCE_DIR}/resource/${ICNS_NAME})
205+
set_source_files_properties(${myApp_ICON} PROPERTIES MACOSX_PACKAGE_LOCATION "Resources")
206+
add_executable(${PROJECT_NAME} MACOSX_BUNDLE ${myApp_ICON} ${SOURCE_FILES} ${HEADER_FILES} ${OTHER_FILES})
207+
set_target_properties(${PROJECT_NAME} PROPERTIES
208+
BUNDLE True
209+
MACOSX_BUNDLE_INFO_STRING "FeiDesk Remote Assistant"
210+
MACOSX_BUNDLE_GUI_IDENTIFIER "com.aoyiduo.feidesk"
211+
MACOSX_BUNDLE_ICON_FILE "${ICNS_NAME}"
212+
MACOSX_BUNDLE_BUNDLE_VERSION ${PROGRAM_VERSION}
213+
MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROGRAM_VERSION}
214+
MACOSX_BUNDLE_BUNDLE_NAME "FeiDesk"
215+
MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/resource/template.plist.in
216+
LINK_FLAGS "-sectcreate __CGPreLoginApp __cgpreloginapp /dev/null"
217+
)
218+
else()
219+
message("linux system.")
220+
add_executable(${PROJECT_NAME} ${SOURCE_FILES} ${HEADER_FILES} ${OTHER_FILES})
221+
endif()
222+
target_compile_definitions(${PROJECT_NAME} PRIVATE $<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:QT_QML_DEBUG>)
223+
target_link_libraries(${PROJECT_NAME} Qt5::Core Qt5::Widgets Qt5::Network Qt5::RemoteObjects)
224+

0 commit comments

Comments
 (0)