update ctai_textedit输出更多内容,完善流式和非流式
This commit is contained in:
parent
0f870f984c
commit
396e19619b
3
.vscode/settings.json
vendored
3
.vscode/settings.json
vendored
@ -83,7 +83,8 @@
|
||||
"regex": "cpp",
|
||||
"ranges": "cpp",
|
||||
"any": "cpp",
|
||||
"qcloseevent": "cpp"
|
||||
"qcloseevent": "cpp",
|
||||
"qtextbrowser": "cpp"
|
||||
},
|
||||
"editor.gotoLocation.alternativeDeclarationCommand": "editor.action.revealDefinition",
|
||||
"editor.gotoLocation.alternativeDefinitionCommand": "editor.action.revealDefinition",
|
||||
|
Binary file not shown.
111
build/.ninja_log
111
build/.ninja_log
@ -1,66 +1,59 @@
|
||||
# ninja log v6
|
||||
4545 15917 7622792483817737 CMakeFiles/ctai.dir/src/main.cpp.obj 77280178abb968fc
|
||||
4539 15011 7622792483762632 CMakeFiles/ctai.dir/src/ctai_session_widget.cpp.obj 578ff58396e1bb80
|
||||
4075 7860 7620828272226167 CMakeFiles/ctai.dir/src/sui_sys_style.cpp.obj 3bdd07348bd84970
|
||||
262 484 7622684576644682 F:/SourceCode/ctai/build/qrc_res.cpp 9794859fafc6825
|
||||
22 4532 7622792482588033 F:/SourceCode/ctai/build/ctai_autogen/timestamp da3870ebc94b983e
|
||||
3983 7575 7621872533460841 CMakeFiles/ctai.dir/src/ctai_session_docker.cpp.obj d8ac6cde8856dc5e
|
||||
4543 10651 7622792483807746 CMakeFiles/ctai.dir/src/ctai_textedit.cpp.obj 336256b01143e240
|
||||
4083 4223 7620828272305402 CMakeFiles/ctai.dir/sui.rc.obj e30df163c9cbe567
|
||||
4540 15191 7622792483777774 CMakeFiles/ctai.dir/src/ctai_tabwidget.cpp.obj 6fa8a641137702e0
|
||||
487 3274 7622684576824662 CMakeFiles/ctai.dir/qrc_res.cpp.obj 9f74f1f5e59b5b50
|
||||
3560 6938 7621113173344145 CMakeFiles/ctai.dir/src/ctai_switch_control.cpp.obj ddca150b42c8a71b
|
||||
4535 15833 7622792483719213 CMakeFiles/ctai.dir/src/ctai.cpp.obj c7f0e07034d2e115
|
||||
4537 15426 7622792483744592 CMakeFiles/ctai.dir/src/ctai_session_info.cpp.obj 22d5a962360b4db1
|
||||
4903 17025 7621792026943581 CMakeFiles/ctai.dir/src/sui_title.cpp.obj e026b4b712cf9da4
|
||||
4901 21734 7621792026923538 CMakeFiles/ctai.dir/src/sui_base_ex.cpp.obj 476c94d1f2c8cfea
|
||||
4262 7998 7622710864828185 CMakeFiles/ctai.dir/src/ctai_parsestring.cpp.obj c7ba770f3578d195
|
||||
4058 8712 7620828272053173 CMakeFiles/ctai.dir/src/ctai_cmd.cpp.obj 80d6964d23a3e9c5
|
||||
4063 8329 7620828272105475 CMakeFiles/ctai.dir/src/ctai_tabbar.cpp.obj 41b68d110b3c0daf
|
||||
284 3644 7622668721969345 CMakeFiles/ctai.dir/src/ctai_parsestring.cpp.obj c7ba770f3578d195
|
||||
4466 16852 7622698141754299 CMakeFiles/ctai.dir/ctai_autogen/mocs_compilation.cpp.obj 696927afe9114740
|
||||
4533 17016 7622792483699237 CMakeFiles/ctai.dir/ctai_autogen/mocs_compilation.cpp.obj 696927afe9114740
|
||||
262 484 7622684576644682 qrc_res.cpp 9794859fafc6825
|
||||
218 7564 7621848927853957 CMakeFiles/ctai.dir/src/sui.cpp.obj e1630d781a04e855
|
||||
19 4465 7622698140013546 F:/SourceCode/ctai/build/ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
|
||||
16852 27251 7622698265624127 F:/SourceCode/ctai/release/ctai.exe 66379903cbdcd676
|
||||
22 4532 7622792482588033 F:/SourceCode/ctai/build/ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
|
||||
17016 26857 7622792608535519 F:/SourceCode/ctai/release/ctai.exe 66379903cbdcd676
|
||||
3987 7703 7621872533500869 CMakeFiles/ctai.dir/src/ctai_session_table.cpp.obj d0b22ffae77b23cf
|
||||
19 4465 7622698140013546 ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
|
||||
4714 23837 7621924268430069 CMakeFiles/ctai.dir/src/ctai_curl.cpp.obj b2496aab435c15c7
|
||||
19 4465 7622698140013546 ctai_autogen/timestamp da3870ebc94b983e
|
||||
4903 17025 7621792026943581 CMakeFiles/ctai.dir/src/sui_title.cpp.obj e026b4b712cf9da4
|
||||
4470 15668 7622698141798775 CMakeFiles/ctai.dir/src/ctai_session_info.cpp.obj 22d5a962360b4db1
|
||||
4468 15783 7622698141764061 CMakeFiles/ctai.dir/src/ctai.cpp.obj c7f0e07034d2e115
|
||||
3560 6938 7621113173344145 CMakeFiles/ctai.dir/src/ctai_switch_control.cpp.obj ddca150b42c8a71b
|
||||
487 3274 7622684576824662 CMakeFiles/ctai.dir/qrc_res.cpp.obj 9f74f1f5e59b5b50
|
||||
4475 15186 7622698141844310 CMakeFiles/ctai.dir/src/ctai_tabwidget.cpp.obj 6fa8a641137702e0
|
||||
4083 4223 7620828272305402 CMakeFiles/ctai.dir/sui.rc.obj e30df163c9cbe567
|
||||
4477 9789 7622698141864287 CMakeFiles/ctai.dir/src/ctai_textedit.cpp.obj 336256b01143e240
|
||||
3983 7575 7621872533460841 CMakeFiles/ctai.dir/src/ctai_session_docker.cpp.obj d8ac6cde8856dc5e
|
||||
19 4465 7622698140013546 F:/SourceCode/ctai/build/ctai_autogen/timestamp da3870ebc94b983e
|
||||
262 484 7622684576644682 F:/SourceCode/ctai/build/qrc_res.cpp 9794859fafc6825
|
||||
4075 7860 7620828272226167 CMakeFiles/ctai.dir/src/sui_sys_style.cpp.obj 3bdd07348bd84970
|
||||
4473 15157 7622698141824329 CMakeFiles/ctai.dir/src/ctai_session_widget.cpp.obj 578ff58396e1bb80
|
||||
4479 15893 7622698141889543 CMakeFiles/ctai.dir/src/main.cpp.obj 77280178abb968fc
|
||||
24 4716 7622699891296621 ctai_autogen/timestamp da3870ebc94b983e
|
||||
24 4716 7622699891296621 ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
|
||||
24 4716 7622699891296621 F:/SourceCode/ctai/build/ctai_autogen/timestamp da3870ebc94b983e
|
||||
24 4716 7622699891296621 F:/SourceCode/ctai/build/ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
|
||||
4732 10107 7622699892660075 CMakeFiles/ctai.dir/src/ctai_textedit.cpp.obj 336256b01143e240
|
||||
4730 15149 7622699892642691 CMakeFiles/ctai.dir/src/ctai_tabwidget.cpp.obj 6fa8a641137702e0
|
||||
4727 15177 7622699892607903 CMakeFiles/ctai.dir/src/ctai_session_widget.cpp.obj 578ff58396e1bb80
|
||||
4725 15532 7622699892590454 CMakeFiles/ctai.dir/src/ctai_session_info.cpp.obj 22d5a962360b4db1
|
||||
4722 15778 7622699892555151 CMakeFiles/ctai.dir/src/ctai.cpp.obj c7f0e07034d2e115
|
||||
4735 15783 7622699892692454 CMakeFiles/ctai.dir/src/main.cpp.obj 77280178abb968fc
|
||||
4718 16727 7622699892509755 CMakeFiles/ctai.dir/ctai_autogen/mocs_compilation.cpp.obj 696927afe9114740
|
||||
16727 27808 7622700012612487 F:/SourceCode/ctai/release/ctai.exe 66379903cbdcd676
|
||||
18 4445 7622704716145797 ctai_autogen/timestamp da3870ebc94b983e
|
||||
18 4445 7622704716145797 ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
|
||||
18 4445 7622704716145797 F:/SourceCode/ctai/build/ctai_autogen/timestamp da3870ebc94b983e
|
||||
18 4445 7622704716145797 F:/SourceCode/ctai/build/ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
|
||||
4449 8284 7622704717191341 CMakeFiles/ctai.dir/src/ctai_parsestring.cpp.obj c7ba770f3578d195
|
||||
4457 10034 7622704717272724 CMakeFiles/ctai.dir/src/ctai_textedit.cpp.obj 336256b01143e240
|
||||
4455 15233 7622704717243554 CMakeFiles/ctai.dir/src/ctai_tabwidget.cpp.obj 6fa8a641137702e0
|
||||
4453 15280 7622704717226160 CMakeFiles/ctai.dir/src/ctai_session_widget.cpp.obj 578ff58396e1bb80
|
||||
4451 15624 7622704717208770 CMakeFiles/ctai.dir/src/ctai_session_info.cpp.obj 22d5a962360b4db1
|
||||
4448 15925 7622704717173926 CMakeFiles/ctai.dir/src/ctai.cpp.obj c7f0e07034d2e115
|
||||
4460 15998 7622704717290310 CMakeFiles/ctai.dir/src/main.cpp.obj 77280178abb968fc
|
||||
4446 16946 7622704717153902 CMakeFiles/ctai.dir/ctai_autogen/mocs_compilation.cpp.obj 696927afe9114740
|
||||
16946 29381 7622704842161153 F:/SourceCode/ctai/release/ctai.exe 66379903cbdcd676
|
||||
16 4538 7622706866065806 ctai_autogen/timestamp da3870ebc94b983e
|
||||
16 4538 7622706866065806 ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
|
||||
16 4538 7622706866065806 F:/SourceCode/ctai/build/ctai_autogen/timestamp da3870ebc94b983e
|
||||
16 4538 7622706866065806 F:/SourceCode/ctai/build/ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
|
||||
4543 8334 7622706867227777 CMakeFiles/ctai.dir/src/ctai_parsestring.cpp.obj c7ba770f3578d195
|
||||
4552 10503 7622706867317536 CMakeFiles/ctai.dir/src/ctai_textedit.cpp.obj 336256b01143e240
|
||||
4548 15544 7622706867272586 CMakeFiles/ctai.dir/src/ctai_session_widget.cpp.obj 578ff58396e1bb80
|
||||
4550 15595 7622706867282713 CMakeFiles/ctai.dir/src/ctai_tabwidget.cpp.obj 6fa8a641137702e0
|
||||
4546 16025 7622706867245163 CMakeFiles/ctai.dir/src/ctai_session_info.cpp.obj 22d5a962360b4db1
|
||||
4555 16299 7622706867334933 CMakeFiles/ctai.dir/src/main.cpp.obj 77280178abb968fc
|
||||
4541 16307 7622706867192986 CMakeFiles/ctai.dir/src/ctai.cpp.obj c7f0e07034d2e115
|
||||
4538 17177 7622706867175491 CMakeFiles/ctai.dir/ctai_autogen/mocs_compilation.cpp.obj 696927afe9114740
|
||||
17177 29418 7622706993571004 F:/SourceCode/ctai/release/ctai.exe 66379903cbdcd676
|
||||
22 4532 7622792482588033 ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
|
||||
4380 24531 7622788521759624 CMakeFiles/ctai.dir/src/ctai_curl.cpp.obj b2496aab435c15c7
|
||||
22 4532 7622792482588033 ctai_autogen/timestamp da3870ebc94b983e
|
||||
19 263 7622792805669253 ctai_autogen/timestamp da3870ebc94b983e
|
||||
19 263 7622792805669253 ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
|
||||
19 263 7622792805669253 F:/SourceCode/ctai/build/ctai_autogen/timestamp da3870ebc94b983e
|
||||
19 263 7622792805669253 F:/SourceCode/ctai/build/ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
|
||||
263 4714 7622792808103021 CMakeFiles/ctai.dir/src/ctai_textedit.cpp.obj 336256b01143e240
|
||||
4714 16023 7622792852618072 F:/SourceCode/ctai/release/ctai.exe 66379903cbdcd676
|
||||
19 5083 7622793902703499 ctai_autogen/timestamp da3870ebc94b983e
|
||||
19 5083 7622793902703499 ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
|
||||
19 5083 7622793902703499 F:/SourceCode/ctai/build/ctai_autogen/timestamp da3870ebc94b983e
|
||||
19 5083 7622793902703499 F:/SourceCode/ctai/build/ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
|
||||
5097 11530 7622793904065442 CMakeFiles/ctai.dir/src/ctai_textedit.cpp.obj 336256b01143e240
|
||||
5093 16132 7622793904020196 CMakeFiles/ctai.dir/src/ctai_session_widget.cpp.obj 578ff58396e1bb80
|
||||
5095 16144 7622793904045430 CMakeFiles/ctai.dir/src/ctai_tabwidget.cpp.obj 6fa8a641137702e0
|
||||
5091 16527 7622793904010202 CMakeFiles/ctai.dir/src/ctai_session_info.cpp.obj 22d5a962360b4db1
|
||||
5087 16828 7622793903960268 CMakeFiles/ctai.dir/src/ctai.cpp.obj c7f0e07034d2e115
|
||||
5099 16962 7622793904085424 CMakeFiles/ctai.dir/src/main.cpp.obj 77280178abb968fc
|
||||
5084 17921 7622793903940220 CMakeFiles/ctai.dir/ctai_autogen/mocs_compilation.cpp.obj 696927afe9114740
|
||||
5089 25806 7622793903990218 CMakeFiles/ctai.dir/src/ctai_curl.cpp.obj b2496aab435c15c7
|
||||
25806 36248 7622794111164701 F:/SourceCode/ctai/release/ctai.exe 66379903cbdcd676
|
||||
25 268 7622794994002813 ctai_autogen/timestamp da3870ebc94b983e
|
||||
25 268 7622794994002813 ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
|
||||
25 268 7622794994002813 F:/SourceCode/ctai/build/ctai_autogen/timestamp da3870ebc94b983e
|
||||
25 268 7622794994002813 F:/SourceCode/ctai/build/ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
|
||||
269 4864 7622794996431948 CMakeFiles/ctai.dir/src/ctai_textedit.cpp.obj 336256b01143e240
|
||||
4864 16181 7622795042394233 F:/SourceCode/ctai/release/ctai.exe 66379903cbdcd676
|
||||
18 260 7622802232782276 ctai_autogen/timestamp da3870ebc94b983e
|
||||
18 260 7622802232782276 ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
|
||||
18 260 7622802232782276 F:/SourceCode/ctai/build/ctai_autogen/timestamp da3870ebc94b983e
|
||||
18 260 7622802232782276 F:/SourceCode/ctai/build/ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
|
||||
261 4849 7622802235215488 CMakeFiles/ctai.dir/src/ctai_textedit.cpp.obj 336256b01143e240
|
||||
4849 14942 7622802281095088 F:/SourceCode/ctai/release/ctai.exe 66379903cbdcd676
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -418,6 +418,12 @@
|
||||
"UVLADIE3JM/moc_ctai.cpp",
|
||||
null
|
||||
],
|
||||
[
|
||||
"F:/SourceCode/ctai/src/ctai_base.h",
|
||||
"MU",
|
||||
"UVLADIE3JM/moc_ctai_base.cpp",
|
||||
null
|
||||
],
|
||||
[
|
||||
"F:/SourceCode/ctai/src/ctai_cmd.h",
|
||||
"MU",
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -36,7 +36,6 @@ F:/SourceCode/ctai/build/ctai_autogen/UVLADIE3JM/moc_ctai.cpp: F:/SourceCode/cta
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QObject \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QProcess \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QRect \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QRegularExpression \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QSettings \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QSize \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QSizeF \
|
||||
@ -45,7 +44,6 @@ F:/SourceCode/ctai/build/ctai_autogen/UVLADIE3JM/moc_ctai.cpp: F:/SourceCode/cta
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QThread \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QTimer \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QVariant \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QVector \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QtCore \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QtCoreDepends \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/q20algorithm.h \
|
||||
@ -311,10 +309,8 @@ F:/SourceCode/ctai/build/ctai_autogen/UVLADIE3JM/moc_ctai.cpp: F:/SourceCode/cta
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/qxpfunctional.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/qxptype_traits.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/qyieldcpu.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QAbstractTextDocumentLayout \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QAction \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QActionGroup \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QClipboard \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QContextMenuEvent \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QDesktopServices \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QFontDatabase \
|
||||
@ -328,8 +324,6 @@ F:/SourceCode/ctai/build/ctai_autogen/UVLADIE3JM/moc_ctai.cpp: F:/SourceCode/cta
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QPainterPath \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QStyleHints \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QSurfaceFormat \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QTextBlock \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QTextDocument \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QTransform \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QWindow \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QtGui \
|
||||
@ -1066,9 +1060,9 @@ F:/SourceCode/ctai/build/ctai_autogen/UVLADIE3JM/moc_ctai.cpp: F:/SourceCode/cta
|
||||
D:/Dev/msys64/mingw64/lib/gcc/x86_64-w64-mingw32/14.1.0/include/xtestintrin.h \
|
||||
F:/SourceCode/ctai/3rdparty/json/json.hpp \
|
||||
F:/SourceCode/ctai/src/common.h \
|
||||
F:/SourceCode/ctai/src/ctai_base.h \
|
||||
F:/SourceCode/ctai/src/ctai_cmd.h \
|
||||
F:/SourceCode/ctai/src/ctai_curl.h \
|
||||
F:/SourceCode/ctai/src/ctai_parsestring.h \
|
||||
F:/SourceCode/ctai/src/ctai_session_info.h \
|
||||
F:/SourceCode/ctai/src/ctai_session_table.h \
|
||||
F:/SourceCode/ctai/src/ctai_session_widget.h \
|
||||
|
@ -485,6 +485,7 @@ F:/SourceCode/ctai/build/ctai_autogen/UVLADIE3JM/moc_ctai_curl.cpp: F:/SourceCod
|
||||
D:/Dev/msys64/mingw64/include/c++/14.1.0/iomanip \
|
||||
D:/Dev/msys64/mingw64/include/c++/14.1.0/ios \
|
||||
D:/Dev/msys64/mingw64/include/c++/14.1.0/iosfwd \
|
||||
D:/Dev/msys64/mingw64/include/c++/14.1.0/iostream \
|
||||
D:/Dev/msys64/mingw64/include/c++/14.1.0/istream \
|
||||
D:/Dev/msys64/mingw64/include/c++/14.1.0/iterator \
|
||||
D:/Dev/msys64/mingw64/include/c++/14.1.0/limits \
|
||||
@ -824,6 +825,7 @@ F:/SourceCode/ctai/build/ctai_autogen/UVLADIE3JM/moc_ctai_curl.cpp: F:/SourceCod
|
||||
D:/Dev/msys64/mingw64/lib/gcc/x86_64-w64-mingw32/14.1.0/include/xsavesintrin.h \
|
||||
D:/Dev/msys64/mingw64/lib/gcc/x86_64-w64-mingw32/14.1.0/include/xtestintrin.h \
|
||||
F:/SourceCode/ctai/3rdparty/json/json.hpp \
|
||||
F:/SourceCode/ctai/src/ctai_base.h \
|
||||
F:/SourceCode/vcpkg/installed/x64-mingw-static/include/curl/curl.h \
|
||||
F:/SourceCode/vcpkg/installed/x64-mingw-static/include/curl/curlver.h \
|
||||
F:/SourceCode/vcpkg/installed/x64-mingw-static/include/curl/easy.h \
|
||||
|
@ -30,14 +30,12 @@ F:/SourceCode/ctai/build/ctai_autogen/UVLADIE3JM/moc_ctai_session_widget.cpp: F:
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QMutex \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QObject \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QRect \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QRegularExpression \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QSize \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QSizeF \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QString \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QStringList \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QTimer \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QVariant \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QVector \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QtCore \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QtCoreDepends \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/q20algorithm.h \
|
||||
@ -303,28 +301,20 @@ F:/SourceCode/ctai/build/ctai_autogen/UVLADIE3JM/moc_ctai_session_widget.cpp: F:
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/qxpfunctional.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/qxptype_traits.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/qyieldcpu.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QAbstractTextDocumentLayout \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QClipboard \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QMouseEvent \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QPainter \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QPainterPath \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QTextBlock \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QTextDocument \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QTransform \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qabstracttextdocumentlayout.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qaction.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qbitmap.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qbrush.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qclipboard.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qcolor.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qcursor.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qevent.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qeventpoint.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qfont.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qfontdatabase.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qfontinfo.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qfontmetrics.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qglyphrun.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qguiapplication.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qguiapplication_platform.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qicon.h \
|
||||
@ -342,7 +332,6 @@ F:/SourceCode/ctai/build/ctai_autogen/UVLADIE3JM/moc_ctai_session_widget.cpp: F:
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qpixmap.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qpointingdevice.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qpolygon.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qrawfont.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qregion.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qrgb.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qrgba64.h \
|
||||
@ -351,8 +340,6 @@ F:/SourceCode/ctai/build/ctai_autogen/UVLADIE3JM/moc_ctai_session_widget.cpp: F:
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qtextcursor.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qtextdocument.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qtextformat.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qtextlayout.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qtextobject.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qtextoption.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qtgui-config.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qtguiexports.h \
|
||||
@ -363,8 +350,6 @@ F:/SourceCode/ctai/build/ctai_autogen/UVLADIE3JM/moc_ctai_session_widget.cpp: F:
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qvectornd.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qwindowdefs.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qwindowdefs_win.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtWidgets/QApplication \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtWidgets/QFileDialog \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtWidgets/QGroupBox \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtWidgets/QHBoxLayout \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtWidgets/QLabel \
|
||||
@ -383,11 +368,9 @@ F:/SourceCode/ctai/build/ctai_autogen/UVLADIE3JM/moc_ctai_session_widget.cpp: F:
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtWidgets/qabstractscrollarea.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtWidgets/qabstractslider.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtWidgets/qabstractspinbox.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtWidgets/qapplication.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtWidgets/qboxlayout.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtWidgets/qdialog.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtWidgets/qdialogbuttonbox.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtWidgets/qfiledialog.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtWidgets/qframe.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtWidgets/qgridlayout.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtWidgets/qgroupbox.h \
|
||||
@ -601,6 +584,7 @@ F:/SourceCode/ctai/build/ctai_autogen/UVLADIE3JM/moc_ctai_session_widget.cpp: F:
|
||||
D:/Dev/msys64/mingw64/include/c++/14.1.0/iomanip \
|
||||
D:/Dev/msys64/mingw64/include/c++/14.1.0/ios \
|
||||
D:/Dev/msys64/mingw64/include/c++/14.1.0/iosfwd \
|
||||
D:/Dev/msys64/mingw64/include/c++/14.1.0/iostream \
|
||||
D:/Dev/msys64/mingw64/include/c++/14.1.0/istream \
|
||||
D:/Dev/msys64/mingw64/include/c++/14.1.0/iterator \
|
||||
D:/Dev/msys64/mingw64/include/c++/14.1.0/limits \
|
||||
@ -940,8 +924,8 @@ F:/SourceCode/ctai/build/ctai_autogen/UVLADIE3JM/moc_ctai_session_widget.cpp: F:
|
||||
D:/Dev/msys64/mingw64/lib/gcc/x86_64-w64-mingw32/14.1.0/include/xsavesintrin.h \
|
||||
D:/Dev/msys64/mingw64/lib/gcc/x86_64-w64-mingw32/14.1.0/include/xtestintrin.h \
|
||||
F:/SourceCode/ctai/3rdparty/json/json.hpp \
|
||||
F:/SourceCode/ctai/src/ctai_base.h \
|
||||
F:/SourceCode/ctai/src/ctai_curl.h \
|
||||
F:/SourceCode/ctai/src/ctai_parsestring.h \
|
||||
F:/SourceCode/ctai/src/ctai_session_info.h \
|
||||
F:/SourceCode/ctai/src/ctai_session_table.h \
|
||||
F:/SourceCode/ctai/src/ctai_switch_control.h \
|
||||
|
@ -31,14 +31,12 @@ F:/SourceCode/ctai/build/ctai_autogen/UVLADIE3JM/moc_ctai_tabwidget.cpp: F:/Sour
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QObject \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QProcess \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QRect \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QRegularExpression \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QSize \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QSizeF \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QString \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QStringList \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QTimer \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QVariant \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QVector \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QtCore \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QtCoreDepends \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/q20algorithm.h \
|
||||
@ -304,20 +302,15 @@ F:/SourceCode/ctai/build/ctai_autogen/UVLADIE3JM/moc_ctai_tabwidget.cpp: F:/Sour
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/qxpfunctional.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/qxptype_traits.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/qyieldcpu.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QAbstractTextDocumentLayout \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QClipboard \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QMouseEvent \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QPaintEvent \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QPainter \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QPainterPath \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QTextBlock \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QTextDocument \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QTransform \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qabstracttextdocumentlayout.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qaction.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qbitmap.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qbrush.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qclipboard.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qcolor.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qcursor.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qevent.h \
|
||||
@ -354,7 +347,6 @@ F:/SourceCode/ctai/build/ctai_autogen/UVLADIE3JM/moc_ctai_tabwidget.cpp: F:/Sour
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qtextdocument.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qtextformat.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qtextlayout.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qtextobject.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qtextoption.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qtgui-config.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qtguiexports.h \
|
||||
@ -365,8 +357,6 @@ F:/SourceCode/ctai/build/ctai_autogen/UVLADIE3JM/moc_ctai_tabwidget.cpp: F:/Sour
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qvectornd.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qwindowdefs.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qwindowdefs_win.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtWidgets/QApplication \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtWidgets/QFileDialog \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtWidgets/QGroupBox \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtWidgets/QHBoxLayout \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtWidgets/QLabel \
|
||||
@ -392,11 +382,9 @@ F:/SourceCode/ctai/build/ctai_autogen/UVLADIE3JM/moc_ctai_tabwidget.cpp: F:/Sour
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtWidgets/qabstractscrollarea.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtWidgets/qabstractslider.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtWidgets/qabstractspinbox.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtWidgets/qapplication.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtWidgets/qboxlayout.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtWidgets/qdialog.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtWidgets/qdialogbuttonbox.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtWidgets/qfiledialog.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtWidgets/qframe.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtWidgets/qgridlayout.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtWidgets/qgroupbox.h \
|
||||
@ -613,6 +601,7 @@ F:/SourceCode/ctai/build/ctai_autogen/UVLADIE3JM/moc_ctai_tabwidget.cpp: F:/Sour
|
||||
D:/Dev/msys64/mingw64/include/c++/14.1.0/iomanip \
|
||||
D:/Dev/msys64/mingw64/include/c++/14.1.0/ios \
|
||||
D:/Dev/msys64/mingw64/include/c++/14.1.0/iosfwd \
|
||||
D:/Dev/msys64/mingw64/include/c++/14.1.0/iostream \
|
||||
D:/Dev/msys64/mingw64/include/c++/14.1.0/istream \
|
||||
D:/Dev/msys64/mingw64/include/c++/14.1.0/iterator \
|
||||
D:/Dev/msys64/mingw64/include/c++/14.1.0/limits \
|
||||
@ -952,9 +941,9 @@ F:/SourceCode/ctai/build/ctai_autogen/UVLADIE3JM/moc_ctai_tabwidget.cpp: F:/Sour
|
||||
D:/Dev/msys64/mingw64/lib/gcc/x86_64-w64-mingw32/14.1.0/include/xsavesintrin.h \
|
||||
D:/Dev/msys64/mingw64/lib/gcc/x86_64-w64-mingw32/14.1.0/include/xtestintrin.h \
|
||||
F:/SourceCode/ctai/3rdparty/json/json.hpp \
|
||||
F:/SourceCode/ctai/src/ctai_base.h \
|
||||
F:/SourceCode/ctai/src/ctai_cmd.h \
|
||||
F:/SourceCode/ctai/src/ctai_curl.h \
|
||||
F:/SourceCode/ctai/src/ctai_parsestring.h \
|
||||
F:/SourceCode/ctai/src/ctai_session_info.h \
|
||||
F:/SourceCode/ctai/src/ctai_session_table.h \
|
||||
F:/SourceCode/ctai/src/ctai_session_widget.h \
|
||||
|
@ -35,7 +35,6 @@ ctai_autogen/timestamp: \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QObject \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QProcess \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QRect \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QRegularExpression \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QSettings \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QSize \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QSizeF \
|
||||
@ -44,7 +43,6 @@ ctai_autogen/timestamp: \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QThread \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QTimer \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QVariant \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QVector \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QtCore \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QtCoreDepends \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/q20algorithm.h \
|
||||
@ -310,10 +308,8 @@ ctai_autogen/timestamp: \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/qxpfunctional.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/qxptype_traits.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/qyieldcpu.h \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QAbstractTextDocumentLayout \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QAction \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QActionGroup \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QClipboard \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QCloseEvent \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QContextMenuEvent \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QDesktopServices \
|
||||
@ -328,8 +324,6 @@ ctai_autogen/timestamp: \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QPainterPath \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QStyleHints \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QSurfaceFormat \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QTextBlock \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QTextDocument \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QTransform \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QWindow \
|
||||
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QtGui \
|
||||
@ -1383,6 +1377,7 @@ ctai_autogen/timestamp: \
|
||||
F:/SourceCode/ctai/src/common.h \
|
||||
F:/SourceCode/ctai/src/ctai.cpp \
|
||||
F:/SourceCode/ctai/src/ctai.h \
|
||||
F:/SourceCode/ctai/src/ctai_base.h \
|
||||
F:/SourceCode/ctai/src/ctai_cmd.cpp \
|
||||
F:/SourceCode/ctai/src/ctai_cmd.h \
|
||||
F:/SourceCode/ctai/src/ctai_curl.cpp \
|
||||
|
BIN
release/ctai.exe
BIN
release/ctai.exe
Binary file not shown.
45
src/ctai_base.h
Normal file
45
src/ctai_base.h
Normal file
@ -0,0 +1,45 @@
|
||||
#ifndef CTAI_BASE_H
|
||||
#define CTAI_BASE_H
|
||||
|
||||
#include <iostream>
|
||||
typedef struct curl_opts
|
||||
{
|
||||
bool ssl_state = true;
|
||||
int timeout = 120;
|
||||
bool followlocation = false;
|
||||
bool keepalive = true;
|
||||
bool verbose = true;
|
||||
} curl_opts;
|
||||
|
||||
typedef struct model_data{
|
||||
std::string api_url = "https://api.deepseek.com/chat/completions";
|
||||
std::string api_key = "Authorization: Bearer sk-7e6932ed45674c389dea1cd3481e0ec2";
|
||||
std::string user_model = "deepseek-chat";
|
||||
//std::string api_url="https://api.siliconflow.cn/v1/chat/completions";
|
||||
//std::string api_key="Authorization: Bearer sk-oiphigpzqtmkkcoucyakrfevcvndroywvxhprvscjqhdykdb";
|
||||
//std::string user_model = "deepseek-ai/DeepSeek-V3";
|
||||
std::string send_content_header = "Content-Type: application/json";
|
||||
std::string send_accept_header = "Accept: application/json";
|
||||
std::string send_user_data;
|
||||
std::string postback_model_data;
|
||||
bool postback_stream_mode = false;
|
||||
std::string postback_time;
|
||||
std::string postback_server_model;
|
||||
std::string postback_finish_reason;
|
||||
std::string postback_send_id;
|
||||
std::string postback_system_fingerprint;
|
||||
// 提示消耗tokens
|
||||
int postback_prompt_tokens;
|
||||
// 生成消耗tokens
|
||||
int postback_completion_tokens;
|
||||
// 总消耗tokens
|
||||
int postback_total_tokens;
|
||||
// 提示命中缓存tokens
|
||||
int postback_prompt_cache_hit_tokens;
|
||||
// 生成未命中缓存tokens
|
||||
int postback_prompt_cache_miss_tokens;
|
||||
//请求体,不可采用临时变量
|
||||
std::string request_body;
|
||||
}model_data;
|
||||
|
||||
#endif // CTAI_BASE_H
|
@ -140,7 +140,12 @@ void ctai_curl::send_stream(model_data &data, std::string response_data)
|
||||
{
|
||||
for (auto str : _info_data)
|
||||
{
|
||||
if (str != "" && str != "[DONE]")
|
||||
if(str == "[DONE]"){
|
||||
data.postback_model_data = str;
|
||||
emit send_post_out_data(data);
|
||||
return;
|
||||
}
|
||||
if (str != "")
|
||||
{
|
||||
json response = json::parse(str);
|
||||
if (response.contains("choices") && !response["choices"].empty())
|
||||
@ -152,6 +157,16 @@ void ctai_curl::send_stream(model_data &data, std::string response_data)
|
||||
{
|
||||
data.postback_time = send_timestamp_to_time(response["created"]);
|
||||
}
|
||||
// 任务ID
|
||||
if (response.contains("id") && !response["id"].empty())
|
||||
{
|
||||
data.postback_send_id = response["id"];
|
||||
}
|
||||
// 任务指纹
|
||||
if (response.contains("system_fingerprint") && !response["system_fingerprint"].empty())
|
||||
{
|
||||
data.postback_system_fingerprint = response["system_fingerprint"];
|
||||
}
|
||||
emit send_post_out_data(data);
|
||||
}
|
||||
qDebug() << "send_stream:" << str;
|
||||
@ -171,6 +186,16 @@ void ctai_curl::send_not_stream(model_data &data, std::string response_data)
|
||||
{
|
||||
data.postback_time = send_timestamp_to_time(response["created"]);
|
||||
}
|
||||
// 任务ID
|
||||
if (response.contains("id") && !response["id"].empty())
|
||||
{
|
||||
data.postback_send_id = response["id"];
|
||||
}
|
||||
// 任务指纹
|
||||
if (response.contains("system_fingerprint") && !response["system_fingerprint"].empty())
|
||||
{
|
||||
data.postback_system_fingerprint = response["system_fingerprint"];
|
||||
}
|
||||
// 生成模型
|
||||
if (response.contains("model") && !response["model"].empty())
|
||||
{
|
||||
@ -230,13 +255,14 @@ void ctai_curl::set_send_post_option()
|
||||
curl_easy_setopt(m_curl, CURLOPT_POSTFIELDSIZE, c_data.request_body.length());
|
||||
curl_easy_setopt(m_curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_2_0);
|
||||
}
|
||||
void ctai_curl::set_send_post_opts_reset(){
|
||||
void ctai_curl::set_send_post_opts_reset()
|
||||
{
|
||||
curl_easy_reset(m_curl);
|
||||
m_headers = nullptr;
|
||||
curl_easy_setopt(m_curl, CURLOPT_NOSIGNAL, 1L);
|
||||
curl_easy_setopt(m_curl, CURLOPT_POSTFIELDS, NULL);
|
||||
curl_easy_setopt(m_curl, CURLOPT_POST, 0L);
|
||||
curl_easy_setopt(m_curl, CURLOPT_URL,NULL);
|
||||
curl_easy_setopt(m_curl, CURLOPT_URL, NULL);
|
||||
curl_easy_setopt(m_curl, CURLOPT_POSTFIELDSIZE, 0);
|
||||
curl_easy_setopt(m_curl, CURLOPT_HTTPHEADER, NULL);
|
||||
}
|
||||
@ -246,11 +272,11 @@ void ctai_curl::curl_init()
|
||||
m_curl = curl_easy_init();
|
||||
m_error = CURLE_QUOTE_ERROR;
|
||||
}
|
||||
void ctai_curl::send_post_response(model_data m_data,curl_opts opts)
|
||||
void ctai_curl::send_post_response(model_data m_data, curl_opts opts)
|
||||
{
|
||||
c_data=m_data;
|
||||
c_opts=opts;
|
||||
c_data.request_body=send_send_body(c_data);
|
||||
c_data = m_data;
|
||||
c_opts = opts;
|
||||
c_data.request_body = send_send_body(c_data);
|
||||
std::string response_data;
|
||||
call_back_context ctx;
|
||||
ctx.m_data = c_data;
|
||||
|
@ -9,46 +9,11 @@
|
||||
#include "curl/easy.h"
|
||||
#include <QDateTime>
|
||||
#include "3rdparty/json/json.hpp"
|
||||
#include "ctai_base.h"
|
||||
#include <regex>
|
||||
using json = nlohmann::json;
|
||||
|
||||
typedef struct curl_opts
|
||||
{
|
||||
bool ssl_state = true;
|
||||
int timeout = 120;
|
||||
bool followlocation = false;
|
||||
bool keepalive = true;
|
||||
bool verbose = true;
|
||||
} curl_opts;
|
||||
|
||||
typedef struct model_data{
|
||||
std::string api_url = "https://api.deepseek.com/chat/completions";
|
||||
std::string api_key = "Authorization: Bearer sk-7e6932ed45674c389dea1cd3481e0ec2";
|
||||
std::string user_model = "deepseek-chat";
|
||||
//std::string api_url="https://api.siliconflow.cn/v1/chat/completions";
|
||||
//std::string api_key="Authorization: Bearer sk-oiphigpzqtmkkcoucyakrfevcvndroywvxhprvscjqhdykdb";
|
||||
//std::string user_model = "deepseek-ai/DeepSeek-V3";
|
||||
std::string send_content_header = "Content-Type: application/json";
|
||||
std::string send_accept_header = "Accept: application/json";
|
||||
std::string send_user_data;
|
||||
std::string postback_model_data;
|
||||
bool postback_stream_mode = true;
|
||||
std::string postback_time;
|
||||
std::string postback_server_model;
|
||||
std::string postback_finish_reason;
|
||||
// 提示消耗tokens
|
||||
int postback_prompt_tokens;
|
||||
// 生成消耗tokens
|
||||
int postback_completion_tokens;
|
||||
// 总消耗tokens
|
||||
int postback_total_tokens;
|
||||
// 提示命中缓存tokens
|
||||
int postback_prompt_cache_hit_tokens;
|
||||
// 生成未命中缓存tokens
|
||||
int postback_prompt_cache_miss_tokens;
|
||||
//请求体,不可采用临时变量
|
||||
std::string request_body;
|
||||
}model_data;
|
||||
|
||||
class ctai_curl : public QObject
|
||||
{
|
||||
|
@ -26,17 +26,6 @@ void ctai_session_info::init_layout()
|
||||
void ctai_session_info::init_sub_layout()
|
||||
{
|
||||
m_session_systeam_info = new ctai_textedit();
|
||||
//测试
|
||||
// std::string filepath=QDir::currentPath().toStdString()+"/README.md";
|
||||
// QFile file(QString::fromStdString(filepath));
|
||||
// if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
|
||||
// {
|
||||
// qWarning() << "无法打开文件:" << filepath;
|
||||
// }
|
||||
// QTextStream in(&file);
|
||||
// QString x=in.readAll();
|
||||
// m_session_systeam_info->appendMessage(x);
|
||||
///
|
||||
m_session_systeam_info_layout = new QVBoxLayout();
|
||||
m_session_systeam_info->setReadOnly(true);
|
||||
m_session_systeam_info_layout->addWidget(m_session_systeam_info);
|
||||
@ -123,20 +112,18 @@ void ctai_session_info::ctai_session_postback_info(model_data resp_data)
|
||||
{
|
||||
if (!resp_data.postback_stream_mode)
|
||||
{
|
||||
m_session_systeam_info->appendMessage(QString::fromStdString(resp_data.postback_time));
|
||||
m_session_systeam_info->appendMessage(QString::fromStdString(resp_data.postback_model_data));
|
||||
m_session_systeam_info->appendMessage(resp_data);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (resp_data.postback_time != current_info_time)
|
||||
{
|
||||
current_info_time = resp_data.postback_time;
|
||||
m_session_systeam_info->appendMessage(QString::fromStdString(resp_data.postback_time));
|
||||
m_session_systeam_info->appendMessage(QString::fromStdString(resp_data.postback_model_data));
|
||||
if(resp_data.postback_time!=current_info_time){
|
||||
current_info_time=resp_data.postback_time;
|
||||
m_session_systeam_info->startStreamingMessage(resp_data);
|
||||
}else{
|
||||
m_session_systeam_info->appendStreamContent(resp_data);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_session_systeam_info->insertPlainText(QString::fromStdString(resp_data.postback_model_data));
|
||||
if(resp_data.postback_model_data=="[DONE]"){
|
||||
m_session_systeam_info->finishStreamingMessage();
|
||||
}
|
||||
}
|
||||
btn_disable_enable(true);
|
||||
@ -150,7 +137,7 @@ void ctai_session_info::ctai_session_set_steam_mode(bool state)
|
||||
{
|
||||
qDebug() << "steam mode:" << state;
|
||||
m_stream_switch->setToggle(state);
|
||||
user_model_data.postback_stream_mode = state;
|
||||
//user_model_data.postback_stream_mode = state;
|
||||
}
|
||||
void ctai_session_info::ctai_session_user_sending()
|
||||
{
|
||||
|
@ -1,7 +1,315 @@
|
||||
#include "ctai_textedit.h"
|
||||
#include <QVBoxLayout>
|
||||
#include <QHBoxLayout>
|
||||
#include <QClipboard>
|
||||
#include <QApplication>
|
||||
#include <QFileDialog>
|
||||
#include <QTextStream>
|
||||
#include <QStringEncoder>
|
||||
|
||||
ctai_textedit::ctai_textedit(QWidget *parent)
|
||||
: QTextBrowser(parent)
|
||||
{
|
||||
|
||||
setOpenLinks(false);
|
||||
setOpenExternalLinks(false);
|
||||
document()->setDefaultStyleSheet(
|
||||
"div.message { margin: 5px; padding: 5px; border: 1px solid #ccc; }"
|
||||
"div.header { color: #666; font-size: 0.9em; }"
|
||||
"div.separator { border-bottom: 1px solid #ccc; margin: 5px 0; }"
|
||||
"div.controls { margin-top: 5px; }"
|
||||
"div.message-separator { border-bottom: 2px solid #eee; margin: 15px 0; }" // 新增消息分割线样式
|
||||
);
|
||||
}
|
||||
|
||||
void ctai_textedit::appendMessage(const model_data& content)
|
||||
{
|
||||
QString messageId = QString::fromStdString(content.postback_send_id);
|
||||
QString messageFp = QString::fromStdString(content.postback_system_fingerprint);
|
||||
MessageItem item;
|
||||
item.messageId = messageId;
|
||||
item.messageFp = messageFp;
|
||||
item.prompts_tkoens=QString::fromStdString(std::to_string(content.postback_prompt_tokens));
|
||||
item.completion_tokens=QString::fromStdString(std::to_string(content.postback_completion_tokens));
|
||||
item.total_tokens=QString::fromStdString(std::to_string(content.postback_total_tokens));
|
||||
item.cache_hit_tokens=QString::fromStdString(std::to_string(content.postback_prompt_cache_hit_tokens));
|
||||
item.cache_miss_tokens=QString::fromStdString(std::to_string(content.postback_prompt_cache_miss_tokens));
|
||||
item.timestamp = QString::fromStdString(content.postback_time);
|
||||
item.content = QString::fromStdString(content.postback_model_data);
|
||||
item.isCollapsed = false;
|
||||
|
||||
messages[messageId] = item;
|
||||
createMessageControls(messageId);
|
||||
messageDisplay(messageId);
|
||||
}
|
||||
|
||||
void ctai_textedit::messageDisplay(const QString& messageId)
|
||||
{
|
||||
if (!messages.contains(messageId)) return;
|
||||
|
||||
const MessageItem& item = messages[messageId];
|
||||
QString html = QString(
|
||||
"<div class='message' id='%1'>"
|
||||
"<div class='header'>ID:%1 | FP:%2 | Time:%3</div>"
|
||||
"<div class='content'>%4</div>"
|
||||
"</div>"
|
||||
"<div class='message-separator'></div>"
|
||||
"<div style='color: #666; font-size: 0.8em; text-align: center;'>"
|
||||
"prompts tkoens: %5 | completion tokens: %6 | total tokens: %7 | cache hit tokens: %8 | cache miss tokens: %9"
|
||||
"</div>"
|
||||
"<div class='message-separator'></div>"
|
||||
).arg(item.messageId)
|
||||
.arg(item.messageFp)
|
||||
.arg(item.timestamp)
|
||||
.arg(item.isCollapsed ? "..." : item.content)
|
||||
.arg(item.prompts_tkoens)
|
||||
.arg(item.completion_tokens)
|
||||
.arg(item.total_tokens)
|
||||
.arg(item.cache_hit_tokens)
|
||||
.arg(item.cache_miss_tokens);
|
||||
|
||||
// 清空并重新显示
|
||||
clear();
|
||||
QTextCursor cursor = textCursor();
|
||||
cursor.movePosition(QTextCursor::End);
|
||||
cursor.insertHtml(html);
|
||||
|
||||
// 创建并显示控制按钮
|
||||
createMessageControls(messageId);
|
||||
|
||||
// 保持滚动到底部
|
||||
verticalScrollBar()->setValue(verticalScrollBar()->maximum());
|
||||
}
|
||||
|
||||
void ctai_textedit::startStreamingMessage(const model_data& content)
|
||||
{
|
||||
QString messageId = QString::fromStdString(content.postback_send_id);
|
||||
QString messageFp = QString::fromStdString(content.postback_system_fingerprint);
|
||||
currentStreamingId = messageId;
|
||||
MessageItem item;
|
||||
item.messageId = messageId;
|
||||
item.messageFp = messageFp;
|
||||
item.prompts_tkoens=QString::fromStdString(std::to_string(content.postback_prompt_tokens));
|
||||
item.completion_tokens=QString::fromStdString(std::to_string(content.postback_completion_tokens));
|
||||
item.total_tokens=QString::fromStdString(std::to_string(content.postback_total_tokens));
|
||||
item.cache_hit_tokens=QString::fromStdString(std::to_string(content.postback_prompt_cache_hit_tokens));
|
||||
item.cache_miss_tokens=QString::fromStdString(std::to_string(content.postback_prompt_cache_miss_tokens));
|
||||
item.timestamp = QString::fromStdString(content.postback_time);
|
||||
item.content = ""; // 初始化为空
|
||||
item.isCollapsed = false;
|
||||
|
||||
messages[messageId] = item;
|
||||
// 显示初始框架
|
||||
streamMessageDisplay(messageId);
|
||||
}
|
||||
|
||||
void ctai_textedit::appendStreamContent(const model_data& content)
|
||||
{
|
||||
if (!currentStreamingId.isEmpty()) {
|
||||
// 追加内容
|
||||
messages[currentStreamingId].content += QString::fromStdString(content.postback_model_data);
|
||||
|
||||
// 只更新内容区域
|
||||
QTextCursor cursor = textCursor();
|
||||
cursor.movePosition(QTextCursor::End);
|
||||
cursor.movePosition(QTextCursor::StartOfBlock);
|
||||
cursor.movePosition(QTextCursor::EndOfBlock, QTextCursor::KeepAnchor);
|
||||
|
||||
const MessageItem& item = messages[currentStreamingId];
|
||||
QString html = QString("<div class='content'>%1</div>")
|
||||
.arg(item.isCollapsed ? "..." : item.content);
|
||||
|
||||
cursor.insertHtml(html);
|
||||
cursor.movePosition(QTextCursor::End);
|
||||
|
||||
// 保持滚动到底部
|
||||
verticalScrollBar()->setValue(verticalScrollBar()->maximum());
|
||||
}
|
||||
}
|
||||
|
||||
void ctai_textedit::finishStreamingMessage()
|
||||
{
|
||||
if (!currentStreamingId.isEmpty()) {
|
||||
// 先更新消息内容和控制按钮
|
||||
createMessageControls(currentStreamingId);
|
||||
|
||||
// 获取当前消息项
|
||||
const MessageItem& item = messages[currentStreamingId];
|
||||
|
||||
// 构建 tokens 信息的 HTML
|
||||
QString tokensHtml = QString(
|
||||
"<div class='message-separator'></div>"
|
||||
"<div style='color: #666; font-size: 0.8em; text-align: center;'>"
|
||||
"prompts tkoens: %1 | completion tokens: %2 | total tokens: %3 | cache hit tokens: %4 | cache miss tokens: %5"
|
||||
"</div>"
|
||||
"<div class='message-separator'></div>"
|
||||
"<div class='controls'></div>"
|
||||
).arg(item.prompts_tkoens)
|
||||
.arg(item.completion_tokens)
|
||||
.arg(item.total_tokens)
|
||||
.arg(item.cache_hit_tokens)
|
||||
.arg(item.cache_miss_tokens);
|
||||
|
||||
// 插入 tokens 信息
|
||||
QTextCursor cursor = textCursor();
|
||||
cursor.movePosition(QTextCursor::End);
|
||||
cursor.insertHtml(tokensHtml);
|
||||
|
||||
// 清除当前流式输出标识
|
||||
currentStreamingId.clear();
|
||||
|
||||
// 保持滚动到底部
|
||||
verticalScrollBar()->setValue(verticalScrollBar()->maximum());
|
||||
}
|
||||
}
|
||||
void ctai_textedit::streamMessageDisplay(const QString& messageId)
|
||||
{
|
||||
if (!messages.contains(messageId)) return;
|
||||
|
||||
const MessageItem& item = messages[messageId];
|
||||
QString html = QString(
|
||||
"<div class='message' id='%1'>"
|
||||
"<div class='header'>ID:%1 | FP:%2 | Time:%3</div>"
|
||||
"<div class='content'>%4</div>"
|
||||
"</div>"
|
||||
).arg(item.messageId)
|
||||
.arg(item.messageFp)
|
||||
.arg(item.timestamp)
|
||||
.arg(item.isCollapsed ? "..." : item.content);
|
||||
|
||||
// 清空并重新显示
|
||||
clear();
|
||||
QTextCursor cursor = textCursor();
|
||||
cursor.movePosition(QTextCursor::End);
|
||||
cursor.insertHtml(html);
|
||||
}
|
||||
|
||||
void ctai_textedit::createMessageControls(const QString& messageId)
|
||||
{
|
||||
// 删除已存在的控件
|
||||
if (messageControls.contains(messageId)) {
|
||||
delete messageControls[messageId];
|
||||
messageControls.remove(messageId);
|
||||
}
|
||||
|
||||
QWidget* controlsWidget = new QWidget(this);
|
||||
QHBoxLayout* layout = new QHBoxLayout(controlsWidget);
|
||||
layout->setContentsMargins(5, 0, 5, 0); // 设置边距
|
||||
|
||||
QPushButton* deleteBtn = new QPushButton(tr("删除"), controlsWidget);
|
||||
QPushButton* copyBtn = new QPushButton(tr("复制"), controlsWidget);
|
||||
QPushButton* saveBtn = new QPushButton(tr("另存"), controlsWidget);
|
||||
QPushButton* collapseBtn = new QPushButton(tr("折叠"), controlsWidget);
|
||||
|
||||
// 设置按钮样式
|
||||
QString btnStyle = "QPushButton { padding: 2px 10px; margin: 0 5px; }";
|
||||
deleteBtn->setStyleSheet(btnStyle);
|
||||
copyBtn->setStyleSheet(btnStyle);
|
||||
saveBtn->setStyleSheet(btnStyle);
|
||||
collapseBtn->setStyleSheet(btnStyle);
|
||||
|
||||
connect(deleteBtn, &QPushButton::clicked, [this, messageId](){ deleteMessage(messageId); });
|
||||
connect(copyBtn, &QPushButton::clicked, [this, messageId](){ copyMessage(messageId); });
|
||||
connect(saveBtn, &QPushButton::clicked, [this, messageId](){ saveMessage(messageId); });
|
||||
connect(collapseBtn, &QPushButton::clicked, [this, messageId](){ toggleCollapse(messageId); });
|
||||
|
||||
layout->addWidget(deleteBtn);
|
||||
layout->addWidget(copyBtn);
|
||||
layout->addWidget(saveBtn);
|
||||
layout->addWidget(collapseBtn);
|
||||
layout->addStretch(); // 添加弹性空间使按钮居中
|
||||
|
||||
messageControls[messageId] = controlsWidget;
|
||||
|
||||
// 设置控件位置
|
||||
QTextCursor cursor = textCursor();
|
||||
cursor.movePosition(QTextCursor::End);
|
||||
QTextBlockFormat blockFormat;
|
||||
blockFormat.setAlignment(Qt::AlignCenter);
|
||||
cursor.mergeBlockFormat(blockFormat);
|
||||
|
||||
// 创建一个占位符 QTextEdit 来放置控件
|
||||
QTextEdit* placeholder = new QTextEdit(this);
|
||||
placeholder->setFrameStyle(QFrame::NoFrame);
|
||||
placeholder->setFixedHeight(40); // 设置合适的高度
|
||||
placeholder->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
|
||||
|
||||
// 将按钮控件添加到文档中
|
||||
cursor.insertHtml("<div class='controls' id='controls_" + messageId + "'></div>");
|
||||
controlsWidget->setParent(placeholder);
|
||||
controlsWidget->show();
|
||||
}
|
||||
|
||||
void ctai_textedit::deleteMessage(const QString& messageId)
|
||||
{
|
||||
if (!messages.contains(messageId)) return;
|
||||
|
||||
// 删除控件
|
||||
if (messageControls.contains(messageId)) {
|
||||
delete messageControls[messageId];
|
||||
messageControls.remove(messageId);
|
||||
}
|
||||
|
||||
// 删除消息
|
||||
messages.remove(messageId);
|
||||
|
||||
// 重新渲染所有消息
|
||||
clear();
|
||||
for (const auto& item : messages) {
|
||||
messageDisplay(item.messageId);
|
||||
}
|
||||
}
|
||||
|
||||
void ctai_textedit::copyMessage(const QString& messageId)
|
||||
{
|
||||
if (!messages.contains(messageId)) return;
|
||||
|
||||
// 复制消息内容到剪贴板
|
||||
QClipboard* clipboard = QApplication::clipboard();
|
||||
clipboard->setText(messages[messageId].content);
|
||||
}
|
||||
|
||||
void ctai_textedit::saveMessage(const QString& messageId)
|
||||
{
|
||||
if (!messages.contains(messageId)) return;
|
||||
|
||||
QString fileName = QFileDialog::getSaveFileName(this,
|
||||
tr("保存消息"),
|
||||
QString("message_%1.txt").arg(messageId),
|
||||
tr("文本文件 (*.txt);;所有文件 (*.*)"));
|
||||
|
||||
if (fileName.isEmpty()) return;
|
||||
|
||||
QFile file(fileName);
|
||||
if (file.open(QIODevice::WriteOnly | QIODevice::Text)) {
|
||||
QTextStream out(&file);
|
||||
out.setEncoding(QStringConverter::Utf8);
|
||||
|
||||
const MessageItem& item = messages[messageId];
|
||||
out << "Message ID: " << item.messageId << "\n";
|
||||
out << "Timestamp: " << item.timestamp << "\n";
|
||||
out << "Content:\n" << item.content;
|
||||
|
||||
file.close();
|
||||
}
|
||||
}
|
||||
|
||||
void ctai_textedit::toggleCollapse(const QString& messageId)
|
||||
{
|
||||
if (!messages.contains(messageId)) return;
|
||||
|
||||
// 切换折叠状态
|
||||
messages[messageId].isCollapsed = !messages[messageId].isCollapsed;
|
||||
|
||||
// 更新显示
|
||||
clear();
|
||||
for (const auto& item : messages) {
|
||||
messageDisplay(item.messageId);
|
||||
}
|
||||
}
|
||||
|
||||
void ctai_textedit::insertSeparatorLine()
|
||||
{
|
||||
QTextCursor cursor = textCursor();
|
||||
cursor.movePosition(QTextCursor::End);
|
||||
cursor.insertHtml("<div class='separator'></div>");
|
||||
}
|
@ -3,11 +3,50 @@
|
||||
#define CTAI_TEXTEDIT_H
|
||||
|
||||
#include <QTextBrowser>
|
||||
#include <QWidget>
|
||||
#include <QPushButton>
|
||||
#include <QScrollBar>
|
||||
#include "ctai_base.h"
|
||||
struct MessageItem {
|
||||
QString messageId;
|
||||
QString messageFp;
|
||||
QString timestamp;
|
||||
QString content;
|
||||
QString prompts_tkoens;
|
||||
QString completion_tokens;
|
||||
QString total_tokens;
|
||||
QString cache_hit_tokens;
|
||||
QString cache_miss_tokens;
|
||||
bool isCollapsed;
|
||||
};
|
||||
|
||||
class ctai_textedit : public QTextBrowser
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit ctai_textedit(QWidget *parent = nullptr);
|
||||
void appendMessage(const model_data& content);
|
||||
void startStreamingMessage(const model_data& messageId);
|
||||
void appendStreamContent(const model_data& content);
|
||||
void finishStreamingMessage();
|
||||
|
||||
public slots:
|
||||
void deleteMessage(const QString& messageId);
|
||||
void copyMessage(const QString& messageId);
|
||||
void saveMessage(const QString& messageId);
|
||||
void toggleCollapse(const QString& messageId);
|
||||
|
||||
private:
|
||||
void createMessageControls(const QString& messageId);
|
||||
void messageDisplay(const QString& messageId);
|
||||
void streamMessageDisplay(const QString& messageId);
|
||||
void insertSeparatorLine();
|
||||
|
||||
private:
|
||||
QMap<QString, MessageItem> messages;
|
||||
QString currentStreamingId;
|
||||
QMap<QString, QWidget*> messageControls;
|
||||
};
|
||||
|
||||
#endif // CTAI_TEXTEDIT_H
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user